@sixtyninecommerce/client 0.24.0 → 0.25.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 (293) hide show
  1. package/README.md +21 -0
  2. package/dist/admin/forms.js +19 -0
  3. package/dist/admin/forms.js.map +1 -1
  4. package/dist/admin/http.d.ts +9 -0
  5. package/dist/admin/http.d.ts.map +1 -1
  6. package/dist/admin/http.js +3 -0
  7. package/dist/admin/http.js.map +1 -1
  8. package/dist/admin/index.d.ts +63 -0
  9. package/dist/admin/index.d.ts.map +1 -1
  10. package/dist/admin/index.js +67 -0
  11. package/dist/admin/index.js.map +1 -1
  12. package/dist/admin/redirects.d.ts +6 -0
  13. package/dist/admin/redirects.d.ts.map +1 -1
  14. package/dist/admin/redirects.js +12 -0
  15. package/dist/admin/redirects.js.map +1 -1
  16. package/dist/admin/types.d.ts +63 -0
  17. package/dist/admin/types.d.ts.map +1 -1
  18. package/dist/cache-tags.d.ts +19 -0
  19. package/dist/cache-tags.d.ts.map +1 -1
  20. package/dist/cache-tags.js +19 -0
  21. package/dist/cache-tags.js.map +1 -1
  22. package/dist/client.d.ts +17 -0
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +17 -0
  25. package/dist/client.js.map +1 -1
  26. package/dist/commerce/age-verification.js +3 -3
  27. package/dist/commerce/age-verification.js.map +1 -1
  28. package/dist/commerce/branding.js +7 -0
  29. package/dist/commerce/branding.js.map +1 -1
  30. package/dist/commerce/cart.js +25 -0
  31. package/dist/commerce/cart.js.map +1 -1
  32. package/dist/commerce/checkout.d.ts +68 -0
  33. package/dist/commerce/checkout.d.ts.map +1 -1
  34. package/dist/commerce/checkout.js +83 -0
  35. package/dist/commerce/checkout.js.map +1 -1
  36. package/dist/commerce/customer.d.ts +58 -0
  37. package/dist/commerce/customer.d.ts.map +1 -1
  38. package/dist/commerce/customer.js +65 -0
  39. package/dist/commerce/customer.js.map +1 -1
  40. package/dist/commerce/pickup-location-parser.d.ts +18 -0
  41. package/dist/commerce/pickup-location-parser.d.ts.map +1 -1
  42. package/dist/commerce/pickup-location-parser.js +28 -0
  43. package/dist/commerce/pickup-location-parser.js.map +1 -1
  44. package/dist/commerce/placement-error.d.ts +52 -0
  45. package/dist/commerce/placement-error.d.ts.map +1 -1
  46. package/dist/commerce/placement-error.js +87 -0
  47. package/dist/commerce/placement-error.js.map +1 -1
  48. package/dist/commerce/products.d.ts +48 -0
  49. package/dist/commerce/products.d.ts.map +1 -1
  50. package/dist/commerce/products.js +92 -0
  51. package/dist/commerce/products.js.map +1 -1
  52. package/dist/commerce/queries.d.ts +113 -27
  53. package/dist/commerce/queries.d.ts.map +1 -1
  54. package/dist/commerce/queries.js +188 -2
  55. package/dist/commerce/queries.js.map +1 -1
  56. package/dist/commerce/quotes.js +33 -0
  57. package/dist/commerce/quotes.js.map +1 -1
  58. package/dist/commerce/saved-lists.d.ts +7 -7
  59. package/dist/commerce/saved-lists.d.ts.map +1 -1
  60. package/dist/commerce/saved-lists.js +1 -1
  61. package/dist/commerce/search.js +3 -0
  62. package/dist/commerce/search.js.map +1 -1
  63. package/dist/commerce/shipping.js +3 -3
  64. package/dist/commerce/shipping.js.map +1 -1
  65. package/dist/commerce/stock-notifications.d.ts +11 -0
  66. package/dist/commerce/stock-notifications.d.ts.map +1 -1
  67. package/dist/commerce/stock-notifications.js +11 -0
  68. package/dist/commerce/stock-notifications.js.map +1 -1
  69. package/dist/commerce/vat-validation.js +4 -4
  70. package/dist/commerce/vat-validation.js.map +1 -1
  71. package/dist/constants.d.ts +31 -0
  72. package/dist/constants.d.ts.map +1 -1
  73. package/dist/constants.js +32 -0
  74. package/dist/constants.js.map +1 -1
  75. package/dist/content/asset-urls.d.ts +50 -0
  76. package/dist/content/asset-urls.d.ts.map +1 -1
  77. package/dist/content/asset-urls.js +92 -0
  78. package/dist/content/asset-urls.js.map +1 -1
  79. package/dist/content/assets.d.ts +15 -0
  80. package/dist/content/assets.d.ts.map +1 -1
  81. package/dist/content/assets.js +15 -0
  82. package/dist/content/assets.js.map +1 -1
  83. package/dist/content/collection-pages.d.ts +5 -0
  84. package/dist/content/collection-pages.d.ts.map +1 -1
  85. package/dist/content/collection-pages.js +8 -0
  86. package/dist/content/collection-pages.js.map +1 -1
  87. package/dist/content/collections.d.ts +14 -0
  88. package/dist/content/collections.d.ts.map +1 -1
  89. package/dist/content/collections.js +16 -0
  90. package/dist/content/collections.js.map +1 -1
  91. package/dist/content/filtered-products.d.ts +18 -0
  92. package/dist/content/filtered-products.d.ts.map +1 -1
  93. package/dist/content/filtered-products.js +16 -0
  94. package/dist/content/filtered-products.js.map +1 -1
  95. package/dist/content/form-field-types.d.ts +6 -0
  96. package/dist/content/form-field-types.d.ts.map +1 -1
  97. package/dist/content/form-field-types.js +12 -0
  98. package/dist/content/form-field-types.js.map +1 -1
  99. package/dist/content/forms.d.ts +16 -0
  100. package/dist/content/forms.d.ts.map +1 -1
  101. package/dist/content/forms.js +23 -0
  102. package/dist/content/forms.js.map +1 -1
  103. package/dist/content/items.d.ts +26 -0
  104. package/dist/content/items.d.ts.map +1 -1
  105. package/dist/content/items.js +33 -0
  106. package/dist/content/items.js.map +1 -1
  107. package/dist/content/resolve.js +6 -0
  108. package/dist/content/resolve.js.map +1 -1
  109. package/dist/content/sitemap.d.ts +5 -0
  110. package/dist/content/sitemap.d.ts.map +1 -1
  111. package/dist/content/sitemap.js +5 -0
  112. package/dist/content/sitemap.js.map +1 -1
  113. package/dist/core/context.js +6 -0
  114. package/dist/core/context.js.map +1 -1
  115. package/dist/core/headers.js +2 -0
  116. package/dist/core/headers.js.map +1 -1
  117. package/dist/core/http.d.ts +8 -0
  118. package/dist/core/http.d.ts.map +1 -1
  119. package/dist/core/http.js +89 -1
  120. package/dist/core/http.js.map +1 -1
  121. package/dist/credit/credit-status.js +2 -2
  122. package/dist/credit/credit-status.js.map +1 -1
  123. package/dist/credit/payment-terms.js +2 -2
  124. package/dist/credit/payment-terms.js.map +1 -1
  125. package/dist/currency/exchange.d.ts +11 -0
  126. package/dist/currency/exchange.d.ts.map +1 -1
  127. package/dist/currency/exchange.js +11 -0
  128. package/dist/currency/exchange.js.map +1 -1
  129. package/dist/errors.d.ts +50 -2
  130. package/dist/errors.d.ts.map +1 -1
  131. package/dist/errors.js +48 -2
  132. package/dist/errors.js.map +1 -1
  133. package/dist/events/envelope.d.ts +36 -0
  134. package/dist/events/envelope.d.ts.map +1 -1
  135. package/dist/events/envelope.js +12 -0
  136. package/dist/events/envelope.js.map +1 -1
  137. package/dist/events/index.d.ts +13 -0
  138. package/dist/events/index.d.ts.map +1 -1
  139. package/dist/events/index.js +13 -0
  140. package/dist/events/index.js.map +1 -1
  141. package/dist/events/payloads.d.ts +19 -0
  142. package/dist/events/payloads.d.ts.map +1 -1
  143. package/dist/events/payloads.js +12 -0
  144. package/dist/events/payloads.js.map +1 -1
  145. package/dist/index.d.ts +7 -0
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +7 -0
  148. package/dist/index.js.map +1 -1
  149. package/dist/media/index.js +2 -0
  150. package/dist/media/index.js.map +1 -1
  151. package/dist/media/urls.d.ts +52 -0
  152. package/dist/media/urls.d.ts.map +1 -1
  153. package/dist/media/urls.js +38 -0
  154. package/dist/media/urls.js.map +1 -1
  155. package/dist/media/video.d.ts +16 -0
  156. package/dist/media/video.d.ts.map +1 -1
  157. package/dist/media/video.js +16 -0
  158. package/dist/media/video.js.map +1 -1
  159. package/dist/next/artifact-handler.d.ts +22 -0
  160. package/dist/next/artifact-handler.d.ts.map +1 -1
  161. package/dist/next/artifact-handler.js +22 -0
  162. package/dist/next/artifact-handler.js.map +1 -1
  163. package/dist/next/event-revalidate-handler.d.ts +67 -0
  164. package/dist/next/event-revalidate-handler.d.ts.map +1 -1
  165. package/dist/next/event-revalidate-handler.js +48 -0
  166. package/dist/next/event-revalidate-handler.js.map +1 -1
  167. package/dist/next/index.d.ts +6 -0
  168. package/dist/next/index.d.ts.map +1 -1
  169. package/dist/next/index.js +6 -0
  170. package/dist/next/index.js.map +1 -1
  171. package/dist/next/json-ld.d.ts +9 -0
  172. package/dist/next/json-ld.d.ts.map +1 -1
  173. package/dist/next/json-ld.js +9 -0
  174. package/dist/next/json-ld.js.map +1 -1
  175. package/dist/next/metadata.d.ts +18 -0
  176. package/dist/next/metadata.d.ts.map +1 -1
  177. package/dist/next/metadata.js +21 -0
  178. package/dist/next/metadata.js.map +1 -1
  179. package/dist/next/redirect-middleware.d.ts +39 -0
  180. package/dist/next/redirect-middleware.d.ts.map +1 -1
  181. package/dist/next/redirect-middleware.js +32 -0
  182. package/dist/next/redirect-middleware.js.map +1 -1
  183. package/dist/next/revalidate-handler.d.ts +30 -0
  184. package/dist/next/revalidate-handler.d.ts.map +1 -1
  185. package/dist/next/revalidate-handler.js +22 -0
  186. package/dist/next/revalidate-handler.js.map +1 -1
  187. package/dist/order-scope.d.ts +27 -0
  188. package/dist/order-scope.d.ts.map +1 -1
  189. package/dist/order-scope.js +29 -0
  190. package/dist/order-scope.js.map +1 -1
  191. package/dist/pricing/format.d.ts +17 -0
  192. package/dist/pricing/format.d.ts.map +1 -1
  193. package/dist/pricing/format.js +19 -0
  194. package/dist/pricing/format.js.map +1 -1
  195. package/dist/pricing/index.d.ts +8 -1
  196. package/dist/pricing/index.d.ts.map +1 -1
  197. package/dist/pricing/index.js +18 -2
  198. package/dist/pricing/index.js.map +1 -1
  199. package/dist/pricing/tax-display.d.ts +77 -0
  200. package/dist/pricing/tax-display.d.ts.map +1 -1
  201. package/dist/pricing/tax-display.js +85 -0
  202. package/dist/pricing/tax-display.js.map +1 -1
  203. package/dist/pricing/tiers.d.ts +9 -0
  204. package/dist/pricing/tiers.d.ts.map +1 -1
  205. package/dist/pricing/tiers.js +9 -0
  206. package/dist/pricing/tiers.js.map +1 -1
  207. package/dist/pricing/validation.d.ts +56 -1
  208. package/dist/pricing/validation.d.ts.map +1 -1
  209. package/dist/pricing/validation.js +61 -0
  210. package/dist/pricing/validation.js.map +1 -1
  211. package/dist/redirects/index.d.ts +1 -0
  212. package/dist/redirects/index.d.ts.map +1 -1
  213. package/dist/redirects/index.js +1 -0
  214. package/dist/redirects/index.js.map +1 -1
  215. package/dist/redirects/store.d.ts +20 -0
  216. package/dist/redirects/store.d.ts.map +1 -1
  217. package/dist/redirects/store.js +57 -0
  218. package/dist/redirects/store.js.map +1 -1
  219. package/dist/redirects/types.d.ts +24 -0
  220. package/dist/redirects/types.d.ts.map +1 -1
  221. package/dist/redirects/types.js +1 -0
  222. package/dist/redirects/types.js.map +1 -1
  223. package/dist/revalidation/event-plan.d.ts +48 -0
  224. package/dist/revalidation/event-plan.d.ts.map +1 -1
  225. package/dist/revalidation/event-plan.js +61 -0
  226. package/dist/revalidation/event-plan.js.map +1 -1
  227. package/dist/revalidation/event-verify.d.ts +25 -0
  228. package/dist/revalidation/event-verify.d.ts.map +1 -1
  229. package/dist/revalidation/event-verify.js +27 -0
  230. package/dist/revalidation/event-verify.js.map +1 -1
  231. package/dist/revalidation/types.d.ts +20 -0
  232. package/dist/revalidation/types.d.ts.map +1 -1
  233. package/dist/revalidation/types.js +10 -0
  234. package/dist/revalidation/types.js.map +1 -1
  235. package/dist/revalidation/url-context.d.ts +25 -0
  236. package/dist/revalidation/url-context.d.ts.map +1 -1
  237. package/dist/revalidation/url-context.js +17 -0
  238. package/dist/revalidation/url-context.js.map +1 -1
  239. package/dist/revalidation/verify.d.ts +8 -0
  240. package/dist/revalidation/verify.d.ts.map +1 -1
  241. package/dist/revalidation/verify.js +8 -0
  242. package/dist/revalidation/verify.js.map +1 -1
  243. package/dist/seo/ai.d.ts +17 -0
  244. package/dist/seo/ai.d.ts.map +1 -1
  245. package/dist/seo/ai.js +12 -0
  246. package/dist/seo/ai.js.map +1 -1
  247. package/dist/seo/alternates.js +13 -0
  248. package/dist/seo/alternates.js.map +1 -1
  249. package/dist/seo/artifacts.d.ts +13 -0
  250. package/dist/seo/artifacts.d.ts.map +1 -1
  251. package/dist/seo/artifacts.js +19 -0
  252. package/dist/seo/artifacts.js.map +1 -1
  253. package/dist/seo/canonical.d.ts +15 -0
  254. package/dist/seo/canonical.d.ts.map +1 -1
  255. package/dist/seo/canonical.js +24 -0
  256. package/dist/seo/canonical.js.map +1 -1
  257. package/dist/seo/index.js +6 -0
  258. package/dist/seo/index.js.map +1 -1
  259. package/dist/seo/json-ld.d.ts +13 -0
  260. package/dist/seo/json-ld.d.ts.map +1 -1
  261. package/dist/seo/json-ld.js +32 -0
  262. package/dist/seo/json-ld.js.map +1 -1
  263. package/dist/seo/locale-tag.d.ts +31 -0
  264. package/dist/seo/locale-tag.d.ts.map +1 -1
  265. package/dist/seo/locale-tag.js +31 -0
  266. package/dist/seo/locale-tag.js.map +1 -1
  267. package/dist/seo/meta-tags.d.ts +29 -0
  268. package/dist/seo/meta-tags.d.ts.map +1 -1
  269. package/dist/seo/meta-tags.js +28 -0
  270. package/dist/seo/meta-tags.js.map +1 -1
  271. package/dist/seo/metadata-parser.d.ts +24 -0
  272. package/dist/seo/metadata-parser.d.ts.map +1 -1
  273. package/dist/seo/metadata-parser.js +38 -0
  274. package/dist/seo/metadata-parser.js.map +1 -1
  275. package/dist/seo/metadata-types.d.ts +16 -0
  276. package/dist/seo/metadata-types.d.ts.map +1 -1
  277. package/dist/seo/product-path.d.ts +96 -0
  278. package/dist/seo/product-path.d.ts.map +1 -1
  279. package/dist/seo/product-path.js +96 -0
  280. package/dist/seo/product-path.js.map +1 -1
  281. package/dist/seo/robots.d.ts +17 -0
  282. package/dist/seo/robots.d.ts.map +1 -1
  283. package/dist/seo/robots.js +12 -0
  284. package/dist/seo/robots.js.map +1 -1
  285. package/dist/seo/types.d.ts +39 -0
  286. package/dist/seo/types.d.ts.map +1 -1
  287. package/dist/seo/url-builder.d.ts +31 -0
  288. package/dist/seo/url-builder.d.ts.map +1 -1
  289. package/dist/seo/url-builder.js +36 -0
  290. package/dist/seo/url-builder.js.map +1 -1
  291. package/dist/types.d.ts +1163 -0
  292. package/dist/types.d.ts.map +1 -1
  293. package/package.json +1 -1
package/dist/core/http.js CHANGED
@@ -1,6 +1,11 @@
1
1
  import { ORDER_SCOPE_HEADER, REQUEST_TIMEOUT_MS, SHOP_API_PATH } from '../constants.js';
2
2
  import { StorefrontError } from '../errors.js';
3
3
  import { buildCmsHeaders, buildPluginsHeaders, buildVendureHeaders } from './headers.js';
4
+ /**
5
+ * Build a StorefrontError from a non-2xx CMS response, parsing the JSON body
6
+ * for the structured fields the CMS returns: `message` (string or string[]),
7
+ * `details` (field-level validation errors), and `retry_after_seconds` (429).
8
+ */
4
9
  async function cmsError(response) {
5
10
  let body = {};
6
11
  try {
@@ -10,6 +15,7 @@ async function cmsError(response) {
10
15
  }
11
16
  }
12
17
  catch {
18
+ // Non-JSON error body — fall back to the status line.
13
19
  }
14
20
  const rawMessage = body.message;
15
21
  const message = Array.isArray(rawMessage)
@@ -21,9 +27,14 @@ async function cmsError(response) {
21
27
  const retryAfterSeconds = typeof body.retry_after_seconds === 'number' ? body.retry_after_seconds : undefined;
22
28
  return new StorefrontError(message, 'cms', response.status, undefined, details, retryAfterSeconds);
23
29
  }
30
+ /** Mark a request as a taggable catalogue read, keeping the caller's own options. */
24
31
  export function tagRequest(options, operation, tags = []) {
25
32
  return { ...options, cacheTagging: { operation, tags } };
26
33
  }
34
+ /**
35
+ * The tags to send as `next: { tags }`, or `null` for none. Resolved per
36
+ * request so a resolver sees exactly what it is deciding for.
37
+ */
27
38
  function fetchCacheTags(ctx, options) {
28
39
  const setting = ctx.cacheTags ?? true;
29
40
  if (setting === false)
@@ -46,21 +57,48 @@ const RETRYABLE_STATUS_CODES = new Set([502, 503, 504]);
46
57
  function isMutation(query) {
47
58
  return /^\s*mutation\b/i.test(query);
48
59
  }
60
+ /**
61
+ * HTTP status to attach to a StorefrontError built from a Vendure GraphQL
62
+ * error code (Vendure returns these over HTTP 200 as ErrorResult/extensions).
63
+ * Only the auth codes have a meaningful mapping; other codes leave statusCode
64
+ * undefined but still carry `errorCode` for the caller to discriminate.
65
+ */
49
66
  const GRAPHQL_ERROR_STATUS = {
50
67
  UNAUTHORIZED: 401,
51
68
  FORBIDDEN: 403,
52
69
  };
70
+ /**
71
+ * UNAUTHORIZED is Vendure's unambiguous "session token expired/invalid" signal,
72
+ * so it always means the stored session is dead. FORBIDDEN is ambiguous (see
73
+ * {@link isForbiddenError}) and is disambiguated by a session-validity probe
74
+ * rather than treated as expiry on its own.
75
+ */
53
76
  function isSessionExpiredError(json) {
54
77
  if (!json.errors?.length)
55
78
  return false;
56
79
  return json.errors.some((e) => e.extensions?.code === 'UNAUTHORIZED');
57
80
  }
81
+ /**
82
+ * Vendure's Shop API `AuthGuard` throws `ForbiddenError` (code `FORBIDDEN`) for
83
+ * BOTH a genuinely expired/invalid session AND a real permission denial on a
84
+ * resource the still-authenticated customer doesn't own (`UnauthorizedError`/
85
+ * `UNAUTHORIZED` is defined but never instantiated in the Shop API). The code
86
+ * alone can't tell the two apart, so a FORBIDDEN is disambiguated by probing
87
+ * session validity — fire `onAuthExpired` only when the session is dead.
88
+ */
58
89
  function isForbiddenError(json) {
59
90
  if (!json.errors?.length)
60
91
  return false;
61
92
  return json.errors.some((e) => e.extensions?.code === 'FORBIDDEN');
62
93
  }
94
+ /**
95
+ * Session-validity probe. `activeCustomer` is nullable and NOT permission-
96
+ * guarded: it returns the logged-in customer, or `null` when there is no active
97
+ * session — so it distinguishes a dead session from a mere authorization denial
98
+ * (Vendure reports both as FORBIDDEN).
99
+ */
63
100
  const ACTIVE_CUSTOMER_PROBE_QUERY = 'query { activeCustomer { id } }';
101
+ /** First Vendure error code present in the response, for StorefrontError. */
64
102
  function firstErrorCode(json) {
65
103
  for (const e of json.errors ?? []) {
66
104
  const code = e.extensions?.code;
@@ -69,6 +107,10 @@ function firstErrorCode(json) {
69
107
  }
70
108
  return undefined;
71
109
  }
110
+ /**
111
+ * Combine an external AbortSignal with an internal timeout. Either source
112
+ * cancels the request. Returns the controller plus a cleanup function.
113
+ */
72
114
  function createLinkedController(externalSignal, timeoutMs) {
73
115
  const controller = new AbortController();
74
116
  const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
@@ -92,6 +134,11 @@ function createLinkedController(externalSignal, timeoutMs) {
92
134
  },
93
135
  };
94
136
  }
137
+ /**
138
+ * Run a request function with retry on transient failures. Only retries on
139
+ * network errors and 502/503/504. Never retries on 4xx, never retries
140
+ * mutations, never retries when the external signal is aborted.
141
+ */
95
142
  async function withRetry(ctx, externalSignal, shouldRetry, fn) {
96
143
  const maxAttempts = shouldRetry ? Math.max(1, ctx.retry.attempts) : 1;
97
144
  let lastError;
@@ -118,11 +165,30 @@ function isRetryable(error) {
118
165
  return error.statusCode !== undefined && RETRYABLE_STATUS_CODES.has(error.statusCode);
119
166
  }
120
167
  if (error instanceof Error && error.name === 'AbortError') {
168
+ // Internal timeout — retry. External aborts are caught upstream.
121
169
  return true;
122
170
  }
171
+ // Network errors (TypeError on fetch failure) — retry.
123
172
  return error instanceof TypeError;
124
173
  }
125
174
  export function createHttpClient(ctx) {
175
+ /**
176
+ * Decide whether the stored session is genuinely dead and fire `onAuthExpired`
177
+ * if so, given a Vendure error response received while an auth token was
178
+ * attached.
179
+ *
180
+ * - UNAUTHORIZED ⇒ unambiguous dead session ⇒ fire.
181
+ * - FORBIDDEN ⇒ ambiguous (dead session OR a real permission denial on a
182
+ * resource the still-authenticated customer doesn't own). Probe
183
+ * `activeCustomer` to disambiguate: `null` ⇒ dead ⇒ fire; a customer ⇒
184
+ * valid session ⇒ do NOT fire (the caller surfaces the 403 instead); a
185
+ * probe that itself fails ⇒ indeterminate ⇒ do NOT fire (being conservative
186
+ * avoids re-introducing the spurious sign-out this logic exists to prevent).
187
+ *
188
+ * `isProbe` short-circuits the whole thing so the probe request can never
189
+ * issue a nested probe — the recursion guard. The probe is therefore issued
190
+ * at most once per originating FORBIDDEN failure.
191
+ */
126
192
  async function maybeSignalAuthExpired(json, isProbe) {
127
193
  if (isProbe || !ctx.authToken)
128
194
  return;
@@ -137,12 +203,19 @@ export function createHttpClient(ctx) {
137
203
  ctx.onAuthExpired?.();
138
204
  }
139
205
  }
206
+ /**
207
+ * Probe the Shop API for a live session, reusing the same auth headers.
208
+ * Returns `true` when a customer is returned (valid session), `false` when
209
+ * `activeCustomer` is `null` (no session), or `null` when the probe itself
210
+ * failed (network/HTTP error — indeterminate, handled conservatively).
211
+ */
140
212
  async function probeSessionAlive() {
141
213
  try {
142
214
  const data = await graphqlRequest(ACTIVE_CUSTOMER_PROBE_QUERY, undefined, undefined, true);
143
215
  return data.activeCustomer != null;
144
216
  }
145
217
  catch {
218
+ // Indeterminate probe — do NOT auto-fire onAuthExpired.
146
219
  return null;
147
220
  }
148
221
  }
@@ -153,6 +226,8 @@ export function createHttpClient(ctx) {
153
226
  const { controller, cleanup } = createLinkedController(options?.signal, REQUEST_TIMEOUT_MS);
154
227
  try {
155
228
  const tags = fetchCacheTags(ctx, options);
229
+ // Next.js reads `next.tags` off the fetch init for `revalidateTag`; other
230
+ // fetch implementations ignore unknown init keys. No cache policy is set.
156
231
  const init = {
157
232
  method: 'POST',
158
233
  headers,
@@ -164,6 +239,7 @@ export function createHttpClient(ctx) {
164
239
  if (!response.ok) {
165
240
  throw new StorefrontError(`Vendure Shop API returned ${String(response.status)}: ${response.statusText}`, 'vendure', response.status);
166
241
  }
242
+ // Auto-capture auth token from response headers
167
243
  const authToken = response.headers.get('vendure-auth-token');
168
244
  if (authToken) {
169
245
  ctx.authToken = authToken;
@@ -205,6 +281,7 @@ export function createHttpClient(ctx) {
205
281
  url.searchParams.set(key, value);
206
282
  }
207
283
  }
284
+ // Auto-add locale from context
208
285
  if (ctx.languageCode && !url.searchParams.has('locale')) {
209
286
  url.searchParams.set('locale', ctx.languageCode);
210
287
  }
@@ -237,6 +314,7 @@ export function createHttpClient(ctx) {
237
314
  });
238
315
  }
239
316
  async function cmsPost(path, body, options) {
317
+ // POSTs are not retried — they're treated as mutations.
240
318
  return withRetry(ctx, options?.signal, false, async () => {
241
319
  const { controller, cleanup } = createLinkedController(options?.signal, REQUEST_TIMEOUT_MS);
242
320
  try {
@@ -278,6 +356,7 @@ export function createHttpClient(ctx) {
278
356
  url.searchParams.set(key, value);
279
357
  }
280
358
  }
359
+ // Auto-add language_code from context
281
360
  if (ctx.languageCode && !url.searchParams.has('language_code')) {
282
361
  url.searchParams.set('language_code', ctx.languageCode);
283
362
  }
@@ -310,8 +389,11 @@ export function createHttpClient(ctx) {
310
389
  });
311
390
  }
312
391
  async function graphqlUpload(query, variables, files, options) {
392
+ // Uploads are mutations — no retry.
313
393
  const formData = new FormData();
394
+ // Build the operations JSON with null placeholders for file variables
314
395
  formData.append('operations', JSON.stringify({ query, variables }));
396
+ // Build the map: { "0": ["variables.files.0"], "1": ["variables.files.1"], ... }
315
397
  const fileMap = {};
316
398
  let fileIndex = 0;
317
399
  for (const [variablePath] of files) {
@@ -319,11 +401,16 @@ export function createHttpClient(ctx) {
319
401
  fileIndex++;
320
402
  }
321
403
  formData.append('map', JSON.stringify(fileMap));
404
+ // Append files
322
405
  fileIndex = 0;
323
406
  for (const [, file] of files) {
324
407
  formData.append(String(fileIndex), file);
325
408
  fileIndex++;
326
409
  }
410
+ // Build headers without Content-Type (let browser set multipart boundary).
411
+ // Deliberately mirrors buildVendureHeaders minus Content-Type — including
412
+ // the order scope, or an upload mutation would resolve a different cart
413
+ // than every other request this client makes.
327
414
  const headers = {
328
415
  'vendure-token': ctx.channel.token,
329
416
  };
@@ -336,7 +423,8 @@ export function createHttpClient(ctx) {
336
423
  if (ctx.orderScope) {
337
424
  headers[ORDER_SCOPE_HEADER] = ctx.orderScope;
338
425
  }
339
- const { controller, cleanup } = createLinkedController(options?.signal, REQUEST_TIMEOUT_MS * 4);
426
+ const { controller, cleanup } = createLinkedController(options?.signal, REQUEST_TIMEOUT_MS * 4 // longer timeout for uploads
427
+ );
340
428
  try {
341
429
  const response = await ctx.fetch(`${ctx.vendureUrl}${SHOP_API_PATH}`, {
342
430
  method: 'POST',
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const B2B_CREDIT_STATUS_FIELDS = `
1
+ const B2B_CREDIT_STATUS_FIELDS = /* GraphQL */ `
2
2
  customerId
3
3
  currencyCode
4
4
  balance
@@ -11,7 +11,7 @@ const B2B_CREDIT_STATUS_FIELDS = `
11
11
  hasOverdue
12
12
  balanceSource
13
13
  `;
14
- const B2B_CREDIT_STATUS = `
14
+ const B2B_CREDIT_STATUS = /* GraphQL */ `
15
15
  query B2bCreditStatus {
16
16
  b2bCreditStatus { ${B2B_CREDIT_STATUS_FIELDS} }
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"credit-status.js","sourceRoot":"","sources":["../../src/credit/credit-status.ts"],"names":[],"mappings":"AAGA,MAAM,wBAAwB,GAAiB;;;;;;;;;;;;CAY9C,CAAC;AAEF,MAAM,iBAAiB,GAAiB;;wBAEhB,wBAAwB;;CAE/C,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,IAAgB;IACxD,OAAO;QACL,KAAK,CAAC,eAAe,CAAC,OAAwB;YAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,iBAAiB,EACjB,SAAS,EACT,OAAO,CACR,CAAC;YACF,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"credit-status.js","sourceRoot":"","sources":["../../src/credit/credit-status.ts"],"names":[],"mappings":"AAGA,MAAM,wBAAwB,GAAG,aAAa,CAAC;;;;;;;;;;;;CAY9C,CAAC;AAEF,MAAM,iBAAiB,GAAG,aAAa,CAAC;;wBAEhB,wBAAwB;;CAE/C,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,IAAgB;IACxD,OAAO;QACL,KAAK,CAAC,eAAe,CAAC,OAAwB;YAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,iBAAiB,EACjB,SAAS,EACT,OAAO,CACR,CAAC;YACF,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- const CUSTOMER_PAYMENT_TERMS_FIELDS = `
1
+ const CUSTOMER_PAYMENT_TERMS_FIELDS = /* GraphQL */ `
2
2
  customerId
3
3
  source
4
4
  managedExternally
@@ -18,7 +18,7 @@ const CUSTOMER_PAYMENT_TERMS_FIELDS = `
18
18
  syncedAt
19
19
  error
20
20
  `;
21
- export const MY_PAYMENT_TERMS = `
21
+ export const MY_PAYMENT_TERMS = /* GraphQL */ `
22
22
  query MyPaymentTerms {
23
23
  myPaymentTerms { ${CUSTOMER_PAYMENT_TERMS_FIELDS} }
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"payment-terms.js","sourceRoot":"","sources":["../../src/credit/payment-terms.ts"],"names":[],"mappings":"AAGA,MAAM,6BAA6B,GAAiB;;;;;;;;;;;;;;;;;;;CAmBnD,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAiB;;uBAEvB,6BAA6B;;CAEnD,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,IAAgB;IACxD,OAAO;QACL,KAAK,CAAC,eAAe,CAAC,OAAwB;YAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,gBAAgB,EAChB,SAAS,EACT,OAAO,CACR,CAAC;YACF,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"payment-terms.js","sourceRoot":"","sources":["../../src/credit/payment-terms.ts"],"names":[],"mappings":"AAGA,MAAM,6BAA6B,GAAG,aAAa,CAAC;;;;;;;;;;;;;;;;;;;CAmBnD,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;;uBAEvB,6BAA6B;;CAEnD,CAAC;AAEF,MAAM,UAAU,yBAAyB,CAAC,IAAgB;IACxD,OAAO;QACL,KAAK,CAAC,eAAe,CAAC,OAAwB;YAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,gBAAgB,EAChB,SAAS,EACT,OAAO,CACR,CAAC;YACF,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -2,10 +2,21 @@ import type { HttpClient } from '../core/http.js';
2
2
  import type { BulkConversionResult, ConvertedAmount, ExchangeRate } from '../types.js';
3
3
  export declare function createExchangeMethods(http: HttpClient): {
4
4
  getExchangeRates(): Promise<ExchangeRate[]>;
5
+ /**
6
+ * Current rate for a single base→target pair. `null` when no rate is
7
+ * stored for that currency.
8
+ */
5
9
  getExchangeRate(targetCurrency: string): Promise<ExchangeRate | null>;
6
10
  convertCurrency(amount: string, fromCurrency: string, toCurrency: string): Promise<ConvertedAmount>;
11
+ /** Convert an amount from the base currency (EUR) to a target currency. */
7
12
  convertFromBase(amount: string, targetCurrency: string): Promise<ConvertedAmount>;
13
+ /** Convert an amount from a source currency to the base currency (EUR). */
8
14
  convertToBase(amount: string, sourceCurrency: string): Promise<ConvertedAmount>;
15
+ /**
16
+ * Convert one amount into several currencies in a single roundtrip —
17
+ * e.g. a currency-switcher dropdown showing the price in every
18
+ * available currency.
19
+ */
9
20
  convertToMultiple(amount: string, fromCurrency: string, toCurrencies: string[]): Promise<BulkConversionResult[]>;
10
21
  };
11
22
  //# sourceMappingURL=exchange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/currency/exchange.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU;wBAExB,OAAO,CAAC,YAAY,EAAE,CAAC;oCASX,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;4BAQjE,MAAM,gBACA,MAAM,cACR,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC;4BAUG,MAAM,kBAAkB,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;0BAS3D,MAAM,kBAAkB,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;8BAc3E,MAAM,gBACA,MAAM,gBACN,MAAM,EAAE,GACrB,OAAO,CAAC,oBAAoB,EAAE,CAAC;EAQrC"}
1
+ {"version":3,"file":"exchange.d.ts","sourceRoot":"","sources":["../../src/currency/exchange.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEvF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU;wBAExB,OAAO,CAAC,YAAY,EAAE,CAAC;IAKjD;;;OAGG;oCACmC,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;4BAQjE,MAAM,gBACA,MAAM,cACR,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC;IAS3B,2EAA2E;4BAC7C,MAAM,kBAAkB,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQvF,2EAA2E;0BAC/C,MAAM,kBAAkB,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAQrF;;;;OAIG;8BAEO,MAAM,gBACA,MAAM,gBACN,MAAM,EAAE,GACrB,OAAO,CAAC,oBAAoB,EAAE,CAAC;EAQrC"}
@@ -5,6 +5,10 @@ export function createExchangeMethods(http) {
5
5
  const data = await http.graphql(GET_EXCHANGE_RATES);
6
6
  return data.exchangeRates;
7
7
  },
8
+ /**
9
+ * Current rate for a single base→target pair. `null` when no rate is
10
+ * stored for that currency.
11
+ */
8
12
  async getExchangeRate(targetCurrency) {
9
13
  const data = await http.graphql(GET_EXCHANGE_RATE, {
10
14
  targetCurrency,
@@ -19,6 +23,7 @@ export function createExchangeMethods(http) {
19
23
  });
20
24
  return data.convertCurrency;
21
25
  },
26
+ /** Convert an amount from the base currency (EUR) to a target currency. */
22
27
  async convertFromBase(amount, targetCurrency) {
23
28
  const data = await http.graphql(CONVERT_FROM_BASE, {
24
29
  amount,
@@ -26,6 +31,7 @@ export function createExchangeMethods(http) {
26
31
  });
27
32
  return data.convertFromBase;
28
33
  },
34
+ /** Convert an amount from a source currency to the base currency (EUR). */
29
35
  async convertToBase(amount, sourceCurrency) {
30
36
  const data = await http.graphql(CONVERT_TO_BASE, {
31
37
  amount,
@@ -33,6 +39,11 @@ export function createExchangeMethods(http) {
33
39
  });
34
40
  return data.convertToBase;
35
41
  },
42
+ /**
43
+ * Convert one amount into several currencies in a single roundtrip —
44
+ * e.g. a currency-switcher dropdown showing the price in every
45
+ * available currency.
46
+ */
36
47
  async convertToMultiple(amount, fromCurrency, toCurrencies) {
37
48
  const data = await http.graphql(CONVERT_TO_MULTIPLE, { amount, from: fromCurrency, to: toCurrencies });
38
49
  return data.convertToMultiple;
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/currency/exchange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAIhC,MAAM,UAAU,qBAAqB,CAAC,IAAgB;IACpD,OAAO;QACL,KAAK,CAAC,gBAAgB;YACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAoC,kBAAkB,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAMD,KAAK,CAAC,eAAe,CAAC,cAAsB;YAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAwC,iBAAiB,EAAE;gBACxF,cAAc;aACf,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAED,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,YAAoB,EACpB,UAAkB;YAElB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAuC,gBAAgB,EAAE;gBACtF,MAAM;gBACN,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,UAAU;aACf,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAGD,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,cAAsB;YAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAuC,iBAAiB,EAAE;gBACvF,MAAM;gBACN,cAAc;aACf,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAGD,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,cAAsB;YACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAqC,eAAe,EAAE;gBACnF,MAAM;gBACN,cAAc;aACf,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAOD,KAAK,CAAC,iBAAiB,CACrB,MAAc,EACd,YAAoB,EACpB,YAAsB;YAEtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,mBAAmB,EACnB,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,CACjD,CAAC;YACF,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/currency/exchange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAIhC,MAAM,UAAU,qBAAqB,CAAC,IAAgB;IACpD,OAAO;QACL,KAAK,CAAC,gBAAgB;YACpB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAoC,kBAAkB,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAED;;;WAGG;QACH,KAAK,CAAC,eAAe,CAAC,cAAsB;YAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAwC,iBAAiB,EAAE;gBACxF,cAAc;aACf,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAED,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,YAAoB,EACpB,UAAkB;YAElB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAuC,gBAAgB,EAAE;gBACtF,MAAM;gBACN,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,UAAU;aACf,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,2EAA2E;QAC3E,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,cAAsB;YAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAuC,iBAAiB,EAAE;gBACvF,MAAM;gBACN,cAAc;aACf,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,2EAA2E;QAC3E,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,cAAsB;YACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAqC,eAAe,EAAE;gBACnF,MAAM;gBACN,cAAc;aACf,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAED;;;;WAIG;QACH,KAAK,CAAC,iBAAiB,CACrB,MAAc,EACd,YAAoB,EACpB,YAAsB;YAEtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,mBAAmB,EACnB,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,CACjD,CAAC;YACF,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { PlacementRejection, PlacementRejectionCode, PlacementRejectionLine } from './types.js';
2
2
  export type ServiceName = 'vendure' | 'cms' | 'plugins';
3
+ /** Field-level validation error returned by the CMS (e.g. form submit). */
3
4
  export interface FieldError {
4
5
  field: string;
5
6
  code?: string;
@@ -9,10 +10,17 @@ export declare class StorefrontError extends Error {
9
10
  readonly service: ServiceName;
10
11
  readonly statusCode?: number | undefined;
11
12
  readonly errorCode?: string | undefined;
13
+ /** Field-level details parsed from a structured error response. */
12
14
  readonly details?: FieldError[] | undefined;
15
+ /** Seconds to wait before retrying, parsed from a 429 response. */
13
16
  readonly retryAfterSeconds?: number | undefined;
14
- constructor(message: string, service: ServiceName, statusCode?: number | undefined, errorCode?: string | undefined, details?: FieldError[] | undefined, retryAfterSeconds?: number | undefined);
17
+ constructor(message: string, service: ServiceName, statusCode?: number | undefined, errorCode?: string | undefined,
18
+ /** Field-level details parsed from a structured error response. */
19
+ details?: FieldError[] | undefined,
20
+ /** Seconds to wait before retrying, parsed from a 429 response. */
21
+ retryAfterSeconds?: number | undefined);
15
22
  }
23
+ /** The structured half of a refusal, hoisted out of the GraphQL ErrorResult. */
16
24
  export interface MutationErrorPlacementInfo {
17
25
  code?: PlacementRejectionCode | (string & {});
18
26
  placement?: PlacementRejection;
@@ -20,9 +28,49 @@ export interface MutationErrorPlacementInfo {
20
28
  }
21
29
  export declare class MutationError extends StorefrontError {
22
30
  readonly fields?: Record<string, unknown> | undefined;
31
+ /**
32
+ * WHY the order/payment was refused, as a stable value to branch on.
33
+ *
34
+ * This is NOT `errorCode` — that names the GraphQL ErrorResult type
35
+ * (`ORDER_STATE_TRANSITION_ERROR`, `PAYMENT_DECLINED_ERROR`), which is the
36
+ * same for every reason a placement can fail. `code` is the reason itself
37
+ * (`ORDER_MINIMUM_AMOUNT_NOT_MET`, `PAYMENT_TERMS_UNAVAILABLE`, …).
38
+ *
39
+ * `undefined` when the refusal carries no structured detail — a core
40
+ * state-machine error, or an engine older than the placement-rejection
41
+ * schema. Fall back to `message`, and always give a `switch` a `default:`:
42
+ * codes are append-only and an unrecognised one is passed through as-is —
43
+ * which is why the type is widened past the union rather than pretending an
44
+ * exhaustive `switch` can cover it.
45
+ */
23
46
  readonly code?: PlacementRejectionCode | (string & {});
47
+ /**
48
+ * The full structured payload: `customerMessage`, the affected `lines`, and
49
+ * the per-code metadata (`requiredAmount`, `requiredQuantity`, `salesUnit`,
50
+ * …). `undefined` for cart-level stock refusals, which carry no envelope —
51
+ * `code` and `lines` are synthesized there from the error's own fields.
52
+ */
24
53
  readonly placement?: PlacementRejection;
54
+ /**
55
+ * The lines the refusal is about, whatever the source: `placement.lines`
56
+ * when there is an envelope, otherwise synthesized from an
57
+ * `InsufficientStockError`'s own identity fields. Empty/undefined means the
58
+ * refusal is about the order as a whole.
59
+ *
60
+ * In a bulk add (`addItemsToCart`) this is the union across EVERY failing
61
+ * input, in input order — `fields` describes only the first one, so `lines`
62
+ * is what marks every row the shopper has to fix.
63
+ */
25
64
  readonly lines?: PlacementRejectionLine[];
26
- constructor(errorCode: string, message: string, fields?: Record<string, unknown> | undefined, structured?: MutationErrorPlacementInfo);
65
+ constructor(errorCode: string,
66
+ /**
67
+ * Already resolved to the best available prose: the shopper-safe
68
+ * `placement.customerMessage` when there is one, else a vetted reason
69
+ * field (`transitionError` / `interceptorError`), else the ErrorResult's
70
+ * generic `message`. `paymentErrorMessage` is NOT in that walk — PSP/ERP
71
+ * decline text is operator-facing and stays on
72
+ * `fields.paymentErrorMessage`.
73
+ */
74
+ message: string, fields?: Record<string, unknown> | undefined, structured?: MutationErrorPlacementInfo);
27
75
  }
28
76
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAGxD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,OAAO,EAAE,WAAW;aACpB,UAAU,CAAC,EAAE,MAAM;aACnB,SAAS,CAAC,EAAE,MAAM;aAElB,OAAO,CAAC,EAAE,UAAU,EAAE;aAEtB,iBAAiB,CAAC,EAAE,MAAM;gBAP1C,OAAO,EAAE,MAAM,EACC,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,SAAS,CAAC,EAAE,MAAM,YAAA,EAElB,OAAO,CAAC,EAAE,UAAU,EAAE,YAAA,EAEtB,iBAAiB,CAAC,EAAE,MAAM,YAAA;CAK7C;AAGD,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,sBAAsB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAClC;AAED,qBAAa,aAAc,SAAQ,eAAe;aAiD9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAjClD,QAAQ,CAAC,IAAI,CAAC,EAAE,sBAAsB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAQvD,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAYxC,QAAQ,CAAC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;gBAGxC,SAAS,EAAE,MAAM,EASjB,OAAO,EAAE,MAAM,EACC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA,EAChD,UAAU,CAAC,EAAE,0BAA0B;CAY1C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAExD,2EAA2E;AAC3E,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,OAAO,EAAE,WAAW;aACpB,UAAU,CAAC,EAAE,MAAM;aACnB,SAAS,CAAC,EAAE,MAAM;IAClC,mEAAmE;aACnD,OAAO,CAAC,EAAE,UAAU,EAAE;IACtC,mEAAmE;aACnD,iBAAiB,CAAC,EAAE,MAAM;gBAP1C,OAAO,EAAE,MAAM,EACC,OAAO,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,SAAS,CAAC,EAAE,MAAM,YAAA;IAClC,mEAAmE;IACnD,OAAO,CAAC,EAAE,UAAU,EAAE,YAAA;IACtC,mEAAmE;IACnD,iBAAiB,CAAC,EAAE,MAAM,YAAA;CAK7C;AAED,gFAAgF;AAChF,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,sBAAsB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAClC;AAED,qBAAa,aAAc,SAAQ,eAAe;aAiD9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAhDlD;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,sBAAsB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAEvD;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAExC;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;gBAGxC,SAAS,EAAE,MAAM;IACjB;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,EACC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA,EAChD,UAAU,CAAC,EAAE,0BAA0B;CAY1C"}
package/dist/errors.js CHANGED
@@ -4,7 +4,11 @@ export class StorefrontError extends Error {
4
4
  errorCode;
5
5
  details;
6
6
  retryAfterSeconds;
7
- constructor(message, service, statusCode, errorCode, details, retryAfterSeconds) {
7
+ constructor(message, service, statusCode, errorCode,
8
+ /** Field-level details parsed from a structured error response. */
9
+ details,
10
+ /** Seconds to wait before retrying, parsed from a 429 response. */
11
+ retryAfterSeconds) {
8
12
  super(message);
9
13
  this.service = service;
10
14
  this.statusCode = statusCode;
@@ -16,10 +20,52 @@ export class StorefrontError extends Error {
16
20
  }
17
21
  export class MutationError extends StorefrontError {
18
22
  fields;
23
+ /**
24
+ * WHY the order/payment was refused, as a stable value to branch on.
25
+ *
26
+ * This is NOT `errorCode` — that names the GraphQL ErrorResult type
27
+ * (`ORDER_STATE_TRANSITION_ERROR`, `PAYMENT_DECLINED_ERROR`), which is the
28
+ * same for every reason a placement can fail. `code` is the reason itself
29
+ * (`ORDER_MINIMUM_AMOUNT_NOT_MET`, `PAYMENT_TERMS_UNAVAILABLE`, …).
30
+ *
31
+ * `undefined` when the refusal carries no structured detail — a core
32
+ * state-machine error, or an engine older than the placement-rejection
33
+ * schema. Fall back to `message`, and always give a `switch` a `default:`:
34
+ * codes are append-only and an unrecognised one is passed through as-is —
35
+ * which is why the type is widened past the union rather than pretending an
36
+ * exhaustive `switch` can cover it.
37
+ */
19
38
  code;
39
+ /**
40
+ * The full structured payload: `customerMessage`, the affected `lines`, and
41
+ * the per-code metadata (`requiredAmount`, `requiredQuantity`, `salesUnit`,
42
+ * …). `undefined` for cart-level stock refusals, which carry no envelope —
43
+ * `code` and `lines` are synthesized there from the error's own fields.
44
+ */
20
45
  placement;
46
+ /**
47
+ * The lines the refusal is about, whatever the source: `placement.lines`
48
+ * when there is an envelope, otherwise synthesized from an
49
+ * `InsufficientStockError`'s own identity fields. Empty/undefined means the
50
+ * refusal is about the order as a whole.
51
+ *
52
+ * In a bulk add (`addItemsToCart`) this is the union across EVERY failing
53
+ * input, in input order — `fields` describes only the first one, so `lines`
54
+ * is what marks every row the shopper has to fix.
55
+ */
21
56
  lines;
22
- constructor(errorCode, message, fields, structured) {
57
+ constructor(errorCode,
58
+ /**
59
+ * Already resolved to the best available prose: the shopper-safe
60
+ * `placement.customerMessage` when there is one, else a vetted reason
61
+ * field (`transitionError` / `interceptorError`), else the ErrorResult's
62
+ * generic `message`. `paymentErrorMessage` is NOT in that walk — PSP/ERP
63
+ * decline text is operator-facing and stays on
64
+ * `fields.paymentErrorMessage`.
65
+ */
66
+ message, fields, structured) {
67
+ // A rate-limited result (email change, magic link) carries its wait hint
68
+ // as `retryAfterSeconds`; surface it where a 429 puts it.
23
69
  const retryAfterSeconds = typeof fields?.retryAfterSeconds === 'number' ? fields.retryAfterSeconds : undefined;
24
70
  super(message, 'vendure', undefined, errorCode, undefined, retryAfterSeconds);
25
71
  this.fields = fields;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGtB;IACA;IACA;IAEA;IAEA;IARlB,YACE,OAAe,EACC,OAAoB,EACpB,UAAmB,EACnB,SAAkB,EAElB,OAAsB,EAEtB,iBAA0B;QAE1C,KAAK,CAAC,OAAO,CAAC,CAAC;QARC,YAAO,GAAP,OAAO,CAAa;QACpB,eAAU,GAAV,UAAU,CAAS;QACnB,cAAS,GAAT,SAAS,CAAS;QAElB,YAAO,GAAP,OAAO,CAAe;QAEtB,sBAAiB,GAAjB,iBAAiB,CAAS;QAG1C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AASD,MAAM,OAAO,aAAc,SAAQ,eAAe;IAiD9B;IAjCT,IAAI,CAA0C;IAQ9C,SAAS,CAAsB;IAY/B,KAAK,CAA4B;IAE1C,YACE,SAAiB,EASjB,OAAe,EACC,MAAgC,EAChD,UAAuC;QAIvC,MAAM,iBAAiB,GACrB,OAAO,MAAM,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAP9D,WAAM,GAAN,MAAM,CAA0B;QAQhD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,UAAU,EAAE,IAAI,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,UAAU,EAAE,SAAS,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE,KAAK,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGtB;IACA;IACA;IAEA;IAEA;IARlB,YACE,OAAe,EACC,OAAoB,EACpB,UAAmB,EACnB,SAAkB;IAClC,mEAAmE;IACnD,OAAsB;IACtC,mEAAmE;IACnD,iBAA0B;QAE1C,KAAK,CAAC,OAAO,CAAC,CAAC;QARC,YAAO,GAAP,OAAO,CAAa;QACpB,eAAU,GAAV,UAAU,CAAS;QACnB,cAAS,GAAT,SAAS,CAAS;QAElB,YAAO,GAAP,OAAO,CAAe;QAEtB,sBAAiB,GAAjB,iBAAiB,CAAS;QAG1C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AASD,MAAM,OAAO,aAAc,SAAQ,eAAe;IAiD9B;IAhDlB;;;;;;;;;;;;;;OAcG;IACM,IAAI,CAA0C;IAEvD;;;;;OAKG;IACM,SAAS,CAAsB;IAExC;;;;;;;;;OASG;IACM,KAAK,CAA4B;IAE1C,YACE,SAAiB;IACjB;;;;;;;OAOG;IACH,OAAe,EACC,MAAgC,EAChD,UAAuC;QAEvC,yEAAyE;QACzE,0DAA0D;QAC1D,MAAM,iBAAiB,GACrB,OAAO,MAAM,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QACvF,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAP9D,WAAM,GAAN,MAAM,CAA0B;QAQhD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,UAAU,EAAE,IAAI,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,UAAU,EAAE,SAAS,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,UAAU,EAAE,KAAK,CAAC;IACjC,CAAC;CACF"}
@@ -1,24 +1,60 @@
1
+ /** What the event is about. `id` is the aggregate's id in its own service. */
1
2
  export interface EventAggregateRef {
2
3
  readonly type: string;
3
4
  readonly id: string | null;
4
5
  }
6
+ /**
7
+ * The exact JSON shape delivered to a webhook endpoint and served by the pull feed.
8
+ *
9
+ * Two fields are deliberately distinct and are the subtlest part of the contract:
10
+ *
11
+ * - `occurred_at` — when the event HAPPENED. Immutable.
12
+ * - `delivered_at` — when THIS delivery attempt was signed. Restamped on every attempt, and
13
+ * ABSENT on the pull feed. Check a replay window against this and only this; a pull
14
+ * response has none, because it can serve up to 90 days of history and the authenticated
15
+ * request is the freshness proof instead.
16
+ *
17
+ * Dedupe on `id`, which is stable across every attempt of one event, and NOT on
18
+ * `channel_code` for tenancy — closing a store renames its code.
19
+ *
20
+ * You will receive `schema_version`s your build does not know: the contract is append-only
21
+ * within a version and a new version is a new number, so skip what you cannot read and keep
22
+ * going. Skipping still advances your cursor.
23
+ */
5
24
  export interface PlatformEventEnvelope<TData = Record<string, unknown>> {
25
+ /** Stable per event, identical across every delivery attempt. Your idempotency key. */
6
26
  readonly id: string;
7
27
  readonly type: string;
28
+ /** Payload contract version for `type`. */
8
29
  readonly schema_version: number;
9
30
  readonly channel_code: string;
31
+ /** ISO-8601 UTC. When it happened. NEVER restamped. */
10
32
  readonly occurred_at: string;
33
+ /** ISO-8601 UTC. When this attempt was signed. Absent on the pull feed. */
11
34
  readonly delivered_at?: string;
35
+ /** Monotonic within `(channel, aggregate)`. Lets you detect gaps and reorder. */
12
36
  readonly sequence: number;
13
37
  readonly aggregate: EventAggregateRef;
38
+ /** W3C trace id tying this event to the action that caused it. */
14
39
  readonly trace_id: string | null;
15
40
  readonly data: TData;
16
41
  }
42
+ /** One page of the pull feed. */
17
43
  export interface PlatformEventPage<TData = Record<string, unknown>> {
18
44
  readonly items: PlatformEventEnvelope<TData>[];
45
+ /**
46
+ * Where to resume. Always usable — it is never null, even when you are caught up, so
47
+ * store it after every poll. Storing nothing would restart you from the beginning.
48
+ */
19
49
  readonly next_cursor: string;
50
+ /** More RIGHT NOW. `false` does not mean end of stream; a tail feed has no end. */
20
51
  readonly has_next: boolean;
52
+ /**
53
+ * `false` means events above your position were destroyed by retention before you read
54
+ * them, or that you started from the beginning of what survives rather than from a cursor.
55
+ */
21
56
  readonly complete: boolean;
57
+ /** What your `types` filter resolved to. A family wildcard widens as the catalog grows. */
22
58
  readonly types: readonly string[];
23
59
  }
24
60
  //# sourceMappingURL=envelope.d.ts.map