@sixtyninecommerce/client 0.29.0 → 0.31.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 +556 -16
- package/dist/admin/http.d.ts.map +1 -1
- package/dist/admin/http.js.map +1 -1
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/build-client.d.ts +9 -0
- package/dist/build-client.d.ts.map +1 -0
- package/dist/build-client.js +58 -0
- package/dist/build-client.js.map +1 -0
- package/dist/cache-tags.d.ts +35 -1
- package/dist/cache-tags.d.ts.map +1 -1
- package/dist/cache-tags.js +39 -1
- package/dist/cache-tags.js.map +1 -1
- package/dist/client.d.ts +25 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +9 -62
- package/dist/client.js.map +1 -1
- package/dist/commerce/age-verification.d.ts +7 -4
- package/dist/commerce/age-verification.d.ts.map +1 -1
- package/dist/commerce/age-verification.js +6 -4
- package/dist/commerce/age-verification.js.map +1 -1
- package/dist/commerce/arguments.d.ts +13 -0
- package/dist/commerce/arguments.d.ts.map +1 -0
- package/dist/commerce/arguments.js +19 -0
- package/dist/commerce/arguments.js.map +1 -0
- package/dist/commerce/branding.d.ts.map +1 -1
- package/dist/commerce/branding.js.map +1 -1
- package/dist/commerce/capabilities.d.ts +40 -0
- package/dist/commerce/capabilities.d.ts.map +1 -0
- package/dist/commerce/capabilities.js +41 -0
- package/dist/commerce/capabilities.js.map +1 -0
- package/dist/commerce/cart.d.ts +9 -12
- package/dist/commerce/cart.d.ts.map +1 -1
- package/dist/commerce/cart.js +6 -1
- package/dist/commerce/cart.js.map +1 -1
- package/dist/commerce/checkout.d.ts +95 -15
- package/dist/commerce/checkout.d.ts.map +1 -1
- package/dist/commerce/checkout.js +230 -10
- package/dist/commerce/checkout.js.map +1 -1
- package/dist/commerce/customer.d.ts +82 -38
- package/dist/commerce/customer.d.ts.map +1 -1
- package/dist/commerce/customer.js +146 -10
- package/dist/commerce/customer.js.map +1 -1
- package/dist/commerce/favorites.d.ts +2 -5
- package/dist/commerce/favorites.d.ts.map +1 -1
- package/dist/commerce/favorites.js.map +1 -1
- package/dist/commerce/index.d.ts +189 -133
- package/dist/commerce/index.d.ts.map +1 -1
- package/dist/commerce/index.js +9 -0
- package/dist/commerce/index.js.map +1 -1
- package/dist/commerce/order-states.d.ts +18 -0
- package/dist/commerce/order-states.d.ts.map +1 -0
- package/dist/commerce/order-states.js +30 -0
- package/dist/commerce/order-states.js.map +1 -0
- package/dist/commerce/parcel-pricing.d.ts +48 -0
- package/dist/commerce/parcel-pricing.d.ts.map +1 -0
- package/dist/commerce/parcel-pricing.js +39 -0
- package/dist/commerce/parcel-pricing.js.map +1 -0
- package/dist/commerce/parked-orders.d.ts +22 -0
- package/dist/commerce/parked-orders.d.ts.map +1 -0
- package/dist/commerce/parked-orders.js +47 -0
- package/dist/commerce/parked-orders.js.map +1 -0
- package/dist/commerce/payments.d.ts +12 -5
- package/dist/commerce/payments.d.ts.map +1 -1
- package/dist/commerce/payments.js +10 -1
- package/dist/commerce/payments.js.map +1 -1
- package/dist/commerce/placement-error.d.ts +17 -0
- package/dist/commerce/placement-error.d.ts.map +1 -1
- package/dist/commerce/placement-error.js.map +1 -1
- package/dist/commerce/products.d.ts +92 -38
- package/dist/commerce/products.d.ts.map +1 -1
- package/dist/commerce/products.js +162 -123
- package/dist/commerce/products.js.map +1 -1
- package/dist/commerce/queries.d.ts +204 -49
- package/dist/commerce/queries.d.ts.map +1 -1
- package/dist/commerce/queries.js +1296 -737
- package/dist/commerce/queries.js.map +1 -1
- package/dist/commerce/quotes.d.ts +5 -4
- package/dist/commerce/quotes.d.ts.map +1 -1
- package/dist/commerce/quotes.js +1 -36
- package/dist/commerce/quotes.js.map +1 -1
- package/dist/commerce/recommendations.d.ts +3 -3
- package/dist/commerce/recommendations.d.ts.map +1 -1
- package/dist/commerce/recommendations.js +3 -1
- package/dist/commerce/recommendations.js.map +1 -1
- package/dist/commerce/returns.d.ts +7 -6
- package/dist/commerce/returns.d.ts.map +1 -1
- package/dist/commerce/returns.js.map +1 -1
- package/dist/commerce/reviews.d.ts +24 -15
- package/dist/commerce/reviews.d.ts.map +1 -1
- package/dist/commerce/reviews.js +67 -50
- package/dist/commerce/reviews.js.map +1 -1
- package/dist/commerce/saved-lists.d.ts +15 -15
- package/dist/commerce/saved-lists.d.ts.map +1 -1
- package/dist/commerce/saved-lists.js +67 -55
- package/dist/commerce/saved-lists.js.map +1 -1
- package/dist/commerce/search.d.ts +3 -2
- package/dist/commerce/search.d.ts.map +1 -1
- package/dist/commerce/search.js +10 -2
- package/dist/commerce/search.js.map +1 -1
- package/dist/commerce/shipping.d.ts +11 -4
- package/dist/commerce/shipping.d.ts.map +1 -1
- package/dist/commerce/shipping.js +17 -2
- package/dist/commerce/shipping.js.map +1 -1
- package/dist/commerce/stock-notifications.d.ts +2 -0
- package/dist/commerce/stock-notifications.d.ts.map +1 -1
- package/dist/commerce/stock-notifications.js +2 -2
- package/dist/commerce/stock-notifications.js.map +1 -1
- package/dist/commerce/subscriptions.d.ts +35 -37
- package/dist/commerce/subscriptions.d.ts.map +1 -1
- package/dist/commerce/subscriptions.js +159 -120
- package/dist/commerce/subscriptions.js.map +1 -1
- package/dist/commerce/vat-validation.d.ts +6 -3
- package/dist/commerce/vat-validation.d.ts.map +1 -1
- package/dist/commerce/vat-validation.js +24 -19
- package/dist/commerce/vat-validation.js.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/content/assets.d.ts +5 -4
- package/dist/content/assets.d.ts.map +1 -1
- package/dist/content/assets.js.map +1 -1
- package/dist/content/collection-pages.d.ts +3 -2
- package/dist/content/collection-pages.d.ts.map +1 -1
- package/dist/content/collection-pages.js.map +1 -1
- package/dist/content/collections.d.ts +5 -4
- package/dist/content/collections.d.ts.map +1 -1
- package/dist/content/collections.js.map +1 -1
- package/dist/content/filtered-products.d.ts.map +1 -1
- package/dist/content/filtered-products.js.map +1 -1
- package/dist/content/form-field-types.d.ts +3 -3
- package/dist/content/form-field-types.d.ts.map +1 -1
- package/dist/content/form-field-types.js.map +1 -1
- package/dist/content/forms.d.ts +4 -3
- package/dist/content/forms.d.ts.map +1 -1
- package/dist/content/forms.js +3 -0
- package/dist/content/forms.js.map +1 -1
- package/dist/content/index.d.ts +18 -17
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/items.d.ts +5 -4
- package/dist/content/items.d.ts.map +1 -1
- package/dist/content/items.js +2 -0
- package/dist/content/items.js.map +1 -1
- package/dist/content/menus.d.ts +3 -2
- package/dist/content/menus.d.ts.map +1 -1
- package/dist/content/menus.js +7 -1
- package/dist/content/menus.js.map +1 -1
- package/dist/content/resolve.d.ts +3 -2
- package/dist/content/resolve.d.ts.map +1 -1
- package/dist/content/resolve.js +1 -1
- package/dist/content/resolve.js.map +1 -1
- package/dist/content/sitemap.d.ts +3 -2
- package/dist/content/sitemap.d.ts.map +1 -1
- package/dist/content/sitemap.js.map +1 -1
- package/dist/content/strings.d.ts +16 -2
- package/dist/content/strings.d.ts.map +1 -1
- package/dist/content/strings.js +32 -4
- package/dist/content/strings.js.map +1 -1
- package/dist/core/context.d.ts +127 -1
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +436 -45
- package/dist/core/context.js.map +1 -1
- package/dist/core/currency.d.ts +14 -0
- package/dist/core/currency.d.ts.map +1 -0
- package/dist/core/currency.js +52 -0
- package/dist/core/currency.js.map +1 -0
- package/dist/core/deprecation.d.ts +23 -0
- package/dist/core/deprecation.d.ts.map +1 -0
- package/dist/core/deprecation.js +81 -0
- package/dist/core/deprecation.js.map +1 -0
- package/dist/core/http.d.ts +15 -1
- package/dist/core/http.d.ts.map +1 -1
- package/dist/core/http.js +55 -3
- package/dist/core/http.js.map +1 -1
- package/dist/core/public-artifact.d.ts +72 -0
- package/dist/core/public-artifact.d.ts.map +1 -0
- package/dist/core/public-artifact.js +122 -0
- package/dist/core/public-artifact.js.map +1 -0
- package/dist/core/unknown-field-rejection.d.ts +18 -0
- package/dist/core/unknown-field-rejection.d.ts.map +1 -0
- package/dist/core/unknown-field-rejection.js +37 -0
- package/dist/core/unknown-field-rejection.js.map +1 -0
- package/dist/credit/credit-status.d.ts +2 -0
- package/dist/credit/credit-status.d.ts.map +1 -1
- package/dist/credit/credit-status.js +71 -19
- package/dist/credit/credit-status.js.map +1 -1
- package/dist/credit/index.d.ts +1 -1
- package/dist/credit/payment-terms.d.ts +3 -3
- package/dist/credit/payment-terms.d.ts.map +1 -1
- package/dist/credit/payment-terms.js +28 -24
- package/dist/credit/payment-terms.js.map +1 -1
- package/dist/currency/exchange.d.ts +7 -7
- package/dist/currency/exchange.d.ts.map +1 -1
- package/dist/currency/exchange.js +5 -1
- package/dist/currency/exchange.js.map +1 -1
- package/dist/errors.d.ts +17 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +13 -0
- package/dist/errors.js.map +1 -1
- package/dist/events/index.d.ts +20 -7
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +17 -5
- package/dist/events/index.js.map +1 -1
- package/dist/events/payloads.d.ts +7 -4
- package/dist/events/payloads.d.ts.map +1 -1
- package/dist/events/payloads.js +6 -3
- package/dist/events/payloads.js.map +1 -1
- package/dist/feeds/index.d.ts +5 -0
- package/dist/feeds/index.d.ts.map +1 -0
- package/dist/feeds/index.js +12 -0
- package/dist/feeds/index.js.map +1 -0
- package/dist/feeds/types.d.ts +18 -0
- package/dist/feeds/types.d.ts.map +1 -0
- package/dist/feeds/types.js +8 -0
- package/dist/feeds/types.js.map +1 -0
- package/dist/generated/cms.d.ts +2136 -0
- package/dist/generated/cms.d.ts.map +1 -0
- package/dist/generated/cms.js +4 -0
- package/dist/generated/cms.js.map +1 -0
- package/dist/generated/plugins.d.ts +550 -0
- package/dist/generated/plugins.d.ts.map +1 -0
- package/dist/generated/plugins.js +4 -0
- package/dist/generated/plugins.js.map +1 -0
- package/dist/generated/shop.d.ts +5539 -0
- package/dist/generated/shop.d.ts.map +1 -0
- package/dist/generated/shop.js +5 -0
- package/dist/generated/shop.js.map +1 -0
- package/dist/graphql-document.d.ts +29 -0
- package/dist/graphql-document.d.ts.map +1 -0
- package/dist/graphql-document.js +21 -0
- package/dist/graphql-document.js.map +1 -0
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/media/urls.d.ts.map +1 -1
- package/dist/media/urls.js +12 -1
- package/dist/media/urls.js.map +1 -1
- package/dist/media/video.d.ts.map +1 -1
- package/dist/media/video.js.map +1 -1
- package/dist/multi-store.d.ts +200 -0
- package/dist/multi-store.d.ts.map +1 -0
- package/dist/multi-store.js +558 -0
- package/dist/multi-store.js.map +1 -0
- package/dist/navigation/routes.d.ts +4 -3
- package/dist/navigation/routes.d.ts.map +1 -1
- package/dist/navigation/routes.js.map +1 -1
- package/dist/next/artifact-handler.d.ts +21 -13
- package/dist/next/artifact-handler.d.ts.map +1 -1
- package/dist/next/artifact-handler.js +28 -66
- package/dist/next/artifact-handler.js.map +1 -1
- package/dist/next/event-revalidate-handler.d.ts +26 -6
- package/dist/next/event-revalidate-handler.d.ts.map +1 -1
- package/dist/next/event-revalidate-handler.js +126 -19
- package/dist/next/event-revalidate-handler.js.map +1 -1
- package/dist/next/feed-handler.d.ts +50 -0
- package/dist/next/feed-handler.d.ts.map +1 -0
- package/dist/next/feed-handler.js +61 -0
- package/dist/next/feed-handler.js.map +1 -0
- package/dist/next/index.d.ts +3 -1
- package/dist/next/index.d.ts.map +1 -1
- package/dist/next/index.js +1 -0
- package/dist/next/index.js.map +1 -1
- package/dist/next/metadata.d.ts.map +1 -1
- package/dist/next/metadata.js.map +1 -1
- package/dist/next/redirect-middleware.d.ts +5 -31
- package/dist/next/redirect-middleware.d.ts.map +1 -1
- package/dist/next/redirect-middleware.js +4 -46
- package/dist/next/redirect-middleware.js.map +1 -1
- package/dist/next/revalidate-handler.d.ts.map +1 -1
- package/dist/next/revalidate-handler.js.map +1 -1
- package/dist/pricing/index.d.ts +1 -1
- package/dist/pricing/index.d.ts.map +1 -1
- package/dist/pricing/index.js +5 -2
- package/dist/pricing/index.js.map +1 -1
- package/dist/pricing/tax-display.js +1 -1
- package/dist/pricing/tax-display.js.map +1 -1
- package/dist/pricing/tiers.d.ts +3 -2
- package/dist/pricing/tiers.d.ts.map +1 -1
- package/dist/pricing/tiers.js.map +1 -1
- package/dist/pricing/validation.d.ts +152 -13
- package/dist/pricing/validation.d.ts.map +1 -1
- package/dist/pricing/validation.js +167 -13
- package/dist/pricing/validation.js.map +1 -1
- package/dist/redirects/index.d.ts.map +1 -1
- package/dist/redirects/index.js +2 -1
- package/dist/redirects/index.js.map +1 -1
- package/dist/redirects/store.d.ts.map +1 -1
- package/dist/redirects/store.js +6 -2
- package/dist/redirects/store.js.map +1 -1
- package/dist/redirects/types.d.ts +5 -2
- package/dist/redirects/types.d.ts.map +1 -1
- package/dist/revalidation/event-plan.d.ts +55 -4
- package/dist/revalidation/event-plan.d.ts.map +1 -1
- package/dist/revalidation/event-plan.js +115 -8
- package/dist/revalidation/event-plan.js.map +1 -1
- package/dist/revalidation/event-verify.d.ts +8 -37
- package/dist/revalidation/event-verify.d.ts.map +1 -1
- package/dist/revalidation/event-verify.js +7 -97
- package/dist/revalidation/event-verify.js.map +1 -1
- package/dist/revalidation/types.d.ts.map +1 -1
- package/dist/revalidation/url-context.d.ts +17 -0
- package/dist/revalidation/url-context.d.ts.map +1 -1
- package/dist/revalidation/url-context.js +35 -2
- package/dist/revalidation/url-context.js.map +1 -1
- package/dist/seo/ai.d.ts.map +1 -1
- package/dist/seo/ai.js.map +1 -1
- package/dist/seo/artifacts.d.ts +86 -4
- package/dist/seo/artifacts.d.ts.map +1 -1
- package/dist/seo/artifacts.js +115 -16
- package/dist/seo/artifacts.js.map +1 -1
- package/dist/seo/availability.d.ts +95 -0
- package/dist/seo/availability.d.ts.map +1 -0
- package/dist/seo/availability.js +89 -0
- package/dist/seo/availability.js.map +1 -0
- package/dist/seo/index.d.ts +4 -0
- package/dist/seo/index.d.ts.map +1 -1
- package/dist/seo/index.js +6 -1
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/json-ld.d.ts.map +1 -1
- package/dist/seo/json-ld.js +34 -1
- package/dist/seo/json-ld.js.map +1 -1
- package/dist/seo/meta-tags.d.ts +40 -1
- package/dist/seo/meta-tags.d.ts.map +1 -1
- package/dist/seo/meta-tags.js +8 -1
- package/dist/seo/meta-tags.js.map +1 -1
- package/dist/seo/metadata-parser.d.ts.map +1 -1
- package/dist/seo/metadata-parser.js.map +1 -1
- package/dist/seo/metadata-types.d.ts.map +1 -1
- package/dist/seo/robots.d.ts.map +1 -1
- package/dist/seo/robots.js.map +1 -1
- package/dist/seo/types.d.ts +20 -2
- package/dist/seo/types.d.ts.map +1 -1
- package/dist/seo/url-builder.d.ts +5 -3
- package/dist/seo/url-builder.d.ts.map +1 -1
- package/dist/seo/url-builder.js +3 -1
- package/dist/seo/url-builder.js.map +1 -1
- package/dist/types.d.ts +1306 -2429
- package/dist/types.d.ts.map +1 -1
- package/dist/web/artifact-responder.d.ts +69 -0
- package/dist/web/artifact-responder.d.ts.map +1 -0
- package/dist/web/artifact-responder.js +90 -0
- package/dist/web/artifact-responder.js.map +1 -0
- package/dist/web/feed-responder.d.ts +72 -0
- package/dist/web/feed-responder.d.ts.map +1 -0
- package/dist/web/feed-responder.js +81 -0
- package/dist/web/feed-responder.js.map +1 -0
- package/dist/web/index.d.ts +23 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +19 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/redirect-middleware.d.ts +76 -0
- package/dist/web/redirect-middleware.d.ts.map +1 -0
- package/dist/web/redirect-middleware.js +94 -0
- package/dist/web/redirect-middleware.js.map +1 -0
- package/dist/web/respond.d.ts +20 -0
- package/dist/web/respond.d.ts.map +1 -0
- package/dist/web/respond.js +52 -0
- package/dist/web/respond.js.map +1 -0
- package/package.json +19 -3
package/dist/media/video.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/media/video.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/media/video.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One storefront process, several stores (headless spec §6.2, §12.2;
|
|
3
|
+
* multi-region §7.9).
|
|
4
|
+
*
|
|
5
|
+
* `createStorefrontClient({ resolveStore })` returns a store ROUTER. Each
|
|
6
|
+
* request asks it for a `StorefrontClient` of its own, assembled from two
|
|
7
|
+
* halves that never mix:
|
|
8
|
+
*
|
|
9
|
+
* - **Per store, shared by every request for that store:** the channel snapshot
|
|
10
|
+
* (frozen), the CDN, the redirect store and the fact that the code names a
|
|
11
|
+
* real store. Held in a bounded LRU; one CMS channel resolver serves them all.
|
|
12
|
+
* - **Per request, shared with nothing:** the sign-in, language, session
|
|
13
|
+
* currency, order scope, head and buyer address — a NEW `StoreContext` for
|
|
14
|
+
* every `forRequest`/`forStore`, so two concurrent requests (for one store or
|
|
15
|
+
* two) can never send each other's token or price in each other's currency.
|
|
16
|
+
*
|
|
17
|
+
* Which store a request is for is the storefront's own rule (ruling F8): a
|
|
18
|
+
* function from the request to a store code. Nothing is looked up on the
|
|
19
|
+
* platform; `storeFromHostMap` and `storeFromPathPrefix` cover a fixed list.
|
|
20
|
+
*/
|
|
21
|
+
import type { HeadKey, OrderScope, StorefrontClient, StorefrontClientConfig } from './types.js';
|
|
22
|
+
/**
|
|
23
|
+
* What a store resolver answers for one request:
|
|
24
|
+
*
|
|
25
|
+
* - a store code;
|
|
26
|
+
* - `{ storeCode, head?, language? }` to also name the head the request came
|
|
27
|
+
* in on (`x-head`, where emailed links point) or the language it is in;
|
|
28
|
+
* - `null` (or `undefined`) for a request that belongs to no store —
|
|
29
|
+
* `forRequest` then refuses with 404 `STORE_NOT_RESOLVED`.
|
|
30
|
+
*/
|
|
31
|
+
export type StoreResolution = string | {
|
|
32
|
+
readonly storeCode: string;
|
|
33
|
+
readonly head?: HeadKey;
|
|
34
|
+
readonly language?: string;
|
|
35
|
+
} | null | undefined;
|
|
36
|
+
/** The request a store resolver decides on: a parsed URL and the headers, both copies. */
|
|
37
|
+
export interface StoreRequest {
|
|
38
|
+
readonly url: URL;
|
|
39
|
+
readonly headers: Headers;
|
|
40
|
+
}
|
|
41
|
+
/** Your rule for which store a request belongs to (ruling F8). May be async. */
|
|
42
|
+
export type StoreResolver = (request: StoreRequest) => StoreResolution | Promise<StoreResolution>;
|
|
43
|
+
/**
|
|
44
|
+
* What `forRequest` accepts: a Fetch `Request` (Next.js route handlers and
|
|
45
|
+
* middleware hand you one), or its two parts. The URL must be ABSOLUTE — on a
|
|
46
|
+
* plain `node:http` server build it from the `Host` header you trust.
|
|
47
|
+
*/
|
|
48
|
+
export type StoreRequestInput = Request | {
|
|
49
|
+
readonly url: string | URL;
|
|
50
|
+
readonly headers?: Headers | Readonly<Record<string, string>>;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* The shopper state of ONE request. Everything here applies to the client
|
|
54
|
+
* `forRequest`/`forStore` returns and to nothing else.
|
|
55
|
+
*/
|
|
56
|
+
export interface StoreRequestOptions {
|
|
57
|
+
/** The shopper's session, e.g. from a cookie — see `StorefrontClientConfig.customerToken`. */
|
|
58
|
+
customerToken?: string;
|
|
59
|
+
/** The currency the shopper chose — see `StorefrontClientConfig.currencyCode`. */
|
|
60
|
+
currencyCode?: string;
|
|
61
|
+
/** Wins over the resolution's `language`, the config's `defaultLanguageCode` and the store's default. */
|
|
62
|
+
languageCode?: string;
|
|
63
|
+
/** Wins over the config's `orderScope`. */
|
|
64
|
+
orderScope?: OrderScope;
|
|
65
|
+
/** Wins over the resolution's `head` and the config's `head`. */
|
|
66
|
+
head?: HeadKey;
|
|
67
|
+
/**
|
|
68
|
+
* The shopper's address — see `StorefrontClientConfig.buyerIp`. Sent only to a
|
|
69
|
+
* store that has a private token, and left out for any other (the platform
|
|
70
|
+
* ignores it there), so one handler can pass it on every request without
|
|
71
|
+
* knowing which store the request will resolve to. Refused when blank.
|
|
72
|
+
*/
|
|
73
|
+
buyerIp?: string;
|
|
74
|
+
/** Wins over the config's callback for this request. */
|
|
75
|
+
onAuthToken?: (token: string) => void;
|
|
76
|
+
/** Wins over the config's callback for this request. */
|
|
77
|
+
onAuthExpired?: () => void;
|
|
78
|
+
/** Wins over the config's callback for this request. */
|
|
79
|
+
onAuthCleared?: () => void;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Configuration for one process serving several stores. Everything a
|
|
83
|
+
* single-store client takes, except what belongs to ONE store or ONE shopper:
|
|
84
|
+
*
|
|
85
|
+
* - no `storeCode` — `resolveStore` decides per request;
|
|
86
|
+
* - no `customerToken`, `currencyCode` or `buyerIp` — a value here would be
|
|
87
|
+
* sent by every request to every store; pass them per request instead
|
|
88
|
+
* (`forRequest(request, { customerToken })`);
|
|
89
|
+
* - `privateToken` per store — a private storefront token is bound to ONE
|
|
90
|
+
* channel, and the platform ignores it on any other store's requests.
|
|
91
|
+
*/
|
|
92
|
+
export interface MultiStoreClientConfig extends Omit<StorefrontClientConfig, 'storeCode' | 'customerToken' | 'currencyCode' | 'buyerIp' | 'privateToken'> {
|
|
93
|
+
storeCode?: never;
|
|
94
|
+
customerToken?: never;
|
|
95
|
+
currencyCode?: never;
|
|
96
|
+
buyerIp?: never;
|
|
97
|
+
/** Which store a request belongs to. Return `null` for none. */
|
|
98
|
+
resolveStore: StoreResolver;
|
|
99
|
+
/**
|
|
100
|
+
* The store codes this process serves. Set it whenever `resolveStore` passes
|
|
101
|
+
* on anything taken from the request: a code outside the list is refused
|
|
102
|
+
* (404 `STORE_NOT_ALLOWED`) before any request reaches the platform, so a
|
|
103
|
+
* visitor cannot make the process look up codes it never meant to serve.
|
|
104
|
+
*/
|
|
105
|
+
stores?: readonly string[];
|
|
106
|
+
/**
|
|
107
|
+
* The private storefront token of each store (`s69p_…`, one per head, from
|
|
108
|
+
* `admin.heads.privateTokens.issue`), by store code — or a function from the
|
|
109
|
+
* code to its token. A store with none sends none. Never in a browser.
|
|
110
|
+
*/
|
|
111
|
+
privateToken?: Readonly<Record<string, string>> | ((storeCode: string) => string | undefined);
|
|
112
|
+
}
|
|
113
|
+
/** A store router. Each call returns a fresh client whose shopper state is its own. */
|
|
114
|
+
export interface MultiStoreClient {
|
|
115
|
+
/**
|
|
116
|
+
* The client for this request's store, per your `resolveStore`.
|
|
117
|
+
*
|
|
118
|
+
* Refuses with `StorefrontError` (404 `STORE_NOT_RESOLVED`) when the resolver
|
|
119
|
+
* returns `null`, 404 `STORE_NOT_ALLOWED` for a code outside `stores`, and 404
|
|
120
|
+
* `CHANNEL_NOT_FOUND` for a code that names no store — an unknown code, the
|
|
121
|
+
* bootstrap root `__default_channel__`, or an organization's workspace (a
|
|
122
|
+
* hub is never a storefront). An error your resolver throws is passed on.
|
|
123
|
+
*/
|
|
124
|
+
forRequest(request: StoreRequestInput, options?: StoreRequestOptions): Promise<StorefrontClient>;
|
|
125
|
+
/** The client for a store you name, with the same refusals as {@link forRequest}. */
|
|
126
|
+
forStore(storeCode: string, options?: StoreRequestOptions): Promise<StorefrontClient>;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Forget what the router's shared channel resolver holds for a store code, so the next request
|
|
130
|
+
* for it asks the CMS again — `channel.renamed` delivers this before any request has to fail
|
|
131
|
+
* on the old code's rotated token (W8-16b). A no-op for anything that is not a router.
|
|
132
|
+
*/
|
|
133
|
+
export declare function forgetStoreCode(router: MultiStoreClient, storeCode: string): void;
|
|
134
|
+
/**
|
|
135
|
+
* Hear about any of the router's stores failing to load its redirect map — the
|
|
136
|
+
* one signal that redirects have stopped refreshing (the stores keep serving
|
|
137
|
+
* their last good map). `createRedirectMiddleware({ client, onError })` wires
|
|
138
|
+
* its `onError` here. Returns the unsubscribe.
|
|
139
|
+
*/
|
|
140
|
+
export declare function onRedirectError(router: MultiStoreClient, listener: (error: Error) => void): () => void;
|
|
141
|
+
/** Is this a store router (`createStorefrontClient({ resolveStore })`)? */
|
|
142
|
+
export declare function isMultiStoreClient(value: unknown): value is MultiStoreClient;
|
|
143
|
+
/** Does this config ask for a store router rather than one store's client? */
|
|
144
|
+
export declare function isMultiStoreConfig(config: StorefrontClientConfig | MultiStoreClientConfig): config is MultiStoreClientConfig;
|
|
145
|
+
/**
|
|
146
|
+
* The client an adapter serves a request from: a router resolves the request
|
|
147
|
+
* (`null` when it belongs to no store the router serves — answer it 404); a
|
|
148
|
+
* single-store client, or its promise, is the answer as it always was.
|
|
149
|
+
*/
|
|
150
|
+
export declare function adapterClient(source: StorefrontClient | Promise<StorefrontClient> | MultiStoreClient, request: Request): Promise<StorefrontClient | null>;
|
|
151
|
+
/** Did a router refuse because the request belongs to no store it serves? */
|
|
152
|
+
export declare function isStoreRefusal(error: unknown): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* The tags an adapter's own upstream fetch carries: the bare tag, plus its
|
|
155
|
+
* store-scoped copy when the client serves one store of several.
|
|
156
|
+
*/
|
|
157
|
+
export declare function adapterCacheTags(client: Pick<StorefrontClient, 'context'>, tag: string): string[];
|
|
158
|
+
/**
|
|
159
|
+
* Is this code a store? Organization workspaces (hubs) are mirrored into the
|
|
160
|
+
* CMS and answer `GET /channels/by-code/:code` with 200, so the lookup cannot
|
|
161
|
+
* tell; the Shop API refuses a hub's token with 404 `CHANNEL_NOT_FOUND`
|
|
162
|
+
* (multi-region #792). One read per store per channel id, never per request.
|
|
163
|
+
*/
|
|
164
|
+
export declare const STORE_PROBE = "\n query StoreProbe {\n activeChannel {\n id\n }\n }\n";
|
|
165
|
+
export declare function createMultiStoreClient(config: MultiStoreClientConfig): MultiStoreClient;
|
|
166
|
+
/**
|
|
167
|
+
* A resolver for a fixed list of addresses (ruling F8): the request's host →
|
|
168
|
+
* its store. A key with a port (`localhost:3000`) matches only that port; a
|
|
169
|
+
* key without one matches the host on any port. Anything unlisted resolves to
|
|
170
|
+
* `null` (404 `STORE_NOT_RESOLVED`).
|
|
171
|
+
*
|
|
172
|
+
* Decides by the `Host` header the server received, and only by the URL when
|
|
173
|
+
* the request carries none: a self-hosted Next.js server (`next start`, the
|
|
174
|
+
* standalone output) builds `request.url` on its OWN host (`localhost:3000`),
|
|
175
|
+
* so the URL alone would resolve no visitor to any store. Never by
|
|
176
|
+
* `X-Forwarded-Host`: a visitor can send that header, and a cache in front of
|
|
177
|
+
* you keys on the Host it saw — so trusting it would let anyone fill store A's
|
|
178
|
+
* cache with store B's pages. Behind a proxy that rewrites Host, write a
|
|
179
|
+
* resolver that reads the header your proxy guarantees.
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```ts
|
|
183
|
+
* storeFromHostMap({
|
|
184
|
+
* 'fashion.example.com': 'fashion-store',
|
|
185
|
+
* 'trade.fashion.example.com': { storeCode: 'fashion-store', head: 'trade' },
|
|
186
|
+
* });
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export declare function storeFromHostMap(map: Readonly<Record<string, StoreResolution>>): StoreResolver;
|
|
190
|
+
/**
|
|
191
|
+
* A resolver for stores under path prefixes (`/nl/…` → one store, `/be/…` →
|
|
192
|
+
* another). Matches whole segments only (`/nl` never matches `/nlx`), longest
|
|
193
|
+
* prefix first; `/` alone matches every path, as a fallback. Anything else
|
|
194
|
+
* resolves to `null` (404 `STORE_NOT_RESOLVED`).
|
|
195
|
+
*
|
|
196
|
+
* The prefix stays part of every URL: canonical links are built on each
|
|
197
|
+
* store's own main shop address (`storefrontUrl`, e.g. `https://example.com/nl`).
|
|
198
|
+
*/
|
|
199
|
+
export declare function storeFromPathPrefix(map: Readonly<Record<string, StoreResolution>>): StoreResolver;
|
|
200
|
+
//# sourceMappingURL=multi-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-store.d.ts","sourceRoot":"","sources":["../src/multi-store.ts"],"names":[],"mappings":"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"}
|