@tiledev/sdk-shopify 0.9.0 → 0.10.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.
Files changed (143) hide show
  1. package/README.md +650 -50
  2. package/dist/alertSettings.d.ts.map +1 -1
  3. package/dist/alertSettings.js +2 -0
  4. package/dist/alertSettings.js.map +1 -1
  5. package/dist/attribution.d.ts +21 -0
  6. package/dist/attribution.d.ts.map +1 -1
  7. package/dist/attribution.js +17 -0
  8. package/dist/attribution.js.map +1 -1
  9. package/dist/auth/pkce.d.ts +30 -0
  10. package/dist/auth/pkce.d.ts.map +1 -0
  11. package/dist/auth/pkce.js +128 -0
  12. package/dist/auth/pkce.js.map +1 -0
  13. package/dist/auth/session.d.ts +118 -0
  14. package/dist/auth/session.d.ts.map +1 -0
  15. package/dist/auth/session.js +896 -0
  16. package/dist/auth/session.js.map +1 -0
  17. package/dist/auth/storeCredit.d.ts +64 -0
  18. package/dist/auth/storeCredit.d.ts.map +1 -0
  19. package/dist/auth/storeCredit.js +274 -0
  20. package/dist/auth/storeCredit.js.map +1 -0
  21. package/dist/cart.d.ts +25 -1
  22. package/dist/cart.d.ts.map +1 -1
  23. package/dist/cart.js +95 -2
  24. package/dist/cart.js.map +1 -1
  25. package/dist/cartPolicy.js +4 -4
  26. package/dist/checkout.d.ts +123 -0
  27. package/dist/checkout.d.ts.map +1 -0
  28. package/dist/checkout.js +205 -0
  29. package/dist/checkout.js.map +1 -0
  30. package/dist/customer.d.ts.map +1 -1
  31. package/dist/customer.js +8 -0
  32. package/dist/customer.js.map +1 -1
  33. package/dist/index.d.ts +12 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +74 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/messages.d.ts.map +1 -1
  38. package/dist/messages.js +2 -0
  39. package/dist/messages.js.map +1 -1
  40. package/dist/money.d.ts +16 -0
  41. package/dist/money.d.ts.map +1 -1
  42. package/dist/money.js +55 -0
  43. package/dist/money.js.map +1 -1
  44. package/dist/orders.d.ts +99 -0
  45. package/dist/orders.d.ts.map +1 -0
  46. package/dist/orders.js +439 -0
  47. package/dist/orders.js.map +1 -0
  48. package/dist/productPage.d.ts +100 -0
  49. package/dist/productPage.d.ts.map +1 -0
  50. package/dist/productPage.js +298 -0
  51. package/dist/productPage.js.map +1 -0
  52. package/dist/productStore.d.ts +1 -1
  53. package/dist/productStore.d.ts.map +1 -1
  54. package/dist/productStore.js +63 -5
  55. package/dist/productStore.js.map +1 -1
  56. package/dist/products.d.ts.map +1 -1
  57. package/dist/products.js +15 -3
  58. package/dist/products.js.map +1 -1
  59. package/dist/purchaseRules.d.ts +74 -0
  60. package/dist/purchaseRules.d.ts.map +1 -0
  61. package/dist/purchaseRules.js +73 -0
  62. package/dist/purchaseRules.js.map +1 -0
  63. package/dist/queries.d.ts +15 -13
  64. package/dist/queries.d.ts.map +1 -1
  65. package/dist/queries.js +43 -7
  66. package/dist/queries.js.map +1 -1
  67. package/dist/react/ShopifyProvider.d.ts +167 -25
  68. package/dist/react/ShopifyProvider.d.ts.map +1 -1
  69. package/dist/react/ShopifyProvider.js +352 -207
  70. package/dist/react/ShopifyProvider.js.map +1 -1
  71. package/dist/react/appForeground.d.ts +6 -0
  72. package/dist/react/appForeground.d.ts.map +1 -0
  73. package/dist/react/appForeground.js +19 -0
  74. package/dist/react/appForeground.js.map +1 -0
  75. package/dist/react/appForeground.native.d.ts +2 -0
  76. package/dist/react/appForeground.native.d.ts.map +1 -0
  77. package/dist/react/appForeground.native.js +23 -0
  78. package/dist/react/appForeground.native.js.map +1 -0
  79. package/dist/react/index.d.ts +7 -1
  80. package/dist/react/index.d.ts.map +1 -1
  81. package/dist/react/index.js +23 -1
  82. package/dist/react/index.js.map +1 -1
  83. package/dist/react/tileCreditClient.d.ts +4 -0
  84. package/dist/react/tileCreditClient.d.ts.map +1 -0
  85. package/dist/react/tileCreditClient.js +27 -0
  86. package/dist/react/tileCreditClient.js.map +1 -0
  87. package/dist/react/useAppDiscountCode.d.ts +19 -0
  88. package/dist/react/useAppDiscountCode.d.ts.map +1 -0
  89. package/dist/react/useAppDiscountCode.js +44 -0
  90. package/dist/react/useAppDiscountCode.js.map +1 -0
  91. package/dist/react/useCartStoreCredit.d.ts +25 -0
  92. package/dist/react/useCartStoreCredit.d.ts.map +1 -0
  93. package/dist/react/useCartStoreCredit.js +292 -0
  94. package/dist/react/useCartStoreCredit.js.map +1 -0
  95. package/dist/react/useOrders.d.ts +104 -0
  96. package/dist/react/useOrders.d.ts.map +1 -0
  97. package/dist/react/useOrders.js +287 -0
  98. package/dist/react/useOrders.js.map +1 -0
  99. package/dist/react/useProduct.d.ts.map +1 -1
  100. package/dist/react/useProduct.js +1 -9
  101. package/dist/react/useProduct.js.map +1 -1
  102. package/dist/react/useProductPage.d.ts +148 -0
  103. package/dist/react/useProductPage.d.ts.map +1 -0
  104. package/dist/react/useProductPage.js +178 -0
  105. package/dist/react/useProductPage.js.map +1 -0
  106. package/dist/react/useProductRecommendations.d.ts +27 -0
  107. package/dist/react/useProductRecommendations.d.ts.map +1 -0
  108. package/dist/react/useProductRecommendations.js +76 -0
  109. package/dist/react/useProductRecommendations.js.map +1 -0
  110. package/dist/react/useStoreCredit.d.ts +58 -0
  111. package/dist/react/useStoreCredit.d.ts.map +1 -0
  112. package/dist/react/useStoreCredit.js +209 -0
  113. package/dist/react/useStoreCredit.js.map +1 -0
  114. package/dist/react/useTileCredit.d.ts +4 -3
  115. package/dist/react/useTileCredit.d.ts.map +1 -1
  116. package/dist/react/useTileCredit.js +63 -55
  117. package/dist/react/useTileCredit.js.map +1 -1
  118. package/dist/shopify.d.ts.map +1 -1
  119. package/dist/shopify.js +2 -0
  120. package/dist/shopify.js.map +1 -1
  121. package/dist/storedList.d.ts +27 -0
  122. package/dist/storedList.d.ts.map +1 -0
  123. package/dist/storedList.js +152 -0
  124. package/dist/storedList.js.map +1 -0
  125. package/dist/tileCredit.d.ts +25 -10
  126. package/dist/tileCredit.d.ts.map +1 -1
  127. package/dist/tileCredit.js +97 -45
  128. package/dist/tileCredit.js.map +1 -1
  129. package/dist/types.d.ts +407 -34
  130. package/dist/types.d.ts.map +1 -1
  131. package/dist/types.js +1 -2
  132. package/dist/types.js.map +1 -1
  133. package/dist/variants.d.ts.map +1 -1
  134. package/dist/variants.js +4 -3
  135. package/dist/variants.js.map +1 -1
  136. package/dist/waitlist.d.ts +4 -0
  137. package/dist/waitlist.d.ts.map +1 -0
  138. package/dist/waitlist.js +213 -0
  139. package/dist/waitlist.js.map +1 -0
  140. package/dist/wishlist.d.ts.map +1 -1
  141. package/dist/wishlist.js +70 -47
  142. package/dist/wishlist.js.map +1 -1
  143. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TileCreditClient = exports.userErrorsOf = exports.isUserErrorRejection = exports.isOutOfStockError = exports.classifyAuthFailure = exports.isAlertSilenced = exports.readCartPolicy = exports.readAlertSettings = exports.MAX_LINE_ITEMS_RANGE = exports.MAX_ALERT_LENGTH = exports.ALERT_SETTING_FIELDS = exports.MAX_LINE_ITEMS_SETTING_PATH = exports.ALERT_SETTINGS_PATH = exports.wouldExceedLineLimit = exports.projectedLineCount = exports.maxLineItems = exports.getCartPolicy = exports.setCartPolicy = exports.limitExceededMessage = exports.setMessageResolver = exports.patchMessages = exports.setMessages = exports.getMessages = exports.message = exports.DEFAULT_MESSAGES = exports.isPriceFilterInput = exports.parsePriceFilterInput = exports.priceFilterInput = exports.priceRange = exports.mergeAttribution = exports.recordRemove = exports.recordAdd = exports.serializeAttribution = exports.parseAttribution = exports.ATTRIBUTION_ATTRIBUTE_KEY = exports.toLineSnapshot = exports.toProductBase = exports.clearProductStore = exports.forgetProduct = exports.peekProduct = exports.PRODUCT_BASE_KEYS = exports.DEFAULT_CACHE_TTL_MS = exports.clearRequestCache = exports.getCurrencyCode = exports.getMoneyFormat = exports.shop = exports.applyMoneyFormat = exports.formatMoney = exports.default = exports.shopify = void 0;
4
- exports.useAlertSettings = exports.REVALIDATE_AFTER_MS = exports.useProduct = exports.SEARCH_DEBOUNCE_MS = exports.SEARCH_PAGE_SIZE = exports.useSearch = exports.COLLECTION_PAGE_SIZE = exports.useCollectionProducts = exports.useTileCredit = exports.useShopifyMessage = exports.useCheckout = exports.useCustomer = exports.useWishlist = exports.useCart = exports.useShopify = exports.ShopifyProvider = exports.TileCreditError = exports.productMetafield = exports.getProductMetafields = exports.setProductMetafields = exports.moneyToCents = exports.centsToMoney = exports.redeemAndApplyToCart = exports.getTileCreditClient = exports.configureTileCredit = void 0;
3
+ exports.showsInCart = exports.mergeAttribution = exports.recordRemove = exports.recordAdd = exports.serializeAttribution = exports.parseAttribution = exports.ATTRIBUTION_ATTRIBUTE_KEY = exports.productShareUrl = exports.parseDescriptionHtml = exports.sizedImageUrl = exports.firstImageUrl = exports.initialMediaIndex = exports.withinCeiling = exports.quantityInCart = exports.stockCeiling = exports.isLowStock = exports.variantPrice = exports.selectionLabel = exports.optionStates = exports.isVariantUnavailable = exports.selectionForVariant = exports.initialSelection = exports.findVariant = exports.selectableOptions = exports.isPlaceholderOption = exports.DEFAULT_LOW_STOCK_THRESHOLD = exports.DEFAULT_OPTION_ORDER = exports.waitlistActionFor = exports.purchaseModeFor = exports.preorderPlanFor = exports.ORDER_CLOCK_LEEWAY_MS = exports.CHECKOUT_LABEL_STEP_TIMEOUT_MS = exports.REPORT_ADDRESS_CHANGES_SCRIPT = exports.isOrderPlacedUrl = exports.toLineSnapshot = exports.toProductBase = exports.clearProductStore = exports.forgetProduct = exports.peekProduct = exports.PRODUCT_BASE_KEYS = exports.DEFAULT_CACHE_TTL_MS = exports.clearRequestCache = exports.getCurrencyCode = exports.getMoneyFormat = exports.typedAmountToCents = exports.shop = exports.applyMoneyFormat = exports.formatMoney = exports.default = exports.shopify = void 0;
4
+ exports.STORE_CREDIT_HISTORY_PAGE_SIZE = exports.STORE_CREDIT_HISTORY_QUERY = exports.STORE_CREDIT_QUERY = exports.sumStoreCredit = exports.LEGACY_PASSWORD_TOKEN_KEY = exports.PASSWORD_SESSION_KEYS = exports.SHOPIFY_SESSION_KEYS = exports.customerAccountUrls = exports.createCustomerSession = exports.TileCreditError = exports.productMetafield = exports.getProductMetafields = exports.setProductMetafields = exports.moneyToCents = exports.centsToMoney = exports.redeemAndApplyToCart = exports.getTileCreditClient = exports.configureTileCredit = exports.DEFAULT_TILE_CREDIT_BASE_URL = exports.TileCreditClient = exports.giftCardCodesNotOnCart = exports.giftCardsEndingIn = exports.userErrorsOf = exports.isUserErrorRejection = exports.isOutOfStockError = exports.classifyAuthFailure = exports.isAlertSilenced = exports.readCartPolicy = exports.readAlertSettings = exports.MAX_LINE_ITEMS_RANGE = exports.MAX_ALERT_LENGTH = exports.ALERT_SETTING_FIELDS = exports.MAX_LINE_ITEMS_SETTING_PATH = exports.ALERT_SETTINGS_PATH = exports.wouldExceedLineLimit = exports.projectedLineCount = exports.maxLineItems = exports.getCartPolicy = exports.setCartPolicy = exports.limitExceededMessage = exports.setMessageResolver = exports.patchMessages = exports.setMessages = exports.getMessages = exports.message = exports.DEFAULT_MESSAGES = exports.isPriceFilterInput = exports.parsePriceFilterInput = exports.priceFilterInput = exports.priceRange = void 0;
5
+ exports.useAppDiscountCode = exports.LATEST_ORDER_READ_AGAIN_SECONDS = exports.ORDERS_PAGE_SIZE = exports.useLatestOrderSince = exports.useOrder = exports.useOrders = exports.useStoreCreditHistory = exports.useCartStoreCredit = exports.useStoreCredit = exports.DEFAULT_RECOMMENDATION_LIMIT = exports.useProductRecommendations = exports.useProductPage = exports.useAddToCart = exports.useVariantSelection = exports.useAlertSettings = exports.REVALIDATE_AFTER_MS = exports.useProduct = exports.SEARCH_DEBOUNCE_MS = exports.SEARCH_PAGE_SIZE = exports.useSearch = exports.COLLECTION_PAGE_SIZE = exports.useCollectionProducts = exports.useTileCredit = exports.useShopifyEvents = exports.useShopifyMessage = exports.useCheckout = exports.useCustomer = exports.useWaitlist = exports.useWishlist = exports.useCart = exports.useShopify = exports.ShopifyProvider = exports.createPkce = exports.codeChallenge = exports.shopifyStoreCreditHistory = exports.tileCreditHistory = exports.tileCreditEntry = exports.storeCreditHistoryNextQuery = void 0;
5
6
  var shopify_1 = require("./shopify");
6
7
  Object.defineProperty(exports, "shopify", { enumerable: true, get: function () { return shopify_1.shopify; } });
7
8
  Object.defineProperty(exports, "default", { enumerable: true, get: function () { return shopify_1.shopify; } });
@@ -9,6 +10,7 @@ var money_1 = require("./money");
9
10
  Object.defineProperty(exports, "formatMoney", { enumerable: true, get: function () { return money_1.formatMoney; } });
10
11
  Object.defineProperty(exports, "applyMoneyFormat", { enumerable: true, get: function () { return money_1.applyMoneyFormat; } });
11
12
  Object.defineProperty(exports, "shop", { enumerable: true, get: function () { return money_1.shop; } });
13
+ Object.defineProperty(exports, "typedAmountToCents", { enumerable: true, get: function () { return money_1.typedAmountToCents; } });
12
14
  var client_1 = require("./client");
13
15
  Object.defineProperty(exports, "getMoneyFormat", { enumerable: true, get: function () { return client_1.getMoneyFormat; } });
14
16
  Object.defineProperty(exports, "getCurrencyCode", { enumerable: true, get: function () { return client_1.getCurrencyCode; } });
@@ -23,6 +25,37 @@ Object.defineProperty(exports, "clearProductStore", { enumerable: true, get: fun
23
25
  Object.defineProperty(exports, "toProductBase", { enumerable: true, get: function () { return productStore_1.toProductBase; } });
24
26
  var cart_1 = require("./cart");
25
27
  Object.defineProperty(exports, "toLineSnapshot", { enumerable: true, get: function () { return cart_1.toLineSnapshot; } });
28
+ var checkout_1 = require("./checkout");
29
+ Object.defineProperty(exports, "isOrderPlacedUrl", { enumerable: true, get: function () { return checkout_1.isOrderPlacedUrl; } });
30
+ Object.defineProperty(exports, "REPORT_ADDRESS_CHANGES_SCRIPT", { enumerable: true, get: function () { return checkout_1.REPORT_ADDRESS_CHANGES_SCRIPT; } });
31
+ Object.defineProperty(exports, "CHECKOUT_LABEL_STEP_TIMEOUT_MS", { enumerable: true, get: function () { return checkout_1.CHECKOUT_LABEL_STEP_TIMEOUT_MS; } });
32
+ var orders_1 = require("./orders");
33
+ Object.defineProperty(exports, "ORDER_CLOCK_LEEWAY_MS", { enumerable: true, get: function () { return orders_1.ORDER_CLOCK_LEEWAY_MS; } });
34
+ var purchaseRules_1 = require("./purchaseRules");
35
+ Object.defineProperty(exports, "preorderPlanFor", { enumerable: true, get: function () { return purchaseRules_1.preorderPlanFor; } });
36
+ Object.defineProperty(exports, "purchaseModeFor", { enumerable: true, get: function () { return purchaseRules_1.purchaseModeFor; } });
37
+ Object.defineProperty(exports, "waitlistActionFor", { enumerable: true, get: function () { return purchaseRules_1.waitlistActionFor; } });
38
+ var productPage_1 = require("./productPage");
39
+ Object.defineProperty(exports, "DEFAULT_OPTION_ORDER", { enumerable: true, get: function () { return productPage_1.DEFAULT_OPTION_ORDER; } });
40
+ Object.defineProperty(exports, "DEFAULT_LOW_STOCK_THRESHOLD", { enumerable: true, get: function () { return productPage_1.DEFAULT_LOW_STOCK_THRESHOLD; } });
41
+ Object.defineProperty(exports, "isPlaceholderOption", { enumerable: true, get: function () { return productPage_1.isPlaceholderOption; } });
42
+ Object.defineProperty(exports, "selectableOptions", { enumerable: true, get: function () { return productPage_1.selectableOptions; } });
43
+ Object.defineProperty(exports, "findVariant", { enumerable: true, get: function () { return productPage_1.findVariant; } });
44
+ Object.defineProperty(exports, "initialSelection", { enumerable: true, get: function () { return productPage_1.initialSelection; } });
45
+ Object.defineProperty(exports, "selectionForVariant", { enumerable: true, get: function () { return productPage_1.selectionForVariant; } });
46
+ Object.defineProperty(exports, "isVariantUnavailable", { enumerable: true, get: function () { return productPage_1.isVariantUnavailable; } });
47
+ Object.defineProperty(exports, "optionStates", { enumerable: true, get: function () { return productPage_1.optionStates; } });
48
+ Object.defineProperty(exports, "selectionLabel", { enumerable: true, get: function () { return productPage_1.selectionLabel; } });
49
+ Object.defineProperty(exports, "variantPrice", { enumerable: true, get: function () { return productPage_1.variantPrice; } });
50
+ Object.defineProperty(exports, "isLowStock", { enumerable: true, get: function () { return productPage_1.isLowStock; } });
51
+ Object.defineProperty(exports, "stockCeiling", { enumerable: true, get: function () { return productPage_1.stockCeiling; } });
52
+ Object.defineProperty(exports, "quantityInCart", { enumerable: true, get: function () { return productPage_1.quantityInCart; } });
53
+ Object.defineProperty(exports, "withinCeiling", { enumerable: true, get: function () { return productPage_1.withinCeiling; } });
54
+ Object.defineProperty(exports, "initialMediaIndex", { enumerable: true, get: function () { return productPage_1.initialMediaIndex; } });
55
+ Object.defineProperty(exports, "firstImageUrl", { enumerable: true, get: function () { return productPage_1.firstImageUrl; } });
56
+ Object.defineProperty(exports, "sizedImageUrl", { enumerable: true, get: function () { return productPage_1.sizedImageUrl; } });
57
+ Object.defineProperty(exports, "parseDescriptionHtml", { enumerable: true, get: function () { return productPage_1.parseDescriptionHtml; } });
58
+ Object.defineProperty(exports, "productShareUrl", { enumerable: true, get: function () { return productPage_1.productShareUrl; } });
26
59
  var attribution_1 = require("./attribution");
27
60
  Object.defineProperty(exports, "ATTRIBUTION_ATTRIBUTE_KEY", { enumerable: true, get: function () { return attribution_1.ATTRIBUTION_ATTRIBUTE_KEY; } });
28
61
  Object.defineProperty(exports, "parseAttribution", { enumerable: true, get: function () { return attribution_1.parseAttribution; } });
@@ -30,6 +63,7 @@ Object.defineProperty(exports, "serializeAttribution", { enumerable: true, get:
30
63
  Object.defineProperty(exports, "recordAdd", { enumerable: true, get: function () { return attribution_1.recordAdd; } });
31
64
  Object.defineProperty(exports, "recordRemove", { enumerable: true, get: function () { return attribution_1.recordRemove; } });
32
65
  Object.defineProperty(exports, "mergeAttribution", { enumerable: true, get: function () { return attribution_1.mergeAttribution; } });
66
+ Object.defineProperty(exports, "showsInCart", { enumerable: true, get: function () { return attribution_1.showsInCart; } });
33
67
  var filters_1 = require("./filters");
34
68
  Object.defineProperty(exports, "priceRange", { enumerable: true, get: function () { return filters_1.priceRange; } });
35
69
  Object.defineProperty(exports, "priceFilterInput", { enumerable: true, get: function () { return filters_1.priceFilterInput; } });
@@ -63,8 +97,12 @@ Object.defineProperty(exports, "classifyAuthFailure", { enumerable: true, get: f
63
97
  Object.defineProperty(exports, "isOutOfStockError", { enumerable: true, get: function () { return errors_1.isOutOfStockError; } });
64
98
  Object.defineProperty(exports, "isUserErrorRejection", { enumerable: true, get: function () { return errors_1.isUserErrorRejection; } });
65
99
  Object.defineProperty(exports, "userErrorsOf", { enumerable: true, get: function () { return errors_1.userErrorsOf; } });
100
+ var cart_2 = require("./cart");
101
+ Object.defineProperty(exports, "giftCardsEndingIn", { enumerable: true, get: function () { return cart_2.giftCardsEndingIn; } });
102
+ Object.defineProperty(exports, "giftCardCodesNotOnCart", { enumerable: true, get: function () { return cart_2.giftCardCodesNotOnCart; } });
66
103
  var tileCredit_1 = require("./tileCredit");
67
104
  Object.defineProperty(exports, "TileCreditClient", { enumerable: true, get: function () { return tileCredit_1.TileCreditClient; } });
105
+ Object.defineProperty(exports, "DEFAULT_TILE_CREDIT_BASE_URL", { enumerable: true, get: function () { return tileCredit_1.DEFAULT_TILE_CREDIT_BASE_URL; } });
68
106
  Object.defineProperty(exports, "configureTileCredit", { enumerable: true, get: function () { return tileCredit_1.configureTileCredit; } });
69
107
  Object.defineProperty(exports, "getTileCreditClient", { enumerable: true, get: function () { return tileCredit_1.getTileCreditClient; } });
70
108
  Object.defineProperty(exports, "redeemAndApplyToCart", { enumerable: true, get: function () { return tileCredit_1.redeemAndApplyToCart; } });
@@ -76,6 +114,24 @@ Object.defineProperty(exports, "getProductMetafields", { enumerable: true, get:
76
114
  Object.defineProperty(exports, "productMetafield", { enumerable: true, get: function () { return metafields_1.productMetafield; } });
77
115
  var types_1 = require("./types");
78
116
  Object.defineProperty(exports, "TileCreditError", { enumerable: true, get: function () { return types_1.TileCreditError; } });
117
+ var session_1 = require("./auth/session");
118
+ Object.defineProperty(exports, "createCustomerSession", { enumerable: true, get: function () { return session_1.createCustomerSession; } });
119
+ Object.defineProperty(exports, "customerAccountUrls", { enumerable: true, get: function () { return session_1.customerAccountUrls; } });
120
+ Object.defineProperty(exports, "SHOPIFY_SESSION_KEYS", { enumerable: true, get: function () { return session_1.SHOPIFY_SESSION_KEYS; } });
121
+ Object.defineProperty(exports, "PASSWORD_SESSION_KEYS", { enumerable: true, get: function () { return session_1.PASSWORD_SESSION_KEYS; } });
122
+ Object.defineProperty(exports, "LEGACY_PASSWORD_TOKEN_KEY", { enumerable: true, get: function () { return session_1.LEGACY_PASSWORD_TOKEN_KEY; } });
123
+ var storeCredit_1 = require("./auth/storeCredit");
124
+ Object.defineProperty(exports, "sumStoreCredit", { enumerable: true, get: function () { return storeCredit_1.sumStoreCredit; } });
125
+ Object.defineProperty(exports, "STORE_CREDIT_QUERY", { enumerable: true, get: function () { return storeCredit_1.STORE_CREDIT_QUERY; } });
126
+ Object.defineProperty(exports, "STORE_CREDIT_HISTORY_QUERY", { enumerable: true, get: function () { return storeCredit_1.STORE_CREDIT_HISTORY_QUERY; } });
127
+ Object.defineProperty(exports, "STORE_CREDIT_HISTORY_PAGE_SIZE", { enumerable: true, get: function () { return storeCredit_1.STORE_CREDIT_HISTORY_PAGE_SIZE; } });
128
+ Object.defineProperty(exports, "storeCreditHistoryNextQuery", { enumerable: true, get: function () { return storeCredit_1.storeCreditHistoryNextQuery; } });
129
+ Object.defineProperty(exports, "tileCreditEntry", { enumerable: true, get: function () { return storeCredit_1.tileCreditEntry; } });
130
+ Object.defineProperty(exports, "tileCreditHistory", { enumerable: true, get: function () { return storeCredit_1.tileCreditHistory; } });
131
+ Object.defineProperty(exports, "shopifyStoreCreditHistory", { enumerable: true, get: function () { return storeCredit_1.shopifyStoreCreditHistory; } });
132
+ var pkce_1 = require("./auth/pkce");
133
+ Object.defineProperty(exports, "codeChallenge", { enumerable: true, get: function () { return pkce_1.codeChallenge; } });
134
+ Object.defineProperty(exports, "createPkce", { enumerable: true, get: function () { return pkce_1.createPkce; } });
79
135
  // React helpers re-exported from the ROOT entry so consumers can write
80
136
  // import { useShopify, useTileCredit } from '@tiledev/sdk-shopify'
81
137
  // without paying for the `/react` subpath — the tile-packet-bundler only
@@ -86,9 +142,11 @@ Object.defineProperty(exports, "ShopifyProvider", { enumerable: true, get: funct
86
142
  Object.defineProperty(exports, "useShopify", { enumerable: true, get: function () { return react_1.useShopify; } });
87
143
  Object.defineProperty(exports, "useCart", { enumerable: true, get: function () { return react_1.useCart; } });
88
144
  Object.defineProperty(exports, "useWishlist", { enumerable: true, get: function () { return react_1.useWishlist; } });
145
+ Object.defineProperty(exports, "useWaitlist", { enumerable: true, get: function () { return react_1.useWaitlist; } });
89
146
  Object.defineProperty(exports, "useCustomer", { enumerable: true, get: function () { return react_1.useCustomer; } });
90
147
  Object.defineProperty(exports, "useCheckout", { enumerable: true, get: function () { return react_1.useCheckout; } });
91
148
  Object.defineProperty(exports, "useShopifyMessage", { enumerable: true, get: function () { return react_1.useShopifyMessage; } });
149
+ Object.defineProperty(exports, "useShopifyEvents", { enumerable: true, get: function () { return react_1.useShopifyEvents; } });
92
150
  Object.defineProperty(exports, "useTileCredit", { enumerable: true, get: function () { return react_1.useTileCredit; } });
93
151
  Object.defineProperty(exports, "useCollectionProducts", { enumerable: true, get: function () { return react_1.useCollectionProducts; } });
94
152
  Object.defineProperty(exports, "COLLECTION_PAGE_SIZE", { enumerable: true, get: function () { return react_1.COLLECTION_PAGE_SIZE; } });
@@ -98,4 +156,18 @@ Object.defineProperty(exports, "SEARCH_DEBOUNCE_MS", { enumerable: true, get: fu
98
156
  Object.defineProperty(exports, "useProduct", { enumerable: true, get: function () { return react_1.useProduct; } });
99
157
  Object.defineProperty(exports, "REVALIDATE_AFTER_MS", { enumerable: true, get: function () { return react_1.REVALIDATE_AFTER_MS; } });
100
158
  Object.defineProperty(exports, "useAlertSettings", { enumerable: true, get: function () { return react_1.useAlertSettings; } });
159
+ Object.defineProperty(exports, "useVariantSelection", { enumerable: true, get: function () { return react_1.useVariantSelection; } });
160
+ Object.defineProperty(exports, "useAddToCart", { enumerable: true, get: function () { return react_1.useAddToCart; } });
161
+ Object.defineProperty(exports, "useProductPage", { enumerable: true, get: function () { return react_1.useProductPage; } });
162
+ Object.defineProperty(exports, "useProductRecommendations", { enumerable: true, get: function () { return react_1.useProductRecommendations; } });
163
+ Object.defineProperty(exports, "DEFAULT_RECOMMENDATION_LIMIT", { enumerable: true, get: function () { return react_1.DEFAULT_RECOMMENDATION_LIMIT; } });
164
+ Object.defineProperty(exports, "useStoreCredit", { enumerable: true, get: function () { return react_1.useStoreCredit; } });
165
+ Object.defineProperty(exports, "useCartStoreCredit", { enumerable: true, get: function () { return react_1.useCartStoreCredit; } });
166
+ Object.defineProperty(exports, "useStoreCreditHistory", { enumerable: true, get: function () { return react_1.useStoreCreditHistory; } });
167
+ Object.defineProperty(exports, "useOrders", { enumerable: true, get: function () { return react_1.useOrders; } });
168
+ Object.defineProperty(exports, "useOrder", { enumerable: true, get: function () { return react_1.useOrder; } });
169
+ Object.defineProperty(exports, "useLatestOrderSince", { enumerable: true, get: function () { return react_1.useLatestOrderSince; } });
170
+ Object.defineProperty(exports, "ORDERS_PAGE_SIZE", { enumerable: true, get: function () { return react_1.ORDERS_PAGE_SIZE; } });
171
+ Object.defineProperty(exports, "LATEST_ORDER_READ_AGAIN_SECONDS", { enumerable: true, get: function () { return react_1.LATEST_ORDER_READ_AGAIN_SECONDS; } });
172
+ Object.defineProperty(exports, "useAppDiscountCode", { enumerable: true, get: function () { return react_1.useAppDiscountCode; } });
101
173
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,qCAAwD;AAA/C,kGAAA,OAAO,OAAA;AAAE,kGAAA,OAAO,OAAW;AACpC,iCAA8D;AAArD,oGAAA,WAAW,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAAE,6FAAA,IAAI,OAAA;AAC5C,mCAA2D;AAAlD,wGAAA,cAAc,OAAA;AAAE,yGAAA,eAAe,OAAA;AACxC,+CAAmG;AAA1F,iHAAA,iBAAiB,OAAA;AAAE,oHAAA,oBAAoB,OAAA;AAChD,+CAQwB;AAPtB,iHAAA,iBAAiB,OAAA;AACjB,2GAAA,WAAW,OAAA;AACX,6GAAA,aAAa,OAAA;AACb,iHAAA,iBAAiB,OAAA;AACjB,6GAAA,aAAa,OAAA;AAIf,+BAAwC;AAA/B,sGAAA,cAAc,OAAA;AACvB,6CAYuB;AAXrB,wHAAA,yBAAyB,OAAA;AACzB,+GAAA,gBAAgB,OAAA;AAChB,mHAAA,oBAAoB,OAAA;AACpB,wGAAA,SAAS,OAAA;AACT,2GAAA,YAAY,OAAA;AACZ,+GAAA,gBAAgB,OAAA;AAOlB,qCAMmB;AALjB,qGAAA,UAAU,OAAA;AACV,2GAAA,gBAAgB,OAAA;AAChB,gHAAA,qBAAqB,OAAA;AACrB,6GAAA,kBAAkB,OAAA;AAGpB,uCAQoB;AAPlB,4GAAA,gBAAgB,OAAA;AAChB,mGAAA,OAAO,OAAA;AACP,uGAAA,WAAW,OAAA;AACX,uGAAA,WAAW,OAAA;AACX,yGAAA,aAAa,OAAA;AACb,8GAAA,kBAAkB,OAAA;AAClB,gHAAA,oBAAoB,OAAA;AAEtB,2CAMsB;AALpB,2GAAA,aAAa,OAAA;AACb,2GAAA,aAAa,OAAA;AACb,0GAAA,YAAY,OAAA;AACZ,gHAAA,kBAAkB,OAAA;AAClB,kHAAA,oBAAoB,OAAA;AAEtB,iDAUyB;AATvB,oHAAA,mBAAmB,OAAA;AACnB,4HAAA,2BAA2B,OAAA;AAC3B,qHAAA,oBAAoB,OAAA;AACpB,iHAAA,gBAAgB,OAAA;AAChB,qHAAA,oBAAoB,OAAA;AACpB,kHAAA,iBAAiB,OAAA;AACjB,+GAAA,cAAc,OAAA;AACd,gHAAA,eAAe,OAAA;AAGjB,mCAKkB;AAJhB,6GAAA,mBAAmB,OAAA;AACnB,2GAAA,iBAAiB,OAAA;AACjB,8GAAA,oBAAoB,OAAA;AACpB,sGAAA,YAAY,OAAA;AAEd,2CAOsB;AANpB,8GAAA,gBAAgB,OAAA;AAChB,iHAAA,mBAAmB,OAAA;AACnB,iHAAA,mBAAmB,OAAA;AACnB,kHAAA,oBAAoB,OAAA;AACpB,0GAAA,YAAY,OAAA;AACZ,0GAAA,YAAY,OAAA;AAEd,2CAIsB;AAHpB,kHAAA,oBAAoB,OAAA;AACpB,kHAAA,oBAAoB,OAAA;AACpB,8GAAA,gBAAgB,OAAA;AAElB,iCAA0C;AAAjC,wGAAA,eAAe,OAAA;AAGxB,uEAAuE;AACvE,qEAAqE;AACrE,yEAAyE;AACzE,kEAAkE;AAClE,gEAAgE;AAChE,iCAyCiB;AAxCf,wGAAA,eAAe,OAAA;AACf,mGAAA,UAAU,OAAA;AACV,gGAAA,OAAO,OAAA;AACP,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,0GAAA,iBAAiB,OAAA;AACjB,sGAAA,aAAa,OAAA;AACb,8GAAA,qBAAqB,OAAA;AACrB,6GAAA,oBAAoB,OAAA;AACpB,kGAAA,SAAS,OAAA;AACT,yGAAA,gBAAgB,OAAA;AAChB,2GAAA,kBAAkB,OAAA;AAClB,mGAAA,UAAU,OAAA;AACV,4GAAA,mBAAmB,OAAA;AACnB,yGAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/E,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CActE,CAAC;AAcF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAEjE;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAE3D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAE1E;AAED,wBAAgB,WAAW,IAAI,aAAa,CAE3C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAcpD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIxD"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/E,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAgBtE,CAAC;AAcF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAEjE;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAE3D;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI,CAE1E;AAED,wBAAgB,WAAW,IAAI,aAAa,CAE3C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAcpD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIxD"}
package/dist/messages.js CHANGED
@@ -12,10 +12,12 @@ exports.DEFAULT_MESSAGES = {
12
12
  'cart.added': 'Product added to the Cart',
13
13
  'cart.removed': 'Product removed from the Cart',
14
14
  'cart.limitExceeded': 'You can not add more than 25 items on cart',
15
+ 'cart.noMoreStock': 'No more stock available',
15
16
  'cart.outOfStock': 'Sorry, this item is out of stock',
16
17
  'wishlist.added': 'Saved to your wishlist',
17
18
  'wishlist.removed': 'Removed from wishlist',
18
19
  'wishlist.empty': 'Your wishlist is empty',
20
+ 'waitlist.added': 'Added to waitlist',
19
21
  'auth.loginSuccess': 'Welcome back!',
20
22
  'auth.loginFailed': 'Incorrect email or password',
21
23
  'auth.loggedOut': 'You have been signed out',
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":";;;AAmDA,kCAEC;AAGD,sCAEC;AAED,gDAEC;AAED,kCAEC;AAMD,0BAcC;AAOD,oDAIC;AA/ED,yEAAyE;AAC5D,QAAA,gBAAgB,GAA8C;IACzE,YAAY,EAAE,2BAA2B;IACzC,cAAc,EAAE,+BAA+B;IAC/C,oBAAoB,EAAE,4CAA4C;IAClE,iBAAiB,EAAE,kCAAkC;IACrD,gBAAgB,EAAE,wBAAwB;IAC1C,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,wBAAwB;IAC1C,mBAAmB,EAAE,eAAe;IACpC,kBAAkB,EAAE,6BAA6B;IACjD,gBAAgB,EAAE,0BAA0B;IAC5C,oBAAoB,EAAE,mCAAmC;IACzD,sBAAsB,EAAE,+BAA+B;IACvD,wBAAwB,EAAE,gCAAgC;CAC3D,CAAC;AAEF,8EAA8E;AAC9E,MAAM,gBAAgB,GAA6C;IACjE,YAAY,EAAE,qBAAqB;CACpC,CAAC;AAOF,MAAM,KAAK,GAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAE/D;;;GAGG;AACH,SAAgB,WAAW,CAAC,QAA+B;IACzD,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,gFAAgF;AAChF,SAAgB,aAAa,CAAC,QAAuB;IACnD,KAAK,CAAC,SAAS,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAiC;IAClE,KAAK,CAAC,SAAS,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAC;AACrC,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,GAAoB;;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAE5E,MAAM,QAAQ,GAAG,wBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,MAAA,gBAAgB,CAAC,GAAG,CAAC,mCAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3E,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,UAAU,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":";;;AAqDA,kCAEC;AAGD,sCAEC;AAED,gDAEC;AAED,kCAEC;AAMD,0BAcC;AAOD,oDAIC;AAjFD,yEAAyE;AAC5D,QAAA,gBAAgB,GAA8C;IACzE,YAAY,EAAE,2BAA2B;IACzC,cAAc,EAAE,+BAA+B;IAC/C,oBAAoB,EAAE,4CAA4C;IAClE,kBAAkB,EAAE,yBAAyB;IAC7C,iBAAiB,EAAE,kCAAkC;IACrD,gBAAgB,EAAE,wBAAwB;IAC1C,kBAAkB,EAAE,uBAAuB;IAC3C,gBAAgB,EAAE,wBAAwB;IAC1C,gBAAgB,EAAE,mBAAmB;IACrC,mBAAmB,EAAE,eAAe;IACpC,kBAAkB,EAAE,6BAA6B;IACjD,gBAAgB,EAAE,0BAA0B;IAC5C,oBAAoB,EAAE,mCAAmC;IACzD,sBAAsB,EAAE,+BAA+B;IACvD,wBAAwB,EAAE,gCAAgC;CAC3D,CAAC;AAEF,8EAA8E;AAC9E,MAAM,gBAAgB,GAA6C;IACjE,YAAY,EAAE,qBAAqB;CACpC,CAAC;AAOF,MAAM,KAAK,GAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAE/D;;;GAGG;AACH,SAAgB,WAAW,CAAC,QAA+B;IACzD,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,gFAAgF;AAChF,SAAgB,aAAa,CAAC,QAAuB;IACnD,KAAK,CAAC,SAAS,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAiC;IAClE,KAAK,CAAC,SAAS,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI,CAAC;AACrC,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,GAAoB;;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAE5E,MAAM,QAAQ,GAAG,wBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,MAAA,gBAAgB,CAAC,GAAG,CAAC,mCAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC3E,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,UAAU,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC"}
package/dist/money.d.ts CHANGED
@@ -13,6 +13,22 @@ export declare function applyMoneyFormat(template: string, amount: number): stri
13
13
  * whose address puts them in another market really does get one of these.
14
14
  */
15
15
  export declare function formatMoney(money: Money | null | undefined): string;
16
+ /**
17
+ * An amount a shopper typed, in whole cents, or null when it isn't one. For a field where money is
18
+ * typed, so the field and whoever acts on it read it the same way.
19
+ *
20
+ * - **Accepted:** `1500`, `1,500`, `1500.5`, `$1,500.00`, ` 25 `, `€12,50` (a comma before one or two
21
+ * final digits is a decimal comma, as a phone's decimal key types in some regions), `1.500,00`. A
22
+ * currency sign or a space anywhere is ignored. More than two decimals round to the nearest cent.
23
+ * - **Refused (null):** nothing typed, a letter (`12abc`, `USD 10`), a minus sign, two decimal points
24
+ * (`1.2.3`), or a number too long to be money.
25
+ * - **Grouping:** with both `,` and `.`, the last one is the decimal point and the other groups. One
26
+ * `,` before exactly three digits groups (`1,500` is 1500, which old Amore read as 1.5), and so do
27
+ * several (`1,500,000`). A `.` alone is always the decimal point (`1.500` is 1.5).
28
+ *
29
+ * Zero is an answer (0), not an error: whoever acts on it decides that zero can't be applied.
30
+ */
31
+ export declare function typedAmountToCents(typed: string | null | undefined): number | null;
16
32
  declare function loadCountryCode(): Promise<string | null>;
17
33
  /** Fetch shop-level money settings and cache them for synchronous formatting. */
18
34
  export declare const shop: {
@@ -1 +1 @@
1
- {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAW,cAAc,EAAgC,MAAM,UAAU,CAAC;AAkCjF,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAgBnE;AAKD,iBAAe,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYvD;AAED,iFAAiF;AACjF,eAAO,MAAM,IAAI;YACD,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;;;CAenF,CAAC"}
1
+ {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAW,cAAc,EAAgC,MAAM,UAAU,CAAC;AAkCjF,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAgBnE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CA+BlF;AAKD,iBAAe,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYvD;AAED,iFAAiF;AACjF,eAAO,MAAM,IAAI;YACD,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;;;CAenF,CAAC"}
package/dist/money.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.shop = void 0;
4
4
  exports.applyMoneyFormat = applyMoneyFormat;
5
5
  exports.formatMoney = formatMoney;
6
+ exports.typedAmountToCents = typedAmountToCents;
6
7
  const client_1 = require("./client");
7
8
  const queries_1 = require("./queries");
8
9
  const SYMBOLS = {
@@ -72,6 +73,60 @@ function formatMoney(money) {
72
73
  // Grouped the way the template would have grouped it — `14600.00` is hard to read as a price.
73
74
  return `${symbol}${renderAmount(num, 'amount')}${suffix}`;
74
75
  }
76
+ /**
77
+ * An amount a shopper typed, in whole cents, or null when it isn't one. For a field where money is
78
+ * typed, so the field and whoever acts on it read it the same way.
79
+ *
80
+ * - **Accepted:** `1500`, `1,500`, `1500.5`, `$1,500.00`, ` 25 `, `€12,50` (a comma before one or two
81
+ * final digits is a decimal comma, as a phone's decimal key types in some regions), `1.500,00`. A
82
+ * currency sign or a space anywhere is ignored. More than two decimals round to the nearest cent.
83
+ * - **Refused (null):** nothing typed, a letter (`12abc`, `USD 10`), a minus sign, two decimal points
84
+ * (`1.2.3`), or a number too long to be money.
85
+ * - **Grouping:** with both `,` and `.`, the last one is the decimal point and the other groups. One
86
+ * `,` before exactly three digits groups (`1,500` is 1500, which old Amore read as 1.5), and so do
87
+ * several (`1,500,000`). A `.` alone is always the decimal point (`1.500` is 1.5).
88
+ *
89
+ * Zero is an answer (0), not an error: whoever acts on it decides that zero can't be applied.
90
+ */
91
+ function typedAmountToCents(typed) {
92
+ if (typeof typed !== 'string')
93
+ return null;
94
+ const text = typed.trim();
95
+ if (!text || /[A-Za-z]/.test(text) || /[-\u2212]/.test(text))
96
+ return null;
97
+ const kept = text.replace(/[^\d.,]/g, '');
98
+ if (!/\d/.test(kept))
99
+ return null;
100
+ const lastDot = kept.lastIndexOf('.');
101
+ const lastComma = kept.lastIndexOf(',');
102
+ const dots = kept.split('.').length - 1;
103
+ const commas = kept.split(',').length - 1;
104
+ let decimalAt = -1;
105
+ if (dots > 0 && commas > 0) {
106
+ // The last mark is the decimal point, so it appears once; the other one only groups.
107
+ decimalAt = Math.max(lastDot, lastComma);
108
+ if (kept.split(kept[decimalAt]).length - 1 > 1)
109
+ return null;
110
+ }
111
+ else if (dots > 1) {
112
+ return null;
113
+ }
114
+ else if (dots === 1) {
115
+ decimalAt = lastDot;
116
+ }
117
+ else if (commas === 1) {
118
+ decimalAt = kept.length - lastComma - 1 === 3 ? -1 : lastComma;
119
+ }
120
+ const whole = (decimalAt === -1 ? kept : kept.slice(0, decimalAt)).replace(/[.,]/g, '');
121
+ const fraction = decimalAt === -1 ? '' : kept.slice(decimalAt + 1);
122
+ if (/[.,]/.test(fraction))
123
+ return null;
124
+ if (whole.length > 13)
125
+ return null;
126
+ const firstThree = (fraction + '000').slice(0, 3);
127
+ const cents = Number(whole || '0') * 100 + Math.round(Number(firstThree) / 10);
128
+ return Number.isSafeInteger(cents) ? cents : null;
129
+ }
75
130
  /** Shop's IP-localized country (e.g. `"US"`). Fetched once on demand and
76
131
  * cached — used as the fallback countryCode for gift-card apply. */
77
132
  let cachedCountryCode = null;
package/dist/money.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import type { Cart, CartLineInput, OrderDetails, OrderLine, OrderProgress, OrderSummary, ProductVariant } from './types';
2
+ /**
3
+ * Lines counted per order in a list, for `itemCount`. A list needs only the quantities, and this keeps
4
+ * a page of 25 near 850 Customer Account API cost points by Shopify's published cost rules (that API
5
+ * charges per field read, from 7,500 points per shopper and store).
6
+ */
7
+ export declare const LIST_LINES_COUNTED = 30;
8
+ /** Lines read for one order. */
9
+ export declare const ORDER_LINES_READ = 100;
10
+ export declare const ACCOUNT_ORDER_HISTORY_QUERY = "\n query OrderHistory($first: Int!, $after: String) {\n customer {\n orders(first: $first, after: $after, sortKey: PROCESSED_AT, reverse: true) {\n pageInfo { hasNextPage endCursor }\n nodes {\n id\n name\n processedAt\n cancelledAt\n fulfillmentStatus\n statusPageUrl\n totalPrice { amount currencyCode }\n lineItems(first: 30) { nodes { quantity } }\n }\n }\n }\n }\n";
11
+ export declare const ACCOUNT_ORDER_DETAIL_QUERY = "\n query OrderDetail($id: ID!) {\n order(id: $id) {\n id\n name\n processedAt\n cancelledAt\n fulfillmentStatus\n statusPageUrl\n totalPrice { amount currencyCode }\n subtotal { amount currencyCode }\n totalShipping { amount currencyCode }\n totalTax { amount currencyCode }\n totalRefunded { amount currencyCode }\n discountApplications(first: 10) { nodes { ... on DiscountCodeApplication { code } } }\n lineItems(first: 100) {\n nodes {\n title\n variantTitle\n quantity\n variantId\n image { url }\n price { amount currencyCode }\n totalPrice { amount currencyCode }\n }\n }\n }\n }\n";
12
+ export declare const STOREFRONT_ORDER_HISTORY_QUERY = "\n query CustomerOrderHistory($accessToken: String!, $first: Int!, $after: String) {\n customer(customerAccessToken: $accessToken) {\n orders(first: $first, after: $after, sortKey: PROCESSED_AT, reverse: true) {\n pageInfo { hasNextPage endCursor }\n nodes {\n id\n name\n processedAt\n canceledAt\n fulfillmentStatus\n statusUrl\n totalPrice { amount currencyCode }\n lineItems(first: 30) { nodes { quantity } }\n }\n }\n }\n }\n";
13
+ /**
14
+ * The Storefront API has no order-by-id query, so one order is found in two cheap reads: its place in
15
+ * the list (ids only, 250 a page), then that one order, read after the cursor of the one before it.
16
+ */
17
+ export declare const STOREFRONT_ORDER_IDS_QUERY = "\n query CustomerOrderIds($accessToken: String!, $after: String) {\n customer(customerAccessToken: $accessToken) {\n orders(first: 250, after: $after, sortKey: PROCESSED_AT, reverse: true) {\n pageInfo { hasNextPage endCursor }\n edges { cursor node { id } }\n }\n }\n }\n";
18
+ export declare const STOREFRONT_ORDER_DETAIL_QUERY = "\n query CustomerOrderDetail($accessToken: String!, $after: String) {\n customer(customerAccessToken: $accessToken) {\n orders(first: 1, after: $after, sortKey: PROCESSED_AT, reverse: true) {\n nodes {\n id\n name\n processedAt\n canceledAt\n fulfillmentStatus\n statusUrl\n totalPrice { amount currencyCode }\n subtotalPrice { amount currencyCode }\n totalShippingPrice { amount currencyCode }\n totalTax { amount currencyCode }\n totalRefunded { amount currencyCode }\n discountApplications(first: 10) { nodes { ... on DiscountCodeApplication { code } } }\n lineItems(first: 100) {\n nodes {\n title\n quantity\n originalTotalPrice { amount currencyCode }\n variant { id title image { url } }\n }\n }\n }\n }\n }\n }\n";
19
+ /** Production Amber's status card rule: cancelled wins, then the fulfilment status. */
20
+ export declare function orderProgress(cancelledAt: string | null | undefined, fulfillmentStatus: string | null | undefined): OrderProgress;
21
+ /**
22
+ * Leeway for the phone's clock against Shopify's when telling a new order from the one before it: an
23
+ * order placed up to this long before `since` still counts (`useLatestOrderSince`). 2 minutes.
24
+ */
25
+ export declare const ORDER_CLOCK_LEEWAY_MS: number;
26
+ /**
27
+ * Whether an order was placed at or after `since` (ms since 1970), less `clockLeewayMs`. Every order
28
+ * counts when `since` is null or undefined. An order whose date can't be read never counts.
29
+ */
30
+ export declare function placedSince(order: Pick<OrderSummary, 'processedAt'>, since: number | null | undefined, clockLeewayMs?: number): boolean;
31
+ export interface OrdersPage {
32
+ orders: OrderSummary[];
33
+ /** Pass to the next `list` call; null on the last page. */
34
+ endCursor: string | null;
35
+ hasNextPage: boolean;
36
+ }
37
+ /** The orders of whoever is signed in, from the API their session reads. */
38
+ export interface OrderSource {
39
+ /** A page of orders, newest first. `after`: the previous page's `endCursor`; null for the first. */
40
+ list(first: number, after: string | null): Promise<OrdersPage>;
41
+ /** One order in full. Null when this shopper has no order with that id. */
42
+ get(id: string): Promise<OrderDetails | null>;
43
+ }
44
+ /** `CustomerState.request`: one Customer Account API call for the signed-in shopper. */
45
+ export type AccountRequest = <T>(query: string, variables?: Record<string, unknown>) => Promise<T>;
46
+ /** Shopify sign-in: the Customer Account API. */
47
+ export declare function customerAccountOrders(accountRequest: AccountRequest): OrderSource;
48
+ /**
49
+ * Email and password: the Storefront API, with the session's token. A token Shopify no longer accepts
50
+ * reads `customer: null`, which is the session ending, not an empty history.
51
+ */
52
+ export declare function storefrontOrders(getAccessToken: () => Promise<string | null>): OrderSource;
53
+ export interface OrdersShown {
54
+ orders: OrderSummary[];
55
+ endCursor: string | null;
56
+ hasMore: boolean;
57
+ }
58
+ /**
59
+ * A refreshed first page laid over what is on screen. The pages loaded after it are kept, so a list
60
+ * scrolled down stays where it was (they aren't re-read). When the fresh page doesn't reach back to
61
+ * them (many new orders since), or it is the whole history, it replaces the list.
62
+ */
63
+ export declare function withFreshFirstPage(shown: OrdersShown, page: OrdersPage): OrdersShown;
64
+ /** The next page after what is shown, leaving out any order already there. */
65
+ export declare function withNextPage(shown: OrdersShown, page: OrdersPage): OrdersShown;
66
+ export interface BuyAgainPlan {
67
+ /** What to add: one input per line that fits, in the order's order. */
68
+ inputs: CartLineInput[];
69
+ /**
70
+ * Lines left out: no variant any more, not for sale, `skipVariant` said so, or no stock beyond
71
+ * what the cart holds.
72
+ */
73
+ skipped: number;
74
+ }
75
+ /**
76
+ * Which of an order's lines can go back in the cart, and how many of each, by the cart's stock rule
77
+ * (`stockCeiling`, as `useAddToCart` checks it): a quantity over what is left is cut to what is left,
78
+ * counting what the cart already holds and what earlier lines of this order take. `variants` are read
79
+ * fresh; a line whose variant isn't among them no longer exists.
80
+ *
81
+ * A variant still sold out and enrolled in pre-order (a selling plan) goes back on that plan, at the
82
+ * ordered quantity: a pre-order isn't limited by stock. Everything else goes back as an ordinary line.
83
+ * The same "sold out and on a plan" rule as the Waitlist's pre-order add. Decided 2026-10-04 by the
84
+ * Head of Engineering: "if item is still out of stock with selling plan add them as pre order
85
+ * otherwise add it normally".
86
+ *
87
+ * `options.skipVariant` leaves out (and counts as skipped) every line whose variant it returns true
88
+ * for, before anything is added or claimed. The app passes Cart Hold's `isHeldOut`, so a size whose
89
+ * every unit was just found held in other carts isn't tried again. Decided 2026-10-04 by the Head of
90
+ * Engineering.
91
+ */
92
+ export declare function planBuyAgain(lines: OrderLine[], variants: (Pick<ProductVariant, 'id' | 'availableForSale' | 'quantityAvailable'> & {
93
+ sellingPlan?: {
94
+ id: string;
95
+ } | null;
96
+ })[], cart: Pick<Cart, 'lines'> | null, options?: {
97
+ skipVariant?: (variantId: string) => boolean;
98
+ }): BuyAgainPlan;
99
+ //# sourceMappingURL=orders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../src/orders.ts"],"names":[],"mappings":"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"}