@sixtyninecommerce/client 0.30.0 → 0.32.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 (361) hide show
  1. package/README.md +574 -14
  2. package/dist/admin/http.d.ts.map +1 -1
  3. package/dist/admin/http.js.map +1 -1
  4. package/dist/admin/types.d.ts.map +1 -1
  5. package/dist/build-client.d.ts +9 -0
  6. package/dist/build-client.d.ts.map +1 -0
  7. package/dist/build-client.js +58 -0
  8. package/dist/build-client.js.map +1 -0
  9. package/dist/cache-tags.d.ts +35 -1
  10. package/dist/cache-tags.d.ts.map +1 -1
  11. package/dist/cache-tags.js +39 -1
  12. package/dist/cache-tags.js.map +1 -1
  13. package/dist/client.d.ts +25 -0
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +9 -62
  16. package/dist/client.js.map +1 -1
  17. package/dist/commerce/age-verification.d.ts +7 -4
  18. package/dist/commerce/age-verification.d.ts.map +1 -1
  19. package/dist/commerce/age-verification.js +6 -4
  20. package/dist/commerce/age-verification.js.map +1 -1
  21. package/dist/commerce/arguments.d.ts +13 -0
  22. package/dist/commerce/arguments.d.ts.map +1 -0
  23. package/dist/commerce/arguments.js +19 -0
  24. package/dist/commerce/arguments.js.map +1 -0
  25. package/dist/commerce/branding.d.ts.map +1 -1
  26. package/dist/commerce/branding.js.map +1 -1
  27. package/dist/commerce/capabilities.d.ts +40 -0
  28. package/dist/commerce/capabilities.d.ts.map +1 -0
  29. package/dist/commerce/capabilities.js +41 -0
  30. package/dist/commerce/capabilities.js.map +1 -0
  31. package/dist/commerce/cart.d.ts +9 -12
  32. package/dist/commerce/cart.d.ts.map +1 -1
  33. package/dist/commerce/cart.js +6 -1
  34. package/dist/commerce/cart.js.map +1 -1
  35. package/dist/commerce/checkout.d.ts +95 -15
  36. package/dist/commerce/checkout.d.ts.map +1 -1
  37. package/dist/commerce/checkout.js +230 -10
  38. package/dist/commerce/checkout.js.map +1 -1
  39. package/dist/commerce/customer.d.ts +83 -38
  40. package/dist/commerce/customer.d.ts.map +1 -1
  41. package/dist/commerce/customer.js +149 -10
  42. package/dist/commerce/customer.js.map +1 -1
  43. package/dist/commerce/favorites.d.ts +2 -5
  44. package/dist/commerce/favorites.d.ts.map +1 -1
  45. package/dist/commerce/favorites.js.map +1 -1
  46. package/dist/commerce/index.d.ts +194 -133
  47. package/dist/commerce/index.d.ts.map +1 -1
  48. package/dist/commerce/index.js +15 -0
  49. package/dist/commerce/index.js.map +1 -1
  50. package/dist/commerce/order-states.d.ts +18 -0
  51. package/dist/commerce/order-states.d.ts.map +1 -0
  52. package/dist/commerce/order-states.js +30 -0
  53. package/dist/commerce/order-states.js.map +1 -0
  54. package/dist/commerce/parcel-pricing.d.ts +48 -0
  55. package/dist/commerce/parcel-pricing.d.ts.map +1 -0
  56. package/dist/commerce/parcel-pricing.js +39 -0
  57. package/dist/commerce/parcel-pricing.js.map +1 -0
  58. package/dist/commerce/parked-orders.d.ts +22 -0
  59. package/dist/commerce/parked-orders.d.ts.map +1 -0
  60. package/dist/commerce/parked-orders.js +47 -0
  61. package/dist/commerce/parked-orders.js.map +1 -0
  62. package/dist/commerce/payments.d.ts +12 -5
  63. package/dist/commerce/payments.d.ts.map +1 -1
  64. package/dist/commerce/payments.js +10 -1
  65. package/dist/commerce/payments.js.map +1 -1
  66. package/dist/commerce/placement-error.d.ts +17 -0
  67. package/dist/commerce/placement-error.d.ts.map +1 -1
  68. package/dist/commerce/placement-error.js.map +1 -1
  69. package/dist/commerce/products.d.ts +92 -38
  70. package/dist/commerce/products.d.ts.map +1 -1
  71. package/dist/commerce/products.js +157 -123
  72. package/dist/commerce/products.js.map +1 -1
  73. package/dist/commerce/queries.d.ts +216 -49
  74. package/dist/commerce/queries.d.ts.map +1 -1
  75. package/dist/commerce/queries.js +1347 -743
  76. package/dist/commerce/queries.js.map +1 -1
  77. package/dist/commerce/quotes.d.ts +5 -4
  78. package/dist/commerce/quotes.d.ts.map +1 -1
  79. package/dist/commerce/quotes.js +1 -36
  80. package/dist/commerce/quotes.js.map +1 -1
  81. package/dist/commerce/receipt-claim.d.ts +35 -0
  82. package/dist/commerce/receipt-claim.d.ts.map +1 -0
  83. package/dist/commerce/receipt-claim.js +66 -0
  84. package/dist/commerce/receipt-claim.js.map +1 -0
  85. package/dist/commerce/recommendations.d.ts +3 -3
  86. package/dist/commerce/recommendations.d.ts.map +1 -1
  87. package/dist/commerce/recommendations.js +3 -1
  88. package/dist/commerce/recommendations.js.map +1 -1
  89. package/dist/commerce/returns.d.ts +7 -6
  90. package/dist/commerce/returns.d.ts.map +1 -1
  91. package/dist/commerce/returns.js +24 -3
  92. package/dist/commerce/returns.js.map +1 -1
  93. package/dist/commerce/reviews.d.ts +24 -15
  94. package/dist/commerce/reviews.d.ts.map +1 -1
  95. package/dist/commerce/reviews.js +67 -50
  96. package/dist/commerce/reviews.js.map +1 -1
  97. package/dist/commerce/saved-lists.d.ts +15 -15
  98. package/dist/commerce/saved-lists.d.ts.map +1 -1
  99. package/dist/commerce/saved-lists.js +67 -56
  100. package/dist/commerce/saved-lists.js.map +1 -1
  101. package/dist/commerce/search.d.ts +3 -2
  102. package/dist/commerce/search.d.ts.map +1 -1
  103. package/dist/commerce/search.js +2 -2
  104. package/dist/commerce/search.js.map +1 -1
  105. package/dist/commerce/shipping.d.ts +11 -4
  106. package/dist/commerce/shipping.d.ts.map +1 -1
  107. package/dist/commerce/shipping.js +17 -2
  108. package/dist/commerce/shipping.js.map +1 -1
  109. package/dist/commerce/stock-notifications.d.ts +2 -0
  110. package/dist/commerce/stock-notifications.d.ts.map +1 -1
  111. package/dist/commerce/stock-notifications.js +2 -2
  112. package/dist/commerce/stock-notifications.js.map +1 -1
  113. package/dist/commerce/store-pickup.d.ts +37 -0
  114. package/dist/commerce/store-pickup.d.ts.map +1 -0
  115. package/dist/commerce/store-pickup.js +66 -0
  116. package/dist/commerce/store-pickup.js.map +1 -0
  117. package/dist/commerce/subscriptions.d.ts +35 -37
  118. package/dist/commerce/subscriptions.d.ts.map +1 -1
  119. package/dist/commerce/subscriptions.js +159 -120
  120. package/dist/commerce/subscriptions.js.map +1 -1
  121. package/dist/commerce/vat-validation.d.ts +6 -3
  122. package/dist/commerce/vat-validation.d.ts.map +1 -1
  123. package/dist/commerce/vat-validation.js +24 -19
  124. package/dist/commerce/vat-validation.js.map +1 -1
  125. package/dist/constants.d.ts.map +1 -1
  126. package/dist/constants.js.map +1 -1
  127. package/dist/content/assets.d.ts +5 -4
  128. package/dist/content/assets.d.ts.map +1 -1
  129. package/dist/content/assets.js.map +1 -1
  130. package/dist/content/collection-pages.d.ts +3 -2
  131. package/dist/content/collection-pages.d.ts.map +1 -1
  132. package/dist/content/collection-pages.js.map +1 -1
  133. package/dist/content/collections.d.ts +5 -4
  134. package/dist/content/collections.d.ts.map +1 -1
  135. package/dist/content/collections.js.map +1 -1
  136. package/dist/content/filtered-products.d.ts.map +1 -1
  137. package/dist/content/filtered-products.js.map +1 -1
  138. package/dist/content/form-field-types.d.ts +3 -3
  139. package/dist/content/form-field-types.d.ts.map +1 -1
  140. package/dist/content/form-field-types.js.map +1 -1
  141. package/dist/content/forms.d.ts +4 -3
  142. package/dist/content/forms.d.ts.map +1 -1
  143. package/dist/content/forms.js +3 -0
  144. package/dist/content/forms.js.map +1 -1
  145. package/dist/content/index.d.ts +18 -17
  146. package/dist/content/index.d.ts.map +1 -1
  147. package/dist/content/items.d.ts +5 -4
  148. package/dist/content/items.d.ts.map +1 -1
  149. package/dist/content/items.js +2 -0
  150. package/dist/content/items.js.map +1 -1
  151. package/dist/content/menus.d.ts +3 -2
  152. package/dist/content/menus.d.ts.map +1 -1
  153. package/dist/content/menus.js +7 -1
  154. package/dist/content/menus.js.map +1 -1
  155. package/dist/content/resolve.d.ts +3 -2
  156. package/dist/content/resolve.d.ts.map +1 -1
  157. package/dist/content/resolve.js +1 -1
  158. package/dist/content/resolve.js.map +1 -1
  159. package/dist/content/sitemap.d.ts +3 -2
  160. package/dist/content/sitemap.d.ts.map +1 -1
  161. package/dist/content/sitemap.js.map +1 -1
  162. package/dist/content/strings.d.ts +16 -2
  163. package/dist/content/strings.d.ts.map +1 -1
  164. package/dist/content/strings.js +32 -4
  165. package/dist/content/strings.js.map +1 -1
  166. package/dist/core/context.d.ts +127 -1
  167. package/dist/core/context.d.ts.map +1 -1
  168. package/dist/core/context.js +436 -45
  169. package/dist/core/context.js.map +1 -1
  170. package/dist/core/currency.d.ts +14 -0
  171. package/dist/core/currency.d.ts.map +1 -0
  172. package/dist/core/currency.js +52 -0
  173. package/dist/core/currency.js.map +1 -0
  174. package/dist/core/deprecation.d.ts +23 -0
  175. package/dist/core/deprecation.d.ts.map +1 -0
  176. package/dist/core/deprecation.js +81 -0
  177. package/dist/core/deprecation.js.map +1 -0
  178. package/dist/core/http.d.ts +15 -1
  179. package/dist/core/http.d.ts.map +1 -1
  180. package/dist/core/http.js +55 -3
  181. package/dist/core/http.js.map +1 -1
  182. package/dist/core/public-artifact.d.ts +72 -0
  183. package/dist/core/public-artifact.d.ts.map +1 -0
  184. package/dist/core/public-artifact.js +122 -0
  185. package/dist/core/public-artifact.js.map +1 -0
  186. package/dist/core/unknown-field-rejection.d.ts +18 -0
  187. package/dist/core/unknown-field-rejection.d.ts.map +1 -0
  188. package/dist/core/unknown-field-rejection.js +37 -0
  189. package/dist/core/unknown-field-rejection.js.map +1 -0
  190. package/dist/credit/credit-status.d.ts +2 -0
  191. package/dist/credit/credit-status.d.ts.map +1 -1
  192. package/dist/credit/credit-status.js +71 -19
  193. package/dist/credit/credit-status.js.map +1 -1
  194. package/dist/credit/index.d.ts +1 -1
  195. package/dist/credit/payment-terms.d.ts +3 -3
  196. package/dist/credit/payment-terms.d.ts.map +1 -1
  197. package/dist/credit/payment-terms.js +28 -24
  198. package/dist/credit/payment-terms.js.map +1 -1
  199. package/dist/currency/exchange.d.ts +7 -7
  200. package/dist/currency/exchange.d.ts.map +1 -1
  201. package/dist/currency/exchange.js +5 -1
  202. package/dist/currency/exchange.js.map +1 -1
  203. package/dist/errors.d.ts +17 -0
  204. package/dist/errors.d.ts.map +1 -1
  205. package/dist/errors.js +13 -0
  206. package/dist/errors.js.map +1 -1
  207. package/dist/events/index.d.ts +20 -7
  208. package/dist/events/index.d.ts.map +1 -1
  209. package/dist/events/index.js +17 -5
  210. package/dist/events/index.js.map +1 -1
  211. package/dist/events/payloads.d.ts +7 -4
  212. package/dist/events/payloads.d.ts.map +1 -1
  213. package/dist/events/payloads.js +6 -3
  214. package/dist/events/payloads.js.map +1 -1
  215. package/dist/feeds/index.d.ts +5 -0
  216. package/dist/feeds/index.d.ts.map +1 -0
  217. package/dist/feeds/index.js +12 -0
  218. package/dist/feeds/index.js.map +1 -0
  219. package/dist/feeds/types.d.ts +18 -0
  220. package/dist/feeds/types.d.ts.map +1 -0
  221. package/dist/feeds/types.js +8 -0
  222. package/dist/feeds/types.js.map +1 -0
  223. package/dist/generated/cms.d.ts +2136 -0
  224. package/dist/generated/cms.d.ts.map +1 -0
  225. package/dist/generated/cms.js +4 -0
  226. package/dist/generated/cms.js.map +1 -0
  227. package/dist/generated/plugins.d.ts +550 -0
  228. package/dist/generated/plugins.d.ts.map +1 -0
  229. package/dist/generated/plugins.js +4 -0
  230. package/dist/generated/plugins.js.map +1 -0
  231. package/dist/generated/shop.d.ts +5663 -0
  232. package/dist/generated/shop.d.ts.map +1 -0
  233. package/dist/generated/shop.js +5 -0
  234. package/dist/generated/shop.js.map +1 -0
  235. package/dist/graphql-document.d.ts +29 -0
  236. package/dist/graphql-document.d.ts.map +1 -0
  237. package/dist/graphql-document.js +21 -0
  238. package/dist/graphql-document.js.map +1 -0
  239. package/dist/index.d.ts +10 -4
  240. package/dist/index.d.ts.map +1 -1
  241. package/dist/index.js +5 -2
  242. package/dist/index.js.map +1 -1
  243. package/dist/media/urls.d.ts.map +1 -1
  244. package/dist/media/urls.js +12 -1
  245. package/dist/media/urls.js.map +1 -1
  246. package/dist/media/video.d.ts.map +1 -1
  247. package/dist/media/video.js.map +1 -1
  248. package/dist/multi-store.d.ts +200 -0
  249. package/dist/multi-store.d.ts.map +1 -0
  250. package/dist/multi-store.js +558 -0
  251. package/dist/multi-store.js.map +1 -0
  252. package/dist/navigation/routes.d.ts +4 -3
  253. package/dist/navigation/routes.d.ts.map +1 -1
  254. package/dist/navigation/routes.js.map +1 -1
  255. package/dist/next/artifact-handler.d.ts +21 -13
  256. package/dist/next/artifact-handler.d.ts.map +1 -1
  257. package/dist/next/artifact-handler.js +28 -66
  258. package/dist/next/artifact-handler.js.map +1 -1
  259. package/dist/next/event-revalidate-handler.d.ts +26 -6
  260. package/dist/next/event-revalidate-handler.d.ts.map +1 -1
  261. package/dist/next/event-revalidate-handler.js +126 -19
  262. package/dist/next/event-revalidate-handler.js.map +1 -1
  263. package/dist/next/feed-handler.d.ts +50 -0
  264. package/dist/next/feed-handler.d.ts.map +1 -0
  265. package/dist/next/feed-handler.js +61 -0
  266. package/dist/next/feed-handler.js.map +1 -0
  267. package/dist/next/index.d.ts +3 -1
  268. package/dist/next/index.d.ts.map +1 -1
  269. package/dist/next/index.js +1 -0
  270. package/dist/next/index.js.map +1 -1
  271. package/dist/next/metadata.d.ts.map +1 -1
  272. package/dist/next/metadata.js.map +1 -1
  273. package/dist/next/redirect-middleware.d.ts +5 -31
  274. package/dist/next/redirect-middleware.d.ts.map +1 -1
  275. package/dist/next/redirect-middleware.js +4 -46
  276. package/dist/next/redirect-middleware.js.map +1 -1
  277. package/dist/next/revalidate-handler.d.ts.map +1 -1
  278. package/dist/next/revalidate-handler.js.map +1 -1
  279. package/dist/pricing/index.d.ts.map +1 -1
  280. package/dist/pricing/index.js.map +1 -1
  281. package/dist/pricing/tax-display.js +1 -1
  282. package/dist/pricing/tax-display.js.map +1 -1
  283. package/dist/pricing/tiers.d.ts +3 -2
  284. package/dist/pricing/tiers.d.ts.map +1 -1
  285. package/dist/pricing/tiers.js.map +1 -1
  286. package/dist/pricing/validation.d.ts +88 -12
  287. package/dist/pricing/validation.d.ts.map +1 -1
  288. package/dist/pricing/validation.js +93 -12
  289. package/dist/pricing/validation.js.map +1 -1
  290. package/dist/redirects/index.d.ts.map +1 -1
  291. package/dist/redirects/index.js +2 -1
  292. package/dist/redirects/index.js.map +1 -1
  293. package/dist/redirects/store.d.ts.map +1 -1
  294. package/dist/redirects/store.js +6 -2
  295. package/dist/redirects/store.js.map +1 -1
  296. package/dist/redirects/types.d.ts +5 -2
  297. package/dist/redirects/types.d.ts.map +1 -1
  298. package/dist/revalidation/event-plan.d.ts +55 -4
  299. package/dist/revalidation/event-plan.d.ts.map +1 -1
  300. package/dist/revalidation/event-plan.js +115 -8
  301. package/dist/revalidation/event-plan.js.map +1 -1
  302. package/dist/revalidation/event-verify.d.ts +8 -37
  303. package/dist/revalidation/event-verify.d.ts.map +1 -1
  304. package/dist/revalidation/event-verify.js +7 -97
  305. package/dist/revalidation/event-verify.js.map +1 -1
  306. package/dist/revalidation/types.d.ts.map +1 -1
  307. package/dist/revalidation/url-context.d.ts +17 -0
  308. package/dist/revalidation/url-context.d.ts.map +1 -1
  309. package/dist/revalidation/url-context.js +35 -2
  310. package/dist/revalidation/url-context.js.map +1 -1
  311. package/dist/seo/ai.d.ts.map +1 -1
  312. package/dist/seo/ai.js.map +1 -1
  313. package/dist/seo/artifacts.d.ts +86 -4
  314. package/dist/seo/artifacts.d.ts.map +1 -1
  315. package/dist/seo/artifacts.js +115 -16
  316. package/dist/seo/artifacts.js.map +1 -1
  317. package/dist/seo/availability.d.ts +2 -2
  318. package/dist/seo/availability.d.ts.map +1 -1
  319. package/dist/seo/availability.js.map +1 -1
  320. package/dist/seo/index.d.ts +2 -0
  321. package/dist/seo/index.d.ts.map +1 -1
  322. package/dist/seo/index.js +3 -1
  323. package/dist/seo/index.js.map +1 -1
  324. package/dist/seo/json-ld.d.ts.map +1 -1
  325. package/dist/seo/json-ld.js.map +1 -1
  326. package/dist/seo/meta-tags.d.ts.map +1 -1
  327. package/dist/seo/meta-tags.js.map +1 -1
  328. package/dist/seo/metadata-parser.d.ts.map +1 -1
  329. package/dist/seo/metadata-parser.js.map +1 -1
  330. package/dist/seo/metadata-types.d.ts.map +1 -1
  331. package/dist/seo/robots.d.ts.map +1 -1
  332. package/dist/seo/robots.js.map +1 -1
  333. package/dist/seo/types.d.ts +9 -2
  334. package/dist/seo/types.d.ts.map +1 -1
  335. package/dist/seo/url-builder.d.ts +5 -3
  336. package/dist/seo/url-builder.d.ts.map +1 -1
  337. package/dist/seo/url-builder.js +3 -1
  338. package/dist/seo/url-builder.js.map +1 -1
  339. package/dist/types.d.ts +1381 -2537
  340. package/dist/types.d.ts.map +1 -1
  341. package/dist/web/artifact-responder.d.ts +69 -0
  342. package/dist/web/artifact-responder.d.ts.map +1 -0
  343. package/dist/web/artifact-responder.js +90 -0
  344. package/dist/web/artifact-responder.js.map +1 -0
  345. package/dist/web/feed-responder.d.ts +72 -0
  346. package/dist/web/feed-responder.d.ts.map +1 -0
  347. package/dist/web/feed-responder.js +81 -0
  348. package/dist/web/feed-responder.js.map +1 -0
  349. package/dist/web/index.d.ts +23 -0
  350. package/dist/web/index.d.ts.map +1 -0
  351. package/dist/web/index.js +19 -0
  352. package/dist/web/index.js.map +1 -0
  353. package/dist/web/redirect-middleware.d.ts +76 -0
  354. package/dist/web/redirect-middleware.d.ts.map +1 -0
  355. package/dist/web/redirect-middleware.js +94 -0
  356. package/dist/web/redirect-middleware.js.map +1 -0
  357. package/dist/web/respond.d.ts +20 -0
  358. package/dist/web/respond.d.ts.map +1 -0
  359. package/dist/web/respond.js +52 -0
  360. package/dist/web/respond.js.map +1 -0
  361. package/package.json +18 -2
@@ -1,15 +1,39 @@
1
1
  import { collectionCacheTag, productCacheTag } from '../cache-tags.js';
2
- import { tagRequest } from '../core/http.js';
2
+ import { tagCatalogRead } from '../core/http.js';
3
3
  import { StorefrontError } from '../errors.js';
4
4
  import { parseProductMetadata } from '../seo/metadata-parser.js';
5
- import { GET_COLLECTION, GET_COLLECTION_BY_ID, GET_PRODUCT, GET_PRODUCT_BY_ID, LIST_COLLECTIONS, LIST_FACETS, LIST_PRODUCT_CARDS, LIST_PRODUCTS, PRODUCT_PROPERTIES, PROPERTY_GROUPS, SEARCH_PRODUCTS, } from './queries.js';
5
+ import { invalidArgument, isNonBlankString, isPlainObject } from './arguments.js';
6
+ import { GET_COLLECTION, GET_COLLECTION_BY_ID, GET_COLLECTION_BY_ID_WITH_METAFIELDS, GET_COLLECTION_WITH_METAFIELDS, GET_PRODUCT, GET_PRODUCT_BY_ID, GET_PRODUCT_BY_ID_WITH_METAFIELDS, GET_PRODUCT_WITH_METAFIELDS, LIST_COLLECTIONS, LIST_FACETS, LIST_PRODUCT_CARDS, LIST_PRODUCTS, PRODUCT_PROPERTIES, PROPERTY_GROUPS, SEARCH_PRODUCTS, } from './queries.js';
7
+ /**
8
+ * The namespace a read asks for, `null` for every namespace, or `undefined`
9
+ * when the caller did not ask for metafields at all.
10
+ *
11
+ * Refused before any request (INVALID_ARGUMENT): anything but a boolean or an
12
+ * object carrying a non-blank `namespace`. An empty namespace would read as
13
+ * "every namespace" on the engine, which `true` already says.
14
+ */
15
+ function metafieldsNamespace(method, option) {
16
+ if (option === undefined || option === false)
17
+ return undefined;
18
+ if (option === true)
19
+ return null;
20
+ if (isPlainObject(option) && isNonBlankString(option.namespace))
21
+ return option.namespace;
22
+ throw invalidArgument(`${method}: \`metafields\` takes true (every namespace), false, or { namespace: '<app slug>' } ` +
23
+ 'with a non-blank namespace.');
24
+ }
25
+ function productNotFound(slugOrId) {
26
+ return new StorefrontError(`Product not found: ${slugOrId}`, 'vendure', 404, 'NOT_FOUND');
27
+ }
28
+ function collectionNotFound(slugOrId) {
29
+ return new StorefrontError(`Collection not found: ${slugOrId}`, 'vendure', 404, 'NOT_FOUND');
30
+ }
6
31
  /**
7
32
  * Replace the raw `metadata` payload on a fetched product with the parsed +
8
33
  * validated SDK shape. Idempotent for products without metadata (null).
9
34
  */
10
35
  function hydrateProductMetadata(product) {
11
- const raw = product.metadata;
12
- return { ...product, metadata: parseProductMetadata(raw ?? null) };
36
+ return { ...product, metadata: parseProductMetadata(product.metadata) };
13
37
  }
14
38
  /**
15
39
  * Map a SearchResultItem to the honest collection-listing shape. The search
@@ -65,15 +89,16 @@ function searchItemToCollectionProduct(item) {
65
89
  };
66
90
  }
67
91
  /**
68
- * Legacy mapper for the deprecated `getProducts({ collectionSlug })` path,
69
- * which promised the `ProductSummary` shape and filled the gaps with dummies
70
- * (`sku: ''`). Kept only for that path's back-compat — new code goes through
71
- * `getProductsInCollection`, which returns the honest shape.
92
+ * Mapper for the deprecated `getProducts({ collectionSlug })` path. It once
93
+ * promised the list-row shape and filled the gaps with dummies; the `sku: ''`
94
+ * dummy is still on the wire object for code that read it, but the path is now
95
+ * typed as what it is — a search row (`CollectionProductSummary`).
72
96
  */
73
- function searchItemToProductSummary(item) {
97
+ function searchItemToLegacyListRow(item) {
74
98
  const product = searchItemToCollectionProduct(item);
75
99
  const [variant] = product.variants;
76
- return { ...product, variants: [{ ...variant, sku: '' }] };
100
+ const withDummySku = { ...variant, sku: '' };
101
+ return { ...product, variants: [withDummySku] };
77
102
  }
78
103
  /**
79
104
  * Extract the numeric amount from a search-result price (SinglePrice `value`
@@ -115,102 +140,123 @@ export function mapProductProperties(groups) {
115
140
  return record;
116
141
  }
117
142
  export function createProductMethods(http) {
118
- return {
119
- async getProduct(slug, options) {
120
- const data = await http.graphql(GET_PRODUCT, { slug }, tagRequest(options, 'getProduct'));
121
- if (!data.product) {
122
- throw new StorefrontError(`Product not found: ${slug}`, 'vendure', 404, 'NOT_FOUND');
123
- }
124
- return hydrateProductMetadata(data.product);
125
- },
126
- async getProductById(id, options) {
127
- const data = await http.graphql(GET_PRODUCT_BY_ID, { id }, tagRequest(options, 'getProductById', [productCacheTag(id)]));
128
- if (!data.product) {
129
- throw new StorefrontError(`Product not found: ${id}`, 'vendure', 404, 'NOT_FOUND');
130
- }
131
- return hydrateProductMetadata(data.product);
132
- },
133
- /**
134
- * List products for the active channel via the `products` list query.
135
- * Defaults to `filter: { enabled: { eq: true } }` (and the Shop API forces
136
- * the same server-side), so `totalItems` matches the browsable catalogue.
137
- *
138
- * Cannot sort by price — Vendure's `ProductSortParameter` has no price
139
- * field. Price-sorted listings go through `getProductsInCollection` or
140
- * `searchProducts`.
141
- *
142
- * The deprecated `{ collectionSlug }` option reroutes to the search
143
- * backend with its flatter row shape — call `getProductsInCollection`
144
- * instead, which returns that shape honestly typed. That branch returns
145
- * before the document switch, so `detail` has no effect on it.
146
- *
147
- * Pass `{ detail: 'card' }` for listing pages: it swaps in a grid-tile
148
- * selection that drops the per-VARIANT stock reads a tile never shows
149
- * (`availabilityByLocation`, `stockOnHand`/`stockAllocated`, and the
150
- * incoming-stock trio) plus the product `description`, including the
151
- * per-language copy inside `translations`. Those variant fields are
152
- * per-variant field resolvers server-side, so this cuts backend work and SQL
153
- * statements, not only bytes.
154
- *
155
- * The collection tree, the translated slugs and `priceTiers` are KEPT, so a
156
- * card row still drives canonical/hreflang URLs and quantity-break pricing —
157
- * see `ProductListOptions.detail` for the full kept/dropped list and why.
158
- * The default is unchanged, so existing callers keep the full shape.
159
- */
160
- async getProducts(listOptions, options) {
161
- // Deprecated reroute, kept for back-compat: the `products` query has no
162
- // collection filter, so collection listings go through `search`.
163
- if (listOptions?.collectionSlug) {
164
- const data = await http.graphql(SEARCH_PRODUCTS, {
165
- input: {
166
- term: '',
167
- collectionSlug: listOptions.collectionSlug,
168
- take: listOptions.take ?? 20,
169
- skip: listOptions.skip ?? 0,
170
- ...(listOptions.sort ? { sort: listOptions.sort } : {}),
171
- },
172
- }, tagRequest(options, 'getProducts'));
173
- return {
174
- items: data.search.items.map(searchItemToProductSummary),
175
- totalItems: data.search.totalItems,
176
- };
177
- }
178
- // `detail` picks the DOCUMENT, not server-side list options — Vendure's
179
- // `ProductListOptions` input has no such field and would reject it.
180
- const queryOptions = {
181
- take: listOptions?.take ?? 20,
182
- skip: listOptions?.skip ?? 0,
143
+ async function getProducts(listOptions, options) {
144
+ // Deprecated reroute, kept for back-compat: the `products` query has no
145
+ // collection filter, so collection listings go through `search`.
146
+ if (listOptions?.collectionSlug) {
147
+ const data = await http.graphql(SEARCH_PRODUCTS, {
148
+ input: {
149
+ term: '',
150
+ collectionSlug: listOptions.collectionSlug,
151
+ take: listOptions.take ?? 20,
152
+ skip: listOptions.skip ?? 0,
153
+ ...(listOptions.sort ? { sort: listOptions.sort } : {}),
154
+ },
155
+ }, tagCatalogRead(options, 'getProducts'));
156
+ return {
157
+ items: data.search.items.map(searchItemToLegacyListRow),
158
+ totalItems: data.search.totalItems,
183
159
  };
184
- if (listOptions?.sort) {
185
- // Guard for JS callers the type-level removal can't reach: sending
186
- // sort.price to the `products` query is a guaranteed server error
187
- // ("price" is not defined by type ProductSortParameter) — fail with
188
- // guidance instead. A present-but-nullish price key (callers composing
189
- // the sort from optional params, `{ name: q.name, price: q.price }`)
190
- // is not a price sort: it is stripped, never sent, and never throws.
191
- const { price, ...listSort } = listOptions.sort;
192
- if (price != null) {
193
- throw new StorefrontError('getProducts cannot sort by price — Vendure\'s "products" query has no price sort ' +
194
- '(price lives on variants). Use getProductsInCollection(slug, { sort: { price } }) ' +
195
- 'or searchProducts({ sort: { price } }) instead.', 'vendure', undefined, 'UNSUPPORTED_SORT');
196
- }
197
- if (Object.keys(listSort).length > 0)
198
- queryOptions.sort = listSort;
199
- }
200
- // Default to enabled-only so a plain getProducts() never leaks disabled
201
- // products. An explicit `filter` REPLACES the default; `enabled` is a
202
- // deprecated shorthand ignored when `filter` is set (and overridden
203
- // server-side — the Shop API always forces enabled-only).
204
- if (listOptions?.filter) {
205
- queryOptions.filter = listOptions.filter;
206
- }
207
- else {
208
- queryOptions.filter = { enabled: { eq: listOptions?.enabled ?? true } };
160
+ }
161
+ // `detail` picks the DOCUMENT, not server-side list options — Vendure's
162
+ // `ProductListOptions` input has no such field and would reject it.
163
+ const queryOptions = {
164
+ take: listOptions?.take ?? 20,
165
+ skip: listOptions?.skip ?? 0,
166
+ };
167
+ if (listOptions?.sort) {
168
+ // Guard for JS callers the type-level removal can't reach: sending
169
+ // sort.price to the `products` query is a guaranteed server error
170
+ // ("price" is not defined by type ProductSortParameter) — fail with
171
+ // guidance instead. A present-but-nullish price key (callers composing
172
+ // the sort from optional params, `{ name: q.name, price: q.price }`)
173
+ // is not a price sort: it is stripped, never sent, and never throws.
174
+ const { price, ...listSort } = listOptions.sort;
175
+ if (price != null) {
176
+ throw new StorefrontError('getProducts cannot sort by price — Vendure\'s "products" query has no price sort ' +
177
+ '(price lives on variants). Use getProductsInCollection(slug, { sort: { price } }) ' +
178
+ 'or searchProducts({ sort: { price } }) instead.', 'vendure', undefined, 'UNSUPPORTED_SORT');
209
179
  }
210
- const document = listOptions?.detail === 'card' ? LIST_PRODUCT_CARDS : LIST_PRODUCTS;
211
- const data = await http.graphql(document, { options: queryOptions }, tagRequest(options, 'getProducts'));
180
+ if (Object.keys(listSort).length > 0)
181
+ queryOptions.sort = listSort;
182
+ }
183
+ // Default to enabled-only so a plain getProducts() never leaks disabled
184
+ // products. An explicit `filter` REPLACES the default; `enabled` is a
185
+ // deprecated shorthand ignored when `filter` is set (and overridden
186
+ // server-side — the Shop API always forces enabled-only).
187
+ if (listOptions?.filter) {
188
+ queryOptions.filter = listOptions.filter;
189
+ }
190
+ else {
191
+ queryOptions.filter = { enabled: { eq: listOptions?.enabled ?? true } };
192
+ }
193
+ if (listOptions?.detail === 'card') {
194
+ const data = await http.graphql(LIST_PRODUCT_CARDS, { options: queryOptions }, tagCatalogRead(options, 'getProducts'));
212
195
  return data.products;
213
- },
196
+ }
197
+ const data = await http.graphql(LIST_PRODUCTS, { options: queryOptions }, tagCatalogRead(options, 'getProducts'));
198
+ return data.products;
199
+ }
200
+ async function getProduct(slug, options) {
201
+ const namespace = metafieldsNamespace('getProduct', options?.metafields);
202
+ const request = tagCatalogRead(options, 'getProduct');
203
+ if (namespace !== undefined) {
204
+ const data = await http.graphql(GET_PRODUCT_WITH_METAFIELDS, { slug, namespace }, request);
205
+ if (!data.product)
206
+ throw productNotFound(slug);
207
+ return hydrateProductMetadata(data.product);
208
+ }
209
+ const data = await http.graphql(GET_PRODUCT, { slug }, request);
210
+ if (!data.product)
211
+ throw productNotFound(slug);
212
+ return hydrateProductMetadata(data.product);
213
+ }
214
+ async function getProductById(id, options) {
215
+ const namespace = metafieldsNamespace('getProductById', options?.metafields);
216
+ const request = tagCatalogRead(options, 'getProductById', [productCacheTag(id)]);
217
+ if (namespace !== undefined) {
218
+ const data = await http.graphql(GET_PRODUCT_BY_ID_WITH_METAFIELDS, { id, namespace }, request);
219
+ if (!data.product)
220
+ throw productNotFound(id);
221
+ return hydrateProductMetadata(data.product);
222
+ }
223
+ const data = await http.graphql(GET_PRODUCT_BY_ID, { id }, request);
224
+ if (!data.product)
225
+ throw productNotFound(id);
226
+ return hydrateProductMetadata(data.product);
227
+ }
228
+ async function getCollection(slug, options) {
229
+ const namespace = metafieldsNamespace('getCollection', options?.metafields);
230
+ const request = tagCatalogRead(options, 'getCollection');
231
+ if (namespace !== undefined) {
232
+ const data = await http.graphql(GET_COLLECTION_WITH_METAFIELDS, { slug, namespace }, request);
233
+ if (!data.collection)
234
+ throw collectionNotFound(slug);
235
+ return data.collection;
236
+ }
237
+ const data = await http.graphql(GET_COLLECTION, { slug }, request);
238
+ if (!data.collection)
239
+ throw collectionNotFound(slug);
240
+ return data.collection;
241
+ }
242
+ async function getCollectionById(id, options) {
243
+ const namespace = metafieldsNamespace('getCollectionById', options?.metafields);
244
+ const request = tagCatalogRead(options, 'getCollectionById', [collectionCacheTag(id)]);
245
+ if (namespace !== undefined) {
246
+ const data = await http.graphql(GET_COLLECTION_BY_ID_WITH_METAFIELDS, { id, namespace }, request);
247
+ if (!data.collection)
248
+ throw collectionNotFound(id);
249
+ return data.collection;
250
+ }
251
+ const data = await http.graphql(GET_COLLECTION_BY_ID, { id }, request);
252
+ if (!data.collection)
253
+ throw collectionNotFound(id);
254
+ return data.collection;
255
+ }
256
+ return {
257
+ getProduct,
258
+ getProductById,
259
+ getProducts,
214
260
  /**
215
261
  * List the products of one collection, via the search backend — the only
216
262
  * Shop API path that filters by collection. Returns the honest search-row
@@ -229,7 +275,7 @@ export function createProductMethods(http) {
229
275
  skip: listOptions?.skip ?? 0,
230
276
  ...(listOptions?.sort ? { sort: listOptions.sort } : {}),
231
277
  },
232
- }, tagRequest(options, 'getProductsInCollection'));
278
+ }, tagCatalogRead(options, 'getProductsInCollection'));
233
279
  return {
234
280
  items: data.search.items.map(searchItemToCollectionProduct),
235
281
  totalItems: data.search.totalItems,
@@ -245,42 +291,30 @@ export function createProductMethods(http) {
245
291
  skip: listOptions?.skip ?? 0,
246
292
  ...(listOptions?.sort ? { sort: listOptions.sort } : {}),
247
293
  },
248
- }, tagRequest(options, 'getProductsInCollectionById', [collectionCacheTag(collectionId)]));
294
+ }, tagCatalogRead(options, 'getProductsInCollectionById', [collectionCacheTag(collectionId)]));
249
295
  return {
250
296
  items: data.search.items.map(searchItemToCollectionProduct),
251
297
  totalItems: data.search.totalItems,
252
298
  };
253
299
  },
254
300
  async getFacets(options) {
255
- const data = await http.graphql(LIST_FACETS, undefined, options);
301
+ const data = await http.graphql(LIST_FACETS, undefined, tagCatalogRead(options, 'getFacets'));
256
302
  return data.facets.items;
257
303
  },
258
304
  async getCollections(listOptions, options) {
259
305
  const data = await http.graphql(LIST_COLLECTIONS, {
260
306
  options: { take: listOptions?.take ?? 100, skip: listOptions?.skip ?? 0 },
261
- }, tagRequest(options, 'getCollections'));
307
+ }, tagCatalogRead(options, 'getCollections'));
262
308
  return data.collections.items;
263
309
  },
264
- async getCollection(slug, options) {
265
- const data = await http.graphql(GET_COLLECTION, { slug }, tagRequest(options, 'getCollection'));
266
- if (!data.collection) {
267
- throw new StorefrontError(`Collection not found: ${slug}`, 'vendure', 404, 'NOT_FOUND');
268
- }
269
- return data.collection;
270
- },
271
- async getCollectionById(id, options) {
272
- const data = await http.graphql(GET_COLLECTION_BY_ID, { id }, tagRequest(options, 'getCollectionById', [collectionCacheTag(id)]));
273
- if (!data.collection) {
274
- throw new StorefrontError(`Collection not found: ${id}`, 'vendure', 404, 'NOT_FOUND');
275
- }
276
- return data.collection;
277
- },
310
+ getCollection,
311
+ getCollectionById,
278
312
  async getPropertyGroups(options) {
279
- const data = await http.graphql(PROPERTY_GROUPS, undefined, options);
313
+ const data = await http.graphql(PROPERTY_GROUPS, undefined, tagCatalogRead(options, 'getPropertyGroups'));
280
314
  return data.productPropertyGroups;
281
315
  },
282
316
  async getProductProperties(productId, options) {
283
- const data = await http.graphql(PRODUCT_PROPERTIES, { productId }, tagRequest(options, 'getProductProperties', [productCacheTag(productId)]));
317
+ const data = await http.graphql(PRODUCT_PROPERTIES, { productId }, tagCatalogRead(options, 'getProductProperties', [productCacheTag(productId)]));
284
318
  return data.productPropertyValues;
285
319
  },
286
320
  mapProductProperties,
@@ -1 +1 @@
1
- {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/commerce/products.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/commerce/products.ts"],"names":[],"mappings":"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"}