@tiledev/sdk-shopify 0.5.0 → 0.8.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 (94) hide show
  1. package/README.md +144 -1
  2. package/dist/alertSettings.d.ts +39 -0
  3. package/dist/alertSettings.d.ts.map +1 -0
  4. package/dist/alertSettings.js +76 -0
  5. package/dist/alertSettings.js.map +1 -0
  6. package/dist/blogs.d.ts.map +1 -1
  7. package/dist/blogs.js +3 -3
  8. package/dist/blogs.js.map +1 -1
  9. package/dist/cart.d.ts.map +1 -1
  10. package/dist/cart.js +27 -22
  11. package/dist/cart.js.map +1 -1
  12. package/dist/client.d.ts +20 -2
  13. package/dist/client.d.ts.map +1 -1
  14. package/dist/client.js +80 -19
  15. package/dist/client.js.map +1 -1
  16. package/dist/collections.d.ts.map +1 -1
  17. package/dist/collections.js +8 -5
  18. package/dist/collections.js.map +1 -1
  19. package/dist/customer.d.ts.map +1 -1
  20. package/dist/customer.js +3 -3
  21. package/dist/customer.js.map +1 -1
  22. package/dist/deviceStore.d.ts +9 -0
  23. package/dist/deviceStore.d.ts.map +1 -0
  24. package/dist/deviceStore.js +77 -0
  25. package/dist/deviceStore.js.map +1 -0
  26. package/dist/deviceStore.native.d.ts +14 -0
  27. package/dist/deviceStore.native.d.ts.map +1 -0
  28. package/dist/deviceStore.native.js +47 -0
  29. package/dist/deviceStore.native.js.map +1 -0
  30. package/dist/deviceStoreCore.d.ts +24 -0
  31. package/dist/deviceStoreCore.d.ts.map +1 -0
  32. package/dist/deviceStoreCore.js +40 -0
  33. package/dist/deviceStoreCore.js.map +1 -0
  34. package/dist/filters.d.ts +32 -0
  35. package/dist/filters.d.ts.map +1 -0
  36. package/dist/filters.js +67 -0
  37. package/dist/filters.js.map +1 -0
  38. package/dist/index.d.ts +5 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +31 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/productStore.d.ts +43 -0
  43. package/dist/productStore.d.ts.map +1 -0
  44. package/dist/productStore.js +309 -0
  45. package/dist/productStore.js.map +1 -0
  46. package/dist/products.d.ts.map +1 -1
  47. package/dist/products.js +28 -19
  48. package/dist/products.js.map +1 -1
  49. package/dist/queries.d.ts +24 -24
  50. package/dist/queries.d.ts.map +1 -1
  51. package/dist/queries.js +4 -3
  52. package/dist/queries.js.map +1 -1
  53. package/dist/react/ShopifyProvider.d.ts +2 -0
  54. package/dist/react/ShopifyProvider.d.ts.map +1 -1
  55. package/dist/react/ShopifyProvider.js +18 -1
  56. package/dist/react/ShopifyProvider.js.map +1 -1
  57. package/dist/react/index.d.ts +4 -0
  58. package/dist/react/index.d.ts.map +1 -1
  59. package/dist/react/index.js +11 -1
  60. package/dist/react/index.js.map +1 -1
  61. package/dist/react/useAlertSettings.d.ts +32 -0
  62. package/dist/react/useAlertSettings.d.ts.map +1 -0
  63. package/dist/react/useAlertSettings.js +35 -0
  64. package/dist/react/useAlertSettings.js.map +1 -0
  65. package/dist/react/useCollectionProducts.d.ts +12 -20
  66. package/dist/react/useCollectionProducts.d.ts.map +1 -1
  67. package/dist/react/useCollectionProducts.js +36 -137
  68. package/dist/react/useCollectionProducts.js.map +1 -1
  69. package/dist/react/useProduct.d.ts +36 -0
  70. package/dist/react/useProduct.d.ts.map +1 -0
  71. package/dist/react/useProduct.js +126 -0
  72. package/dist/react/useProduct.js.map +1 -0
  73. package/dist/react/useProductFeed.d.ts +57 -0
  74. package/dist/react/useProductFeed.d.ts.map +1 -0
  75. package/dist/react/useProductFeed.js +231 -0
  76. package/dist/react/useProductFeed.js.map +1 -0
  77. package/dist/react/useSearch.d.ts +30 -0
  78. package/dist/react/useSearch.d.ts.map +1 -0
  79. package/dist/react/useSearch.js +61 -0
  80. package/dist/react/useSearch.js.map +1 -0
  81. package/dist/requestCache.d.ts +48 -0
  82. package/dist/requestCache.d.ts.map +1 -0
  83. package/dist/requestCache.js +173 -0
  84. package/dist/requestCache.js.map +1 -0
  85. package/dist/types.d.ts +67 -20
  86. package/dist/types.d.ts.map +1 -1
  87. package/dist/types.js +0 -1
  88. package/dist/types.js.map +1 -1
  89. package/dist/variants.js +1 -1
  90. package/dist/variants.js.map +1 -1
  91. package/dist/wishlist.d.ts.map +1 -1
  92. package/dist/wishlist.js +4 -1
  93. package/dist/wishlist.js.map +1 -1
  94. package/package.json +9 -3
package/dist/index.d.ts CHANGED
@@ -1,13 +1,17 @@
1
1
  export { shopify, shopify as default } from './shopify';
2
2
  export { formatMoney, applyMoneyFormat, shop } from './money';
3
3
  export { getMoneyFormat, getCurrencyCode } from './client';
4
+ export { clearRequestCache, DEFAULT_CACHE_TTL_MS, type RequestCacheOptions } from './requestCache';
5
+ export { PRODUCT_BASE_KEYS, peekProduct, forgetProduct, clearProductStore, toProductBase, type ProductBase, type CachedProduct, } from './productStore';
4
6
  export { toLineSnapshot } from './cart';
7
+ export { priceRange, priceFilterInput, parsePriceFilterInput, isPriceFilterInput, type PriceRange, } from './filters';
5
8
  export { DEFAULT_MESSAGES, message, getMessages, setMessages, patchMessages, setMessageResolver, limitExceededMessage, } from './messages';
6
9
  export { setCartPolicy, getCartPolicy, maxLineItems, projectedLineCount, wouldExceedLineLimit, } from './cartPolicy';
10
+ export { ALERT_SETTINGS_PATH, MAX_LINE_ITEMS_SETTING_PATH, ALERT_SETTING_FIELDS, MAX_ALERT_LENGTH, MAX_LINE_ITEMS_RANGE, readAlertSettings, readCartPolicy, isAlertSilenced, type AlertSettings, } from './alertSettings';
7
11
  export { classifyAuthFailure, isOutOfStockError, isUserErrorRejection, userErrorsOf, } from './errors';
8
12
  export { TileCreditClient, configureTileCredit, getTileCreditClient, redeemAndApplyToCart, centsToMoney, moneyToCents, } from './tileCredit';
9
13
  export { setProductMetafields, getProductMetafields, productMetafield, } from './metafields';
10
14
  export { TileCreditError } from './types';
11
15
  export type * from './types';
12
- export { ShopifyProvider, useShopify, useCart, useWishlist, useCustomer, useCheckout, useShopifyMessage, useTileCredit, useCollectionProducts, COLLECTION_PAGE_SIZE, type ShopifyProviderProps, type ShopifyEvent, type ShopifyEventType, type CartState, type WishlistState, type CustomerState, type CheckoutState, type UseTileCreditOptions, type UseTileCreditState, type CollectionSort, type UseCollectionProductsOptions, type CollectionProductsState, type UseCollectionProductsResult, } from './react';
16
+ export { ShopifyProvider, useShopify, useCart, useWishlist, useCustomer, useCheckout, useShopifyMessage, useTileCredit, useCollectionProducts, COLLECTION_PAGE_SIZE, useSearch, SEARCH_PAGE_SIZE, SEARCH_DEBOUNCE_MS, useProduct, REVALIDATE_AFTER_MS, useAlertSettings, type ShopifyProviderProps, type ShopifyEvent, type ShopifyEventType, type CartState, type WishlistState, type CustomerState, type CheckoutState, type UseTileCreditOptions, type UseTileCreditState, type CollectionSort, type UseCollectionProductsOptions, type CollectionProductsState, type UseCollectionProductsResult, type SearchSort, type UseSearchOptions, type UseSearchResult, type SearchState, type UseProductOptions, type UseProductState, type UseProductResult, type ProductFeedState, type ProductFeedResult, type UseAlertSettingsOptions, type AlertSettingsProps, } from './react';
13
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,mBAAmB,SAAS,CAAC;AAO7B,OAAO,EACL,eAAe,EACf,UAAU,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,GACjC,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,UAAU,GAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,mBAAmB,SAAS,CAAC;AAO7B,OAAO,EACL,eAAe,EACf,UAAU,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- 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 = exports.TileCreditClient = exports.userErrorsOf = exports.isUserErrorRejection = exports.isOutOfStockError = exports.classifyAuthFailure = 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.toLineSnapshot = exports.getCurrencyCode = exports.getMoneyFormat = exports.shop = exports.applyMoneyFormat = exports.formatMoney = exports.default = exports.shopify = void 0;
3
+ exports.setProductMetafields = exports.moneyToCents = exports.centsToMoney = exports.redeemAndApplyToCart = exports.getTileCreditClient = exports.configureTileCredit = 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.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 = void 0;
4
5
  var shopify_1 = require("./shopify");
5
6
  Object.defineProperty(exports, "shopify", { enumerable: true, get: function () { return shopify_1.shopify; } });
6
7
  Object.defineProperty(exports, "default", { enumerable: true, get: function () { return shopify_1.shopify; } });
@@ -11,8 +12,22 @@ Object.defineProperty(exports, "shop", { enumerable: true, get: function () { re
11
12
  var client_1 = require("./client");
12
13
  Object.defineProperty(exports, "getMoneyFormat", { enumerable: true, get: function () { return client_1.getMoneyFormat; } });
13
14
  Object.defineProperty(exports, "getCurrencyCode", { enumerable: true, get: function () { return client_1.getCurrencyCode; } });
15
+ var requestCache_1 = require("./requestCache");
16
+ Object.defineProperty(exports, "clearRequestCache", { enumerable: true, get: function () { return requestCache_1.clearRequestCache; } });
17
+ Object.defineProperty(exports, "DEFAULT_CACHE_TTL_MS", { enumerable: true, get: function () { return requestCache_1.DEFAULT_CACHE_TTL_MS; } });
18
+ var productStore_1 = require("./productStore");
19
+ Object.defineProperty(exports, "PRODUCT_BASE_KEYS", { enumerable: true, get: function () { return productStore_1.PRODUCT_BASE_KEYS; } });
20
+ Object.defineProperty(exports, "peekProduct", { enumerable: true, get: function () { return productStore_1.peekProduct; } });
21
+ Object.defineProperty(exports, "forgetProduct", { enumerable: true, get: function () { return productStore_1.forgetProduct; } });
22
+ Object.defineProperty(exports, "clearProductStore", { enumerable: true, get: function () { return productStore_1.clearProductStore; } });
23
+ Object.defineProperty(exports, "toProductBase", { enumerable: true, get: function () { return productStore_1.toProductBase; } });
14
24
  var cart_1 = require("./cart");
15
25
  Object.defineProperty(exports, "toLineSnapshot", { enumerable: true, get: function () { return cart_1.toLineSnapshot; } });
26
+ var filters_1 = require("./filters");
27
+ Object.defineProperty(exports, "priceRange", { enumerable: true, get: function () { return filters_1.priceRange; } });
28
+ Object.defineProperty(exports, "priceFilterInput", { enumerable: true, get: function () { return filters_1.priceFilterInput; } });
29
+ Object.defineProperty(exports, "parsePriceFilterInput", { enumerable: true, get: function () { return filters_1.parsePriceFilterInput; } });
30
+ Object.defineProperty(exports, "isPriceFilterInput", { enumerable: true, get: function () { return filters_1.isPriceFilterInput; } });
16
31
  var messages_1 = require("./messages");
17
32
  Object.defineProperty(exports, "DEFAULT_MESSAGES", { enumerable: true, get: function () { return messages_1.DEFAULT_MESSAGES; } });
18
33
  Object.defineProperty(exports, "message", { enumerable: true, get: function () { return messages_1.message; } });
@@ -27,6 +42,15 @@ Object.defineProperty(exports, "getCartPolicy", { enumerable: true, get: functio
27
42
  Object.defineProperty(exports, "maxLineItems", { enumerable: true, get: function () { return cartPolicy_1.maxLineItems; } });
28
43
  Object.defineProperty(exports, "projectedLineCount", { enumerable: true, get: function () { return cartPolicy_1.projectedLineCount; } });
29
44
  Object.defineProperty(exports, "wouldExceedLineLimit", { enumerable: true, get: function () { return cartPolicy_1.wouldExceedLineLimit; } });
45
+ var alertSettings_1 = require("./alertSettings");
46
+ Object.defineProperty(exports, "ALERT_SETTINGS_PATH", { enumerable: true, get: function () { return alertSettings_1.ALERT_SETTINGS_PATH; } });
47
+ Object.defineProperty(exports, "MAX_LINE_ITEMS_SETTING_PATH", { enumerable: true, get: function () { return alertSettings_1.MAX_LINE_ITEMS_SETTING_PATH; } });
48
+ Object.defineProperty(exports, "ALERT_SETTING_FIELDS", { enumerable: true, get: function () { return alertSettings_1.ALERT_SETTING_FIELDS; } });
49
+ Object.defineProperty(exports, "MAX_ALERT_LENGTH", { enumerable: true, get: function () { return alertSettings_1.MAX_ALERT_LENGTH; } });
50
+ Object.defineProperty(exports, "MAX_LINE_ITEMS_RANGE", { enumerable: true, get: function () { return alertSettings_1.MAX_LINE_ITEMS_RANGE; } });
51
+ Object.defineProperty(exports, "readAlertSettings", { enumerable: true, get: function () { return alertSettings_1.readAlertSettings; } });
52
+ Object.defineProperty(exports, "readCartPolicy", { enumerable: true, get: function () { return alertSettings_1.readCartPolicy; } });
53
+ Object.defineProperty(exports, "isAlertSilenced", { enumerable: true, get: function () { return alertSettings_1.isAlertSilenced; } });
30
54
  var errors_1 = require("./errors");
31
55
  Object.defineProperty(exports, "classifyAuthFailure", { enumerable: true, get: function () { return errors_1.classifyAuthFailure; } });
32
56
  Object.defineProperty(exports, "isOutOfStockError", { enumerable: true, get: function () { return errors_1.isOutOfStockError; } });
@@ -61,4 +85,10 @@ Object.defineProperty(exports, "useShopifyMessage", { enumerable: true, get: fun
61
85
  Object.defineProperty(exports, "useTileCredit", { enumerable: true, get: function () { return react_1.useTileCredit; } });
62
86
  Object.defineProperty(exports, "useCollectionProducts", { enumerable: true, get: function () { return react_1.useCollectionProducts; } });
63
87
  Object.defineProperty(exports, "COLLECTION_PAGE_SIZE", { enumerable: true, get: function () { return react_1.COLLECTION_PAGE_SIZE; } });
88
+ Object.defineProperty(exports, "useSearch", { enumerable: true, get: function () { return react_1.useSearch; } });
89
+ Object.defineProperty(exports, "SEARCH_PAGE_SIZE", { enumerable: true, get: function () { return react_1.SEARCH_PAGE_SIZE; } });
90
+ Object.defineProperty(exports, "SEARCH_DEBOUNCE_MS", { enumerable: true, get: function () { return react_1.SEARCH_DEBOUNCE_MS; } });
91
+ Object.defineProperty(exports, "useProduct", { enumerable: true, get: function () { return react_1.useProduct; } });
92
+ Object.defineProperty(exports, "REVALIDATE_AFTER_MS", { enumerable: true, get: function () { return react_1.REVALIDATE_AFTER_MS; } });
93
+ Object.defineProperty(exports, "useAlertSettings", { enumerable: true, get: function () { return react_1.useAlertSettings; } });
64
94
  //# 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,+BAAwC;AAA/B,sGAAA,cAAc,OAAA;AACvB,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,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,iCAwBiB;AAvBf,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"}
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,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"}
@@ -0,0 +1,43 @@
1
+ import type { Filter, PageInfo, Product } from './types';
2
+ /** What any product read records, and what a product page can render before its own read lands. */
3
+ export declare const PRODUCT_BASE_KEYS: readonly ["id", "handle", "title", "featuredImage", "priceRange", "compareAtPriceRange"];
4
+ export type ProductBase = Pick<Product, (typeof PRODUCT_BASE_KEYS)[number]>;
5
+ export interface CachedProduct {
6
+ id: string;
7
+ handle: string;
8
+ base: ProductBase;
9
+ baseAt: number;
10
+ /** The full product, once `byHandle` / `byId` has read it. */
11
+ full: Product | null;
12
+ fullAt: number;
13
+ }
14
+ export interface CachedList {
15
+ products: Product[];
16
+ pageInfo: PageInfo;
17
+ title: string | null;
18
+ filters: Filter[];
19
+ totalCount?: number;
20
+ at: number;
21
+ }
22
+ /** Older than this, an entry is dropped rather than shown. */
23
+ export declare const MAX_AGE_MS: number;
24
+ /** Tests only: forget memory but keep the device store, which is what a cold start looks like. */
25
+ export declare function resetProductStoreMemory(): void;
26
+ export declare function toProductBase(p: Product): ProductBase;
27
+ /**
28
+ * Record products a read returned. `level: 'full'` is for `byHandle` / `byId`: the whole product,
29
+ * kept for a return visit. Every read records the base keys.
30
+ */
31
+ export declare function rememberProducts(list: Array<Product | null | undefined>, level: 'base' | 'full'): void;
32
+ /**
33
+ * What is known about a product, by handle or GID: memory first, then the device. Synchronous, so a
34
+ * product page can call it during its first render. Null when nothing is known, or it is too old.
35
+ */
36
+ export declare function peekProduct(handleOrId: string | null | undefined): CachedProduct | null;
37
+ /** Drop one product, e.g. after the cart reports it out of stock. */
38
+ export declare function forgetProduct(id: string): void;
39
+ export declare function peekList(listKey: string): CachedList | null;
40
+ export declare function rememberList(listKey: string, list: Omit<CachedList, 'at'>): void;
41
+ /** Forget everything this SDK stored, in memory and on the device, for every store and market. */
42
+ export declare function clearProductStore(): void;
43
+ //# sourceMappingURL=productStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productStore.d.ts","sourceRoot":"","sources":["../src/productStore.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzD,mGAAmG;AACnG,eAAO,MAAM,iBAAiB,0FAA2F,CAAC;AAC1H,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE5E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAID,8DAA8D;AAC9D,eAAO,MAAM,UAAU,QAAU,CAAC;AAqElC,kGAAkG;AAClG,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAMD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,CASrD;AAoCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgCtG;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAkCvF;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAY9C;AAWD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAgB3D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI,CAahF;AAED,kGAAkG;AAClG,wBAAgB,iBAAiB,IAAI,IAAI,CAIxC"}
@@ -0,0 +1,309 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_AGE_MS = exports.PRODUCT_BASE_KEYS = void 0;
4
+ exports.resetProductStoreMemory = resetProductStoreMemory;
5
+ exports.toProductBase = toProductBase;
6
+ exports.rememberProducts = rememberProducts;
7
+ exports.peekProduct = peekProduct;
8
+ exports.forgetProduct = forgetProduct;
9
+ exports.peekList = peekList;
10
+ exports.rememberList = rememberList;
11
+ exports.clearProductStore = clearProductStore;
12
+ /**
13
+ * The product store: what every product read has seen, kept so a product page can open with data on
14
+ * its first frame, and a list can show its last first page before the network answers.
15
+ *
16
+ * - **Base** keys (`PRODUCT_BASE_KEYS`) are recorded from EVERY read that returns products:
17
+ * collections, search, recommendations, lists, `byIds`, the wishlist. They are what a product page
18
+ * shows instantly: title, image and price.
19
+ * - **Full** products are recorded by `byHandle` / `byId`, for returning to a product page.
20
+ * - **Lists**: the first page of each collection or search, for `useCollectionProducts` /
21
+ * `useSearch` to show before revalidating.
22
+ *
23
+ * Memory is the working copy (capped, least recently used first out). The device store behind it
24
+ * (`deviceStore`: MMKV on native, `localStorage` on web) keeps it across cold starts, one small key
25
+ * per product, so nothing is loaded in bulk at launch: a key is read the moment something asks.
26
+ *
27
+ * Keys carry a schema version and a scope (store, market, API version, metafields), so a store,
28
+ * market or SDK change never shows mismatched data. Entries older than `MAX_AGE_MS` are dropped.
29
+ * Public catalogue data only: nothing personal is ever written here.
30
+ */
31
+ const client_1 = require("./client");
32
+ const deviceStore_1 = require("./deviceStore");
33
+ const deviceStoreCore_1 = require("./deviceStoreCore");
34
+ /** What any product read records, and what a product page can render before its own read lands. */
35
+ exports.PRODUCT_BASE_KEYS = ['id', 'handle', 'title', 'featuredImage', 'priceRange', 'compareAtPriceRange'];
36
+ const VERSION = 'v1';
37
+ const DAY = 24 * 60 * 60 * 1000;
38
+ /** Older than this, an entry is dropped rather than shown. */
39
+ exports.MAX_AGE_MS = 7 * DAY;
40
+ const MEMORY_PRODUCTS = 300;
41
+ const MEMORY_LISTS = 30;
42
+ /** Device caps. A base entry is ~0.5 KB, so 2,500 is ~1.25 MB: a whole mid-size catalogue. */
43
+ const DEVICE_BASES = 2500;
44
+ const DEVICE_FULLS = 30;
45
+ const DEVICE_LISTS = 20;
46
+ // ---------------------------------------------------------------------------
47
+ // Scope and keys
48
+ // ---------------------------------------------------------------------------
49
+ /** Store, market, API version and metafields: anything that changes what a product read returns. */
50
+ function scope() {
51
+ var _a;
52
+ const c = (0, client_1.getConfig)();
53
+ return (0, deviceStoreCore_1.hashKey)([
54
+ c.storeDomain,
55
+ (c.country || '').toUpperCase(),
56
+ (c.language || '').toUpperCase(),
57
+ c.apiVersion || '',
58
+ JSON.stringify((_a = c.productMetafields) !== null && _a !== void 0 ? _a : []),
59
+ ].join('|'));
60
+ }
61
+ const key = {
62
+ base: (s, id) => `${VERSION}:${s}:b:${id}`,
63
+ handle: (s, handle) => `${VERSION}:${s}:h:${handle}`,
64
+ full: (s, id) => `${VERSION}:${s}:f:${id}`,
65
+ fullIndex: (s) => `${VERSION}:${s}:fi`,
66
+ list: (s, listKey) => `${VERSION}:${s}:l:${(0, deviceStoreCore_1.hashKey)(listKey)}`,
67
+ listIndex: (s) => `${VERSION}:${s}:li`,
68
+ };
69
+ function parse(text) {
70
+ if (!text)
71
+ return null;
72
+ try {
73
+ return JSON.parse(text);
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ }
79
+ const fresh = (at, now) => Number.isFinite(at) && now - at < exports.MAX_AGE_MS;
80
+ /** Off when not configured yet, or when the app turned reuse off with `cache: false`. */
81
+ function enabled() {
82
+ return (0, client_1.isConfigured)() && (0, client_1.getConfig)().cache !== false;
83
+ }
84
+ // ---------------------------------------------------------------------------
85
+ // Memory (least recently used first out: Map order is insertion order, a hit re-inserts)
86
+ // ---------------------------------------------------------------------------
87
+ const products = new Map();
88
+ const handles = new Map();
89
+ const lists = new Map();
90
+ function touch(map, k, v, cap) {
91
+ map.delete(k);
92
+ map.set(k, v);
93
+ while (map.size > cap) {
94
+ const oldest = map.keys().next();
95
+ if (oldest.done)
96
+ break;
97
+ map.delete(oldest.value);
98
+ }
99
+ }
100
+ /** Tests only: forget memory but keep the device store, which is what a cold start looks like. */
101
+ function resetProductStoreMemory() {
102
+ products.clear();
103
+ handles.clear();
104
+ lists.clear();
105
+ }
106
+ // ---------------------------------------------------------------------------
107
+ // Products
108
+ // ---------------------------------------------------------------------------
109
+ function toProductBase(p) {
110
+ var _a, _b;
111
+ return {
112
+ id: p.id,
113
+ handle: p.handle,
114
+ title: p.title,
115
+ featuredImage: (_a = p.featuredImage) !== null && _a !== void 0 ? _a : null,
116
+ priceRange: p.priceRange,
117
+ compareAtPriceRange: (_b = p.compareAtPriceRange) !== null && _b !== void 0 ? _b : null,
118
+ };
119
+ }
120
+ /** Move `id` to the end of a capped index, returning the ids it pushed out. */
121
+ function bumpIndex(indexKey, id, cap) {
122
+ var _a;
123
+ const store = (0, deviceStore_1.deviceStore)();
124
+ const ids = ((_a = parse(store.get(indexKey))) !== null && _a !== void 0 ? _a : []).filter((x) => x !== id);
125
+ ids.push(id);
126
+ const evicted = ids.length > cap ? ids.splice(0, ids.length - cap) : [];
127
+ store.set(indexKey, JSON.stringify(ids));
128
+ return evicted;
129
+ }
130
+ let pruneScheduled = false;
131
+ /** Trim the base entries past the device cap, once per session and off the hot path. */
132
+ function schedulePrune(s) {
133
+ if (pruneScheduled)
134
+ return;
135
+ pruneScheduled = true;
136
+ setTimeout(() => {
137
+ var _a;
138
+ try {
139
+ const store = (0, deviceStore_1.deviceStore)();
140
+ const prefix = `${VERSION}:${s}:b:`;
141
+ const baseKeys = store.keys().filter((k) => k.startsWith(prefix));
142
+ if (baseKeys.length <= DEVICE_BASES)
143
+ return;
144
+ const aged = baseKeys
145
+ .map((k) => ({ k, e: parse(store.get(k)) }))
146
+ .sort((a, b) => { var _a, _b, _c, _d; return ((_b = (_a = a.e) === null || _a === void 0 ? void 0 : _a.t) !== null && _b !== void 0 ? _b : 0) - ((_d = (_c = b.e) === null || _c === void 0 ? void 0 : _c.t) !== null && _d !== void 0 ? _d : 0); });
147
+ for (const { k, e } of aged.slice(0, baseKeys.length - DEVICE_BASES)) {
148
+ store.remove(k);
149
+ if ((_a = e === null || e === void 0 ? void 0 : e.b) === null || _a === void 0 ? void 0 : _a.handle)
150
+ store.remove(key.handle(s, e.b.handle));
151
+ }
152
+ }
153
+ catch {
154
+ /* pruning is best effort */
155
+ }
156
+ }, 3000);
157
+ }
158
+ /**
159
+ * Record products a read returned. `level: 'full'` is for `byHandle` / `byId`: the whole product,
160
+ * kept for a return visit. Every read records the base keys.
161
+ */
162
+ function rememberProducts(list, level) {
163
+ var _a, _b;
164
+ if (!enabled() || !list.length)
165
+ return;
166
+ const s = scope();
167
+ const store = (0, deviceStore_1.deviceStore)();
168
+ const now = Date.now();
169
+ for (const p of list) {
170
+ if (!p || !p.id || !p.handle)
171
+ continue;
172
+ const mk = `${s}|${p.id}`;
173
+ const prev = products.get(mk);
174
+ const base = toProductBase(p);
175
+ const entry = {
176
+ id: p.id,
177
+ handle: p.handle,
178
+ base,
179
+ baseAt: now,
180
+ full: level === 'full' ? p : (_a = prev === null || prev === void 0 ? void 0 : prev.full) !== null && _a !== void 0 ? _a : null,
181
+ fullAt: level === 'full' ? now : (_b = prev === null || prev === void 0 ? void 0 : prev.fullAt) !== null && _b !== void 0 ? _b : 0,
182
+ };
183
+ touch(products, mk, entry, MEMORY_PRODUCTS);
184
+ handles.set(`${s}|${p.handle}`, p.id);
185
+ try {
186
+ store.set(key.base(s, p.id), JSON.stringify({ b: base, t: now }));
187
+ if ((prev === null || prev === void 0 ? void 0 : prev.handle) !== p.handle)
188
+ store.set(key.handle(s, p.handle), p.id);
189
+ if (level === 'full') {
190
+ store.set(key.full(s, p.id), JSON.stringify({ p, t: now }));
191
+ for (const gone of bumpIndex(key.fullIndex(s), p.id, DEVICE_FULLS))
192
+ store.remove(key.full(s, gone));
193
+ }
194
+ }
195
+ catch {
196
+ /* the device copy is best effort; memory still has it */
197
+ }
198
+ }
199
+ schedulePrune(s);
200
+ }
201
+ /**
202
+ * What is known about a product, by handle or GID: memory first, then the device. Synchronous, so a
203
+ * product page can call it during its first render. Null when nothing is known, or it is too old.
204
+ */
205
+ function peekProduct(handleOrId) {
206
+ var _a;
207
+ if (!handleOrId || !enabled())
208
+ return null;
209
+ const s = scope();
210
+ const store = (0, deviceStore_1.deviceStore)();
211
+ const now = Date.now();
212
+ const byGid = handleOrId.startsWith('gid://');
213
+ const id = byGid ? handleOrId : (_a = handles.get(`${s}|${handleOrId}`)) !== null && _a !== void 0 ? _a : store.get(key.handle(s, handleOrId));
214
+ if (!id)
215
+ return null;
216
+ const mk = `${s}|${id}`;
217
+ const hit = products.get(mk);
218
+ if (hit && fresh(hit.baseAt, now)) {
219
+ touch(products, mk, hit, MEMORY_PRODUCTS);
220
+ return hit;
221
+ }
222
+ const base = parse(store.get(key.base(s, id)));
223
+ if (!base || !fresh(base.t, now)) {
224
+ if (base)
225
+ store.remove(key.base(s, id));
226
+ if (!byGid)
227
+ store.remove(key.handle(s, handleOrId));
228
+ return null;
229
+ }
230
+ const full = parse(store.get(key.full(s, id)));
231
+ const entry = {
232
+ id,
233
+ handle: base.b.handle,
234
+ base: base.b,
235
+ baseAt: base.t,
236
+ full: full && fresh(full.t, now) ? full.p : null,
237
+ fullAt: full && fresh(full.t, now) ? full.t : 0,
238
+ };
239
+ touch(products, mk, entry, MEMORY_PRODUCTS);
240
+ handles.set(`${s}|${entry.handle}`, id);
241
+ return entry;
242
+ }
243
+ /** Drop one product, e.g. after the cart reports it out of stock. */
244
+ function forgetProduct(id) {
245
+ if (!enabled())
246
+ return;
247
+ const s = scope();
248
+ const entry = products.get(`${s}|${id}`);
249
+ products.delete(`${s}|${id}`);
250
+ const store = (0, deviceStore_1.deviceStore)();
251
+ store.remove(key.base(s, id));
252
+ store.remove(key.full(s, id));
253
+ if (entry) {
254
+ handles.delete(`${s}|${entry.handle}`);
255
+ store.remove(key.handle(s, entry.handle));
256
+ }
257
+ }
258
+ // ---------------------------------------------------------------------------
259
+ // Lists (first pages)
260
+ // ---------------------------------------------------------------------------
261
+ /** A list's products without the long descriptions no card shows: a fraction of the size. */
262
+ function forCard(p) {
263
+ return { ...p, description: '', descriptionHtml: '' };
264
+ }
265
+ function peekList(listKey) {
266
+ if (!enabled())
267
+ return null;
268
+ const s = scope();
269
+ const mk = `${s}|${listKey}`;
270
+ const now = Date.now();
271
+ const hit = lists.get(mk);
272
+ if (hit && fresh(hit.at, now)) {
273
+ touch(lists, mk, hit, MEMORY_LISTS);
274
+ return hit;
275
+ }
276
+ const stored = parse((0, deviceStore_1.deviceStore)().get(key.list(s, listKey)));
277
+ // `k` guards against two list keys sharing a hash.
278
+ if (!stored || stored.k !== listKey || !fresh(stored.at, now))
279
+ return null;
280
+ const { k: _k, ...list } = stored;
281
+ touch(lists, mk, list, MEMORY_LISTS);
282
+ return list;
283
+ }
284
+ function rememberList(listKey, list) {
285
+ if (!enabled())
286
+ return;
287
+ const s = scope();
288
+ const entry = { ...list, products: list.products.map(forCard), at: Date.now() };
289
+ touch(lists, `${s}|${listKey}`, entry, MEMORY_LISTS);
290
+ try {
291
+ const store = (0, deviceStore_1.deviceStore)();
292
+ const dk = key.list(s, listKey);
293
+ store.set(dk, JSON.stringify({ ...entry, k: listKey }));
294
+ for (const gone of bumpIndex(key.listIndex(s), dk, DEVICE_LISTS))
295
+ store.remove(gone);
296
+ }
297
+ catch {
298
+ /* best effort */
299
+ }
300
+ }
301
+ /** Forget everything this SDK stored, in memory and on the device, for every store and market. */
302
+ function clearProductStore() {
303
+ resetProductStoreMemory();
304
+ const store = (0, deviceStore_1.deviceStore)();
305
+ for (const k of store.keys())
306
+ if (k.startsWith(`${VERSION}:`))
307
+ store.remove(k);
308
+ }
309
+ //# sourceMappingURL=productStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productStore.js","sourceRoot":"","sources":["../src/productStore.ts"],"names":[],"mappings":";;;AAwHA,0DAIC;AAMD,sCASC;AAwCD,4CAgCC;AAMD,kCAkCC;AAGD,sCAYC;AAWD,4BAgBC;AAED,oCAaC;AAGD,8CAIC;AA3TD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qCAAmD;AACnD,+CAA4C;AAC5C,uDAA4C;AAG5C,mGAAmG;AACtF,QAAA,iBAAiB,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,qBAAqB,CAAU,CAAC;AAsB1H,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAChC,8DAA8D;AACjD,QAAA,UAAU,GAAG,CAAC,GAAG,GAAG,CAAC;AAClC,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,8FAA8F;AAC9F,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,oGAAoG;AACpG,SAAS,KAAK;;IACZ,MAAM,CAAC,GAAG,IAAA,kBAAS,GAAE,CAAC;IACtB,OAAO,IAAA,yBAAO,EACZ;QACE,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QAC/B,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QAChC,CAAC,CAAC,UAAU,IAAI,EAAE;QAClB,IAAI,CAAC,SAAS,CAAC,MAAA,CAAC,CAAC,iBAAiB,mCAAI,EAAE,CAAC;KAC1C,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,GAAG,GAAG;IACV,IAAI,EAAE,CAAC,CAAS,EAAE,EAAU,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE;IAC1D,MAAM,EAAE,CAAC,CAAS,EAAE,MAAc,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,MAAM,EAAE;IACpE,IAAI,EAAE,CAAC,CAAS,EAAE,EAAU,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE;IAC1D,SAAS,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK;IAC9C,IAAI,EAAE,CAAC,CAAS,EAAE,OAAe,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,IAAA,yBAAO,EAAC,OAAO,CAAC,EAAE;IAC7E,SAAS,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK;CAC/C,CAAC;AAEF,SAAS,KAAK,CAAI,IAAwB;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,GAAW,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,kBAAU,CAAC;AAExF,yFAAyF;AACzF,SAAS,OAAO;IACd,OAAO,IAAA,qBAAY,GAAE,IAAI,IAAA,kBAAS,GAAE,CAAC,KAAK,KAAK,KAAK,CAAC;AACvD,CAAC;AAED,8EAA8E;AAC9E,yFAAyF;AACzF,8EAA8E;AAE9E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;AAClD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;AAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE5C,SAAS,KAAK,CAAI,GAAmB,EAAE,CAAS,EAAE,CAAI,EAAE,GAAW;IACjE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACd,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACd,OAAO,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,IAAI;YAAE,MAAM;QACvB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,SAAgB,uBAAuB;IACrC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,SAAgB,aAAa,CAAC,CAAU;;IACtC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,aAAa,EAAE,MAAA,CAAC,CAAC,aAAa,mCAAI,IAAI;QACtC,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,mBAAmB,EAAE,MAAA,CAAC,CAAC,mBAAmB,mCAAI,IAAI;KACnD,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,SAAS,CAAC,QAAgB,EAAE,EAAU,EAAE,GAAW;;IAC1D,MAAM,KAAK,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,CAAC,MAAA,KAAK,CAAW,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACjF,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,wFAAwF;AACxF,SAAS,aAAa,CAAC,CAAS;IAC9B,IAAI,cAAc;QAAE,OAAO;IAC3B,cAAc,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,GAAG,EAAE;;QACd,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAA,yBAAW,GAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAClE,IAAI,QAAQ,CAAC,MAAM,IAAI,YAAY;gBAAE,OAAO;YAC5C,MAAM,IAAI,GAAG,QAAQ;iBAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAgC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBAC1E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,uBAAC,OAAA,CAAC,MAAA,MAAA,CAAC,CAAC,CAAC,0CAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,MAAA,CAAC,CAAC,CAAC,0CAAE,CAAC,mCAAI,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;YACjD,KAAK,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,CAAC,0CAAE,MAAM;oBAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAAuC,EAAE,KAAsB;;IAC9F,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO;IACvC,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;IAClB,MAAM,KAAK,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM;YAAE,SAAS;QACvC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAkB;YAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,IAAI;YACJ,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,mCAAI,IAAI;YAC/C,MAAM,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,mCAAI,CAAC;SACnD,CAAC;QACF,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAClE,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,MAAK,CAAC,CAAC,MAAM;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACxE,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5D,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,CAAC;oBAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACtG,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IACD,aAAa,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,UAAqC;;IAC/D,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;IAClB,MAAM,KAAK,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC,mCAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1G,IAAI,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAErB,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAgC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,IAAI;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAA4B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAkB;QAC3B,EAAE;QACF,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM;QACrB,IAAI,EAAE,IAAI,CAAC,CAAC;QACZ,MAAM,EAAE,IAAI,CAAC,CAAC;QACd,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAChD,MAAM,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAChD,CAAC;IACF,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qEAAqE;AACrE,SAAgB,aAAa,CAAC,EAAU;IACtC,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO;IACvB,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;IAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC5B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9B,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACvC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,6FAA6F;AAC7F,SAAS,OAAO,CAAC,CAAU;IACzB,OAAO,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AACxD,CAAC;AAED,SAAgB,QAAQ,CAAC,OAAe;IACtC,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAA6B,IAAA,yBAAW,GAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1F,mDAAmD;IACnD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAClC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,YAAY,CAAC,OAAe,EAAE,IAA4B;IACxE,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO;IACvB,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;IAClB,MAAM,KAAK,GAAe,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC5F,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,yBAAW,GAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC;YAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC;AAED,kGAAkG;AAClG,SAAgB,iBAAiB;IAC/B,uBAAuB,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAA,yBAAW,GAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC;YAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../src/products.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAKV,OAAO,EAGP,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAmBjB,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,OAAO,CAExE;AA+GD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAsChD;AAED,eAAO,MAAM,QAAQ,EAAE,kBAkDtB,CAAC"}
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../src/products.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAKV,OAAO,EAGP,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAmBjB,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,OAAO,CAExE;AAgHD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAsChD;AAED,eAAO,MAAM,QAAQ,EAAE,kBAyDtB,CAAC"}
package/dist/products.js CHANGED
@@ -4,6 +4,7 @@ exports.products = void 0;
4
4
  exports.hasVideoContentType = hasVideoContentType;
5
5
  exports.normalizeProduct = normalizeProduct;
6
6
  const client_1 = require("./client");
7
+ const productStore_1 = require("./productStore");
7
8
  const metafields_1 = require("./metafields");
8
9
  const types_1 = require("./types");
9
10
  const queries_1 = require("./queries");
@@ -91,7 +92,7 @@ async function byIds(ids, opts) {
91
92
  const out = [];
92
93
  for (let i = 0; i < ids.length; i += batchSize) {
93
94
  const chunk = ids.slice(i, i + batchSize);
94
- const data = await (0, client_1.request)((0, queries_1.nodesAsProductsQuery)(), { ids: chunk });
95
+ const data = await (0, client_1.request)((0, queries_1.nodesAsProductsQuery)(), { ids: chunk }, { imageTransform: opts === null || opts === void 0 ? void 0 : opts.imageTransform });
95
96
  const nodes = Array.isArray(data.nodes) ? data.nodes : [];
96
97
  for (let j = 0; j < chunk.length; j++) {
97
98
  const node = nodes[j];
@@ -102,6 +103,7 @@ async function byIds(ids, opts) {
102
103
  out.push(null);
103
104
  }
104
105
  }
106
+ (0, productStore_1.rememberProducts)(out, 'base');
105
107
  return out;
106
108
  }
107
109
  function normalizeProduct(p) {
@@ -152,19 +154,22 @@ exports.products = {
152
154
  query: opts === null || opts === void 0 ? void 0 : opts.query,
153
155
  sortKey: opts === null || opts === void 0 ? void 0 : opts.sortKey,
154
156
  reverse: (_b = opts === null || opts === void 0 ? void 0 : opts.reverse) !== null && _b !== void 0 ? _b : false,
155
- });
156
- return {
157
- nodes: data.products.nodes.map(normalizeProduct),
158
- pageInfo: data.products.pageInfo,
159
- };
157
+ }, { imageTransform: opts === null || opts === void 0 ? void 0 : opts.imageTransform });
158
+ const nodes = data.products.nodes.map(normalizeProduct);
159
+ (0, productStore_1.rememberProducts)(nodes, 'base');
160
+ return { nodes, pageInfo: data.products.pageInfo };
160
161
  },
161
- async byHandle(handle) {
162
- const data = await (0, client_1.request)((0, queries_1.productByHandleQuery)(), { handle });
163
- return data.product ? normalizeProduct(data.product) : null;
162
+ async byHandle(handle, opts) {
163
+ const data = await (0, client_1.request)((0, queries_1.productByHandleQuery)(), { handle }, { fresh: opts === null || opts === void 0 ? void 0 : opts.fresh, imageTransform: opts === null || opts === void 0 ? void 0 : opts.imageTransform });
164
+ const product = data.product ? normalizeProduct(data.product) : null;
165
+ (0, productStore_1.rememberProducts)([product], 'full');
166
+ return product;
164
167
  },
165
- async byId(id) {
166
- const data = await (0, client_1.request)((0, queries_1.productByIdQuery)(), { id });
167
- return data.product ? normalizeProduct(data.product) : null;
168
+ async byId(id, opts) {
169
+ const data = await (0, client_1.request)((0, queries_1.productByIdQuery)(), { id }, { fresh: opts === null || opts === void 0 ? void 0 : opts.fresh, imageTransform: opts === null || opts === void 0 ? void 0 : opts.imageTransform });
170
+ const product = data.product ? normalizeProduct(data.product) : null;
171
+ (0, productStore_1.rememberProducts)([product], 'full');
172
+ return product;
168
173
  },
169
174
  byIds: byIds,
170
175
  async search(query, opts) {
@@ -176,20 +181,24 @@ exports.products = {
176
181
  productFilters: opts === null || opts === void 0 ? void 0 : opts.filters,
177
182
  sortKey: toSearchSortKey(opts === null || opts === void 0 ? void 0 : opts.sortKey),
178
183
  reverse: opts === null || opts === void 0 ? void 0 : opts.reverse,
179
- });
184
+ }, { fresh: opts === null || opts === void 0 ? void 0 : opts.fresh, imageTransform: opts === null || opts === void 0 ? void 0 : opts.imageTransform });
185
+ // `types: [PRODUCT]` still yields a union: a non-Product arrives as an empty object
186
+ // rather than being dropped, and would map to a card with no title and no price.
187
+ const nodes = ((_b = data.search.nodes) !== null && _b !== void 0 ? _b : []).filter((node) => node && 'id' in node).map(normalizeProduct);
188
+ (0, productStore_1.rememberProducts)(nodes, 'base');
180
189
  return {
181
- // `types: [PRODUCT]` still yields a union: a non-Product arrives as an empty object
182
- // rather than being dropped, and would map to a card with no title and no price.
183
- nodes: ((_b = data.search.nodes) !== null && _b !== void 0 ? _b : []).filter((node) => node && 'id' in node).map(normalizeProduct),
190
+ nodes,
184
191
  pageInfo: data.search.pageInfo,
185
192
  filters: (_c = data.search.productFilters) !== null && _c !== void 0 ? _c : [],
186
193
  totalCount: data.search.totalCount,
187
194
  };
188
195
  },
189
- async recommended(productId) {
196
+ async recommended(productId, opts) {
190
197
  var _a;
191
- const data = await (0, client_1.request)((0, queries_1.productRecommendationsQuery)(), { productId });
192
- return ((_a = data.productRecommendations) !== null && _a !== void 0 ? _a : []).map(normalizeProduct);
198
+ const data = await (0, client_1.request)((0, queries_1.productRecommendationsQuery)(), { productId }, { imageTransform: opts === null || opts === void 0 ? void 0 : opts.imageTransform });
199
+ const list = ((_a = data.productRecommendations) !== null && _a !== void 0 ? _a : []).map(normalizeProduct);
200
+ (0, productStore_1.rememberProducts)(list, 'base');
201
+ return list;
193
202
  },
194
203
  };
195
204
  //# sourceMappingURL=products.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"products.js","sourceRoot":"","sources":["../src/products.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../src/products.ts"],"names":[],"mappings":"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"}