@tiledev/sdk-shopify 0.4.1 → 0.7.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 (87) hide show
  1. package/README.md +114 -1
  2. package/dist/blogs.d.ts.map +1 -1
  3. package/dist/blogs.js +3 -3
  4. package/dist/blogs.js.map +1 -1
  5. package/dist/cart.d.ts +7 -1
  6. package/dist/cart.d.ts.map +1 -1
  7. package/dist/cart.js +49 -24
  8. package/dist/cart.js.map +1 -1
  9. package/dist/client.d.ts +20 -2
  10. package/dist/client.d.ts.map +1 -1
  11. package/dist/client.js +80 -19
  12. package/dist/client.js.map +1 -1
  13. package/dist/collections.d.ts.map +1 -1
  14. package/dist/collections.js +8 -5
  15. package/dist/collections.js.map +1 -1
  16. package/dist/customer.d.ts.map +1 -1
  17. package/dist/customer.js +3 -3
  18. package/dist/customer.js.map +1 -1
  19. package/dist/deviceStore.d.ts +9 -0
  20. package/dist/deviceStore.d.ts.map +1 -0
  21. package/dist/deviceStore.js +77 -0
  22. package/dist/deviceStore.js.map +1 -0
  23. package/dist/deviceStore.native.d.ts +14 -0
  24. package/dist/deviceStore.native.d.ts.map +1 -0
  25. package/dist/deviceStore.native.js +47 -0
  26. package/dist/deviceStore.native.js.map +1 -0
  27. package/dist/deviceStoreCore.d.ts +24 -0
  28. package/dist/deviceStoreCore.d.ts.map +1 -0
  29. package/dist/deviceStoreCore.js +40 -0
  30. package/dist/deviceStoreCore.js.map +1 -0
  31. package/dist/filters.d.ts +32 -0
  32. package/dist/filters.d.ts.map +1 -0
  33. package/dist/filters.js +67 -0
  34. package/dist/filters.js.map +1 -0
  35. package/dist/index.d.ts +5 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +23 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/productStore.d.ts +43 -0
  40. package/dist/productStore.d.ts.map +1 -0
  41. package/dist/productStore.js +309 -0
  42. package/dist/productStore.js.map +1 -0
  43. package/dist/products.d.ts.map +1 -1
  44. package/dist/products.js +28 -19
  45. package/dist/products.js.map +1 -1
  46. package/dist/queries.d.ts +24 -24
  47. package/dist/queries.d.ts.map +1 -1
  48. package/dist/queries.js +5 -3
  49. package/dist/queries.js.map +1 -1
  50. package/dist/react/ShopifyProvider.d.ts +8 -0
  51. package/dist/react/ShopifyProvider.d.ts.map +1 -1
  52. package/dist/react/ShopifyProvider.js +134 -3
  53. package/dist/react/ShopifyProvider.js.map +1 -1
  54. package/dist/react/index.d.ts +3 -0
  55. package/dist/react/index.d.ts.map +1 -1
  56. package/dist/react/index.js +9 -1
  57. package/dist/react/index.js.map +1 -1
  58. package/dist/react/useCollectionProducts.d.ts +12 -20
  59. package/dist/react/useCollectionProducts.d.ts.map +1 -1
  60. package/dist/react/useCollectionProducts.js +36 -137
  61. package/dist/react/useCollectionProducts.js.map +1 -1
  62. package/dist/react/useProduct.d.ts +36 -0
  63. package/dist/react/useProduct.d.ts.map +1 -0
  64. package/dist/react/useProduct.js +126 -0
  65. package/dist/react/useProduct.js.map +1 -0
  66. package/dist/react/useProductFeed.d.ts +57 -0
  67. package/dist/react/useProductFeed.d.ts.map +1 -0
  68. package/dist/react/useProductFeed.js +231 -0
  69. package/dist/react/useProductFeed.js.map +1 -0
  70. package/dist/react/useSearch.d.ts +30 -0
  71. package/dist/react/useSearch.d.ts.map +1 -0
  72. package/dist/react/useSearch.js +61 -0
  73. package/dist/react/useSearch.js.map +1 -0
  74. package/dist/requestCache.d.ts +48 -0
  75. package/dist/requestCache.d.ts.map +1 -0
  76. package/dist/requestCache.js +173 -0
  77. package/dist/requestCache.js.map +1 -0
  78. package/dist/types.d.ts +80 -21
  79. package/dist/types.d.ts.map +1 -1
  80. package/dist/types.js +0 -1
  81. package/dist/types.js.map +1 -1
  82. package/dist/variants.js +1 -1
  83. package/dist/variants.js.map +1 -1
  84. package/dist/wishlist.d.ts.map +1 -1
  85. package/dist/wishlist.js +4 -1
  86. package/dist/wishlist.js.map +1 -1
  87. package/package.json +9 -3
@@ -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":"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"}
@@ -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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"}