@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.
- package/README.md +21 -0
- package/dist/admin/forms.js +19 -0
- package/dist/admin/forms.js.map +1 -1
- package/dist/admin/http.d.ts +9 -0
- package/dist/admin/http.d.ts.map +1 -1
- package/dist/admin/http.js +3 -0
- package/dist/admin/http.js.map +1 -1
- package/dist/admin/index.d.ts +63 -0
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +67 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/redirects.d.ts +6 -0
- package/dist/admin/redirects.d.ts.map +1 -1
- package/dist/admin/redirects.js +12 -0
- package/dist/admin/redirects.js.map +1 -1
- package/dist/admin/types.d.ts +63 -0
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/cache-tags.d.ts +19 -0
- package/dist/cache-tags.d.ts.map +1 -1
- package/dist/cache-tags.js +19 -0
- package/dist/cache-tags.js.map +1 -1
- package/dist/client.d.ts +17 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +17 -0
- package/dist/client.js.map +1 -1
- package/dist/commerce/age-verification.js +3 -3
- package/dist/commerce/age-verification.js.map +1 -1
- package/dist/commerce/branding.js +7 -0
- package/dist/commerce/branding.js.map +1 -1
- package/dist/commerce/cart.js +25 -0
- package/dist/commerce/cart.js.map +1 -1
- package/dist/commerce/checkout.d.ts +68 -0
- package/dist/commerce/checkout.d.ts.map +1 -1
- package/dist/commerce/checkout.js +83 -0
- package/dist/commerce/checkout.js.map +1 -1
- package/dist/commerce/customer.d.ts +58 -0
- package/dist/commerce/customer.d.ts.map +1 -1
- package/dist/commerce/customer.js +65 -0
- package/dist/commerce/customer.js.map +1 -1
- package/dist/commerce/pickup-location-parser.d.ts +18 -0
- package/dist/commerce/pickup-location-parser.d.ts.map +1 -1
- package/dist/commerce/pickup-location-parser.js +28 -0
- package/dist/commerce/pickup-location-parser.js.map +1 -1
- package/dist/commerce/placement-error.d.ts +52 -0
- package/dist/commerce/placement-error.d.ts.map +1 -1
- package/dist/commerce/placement-error.js +87 -0
- package/dist/commerce/placement-error.js.map +1 -1
- package/dist/commerce/products.d.ts +48 -0
- package/dist/commerce/products.d.ts.map +1 -1
- package/dist/commerce/products.js +92 -0
- package/dist/commerce/products.js.map +1 -1
- package/dist/commerce/queries.d.ts +113 -27
- package/dist/commerce/queries.d.ts.map +1 -1
- package/dist/commerce/queries.js +188 -2
- package/dist/commerce/queries.js.map +1 -1
- package/dist/commerce/quotes.js +33 -0
- package/dist/commerce/quotes.js.map +1 -1
- package/dist/commerce/saved-lists.d.ts +7 -7
- package/dist/commerce/saved-lists.d.ts.map +1 -1
- package/dist/commerce/saved-lists.js +1 -1
- package/dist/commerce/search.js +3 -0
- package/dist/commerce/search.js.map +1 -1
- package/dist/commerce/shipping.js +3 -3
- package/dist/commerce/shipping.js.map +1 -1
- package/dist/commerce/stock-notifications.d.ts +11 -0
- package/dist/commerce/stock-notifications.d.ts.map +1 -1
- package/dist/commerce/stock-notifications.js +11 -0
- package/dist/commerce/stock-notifications.js.map +1 -1
- package/dist/commerce/vat-validation.js +4 -4
- package/dist/commerce/vat-validation.js.map +1 -1
- package/dist/constants.d.ts +31 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +32 -0
- package/dist/constants.js.map +1 -1
- package/dist/content/asset-urls.d.ts +50 -0
- package/dist/content/asset-urls.d.ts.map +1 -1
- package/dist/content/asset-urls.js +92 -0
- package/dist/content/asset-urls.js.map +1 -1
- package/dist/content/assets.d.ts +15 -0
- package/dist/content/assets.d.ts.map +1 -1
- package/dist/content/assets.js +15 -0
- package/dist/content/assets.js.map +1 -1
- package/dist/content/collection-pages.d.ts +5 -0
- package/dist/content/collection-pages.d.ts.map +1 -1
- package/dist/content/collection-pages.js +8 -0
- package/dist/content/collection-pages.js.map +1 -1
- package/dist/content/collections.d.ts +14 -0
- package/dist/content/collections.d.ts.map +1 -1
- package/dist/content/collections.js +16 -0
- package/dist/content/collections.js.map +1 -1
- package/dist/content/filtered-products.d.ts +18 -0
- package/dist/content/filtered-products.d.ts.map +1 -1
- package/dist/content/filtered-products.js +16 -0
- package/dist/content/filtered-products.js.map +1 -1
- package/dist/content/form-field-types.d.ts +6 -0
- package/dist/content/form-field-types.d.ts.map +1 -1
- package/dist/content/form-field-types.js +12 -0
- package/dist/content/form-field-types.js.map +1 -1
- package/dist/content/forms.d.ts +16 -0
- package/dist/content/forms.d.ts.map +1 -1
- package/dist/content/forms.js +23 -0
- package/dist/content/forms.js.map +1 -1
- package/dist/content/items.d.ts +26 -0
- package/dist/content/items.d.ts.map +1 -1
- package/dist/content/items.js +33 -0
- package/dist/content/items.js.map +1 -1
- package/dist/content/resolve.js +6 -0
- package/dist/content/resolve.js.map +1 -1
- package/dist/content/sitemap.d.ts +5 -0
- package/dist/content/sitemap.d.ts.map +1 -1
- package/dist/content/sitemap.js +5 -0
- package/dist/content/sitemap.js.map +1 -1
- package/dist/core/context.js +6 -0
- package/dist/core/context.js.map +1 -1
- package/dist/core/headers.js +2 -0
- package/dist/core/headers.js.map +1 -1
- package/dist/core/http.d.ts +8 -0
- package/dist/core/http.d.ts.map +1 -1
- package/dist/core/http.js +89 -1
- package/dist/core/http.js.map +1 -1
- package/dist/credit/credit-status.js +2 -2
- package/dist/credit/credit-status.js.map +1 -1
- package/dist/credit/payment-terms.js +2 -2
- package/dist/credit/payment-terms.js.map +1 -1
- package/dist/currency/exchange.d.ts +11 -0
- package/dist/currency/exchange.d.ts.map +1 -1
- package/dist/currency/exchange.js +11 -0
- package/dist/currency/exchange.js.map +1 -1
- package/dist/errors.d.ts +50 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +48 -2
- package/dist/errors.js.map +1 -1
- package/dist/events/envelope.d.ts +36 -0
- package/dist/events/envelope.d.ts.map +1 -1
- package/dist/events/envelope.js +12 -0
- package/dist/events/envelope.js.map +1 -1
- package/dist/events/index.d.ts +13 -0
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +13 -0
- package/dist/events/index.js.map +1 -1
- package/dist/events/payloads.d.ts +19 -0
- package/dist/events/payloads.d.ts.map +1 -1
- package/dist/events/payloads.js +12 -0
- package/dist/events/payloads.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/media/index.js +2 -0
- package/dist/media/index.js.map +1 -1
- package/dist/media/urls.d.ts +52 -0
- package/dist/media/urls.d.ts.map +1 -1
- package/dist/media/urls.js +38 -0
- package/dist/media/urls.js.map +1 -1
- package/dist/media/video.d.ts +16 -0
- package/dist/media/video.d.ts.map +1 -1
- package/dist/media/video.js +16 -0
- package/dist/media/video.js.map +1 -1
- package/dist/next/artifact-handler.d.ts +22 -0
- package/dist/next/artifact-handler.d.ts.map +1 -1
- package/dist/next/artifact-handler.js +22 -0
- package/dist/next/artifact-handler.js.map +1 -1
- package/dist/next/event-revalidate-handler.d.ts +67 -0
- package/dist/next/event-revalidate-handler.d.ts.map +1 -1
- package/dist/next/event-revalidate-handler.js +48 -0
- package/dist/next/event-revalidate-handler.js.map +1 -1
- package/dist/next/index.d.ts +6 -0
- package/dist/next/index.d.ts.map +1 -1
- package/dist/next/index.js +6 -0
- package/dist/next/index.js.map +1 -1
- package/dist/next/json-ld.d.ts +9 -0
- package/dist/next/json-ld.d.ts.map +1 -1
- package/dist/next/json-ld.js +9 -0
- package/dist/next/json-ld.js.map +1 -1
- package/dist/next/metadata.d.ts +18 -0
- package/dist/next/metadata.d.ts.map +1 -1
- package/dist/next/metadata.js +21 -0
- package/dist/next/metadata.js.map +1 -1
- package/dist/next/redirect-middleware.d.ts +39 -0
- package/dist/next/redirect-middleware.d.ts.map +1 -1
- package/dist/next/redirect-middleware.js +32 -0
- package/dist/next/redirect-middleware.js.map +1 -1
- package/dist/next/revalidate-handler.d.ts +30 -0
- package/dist/next/revalidate-handler.d.ts.map +1 -1
- package/dist/next/revalidate-handler.js +22 -0
- package/dist/next/revalidate-handler.js.map +1 -1
- package/dist/order-scope.d.ts +27 -0
- package/dist/order-scope.d.ts.map +1 -1
- package/dist/order-scope.js +29 -0
- package/dist/order-scope.js.map +1 -1
- package/dist/pricing/format.d.ts +17 -0
- package/dist/pricing/format.d.ts.map +1 -1
- package/dist/pricing/format.js +19 -0
- package/dist/pricing/format.js.map +1 -1
- package/dist/pricing/index.d.ts +8 -1
- package/dist/pricing/index.d.ts.map +1 -1
- package/dist/pricing/index.js +18 -2
- package/dist/pricing/index.js.map +1 -1
- package/dist/pricing/tax-display.d.ts +77 -0
- package/dist/pricing/tax-display.d.ts.map +1 -1
- package/dist/pricing/tax-display.js +85 -0
- package/dist/pricing/tax-display.js.map +1 -1
- package/dist/pricing/tiers.d.ts +9 -0
- package/dist/pricing/tiers.d.ts.map +1 -1
- package/dist/pricing/tiers.js +9 -0
- package/dist/pricing/tiers.js.map +1 -1
- package/dist/pricing/validation.d.ts +56 -1
- package/dist/pricing/validation.d.ts.map +1 -1
- package/dist/pricing/validation.js +61 -0
- package/dist/pricing/validation.js.map +1 -1
- package/dist/redirects/index.d.ts +1 -0
- package/dist/redirects/index.d.ts.map +1 -1
- package/dist/redirects/index.js +1 -0
- package/dist/redirects/index.js.map +1 -1
- package/dist/redirects/store.d.ts +20 -0
- package/dist/redirects/store.d.ts.map +1 -1
- package/dist/redirects/store.js +57 -0
- package/dist/redirects/store.js.map +1 -1
- package/dist/redirects/types.d.ts +24 -0
- package/dist/redirects/types.d.ts.map +1 -1
- package/dist/redirects/types.js +1 -0
- package/dist/redirects/types.js.map +1 -1
- package/dist/revalidation/event-plan.d.ts +48 -0
- package/dist/revalidation/event-plan.d.ts.map +1 -1
- package/dist/revalidation/event-plan.js +61 -0
- package/dist/revalidation/event-plan.js.map +1 -1
- package/dist/revalidation/event-verify.d.ts +25 -0
- package/dist/revalidation/event-verify.d.ts.map +1 -1
- package/dist/revalidation/event-verify.js +27 -0
- package/dist/revalidation/event-verify.js.map +1 -1
- package/dist/revalidation/types.d.ts +20 -0
- package/dist/revalidation/types.d.ts.map +1 -1
- package/dist/revalidation/types.js +10 -0
- package/dist/revalidation/types.js.map +1 -1
- package/dist/revalidation/url-context.d.ts +25 -0
- package/dist/revalidation/url-context.d.ts.map +1 -1
- package/dist/revalidation/url-context.js +17 -0
- package/dist/revalidation/url-context.js.map +1 -1
- package/dist/revalidation/verify.d.ts +8 -0
- package/dist/revalidation/verify.d.ts.map +1 -1
- package/dist/revalidation/verify.js +8 -0
- package/dist/revalidation/verify.js.map +1 -1
- package/dist/seo/ai.d.ts +17 -0
- package/dist/seo/ai.d.ts.map +1 -1
- package/dist/seo/ai.js +12 -0
- package/dist/seo/ai.js.map +1 -1
- package/dist/seo/alternates.js +13 -0
- package/dist/seo/alternates.js.map +1 -1
- package/dist/seo/artifacts.d.ts +13 -0
- package/dist/seo/artifacts.d.ts.map +1 -1
- package/dist/seo/artifacts.js +19 -0
- package/dist/seo/artifacts.js.map +1 -1
- package/dist/seo/canonical.d.ts +15 -0
- package/dist/seo/canonical.d.ts.map +1 -1
- package/dist/seo/canonical.js +24 -0
- package/dist/seo/canonical.js.map +1 -1
- package/dist/seo/index.js +6 -0
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/json-ld.d.ts +13 -0
- package/dist/seo/json-ld.d.ts.map +1 -1
- package/dist/seo/json-ld.js +32 -0
- package/dist/seo/json-ld.js.map +1 -1
- package/dist/seo/locale-tag.d.ts +31 -0
- package/dist/seo/locale-tag.d.ts.map +1 -1
- package/dist/seo/locale-tag.js +31 -0
- package/dist/seo/locale-tag.js.map +1 -1
- package/dist/seo/meta-tags.d.ts +29 -0
- package/dist/seo/meta-tags.d.ts.map +1 -1
- package/dist/seo/meta-tags.js +28 -0
- package/dist/seo/meta-tags.js.map +1 -1
- package/dist/seo/metadata-parser.d.ts +24 -0
- package/dist/seo/metadata-parser.d.ts.map +1 -1
- package/dist/seo/metadata-parser.js +38 -0
- package/dist/seo/metadata-parser.js.map +1 -1
- package/dist/seo/metadata-types.d.ts +16 -0
- package/dist/seo/metadata-types.d.ts.map +1 -1
- package/dist/seo/product-path.d.ts +96 -0
- package/dist/seo/product-path.d.ts.map +1 -1
- package/dist/seo/product-path.js +96 -0
- package/dist/seo/product-path.js.map +1 -1
- package/dist/seo/robots.d.ts +17 -0
- package/dist/seo/robots.d.ts.map +1 -1
- package/dist/seo/robots.js +12 -0
- package/dist/seo/robots.js.map +1 -1
- package/dist/seo/types.d.ts +39 -0
- package/dist/seo/types.d.ts.map +1 -1
- package/dist/seo/url-builder.d.ts +31 -0
- package/dist/seo/url-builder.d.ts.map +1 -1
- package/dist/seo/url-builder.js +36 -0
- package/dist/seo/url-builder.js.map +1 -1
- package/dist/types.d.ts +1163 -0
- package/dist/types.d.ts.map +1 -1
- 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',
|
package/dist/core/http.js.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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;
|
|
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;
|
|
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,
|
|
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,
|
|
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
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -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;
|
|
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,
|
|
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,
|
|
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;
|
package/dist/errors.js.map
CHANGED
|
@@ -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,
|
|
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
|