diff --git a/app/locales/en/translation.json b/app/locales/en/translation.json
index 84004e5..0e58741 100644
--- a/app/locales/en/translation.json
+++ b/app/locales/en/translation.json
@@ -482,5 +482,57 @@
"login_required_title": "Please Login First",
"login_required_subtitle": "Login to use cart features",
"login_now": "Login Now"
+ },
+ "order": {
+ "details": "Order Details",
+ "information": "Order Information",
+ "id": "Order ID",
+ "create_time": "Create Time",
+ "shipping_type": "Shipping Method",
+ "shipping": {
+ "sea": "Sea Shipping",
+ "air": "Air Shipping"
+ },
+ "delivery_info": "Delivery Information",
+ "warehouse": "Warehouse Address",
+ "contact_after_payment": "Contact info visible after payment",
+ "recipient": "Recipient",
+ "product_info": "Product Information",
+ "price_details": "Price Details",
+ "platform_shipping": "Platform Shipping Fee",
+ "international_shipping": "International Shipping Fee",
+ "total": "Total",
+ "estimated_shipping": "Estimated Shipping Fee",
+ "cancel": "Cancel Order",
+ "pay": "Pay Now",
+ "contact_shipping": "Contact Shipping",
+ "check_logistics": "Check Logistics",
+ "confirm_receipt": "Confirm Receipt",
+ "pay_now": "Pay Now",
+ "add_to_cart": "Add to Cart",
+ "reorder": "Reorder",
+ "unable_to_load": "Unable to load order details",
+ "error": {
+ "phone_open": "Unable to open phone dialer",
+ "payment_update": "Payment update failed",
+ "invalid_phone": "Please enter a valid phone number"
+ },
+ "payment": {
+ "online": "Online Payment",
+ "offline": "Offline Payment",
+ "cash": "Cash Payment",
+ "bank": "Bank Transfer",
+ "select_payment": "Select Payment Method",
+ "balance_remaining": "Balance Remaining"
+ },
+ "select_currency": "Select Currency",
+ "converting": "Converting...",
+ "equivalent_amount": "Equivalent Amount",
+ "confirm_payment": "Confirm Payment",
+ "confirm_cancel": "Are you sure you want to cancel this order?",
+ "cancel_success": "Order cancelled successfully",
+ "cancel_failed": "Failed to cancel order",
+ "yes": "Yes",
+ "no": "No"
}
}
\ No newline at end of file
diff --git a/app/locales/fr/translation.json b/app/locales/fr/translation.json
index 7e1de0e..3cbee26 100644
--- a/app/locales/fr/translation.json
+++ b/app/locales/fr/translation.json
@@ -530,5 +530,66 @@
"shorts": "Courts",
"category": "Catégorie"
}
+ },
+ "order": {
+ "details": "Détails de la commande",
+ "status": {
+ "waiting_payment": "En attente de paiement",
+ "waiting_shipment": "En attente d'expédition",
+ "in_transit": "En transit",
+ "waiting_receipt": "En attente de réception",
+ "completed": "Terminée",
+ "cancelled": "Annulée",
+ "refunded": "Remboursée"
+ },
+ "information": "Informations de commande",
+ "id": "Numéro de commande",
+ "create_time": "Date de création",
+ "shipping_type": "Mode d'expédition",
+ "shipping": {
+ "sea": "Transport maritime",
+ "air": "Transport aérien"
+ },
+ "delivery_info": "Informations de livraison",
+ "warehouse": "Adresse de l'entrepôt",
+ "contact_after_payment": "Coordonnées visibles après paiement",
+ "recipient": "Destinataire",
+ "product_info": "Informations produit",
+ "price_details": "Détails des prix",
+ "platform_shipping": "Frais d'expédition plateforme",
+ "international_shipping": "Frais d'expédition internationaux",
+ "total": "Total",
+ "estimated_shipping": "Frais d'expédition estimés",
+ "cancel": "Annuler la commande",
+ "pay": "Payer maintenant",
+ "contact_shipping": "Contacter l'expédition",
+ "check_logistics": "Vérifier la logistique",
+ "confirm_receipt": "Confirmer la réception",
+ "pay_now": "Payer maintenant",
+ "add_to_cart": "Ajouter au panier",
+ "reorder": "Commander à nouveau",
+ "unable_to_load": "Impossible de charger les détails de la commande",
+ "error": {
+ "phone_open": "Impossible d'ouvrir le composeur téléphonique",
+ "payment_update": "Mise à jour du paiement échouée",
+ "invalid_phone": "Veuillez entrer un numéro de téléphone valide"
+ },
+ "payment": {
+ "online": "Paiement en ligne",
+ "offline": "Paiement hors ligne",
+ "cash": "Paiement en espèces",
+ "bank": "Virement bancaire",
+ "select_payment": "Sélectionner le mode de paiement",
+ "balance_remaining": "Solde restant"
+ },
+ "select_currency": "Sélectionner la devise",
+ "converting": "Conversion en cours...",
+ "equivalent_amount": "Montant équivalent",
+ "confirm_payment": "Confirmer le paiement",
+ "confirm_cancel": "Êtes-vous sûr de vouloir annuler cette commande ?",
+ "cancel_success": "Commande annulée avec succès",
+ "cancel_failed": "Échec de l'annulation de la commande",
+ "yes": "Oui",
+ "no": "Non"
}
}
\ No newline at end of file
diff --git a/app/locales/zh/translation.json b/app/locales/zh/translation.json
index 89f05ef..b76ec82 100644
--- a/app/locales/zh/translation.json
+++ b/app/locales/zh/translation.json
@@ -7,6 +7,9 @@
"mainAppTitle": "欢迎使用 MainApp",
"mainAppText": "这是主应用界面。",
"resetCountry": "重置国家选择",
+ "ok": "确定",
+ "success": "成功",
+ "error": "错误",
"loginTitle": "登录 Brainnel",
"loginSubtitle": "登录开始您的业务",
"continueWithGoogle": "使用 Google 继续",
@@ -192,5 +195,64 @@
"login_required_title": "请先登录",
"login_required_subtitle": "登录后即可使用购物车功能",
"login_now": "立即登录"
+ },
+ "order": {
+ "details": "订单详情",
+ "status": {
+ "waiting_payment": "待付款",
+ "waiting_shipment": "待发货",
+ "in_transit": "运输中",
+ "waiting_receipt": "待收货",
+ "completed": "已完成"
+ },
+ "information": "订单信息",
+ "id": "订单编号",
+ "create_time": "创建时间",
+ "shipping_type": "配送方式",
+ "shipping": {
+ "sea": "海运",
+ "air": "空运"
+ },
+ "delivery_info": "配送信息",
+ "warehouse": "仓库地址",
+ "contact_after_payment": "付款后可见联系方式",
+ "recipient": "收件人",
+ "product_info": "商品信息",
+ "price_details": "价格详情",
+ "platform_shipping": "平台运费",
+ "international_shipping": "国际运费",
+ "total": "总计",
+ "estimated_shipping": "预计运费",
+ "cancel": "取消订单",
+ "pay": "立即付款",
+ "contact_shipping": "联系物流",
+ "check_logistics": "查看物流",
+ "confirm_receipt": "确认收货",
+ "pay_now": "立即付款",
+ "add_to_cart": "加入购物车",
+ "reorder": "再次购买",
+ "unable_to_load": "无法加载订单详情",
+ "error": {
+ "phone_open": "无法打开拨号界面",
+ "payment_update": "支付更新失败",
+ "invalid_phone": "请输入有效的手机号码"
+ },
+ "payment": {
+ "online": "在线支付",
+ "offline": "线下支付",
+ "cash": "现金支付",
+ "bank": "银行转账",
+ "select_payment": "选择支付方式",
+ "balance_remaining": "余额"
+ },
+ "select_currency": "选择货币",
+ "converting": "正在转换...",
+ "equivalent_amount": "等值金额",
+ "confirm_payment": "确认支付",
+ "confirm_cancel": "确定要取消此订单吗?",
+ "cancel_success": "订单已成功取消",
+ "cancel_failed": "取消订单失败",
+ "yes": "是",
+ "no": "否"
}
}
diff --git a/app/screens/BalanceScreen/RechargeScreen.tsx b/app/screens/BalanceScreen/RechargeScreen.tsx
index 05b0060..2905e11 100644
--- a/app/screens/BalanceScreen/RechargeScreen.tsx
+++ b/app/screens/BalanceScreen/RechargeScreen.tsx
@@ -72,6 +72,8 @@ const RechargeScreen = ({ onClose }: RechargeScreenProps) => {
const [showPhoneModal, setShowPhoneModal] = useState(false);
// 添加PayPal展开视图的状态
const [isPaypalExpanded, setIsPaypalExpanded] = useState(false);
+ // 添加Wave展开视图的状态
+ const [isWaveExpanded, setIsWaveExpanded] = useState(false);
useEffect(() => {
payApi.getRechargeRecommendAmount().then((res) => {
@@ -95,8 +97,8 @@ const RechargeScreen = ({ onClose }: RechargeScreenProps) => {
setShowCustomAmountInput(false);
setCustomAmountDisplayText("");
- // 如果当前已选择了Paypal支付方式,则重新计算转换后的金额
- if (selectedOperator === "paypal") {
+ // 如果当前已选择了Paypal或Wave支付方式,则重新计算转换后的金额
+ if (selectedOperator === "paypal" || selectedOperator === "wave") {
handleCurrencyConversion(price, currentCurrency);
}
// 保留原有的逻辑
@@ -106,42 +108,67 @@ const RechargeScreen = ({ onClose }: RechargeScreenProps) => {
};
const handleOperatorSelect = (operator: string) => {
- // 如果选择的不是之前选中的支付方式,则重置PayPal展开状态
+ // 如果选择的不是之前选中的支付方式,则重置展开状态
if (operator !== selectedOperator) {
setIsPaypalExpanded(false);
+ setIsWaveExpanded(false);
}
setSelectedOperator(operator === selectedOperator ? null : operator);
- // 查找是否选择了PayPal支付方式
- const isPaypal = paymentMethods.some(
- (method) => method.key === operator && method.key === "paypal"
+ // 查找选中的支付方式
+ const selectedMethod = paymentMethods.find(
+ (method) => method.key === operator
);
- console.log(isPaypal);
-
- // 如果选择了PayPal支付方式,立即进行货币转换并设置展开状态
- if (isPaypal && operator !== selectedOperator) {
- setIsPaypalExpanded(true); // 设置PayPal展开状态为true
-
- // 无条件触发货币转换,使用默认的USD
- let amountToConvert = selectedPrice;
-
- // 如果用户还没有选择金额,使用推荐金额中的第一个
- if (
- !amountToConvert &&
- recommendedAmounts &&
- recommendedAmounts.amounts &&
- recommendedAmounts.amounts.length > 0
- ) {
- amountToConvert = recommendedAmounts.amounts[0].toString();
- // 自动选择第一个推荐金额
- setSelectedPrice(amountToConvert);
+
+ if (selectedMethod) {
+ // 如果是PayPal支付方式
+ if (selectedMethod.key === "paypal" && operator !== selectedOperator) {
+ setIsPaypalExpanded(true);
+
+ // 无条件触发货币转换,使用默认的USD
+ let amountToConvert = selectedPrice;
+
+ // 如果用户还没有选择金额,使用推荐金额中的第一个
+ if (
+ !amountToConvert &&
+ recommendedAmounts &&
+ recommendedAmounts.amounts &&
+ recommendedAmounts.amounts.length > 0
+ ) {
+ amountToConvert = recommendedAmounts.amounts[0].toString();
+ setSelectedPrice(amountToConvert);
+ }
+
+ if (amountToConvert) {
+ setCurrentCurrency("USD");
+ setIsConverting(true);
+ handleCurrencyConversion(amountToConvert, "USD");
+ }
}
+ // 如果是Wave支付方式
+ else if (selectedMethod.key === "wave" && operator !== selectedOperator) {
+ setIsWaveExpanded(true);
+
+ // 无条件触发货币转换,使用FCFA
+ let amountToConvert = selectedPrice;
+
+ // 如果用户还没有选择金额,使用推荐金额中的第一个
+ if (
+ !amountToConvert &&
+ recommendedAmounts &&
+ recommendedAmounts.amounts &&
+ recommendedAmounts.amounts.length > 0
+ ) {
+ amountToConvert = recommendedAmounts.amounts[0].toString();
+ setSelectedPrice(amountToConvert);
+ }
- if (amountToConvert) {
- setCurrentCurrency("USD");
- setIsConverting(true);
- handleCurrencyConversion(amountToConvert, "USD");
+ if (amountToConvert) {
+ setCurrentCurrency("FCFA");
+ setIsConverting(true);
+ handleCurrencyConversion(amountToConvert, "FCFA");
+ }
}
} else if (operator === "currency" && operator !== selectedOperator) {
// 旧的逻辑保留作为备用
@@ -214,7 +241,7 @@ const RechargeScreen = ({ onClose }: RechargeScreenProps) => {
(method) => method.key === selectedOperator
);
if (selectedMethod) {
- // 使用key作为支付方式标识,而不是不存在的name属性
+ // 使用key作为支付方式标识
params.payment_method = selectedMethod.key;
// 如果是paypal,设置货币转换相关参数
@@ -231,6 +258,24 @@ const RechargeScreen = ({ onClose }: RechargeScreenProps) => {
}
}
}
+ // 如果是wave,固定使用FCFA
+ else if (selectedMethod.key === "wave") {
+ params.currency = "FCFA";
+ // 使用转换后的FCFA金额,如果有
+ if (convertedAmount.length > 0) {
+ const convertedTotal = convertedAmount.find(
+ (item) => item.item_key === "total_amount"
+ );
+ if (convertedTotal) {
+ params.amount = convertedTotal.converted_amount;
+ }
+ } else {
+ // 如果没有转换结果,使用原始金额作为备用
+ params.amount = parseFloat(selectedPrice.replace(/,/g, ""));
+ }
+ // 更新显示标签为FCFA
+ params.selectedPriceLabel = params.amount + " FCFA";
+ }
} else if (selectedOperator === "balance") {
params.payment_method = "Balance";
} else if (selectedOperator === "currency") {
@@ -269,7 +314,21 @@ const RechargeScreen = ({ onClose }: RechargeScreenProps) => {
return;
}
- console.log(`Converting ${amount} FCFA to ${currency}...`);
+ // 如果源货币和目标货币相同,直接返回原金额
+ if (user?.currency === currency) {
+ console.log(`Same currency (${currency}), no conversion needed`);
+ setConvertedAmount([
+ {
+ converted_amount: amount,
+ item_key: "total_amount",
+ original_amount: amount,
+ },
+ ]);
+ setIsConverting(false);
+ return;
+ }
+
+ console.log(`Converting ${amount} ${user?.currency} to ${currency}...`);
// 调用货币转换API
const data = {
@@ -452,6 +511,15 @@ const RechargeScreen = ({ onClose }: RechargeScreenProps) => {
return true;
}
+ // 如果选择了Wave支付方式,但还没有转换结果,禁用按钮
+ if (
+ selectedOperator === "wave" &&
+ (convertedAmount.length === 0 ||
+ !convertedAmount.find((item) => item.item_key === "total_amount"))
+ ) {
+ return true;
+ }
+
// 其他情况下,启用按钮
return false;
};
@@ -809,6 +877,50 @@ const RechargeScreen = ({ onClose }: RechargeScreenProps) => {
)}
+
+ {/* Wave展开视图 */}
+ {method.key === "wave" &&
+ selectedOperator === "wave" &&
+ isWaveExpanded && (
+
+
+
+ {t("balance.recharge.currency_title")}
+
+
+
+
+ FCFA
+
+
+
+
+ {/* 显示转换后的金额 */}
+ {isConverting ? (
+
+
+
+ {t("balance.recharge.converting")}
+
+
+ ) : convertedAmount.length > 0 ? (
+
+
+ {t("balance.recharge.equivalent_amount")}
+
+
+ {convertedAmount
+ .find(
+ (item) => item.item_key === "total_amount"
+ )
+ ?.converted_amount.toFixed(2)}{" "}
+ FCFA
+
+
+ ) : null}
+
+
+ )}
))}
>
diff --git a/app/screens/CartScreen.tsx b/app/screens/CartScreen.tsx
index 86924db..c2151d4 100644
--- a/app/screens/CartScreen.tsx
+++ b/app/screens/CartScreen.tsx
@@ -32,6 +32,7 @@ import useCreateOrderStore from "../store/createOrder";
import useUserStore from "../store/user";
import { t } from "../i18n";
import { payApi } from "../services/api/payApi";
+import IconComponent from "../components/IconComponent";
export const CartScreen = () => {
const [cartList, setCartList] = useState([]);
@@ -59,6 +60,8 @@ export const CartScreen = () => {
const [quantityInput, setQuantityInput] = useState("");
const navigation = useNavigation>();
const { setItems } = useCreateOrderStore();
+ const [minQuantityModalVisible, setMinQuantityModalVisible] = useState(false);
+ const [minQuantityMessage, setMinQuantityMessage] = useState("");
// 货币转换函数
const convertCurrency = async () => {
@@ -568,19 +571,28 @@ export const CartScreen = () => {
}
};
+ // 统一的提示函数
+ const showMinQuantityModal = (message: string) => {
+ setMinQuantityMessage(message);
+ setMinQuantityModalVisible(true);
+ };
+
// 处理减少数量
const handleDecreaseQuantity = (
cartId: number,
cartItemId: number,
- currentQuantity: number
+ currentQuantity: number,
+ minOrderQuantity: number
) => {
// 如果用户未登录,直接返回
if (!user_id) {
return;
}
- if (currentQuantity > 1) {
+ if (currentQuantity > minOrderQuantity) {
updateQuantity(cartId, cartItemId, currentQuantity - 1);
+ } else {
+ showMinQuantityModal(`${t("cart.notice")}:${t("cart.min_order")}${minOrderQuantity}${t("cart.pieces")}`);
}
};
@@ -607,14 +619,21 @@ export const CartScreen = () => {
const newQuantity = parseInt(quantityInput);
if (isNaN(newQuantity) || newQuantity < 1) {
- Alert.alert(t("cart.notice"), t("cart.enter_valid_quantity"));
+ showMinQuantityModal(t("cart.enter_valid_quantity"));
return;
}
- updateQuantity(editingItem.cartId, editingItem.cartItemId, newQuantity);
- setQuantityInputVisible(false);
- setEditingItem(null);
- setQuantityInput("");
+ const { cartId, cartItemId } = editingItem;
+ const minOrderQuantity = cartList.find(item => item.cart_id === cartId)?.min_order_quantity || 1;
+
+ if (newQuantity < minOrderQuantity) {
+ showMinQuantityModal(`${t("cart.notice")}:${t("cart.min_order")}${minOrderQuantity}${t("cart.pieces")}`);
+ } else {
+ updateQuantity(cartId, cartItemId, newQuantity);
+ setQuantityInputVisible(false);
+ setEditingItem(null);
+ setQuantityInput("");
+ }
};
// 处理点击数量显示
@@ -656,243 +675,240 @@ export const CartScreen = () => {
{/* Panier (5) */}
- {cartList.map((item, index1) => (
-
-
+ {/* Panier (5) */}
+
+ {/* Panier (5) */}
+
+ {cartList.map((item, index1) => (
+
+
+
+
+ toggleSelection(String(item.cart_id), index1, null)
+ }
+ disabled={!user_id}
+ >
+
+ {item.selected === 1 ? (
+
+ ) : (
+
+ )}
+
+
+
+
+
+
+ {item.subject}
+
+
+ {t("cart.min_order")}: {item.min_order_quantity}
+ {t("cart.pieces")}
+
+
+
+ {item.skus.map((sku, index) => (
+ (
+
+ handleDeleteSku(
+ item.cart_id,
+ sku.cart_item_id,
+ item.cart_id
+ )
+ }
+ disabled={!user_id}
+ >
+
+ {t("cart.delete")}
+
+
+ )}
+ >
+ {
+ if (user_id) {
+ navigation.navigate("ProductDetail", {
+ offer_id: item.offer_id,
+ searchKeyword: item.subject,
+ price: sku.price,
+ });
+ }
+ }}
+ style={[
+ styles.productCardContainer5,
+ styles.productCardContainer4,
+ ]}
+ >
- toggleSelection(String(item.cart_id), index1, null)
+ user_id && toggleSelection(
+ String(sku.cart_item_id),
+ index1,
+ index
+ )
}
disabled={!user_id}
>
- {item.selected === 1 ? (
+ {sku.selected === 1 ? (
) : (
)}
+ {/* */}
-
-
- {item.subject}
-
-
- {t("cart.min_order")}: {item.min_order_quantity}
- {t("cart.pieces")}
-
-
-
- {item.skus.map((sku, index) => (
- (
-
- handleDeleteSku(
- item.cart_id,
- sku.cart_item_id,
- item.cart_id
- )
- }
- disabled={!user_id}
- >
+
+ {/* 1. SKU attributes at the top */}
+ {sku.attributes[0]?.value && (
+
- {t("cart.delete")}
+ {sku.attributes[0]?.value}{" "}
+ {sku.attributes[1] ? "/" : ""}{" "}
+ {sku.attributes[1]?.value}
-
+
)}
- >
- {
- if (user_id) {
- navigation.navigate("ProductDetail", {
- offer_id: item.offer_id,
- searchKeyword: item.subject,
- price: sku.price,
- });
- }
- }}
- style={[
- styles.productCardContainer5,
- styles.productCardContainer4,
- ]}
- >
-
+
+ {/* 2. Price section - discount and actual price close together */}
+
+
+ {/* Discount price */}
+
+
+
+ {sku.original_price} {sku.currency}
+
+
+
+
+
+ {((1 - vip_discount) * 100).toFixed(0)}%
+
+
+
+
+ {/* Actual price - right below discount price */}
+
+
+ {sku.price}
+
+
+ FCFA
+
+
+
+
+ {/* 3. Quantity controls on the right */}
+
- user_id && toggleSelection(
- String(sku.cart_item_id),
- index1,
- index
+ user_id && handleDecreaseQuantity(
+ item.cart_id,
+ sku.cart_item_id,
+ sku.quantity,
+ item.min_order_quantity
)
}
disabled={!user_id}
>
-
- {sku.selected === 1 ? (
-
- ) : (
-
- )}
- {/* */}
-
+
+ -
+
+
+
+ user_id && handleQuantityPress(
+ item.cart_id,
+ sku.cart_item_id,
+ sku.quantity
+ )
+ }
+ disabled={!user_id}
+ >
+
+ {sku.quantity}
+
+
+
+ user_id && handleIncreaseQuantity(
+ item.cart_id,
+ sku.cart_item_id,
+ sku.quantity
+ )
+ }
+ disabled={!user_id}
+ >
+
+ +
+
-
-
- {/* 1. SKU attributes at the top */}
- {sku.attributes[0]?.value && (
-
-
- {sku.attributes[0]?.value}{" "}
- {sku.attributes[1] ? "/" : ""}{" "}
- {sku.attributes[1]?.value}
-
-
- )}
-
- {/* 2. Price section - discount and actual price close together */}
-
-
- {/* Discount price */}
-
-
-
- {sku.original_price} {sku.currency}
-
-
-
-
-
- {((1 - vip_discount) * 100).toFixed(0)}%
-
-
-
-
- {/* Actual price - right below discount price */}
-
-
- {sku.price}
-
-
- FCFA
-
-
-
-
- {/* 3. Quantity controls on the right */}
-
-
- user_id && handleDecreaseQuantity(
- item.cart_id,
- sku.cart_item_id,
- sku.quantity
- )
- }
- disabled={!user_id}
- >
-
- -
-
-
-
- user_id && handleQuantityPress(
- item.cart_id,
- sku.cart_item_id,
- sku.quantity
- )
- }
- disabled={!user_id}
- >
-
- {sku.quantity}
-
-
-
- user_id && handleIncreaseQuantity(
- item.cart_id,
- sku.cart_item_id,
- sku.quantity
- )
- }
- disabled={!user_id}
- >
-
- +
-
-
-
-
-
-
-
- ))}
-
+
+
+
+
))}
-
- {/* 商品 */}
-
-
- {/* Divider */}
-
- {/* Coffee Cup Product */}
+ ))}
- {/* More product sections... */}
+ {/* 商品 */}
{/* Fixed Bottom Section */}
@@ -1060,6 +1076,29 @@ export const CartScreen = () => {
+
+ {/* 最小数量提示弹窗 */}
+ setMinQuantityModalVisible(false)}
+ >
+
+
+
+
+
+ {minQuantityMessage}
+ setMinQuantityModalVisible(false)}
+ >
+ {t("cart.confirm")}
+
+
+
+
);
};
@@ -1815,4 +1854,42 @@ const styles = StyleSheet.create({
fontWeight: '700',
textAlign: 'center',
},
+ warningIconContainer: {
+ backgroundColor: "#FFF2E9",
+ borderRadius: 20,
+ padding: 12,
+ marginBottom: 16,
+ alignSelf: 'center',
+ width: 52,
+ height: 52,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ warningIcon: {
+ width: 32,
+ height: 32,
+ },
+ minQuantityPopup: {
+ width: '80%',
+ padding: 24,
+ },
+ minQuantityText: {
+ fontSize: fontSize(16),
+ color: '#333',
+ marginVertical: 16,
+ textAlign: 'center',
+ lineHeight: fontSize(22),
+ fontWeight: '500',
+ },
+ minQuantityButton: {
+ width: '100%',
+ height: 44,
+ borderRadius: 22,
+ backgroundColor: '#FF5100',
+ marginTop: 16,
+ },
+ minQuantityButtonText: {
+ fontSize: fontSize(16),
+ fontWeight: '600',
+ },
});
diff --git a/app/screens/ProductCard.tsx b/app/screens/ProductCard.tsx
index abef686..a26cc32 100644
--- a/app/screens/ProductCard.tsx
+++ b/app/screens/ProductCard.tsx
@@ -47,6 +47,11 @@ const ProductCard: React.FC = ({
}) => {
const navigation = useNavigation>();
const [deleteModalVisible, setDeleteModalVisible] = useState(false);
+ const [alertModalVisible, setAlertModalVisible] = useState(false);
+ const [alertMessage, setAlertMessage] = useState<{title: string; message: string}>({
+ title: '',
+ message: ''
+ });
const [images, setImages] = useState([]);
const [currentImageIndex, setCurrentImageIndex] = useState(0);
const [imageViewerVisible, setImageViewerVisible] = useState(false);
@@ -89,18 +94,27 @@ const ProductCard: React.FC = ({
processProductData();
}, [localProduct, localGroupList]);
+ // 显示自定义警告
+ const showCustomAlert = (title: string, message: string) => {
+ setAlertMessage({ title, message });
+ setAlertModalVisible(true);
+ };
+
// 加入购物车
const addCartHandel = () => {
if (!user_id) {
- Alert.alert("添加失败", "请先登录");
+ showCustomAlert("添加失败", "请先登录");
return;
}
if (totalPrice === 0) {
- Alert.alert("添加失败", "请选择商品");
+ showCustomAlert("添加失败", "请选择商品");
return;
}
if (selectedSize < product.min_order_quantity) {
- Alert.alert("添加失败", "小于最小购买数量");
+ showCustomAlert(
+ "购买数量不足",
+ `该商品最小购买数量为 ${product.min_order_quantity} 件,请增加购买数量`
+ );
return;
}
if (groupList.length > 1) {
@@ -803,6 +817,35 @@ const ProductCard: React.FC = ({
+
+ {/* 自定义警告模态框 */}
+ setAlertModalVisible(false)}
+ >
+
+
+ {alertMessage.title}
+ {alertMessage.message}
+
+ setAlertModalVisible(false)}
+ >
+ 取消
+
+ setAlertModalVisible(false)}
+ >
+ 确定
+
+
+
+
+
);
};
@@ -1274,6 +1317,14 @@ const styles = StyleSheet.create({
color: "#ffffff",
fontFamily: "Source Han Sans CN", // 同上
},
+ messageText: {
+ fontSize: fontSize(16),
+ color: "#666",
+ textAlign: "center",
+ marginTop: 10,
+ marginBottom: 20,
+ paddingHorizontal: 20,
+ },
});
export default ProductCard;
diff --git a/app/screens/ProductDetailScreen.tsx b/app/screens/ProductDetailScreen.tsx
index dacfc39..1efe373 100644
--- a/app/screens/ProductDetailScreen.tsx
+++ b/app/screens/ProductDetailScreen.tsx
@@ -376,7 +376,8 @@ export const ProductDetailScreen = () => {
}
}, [showBottomSheet]);
const handleImageLoad = (src: string, event: any) => {
- const { width: imageWidth, height: imageHeight } = event.nativeEvent.source;
+ // ExpoImage的onLoad事件直接返回尺寸信息
+ const { width: imageWidth, height: imageHeight } = event;
const aspectRatio = imageHeight / imageWidth;
const calculatedHeight = width * aspectRatio;
setImageHeights((prev) => ({
diff --git a/app/screens/productStatus/OrderDatails.tsx b/app/screens/productStatus/OrderDatails.tsx
index 504648a..36e89e5 100644
--- a/app/screens/productStatus/OrderDatails.tsx
+++ b/app/screens/productStatus/OrderDatails.tsx
@@ -13,6 +13,10 @@ import {
StatusBar,
Platform,
Modal,
+ ViewStyle,
+ TextStyle,
+ ImageStyle,
+ StyleProp,
} from "react-native";
import { useTranslation } from "react-i18next";
import BackIcon from "../../components/BackIcon";
@@ -40,6 +44,7 @@ import CircleOutlineIcon from "../../components/CircleOutlineIcon";
import CheckIcon from "../../components/CheckIcon";
import payMap from "../../utils/payMap";
import PhoneNumberInputModal from "../../screens/BalanceScreen/PhoneNumberInputModal";
+import IconComponent from "../../components/IconComponent";
// 定义选项类型
interface PaymentOption {
@@ -55,6 +60,119 @@ interface TabType {
options: PaymentOption[];
}
+type Styles = {
+ safeArea: ViewStyle;
+ safeAreaContent: ViewStyle;
+ container: ViewStyle;
+ header: ViewStyle;
+ title: TextStyle;
+ orderStatus: ViewStyle;
+ orderStatusContent: ViewStyle;
+ orderStatusTitle: ViewStyle;
+ orderStatusTitleText: TextStyle;
+ orderStatusContentPreview: ViewStyle;
+ productItem: ViewStyle;
+ productItemImage: ViewStyle;
+ productItemInfo: ViewStyle;
+ productItemNum: ViewStyle;
+ productItemNumText: TextStyle;
+ productItemInfoName: ViewStyle;
+ productItemInfoNameText: TextStyle;
+ productItemInfoSkuText: TextStyle;
+ productItemInfoSku: ViewStyle;
+ productItemInfoPrice: ViewStyle;
+ orderStatusContentPreviewInformation: ViewStyle;
+ loadingContainer: ViewStyle;
+ orderId: ViewStyle;
+ orderIdText: TextStyle;
+ orderIdText1: TextStyle;
+ TotalText: TextStyle;
+ TotalPrice: TextStyle;
+ warehouse: ViewStyle;
+ recipientTitle: ViewStyle;
+ recipientPhoneContainer: ViewStyle;
+ recipient: ViewStyle;
+ orderStatusContentPreviewInformationText: TextStyle;
+ warehousePhone: ViewStyle;
+ warehousePhoneText: TextStyle;
+ warehousePhoneTextContainer: ViewStyle;
+ recipientName: TextStyle;
+ recipientPhone: TextStyle;
+ dottedLine: ViewStyle;
+ orderRemakeText: TextStyle;
+ addCard: ViewStyle;
+ addCardBox: ViewStyle;
+ addCardText: TextStyle;
+ bottomButtons: ViewStyle;
+ bottomButton1: ViewStyle;
+ bottomButton: ViewStyle;
+ bottomButtonText: TextStyle;
+ bottomButtonText1: TextStyle;
+ modalOverlay: ViewStyle;
+ modalContent: ViewStyle;
+ modalHeader: ViewStyle;
+ modalTitle: TextStyle;
+ closeButtonContainer: ViewStyle;
+ closeButtonText: TextStyle;
+ tabContainer: ViewStyle;
+ tab: ViewStyle;
+ tabActive: ViewStyle;
+ tabText: TextStyle;
+ tabTextActive: TextStyle;
+ paymentOptions: ViewStyle;
+ cardContainer: ViewStyle;
+ iconRow: ViewStyle;
+ imageContainer: ViewStyle;
+ paymentIconContainer: ViewStyle;
+ paymentIcon: TextStyle;
+ checkboxContainer: ViewStyle;
+ checkmarkContainer: ViewStyle;
+ currencyTitle: TextStyle;
+ paypalExpandedContainer: ViewStyle;
+ paypalCurrencyContainer: ViewStyle;
+ currencyButtonsContainer: ViewStyle;
+ currencyButton: ViewStyle;
+ currencyButtonActive: ViewStyle;
+ currencyButtonText: TextStyle;
+ currencyButtonTextActive: TextStyle;
+ convertingContainer: ViewStyle;
+ convertingText: TextStyle;
+ convertedAmountContainer: ViewStyle;
+ convertedAmountLabel: TextStyle;
+ convertedAmountValue: TextStyle;
+ actionButtonsContainer: ViewStyle;
+ actionButtons: ViewStyle;
+ cancelButton: ViewStyle;
+ confirmButton: ViewStyle;
+ confirmButtonDisabled: ViewStyle;
+ buttonTextDark: TextStyle;
+ buttonTextWhite: TextStyle;
+ operatorImage: ImageStyle;
+ mobileMoneyTextContainer: ViewStyle;
+ mobileMoneyImgContainer: ViewStyle;
+ mobileMoneyImg: ImageStyle;
+ mobileMoneyText: TextStyle;
+ outerContainer: ViewStyle;
+ flexContainer: ViewStyle;
+ imageStyle: ImageStyle;
+ verticalAlignEndContent: ViewStyle;
+ svgContainer: ViewStyle;
+ leftInfo: ViewStyle;
+ blueBox: ViewStyle;
+ balanceText: TextStyle;
+ modalPopup: ViewStyle;
+ modalWarningIcon: ViewStyle;
+ modalPromptText: TextStyle;
+ modalCancelPopup: ViewStyle;
+ modalCancelText: TextStyle;
+ modalCancelButtonsContainer: ViewStyle;
+ modalCancelActionButton: ViewStyle;
+ modalCancelButtonOutline: ViewStyle;
+ modalCancelButtonFilled: ViewStyle;
+ modalCancelButtonOutlineText: TextStyle;
+ modalCancelButtonFilledText: TextStyle;
+};
+
export const OrderDetails = () => {
const navigation = useNavigation>();
const { t } = useTranslation();
@@ -110,6 +228,8 @@ export const OrderDetails = () => {
onCloses?: () => void;
} | null>(null);
const [showPhoneModal, setShowPhoneModal] = useState(false);
+ const [showCancelModal, setShowCancelModal] = useState(false);
+ const [isCancelling, setIsCancelling] = useState(false);
const getOrderDetails = async () => {
try {
@@ -393,6 +513,24 @@ export const OrderDetails = () => {
return false;
};
+ // 添加取消订单的处理函数
+ const handleCancelOrder = async () => {
+ try {
+ setIsCancelling(true);
+ const response = await ordersApi.cancelOrder(route.params.orderId);
+ if (response) {
+ deleteOrder(route.params.orderId);
+ setShowCancelModal(false);
+ navigation.goBack();
+ }
+ } catch (error) {
+ console.error("取消订单失败:", error);
+ Alert.alert(t("error"), t("order.cancel_failed"));
+ } finally {
+ setIsCancelling(false);
+ }
+ };
+
return (
@@ -563,7 +701,7 @@ export const OrderDetails = () => {
@@ -666,9 +804,7 @@ export const OrderDetails = () => {
{
- deleteOrder(route.params.orderId);
- }}
+ onPress={() => setShowCancelModal(true)}
>
{t("order.cancel")}
@@ -807,7 +943,7 @@ export const OrderDetails = () => {
@@ -821,7 +957,7 @@ export const OrderDetails = () => {
{option.key === "mobile_money" && (
@@ -831,7 +967,7 @@ export const OrderDetails = () => {
))
@@ -942,14 +1078,12 @@ export const OrderDetails = () => {
{option.id === "cash" ? (
) : (
)}
@@ -1023,11 +1157,49 @@ export const OrderDetails = () => {
onSubmit={handlePhoneSubmit}
onCloses={() => setShowPaymentModal(false)}
/>
+
+ {/* 取消订单确认弹窗 */}
+ setShowCancelModal(false)}
+ >
+
+
+
+
+
+
+ {t("order.confirm_cancel")}
+
+
+ setShowCancelModal(false)}
+ >
+ {t("order.no")}
+
+
+ {isCancelling ? (
+
+ ) : (
+ {t("order.yes")}
+ )}
+
+
+
+
+
);
};
-const styles = StyleSheet.create({
+const styles = StyleSheet.create({
safeArea: {
flex: 1,
backgroundColor: '#fff',
@@ -1290,7 +1462,8 @@ const styles = StyleSheet.create({
modalOverlay: {
flex: 1,
backgroundColor: 'rgba(0, 0, 0, 0.5)',
- justifyContent: 'flex-end',
+ justifyContent: 'center',
+ alignItems: 'center',
},
modalContent: {
backgroundColor: '#fff',
@@ -1563,4 +1736,66 @@ const styles = StyleSheet.create({
fontWeight: "500",
color: "#333333",
},
+ modalPopup: {
+ backgroundColor: '#fff',
+ padding: 20,
+ borderRadius: 10,
+ width: '80%',
+ maxWidth: '80%',
+ },
+ modalWarningIcon: {
+ alignItems: 'center',
+ marginBottom: 16,
+ },
+ modalPromptText: {
+ fontSize: fontSize(16),
+ color: '#333',
+ marginBottom: 16,
+ textAlign: 'center',
+ lineHeight: fontSize(22),
+ fontWeight: '500',
+ },
+ modalCancelPopup: {
+ width: '80%',
+ padding: 24,
+ alignItems: 'center',
+ },
+ modalCancelText: {
+ fontSize: fontSize(16),
+ color: '#333',
+ marginVertical: 16,
+ textAlign: 'center',
+ lineHeight: fontSize(22),
+ fontWeight: '500',
+ },
+ modalCancelButtonsContainer: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ width: '100%',
+ marginTop: 24,
+ },
+ modalCancelActionButton: {
+ flex: 1,
+ height: 44,
+ borderRadius: 22,
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginHorizontal: 8,
+ },
+ modalCancelButtonOutline: {
+ backgroundColor: '#F5F5F5',
+ },
+ modalCancelButtonFilled: {
+ backgroundColor: '#FF5100',
+ },
+ modalCancelButtonOutlineText: {
+ fontSize: fontSize(16),
+ color: '#666',
+ fontWeight: '600',
+ },
+ modalCancelButtonFilledText: {
+ fontSize: fontSize(16),
+ color: '#FFF',
+ fontWeight: '600',
+ },
});
diff --git a/app/services/api/orders.ts b/app/services/api/orders.ts
index 70b0f2b..ff66e94 100644
--- a/app/services/api/orders.ts
+++ b/app/services/api/orders.ts
@@ -349,6 +349,85 @@ export interface UpdateOrderPaymentMethod {
shipping_fee: number;
domestic_shipping_fee: number;
}
+
+interface OrderItemCancel {
+ offer_id: string;
+ cart_item_id: number;
+ sku_id: string;
+ spec_id: string;
+ product_name: string;
+ product_name_en: string;
+ product_name_fr: string;
+ product_name_ar: string;
+ product_name_invoice: string;
+ product_image: string;
+ product_images: string;
+ material: string;
+ product_link: string;
+ source_data: string;
+ sku_attributes: Record[];
+ sku_image: string;
+ sku_key_name: string;
+ sku_key_name_cn: string;
+ category_id: string;
+ category_name: string;
+ supplier_name: string;
+ is_live_stream_product: number;
+ quantity: number;
+ unit_price: number;
+ total_price: number;
+ unit_volume: number;
+ unit_weight: number;
+ order_item_id: string;
+ order_no: string;
+ create_time: string;
+ update_time: string;
+}
+
+export interface OrderCancelResponse {
+ user_id: number;
+ total_amount: number;
+ actual_amount: number;
+ exchange_rate: number;
+ discount_amount: number;
+ shipping_fee: number;
+ domestic_shipping_fee: number;
+ currency: string;
+ payment_method: string;
+ transaction_id: string;
+ pay_status: number;
+ order_status: number;
+ shipping_status: number;
+ address_id: number;
+ receiver_name: string;
+ receiver_phone: string;
+ whatsapp_number: string;
+ receiver_address: string;
+ receiver_country: string;
+ shipping_no: string;
+ shipping_type: number;
+ shipping_company: string;
+ shipping_url: string;
+ total_weight: number;
+ total_volume: number;
+ total_packages: number;
+ buyer_message: string;
+ pay_time: string;
+ shipping_time: string;
+ complete_time: string;
+ coupon_id: number;
+ gold_coins_deducted: number;
+ vip_info: string;
+ verification_code: string;
+ verification_time: string;
+ sensitive_goods_flag: number;
+ update_time: string;
+ order_id: string;
+ order_no: string;
+ items: OrderItemCancel[];
+ create_time: string;
+}
+
export const ordersApi = {
// 获得订单预览信息
getOrders: (data: OrderPreviewData) =>
@@ -401,4 +480,8 @@ export const ordersApi = {
// 修改支付方式
updateOrderPaymentMethod: (data: UpdateOrderPaymentMethod) =>
apiService.put(`/api/orders/edit/`, data),
+
+ // 取消订单
+ cancelOrder: (order_id: string) =>
+ apiService.post(`/api/orders/${order_id}/cancel/`),
};
diff --git a/yarn.lock b/yarn.lock
index 77d71b5..9389f38 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -31,6 +31,13 @@
"@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3"
chokidar "^3.6.0"
+"@babel/code-frame@7.10.4", "@babel/code-frame@~7.10.4":
+ version "7.10.4"
+ resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.10.4.tgz"
+ integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
+ dependencies:
+ "@babel/highlight" "^7.10.4"
+
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7", "@babel/code-frame@^7.27.1":
version "7.27.1"
resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.27.1.tgz"
@@ -40,20 +47,6 @@
js-tokens "^4.0.0"
picocolors "^1.1.1"
-"@babel/code-frame@~7.10.4":
- version "7.10.4"
- resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.10.4.tgz"
- integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
- dependencies:
- "@babel/highlight" "^7.10.4"
-
-"@babel/code-frame@7.10.4":
- version "7.10.4"
- resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.10.4.tgz"
- integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
- dependencies:
- "@babel/highlight" "^7.10.4"
-
"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.27.2":
version "7.27.2"
resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.27.2.tgz"
@@ -1418,7 +1411,7 @@
json5 "^2.2.3"
write-file-atomic "^2.3.0"
-"@expo/metro-config@~0.19.12", "@expo/metro-config@0.19.12":
+"@expo/metro-config@0.19.12", "@expo/metro-config@~0.19.12":
version "0.19.12"
resolved "https://registry.npmmirror.com/@expo/metro-config/-/metro-config-0.19.12.tgz"
integrity sha512-fhT3x1ikQWHpZgw7VrEghBdscFPz1laRYa8WcVRB18nTTqorF6S8qPYslkJu1faEziHZS7c2uyDzTYnrg/CKbg==
@@ -1825,7 +1818,7 @@
"@nodelib/fs.stat" "2.0.5"
run-parallel "^1.1.9"
-"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
version "2.0.5"
resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
@@ -2243,15 +2236,23 @@
hermes-parser "0.23.1"
nullthrows "^1.1.1"
+"@react-native/normalize-colors@0.76.9":
+ version "0.76.9"
+ resolved "https://registry.npmmirror.com/@react-native/normalize-colors/-/normalize-colors-0.76.9.tgz"
+ integrity sha512-TUdMG2JGk72M9d8DYbubdOlrzTYjw+YMe/xOnLU4viDgWRHsCbtRS9x0IAxRjs3amj/7zmK3Atm8jUPvdAc8qw==
+
"@react-native/normalize-colors@^0.74.1":
version "0.74.89"
resolved "https://registry.npmmirror.com/@react-native/normalize-colors/-/normalize-colors-0.74.89.tgz"
integrity sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==
-"@react-native/normalize-colors@0.76.9":
+"@react-native/virtualized-lists@0.76.9":
version "0.76.9"
- resolved "https://registry.npmmirror.com/@react-native/normalize-colors/-/normalize-colors-0.76.9.tgz"
- integrity sha512-TUdMG2JGk72M9d8DYbubdOlrzTYjw+YMe/xOnLU4viDgWRHsCbtRS9x0IAxRjs3amj/7zmK3Atm8jUPvdAc8qw==
+ resolved "https://registry.npmmirror.com/@react-native/virtualized-lists/-/virtualized-lists-0.76.9.tgz"
+ integrity sha512-2neUfZKuqMK2LzfS8NyOWOyWUJOWgDym5fUph6fN9qF+LNPjAvnc4Zr9+o+59qjNu/yXwQgVMWNU4+8WJuPVWw==
+ dependencies:
+ invariant "^2.2.4"
+ nullthrows "^1.1.1"
"@react-native/virtualized-lists@^0.72.4":
version "0.72.8"
@@ -2261,14 +2262,6 @@
invariant "^2.2.4"
nullthrows "^1.1.1"
-"@react-native/virtualized-lists@0.76.9":
- version "0.76.9"
- resolved "https://registry.npmmirror.com/@react-native/virtualized-lists/-/virtualized-lists-0.76.9.tgz"
- integrity sha512-2neUfZKuqMK2LzfS8NyOWOyWUJOWgDym5fUph6fN9qF+LNPjAvnc4Zr9+o+59qjNu/yXwQgVMWNU4+8WJuPVWw==
- dependencies:
- invariant "^2.2.4"
- nullthrows "^1.1.1"
-
"@react-navigation/bottom-tabs@^6.5.11":
version "6.6.1"
resolved "https://registry.npmmirror.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.6.1.tgz"
@@ -2591,14 +2584,7 @@
resolved "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.14.tgz"
integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==
-"@types/ramda@^0.27.40":
- version "0.27.66"
- resolved "https://registry.npmmirror.com/@types/ramda/-/ramda-0.27.66.tgz"
- integrity sha512-i2YW+E2U6NfMt3dp0RxNcejox+bxJUNDjB7BpYuRuoHIzv5juPHkJkNgcUOu+YSQEmaWu8cnAo/8r63C0NnuVA==
- dependencies:
- ts-toolbelt "^6.15.1"
-
-"@types/ramda@^0.27.44":
+"@types/ramda@^0.27.40", "@types/ramda@^0.27.44":
version "0.27.66"
resolved "https://registry.npmmirror.com/@types/ramda/-/ramda-0.27.66.tgz"
integrity sha512-i2YW+E2U6NfMt3dp0RxNcejox+bxJUNDjB7BpYuRuoHIzv5juPHkJkNgcUOu+YSQEmaWu8cnAo/8r63C0NnuVA==
@@ -2909,14 +2895,7 @@ ansi-regex@^6.0.1:
resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz"
integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
-ansi-styles@^3.2.0:
- version "3.2.1"
- resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- dependencies:
- color-convert "^1.9.0"
-
-ansi-styles@^3.2.1:
+ansi-styles@^3.2.0, ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz"
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
@@ -3197,6 +3176,13 @@ babel-plugin-react-native-web@~0.19.13:
resolved "https://registry.npmmirror.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz"
integrity sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==
+babel-plugin-syntax-hermes-parser@0.25.1, babel-plugin-syntax-hermes-parser@^0.25.1:
+ version "0.25.1"
+ resolved "https://registry.npmmirror.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz"
+ integrity sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==
+ dependencies:
+ hermes-parser "0.25.1"
+
babel-plugin-syntax-hermes-parser@^0.23.1:
version "0.23.1"
resolved "https://registry.npmmirror.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.23.1.tgz"
@@ -3204,13 +3190,6 @@ babel-plugin-syntax-hermes-parser@^0.23.1:
dependencies:
hermes-parser "0.23.1"
-babel-plugin-syntax-hermes-parser@^0.25.1, babel-plugin-syntax-hermes-parser@0.25.1:
- version "0.25.1"
- resolved "https://registry.npmmirror.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.25.1.tgz"
- integrity sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==
- dependencies:
- hermes-parser "0.25.1"
-
babel-plugin-transform-flow-enums@^0.0.2:
version "0.0.2"
resolved "https://registry.npmmirror.com/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz"
@@ -3362,13 +3341,6 @@ bplist-creator@0.1.0:
dependencies:
stream-buffers "2.2.x"
-bplist-parser@^0.3.1:
- version "0.3.2"
- resolved "https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.3.2.tgz"
- integrity sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==
- dependencies:
- big-integer "1.6.x"
-
bplist-parser@0.3.1:
version "0.3.1"
resolved "https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.3.1.tgz"
@@ -3376,6 +3348,13 @@ bplist-parser@0.3.1:
dependencies:
big-integer "1.6.x"
+bplist-parser@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.3.2.tgz"
+ integrity sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==
+ dependencies:
+ big-integer "1.6.x"
+
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz"
@@ -3526,12 +3505,7 @@ callsites@^3.0.0:
resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-camelcase@^5.0.0:
- version "5.3.1"
- resolved "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-camelcase@^5.3.1:
+camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
@@ -3551,16 +3525,7 @@ caniuse-lite@^1.0.30001716:
resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz"
integrity sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==
-chalk@^2.0.1:
- version "2.4.2"
- resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz"
- integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
- dependencies:
- ansi-styles "^3.2.1"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
-chalk@^2.4.2:
+chalk@^2.0.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -3657,12 +3622,7 @@ ci-info@^2.0.0:
resolved "https://registry.npmmirror.com/ci-info/-/ci-info-2.0.0.tgz"
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
-ci-info@^3.2.0:
- version "3.9.0"
- resolved "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz"
- integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
-
-ci-info@^3.3.0:
+ci-info@^3.2.0, ci-info@^3.3.0:
version "3.9.0"
resolved "https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz"
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
@@ -3751,16 +3711,16 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
-color-name@^1.0.0, color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+color-name@^1.0.0, color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
color-string@^1.6.0, color-string@^1.9.0:
version "1.9.1"
resolved "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz"
@@ -3802,12 +3762,7 @@ command-exists@^1.2.8:
resolved "https://registry.npmmirror.com/command-exists/-/command-exists-1.2.9.tgz"
integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==
-commander@^12.0.0:
- version "12.1.0"
- resolved "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz"
- integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
-
-commander@^12.1.0:
+commander@^12.0.0, commander@^12.1.0:
version "12.1.0"
resolved "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz"
integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
@@ -4097,47 +4052,26 @@ dayjs@^1.8.15:
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz"
integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==
-debug@^2.2.0:
- version "2.6.9"
- resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-debug@^2.6.9:
+debug@2.6.9, debug@^2.2.0, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
-debug@^3.1.0:
- version "3.2.7"
- resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz"
- integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
- dependencies:
- ms "^2.1.1"
-
-debug@^3.2.7:
- version "3.2.7"
- resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz"
- integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
- dependencies:
- ms "^2.1.1"
-
-debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@4:
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5:
version "4.4.1"
resolved "https://registry.npmmirror.com/debug/-/debug-4.4.1.tgz"
integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
dependencies:
ms "^2.1.3"
-debug@2.6.9:
- version "2.6.9"
- resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+debug@^3.1.0, debug@^3.2.7:
+ version "3.2.7"
+ resolved "https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz"
+ integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
dependencies:
- ms "2.0.0"
+ ms "^2.1.1"
decamelize@^1.2.0:
version "1.2.0"
@@ -4421,12 +4355,7 @@ entities@^3.0.1:
resolved "https://registry.npmmirror.com/entities/-/entities-3.0.1.tgz"
integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==
-entities@^4.2.0:
- version "4.5.0"
- resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz"
- integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
-
-entities@^4.4.0:
+entities@^4.2.0, entities@^4.4.0:
version "4.5.0"
resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
@@ -5100,7 +5029,7 @@ fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.2:
merge2 "^1.3.0"
micromatch "^4.0.8"
-fast-json-stable-stringify@^2.1.0, fast-json-stable-stringify@2.x:
+fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.1.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
@@ -5288,26 +5217,17 @@ fresh@0.5.2:
resolved "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz"
integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
-fs-extra@^8.1.0:
- version "8.1.0"
- resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz"
- integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
- dependencies:
- graceful-fs "^4.2.0"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
-
-fs-extra@^9.0.0, fs-extra@^9.1.0:
- version "9.1.0"
- resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz"
- integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+fs-extra@9.0.0:
+ version "9.0.0"
+ resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.0.0.tgz"
+ integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==
dependencies:
at-least-node "^1.0.0"
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
- universalify "^2.0.0"
+ universalify "^1.0.0"
-fs-extra@~8.1.0:
+fs-extra@^8.1.0, fs-extra@~8.1.0:
version "8.1.0"
resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz"
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
@@ -5316,15 +5236,15 @@ fs-extra@~8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-extra@9.0.0:
- version "9.0.0"
- resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.0.0.tgz"
- integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==
+fs-extra@^9.0.0, fs-extra@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz"
+ integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
dependencies:
at-least-node "^1.0.0"
graceful-fs "^4.2.0"
jsonfile "^6.0.1"
- universalify "^1.0.0"
+ universalify "^2.0.0"
fs-minipass@^2.0.0:
version "2.1.0"
@@ -5468,43 +5388,7 @@ glob@^10.2.2, glob@^10.3.10, glob@^10.4.2:
package-json-from-dist "^1.0.0"
path-scurry "^1.11.1"
-glob@^7.1.1:
- version "7.2.3"
- resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^7.1.3:
- version "7.2.3"
- resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^7.1.4:
- version "7.2.3"
- resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^7.2.0:
+glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0:
version "7.2.3"
resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -5791,7 +5675,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4:
+inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -5826,7 +5710,7 @@ internal-slot@^1.1.0:
hasown "^2.0.2"
side-channel "^1.1.0"
-invariant@^2.2.4, invariant@2.2.4:
+invariant@2.2.4, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -6597,11 +6481,56 @@ lighthouse-logger@^1.0.0:
debug "^2.6.9"
marky "^1.2.2"
+lightningcss-darwin-arm64@1.27.0:
+ version "1.27.0"
+ resolved "https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.27.0.tgz#565bd610533941cba648a70e105987578d82f996"
+ integrity sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==
+
lightningcss-darwin-x64@1.27.0:
version "1.27.0"
resolved "https://registry.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.27.0.tgz"
integrity sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==
+lightningcss-freebsd-x64@1.27.0:
+ version "1.27.0"
+ resolved "https://registry.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.27.0.tgz#a7c3c4d6ee18dffeb8fa69f14f8f9267f7dc0c34"
+ integrity sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==
+
+lightningcss-linux-arm-gnueabihf@1.27.0:
+ version "1.27.0"
+ resolved "https://registry.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.27.0.tgz#c7c16432a571ec877bf734fe500e4a43d48c2814"
+ integrity sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==
+
+lightningcss-linux-arm64-gnu@1.27.0:
+ version "1.27.0"
+ resolved "https://registry.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.27.0.tgz#cfd9e18df1cd65131da286ddacfa3aee6862a752"
+ integrity sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==
+
+lightningcss-linux-arm64-musl@1.27.0:
+ version "1.27.0"
+ resolved "https://registry.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.27.0.tgz#6682ff6b9165acef9a6796bd9127a8e1247bb0ed"
+ integrity sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==
+
+lightningcss-linux-x64-gnu@1.27.0:
+ version "1.27.0"
+ resolved "https://registry.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.27.0.tgz#714221212ad184ddfe974bbb7dbe9300dfde4bc0"
+ integrity sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==
+
+lightningcss-linux-x64-musl@1.27.0:
+ version "1.27.0"
+ resolved "https://registry.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.27.0.tgz#247958daf622a030a6dc2285afa16b7184bdf21e"
+ integrity sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==
+
+lightningcss-win32-arm64-msvc@1.27.0:
+ version "1.27.0"
+ resolved "https://registry.npmmirror.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.27.0.tgz#64cfe473c264ef5dc275a4d57a516d77fcac6bc9"
+ integrity sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==
+
+lightningcss-win32-x64-msvc@1.27.0:
+ version "1.27.0"
+ resolved "https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.27.0.tgz#237d0dc87d9cdc9cf82536bcbc07426fa9f3f422"
+ integrity sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==
+
lightningcss@~1.27.0:
version "1.27.0"
resolved "https://registry.npmmirror.com/lightningcss/-/lightningcss-1.27.0.tgz"
@@ -6836,7 +6765,7 @@ metro-cache@0.81.5:
flow-enums-runtime "^0.0.6"
metro-core "0.81.5"
-metro-config@^0.81.0, metro-config@0.81.5:
+metro-config@0.81.5, metro-config@^0.81.0:
version "0.81.5"
resolved "https://registry.npmmirror.com/metro-config/-/metro-config-0.81.5.tgz"
integrity sha512-oDRAzUvj6RNRxratFdcVAqtAsg+T3qcKrGdqGZFUdwzlFJdHGR9Z413sW583uD2ynsuOjA2QB6US8FdwiBdNKg==
@@ -6850,7 +6779,7 @@ metro-config@^0.81.0, metro-config@0.81.5:
metro-core "0.81.5"
metro-runtime "0.81.5"
-metro-core@^0.81.0, metro-core@0.81.5:
+metro-core@0.81.5, metro-core@^0.81.0:
version "0.81.5"
resolved "https://registry.npmmirror.com/metro-core/-/metro-core-0.81.5.tgz"
integrity sha512-+2R0c8ByfV2N7CH5wpdIajCWa8escUFd8TukfoXyBq/vb6yTCsznoA25FhNXJ+MC/cz1L447Zj3vdUfCXIZBwg==
@@ -6889,7 +6818,7 @@ metro-resolver@0.81.5:
dependencies:
flow-enums-runtime "^0.0.6"
-metro-runtime@^0.81.0, metro-runtime@0.81.5:
+metro-runtime@0.81.5, metro-runtime@^0.81.0:
version "0.81.5"
resolved "https://registry.npmmirror.com/metro-runtime/-/metro-runtime-0.81.5.tgz"
integrity sha512-M/Gf71ictUKP9+77dV/y8XlAWg7xl76uhU7ggYFUwEdOHHWPG6gLBr1iiK0BmTjPFH8yRo/xyqMli4s3oGorPQ==
@@ -6897,7 +6826,7 @@ metro-runtime@^0.81.0, metro-runtime@0.81.5:
"@babel/runtime" "^7.25.0"
flow-enums-runtime "^0.0.6"
-metro-source-map@^0.81.0, metro-source-map@0.81.5:
+metro-source-map@0.81.5, metro-source-map@^0.81.0:
version "0.81.5"
resolved "https://registry.npmmirror.com/metro-source-map/-/metro-source-map-0.81.5.tgz"
integrity sha512-Jz+CjvCKLNbJZYJTBeN3Kq9kIJf6b61MoLBdaOQZJ5Ajhw6Pf95Nn21XwA8BwfUYgajsi6IXsp/dTZsYJbN00Q==
@@ -6956,7 +6885,7 @@ metro-transform-worker@0.81.5:
metro-transform-plugins "0.81.5"
nullthrows "^1.1.1"
-metro@^0.81.0, metro@0.81.5:
+metro@0.81.5, metro@^0.81.0:
version "0.81.5"
resolved "https://registry.npmmirror.com/metro/-/metro-0.81.5.tgz"
integrity sha512-YpFF0DDDpDVygeca2mAn7K0+us+XKmiGk4rIYMz/CRdjFoCGqAei/IQSpV0UrGfQbToSugpMQeQJveaWSH88Hg==
@@ -7010,16 +6939,16 @@ micromatch@^4.0.4, micromatch@^4.0.8:
braces "^3.0.3"
picomatch "^2.3.1"
-"mime-db@>= 1.43.0 < 2":
- version "1.54.0"
- resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.54.0.tgz"
- integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
-
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+"mime-db@>= 1.43.0 < 2":
+ version "1.54.0"
+ resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.54.0.tgz"
+ integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==
+
mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz"
@@ -7027,16 +6956,16 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.35, mime-types@~2.1.24,
dependencies:
mime-db "1.52.0"
-mime@^2.4.1:
- version "2.6.0"
- resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz"
- integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
-
mime@1.6.0:
version "1.6.0"
resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+mime@^2.4.1:
+ version "2.6.0"
+ resolved "https://registry.npmmirror.com/mime/-/mime-2.6.0.tgz"
+ integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
+
mimic-fn@^1.0.0:
version "1.2.0"
resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz"
@@ -7059,14 +6988,7 @@ minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
dependencies:
brace-expansion "^1.1.7"
-minimatch@^9.0.4:
- version "9.0.5"
- resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz"
- integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
- dependencies:
- brace-expansion "^2.0.1"
-
-minimatch@^9.0.5:
+minimatch@^9.0.4, minimatch@^9.0.5:
version "9.0.5"
resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz"
integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
@@ -7106,16 +7028,16 @@ minipass@^3.0.0:
dependencies:
yallist "^4.0.0"
-"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3, minipass@^7.1.2:
- version "7.1.2"
- resolved "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz"
- integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
-
minipass@^5.0.0:
version "5.0.0"
resolved "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz"
integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3, minipass@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz"
+ integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
+
minizlib@^2.1.1:
version "2.1.2"
resolved "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz"
@@ -7131,26 +7053,21 @@ mkdirp@^0.5.1:
dependencies:
minimist "^1.2.6"
-mkdirp@^1.0.3:
+mkdirp@^1.0.3, mkdirp@^1.0.4:
version "1.0.4"
resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-mkdirp@^1.0.4:
- version "1.0.4"
- resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz"
- integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-
-ms@^2.1.1, ms@^2.1.3, ms@2.1.3:
- version "2.1.3"
- resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
ms@2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz"
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
+ms@2.1.3, ms@^2.1.1, ms@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
mz@^2.7.0:
version "2.7.0"
resolved "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz"
@@ -7170,16 +7087,16 @@ natural-compare@^1.4.0:
resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-negotiator@~0.6.4:
- version "0.6.4"
- resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.4.tgz"
- integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
-
negotiator@0.6.3:
version "0.6.3"
resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz"
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+negotiator@~0.6.4:
+ version "0.6.4"
+ resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.4.tgz"
+ integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
+
neo-async@^2.5.0, neo-async@^2.6.1:
version "2.6.2"
resolved "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz"
@@ -7361,13 +7278,6 @@ object.values@^1.1.6, object.values@^1.2.0, object.values@^1.2.1:
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
-on-finished@~2.3.0:
- version "2.3.0"
- resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz"
- integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==
- dependencies:
- ee-first "1.1.1"
-
on-finished@2.4.1:
version "2.4.1"
resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz"
@@ -7375,6 +7285,13 @@ on-finished@2.4.1:
dependencies:
ee-first "1.1.1"
+on-finished@~2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz"
+ integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==
+ dependencies:
+ ee-first "1.1.1"
+
on-headers@~1.0.2:
version "1.0.2"
resolved "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz"
@@ -7473,14 +7390,7 @@ p-limit@^2.0.0, p-limit@^2.2.0:
dependencies:
p-try "^2.0.0"
-p-limit@^3.0.2:
- version "3.1.0"
- resolved "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz"
- integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
- dependencies:
- yocto-queue "^0.1.0"
-
-p-limit@^3.1.0:
+p-limit@^3.0.2, p-limit@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz"
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
@@ -7594,12 +7504,7 @@ path-key@^2.0.0, path-key@^2.0.1:
resolved "https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz"
integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
-path-key@^3.0.0:
- version "3.1.1"
- resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz"
- integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
-path-key@^3.1.0:
+path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
@@ -8417,7 +8322,7 @@ safe-array-concat@^1.1.3:
has-symbols "^1.1.0"
isarray "^2.0.5"
-safe-buffer@~5.2.0, safe-buffer@5.2.1:
+safe-buffer@5.2.1, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -8456,6 +8361,13 @@ saxes@^6.0.0:
dependencies:
xmlchars "^2.2.0"
+scheduler@0.24.0-canary-efb381bbf-20230505:
+ version "0.24.0-canary-efb381bbf-20230505"
+ resolved "https://registry.npmmirror.com/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz"
+ integrity sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==
+ dependencies:
+ loose-envify "^1.1.0"
+
scheduler@^0.23.2:
version "0.23.2"
resolved "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz"
@@ -8468,13 +8380,6 @@ scheduler@^0.25.0:
resolved "https://registry.npmmirror.com/scheduler/-/scheduler-0.25.0.tgz"
integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==
-scheduler@0.24.0-canary-efb381bbf-20230505:
- version "0.24.0-canary-efb381bbf-20230505"
- resolved "https://registry.npmmirror.com/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz"
- integrity sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==
- dependencies:
- loose-envify "^1.1.0"
-
selfsigned@^2.4.1:
version "2.4.1"
resolved "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.4.1.tgz"
@@ -8483,50 +8388,30 @@ selfsigned@^2.4.1:
"@types/node-forge" "^1.3.0"
node-forge "^1"
-semver@^5.3.0:
- version "5.7.2"
- resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz"
- integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
-
-semver@^5.5.0:
- version "5.7.2"
- resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz"
- integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
+semver@7.x, semver@^7.1.3, semver@^7.3.5, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3:
+ version "7.7.2"
+ resolved "https://registry.npmmirror.com/semver/-/semver-7.7.2.tgz"
+ integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
-semver@^5.6.0:
+semver@^5.3.0, semver@^5.5.0, semver@^5.6.0:
version "5.7.2"
resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz"
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
-semver@^6.1.0:
- version "6.3.1"
- resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz"
- integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-
-semver@^6.3.0:
- version "6.3.1"
- resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz"
- integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-
-semver@^6.3.1:
+semver@^6.1.0, semver@^6.3.0, semver@^6.3.1:
version "6.3.1"
resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.1.3, semver@^7.3.5, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3, semver@7.x:
- version "7.7.2"
- resolved "https://registry.npmmirror.com/semver/-/semver-7.7.2.tgz"
- integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==
-
-send@^0.19.0:
- version "0.19.1"
- resolved "https://registry.npmmirror.com/send/-/send-0.19.1.tgz"
- integrity sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==
+send@0.19.0:
+ version "0.19.0"
+ resolved "https://registry.npmmirror.com/send/-/send-0.19.0.tgz"
+ integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
dependencies:
debug "2.6.9"
depd "2.0.0"
destroy "1.2.0"
- encodeurl "~2.0.0"
+ encodeurl "~1.0.2"
escape-html "~1.0.3"
etag "~1.8.1"
fresh "0.5.2"
@@ -8537,15 +8422,15 @@ send@^0.19.0:
range-parser "~1.2.1"
statuses "2.0.1"
-send@0.19.0:
- version "0.19.0"
- resolved "https://registry.npmmirror.com/send/-/send-0.19.0.tgz"
- integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
+send@^0.19.0:
+ version "0.19.1"
+ resolved "https://registry.npmmirror.com/send/-/send-0.19.1.tgz"
+ integrity sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==
dependencies:
debug "2.6.9"
depd "2.0.0"
destroy "1.2.0"
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
etag "~1.8.1"
fresh "0.5.2"
@@ -8779,6 +8664,11 @@ source-map-support@^0.5.16, source-map-support@~0.5.20, source-map-support@~0.5.
buffer-from "^1.0.0"
source-map "^0.6.0"
+source-map@0.5.6:
+ version "0.5.6"
+ resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz"
+ integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==
+
source-map@^0.5.6:
version "0.5.7"
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz"
@@ -8789,11 +8679,6 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-source-map@0.5.6:
- version "0.5.6"
- resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz"
- integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==
-
split-on-first@^1.0.0:
version "1.1.0"
resolved "https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz"
@@ -8854,17 +8739,17 @@ stacktrace-parser@^0.1.10:
dependencies:
type-fest "^0.7.1"
-statuses@~1.5.0:
- version "1.5.0"
- resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz"
- integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
-
statuses@2.0.1:
version "2.0.1"
resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
-stream-buffers@~2.2.0, stream-buffers@2.2.x:
+statuses@~1.5.0:
+ version "1.5.0"
+ resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz"
+ integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
+
+stream-buffers@2.2.x, stream-buffers@~2.2.0:
version "2.2.0"
resolved "https://registry.npmmirror.com/stream-buffers/-/stream-buffers-2.2.0.tgz"
integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==
@@ -8874,13 +8759,6 @@ strict-uri-encode@^2.0.0:
resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz"
integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
-string_decoder@^1.1.1:
- version "1.3.0"
- resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz"
- integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
- dependencies:
- safe-buffer "~5.2.0"
-
string-length@^4.0.1:
version "4.0.2"
resolved "https://registry.npmmirror.com/string-length/-/string-length-4.0.2.tgz"
@@ -8983,6 +8861,13 @@ string.prototype.trimstart@^1.0.8:
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
stringify-entities@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/stringify-entities/-/stringify-entities-3.1.0.tgz"
@@ -8999,14 +8884,7 @@ stringify-entities@^3.1.0:
dependencies:
ansi-regex "^5.0.1"
-strip-ansi@^5.0.0:
- version "5.2.0"
- resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz"
- integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
- dependencies:
- ansi-regex "^4.1.0"
-
-strip-ansi@^5.2.0:
+strip-ansi@^5.0.0, strip-ansi@^5.2.0:
version "5.2.0"
resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz"
integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
@@ -9494,7 +9372,7 @@ universalify@^2.0.0:
resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz"
integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==
-unpipe@~1.0.0, unpipe@1.0.0:
+unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
@@ -9579,7 +9457,7 @@ walker@^1.0.7, walker@^1.0.8:
dependencies:
makeerror "1.0.12"
-warn-once@^0.1.0, warn-once@0.1.1:
+warn-once@0.1.1, warn-once@^0.1.0:
version "0.1.1"
resolved "https://registry.npmmirror.com/warn-once/-/warn-once-0.1.1.tgz"
integrity sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==
@@ -9800,22 +9678,12 @@ ws@^6.2.3:
dependencies:
async-limiter "~1.0.0"
-ws@^7:
- version "7.5.10"
- resolved "https://registry.npmmirror.com/ws/-/ws-7.5.10.tgz"
- integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
-
-ws@^7.5.10:
+ws@^7, ws@^7.5.10:
version "7.5.10"
resolved "https://registry.npmmirror.com/ws/-/ws-7.5.10.tgz"
integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==
-ws@^8.11.0:
- version "8.18.2"
- resolved "https://registry.npmmirror.com/ws/-/ws-8.18.2.tgz"
- integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==
-
-ws@^8.12.1:
+ws@^8.11.0, ws@^8.12.1:
version "8.18.2"
resolved "https://registry.npmmirror.com/ws/-/ws-8.18.2.tgz"
integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==