@lana-commerce/core 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +531 -0
- package/cjs/actionLock.js +31 -0
- package/cjs/addEmptyListItem.js +7 -0
- package/cjs/aggregateOptions.js +178 -0
- package/cjs/analytics.js +90 -0
- package/cjs/analyticsProductData.js +33 -0
- package/cjs/arrayToDict.js +12 -0
- package/cjs/asyncModuleWrapper.js +52 -0
- package/cjs/averageReviewScore.js +45 -0
- package/cjs/buildconfig.js +16 -0
- package/cjs/cachedLoader.js +36 -0
- package/cjs/canonicalVariantURL.js +2 -0
- package/cjs/cartOperation.js +132 -0
- package/cjs/categorySEO.js +20 -0
- package/cjs/commonTypes.js +2 -0
- package/cjs/compact.js +8 -0
- package/cjs/configLoader.js +69 -0
- package/cjs/controlledQueue.js +46 -0
- package/cjs/convertImageURL.js +19 -0
- package/cjs/dataLoader.js +185 -0
- package/cjs/defaultVariant.js +30 -0
- package/cjs/effector/clearOnChangeAfterDelay.js +17 -0
- package/cjs/effector/combineEvery.js +8 -0
- package/cjs/effector/combineSome.js +8 -0
- package/cjs/effector/debounced.js +18 -0
- package/cjs/effector/form.js +168 -0
- package/cjs/effector/hideOnChangeAfterDelay.js +17 -0
- package/cjs/effector/requestResponse.js +30 -0
- package/cjs/effector/requestResponseMulti.js +51 -0
- package/cjs/effector/restoreNamed.js +8 -0
- package/cjs/effector/split.js +29 -0
- package/cjs/effector/validator.js +33 -0
- package/cjs/effector/wrapSignInRequired.js +13 -0
- package/cjs/exceptions.js +6 -0
- package/cjs/fetchAllItems.js +56 -0
- package/cjs/file.js +83 -0
- package/cjs/fileWebsocket.js +83 -0
- package/cjs/filterFunc.js +48 -0
- package/cjs/filterFuncBrand.js +12 -0
- package/cjs/filterFuncCategory.js +12 -0
- package/cjs/filterFuncContentBlock.js +19 -0
- package/cjs/filterFuncCustomer.js +161 -0
- package/cjs/filterFuncDataFeed.js +54 -0
- package/cjs/filterFuncOrder.js +334 -0
- package/cjs/filterFuncPreprocess.js +14 -0
- package/cjs/filterFuncProduct.js +70 -0
- package/cjs/filterFuncPurchaseOrder.js +126 -0
- package/cjs/filterFuncSupplier.js +36 -0
- package/cjs/filterFuncTransfer.js +135 -0
- package/cjs/formatAbbrevNumber.js +21 -0
- package/cjs/formatCurrency.js +47 -0
- package/cjs/formatToJSX.js +123 -0
- package/cjs/fulfillmentNumber.js +7 -0
- package/cjs/generateRandomToken.js +12 -0
- package/cjs/generateUUID.js +10 -0
- package/cjs/generated/codes.js +47 -0
- package/cjs/genericFile.js +73 -0
- package/cjs/getSalesChannelID.js +13 -0
- package/cjs/getSessionID.js +13 -0
- package/cjs/getTimezone.js +12 -0
- package/cjs/graphql/fragments/Branding.js +3 -0
- package/cjs/graphql/fragments/BrandingField.js +3 -0
- package/cjs/graphql/fragments/CartCustomItem.js +3 -0
- package/cjs/graphql/fragments/CartOrder.js +3 -0
- package/cjs/graphql/fragments/CartVariant.js +3 -0
- package/cjs/graphql/fragments/CartVariantFull.js +3 -0
- package/cjs/graphql/fragments/Category.js +3 -0
- package/cjs/graphql/fragments/CommonCartVariant.js +3 -0
- package/cjs/graphql/fragments/Currency.js +3 -0
- package/cjs/graphql/fragments/CurrencyPrice.js +3 -0
- package/cjs/graphql/fragments/CustomField.js +3 -0
- package/cjs/graphql/fragments/CustomFieldObjects.js +3 -0
- package/cjs/graphql/fragments/Customer.js +3 -0
- package/cjs/graphql/fragments/CustomerBalance.js +3 -0
- package/cjs/graphql/fragments/CustomerBalanceHistory.js +3 -0
- package/cjs/graphql/fragments/CustomerFavorite.js +3 -0
- package/cjs/graphql/fragments/CustomerFavoriteShort.js +3 -0
- package/cjs/graphql/fragments/CustomerOAuthProvider.js +3 -0
- package/cjs/graphql/fragments/CustomerOrderBrief.js +3 -0
- package/cjs/graphql/fragments/CustomerOrderFulfillment.js +3 -0
- package/cjs/graphql/fragments/CustomerOrderFull.js +3 -0
- package/cjs/graphql/fragments/CustomerPaymentSource.js +3 -0
- package/cjs/graphql/fragments/CustomerReturnBrief.js +3 -0
- package/cjs/graphql/fragments/CustomerReturnFull.js +3 -0
- package/cjs/graphql/fragments/CustomerReturnPolicy.js +3 -0
- package/cjs/graphql/fragments/CustomerSubscriptionBrief.js +3 -0
- package/cjs/graphql/fragments/CustomerSubscriptionFull.js +3 -0
- package/cjs/graphql/fragments/File.js +3 -0
- package/cjs/graphql/fragments/FileForUpload.js +3 -0
- package/cjs/graphql/fragments/FileNoFallback.js +3 -0
- package/cjs/graphql/fragments/FullAddress.js +3 -0
- package/cjs/graphql/fragments/Gateway.js +3 -0
- package/cjs/graphql/fragments/GatewayManual.js +3 -0
- package/cjs/graphql/fragments/GatewayPaypal.js +3 -0
- package/cjs/graphql/fragments/GatewayStripe.js +3 -0
- package/cjs/graphql/fragments/GatewayTest.js +3 -0
- package/cjs/graphql/fragments/IPAndUAInfo.js +3 -0
- package/cjs/graphql/fragments/InfoCountry.js +3 -0
- package/cjs/graphql/fragments/InfoCountryDedupField.js +3 -0
- package/cjs/graphql/fragments/InfoCurrency.js +3 -0
- package/cjs/graphql/fragments/InfoProvince.js +3 -0
- package/cjs/graphql/fragments/KeyValue.js +3 -0
- package/cjs/graphql/fragments/LineItemField.js +3 -0
- package/cjs/graphql/fragments/MediaFile.js +3 -0
- package/cjs/graphql/fragments/MinCurrencyPrice.js +3 -0
- package/cjs/graphql/fragments/ProductField.js +3 -0
- package/cjs/graphql/fragments/ProductFieldSet.js +3 -0
- package/cjs/graphql/fragments/ProductFlat.js +3 -0
- package/cjs/graphql/fragments/ProductQuestion.js +3 -0
- package/cjs/graphql/fragments/ProductQuestionAnswer.js +3 -0
- package/cjs/graphql/fragments/ProductQuestionPage.js +3 -0
- package/cjs/graphql/fragments/ProductReview.js +3 -0
- package/cjs/graphql/fragments/ProductReviewAnswer.js +3 -0
- package/cjs/graphql/fragments/ProductReviewAverageScore.js +3 -0
- package/cjs/graphql/fragments/ProductReviewPage.js +3 -0
- package/cjs/graphql/fragments/ProductReviewScore.js +3 -0
- package/cjs/graphql/fragments/ProductReviewSurveyAnswer.js +3 -0
- package/cjs/graphql/fragments/ProductSearchOptionAgg.js +3 -0
- package/cjs/graphql/fragments/ProductSearchResult.js +3 -0
- package/cjs/graphql/fragments/ReturnReason.js +3 -0
- package/cjs/graphql/fragments/ReviewDimension.js +3 -0
- package/cjs/graphql/fragments/ReviewDimensionSet.js +3 -0
- package/cjs/graphql/fragments/ReviewImagePage.js +3 -0
- package/cjs/graphql/fragments/ReviewQuestionProduct.js +3 -0
- package/cjs/graphql/fragments/ReviewSettings.js +3 -0
- package/cjs/graphql/fragments/SearchProduct.js +3 -0
- package/cjs/graphql/fragments/Shop.js +3 -0
- package/cjs/graphql/fragments/SubscriptionPlan.js +3 -0
- package/cjs/graphql/fragments/SurveyQuestion.js +3 -0
- package/cjs/graphql/fragments/TieredPricing.js +3 -0
- package/cjs/graphql/fragments/TieredPricingTier.js +3 -0
- package/cjs/graphql/fragments/VariantOption.js +3 -0
- package/cjs/graphql/operations/ApplyGiftCardMutation.js +3 -0
- package/cjs/graphql/operations/AuthRequestMutation.js +3 -0
- package/cjs/graphql/operations/CancelOrderMutation.js +3 -0
- package/cjs/graphql/operations/CancelSubscriptionMutation.js +3 -0
- package/cjs/graphql/operations/ConnectOAuth2Mutation.js +3 -0
- package/cjs/graphql/operations/CreateCartMutation.js +26 -0
- package/cjs/graphql/operations/CreateFavoriteMutation.js +22 -0
- package/cjs/graphql/operations/CreateFileMutation.js +6 -0
- package/cjs/graphql/operations/CreatePaymentSourceMutation.js +6 -0
- package/cjs/graphql/operations/CreateProductQuestionAnswerMutation.js +3 -0
- package/cjs/graphql/operations/CreateProductQuestionMutation.js +8 -0
- package/cjs/graphql/operations/CreateProductReviewMutation.js +18 -0
- package/cjs/graphql/operations/CreateReturnMutation.js +22 -0
- package/cjs/graphql/operations/DeleteFavoriteMutation.js +3 -0
- package/cjs/graphql/operations/DeletePaymentSourceMutation.js +3 -0
- package/cjs/graphql/operations/DeleteProductQuestionAnswerMutation.js +3 -0
- package/cjs/graphql/operations/DeleteProductQuestionMutation.js +3 -0
- package/cjs/graphql/operations/DeleteProductReviewMutation.js +3 -0
- package/cjs/graphql/operations/DisconnectOAuth2Mutation.js +3 -0
- package/cjs/graphql/operations/EditSubscriptionMutation.js +3 -0
- package/cjs/graphql/operations/FileUploadedMutation.js +6 -0
- package/cjs/graphql/operations/FlagQuestionAnswerMutation.js +3 -0
- package/cjs/graphql/operations/FlagQuestionMutation.js +3 -0
- package/cjs/graphql/operations/FlagReviewAnswerMutation.js +3 -0
- package/cjs/graphql/operations/FlagReviewMutation.js +3 -0
- package/cjs/graphql/operations/GetBrandingQuery.js +10 -0
- package/cjs/graphql/operations/GetCartQuery.js +26 -0
- package/cjs/graphql/operations/GetCustomerAddressesPageDataQuery.js +16 -0
- package/cjs/graphql/operations/GetCustomerBalanceHistoryPageQuery.js +6 -0
- package/cjs/graphql/operations/GetCustomerBalanceQuery.js +8 -0
- package/cjs/graphql/operations/GetCustomerInfoQuery.js +10 -0
- package/cjs/graphql/operations/GetCustomerQuery.js +8 -0
- package/cjs/graphql/operations/GetFavoritesQuery.js +22 -0
- package/cjs/graphql/operations/GetFileStatusQuery.js +6 -0
- package/cjs/graphql/operations/GetGatewaysQuery.js +14 -0
- package/cjs/graphql/operations/GetInfoCurrenciesQuery.js +6 -0
- package/cjs/graphql/operations/GetLastCartQuery.js +26 -0
- package/cjs/graphql/operations/GetOrderQuery.js +30 -0
- package/cjs/graphql/operations/GetOrdersPageQuery.js +24 -0
- package/cjs/graphql/operations/GetPaymentMethodsPageDataQuery.js +18 -0
- package/cjs/graphql/operations/GetProductQuestionsPageQuery.js +10 -0
- package/cjs/graphql/operations/GetProductReviewImagesPageQuery.js +8 -0
- package/cjs/graphql/operations/GetProductReviewsPageQuery.js +20 -0
- package/cjs/graphql/operations/GetProvincesQuery.js +6 -0
- package/cjs/graphql/operations/GetQuestionQuery.js +8 -0
- package/cjs/graphql/operations/GetReturnCreationInfoQuery.js +36 -0
- package/cjs/graphql/operations/GetReturnQuery.js +28 -0
- package/cjs/graphql/operations/GetReturnsPageQuery.js +22 -0
- package/cjs/graphql/operations/GetReviewDimensionsQuery.js +6 -0
- package/cjs/graphql/operations/GetReviewQuery.js +18 -0
- package/cjs/graphql/operations/GetReviewSettingsQuery.js +12 -0
- package/cjs/graphql/operations/GetShopCurrenciesQuery.js +6 -0
- package/cjs/graphql/operations/GetShopQuery.js +8 -0
- package/cjs/graphql/operations/GetSubscriptionQuery.js +36 -0
- package/cjs/graphql/operations/GetSubscriptionsPageQuery.js +22 -0
- package/cjs/graphql/operations/GetVariantPageQuery.js +20 -0
- package/cjs/graphql/operations/LoadProductNoCustomerQuery.js +62 -0
- package/cjs/graphql/operations/LoadProductQuery.js +66 -0
- package/cjs/graphql/operations/ModifyCartMutation.js +26 -0
- package/cjs/graphql/operations/ModifyCustomerMutation.js +8 -0
- package/cjs/graphql/operations/ModifyFavoriteMutation.js +22 -0
- package/cjs/graphql/operations/ModifyProductQuestionAnswerMutation.js +3 -0
- package/cjs/graphql/operations/ModifyProductQuestionMutation.js +8 -0
- package/cjs/graphql/operations/ModifyProductReviewMutation.js +18 -0
- package/cjs/graphql/operations/NewPasswordMutation.js +3 -0
- package/cjs/graphql/operations/PauseSubscriptionMutation.js +3 -0
- package/cjs/graphql/operations/ResetPasswordMutation.js +3 -0
- package/cjs/graphql/operations/ResumeSubscriptionMutation.js +3 -0
- package/cjs/graphql/operations/SearchProductsAdvancedQuery.js +24 -0
- package/cjs/graphql/operations/SearchProductsQuery.js +20 -0
- package/cjs/graphql/operations/SearchQuestionsQuery.js +8 -0
- package/cjs/graphql/operations/SearchReviewsQuery.js +18 -0
- package/cjs/graphql/operations/SignInMutation.js +3 -0
- package/cjs/graphql/operations/SignInViaEmailCompleteMutation.js +3 -0
- package/cjs/graphql/operations/SignInViaEmailInitMutation.js +3 -0
- package/cjs/graphql/operations/SignUpMutation.js +3 -0
- package/cjs/graphql/operations/SkipNextSubscriptionMutation.js +3 -0
- package/cjs/graphql/operations/UploadFileMutation.js +3 -0
- package/cjs/graphql/operations/VerifyCodeMutation.js +3 -0
- package/cjs/graphql/operations/VoteQuestionAnswerMutation.js +3 -0
- package/cjs/graphql/operations/VoteQuestionMutation.js +3 -0
- package/cjs/graphql/operations/VoteReviewAnswerMutation.js +3 -0
- package/cjs/graphql/operations/VoteReviewMutation.js +3 -0
- package/cjs/graphql/types.js +2 -0
- package/cjs/hierarchicalSearchOption.js +42 -0
- package/cjs/idgen.js +8 -0
- package/cjs/ignoreQueue.js +50 -0
- package/cjs/imageAltProps.js +13 -0
- package/cjs/invoiceFormat.js +59 -0
- package/cjs/isShippingRequired.js +20 -0
- package/cjs/isoStripTrailingZeros.js +7 -0
- package/cjs/json/commerce.js +10 -0
- package/cjs/json/commerceFileUpload.js +57 -0
- package/cjs/json/commerceTypes.js +2 -0
- package/cjs/json/common.js +320 -0
- package/cjs/json/fetchAllItems.js +61 -0
- package/cjs/json/mutator.js +957 -0
- package/cjs/json/storefront.js +10 -0
- package/cjs/json/storefrontTypes.js +2 -0
- package/cjs/lastValue.js +17 -0
- package/cjs/lineItemPrice.js +111 -0
- package/cjs/loadJWT.js +25 -0
- package/cjs/mapInvalidInput.js +33 -0
- package/cjs/mapResponseData.js +16 -0
- package/cjs/mapResponseMultiData.js +14 -0
- package/cjs/meanBy.js +15 -0
- package/cjs/media.js +16 -0
- package/cjs/modules/advancedSearch.js +127 -0
- package/cjs/modules/cart.js +708 -0
- package/cjs/modules/config/defaultAdvancedSearchGraphQLConfig.js +8 -0
- package/cjs/modules/config/defaultCartGraphQLConfig.js +14 -0
- package/cjs/modules/config/defaultProductGraphQLConfig.js +48 -0
- package/cjs/modules/config/defaultSearchGraphQLConfig.js +8 -0
- package/cjs/modules/customer.js +2174 -0
- package/cjs/modules/helpers/cartInitOption.js +22 -0
- package/cjs/modules/helpers/cookieConsent.js +33 -0
- package/cjs/modules/helpers/customerOauth2.js +64 -0
- package/cjs/modules/helpers/getOAuth2Hook.js +52 -0
- package/cjs/modules/helpers/hookUpAnalytics.js +49 -0
- package/cjs/modules/helpers/loadJWT.js +23 -0
- package/cjs/modules/helpers/misc.js +58 -0
- package/cjs/modules/imageDialog.js +78 -0
- package/cjs/modules/persist.js +55 -0
- package/cjs/modules/popupMessage.js +21 -0
- package/cjs/modules/product.js +1261 -0
- package/cjs/modules/recentlyVisitedProducts.js +72 -0
- package/cjs/modules/search.js +102 -0
- package/cjs/multiResponseToResponse.js +22 -0
- package/cjs/nonNull.js +10 -0
- package/cjs/oauthState.js +40 -0
- package/cjs/orderShippingAddress.js +7 -0
- package/cjs/package.json +3 -0
- package/cjs/pender.js +16 -0
- package/cjs/percentageOff.js +7 -0
- package/cjs/popupConnectQueue.js +62 -0
- package/cjs/preact/components/SixDigitInput.js +167 -0
- package/cjs/preact/effector.js +74 -0
- package/cjs/preact/transition/CSSTransition.js +55 -0
- package/cjs/preact/transition/Transition.js +104 -0
- package/cjs/preact/translateLocalStatic.js +31 -0
- package/cjs/productFiltering.js +173 -0
- package/cjs/productSEO.js +51 -0
- package/cjs/productSorting.js +93 -0
- package/cjs/promiseAll.js +18 -0
- package/cjs/promiseLimit.js +38 -0
- package/cjs/rdsToInitialScores.js +32 -0
- package/cjs/react/components/Portal.js +7 -0
- package/cjs/react/components/RootCloseWrapper.js +41 -0
- package/cjs/react/components/SixDigitInput.js +167 -0
- package/cjs/react/contains.js +14 -0
- package/cjs/react/popperBinder.js +70 -0
- package/cjs/react/rootClose.js +112 -0
- package/cjs/react/translateLocalStatic.js +32 -0
- package/cjs/react/useAsyncCachedValue.js +14 -0
- package/cjs/refreshTimeout.js +25 -0
- package/cjs/remoteAuth.js +59 -0
- package/cjs/request.js +348 -0
- package/cjs/requestDetails.js +76 -0
- package/cjs/rfc3339Normalize.js +10 -0
- package/cjs/script.js +172 -0
- package/cjs/seo.js +2 -0
- package/cjs/shopDomain.js +8 -0
- package/cjs/shopLinks.js +63 -0
- package/cjs/slate.js +376 -0
- package/cjs/sleep.js +10 -0
- package/cjs/splitBy.js +21 -0
- package/cjs/splitName.js +28 -0
- package/cjs/stripZeros.js +13 -0
- package/cjs/stripeError.js +65 -0
- package/cjs/tailSplit.js +12 -0
- package/cjs/tieredPrice.js +32 -0
- package/cjs/timeIt.js +15 -0
- package/cjs/toMajor.js +8 -0
- package/cjs/toMinor.js +8 -0
- package/cjs/trace.js +37 -0
- package/cjs/translateLocale.js +12 -0
- package/cjs/traverse.js +14 -0
- package/cjs/truncate.js +21 -0
- package/cjs/typedLocalStorage.js +30 -0
- package/cjs/variantImage.js +26 -0
- package/cjs/variantImageURL.js +13 -0
- package/cjs/variantImages.js +19 -0
- package/cjs/variantInventory.js +43 -0
- package/cjs/variantOptions.js +21 -0
- package/cjs/variantPrice.js +96 -0
- package/cjs/variantPriceCommerce.js +29 -0
- package/cjs/variantTitle.js +9 -0
- package/cjs/variantTitleFull.js +11 -0
- package/cjs/variantURL.js +9 -0
- package/cjs/vendor/popper/index.d.ts +160 -0
- package/cjs/vendor/popper/index.js +2657 -0
- package/cjs/vendor/popper/index.js.map +1 -0
- package/cjs/vendor/popper/package.json +3 -0
- package/cjs/websocket.js +179 -0
- package/esm/actionLock.js +24 -0
- package/esm/addEmptyListItem.js +3 -0
- package/esm/aggregateOptions.js +169 -0
- package/esm/analytics.js +91 -0
- package/esm/analyticsProductData.js +28 -0
- package/esm/arrayToDict.js +8 -0
- package/esm/asyncModuleWrapper.js +47 -0
- package/esm/averageReviewScore.js +40 -0
- package/esm/buildconfig.js +13 -0
- package/esm/cachedLoader.js +32 -0
- package/esm/canonicalVariantURL.js +1 -0
- package/esm/cartOperation.js +126 -0
- package/esm/categorySEO.js +16 -0
- package/esm/commonTypes.js +1 -0
- package/esm/compact.js +4 -0
- package/esm/configLoader.js +61 -0
- package/esm/controlledQueue.js +38 -0
- package/esm/convertImageURL.js +15 -0
- package/esm/dataLoader.js +192 -0
- package/esm/defaultVariant.js +25 -0
- package/esm/effector/clearOnChangeAfterDelay.js +13 -0
- package/esm/effector/combineEvery.js +4 -0
- package/esm/effector/combineSome.js +4 -0
- package/esm/effector/debounced.js +14 -0
- package/esm/effector/form.js +166 -0
- package/esm/effector/hideOnChangeAfterDelay.js +13 -0
- package/esm/effector/requestResponse.js +24 -0
- package/esm/effector/requestResponseMulti.js +47 -0
- package/esm/effector/restoreNamed.js +4 -0
- package/esm/effector/split.js +25 -0
- package/esm/effector/validator.js +28 -0
- package/esm/effector/wrapSignInRequired.js +9 -0
- package/esm/exceptions.js +2 -0
- package/esm/fetchAllItems.js +44 -0
- package/esm/file.js +67 -0
- package/esm/fileWebsocket.js +75 -0
- package/esm/filterFunc.js +43 -0
- package/esm/filterFuncBrand.js +9 -0
- package/esm/filterFuncCategory.js +9 -0
- package/esm/filterFuncContentBlock.js +16 -0
- package/esm/filterFuncCustomer.js +153 -0
- package/esm/filterFuncDataFeed.js +50 -0
- package/esm/filterFuncOrder.js +325 -0
- package/esm/filterFuncPreprocess.js +9 -0
- package/esm/filterFuncProduct.js +66 -0
- package/esm/filterFuncPurchaseOrder.js +122 -0
- package/esm/filterFuncSupplier.js +31 -0
- package/esm/filterFuncTransfer.js +130 -0
- package/esm/formatAbbrevNumber.js +16 -0
- package/esm/formatCurrency.js +42 -0
- package/esm/formatToJSX.js +118 -0
- package/esm/fulfillmentNumber.js +3 -0
- package/esm/generateRandomToken.js +8 -0
- package/esm/generateUUID.js +6 -0
- package/esm/generated/codes.js +44 -0
- package/esm/genericFile.js +65 -0
- package/esm/getSalesChannelID.js +9 -0
- package/esm/getSessionID.js +9 -0
- package/esm/getTimezone.js +8 -0
- package/esm/graphql/fragments/Branding.js +1 -0
- package/esm/graphql/fragments/BrandingField.js +1 -0
- package/esm/graphql/fragments/CartCustomItem.js +1 -0
- package/esm/graphql/fragments/CartOrder.js +1 -0
- package/esm/graphql/fragments/CartVariant.js +1 -0
- package/esm/graphql/fragments/CartVariantFull.js +1 -0
- package/esm/graphql/fragments/Category.js +1 -0
- package/esm/graphql/fragments/CommonCartVariant.js +1 -0
- package/esm/graphql/fragments/Currency.js +1 -0
- package/esm/graphql/fragments/CurrencyPrice.js +1 -0
- package/esm/graphql/fragments/CustomField.js +1 -0
- package/esm/graphql/fragments/CustomFieldObjects.js +1 -0
- package/esm/graphql/fragments/Customer.js +1 -0
- package/esm/graphql/fragments/CustomerBalance.js +1 -0
- package/esm/graphql/fragments/CustomerBalanceHistory.js +1 -0
- package/esm/graphql/fragments/CustomerFavorite.js +1 -0
- package/esm/graphql/fragments/CustomerFavoriteShort.js +1 -0
- package/esm/graphql/fragments/CustomerOAuthProvider.js +1 -0
- package/esm/graphql/fragments/CustomerOrderBrief.js +1 -0
- package/esm/graphql/fragments/CustomerOrderFulfillment.js +1 -0
- package/esm/graphql/fragments/CustomerOrderFull.js +1 -0
- package/esm/graphql/fragments/CustomerPaymentSource.js +1 -0
- package/esm/graphql/fragments/CustomerReturnBrief.js +1 -0
- package/esm/graphql/fragments/CustomerReturnFull.js +1 -0
- package/esm/graphql/fragments/CustomerReturnPolicy.js +1 -0
- package/esm/graphql/fragments/CustomerSubscriptionBrief.js +1 -0
- package/esm/graphql/fragments/CustomerSubscriptionFull.js +1 -0
- package/esm/graphql/fragments/File.js +1 -0
- package/esm/graphql/fragments/FileForUpload.js +1 -0
- package/esm/graphql/fragments/FileNoFallback.js +1 -0
- package/esm/graphql/fragments/FullAddress.js +1 -0
- package/esm/graphql/fragments/Gateway.js +1 -0
- package/esm/graphql/fragments/GatewayManual.js +1 -0
- package/esm/graphql/fragments/GatewayPaypal.js +1 -0
- package/esm/graphql/fragments/GatewayStripe.js +1 -0
- package/esm/graphql/fragments/GatewayTest.js +1 -0
- package/esm/graphql/fragments/IPAndUAInfo.js +1 -0
- package/esm/graphql/fragments/InfoCountry.js +1 -0
- package/esm/graphql/fragments/InfoCountryDedupField.js +1 -0
- package/esm/graphql/fragments/InfoCurrency.js +1 -0
- package/esm/graphql/fragments/InfoProvince.js +1 -0
- package/esm/graphql/fragments/KeyValue.js +1 -0
- package/esm/graphql/fragments/LineItemField.js +1 -0
- package/esm/graphql/fragments/MediaFile.js +1 -0
- package/esm/graphql/fragments/MinCurrencyPrice.js +1 -0
- package/esm/graphql/fragments/ProductField.js +1 -0
- package/esm/graphql/fragments/ProductFieldSet.js +1 -0
- package/esm/graphql/fragments/ProductFlat.js +1 -0
- package/esm/graphql/fragments/ProductQuestion.js +1 -0
- package/esm/graphql/fragments/ProductQuestionAnswer.js +1 -0
- package/esm/graphql/fragments/ProductQuestionPage.js +1 -0
- package/esm/graphql/fragments/ProductReview.js +1 -0
- package/esm/graphql/fragments/ProductReviewAnswer.js +1 -0
- package/esm/graphql/fragments/ProductReviewAverageScore.js +1 -0
- package/esm/graphql/fragments/ProductReviewPage.js +1 -0
- package/esm/graphql/fragments/ProductReviewScore.js +1 -0
- package/esm/graphql/fragments/ProductReviewSurveyAnswer.js +1 -0
- package/esm/graphql/fragments/ProductSearchOptionAgg.js +1 -0
- package/esm/graphql/fragments/ProductSearchResult.js +1 -0
- package/esm/graphql/fragments/ReturnReason.js +1 -0
- package/esm/graphql/fragments/ReviewDimension.js +1 -0
- package/esm/graphql/fragments/ReviewDimensionSet.js +1 -0
- package/esm/graphql/fragments/ReviewImagePage.js +1 -0
- package/esm/graphql/fragments/ReviewQuestionProduct.js +1 -0
- package/esm/graphql/fragments/ReviewSettings.js +1 -0
- package/esm/graphql/fragments/SearchProduct.js +1 -0
- package/esm/graphql/fragments/Shop.js +1 -0
- package/esm/graphql/fragments/SubscriptionPlan.js +1 -0
- package/esm/graphql/fragments/SurveyQuestion.js +1 -0
- package/esm/graphql/fragments/TieredPricing.js +1 -0
- package/esm/graphql/fragments/TieredPricingTier.js +1 -0
- package/esm/graphql/fragments/VariantOption.js +1 -0
- package/esm/graphql/operations/ApplyGiftCardMutation.js +1 -0
- package/esm/graphql/operations/AuthRequestMutation.js +1 -0
- package/esm/graphql/operations/CancelOrderMutation.js +1 -0
- package/esm/graphql/operations/CancelSubscriptionMutation.js +1 -0
- package/esm/graphql/operations/ConnectOAuth2Mutation.js +1 -0
- package/esm/graphql/operations/CreateCartMutation.js +23 -0
- package/esm/graphql/operations/CreateFavoriteMutation.js +19 -0
- package/esm/graphql/operations/CreateFileMutation.js +3 -0
- package/esm/graphql/operations/CreatePaymentSourceMutation.js +3 -0
- package/esm/graphql/operations/CreateProductQuestionAnswerMutation.js +1 -0
- package/esm/graphql/operations/CreateProductQuestionMutation.js +5 -0
- package/esm/graphql/operations/CreateProductReviewMutation.js +15 -0
- package/esm/graphql/operations/CreateReturnMutation.js +19 -0
- package/esm/graphql/operations/DeleteFavoriteMutation.js +1 -0
- package/esm/graphql/operations/DeletePaymentSourceMutation.js +1 -0
- package/esm/graphql/operations/DeleteProductQuestionAnswerMutation.js +1 -0
- package/esm/graphql/operations/DeleteProductQuestionMutation.js +1 -0
- package/esm/graphql/operations/DeleteProductReviewMutation.js +1 -0
- package/esm/graphql/operations/DisconnectOAuth2Mutation.js +1 -0
- package/esm/graphql/operations/EditSubscriptionMutation.js +1 -0
- package/esm/graphql/operations/FileUploadedMutation.js +3 -0
- package/esm/graphql/operations/FlagQuestionAnswerMutation.js +1 -0
- package/esm/graphql/operations/FlagQuestionMutation.js +1 -0
- package/esm/graphql/operations/FlagReviewAnswerMutation.js +1 -0
- package/esm/graphql/operations/FlagReviewMutation.js +1 -0
- package/esm/graphql/operations/GetBrandingQuery.js +7 -0
- package/esm/graphql/operations/GetCartQuery.js +23 -0
- package/esm/graphql/operations/GetCustomerAddressesPageDataQuery.js +13 -0
- package/esm/graphql/operations/GetCustomerBalanceHistoryPageQuery.js +3 -0
- package/esm/graphql/operations/GetCustomerBalanceQuery.js +5 -0
- package/esm/graphql/operations/GetCustomerInfoQuery.js +7 -0
- package/esm/graphql/operations/GetCustomerQuery.js +5 -0
- package/esm/graphql/operations/GetFavoritesQuery.js +19 -0
- package/esm/graphql/operations/GetFileStatusQuery.js +3 -0
- package/esm/graphql/operations/GetGatewaysQuery.js +11 -0
- package/esm/graphql/operations/GetInfoCurrenciesQuery.js +3 -0
- package/esm/graphql/operations/GetLastCartQuery.js +23 -0
- package/esm/graphql/operations/GetOrderQuery.js +27 -0
- package/esm/graphql/operations/GetOrdersPageQuery.js +21 -0
- package/esm/graphql/operations/GetPaymentMethodsPageDataQuery.js +15 -0
- package/esm/graphql/operations/GetProductQuestionsPageQuery.js +7 -0
- package/esm/graphql/operations/GetProductReviewImagesPageQuery.js +5 -0
- package/esm/graphql/operations/GetProductReviewsPageQuery.js +17 -0
- package/esm/graphql/operations/GetProvincesQuery.js +3 -0
- package/esm/graphql/operations/GetQuestionQuery.js +5 -0
- package/esm/graphql/operations/GetReturnCreationInfoQuery.js +33 -0
- package/esm/graphql/operations/GetReturnQuery.js +25 -0
- package/esm/graphql/operations/GetReturnsPageQuery.js +19 -0
- package/esm/graphql/operations/GetReviewDimensionsQuery.js +3 -0
- package/esm/graphql/operations/GetReviewQuery.js +15 -0
- package/esm/graphql/operations/GetReviewSettingsQuery.js +9 -0
- package/esm/graphql/operations/GetShopCurrenciesQuery.js +3 -0
- package/esm/graphql/operations/GetShopQuery.js +5 -0
- package/esm/graphql/operations/GetSubscriptionQuery.js +33 -0
- package/esm/graphql/operations/GetSubscriptionsPageQuery.js +19 -0
- package/esm/graphql/operations/GetVariantPageQuery.js +17 -0
- package/esm/graphql/operations/LoadProductNoCustomerQuery.js +59 -0
- package/esm/graphql/operations/LoadProductQuery.js +63 -0
- package/esm/graphql/operations/ModifyCartMutation.js +23 -0
- package/esm/graphql/operations/ModifyCustomerMutation.js +5 -0
- package/esm/graphql/operations/ModifyFavoriteMutation.js +19 -0
- package/esm/graphql/operations/ModifyProductQuestionAnswerMutation.js +1 -0
- package/esm/graphql/operations/ModifyProductQuestionMutation.js +5 -0
- package/esm/graphql/operations/ModifyProductReviewMutation.js +15 -0
- package/esm/graphql/operations/NewPasswordMutation.js +1 -0
- package/esm/graphql/operations/PauseSubscriptionMutation.js +1 -0
- package/esm/graphql/operations/ResetPasswordMutation.js +1 -0
- package/esm/graphql/operations/ResumeSubscriptionMutation.js +1 -0
- package/esm/graphql/operations/SearchProductsAdvancedQuery.js +21 -0
- package/esm/graphql/operations/SearchProductsQuery.js +17 -0
- package/esm/graphql/operations/SearchQuestionsQuery.js +5 -0
- package/esm/graphql/operations/SearchReviewsQuery.js +15 -0
- package/esm/graphql/operations/SignInMutation.js +1 -0
- package/esm/graphql/operations/SignInViaEmailCompleteMutation.js +1 -0
- package/esm/graphql/operations/SignInViaEmailInitMutation.js +1 -0
- package/esm/graphql/operations/SignUpMutation.js +1 -0
- package/esm/graphql/operations/SkipNextSubscriptionMutation.js +1 -0
- package/esm/graphql/operations/UploadFileMutation.js +1 -0
- package/esm/graphql/operations/VerifyCodeMutation.js +1 -0
- package/esm/graphql/operations/VoteQuestionAnswerMutation.js +1 -0
- package/esm/graphql/operations/VoteQuestionMutation.js +1 -0
- package/esm/graphql/operations/VoteReviewAnswerMutation.js +1 -0
- package/esm/graphql/operations/VoteReviewMutation.js +1 -0
- package/esm/graphql/types.js +1 -0
- package/esm/hierarchicalSearchOption.js +43 -0
- package/esm/idgen.js +4 -0
- package/esm/ignoreQueue.js +45 -0
- package/esm/imageAltProps.js +9 -0
- package/esm/invoiceFormat.js +54 -0
- package/esm/isShippingRequired.js +16 -0
- package/esm/isoStripTrailingZeros.js +3 -0
- package/esm/json/commerce.js +3 -0
- package/esm/json/commerceFileUpload.js +43 -0
- package/esm/json/commerceTypes.js +1 -0
- package/esm/json/common.js +309 -0
- package/esm/json/fetchAllItems.js +51 -0
- package/esm/json/mutator.js +952 -0
- package/esm/json/storefront.js +3 -0
- package/esm/json/storefrontTypes.js +1 -0
- package/esm/lastValue.js +12 -0
- package/esm/lineItemPrice.js +106 -0
- package/esm/loadJWT.js +20 -0
- package/esm/mapInvalidInput.js +27 -0
- package/esm/mapResponseData.js +11 -0
- package/esm/mapResponseMultiData.js +10 -0
- package/esm/meanBy.js +11 -0
- package/esm/media.js +12 -0
- package/esm/modules/advancedSearch.js +132 -0
- package/esm/modules/cart.js +699 -0
- package/esm/modules/config/defaultAdvancedSearchGraphQLConfig.js +4 -0
- package/esm/modules/config/defaultCartGraphQLConfig.js +10 -0
- package/esm/modules/config/defaultProductGraphQLConfig.js +44 -0
- package/esm/modules/config/defaultSearchGraphQLConfig.js +4 -0
- package/esm/modules/customer.js +2198 -0
- package/esm/modules/helpers/cartInitOption.js +18 -0
- package/esm/modules/helpers/cookieConsent.js +29 -0
- package/esm/modules/helpers/customerOauth2.js +53 -0
- package/esm/modules/helpers/getOAuth2Hook.js +48 -0
- package/esm/modules/helpers/hookUpAnalytics.js +44 -0
- package/esm/modules/helpers/loadJWT.js +18 -0
- package/esm/modules/helpers/misc.js +49 -0
- package/esm/modules/imageDialog.js +71 -0
- package/esm/modules/persist.js +49 -0
- package/esm/modules/popupMessage.js +17 -0
- package/esm/modules/product.js +1278 -0
- package/esm/modules/recentlyVisitedProducts.js +70 -0
- package/esm/modules/search.js +103 -0
- package/esm/multiResponseToResponse.js +18 -0
- package/esm/nonNull.js +6 -0
- package/esm/oauthState.js +35 -0
- package/esm/orderShippingAddress.js +3 -0
- package/esm/package.json +3 -0
- package/esm/pender.js +11 -0
- package/esm/percentageOff.js +3 -0
- package/esm/popupConnectQueue.js +55 -0
- package/esm/preact/components/SixDigitInput.js +159 -0
- package/esm/preact/effector.js +69 -0
- package/esm/preact/transition/CSSTransition.js +47 -0
- package/esm/preact/transition/Transition.js +100 -0
- package/esm/preact/translateLocalStatic.js +26 -0
- package/esm/productFiltering.js +164 -0
- package/esm/productSEO.js +46 -0
- package/esm/productSorting.js +89 -0
- package/esm/promiseAll.js +11 -0
- package/esm/promiseLimit.js +32 -0
- package/esm/rdsToInitialScores.js +27 -0
- package/esm/react/components/Portal.js +2 -0
- package/esm/react/components/RootCloseWrapper.js +33 -0
- package/esm/react/components/SixDigitInput.js +158 -0
- package/esm/react/contains.js +10 -0
- package/esm/react/popperBinder.js +71 -0
- package/esm/react/rootClose.js +106 -0
- package/esm/react/translateLocalStatic.js +26 -0
- package/esm/react/useAsyncCachedValue.js +10 -0
- package/esm/refreshTimeout.js +21 -0
- package/esm/remoteAuth.js +52 -0
- package/esm/request.js +323 -0
- package/esm/requestDetails.js +69 -0
- package/esm/rfc3339Normalize.js +6 -0
- package/esm/script.js +157 -0
- package/esm/seo.js +1 -0
- package/esm/shopDomain.js +4 -0
- package/esm/shopLinks.js +47 -0
- package/esm/slate.js +364 -0
- package/esm/sleep.js +3 -0
- package/esm/splitBy.js +17 -0
- package/esm/splitName.js +22 -0
- package/esm/stripZeros.js +9 -0
- package/esm/stripeError.js +53 -0
- package/esm/tailSplit.js +8 -0
- package/esm/tieredPrice.js +28 -0
- package/esm/timeIt.js +8 -0
- package/esm/toMajor.js +4 -0
- package/esm/toMinor.js +4 -0
- package/esm/trace.js +37 -0
- package/esm/translateLocale.js +7 -0
- package/esm/traverse.js +10 -0
- package/esm/truncate.js +17 -0
- package/esm/typedLocalStorage.js +24 -0
- package/esm/variantImage.js +22 -0
- package/esm/variantImageURL.js +9 -0
- package/esm/variantImages.js +15 -0
- package/esm/variantInventory.js +38 -0
- package/esm/variantOptions.js +15 -0
- package/esm/variantPrice.js +92 -0
- package/esm/variantPriceCommerce.js +25 -0
- package/esm/variantTitle.js +5 -0
- package/esm/variantTitleFull.js +7 -0
- package/esm/variantURL.js +5 -0
- package/esm/vendor/popper/index.d.ts +160 -0
- package/esm/vendor/popper/index.js +2657 -0
- package/esm/vendor/popper/index.js.map +1 -0
- package/esm/vendor/popper/package.json +3 -0
- package/esm/websocket.js +169 -0
- package/package.json +92 -0
- package/types/actionLock.d.ts +7 -0
- package/types/addEmptyListItem.d.ts +2 -0
- package/types/aggregateOptions.d.ts +33 -0
- package/types/analytics.d.ts +23 -0
- package/types/analyticsProductData.d.ts +38 -0
- package/types/arrayToDict.d.ts +2 -0
- package/types/asyncModuleWrapper.d.ts +13 -0
- package/types/averageReviewScore.d.ts +28 -0
- package/types/buildconfig.d.ts +13 -0
- package/types/cachedLoader.d.ts +10 -0
- package/types/canonicalVariantURL.d.ts +12 -0
- package/types/cartOperation.d.ts +28 -0
- package/types/categorySEO.d.ts +17 -0
- package/types/commonTypes.d.ts +10 -0
- package/types/compact.d.ts +1 -0
- package/types/configLoader.d.ts +53 -0
- package/types/controlledQueue.d.ts +17 -0
- package/types/convertImageURL.d.ts +9 -0
- package/types/dataLoader.d.ts +301 -0
- package/types/defaultVariant.d.ts +9 -0
- package/types/effector/clearOnChangeAfterDelay.d.ts +2 -0
- package/types/effector/combineEvery.d.ts +2 -0
- package/types/effector/combineSome.d.ts +2 -0
- package/types/effector/debounced.d.ts +2 -0
- package/types/effector/form.d.ts +74 -0
- package/types/effector/hideOnChangeAfterDelay.d.ts +6 -0
- package/types/effector/requestResponse.d.ts +9 -0
- package/types/effector/requestResponseMulti.d.ts +7 -0
- package/types/effector/restoreNamed.d.ts +2 -0
- package/types/effector/split.d.ts +7 -0
- package/types/effector/validator.d.ts +14 -0
- package/types/effector/wrapSignInRequired.d.ts +2 -0
- package/types/exceptions.d.ts +2 -0
- package/types/fetchAllItems.d.ts +25 -0
- package/types/file.d.ts +4 -0
- package/types/fileWebsocket.d.ts +6 -0
- package/types/filterFunc.d.ts +8 -0
- package/types/filterFuncBrand.d.ts +3 -0
- package/types/filterFuncCategory.d.ts +3 -0
- package/types/filterFuncContentBlock.d.ts +3 -0
- package/types/filterFuncCustomer.d.ts +3 -0
- package/types/filterFuncDataFeed.d.ts +8 -0
- package/types/filterFuncOrder.d.ts +3 -0
- package/types/filterFuncPreprocess.d.ts +2 -0
- package/types/filterFuncProduct.d.ts +3 -0
- package/types/filterFuncPurchaseOrder.d.ts +3 -0
- package/types/filterFuncSupplier.d.ts +3 -0
- package/types/filterFuncTransfer.d.ts +3 -0
- package/types/formatAbbrevNumber.d.ts +6 -0
- package/types/formatCurrency.d.ts +44 -0
- package/types/formatToJSX.d.ts +24 -0
- package/types/fulfillmentNumber.d.ts +1 -0
- package/types/generateRandomToken.d.ts +1 -0
- package/types/generateUUID.d.ts +1 -0
- package/types/generated/codes.d.ts +234 -0
- package/types/genericFile.d.ts +57 -0
- package/types/getSalesChannelID.d.ts +1 -0
- package/types/getSessionID.d.ts +1 -0
- package/types/getTimezone.d.ts +1 -0
- package/types/graphql/fragments/Branding.d.ts +2 -0
- package/types/graphql/fragments/BrandingField.d.ts +2 -0
- package/types/graphql/fragments/CartCustomItem.d.ts +2 -0
- package/types/graphql/fragments/CartOrder.d.ts +2 -0
- package/types/graphql/fragments/CartVariant.d.ts +2 -0
- package/types/graphql/fragments/CartVariantFull.d.ts +2 -0
- package/types/graphql/fragments/Category.d.ts +2 -0
- package/types/graphql/fragments/CommonCartVariant.d.ts +2 -0
- package/types/graphql/fragments/Currency.d.ts +2 -0
- package/types/graphql/fragments/CurrencyPrice.d.ts +2 -0
- package/types/graphql/fragments/CustomField.d.ts +2 -0
- package/types/graphql/fragments/CustomFieldObjects.d.ts +2 -0
- package/types/graphql/fragments/Customer.d.ts +2 -0
- package/types/graphql/fragments/CustomerBalance.d.ts +2 -0
- package/types/graphql/fragments/CustomerBalanceHistory.d.ts +2 -0
- package/types/graphql/fragments/CustomerFavorite.d.ts +2 -0
- package/types/graphql/fragments/CustomerFavoriteShort.d.ts +2 -0
- package/types/graphql/fragments/CustomerOAuthProvider.d.ts +2 -0
- package/types/graphql/fragments/CustomerOrderBrief.d.ts +2 -0
- package/types/graphql/fragments/CustomerOrderFulfillment.d.ts +2 -0
- package/types/graphql/fragments/CustomerOrderFull.d.ts +2 -0
- package/types/graphql/fragments/CustomerPaymentSource.d.ts +2 -0
- package/types/graphql/fragments/CustomerReturnBrief.d.ts +2 -0
- package/types/graphql/fragments/CustomerReturnFull.d.ts +2 -0
- package/types/graphql/fragments/CustomerReturnPolicy.d.ts +2 -0
- package/types/graphql/fragments/CustomerSubscriptionBrief.d.ts +2 -0
- package/types/graphql/fragments/CustomerSubscriptionFull.d.ts +2 -0
- package/types/graphql/fragments/File.d.ts +2 -0
- package/types/graphql/fragments/FileForUpload.d.ts +2 -0
- package/types/graphql/fragments/FileNoFallback.d.ts +2 -0
- package/types/graphql/fragments/FullAddress.d.ts +2 -0
- package/types/graphql/fragments/Gateway.d.ts +2 -0
- package/types/graphql/fragments/GatewayManual.d.ts +2 -0
- package/types/graphql/fragments/GatewayPaypal.d.ts +2 -0
- package/types/graphql/fragments/GatewayStripe.d.ts +2 -0
- package/types/graphql/fragments/GatewayTest.d.ts +2 -0
- package/types/graphql/fragments/IPAndUAInfo.d.ts +2 -0
- package/types/graphql/fragments/InfoCountry.d.ts +2 -0
- package/types/graphql/fragments/InfoCountryDedupField.d.ts +2 -0
- package/types/graphql/fragments/InfoCurrency.d.ts +2 -0
- package/types/graphql/fragments/InfoProvince.d.ts +2 -0
- package/types/graphql/fragments/KeyValue.d.ts +2 -0
- package/types/graphql/fragments/LineItemField.d.ts +2 -0
- package/types/graphql/fragments/MediaFile.d.ts +2 -0
- package/types/graphql/fragments/MinCurrencyPrice.d.ts +2 -0
- package/types/graphql/fragments/ProductField.d.ts +2 -0
- package/types/graphql/fragments/ProductFieldSet.d.ts +2 -0
- package/types/graphql/fragments/ProductFlat.d.ts +2 -0
- package/types/graphql/fragments/ProductQuestion.d.ts +2 -0
- package/types/graphql/fragments/ProductQuestionAnswer.d.ts +2 -0
- package/types/graphql/fragments/ProductQuestionPage.d.ts +2 -0
- package/types/graphql/fragments/ProductReview.d.ts +2 -0
- package/types/graphql/fragments/ProductReviewAnswer.d.ts +2 -0
- package/types/graphql/fragments/ProductReviewAverageScore.d.ts +2 -0
- package/types/graphql/fragments/ProductReviewPage.d.ts +2 -0
- package/types/graphql/fragments/ProductReviewScore.d.ts +2 -0
- package/types/graphql/fragments/ProductReviewSurveyAnswer.d.ts +2 -0
- package/types/graphql/fragments/ProductSearchOptionAgg.d.ts +2 -0
- package/types/graphql/fragments/ProductSearchResult.d.ts +2 -0
- package/types/graphql/fragments/ReturnReason.d.ts +2 -0
- package/types/graphql/fragments/ReviewDimension.d.ts +2 -0
- package/types/graphql/fragments/ReviewDimensionSet.d.ts +2 -0
- package/types/graphql/fragments/ReviewImagePage.d.ts +2 -0
- package/types/graphql/fragments/ReviewQuestionProduct.d.ts +2 -0
- package/types/graphql/fragments/ReviewSettings.d.ts +2 -0
- package/types/graphql/fragments/SearchProduct.d.ts +2 -0
- package/types/graphql/fragments/Shop.d.ts +2 -0
- package/types/graphql/fragments/SubscriptionPlan.d.ts +2 -0
- package/types/graphql/fragments/SurveyQuestion.d.ts +2 -0
- package/types/graphql/fragments/TieredPricing.d.ts +2 -0
- package/types/graphql/fragments/TieredPricingTier.d.ts +2 -0
- package/types/graphql/fragments/VariantOption.d.ts +2 -0
- package/types/graphql/operations/ApplyGiftCardMutation.d.ts +3 -0
- package/types/graphql/operations/AuthRequestMutation.d.ts +3 -0
- package/types/graphql/operations/CancelOrderMutation.d.ts +3 -0
- package/types/graphql/operations/CancelSubscriptionMutation.d.ts +3 -0
- package/types/graphql/operations/ConnectOAuth2Mutation.d.ts +3 -0
- package/types/graphql/operations/CreateCartMutation.d.ts +3 -0
- package/types/graphql/operations/CreateFavoriteMutation.d.ts +3 -0
- package/types/graphql/operations/CreateFileMutation.d.ts +3 -0
- package/types/graphql/operations/CreatePaymentSourceMutation.d.ts +3 -0
- package/types/graphql/operations/CreateProductQuestionAnswerMutation.d.ts +3 -0
- package/types/graphql/operations/CreateProductQuestionMutation.d.ts +3 -0
- package/types/graphql/operations/CreateProductReviewMutation.d.ts +3 -0
- package/types/graphql/operations/CreateReturnMutation.d.ts +3 -0
- package/types/graphql/operations/DeleteFavoriteMutation.d.ts +3 -0
- package/types/graphql/operations/DeletePaymentSourceMutation.d.ts +3 -0
- package/types/graphql/operations/DeleteProductQuestionAnswerMutation.d.ts +3 -0
- package/types/graphql/operations/DeleteProductQuestionMutation.d.ts +3 -0
- package/types/graphql/operations/DeleteProductReviewMutation.d.ts +3 -0
- package/types/graphql/operations/DisconnectOAuth2Mutation.d.ts +3 -0
- package/types/graphql/operations/EditSubscriptionMutation.d.ts +3 -0
- package/types/graphql/operations/FileUploadedMutation.d.ts +3 -0
- package/types/graphql/operations/FlagQuestionAnswerMutation.d.ts +3 -0
- package/types/graphql/operations/FlagQuestionMutation.d.ts +3 -0
- package/types/graphql/operations/FlagReviewAnswerMutation.d.ts +3 -0
- package/types/graphql/operations/FlagReviewMutation.d.ts +3 -0
- package/types/graphql/operations/GetBrandingQuery.d.ts +3 -0
- package/types/graphql/operations/GetCartQuery.d.ts +3 -0
- package/types/graphql/operations/GetCustomerAddressesPageDataQuery.d.ts +3 -0
- package/types/graphql/operations/GetCustomerBalanceHistoryPageQuery.d.ts +3 -0
- package/types/graphql/operations/GetCustomerBalanceQuery.d.ts +3 -0
- package/types/graphql/operations/GetCustomerInfoQuery.d.ts +3 -0
- package/types/graphql/operations/GetCustomerQuery.d.ts +3 -0
- package/types/graphql/operations/GetFavoritesQuery.d.ts +3 -0
- package/types/graphql/operations/GetFileStatusQuery.d.ts +3 -0
- package/types/graphql/operations/GetGatewaysQuery.d.ts +3 -0
- package/types/graphql/operations/GetInfoCurrenciesQuery.d.ts +3 -0
- package/types/graphql/operations/GetLastCartQuery.d.ts +3 -0
- package/types/graphql/operations/GetOrderQuery.d.ts +3 -0
- package/types/graphql/operations/GetOrdersPageQuery.d.ts +3 -0
- package/types/graphql/operations/GetPaymentMethodsPageDataQuery.d.ts +3 -0
- package/types/graphql/operations/GetProductQuestionsPageQuery.d.ts +3 -0
- package/types/graphql/operations/GetProductReviewImagesPageQuery.d.ts +3 -0
- package/types/graphql/operations/GetProductReviewsPageQuery.d.ts +3 -0
- package/types/graphql/operations/GetProvincesQuery.d.ts +3 -0
- package/types/graphql/operations/GetQuestionQuery.d.ts +3 -0
- package/types/graphql/operations/GetReturnCreationInfoQuery.d.ts +3 -0
- package/types/graphql/operations/GetReturnQuery.d.ts +3 -0
- package/types/graphql/operations/GetReturnsPageQuery.d.ts +3 -0
- package/types/graphql/operations/GetReviewDimensionsQuery.d.ts +3 -0
- package/types/graphql/operations/GetReviewQuery.d.ts +3 -0
- package/types/graphql/operations/GetReviewSettingsQuery.d.ts +3 -0
- package/types/graphql/operations/GetShopCurrenciesQuery.d.ts +3 -0
- package/types/graphql/operations/GetShopQuery.d.ts +3 -0
- package/types/graphql/operations/GetSubscriptionQuery.d.ts +3 -0
- package/types/graphql/operations/GetSubscriptionsPageQuery.d.ts +3 -0
- package/types/graphql/operations/GetVariantPageQuery.d.ts +3 -0
- package/types/graphql/operations/LoadProductNoCustomerQuery.d.ts +3 -0
- package/types/graphql/operations/LoadProductQuery.d.ts +3 -0
- package/types/graphql/operations/ModifyCartMutation.d.ts +3 -0
- package/types/graphql/operations/ModifyCustomerMutation.d.ts +3 -0
- package/types/graphql/operations/ModifyFavoriteMutation.d.ts +3 -0
- package/types/graphql/operations/ModifyProductQuestionAnswerMutation.d.ts +3 -0
- package/types/graphql/operations/ModifyProductQuestionMutation.d.ts +3 -0
- package/types/graphql/operations/ModifyProductReviewMutation.d.ts +3 -0
- package/types/graphql/operations/NewPasswordMutation.d.ts +3 -0
- package/types/graphql/operations/PauseSubscriptionMutation.d.ts +3 -0
- package/types/graphql/operations/ResetPasswordMutation.d.ts +3 -0
- package/types/graphql/operations/ResumeSubscriptionMutation.d.ts +3 -0
- package/types/graphql/operations/SearchProductsAdvancedQuery.d.ts +3 -0
- package/types/graphql/operations/SearchProductsQuery.d.ts +3 -0
- package/types/graphql/operations/SearchQuestionsQuery.d.ts +3 -0
- package/types/graphql/operations/SearchReviewsQuery.d.ts +3 -0
- package/types/graphql/operations/SignInMutation.d.ts +3 -0
- package/types/graphql/operations/SignInViaEmailCompleteMutation.d.ts +3 -0
- package/types/graphql/operations/SignInViaEmailInitMutation.d.ts +3 -0
- package/types/graphql/operations/SignUpMutation.d.ts +3 -0
- package/types/graphql/operations/SkipNextSubscriptionMutation.d.ts +3 -0
- package/types/graphql/operations/UploadFileMutation.d.ts +3 -0
- package/types/graphql/operations/VerifyCodeMutation.d.ts +3 -0
- package/types/graphql/operations/VoteQuestionAnswerMutation.d.ts +3 -0
- package/types/graphql/operations/VoteQuestionMutation.d.ts +3 -0
- package/types/graphql/operations/VoteReviewAnswerMutation.d.ts +3 -0
- package/types/graphql/operations/VoteReviewMutation.d.ts +3 -0
- package/types/graphql/types.d.ts +2471 -0
- package/types/hierarchicalSearchOption.d.ts +14 -0
- package/types/idgen.d.ts +1 -0
- package/types/ignoreQueue.d.ts +10 -0
- package/types/imageAltProps.d.ts +11 -0
- package/types/invoiceFormat.d.ts +32 -0
- package/types/isShippingRequired.d.ts +14 -0
- package/types/isoStripTrailingZeros.d.ts +1 -0
- package/types/json/commerce.d.ts +3 -0
- package/types/json/commerceFileUpload.d.ts +20 -0
- package/types/json/commerceTypes.d.ts +15422 -0
- package/types/json/common.d.ts +81 -0
- package/types/json/fetchAllItems.d.ts +15 -0
- package/types/json/mutator.d.ts +238 -0
- package/types/json/storefront.d.ts +3 -0
- package/types/json/storefrontTypes.d.ts +5059 -0
- package/types/lastValue.d.ts +10 -0
- package/types/lineItemPrice.d.ts +18 -0
- package/types/loadJWT.d.ts +1 -0
- package/types/mapInvalidInput.d.ts +15 -0
- package/types/mapResponseData.d.ts +3 -0
- package/types/mapResponseMultiData.d.ts +2 -0
- package/types/meanBy.d.ts +1 -0
- package/types/media.d.ts +3 -0
- package/types/modules/advancedSearch.d.ts +78 -0
- package/types/modules/cart.d.ts +263 -0
- package/types/modules/config/defaultAdvancedSearchGraphQLConfig.d.ts +3 -0
- package/types/modules/config/defaultCartGraphQLConfig.d.ts +6 -0
- package/types/modules/config/defaultProductGraphQLConfig.d.ts +23 -0
- package/types/modules/config/defaultSearchGraphQLConfig.d.ts +3 -0
- package/types/modules/customer.d.ts +624 -0
- package/types/modules/helpers/cartInitOption.d.ts +2 -0
- package/types/modules/helpers/cookieConsent.d.ts +4 -0
- package/types/modules/helpers/customerOauth2.d.ts +19 -0
- package/types/modules/helpers/getOAuth2Hook.d.ts +22 -0
- package/types/modules/helpers/hookUpAnalytics.d.ts +21 -0
- package/types/modules/helpers/loadJWT.d.ts +1 -0
- package/types/modules/helpers/misc.d.ts +14 -0
- package/types/modules/imageDialog.d.ts +31 -0
- package/types/modules/persist.d.ts +13 -0
- package/types/modules/popupMessage.d.ts +9 -0
- package/types/modules/product.d.ts +320 -0
- package/types/modules/recentlyVisitedProducts.d.ts +25 -0
- package/types/modules/search.d.ts +54 -0
- package/types/multiResponseToResponse.d.ts +2 -0
- package/types/nonNull.d.ts +1 -0
- package/types/oauthState.d.ts +3 -0
- package/types/orderShippingAddress.d.ts +6 -0
- package/types/pender.d.ts +5 -0
- package/types/percentageOff.d.ts +1 -0
- package/types/popupConnectQueue.d.ts +41 -0
- package/types/preact/components/SixDigitInput.d.ts +28 -0
- package/types/preact/effector.d.ts +8 -0
- package/types/preact/transition/CSSTransition.d.ts +8 -0
- package/types/preact/transition/Transition.d.ts +30 -0
- package/types/preact/translateLocalStatic.d.ts +4 -0
- package/types/productFiltering.d.ts +58 -0
- package/types/productSEO.d.ts +59 -0
- package/types/productSorting.d.ts +35 -0
- package/types/promiseAll.d.ts +5 -0
- package/types/promiseLimit.d.ts +13 -0
- package/types/rdsToInitialScores.d.ts +26 -0
- package/types/react/components/Portal.d.ts +2 -0
- package/types/react/components/RootCloseWrapper.d.ts +18 -0
- package/types/react/components/SixDigitInput.d.ts +27 -0
- package/types/react/contains.d.ts +1 -0
- package/types/react/popperBinder.d.ts +23 -0
- package/types/react/rootClose.d.ts +18 -0
- package/types/react/translateLocalStatic.d.ts +4 -0
- package/types/react/useAsyncCachedValue.d.ts +2 -0
- package/types/refreshTimeout.d.ts +5 -0
- package/types/remoteAuth.d.ts +14 -0
- package/types/request.d.ts +104 -0
- package/types/requestDetails.d.ts +16 -0
- package/types/rfc3339Normalize.d.ts +1 -0
- package/types/script.d.ts +36 -0
- package/types/seo.d.ts +5 -0
- package/types/shopDomain.d.ts +7 -0
- package/types/shopLinks.d.ts +14 -0
- package/types/slate.d.ts +47 -0
- package/types/sleep.d.ts +1 -0
- package/types/splitBy.d.ts +1 -0
- package/types/splitName.d.ts +2 -0
- package/types/stripZeros.d.ts +1 -0
- package/types/stripeError.d.ts +14 -0
- package/types/tailSplit.d.ts +1 -0
- package/types/tieredPrice.d.ts +2 -0
- package/types/timeIt.d.ts +1 -0
- package/types/toMajor.d.ts +8 -0
- package/types/toMinor.d.ts +8 -0
- package/types/trace.d.ts +17 -0
- package/types/translateLocale.d.ts +2 -0
- package/types/traverse.d.ts +1 -0
- package/types/truncate.d.ts +7 -0
- package/types/typedLocalStorage.d.ts +3 -0
- package/types/variantImage.d.ts +16 -0
- package/types/variantImageURL.d.ts +25 -0
- package/types/variantImages.d.ts +11 -0
- package/types/variantInventory.d.ts +14 -0
- package/types/variantOptions.d.ts +18 -0
- package/types/variantPrice.d.ts +37 -0
- package/types/variantPriceCommerce.d.ts +26 -0
- package/types/variantTitle.d.ts +7 -0
- package/types/variantTitleFull.d.ts +11 -0
- package/types/variantURL.d.ts +7 -0
- package/types/websocket.d.ts +33 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { compact } from "./compact.js";
|
|
2
|
+
export function convertImageURL(cdnBaseURL, url, p) {
|
|
3
|
+
if (!url) {
|
|
4
|
+
url = `${cdnBaseURL}/placeholder.svg`;
|
|
5
|
+
}
|
|
6
|
+
const extMatch = url.match(/\.[^/.]+$/);
|
|
7
|
+
if (!extMatch) {
|
|
8
|
+
// no extension, bail out, shouldn't really happen
|
|
9
|
+
return "";
|
|
10
|
+
}
|
|
11
|
+
const ext = extMatch[0];
|
|
12
|
+
const noext = url.replace(/\.[^/.]+$/, ""); // strip away extension
|
|
13
|
+
const params = compact([p.size, p.crop, p.low ? "low" : undefined]);
|
|
14
|
+
return params.length === 0 ? url : noext + "_" + params.join("_") + (p.scale ? `@${p.scale}x` : "") + ext;
|
|
15
|
+
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { prettyPrintRequestResponseError, request } from "./request.js";
|
|
2
|
+
import { embedAnalytics } from "./script.js";
|
|
3
|
+
import { arrayToDict } from "./arrayToDict.js";
|
|
4
|
+
import { compact } from "./compact.js";
|
|
5
|
+
import { fetchAllItems } from "./fetchAllItems.js";
|
|
6
|
+
import { nonNull } from "./nonNull.js";
|
|
7
|
+
import { promiseAll } from "./promiseAll.js";
|
|
8
|
+
import { timeIt } from "./timeIt.js";
|
|
9
|
+
function throwOnFailure(resp) {
|
|
10
|
+
if (resp.kind !== "data") {
|
|
11
|
+
throw new Error(prettyPrintRequestResponseError(resp, true));
|
|
12
|
+
}
|
|
13
|
+
return resp.data;
|
|
14
|
+
}
|
|
15
|
+
async function fetchCategoriesTreeRecursive(shopID, query, opts, category) {
|
|
16
|
+
const apiCategories = throwOnFailure(await request(query)({ shopID, childrenOf: category ? category.id : undefined }, opts));
|
|
17
|
+
const categories = apiCategories.map((c) => ({ ...c, children: [] }));
|
|
18
|
+
for (const category of categories) {
|
|
19
|
+
if (!category.has_children)
|
|
20
|
+
continue;
|
|
21
|
+
category.children = await fetchCategoriesTreeRecursive(shopID, query, opts, category);
|
|
22
|
+
}
|
|
23
|
+
return categories;
|
|
24
|
+
}
|
|
25
|
+
function categoriesForEach(categories, cb, parentID = "") {
|
|
26
|
+
for (const c of categories) {
|
|
27
|
+
cb(c, parentID);
|
|
28
|
+
categoriesForEach(c.children, cb, c.id);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function flattenCategories(categories) {
|
|
32
|
+
const out = [];
|
|
33
|
+
categoriesForEach(categories, (c) => {
|
|
34
|
+
const cc = { ...c, children: [] };
|
|
35
|
+
out.push(cc);
|
|
36
|
+
});
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
function createCategoriesMap(categories) {
|
|
40
|
+
const out = {};
|
|
41
|
+
categoriesForEach(categories, (c) => {
|
|
42
|
+
out[c.id] = c;
|
|
43
|
+
});
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
function createCategoryParentMap(categories) {
|
|
47
|
+
const out = {};
|
|
48
|
+
categoriesForEach(categories, (c, parentID) => {
|
|
49
|
+
out[c.id] = parentID;
|
|
50
|
+
});
|
|
51
|
+
return out;
|
|
52
|
+
}
|
|
53
|
+
function categoryRelativeURL(c, cmap, cpmap) {
|
|
54
|
+
const parentCategory = cmap[cpmap[c.id] || ""];
|
|
55
|
+
const parentURL = parentCategory ? categoryRelativeURL(parentCategory, cmap, cpmap) : "";
|
|
56
|
+
return `${parentURL}/${c.handle}`;
|
|
57
|
+
}
|
|
58
|
+
//--------------------------------------------------------------------------------------------------------------------
|
|
59
|
+
//--------------------------------------------------------------------------------------------------------------------
|
|
60
|
+
//--------------------------------------------------------------------------------------------------------------------
|
|
61
|
+
function createCategoryBriefs(categories, products) {
|
|
62
|
+
const cmap = createCategoriesMap(categories);
|
|
63
|
+
const cpmap = createCategoryParentMap(categories);
|
|
64
|
+
const out = {};
|
|
65
|
+
categoriesForEach(categories, (c, parentID) => {
|
|
66
|
+
out[c.id] = {
|
|
67
|
+
id: c.id,
|
|
68
|
+
parentID: parentID,
|
|
69
|
+
title: c.title,
|
|
70
|
+
relativeUrl: categoryRelativeURL(c, cmap, cpmap),
|
|
71
|
+
featured: c.featured,
|
|
72
|
+
quantity: products.reduce((count, p) => count + (p.categories?.some((pc) => pc?.id === c.id) ? 1 : 0), 0),
|
|
73
|
+
imageUrl: c.image_files?.find(() => true)?.public_url || undefined,
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
return out;
|
|
77
|
+
}
|
|
78
|
+
function createProductBriefs(products) {
|
|
79
|
+
const out = {};
|
|
80
|
+
for (const p of products) {
|
|
81
|
+
out[p.id] = {
|
|
82
|
+
id: p.id,
|
|
83
|
+
handle: p.handle,
|
|
84
|
+
title: p.title,
|
|
85
|
+
average_score: p.average_score,
|
|
86
|
+
review_count: p.review_count,
|
|
87
|
+
variants: compact(p.variants?.map((v) => v
|
|
88
|
+
? {
|
|
89
|
+
currency_prices: v.currency_prices,
|
|
90
|
+
customer_group_price: v.customer_group_price,
|
|
91
|
+
id: v.id,
|
|
92
|
+
inventory: v.inventory,
|
|
93
|
+
inventory_policy: v.inventory_policy,
|
|
94
|
+
is_default: v.is_default,
|
|
95
|
+
map_price: v.map_price,
|
|
96
|
+
media_files: v.media_files,
|
|
97
|
+
options: v.options.map((opt) => ({
|
|
98
|
+
option_id: opt.option_id,
|
|
99
|
+
option_value_id: opt.option_value_id,
|
|
100
|
+
})),
|
|
101
|
+
price: v.price,
|
|
102
|
+
retail_price: v.retail_price,
|
|
103
|
+
sale_price: v.sale_price,
|
|
104
|
+
sale_price_eligible: v.sale_price_eligible,
|
|
105
|
+
sku: v.sku,
|
|
106
|
+
tiered_pricing: v.tiered_pricing,
|
|
107
|
+
}
|
|
108
|
+
: undefined)),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return out;
|
|
112
|
+
}
|
|
113
|
+
async function loadDataForLanguage(config, locale, isDefault) {
|
|
114
|
+
const opts = locale ? { ...config.opts, locale } : config.opts;
|
|
115
|
+
const ltimeIt = (name, cb) => {
|
|
116
|
+
const prefix = locale ? `[${locale}] ` : "";
|
|
117
|
+
const log = (seconds) => {
|
|
118
|
+
console.log(`${prefix}fetched ${name}: ${seconds.toFixed(3)}s elapsed`);
|
|
119
|
+
};
|
|
120
|
+
return timeIt(log, cb);
|
|
121
|
+
};
|
|
122
|
+
const { shop, currencies, products, menus, contentBlocks, categoriesTree, branding, gateways, reviewDimensions, reviewSettings, options, inventoryLocations, } = await promiseAll({
|
|
123
|
+
shop: ltimeIt("shop", async () => throwOnFailure(await request(config.graphql.getShopQuery)({ shopID: config.shopID }, opts))[0]),
|
|
124
|
+
currencies: ltimeIt("currencies", async () => throwOnFailure(await request(config.graphql.getShopCurrenciesQuery)({ shopID: config.shopID }, opts))),
|
|
125
|
+
products: ltimeIt("products", async () => throwOnFailure(await fetchAllItems(config.graphql.getProductsPageQuery, { shopID: config.shopID }, opts))),
|
|
126
|
+
menus: ltimeIt("menus", async () => throwOnFailure(await fetchAllItems(config.graphql.getMenusPageQuery, { shopID: config.shopID }, opts))),
|
|
127
|
+
contentBlocks: ltimeIt("content blocks", async () => throwOnFailure(await fetchAllItems(config.graphql.getContentBlocksPageQuery, { shopID: config.shopID }, opts))),
|
|
128
|
+
categoriesTree: ltimeIt("categories", async () => fetchCategoriesTreeRecursive(config.shopID, config.graphql.getCategoriesQuery, opts)),
|
|
129
|
+
branding: ltimeIt("branding", async () => throwOnFailure(await request(config.graphql.getBrandingQuery)({ shopID: config.shopID }, opts))),
|
|
130
|
+
gateways: ltimeIt("gateways", async () => throwOnFailure(await request(config.graphql.getGatewaysQuery)({ shopID: config.shopID }, opts))),
|
|
131
|
+
reviewDimensions: ltimeIt("review dimensions", async () => throwOnFailure(await request(config.graphql.getReviewDimensionsQuery)({ shopID: config.shopID }, opts))),
|
|
132
|
+
reviewSettings: ltimeIt("review settings", async () => throwOnFailure(await request(config.graphql.getReviewSettingsQuery)({ shopID: config.shopID }, opts))),
|
|
133
|
+
options: ltimeIt("options", async () => throwOnFailure(await request(config.graphql.getOptionsQuery)({ shopID: config.shopID }, opts))),
|
|
134
|
+
inventoryLocations: ltimeIt("inventoryLocations", async () => throwOnFailure(await request(config.graphql.getInventoryLocationsQuery)({ shopID: config.shopID }, opts))),
|
|
135
|
+
});
|
|
136
|
+
const analytics = await embedAnalytics({
|
|
137
|
+
shop,
|
|
138
|
+
branding,
|
|
139
|
+
cdn: config.cdn,
|
|
140
|
+
beacon: config.beacon,
|
|
141
|
+
});
|
|
142
|
+
const categoriesBrief = createCategoryBriefs(categoriesTree, products);
|
|
143
|
+
const categories = flattenCategories(categoriesTree);
|
|
144
|
+
const productsBrief = createProductBriefs(products);
|
|
145
|
+
const shopLocale = locale || shop.language?.code || "en";
|
|
146
|
+
const additionalDataContext = { menus, contentBlocks };
|
|
147
|
+
const additionalShopData = config.resolveAdditionalShopData(additionalDataContext);
|
|
148
|
+
const additionalLocaleData = config.resolveAdditionalLocaleData(additionalDataContext);
|
|
149
|
+
return {
|
|
150
|
+
isDefault: isDefault ?? true,
|
|
151
|
+
locale: shopLocale,
|
|
152
|
+
shopData: {
|
|
153
|
+
singleLocale: locale === undefined,
|
|
154
|
+
locale: shopLocale,
|
|
155
|
+
shop,
|
|
156
|
+
currencies: arrayToDict(currencies, (c) => c.currency.code),
|
|
157
|
+
options: arrayToDict(options, (opt) => opt.id),
|
|
158
|
+
inventoryLocations: arrayToDict(inventoryLocations, (il) => il.id),
|
|
159
|
+
gateways,
|
|
160
|
+
reviewSettings,
|
|
161
|
+
reviewDimensions: arrayToDict(reviewDimensions, (rd) => rd.id),
|
|
162
|
+
categories: categoriesBrief,
|
|
163
|
+
siteUrl: config.siteUrl,
|
|
164
|
+
cdn: config.cdn,
|
|
165
|
+
opts,
|
|
166
|
+
staticData: config.staticData,
|
|
167
|
+
...additionalShopData,
|
|
168
|
+
},
|
|
169
|
+
products,
|
|
170
|
+
productsBrief,
|
|
171
|
+
contentBlocks,
|
|
172
|
+
categories,
|
|
173
|
+
branding,
|
|
174
|
+
gateways,
|
|
175
|
+
analytics,
|
|
176
|
+
...additionalLocaleData,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
export async function loadData(config) {
|
|
180
|
+
const shop = throwOnFailure(await request(config.graphql.getShopQuery)({ shopID: config.shopID }, config.opts))[0];
|
|
181
|
+
const shopExtraLanguages = compact(shop.languages);
|
|
182
|
+
const shopLanguage = nonNull(shop.language, "shop language");
|
|
183
|
+
if (!shop.languages || shop.languages.length === 0) {
|
|
184
|
+
return { perLocale: [await loadDataForLanguage(config)] };
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
const allLanguages = [shopLanguage, ...shopExtraLanguages];
|
|
188
|
+
return {
|
|
189
|
+
perLocale: await Promise.all(allLanguages.map(async (l, idx) => loadDataForLanguage(config, l.code, idx === 0))),
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function defaultVariant(product) {
|
|
2
|
+
if (!product)
|
|
3
|
+
return undefined;
|
|
4
|
+
let out;
|
|
5
|
+
if (product.variants) {
|
|
6
|
+
for (const v of product.variants) {
|
|
7
|
+
if (!v)
|
|
8
|
+
continue;
|
|
9
|
+
if (!out) {
|
|
10
|
+
// some variant, better than nothing
|
|
11
|
+
out = v;
|
|
12
|
+
}
|
|
13
|
+
if ((v.media_files?.length || 0) > 0) {
|
|
14
|
+
// prefer some variant with images
|
|
15
|
+
out = v;
|
|
16
|
+
}
|
|
17
|
+
if (v.is_default) {
|
|
18
|
+
// definitely the one we're looking for
|
|
19
|
+
out = v;
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return out;
|
|
25
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createEvent } from "effector";
|
|
2
|
+
export function clearOnChangeAfterDelay(store, timeout) {
|
|
3
|
+
const clear = createEvent();
|
|
4
|
+
store.reset(clear);
|
|
5
|
+
let lastTimeout = null;
|
|
6
|
+
store.updates.watch(() => {
|
|
7
|
+
if (lastTimeout)
|
|
8
|
+
clearTimeout(lastTimeout);
|
|
9
|
+
lastTimeout = setTimeout(() => {
|
|
10
|
+
clear();
|
|
11
|
+
}, timeout);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createEvent } from "effector";
|
|
2
|
+
export function debounced(src, dst, delay) {
|
|
3
|
+
const setDst = createEvent();
|
|
4
|
+
dst.on(setDst, (_, v) => v);
|
|
5
|
+
let timeout;
|
|
6
|
+
src.updates.watch((v) => {
|
|
7
|
+
if (timeout)
|
|
8
|
+
clearTimeout(timeout);
|
|
9
|
+
timeout = setTimeout(() => {
|
|
10
|
+
setDst(v);
|
|
11
|
+
timeout = undefined;
|
|
12
|
+
}, delay);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { combine, createEvent, createStore, forward, guard, sample } from "effector";
|
|
2
|
+
import { applyValidators, combineValidators } from "./validator.js";
|
|
3
|
+
import { restoreNamed } from "./restoreNamed.js";
|
|
4
|
+
function commonFields(name) {
|
|
5
|
+
const setAPIError = createEvent(`${name}.setAPIError`);
|
|
6
|
+
const apiError = restoreNamed(setAPIError.map((errs) => errs[name]?.problem || null), null, `${name}.apiError`);
|
|
7
|
+
return {
|
|
8
|
+
setAPIError,
|
|
9
|
+
apiError,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function createBooleanField(name, initialValueArg) {
|
|
13
|
+
const { apiError, setAPIError } = commonFields(name);
|
|
14
|
+
const change = createEvent(`${name}.change`);
|
|
15
|
+
const changeUntouched = createEvent(`${name}.changeUntouched`);
|
|
16
|
+
const touch = createEvent(`${name}.touch`); // for compatibility with createFormSubmit
|
|
17
|
+
const setInitialValue = createEvent(`${name}.setInitialValue`);
|
|
18
|
+
const initialValue = restoreNamed(setInitialValue, initialValueArg, `${name}.initialValue`);
|
|
19
|
+
const value = restoreNamed(change, initialValueArg, `${name}.value`).on(changeUntouched, (_, v) => v);
|
|
20
|
+
const invalid = createStore(null, { name: `${name}.invalid` });
|
|
21
|
+
const visibleError = apiError;
|
|
22
|
+
const reset = createEvent(`${name}.reset`);
|
|
23
|
+
apiError.reset(reset);
|
|
24
|
+
sample({
|
|
25
|
+
source: initialValue,
|
|
26
|
+
clock: reset,
|
|
27
|
+
target: value,
|
|
28
|
+
});
|
|
29
|
+
return {
|
|
30
|
+
reset,
|
|
31
|
+
touch,
|
|
32
|
+
change,
|
|
33
|
+
changeUntouched,
|
|
34
|
+
value,
|
|
35
|
+
invalid,
|
|
36
|
+
setAPIError,
|
|
37
|
+
apiError,
|
|
38
|
+
visibleError,
|
|
39
|
+
setInitialValue,
|
|
40
|
+
initialValue,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function createStringField(name, initialValueArg, validators) {
|
|
44
|
+
return createCommonStringField(name, initialValueArg, validators);
|
|
45
|
+
}
|
|
46
|
+
export function createEnumField(name, initialValueArg, validators) {
|
|
47
|
+
return createCommonStringField(name, initialValueArg, validators);
|
|
48
|
+
}
|
|
49
|
+
function createCommonStringField(name, initialValueArg, validators) {
|
|
50
|
+
const { apiError, setAPIError } = commonFields(name);
|
|
51
|
+
const change = createEvent(`${name}.change`);
|
|
52
|
+
const changeUntouched = createEvent(`${name}.changeUntouched`);
|
|
53
|
+
const touch = createEvent(`${name}.touch`);
|
|
54
|
+
const touched = restoreNamed(change.map(() => true), false, `${name}.touched`).on(touch, () => true);
|
|
55
|
+
const setInitialValue = createEvent(`${name}.setInitialValue`);
|
|
56
|
+
const initialValue = restoreNamed(setInitialValue, initialValueArg, `${name}.initialValue`);
|
|
57
|
+
const value = restoreNamed(change, initialValueArg, `${name}.value`).on(changeUntouched, (_, v) => v);
|
|
58
|
+
const invalid = applyValidators(value, validators);
|
|
59
|
+
const visibleError = combine(touched, invalid, apiError, (touched, invalid, apiError) => {
|
|
60
|
+
if (apiError)
|
|
61
|
+
return apiError;
|
|
62
|
+
if (touched && invalid)
|
|
63
|
+
return invalid;
|
|
64
|
+
return null;
|
|
65
|
+
});
|
|
66
|
+
const reset = createEvent(`${name}.reset`);
|
|
67
|
+
apiError.reset(reset);
|
|
68
|
+
touched.reset(reset);
|
|
69
|
+
sample({
|
|
70
|
+
source: initialValue,
|
|
71
|
+
clock: reset,
|
|
72
|
+
target: value,
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
reset,
|
|
76
|
+
change,
|
|
77
|
+
changeUntouched,
|
|
78
|
+
touch,
|
|
79
|
+
touched,
|
|
80
|
+
value,
|
|
81
|
+
invalid,
|
|
82
|
+
setAPIError,
|
|
83
|
+
apiError,
|
|
84
|
+
visibleError,
|
|
85
|
+
setInitialValue,
|
|
86
|
+
initialValue,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function fieldValues(obj, keys) {
|
|
90
|
+
const out = {};
|
|
91
|
+
for (const key of keys) {
|
|
92
|
+
out[key] = obj[key].value;
|
|
93
|
+
}
|
|
94
|
+
return out;
|
|
95
|
+
}
|
|
96
|
+
export function createForm(obj) {
|
|
97
|
+
const init = createEvent();
|
|
98
|
+
const propagateInitialValues = createEvent();
|
|
99
|
+
const reset = createEvent();
|
|
100
|
+
const submit = createEvent();
|
|
101
|
+
const keys = Object.keys(obj);
|
|
102
|
+
forward({
|
|
103
|
+
from: submit,
|
|
104
|
+
to: keys.map((f) => obj[f].touch),
|
|
105
|
+
});
|
|
106
|
+
forward({
|
|
107
|
+
from: [reset, init],
|
|
108
|
+
to: keys.map((f) => obj[f].reset),
|
|
109
|
+
});
|
|
110
|
+
for (const key of keys) {
|
|
111
|
+
const f = obj[key];
|
|
112
|
+
forward({
|
|
113
|
+
from: init.map((v) => v[key]),
|
|
114
|
+
to: f.setInitialValue,
|
|
115
|
+
});
|
|
116
|
+
forward({
|
|
117
|
+
from: propagateInitialValues.map((v) => v[key]),
|
|
118
|
+
to: f.setInitialValue,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
const valid = combineValidators(keys.map((f) => obj[f].invalid));
|
|
122
|
+
// TODO: I failed figuring out how to do the type here properly. If I apply the actual type from function signature,
|
|
123
|
+
// "guard()" type inference starts to fail. Could be lib issue. Or just a type inference mess.
|
|
124
|
+
const submitted = createEvent();
|
|
125
|
+
guard({
|
|
126
|
+
source: combine(fieldValues(obj, keys)),
|
|
127
|
+
clock: submit,
|
|
128
|
+
filter: valid,
|
|
129
|
+
target: submitted,
|
|
130
|
+
});
|
|
131
|
+
const propagateErrors = createEvent();
|
|
132
|
+
forward({
|
|
133
|
+
from: propagateErrors,
|
|
134
|
+
to: keys.map((f) => obj[f].setAPIError),
|
|
135
|
+
});
|
|
136
|
+
const noAPIErrorsSet = combine(keys.map((f) => obj[f].apiError), (errs) => errs.every((e) => !e));
|
|
137
|
+
const errorPropagationFailed = createEvent();
|
|
138
|
+
guard({
|
|
139
|
+
source: propagateErrors,
|
|
140
|
+
filter: noAPIErrorsSet,
|
|
141
|
+
target: errorPropagationFailed,
|
|
142
|
+
});
|
|
143
|
+
return {
|
|
144
|
+
...obj,
|
|
145
|
+
init,
|
|
146
|
+
reset,
|
|
147
|
+
submit,
|
|
148
|
+
submitted,
|
|
149
|
+
valid,
|
|
150
|
+
propagateErrors,
|
|
151
|
+
propagateInitialValues,
|
|
152
|
+
errorPropagationFailed,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
export function createFormWithCustomError(obj, err) {
|
|
156
|
+
const form = createForm(obj);
|
|
157
|
+
const setError = createEvent("setError");
|
|
158
|
+
const error = restoreNamed(setError, err, "error");
|
|
159
|
+
error.reset(form.init);
|
|
160
|
+
error.reset(form.reset);
|
|
161
|
+
return {
|
|
162
|
+
...form,
|
|
163
|
+
error,
|
|
164
|
+
setError,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createEvent } from "effector";
|
|
2
|
+
export function hideOnChangeAfterDelay(store, timeout) {
|
|
3
|
+
const clear = createEvent();
|
|
4
|
+
store.on(clear, (prev) => ({ ...prev, visible: false }));
|
|
5
|
+
let lastTimeout = null;
|
|
6
|
+
store.updates.watch(() => {
|
|
7
|
+
if (lastTimeout)
|
|
8
|
+
clearTimeout(lastTimeout);
|
|
9
|
+
lastTimeout = setTimeout(() => {
|
|
10
|
+
clear();
|
|
11
|
+
}, timeout);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createEvent, split } from "effector";
|
|
2
|
+
export function requestResponseSplitGeneric(ev, fn) {
|
|
3
|
+
const dataSink = createEvent();
|
|
4
|
+
const errorSink = createEvent();
|
|
5
|
+
const data = dataSink.filterMap((v) => (v.kind === "data" ? fn(v.data) : undefined));
|
|
6
|
+
const error = errorSink.filterMap((v) => (v.kind !== "data" ? v : undefined));
|
|
7
|
+
split({
|
|
8
|
+
source: ev,
|
|
9
|
+
match: (ev) => ev.kind,
|
|
10
|
+
cases: {
|
|
11
|
+
data: dataSink,
|
|
12
|
+
error: errorSink,
|
|
13
|
+
system_error: errorSink,
|
|
14
|
+
custom_error: errorSink,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
return { data, error };
|
|
18
|
+
}
|
|
19
|
+
export function requestResponseSplit(ev) {
|
|
20
|
+
return requestResponseSplitGeneric(ev, (v) => v);
|
|
21
|
+
}
|
|
22
|
+
export function requestResponseSplitFirst(ev) {
|
|
23
|
+
return requestResponseSplitGeneric(ev, (v) => v[0]);
|
|
24
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createEvent } from "effector";
|
|
2
|
+
import { prettyPrintGraphErrors } from "../request.js";
|
|
3
|
+
import { splitMap } from "./split.js";
|
|
4
|
+
function allFieldsAreNull(v) {
|
|
5
|
+
for (var key in v) {
|
|
6
|
+
if (v[key] !== null)
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
export function requestResponseSplitMulti(ev) {
|
|
12
|
+
const data = createEvent();
|
|
13
|
+
const error = createEvent();
|
|
14
|
+
splitMap(ev)
|
|
15
|
+
.map((v) => {
|
|
16
|
+
return v.kind !== "data_or_error" ? v : undefined;
|
|
17
|
+
}, error)
|
|
18
|
+
.map((v) => {
|
|
19
|
+
if (v.kind !== "data_or_error")
|
|
20
|
+
return undefined;
|
|
21
|
+
if (v.errors && allFieldsAreNull(v.data)) {
|
|
22
|
+
const err = {
|
|
23
|
+
kind: "custom_error",
|
|
24
|
+
text: prettyPrintGraphErrors(v.errors),
|
|
25
|
+
};
|
|
26
|
+
return err;
|
|
27
|
+
}
|
|
28
|
+
if (!v.data) {
|
|
29
|
+
const err = {
|
|
30
|
+
kind: "custom_error",
|
|
31
|
+
text: "no data",
|
|
32
|
+
};
|
|
33
|
+
return err;
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}, error)
|
|
37
|
+
.map((v) => {
|
|
38
|
+
if (v.kind !== "data_or_error")
|
|
39
|
+
return undefined;
|
|
40
|
+
if (v.errors && allFieldsAreNull(v.data))
|
|
41
|
+
return undefined;
|
|
42
|
+
if (!v.data)
|
|
43
|
+
return undefined;
|
|
44
|
+
return v.data;
|
|
45
|
+
}, data);
|
|
46
|
+
return { data, error };
|
|
47
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { forward } from "effector";
|
|
2
|
+
export function splitMap(source) {
|
|
3
|
+
let lastSource = source;
|
|
4
|
+
const builder = {
|
|
5
|
+
map(fn, target) {
|
|
6
|
+
const classify = lastSource.map((v) => {
|
|
7
|
+
const target = fn(v);
|
|
8
|
+
return target !== undefined ? { r: true, v: target } : { r: false, v };
|
|
9
|
+
});
|
|
10
|
+
forward({
|
|
11
|
+
from: classify.filterMap((v) => (v.r ? v.v : undefined)),
|
|
12
|
+
to: target,
|
|
13
|
+
});
|
|
14
|
+
lastSource = classify.filterMap((v) => (!v.r ? v.v : undefined));
|
|
15
|
+
return builder;
|
|
16
|
+
},
|
|
17
|
+
fallback(target) {
|
|
18
|
+
forward({
|
|
19
|
+
from: lastSource,
|
|
20
|
+
to: target,
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
return builder;
|
|
25
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { combine } from "effector";
|
|
2
|
+
function makeValidator(k, fn) {
|
|
3
|
+
return (v) => (fn(v) ? null : k);
|
|
4
|
+
}
|
|
5
|
+
export function applyValidators(store, validators) {
|
|
6
|
+
return store.map((v) => {
|
|
7
|
+
for (const validator of validators) {
|
|
8
|
+
const result = validator(v);
|
|
9
|
+
if (result)
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
const nonEmpty = (v) => !!v;
|
|
16
|
+
const isEmpty = (v) => !v;
|
|
17
|
+
export const validMaxLengthLongText = makeValidator("max_length_exceeded", (v) => v.length <= 100000);
|
|
18
|
+
export const validMaxLength250 = makeValidator("max_length_exceeded", (v) => v.length <= 250);
|
|
19
|
+
export const validMaxLength190 = makeValidator("max_length_exceeded", (v) => v.length <= 190);
|
|
20
|
+
export const validMaxLength160 = makeValidator("max_length_exceeded", (v) => v.length <= 160);
|
|
21
|
+
export const validMaxLength80 = makeValidator("max_length_exceeded", (v) => v.length <= 80);
|
|
22
|
+
export const validMaxLength32 = makeValidator("max_length_exceeded", (v) => v.length <= 32);
|
|
23
|
+
export const validNonEmpty = makeValidator("invalid_non_empty", nonEmpty);
|
|
24
|
+
export const validEmail = makeValidator("invalid_email", (v) => isEmpty(v) || /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(v));
|
|
25
|
+
// TODO: improve type safety
|
|
26
|
+
export function combineValidators(validStates) {
|
|
27
|
+
return combine(validStates, (v) => v.every((v) => v === null));
|
|
28
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createEvent, sample } from "effector";
|
|
2
|
+
import { splitMap } from "./split.js";
|
|
3
|
+
export function wrapSignInRequired(jwt, signInRequired, orig) {
|
|
4
|
+
const wrappedEvent = createEvent();
|
|
5
|
+
splitMap(sample(jwt, wrappedEvent, (jwt, value) => ({ jwt, value })))
|
|
6
|
+
.map((v) => (v.jwt ? v.value : undefined), orig)
|
|
7
|
+
.map((v) => (!v.jwt ? true : undefined), signInRequired);
|
|
8
|
+
return wrappedEvent;
|
|
9
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { prettyPrintRequestResponseError, request } from "./request.js";
|
|
2
|
+
import { IterError } from "./exceptions.js";
|
|
3
|
+
export async function fetchAllItems(query, vars, opts) {
|
|
4
|
+
let lastKey = "";
|
|
5
|
+
let data = [];
|
|
6
|
+
while (true) {
|
|
7
|
+
const resp = await request(query)({ lastKey, limit: opts?.limit ?? 20, ...vars }, opts);
|
|
8
|
+
if (resp.kind === "data") {
|
|
9
|
+
const items = resp.data.items;
|
|
10
|
+
if (!items || items.length === 0) {
|
|
11
|
+
break;
|
|
12
|
+
}
|
|
13
|
+
data.push(...items);
|
|
14
|
+
lastKey = resp.data.last_key;
|
|
15
|
+
if (!lastKey) {
|
|
16
|
+
throw new IterError(`"last_key" is missing in the response, make sure you explicitly specify "sort_by" in the request`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return resp;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return { kind: "data", data };
|
|
24
|
+
}
|
|
25
|
+
export async function* iterAllItems(query, vars, opts) {
|
|
26
|
+
let lastKey = "";
|
|
27
|
+
while (true) {
|
|
28
|
+
const resp = await request(query)({ lastKey, limit: opts?.limit ?? 20, ...vars }, opts);
|
|
29
|
+
if (resp.kind !== "data") {
|
|
30
|
+
throw new IterError(prettyPrintRequestResponseError(resp, true));
|
|
31
|
+
}
|
|
32
|
+
const items = resp.data.items;
|
|
33
|
+
if (!items || items.length === 0) {
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
for (const item of items) {
|
|
37
|
+
yield item;
|
|
38
|
+
}
|
|
39
|
+
lastKey = resp.data.last_key;
|
|
40
|
+
if (!lastKey) {
|
|
41
|
+
throw new IterError(`"last_key" is missing in the response, make sure you explicitly specify "sort_by" in the request`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|