@01.software/sdk 0.44.0 → 0.46.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/CHANGELOG.md +366 -2
- package/MIGRATION.md +108 -10
- package/README.md +486 -98
- package/dist/{server-nXOezi4b.d.cts → catalog-mappers-sIshKNb3.d.cts} +14 -3
- package/dist/{server-nXOezi4b.d.ts → catalog-mappers-sIshKNb3.d.ts} +14 -3
- package/dist/client.cjs +2693 -345
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +10 -7
- package/dist/client.d.ts +10 -7
- package/dist/client.js +2693 -345
- package/dist/client.js.map +1 -1
- package/dist/{collection-client-DWooaiTr.d.ts → collection-client-D6kKrYdq.d.ts} +8 -5
- package/dist/{collection-client-Dyl-CDcj.d.cts → collection-client-DolMjCoC.d.cts} +8 -5
- package/dist/{const-pGDnsy0o.d.ts → const-BAG0MH0u.d.cts} +13 -10
- package/dist/{const-1vleZ6ov.d.cts → const-CaPq2AE4.d.ts} +13 -10
- package/dist/errors.cjs +74 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.cts +38 -1
- package/dist/errors.d.ts +38 -1
- package/dist/errors.js +74 -1
- package/dist/errors.js.map +1 -1
- package/dist/{index-DUNySyxV.d.ts → index-BNICJxBL.d.ts} +4 -4
- package/dist/{index-a6g7vqAD.d.cts → index-YGrZrxNn.d.cts} +4 -4
- package/dist/index.cjs +2754 -368
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -19
- package/dist/index.d.ts +18 -19
- package/dist/index.js +2754 -368
- package/dist/index.js.map +1 -1
- package/dist/{payload-types-CDsuOEfM.d.cts → payload-types-CJZuXcgF.d.cts} +6671 -4001
- package/dist/{payload-types-CDsuOEfM.d.ts → payload-types-CJZuXcgF.d.ts} +6671 -4001
- package/dist/query.cjs +558 -101
- package/dist/query.cjs.map +1 -1
- package/dist/query.d.cts +43 -45
- package/dist/query.d.ts +43 -45
- package/dist/query.js +558 -101
- package/dist/query.js.map +1 -1
- package/dist/realtime.cjs.map +1 -1
- package/dist/realtime.d.cts +2 -2
- package/dist/realtime.d.ts +2 -2
- package/dist/realtime.js.map +1 -1
- package/dist/server.cjs +2343 -437
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +11 -10
- package/dist/server.d.ts +11 -10
- package/dist/server.js +2343 -437
- package/dist/server.js.map +1 -1
- package/dist/storefront-cache.cjs +65 -1
- package/dist/storefront-cache.cjs.map +1 -1
- package/dist/storefront-cache.js +65 -1
- package/dist/storefront-cache.js.map +1 -1
- package/dist/types-BC6rVmJa.d.ts +47 -0
- package/dist/{types-CDND3hzq.d.cts → types-C60vHIkY.d.ts} +1134 -509
- package/dist/types-D5p7-m1l.d.cts +47 -0
- package/dist/{types-Dt9FJisi.d.ts → types-xlqBeW2N.d.cts} +1134 -509
- package/dist/ui/canvas/server.cjs +244 -2
- package/dist/ui/canvas/server.cjs.map +1 -1
- package/dist/ui/canvas/server.d.cts +27 -1
- package/dist/ui/canvas/server.d.ts +27 -1
- package/dist/ui/canvas/server.js +244 -2
- package/dist/ui/canvas/server.js.map +1 -1
- package/dist/ui/canvas.cjs +419 -103
- package/dist/ui/canvas.cjs.map +1 -1
- package/dist/ui/canvas.d.cts +19 -7
- package/dist/ui/canvas.d.ts +19 -7
- package/dist/ui/canvas.js +419 -103
- package/dist/ui/canvas.js.map +1 -1
- package/dist/ui/form.d.cts +1 -1
- package/dist/ui/form.d.ts +1 -1
- package/dist/ui/video.d.cts +1 -1
- package/dist/ui/video.d.ts +1 -1
- package/dist/webhook.cjs +2 -1
- package/dist/webhook.cjs.map +1 -1
- package/dist/webhook.d.cts +4 -4
- package/dist/webhook.d.ts +4 -4
- package/dist/webhook.js +2 -1
- package/dist/webhook.js.map +1 -1
- package/package.json +10 -9
- package/dist/types-SoXsbKhj.d.cts +0 -33
- package/dist/types-oiae_LMm.d.ts +0 -33
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { F as DebugConfig, ag as RetryConfig, i as ApiQueryOptions, P as PayloadFindResponse, K as PayloadMutationResponse, bN as ApiDeleteOptions, bO as PublicReadQueryOptions } from './types-C60vHIkY.js';
|
|
2
|
+
import './payload-types-CJZuXcgF.js';
|
|
2
3
|
import { GenerateMetadataOptions, Metadata } from './metadata.js';
|
|
3
|
-
import { S as ServerCollection, P as PublicCollection } from './const-
|
|
4
|
-
import { C as CollectionType } from './types-
|
|
4
|
+
import { C as Collection, S as ServerCollection, P as PublicCollection } from './const-CaPq2AE4.js';
|
|
5
|
+
import { C as CollectionType } from './types-BC6rVmJa.js';
|
|
5
6
|
|
|
6
7
|
interface FetchOptions extends RequestInit {
|
|
7
8
|
apiUrl?: string;
|
|
@@ -13,6 +14,8 @@ interface FetchOptions extends RequestInit {
|
|
|
13
14
|
retry?: RetryConfig;
|
|
14
15
|
/** Called on 401 when customerToken is set and reason=token_expired. Return a new token to retry, or null to fail. */
|
|
15
16
|
onUnauthorized?: () => Promise<string | null>;
|
|
17
|
+
/** Selects a strict endpoint-owned error envelope. */
|
|
18
|
+
errorFamily?: 'commerce';
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
declare class HttpClient {
|
|
@@ -66,7 +69,7 @@ declare class ReadOnlyCollectionQueryBuilder<T extends PublicCollection> {
|
|
|
66
69
|
totalDocs: number;
|
|
67
70
|
}>;
|
|
68
71
|
}
|
|
69
|
-
declare class CollectionQueryBuilder<T extends
|
|
72
|
+
declare class CollectionQueryBuilder<T extends Collection> {
|
|
70
73
|
private api;
|
|
71
74
|
private collection;
|
|
72
75
|
constructor(api: CollectionClient, collection: T);
|
|
@@ -142,7 +145,7 @@ declare class CollectionQueryBuilder<T extends string> {
|
|
|
142
145
|
declare class ServerCollectionQueryBuilder<T extends ServerCollection> extends CollectionQueryBuilder<T> {
|
|
143
146
|
}
|
|
144
147
|
|
|
145
|
-
declare class CollectionClient<TCollection extends
|
|
148
|
+
declare class CollectionClient<TCollection extends Collection = PublicCollection> extends HttpClient {
|
|
146
149
|
from<T extends TCollection>(collection: T): CollectionQueryBuilder<T>;
|
|
147
150
|
/**
|
|
148
151
|
* Find documents (list query)
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { F as DebugConfig, ag as RetryConfig, i as ApiQueryOptions, P as PayloadFindResponse, K as PayloadMutationResponse, bN as ApiDeleteOptions, bO as PublicReadQueryOptions } from './types-xlqBeW2N.cjs';
|
|
2
|
+
import './payload-types-CJZuXcgF.cjs';
|
|
2
3
|
import { GenerateMetadataOptions, Metadata } from './metadata.cjs';
|
|
3
|
-
import { S as ServerCollection, P as PublicCollection } from './const-
|
|
4
|
-
import { C as CollectionType } from './types-
|
|
4
|
+
import { C as Collection, S as ServerCollection, P as PublicCollection } from './const-BAG0MH0u.cjs';
|
|
5
|
+
import { C as CollectionType } from './types-D5p7-m1l.cjs';
|
|
5
6
|
|
|
6
7
|
interface FetchOptions extends RequestInit {
|
|
7
8
|
apiUrl?: string;
|
|
@@ -13,6 +14,8 @@ interface FetchOptions extends RequestInit {
|
|
|
13
14
|
retry?: RetryConfig;
|
|
14
15
|
/** Called on 401 when customerToken is set and reason=token_expired. Return a new token to retry, or null to fail. */
|
|
15
16
|
onUnauthorized?: () => Promise<string | null>;
|
|
17
|
+
/** Selects a strict endpoint-owned error envelope. */
|
|
18
|
+
errorFamily?: 'commerce';
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
declare class HttpClient {
|
|
@@ -66,7 +69,7 @@ declare class ReadOnlyCollectionQueryBuilder<T extends PublicCollection> {
|
|
|
66
69
|
totalDocs: number;
|
|
67
70
|
}>;
|
|
68
71
|
}
|
|
69
|
-
declare class CollectionQueryBuilder<T extends
|
|
72
|
+
declare class CollectionQueryBuilder<T extends Collection> {
|
|
70
73
|
private api;
|
|
71
74
|
private collection;
|
|
72
75
|
constructor(api: CollectionClient, collection: T);
|
|
@@ -142,7 +145,7 @@ declare class CollectionQueryBuilder<T extends string> {
|
|
|
142
145
|
declare class ServerCollectionQueryBuilder<T extends ServerCollection> extends CollectionQueryBuilder<T> {
|
|
143
146
|
}
|
|
144
147
|
|
|
145
|
-
declare class CollectionClient<TCollection extends
|
|
148
|
+
declare class CollectionClient<TCollection extends Collection = PublicCollection> extends HttpClient {
|
|
146
149
|
from<T extends TCollection>(collection: T): CollectionQueryBuilder<T>;
|
|
147
150
|
/**
|
|
148
151
|
* Find documents (list query)
|
|
@@ -1,32 +1,35 @@
|
|
|
1
|
-
import
|
|
1
|
+
import './payload-types-CJZuXcgF.cjs';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Collection type derived from Payload Config.
|
|
5
|
-
* This ensures type safety and automatic synchronization with payload-types.ts
|
|
6
|
-
*/
|
|
7
|
-
type Collection = keyof Config['collections'];
|
|
8
3
|
/**
|
|
9
4
|
* Internal collections that should not be exposed via SDK.
|
|
10
5
|
* Includes Payload system collections and admin-only collections.
|
|
11
6
|
*/
|
|
12
|
-
declare const INTERNAL_COLLECTIONS: readonly ["users", "payload-kv", "payload-locked-documents", "payload-preferences", "payload-migrations", "payload-folders", "field-configs", "system-media", "track-assets", "audiences", "email-logs", "api-usage", "tenant-analytics-daily", "tenant-web-analytics-config", "analytics-event-schemas", "subscriptions", "billing-history", "inventory-reservations", "inventory-adjustments", "commerce-notification-intents", "product-collection-items", "order-status-logs", "tenant-commerce-config", "api-keys", "personal-access-tokens", "tenant-entitlements", "tenant-purge-jobs", "direct-upload-sessions", "webhook-events", "webhook-deliveries", "audit-logs", "plans", "webhooks", "event-registrations", "customer-payment-methods", "tenant-payment-credentials"];
|
|
7
|
+
declare const INTERNAL_COLLECTIONS: readonly ["users", "payload-kv", "payload-locked-documents", "payload-preferences", "payload-migrations", "payload-folders", "field-configs", "system-media", "track-assets", "audiences", "email-logs", "api-usage", "tenant-analytics-daily", "tenant-web-analytics-config", "analytics-event-schemas", "subscriptions", "billing-history", "usage-rate-cards", "usage-invoices", "inventory-reservations", "inventory-adjustments", "payment-sessions", "payment-event-inbox", "payment-refund-attempts", "portone-payment-interactions", "commerce-notification-intents", "commerce-idempotency-records", "product-collection-items", "order-status-logs", "fulfillment-events", "tenant-commerce-config", "customer-oauth-clients", "api-keys", "personal-access-tokens", "tenant-entitlements", "tenant-purge-jobs", "direct-upload-sessions", "webhook-events", "webhook-deliveries", "webhook-outbox-deliveries", "audit-logs", "plans", "webhooks", "custom-field-definitions", "event-registrations", "event-admission-holds", "event-admission-types", "customer-payment-methods", "tenant-payment-credentials", "commerce-payment-accounts", "payment-provider-customer-aliases"];
|
|
8
|
+
type InternalCollection = (typeof INTERNAL_COLLECTIONS)[number];
|
|
13
9
|
/**
|
|
14
10
|
* Array of browser-public collection names for runtime use (e.g., Zod enum validation).
|
|
15
11
|
* This is the single source of truth for publishable-key collection discovery.
|
|
16
12
|
*/
|
|
17
|
-
declare const COLLECTIONS: readonly ["tenants", "tenant-metadata", "products", "product-variants", "product-options", "product-option-values", "product-categories", "product-tags", "product-collections", "markets", "brands", "customer-profiles", "customer-profile-stats", "discounts", "shipping-policies", "shipping-zones", "documents", "document-categories", "document-types", "articles", "article-authors", "article-categories", "article-tags", "playlists", "playlist-categories", "playlist-tags", "tracks", "track-categories", "track-tags", "galleries", "gallery-categories", "gallery-tags", "gallery-items", "links", "link-categories", "link-tags", "canvases", "canvas-node-types", "canvas-edge-types", "canvas-categories", "canvas-tags", "video-categories", "video-tags", "forms", "reaction-types", "post-categories", "post-tags", "customer-profile-lists", "event-calendars", "events", "event-categories", "event-occurrences", "event-tags", "membership-plans", "customer-memberships"];
|
|
13
|
+
declare const COLLECTIONS: readonly ["tenants", "tenant-metadata", "products", "product-variants", "product-options", "product-option-values", "product-categories", "product-tags", "product-collections", "markets", "brands", "customer-profiles", "customer-profile-stats", "discounts", "shipping-policies", "shipping-zones", "documents", "document-categories", "document-types", "articles", "article-authors", "article-categories", "article-tags", "playlists", "playlist-categories", "playlist-tags", "tracks", "track-categories", "track-tags", "galleries", "gallery-categories", "gallery-tags", "gallery-items", "links", "link-categories", "link-tags", "canvases", "canvas-node-types", "canvas-edge-types", "canvas-categories", "canvas-tags", "video-categories", "video-tags", "forms", "reaction-types", "post-categories", "post-tags", "customer-profile-lists", "event-calendars", "events", "event-categories", "event-occurrences", "event-tags", "membership-plans", "membership-plan-prices", "customer-memberships"];
|
|
18
14
|
/**
|
|
19
15
|
* Server-auth collection names for runtime use. These collections are safe for
|
|
20
16
|
* secret-key/PAT SDK and MCP server tools, but must not appear in browser or
|
|
21
17
|
* publishable-key collection discovery.
|
|
22
18
|
*/
|
|
23
|
-
declare const SERVER_ONLY_COLLECTIONS: readonly ["tenant-logos", "brand-logos", "images", "videos", "orders", "order-items", "returns", "return-items", "fulfillment-orders", "fulfillment-order-items", "fulfillments", "fulfillment-items", "transactions", "customers", "customer-addresses", "form-submissions", "carts", "cart-items", "checkouts", "checkout-items", "posts", "comments", "reactions", "bookmarks", "live-streams", "canvas-nodes", "canvas-edges", "customer-groups", "reports", "community-bans", "order-export-profiles", "membership-charges"];
|
|
19
|
+
declare const SERVER_ONLY_COLLECTIONS: readonly ["tenant-logos", "brand-logos", "images", "videos", "orders", "order-tags", "order-items", "returns", "return-items", "refunds", "refund-line-items", "order-edit-sessions", "order-staged-changes", "fulfillment-orders", "fulfillment-order-items", "fulfillments", "fulfillment-items", "transactions", "customers", "customer-addresses", "form-submissions", "carts", "cart-items", "checkouts", "checkout-items", "draft-orders", "draft-order-items", "posts", "comments", "reactions", "bookmarks", "live-streams", "canvas-nodes", "canvas-edges", "customer-groups", "reports", "community-bans", "order-export-profiles", "membership-charges"];
|
|
24
20
|
/**
|
|
25
21
|
* Browser-public collections available for publishable-key SDK access.
|
|
26
22
|
* Derived from the COLLECTIONS array (single source of truth).
|
|
27
23
|
*/
|
|
28
24
|
type PublicCollection = (typeof COLLECTIONS)[number];
|
|
29
|
-
|
|
25
|
+
type ServerOnlyCollection = (typeof SERVER_ONLY_COLLECTIONS)[number];
|
|
26
|
+
declare const SERVER_COLLECTIONS: readonly ["tenants", "tenant-metadata", "products", "product-variants", "product-options", "product-option-values", "product-categories", "product-tags", "product-collections", "markets", "brands", "customer-profiles", "customer-profile-stats", "discounts", "shipping-policies", "shipping-zones", "documents", "document-categories", "document-types", "articles", "article-authors", "article-categories", "article-tags", "playlists", "playlist-categories", "playlist-tags", "tracks", "track-categories", "track-tags", "galleries", "gallery-categories", "gallery-tags", "gallery-items", "links", "link-categories", "link-tags", "canvases", "canvas-node-types", "canvas-edge-types", "canvas-categories", "canvas-tags", "video-categories", "video-tags", "forms", "reaction-types", "post-categories", "post-tags", "customer-profile-lists", "event-calendars", "events", "event-categories", "event-occurrences", "event-tags", "membership-plans", "membership-plan-prices", "customer-memberships", "tenant-logos", "brand-logos", "images", "videos", "orders", "order-tags", "order-items", "returns", "return-items", "refunds", "refund-line-items", "order-edit-sessions", "order-staged-changes", "fulfillment-orders", "fulfillment-order-items", "fulfillments", "fulfillment-items", "transactions", "customers", "customer-addresses", "form-submissions", "carts", "cart-items", "checkouts", "checkout-items", "draft-orders", "draft-order-items", "posts", "comments", "reactions", "bookmarks", "live-streams", "canvas-nodes", "canvas-edges", "customer-groups", "reports", "community-bans", "order-export-profiles", "membership-charges"];
|
|
30
27
|
type ServerCollection = (typeof SERVER_COLLECTIONS)[number];
|
|
28
|
+
/**
|
|
29
|
+
* The published SDK collection universe is exactly the union of its three
|
|
30
|
+
* existing addressability buckets. Generated Payload Config entries may also
|
|
31
|
+
* contain Console-only collections that are intentionally outside this type.
|
|
32
|
+
*/
|
|
33
|
+
type Collection = PublicCollection | ServerOnlyCollection | InternalCollection;
|
|
31
34
|
|
|
32
35
|
export { type Collection as C, INTERNAL_COLLECTIONS as I, type PublicCollection as P, type ServerCollection as S, COLLECTIONS as a, SERVER_COLLECTIONS as b, SERVER_ONLY_COLLECTIONS as c };
|
|
@@ -1,32 +1,35 @@
|
|
|
1
|
-
import
|
|
1
|
+
import './payload-types-CJZuXcgF.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Collection type derived from Payload Config.
|
|
5
|
-
* This ensures type safety and automatic synchronization with payload-types.ts
|
|
6
|
-
*/
|
|
7
|
-
type Collection = keyof Config['collections'];
|
|
8
3
|
/**
|
|
9
4
|
* Internal collections that should not be exposed via SDK.
|
|
10
5
|
* Includes Payload system collections and admin-only collections.
|
|
11
6
|
*/
|
|
12
|
-
declare const INTERNAL_COLLECTIONS: readonly ["users", "payload-kv", "payload-locked-documents", "payload-preferences", "payload-migrations", "payload-folders", "field-configs", "system-media", "track-assets", "audiences", "email-logs", "api-usage", "tenant-analytics-daily", "tenant-web-analytics-config", "analytics-event-schemas", "subscriptions", "billing-history", "inventory-reservations", "inventory-adjustments", "commerce-notification-intents", "product-collection-items", "order-status-logs", "tenant-commerce-config", "api-keys", "personal-access-tokens", "tenant-entitlements", "tenant-purge-jobs", "direct-upload-sessions", "webhook-events", "webhook-deliveries", "audit-logs", "plans", "webhooks", "event-registrations", "customer-payment-methods", "tenant-payment-credentials"];
|
|
7
|
+
declare const INTERNAL_COLLECTIONS: readonly ["users", "payload-kv", "payload-locked-documents", "payload-preferences", "payload-migrations", "payload-folders", "field-configs", "system-media", "track-assets", "audiences", "email-logs", "api-usage", "tenant-analytics-daily", "tenant-web-analytics-config", "analytics-event-schemas", "subscriptions", "billing-history", "usage-rate-cards", "usage-invoices", "inventory-reservations", "inventory-adjustments", "payment-sessions", "payment-event-inbox", "payment-refund-attempts", "portone-payment-interactions", "commerce-notification-intents", "commerce-idempotency-records", "product-collection-items", "order-status-logs", "fulfillment-events", "tenant-commerce-config", "customer-oauth-clients", "api-keys", "personal-access-tokens", "tenant-entitlements", "tenant-purge-jobs", "direct-upload-sessions", "webhook-events", "webhook-deliveries", "webhook-outbox-deliveries", "audit-logs", "plans", "webhooks", "custom-field-definitions", "event-registrations", "event-admission-holds", "event-admission-types", "customer-payment-methods", "tenant-payment-credentials", "commerce-payment-accounts", "payment-provider-customer-aliases"];
|
|
8
|
+
type InternalCollection = (typeof INTERNAL_COLLECTIONS)[number];
|
|
13
9
|
/**
|
|
14
10
|
* Array of browser-public collection names for runtime use (e.g., Zod enum validation).
|
|
15
11
|
* This is the single source of truth for publishable-key collection discovery.
|
|
16
12
|
*/
|
|
17
|
-
declare const COLLECTIONS: readonly ["tenants", "tenant-metadata", "products", "product-variants", "product-options", "product-option-values", "product-categories", "product-tags", "product-collections", "markets", "brands", "customer-profiles", "customer-profile-stats", "discounts", "shipping-policies", "shipping-zones", "documents", "document-categories", "document-types", "articles", "article-authors", "article-categories", "article-tags", "playlists", "playlist-categories", "playlist-tags", "tracks", "track-categories", "track-tags", "galleries", "gallery-categories", "gallery-tags", "gallery-items", "links", "link-categories", "link-tags", "canvases", "canvas-node-types", "canvas-edge-types", "canvas-categories", "canvas-tags", "video-categories", "video-tags", "forms", "reaction-types", "post-categories", "post-tags", "customer-profile-lists", "event-calendars", "events", "event-categories", "event-occurrences", "event-tags", "membership-plans", "customer-memberships"];
|
|
13
|
+
declare const COLLECTIONS: readonly ["tenants", "tenant-metadata", "products", "product-variants", "product-options", "product-option-values", "product-categories", "product-tags", "product-collections", "markets", "brands", "customer-profiles", "customer-profile-stats", "discounts", "shipping-policies", "shipping-zones", "documents", "document-categories", "document-types", "articles", "article-authors", "article-categories", "article-tags", "playlists", "playlist-categories", "playlist-tags", "tracks", "track-categories", "track-tags", "galleries", "gallery-categories", "gallery-tags", "gallery-items", "links", "link-categories", "link-tags", "canvases", "canvas-node-types", "canvas-edge-types", "canvas-categories", "canvas-tags", "video-categories", "video-tags", "forms", "reaction-types", "post-categories", "post-tags", "customer-profile-lists", "event-calendars", "events", "event-categories", "event-occurrences", "event-tags", "membership-plans", "membership-plan-prices", "customer-memberships"];
|
|
18
14
|
/**
|
|
19
15
|
* Server-auth collection names for runtime use. These collections are safe for
|
|
20
16
|
* secret-key/PAT SDK and MCP server tools, but must not appear in browser or
|
|
21
17
|
* publishable-key collection discovery.
|
|
22
18
|
*/
|
|
23
|
-
declare const SERVER_ONLY_COLLECTIONS: readonly ["tenant-logos", "brand-logos", "images", "videos", "orders", "order-items", "returns", "return-items", "fulfillment-orders", "fulfillment-order-items", "fulfillments", "fulfillment-items", "transactions", "customers", "customer-addresses", "form-submissions", "carts", "cart-items", "checkouts", "checkout-items", "posts", "comments", "reactions", "bookmarks", "live-streams", "canvas-nodes", "canvas-edges", "customer-groups", "reports", "community-bans", "order-export-profiles", "membership-charges"];
|
|
19
|
+
declare const SERVER_ONLY_COLLECTIONS: readonly ["tenant-logos", "brand-logos", "images", "videos", "orders", "order-tags", "order-items", "returns", "return-items", "refunds", "refund-line-items", "order-edit-sessions", "order-staged-changes", "fulfillment-orders", "fulfillment-order-items", "fulfillments", "fulfillment-items", "transactions", "customers", "customer-addresses", "form-submissions", "carts", "cart-items", "checkouts", "checkout-items", "draft-orders", "draft-order-items", "posts", "comments", "reactions", "bookmarks", "live-streams", "canvas-nodes", "canvas-edges", "customer-groups", "reports", "community-bans", "order-export-profiles", "membership-charges"];
|
|
24
20
|
/**
|
|
25
21
|
* Browser-public collections available for publishable-key SDK access.
|
|
26
22
|
* Derived from the COLLECTIONS array (single source of truth).
|
|
27
23
|
*/
|
|
28
24
|
type PublicCollection = (typeof COLLECTIONS)[number];
|
|
29
|
-
|
|
25
|
+
type ServerOnlyCollection = (typeof SERVER_ONLY_COLLECTIONS)[number];
|
|
26
|
+
declare const SERVER_COLLECTIONS: readonly ["tenants", "tenant-metadata", "products", "product-variants", "product-options", "product-option-values", "product-categories", "product-tags", "product-collections", "markets", "brands", "customer-profiles", "customer-profile-stats", "discounts", "shipping-policies", "shipping-zones", "documents", "document-categories", "document-types", "articles", "article-authors", "article-categories", "article-tags", "playlists", "playlist-categories", "playlist-tags", "tracks", "track-categories", "track-tags", "galleries", "gallery-categories", "gallery-tags", "gallery-items", "links", "link-categories", "link-tags", "canvases", "canvas-node-types", "canvas-edge-types", "canvas-categories", "canvas-tags", "video-categories", "video-tags", "forms", "reaction-types", "post-categories", "post-tags", "customer-profile-lists", "event-calendars", "events", "event-categories", "event-occurrences", "event-tags", "membership-plans", "membership-plan-prices", "customer-memberships", "tenant-logos", "brand-logos", "images", "videos", "orders", "order-tags", "order-items", "returns", "return-items", "refunds", "refund-line-items", "order-edit-sessions", "order-staged-changes", "fulfillment-orders", "fulfillment-order-items", "fulfillments", "fulfillment-items", "transactions", "customers", "customer-addresses", "form-submissions", "carts", "cart-items", "checkouts", "checkout-items", "draft-orders", "draft-order-items", "posts", "comments", "reactions", "bookmarks", "live-streams", "canvas-nodes", "canvas-edges", "customer-groups", "reports", "community-bans", "order-export-profiles", "membership-charges"];
|
|
30
27
|
type ServerCollection = (typeof SERVER_COLLECTIONS)[number];
|
|
28
|
+
/**
|
|
29
|
+
* The published SDK collection universe is exactly the union of its three
|
|
30
|
+
* existing addressability buckets. Generated Payload Config entries may also
|
|
31
|
+
* contain Console-only collections that are intentionally outside this type.
|
|
32
|
+
*/
|
|
33
|
+
type Collection = PublicCollection | ServerOnlyCollection | InternalCollection;
|
|
31
34
|
|
|
32
35
|
export { type Collection as C, INTERNAL_COLLECTIONS as I, type PublicCollection as P, type ServerCollection as S, COLLECTIONS as a, SERVER_COLLECTIONS as b, SERVER_ONLY_COLLECTIONS as c };
|
package/dist/errors.cjs
CHANGED
|
@@ -22,6 +22,7 @@ var errors_exports = {};
|
|
|
22
22
|
__export(errors_exports, {
|
|
23
23
|
ApiError: () => ApiError,
|
|
24
24
|
AuthError: () => AuthError,
|
|
25
|
+
COMMERCE_ERROR_CODES: () => COMMERCE_ERROR_CODES,
|
|
25
26
|
ConfigError: () => ConfigError,
|
|
26
27
|
ConflictError: () => ConflictError,
|
|
27
28
|
GoneError: () => GoneError,
|
|
@@ -49,6 +50,7 @@ __export(errors_exports, {
|
|
|
49
50
|
createValidationError: () => createValidationError,
|
|
50
51
|
isApiError: () => isApiError,
|
|
51
52
|
isAuthError: () => isAuthError,
|
|
53
|
+
isCommerceSDKError: () => isCommerceSDKError,
|
|
52
54
|
isConfigError: () => isConfigError,
|
|
53
55
|
isConflictError: () => isConflictError,
|
|
54
56
|
isGoneError: () => isGoneError,
|
|
@@ -91,10 +93,81 @@ var SDKError = class extends Error {
|
|
|
91
93
|
details: this.details,
|
|
92
94
|
userMessage: this.userMessage,
|
|
93
95
|
suggestion: this.suggestion,
|
|
94
|
-
...this.requestId !== void 0 && { requestId: this.requestId }
|
|
96
|
+
...this.requestId !== void 0 && { requestId: this.requestId },
|
|
97
|
+
...this.kind !== void 0 && { kind: this.kind },
|
|
98
|
+
...this.reason !== void 0 && { reason: this.reason },
|
|
99
|
+
...this.rawReason !== void 0 && { rawReason: this.rawReason },
|
|
100
|
+
...this.retryable !== void 0 && { retryable: this.retryable },
|
|
101
|
+
...this.retryAfter !== void 0 && { retryAfter: this.retryAfter }
|
|
95
102
|
};
|
|
96
103
|
}
|
|
97
104
|
};
|
|
105
|
+
var COMMERCE_ERROR_CODES = [
|
|
106
|
+
"validation_failed",
|
|
107
|
+
"unauthorized",
|
|
108
|
+
"forbidden",
|
|
109
|
+
"token_expired",
|
|
110
|
+
"origin_not_allowed",
|
|
111
|
+
"server_credentials_required",
|
|
112
|
+
"not_found",
|
|
113
|
+
"conflict",
|
|
114
|
+
"cart_revision_conflict",
|
|
115
|
+
"rate_limit_exceeded",
|
|
116
|
+
"usage_limit_exceeded",
|
|
117
|
+
"service_unavailable",
|
|
118
|
+
"idempotency_conflict",
|
|
119
|
+
"idempotency_in_progress",
|
|
120
|
+
"cart_not_active",
|
|
121
|
+
"cart_locked",
|
|
122
|
+
"cart_empty",
|
|
123
|
+
"cart_market_unavailable",
|
|
124
|
+
"cart_market_mismatch",
|
|
125
|
+
"checkout_not_open",
|
|
126
|
+
"payment_slot_held",
|
|
127
|
+
"reservation_expired",
|
|
128
|
+
"payment_session_not_cancelable",
|
|
129
|
+
"provider_identity_mismatch",
|
|
130
|
+
"provider_unavailable",
|
|
131
|
+
"lock_timeout",
|
|
132
|
+
"price_changed",
|
|
133
|
+
"pricing_fact_in_use",
|
|
134
|
+
"insufficient_stock",
|
|
135
|
+
"market_not_found",
|
|
136
|
+
"market_shipping_currency_unsupported",
|
|
137
|
+
"missing_market_rate",
|
|
138
|
+
"missing_shipping_amount",
|
|
139
|
+
"no_enabled_payment_provider",
|
|
140
|
+
"product_market_unavailable",
|
|
141
|
+
"unsupported_currency",
|
|
142
|
+
"missing_price_row",
|
|
143
|
+
"payment_provider_currency_unsupported",
|
|
144
|
+
"discount_code_not_found",
|
|
145
|
+
"discount_not_started",
|
|
146
|
+
"discount_expired",
|
|
147
|
+
"discount_usage_limit",
|
|
148
|
+
"discount_per_customer_limit",
|
|
149
|
+
"discount_customer_required",
|
|
150
|
+
"discount_first_order_only",
|
|
151
|
+
"discount_customer_not_eligible",
|
|
152
|
+
"discount_customer_excluded",
|
|
153
|
+
"discount_items_required",
|
|
154
|
+
"discount_product_not_eligible",
|
|
155
|
+
"discount_product_excluded",
|
|
156
|
+
"discount_min_order_amount",
|
|
157
|
+
"discount_currency_scope_required",
|
|
158
|
+
"discount_allocation_method_unsupported",
|
|
159
|
+
"currency_mismatch"
|
|
160
|
+
];
|
|
161
|
+
var COMMERCE_ERROR_CODE_SET = new Set(
|
|
162
|
+
COMMERCE_ERROR_CODES
|
|
163
|
+
);
|
|
164
|
+
function isCommerceSDKError(error) {
|
|
165
|
+
if (!(error instanceof SDKError) || error.kind !== "commerce") return false;
|
|
166
|
+
if (typeof error.requestId !== "string" || typeof error.retryable !== "boolean" || error.retryAfter !== void 0 && (!Number.isSafeInteger(error.retryAfter) || error.retryAfter < 0) || typeof error.reason !== "string") {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
return error.reason === "unknown_commerce_error" ? typeof error.rawReason === "string" : COMMERCE_ERROR_CODE_SET.has(error.reason) && error.rawReason === void 0;
|
|
170
|
+
}
|
|
98
171
|
var NetworkError = class extends SDKError {
|
|
99
172
|
constructor(message, status, details, userMessage, suggestion) {
|
|
100
173
|
super("NETWORK_ERROR", message, status, details, userMessage, suggestion);
|
package/dist/errors.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/core/errors.ts"],"sourcesContent":["export {\n SDKError,\n NetworkError,\n ValidationError,\n ApiError,\n ConfigError,\n TimeoutError,\n GoneError,\n ServiceUnavailableError,\n UsageLimitError,\n AuthError,\n PermissionError,\n NotFoundError,\n ConflictError,\n RateLimitError,\n isSDKError,\n isNetworkError,\n isValidationError,\n isApiError,\n isConfigError,\n isTimeoutError,\n isGoneError,\n isServiceUnavailableError,\n isUsageLimitError,\n isAuthError,\n isPermissionError,\n isNotFoundError,\n isConflictError,\n isRateLimitError,\n createNetworkError,\n createValidationError,\n createApiError,\n createConfigError,\n createTimeoutError,\n createGoneError,\n createServiceUnavailableError,\n createUsageLimitError,\n createAuthError,\n createPermissionError,\n createNotFoundError,\n createConflictError,\n createRateLimitError,\n} from './core/errors'\n","export class SDKError extends Error {\n readonly code: string\n readonly status?: number\n readonly details?: unknown\n readonly userMessage?: string\n readonly suggestion?: string\n readonly requestId?: string\n\n constructor(\n code: string,\n message: string,\n status?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(message)\n this.name = 'SDKError'\n this.code = code\n this.status = status\n this.details = details\n this.userMessage = userMessage\n this.suggestion = suggestion\n this.requestId = requestId\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, new.target)\n }\n }\n\n getUserMessage(): string {\n return this.userMessage || this.message\n }\n\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n status: this.status,\n details: this.details,\n userMessage: this.userMessage,\n suggestion: this.suggestion,\n ...(this.requestId !== undefined && { requestId: this.requestId }),\n }\n }\n}\n\nexport class NetworkError extends SDKError {\n constructor(\n message: string,\n status?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('NETWORK_ERROR', message, status, details, userMessage, suggestion)\n this.name = 'NetworkError'\n }\n}\n\nexport class ValidationError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n status = 400,\n ) {\n super('VALIDATION_ERROR', message, status, details, userMessage, suggestion)\n this.name = 'ValidationError'\n }\n}\n\nexport class ApiError extends SDKError {\n constructor(\n message: string,\n status: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'API_ERROR',\n message,\n status,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'ApiError'\n }\n}\n\nexport class ConfigError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('CONFIG_ERROR', message, undefined, details, userMessage, suggestion)\n this.name = 'ConfigError'\n }\n}\n\nexport class TimeoutError extends SDKError {\n constructor(\n message = 'Request timed out.',\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('TIMEOUT_ERROR', message, 408, details, userMessage, suggestion)\n this.name = 'TimeoutError'\n }\n}\n\nexport class GoneError extends SDKError {\n constructor(\n message = 'The requested resource is no longer available.',\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('GONE_ERROR', message, 410, details, userMessage, suggestion)\n this.name = 'GoneError'\n }\n}\n\nexport class ServiceUnavailableError extends SDKError {\n readonly retryAfter?: number\n\n constructor(\n message = 'Service temporarily unavailable.',\n retryAfter?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super(\n 'SERVICE_UNAVAILABLE_ERROR',\n message,\n 503,\n details,\n userMessage,\n suggestion,\n )\n this.name = 'ServiceUnavailableError'\n this.retryAfter = retryAfter\n }\n}\n\nexport class UsageLimitError extends SDKError {\n readonly usage: { limit: number; current: number; remaining: number }\n\n constructor(\n message: string,\n usage: { limit: number; current: number; remaining: number },\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('USAGE_LIMIT_ERROR', message, 429, details, userMessage, suggestion)\n this.name = 'UsageLimitError'\n this.usage = usage\n }\n\n toJSON() {\n return {\n ...super.toJSON(),\n usage: this.usage,\n }\n }\n}\n\nexport class AuthError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'auth_error',\n message,\n 401,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'AuthError'\n }\n}\n\nexport class PermissionError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'permission_error',\n message,\n 403,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'PermissionError'\n }\n}\n\nexport class NotFoundError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'not_found',\n message,\n 404,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'NotFoundError'\n }\n}\n\nexport class ConflictError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super('conflict', message, 409, details, userMessage, suggestion, requestId)\n this.name = 'ConflictError'\n }\n}\n\nexport class RateLimitError extends SDKError {\n readonly retryAfter?: number\n\n constructor(\n message: string,\n retryAfter?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'rate_limit_exceeded',\n message,\n 429,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'RateLimitError'\n this.retryAfter = retryAfter\n }\n}\n\nexport function isSDKError(error: unknown): error is SDKError {\n return error instanceof SDKError\n}\n\nexport function isNetworkError(error: unknown): error is NetworkError {\n return error instanceof NetworkError\n}\n\nexport function isValidationError(error: unknown): error is ValidationError {\n if (error instanceof ValidationError) return true\n if (error == null || typeof error !== 'object') return false\n\n const candidate = error as {\n code?: unknown\n name?: unknown\n message?: unknown\n getUserMessage?: unknown\n toJSON?: unknown\n }\n return (\n candidate.name === 'ValidationError' &&\n candidate.code === 'VALIDATION_ERROR' &&\n typeof candidate.message === 'string' &&\n typeof candidate.getUserMessage === 'function' &&\n typeof candidate.toJSON === 'function'\n )\n}\n\nexport function isApiError(error: unknown): error is ApiError {\n return error instanceof ApiError\n}\n\nexport function isConfigError(error: unknown): error is ConfigError {\n return error instanceof ConfigError\n}\n\nexport function isTimeoutError(error: unknown): error is TimeoutError {\n return error instanceof TimeoutError\n}\n\nexport function isGoneError(error: unknown): error is GoneError {\n return error instanceof GoneError\n}\n\nexport function isServiceUnavailableError(\n error: unknown,\n): error is ServiceUnavailableError {\n return error instanceof ServiceUnavailableError\n}\n\nexport function isUsageLimitError(error: unknown): error is UsageLimitError {\n return error instanceof UsageLimitError\n}\n\nexport function isAuthError(error: unknown): error is AuthError {\n return error instanceof AuthError\n}\n\nexport function isPermissionError(error: unknown): error is PermissionError {\n return error instanceof PermissionError\n}\n\nexport function isNotFoundError(error: unknown): error is NotFoundError {\n return error instanceof NotFoundError\n}\n\nexport function isConflictError(error: unknown): error is ConflictError {\n return error instanceof ConflictError\n}\n\nexport function isRateLimitError(error: unknown): error is RateLimitError {\n return error instanceof RateLimitError\n}\n\nexport const createNetworkError = (\n message: string,\n status?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new NetworkError(message, status, details, userMessage, suggestion)\n\nexport const createValidationError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n status?: number,\n) => new ValidationError(message, details, userMessage, suggestion, status)\n\nexport const createApiError = (\n message: string,\n status: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new ApiError(message, status, details, userMessage, suggestion, requestId)\n\nexport const createConfigError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new ConfigError(message, details, userMessage, suggestion)\n\nexport const createTimeoutError = (\n message?: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new TimeoutError(message, details, userMessage, suggestion)\n\nexport const createGoneError = (\n message?: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new GoneError(message, details, userMessage, suggestion)\n\nexport const createServiceUnavailableError = (\n message?: string,\n retryAfter?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) =>\n new ServiceUnavailableError(\n message,\n retryAfter,\n details,\n userMessage,\n suggestion,\n )\n\nexport const createUsageLimitError = (\n message: string,\n usage: { limit: number; current: number; remaining: number },\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new UsageLimitError(message, usage, details, userMessage, suggestion)\n\nexport const createAuthError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new AuthError(message, details, userMessage, suggestion, requestId)\n\nexport const createPermissionError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new PermissionError(message, details, userMessage, suggestion, requestId)\n\nexport const createNotFoundError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new NotFoundError(message, details, userMessage, suggestion, requestId)\n\nexport const createConflictError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new ConflictError(message, details, userMessage, suggestion, requestId)\n\nexport const createRateLimitError = (\n message: string,\n retryAfter?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) =>\n new RateLimitError(\n message,\n retryAfter,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/core/errors.ts"],"sourcesContent":["export {\n SDKError,\n NetworkError,\n ValidationError,\n ApiError,\n ConfigError,\n TimeoutError,\n GoneError,\n ServiceUnavailableError,\n UsageLimitError,\n AuthError,\n PermissionError,\n NotFoundError,\n ConflictError,\n RateLimitError,\n COMMERCE_ERROR_CODES,\n type CommerceErrorCode,\n type CommerceSDKError,\n isSDKError,\n isNetworkError,\n isValidationError,\n isApiError,\n isConfigError,\n isTimeoutError,\n isGoneError,\n isServiceUnavailableError,\n isUsageLimitError,\n isAuthError,\n isPermissionError,\n isNotFoundError,\n isConflictError,\n isRateLimitError,\n isCommerceSDKError,\n createNetworkError,\n createValidationError,\n createApiError,\n createConfigError,\n createTimeoutError,\n createGoneError,\n createServiceUnavailableError,\n createUsageLimitError,\n createAuthError,\n createPermissionError,\n createNotFoundError,\n createConflictError,\n createRateLimitError,\n} from './core/errors'\n","export class SDKError extends Error {\n readonly code: string\n readonly status?: number\n readonly details?: unknown\n readonly userMessage?: string\n readonly suggestion?: string\n readonly requestId?: string\n readonly kind?: 'commerce'\n readonly reason?: CommerceErrorCode | 'unknown_commerce_error'\n readonly rawReason?: string\n readonly retryable?: boolean\n readonly retryAfter?: number\n\n constructor(\n code: string,\n message: string,\n status?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(message)\n this.name = 'SDKError'\n this.code = code\n this.status = status\n this.details = details\n this.userMessage = userMessage\n this.suggestion = suggestion\n this.requestId = requestId\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, new.target)\n }\n }\n\n getUserMessage(): string {\n return this.userMessage || this.message\n }\n\n toJSON() {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n status: this.status,\n details: this.details,\n userMessage: this.userMessage,\n suggestion: this.suggestion,\n ...(this.requestId !== undefined && { requestId: this.requestId }),\n ...(this.kind !== undefined && { kind: this.kind }),\n ...(this.reason !== undefined && { reason: this.reason }),\n ...(this.rawReason !== undefined && { rawReason: this.rawReason }),\n ...(this.retryable !== undefined && { retryable: this.retryable }),\n ...(this.retryAfter !== undefined && { retryAfter: this.retryAfter }),\n }\n }\n}\n\n/**\n * Canonical Cart/Checkout/PaymentSession error reasons. This public SDK mirror\n * intentionally does not import the private contracts package; parity is\n * enforced by a type test.\n */\nexport const COMMERCE_ERROR_CODES = [\n 'validation_failed',\n 'unauthorized',\n 'forbidden',\n 'token_expired',\n 'origin_not_allowed',\n 'server_credentials_required',\n 'not_found',\n 'conflict',\n 'cart_revision_conflict',\n 'rate_limit_exceeded',\n 'usage_limit_exceeded',\n 'service_unavailable',\n 'idempotency_conflict',\n 'idempotency_in_progress',\n 'cart_not_active',\n 'cart_locked',\n 'cart_empty',\n 'cart_market_unavailable',\n 'cart_market_mismatch',\n 'checkout_not_open',\n 'payment_slot_held',\n 'reservation_expired',\n 'payment_session_not_cancelable',\n 'provider_identity_mismatch',\n 'provider_unavailable',\n 'lock_timeout',\n 'price_changed',\n 'pricing_fact_in_use',\n 'insufficient_stock',\n 'market_not_found',\n 'market_shipping_currency_unsupported',\n 'missing_market_rate',\n 'missing_shipping_amount',\n 'no_enabled_payment_provider',\n 'product_market_unavailable',\n 'unsupported_currency',\n 'missing_price_row',\n 'payment_provider_currency_unsupported',\n 'discount_code_not_found',\n 'discount_not_started',\n 'discount_expired',\n 'discount_usage_limit',\n 'discount_per_customer_limit',\n 'discount_customer_required',\n 'discount_first_order_only',\n 'discount_customer_not_eligible',\n 'discount_customer_excluded',\n 'discount_items_required',\n 'discount_product_not_eligible',\n 'discount_product_excluded',\n 'discount_min_order_amount',\n 'discount_currency_scope_required',\n 'discount_allocation_method_unsupported',\n 'currency_mismatch',\n] as const\n\nexport type CommerceErrorCode = (typeof COMMERCE_ERROR_CODES)[number]\n\ntype CommerceSDKErrorBase = SDKError & {\n readonly kind: 'commerce'\n readonly requestId: string\n readonly retryable: boolean\n readonly retryAfter?: number\n readonly details?: Record<string, unknown>\n}\n\nexport type CommerceSDKError = CommerceSDKErrorBase &\n (\n | { readonly reason: CommerceErrorCode; readonly rawReason?: never }\n | {\n readonly reason: 'unknown_commerce_error'\n readonly rawReason: string\n }\n )\n\nconst COMMERCE_ERROR_CODE_SET: ReadonlySet<string> = new Set(\n COMMERCE_ERROR_CODES,\n)\nconst COMMERCE_ERROR_ENVELOPE_KEYS = new Set([\n 'error',\n 'reason',\n 'requestId',\n 'retryable',\n 'details',\n])\n\nfunction isPlainRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nexport type CommerceErrorEnvelope = {\n error: string\n reason: string\n requestId: string\n retryable: boolean\n details?: Record<string, unknown>\n}\n\nfunction commerceProtocolError(\n issue: string,\n trustedRequestId?: string,\n): SDKError {\n return createApiError(\n 'Invalid canonical commerce error response.',\n 502,\n { protocol: 'commerce-error-envelope', issue },\n 'The server returned an incompatible commerce error response.',\n 'Verify that the Console commerce contract is deployed before using this SDK version.',\n trustedRequestId,\n )\n}\n\n/** @internal Strictly parse a canonical commerce error without retaining its raw body. */\nexport function parseCommerceErrorEnvelope(\n body: unknown,\n headerRequestId?: string,\n): CommerceErrorEnvelope {\n if (!isPlainRecord(body)) {\n throw commerceProtocolError('expected_object', headerRequestId)\n }\n if (Object.keys(body).some((key) => !COMMERCE_ERROR_ENVELOPE_KEYS.has(key))) {\n throw commerceProtocolError('unexpected_field', headerRequestId)\n }\n if (\n typeof body.error !== 'string' ||\n body.error.length === 0 ||\n typeof body.reason !== 'string' ||\n body.reason.length === 0 ||\n typeof body.requestId !== 'string' ||\n body.requestId.length === 0 ||\n (body.retryable !== undefined && typeof body.retryable !== 'boolean') ||\n (body.details !== undefined && !isPlainRecord(body.details))\n ) {\n throw commerceProtocolError('invalid_field', headerRequestId)\n }\n\n if (headerRequestId && headerRequestId !== body.requestId) {\n throw commerceProtocolError('request_id_mismatch', headerRequestId)\n }\n\n return {\n error: body.error,\n reason: body.reason,\n requestId: body.requestId,\n retryable: body.retryable === true,\n ...(body.details === undefined ? {} : { details: body.details }),\n }\n}\n\n/** @internal Validate and apply the canonical commerce error envelope. */\nexport function enhanceCommerceError(\n error: SDKError,\n body: unknown,\n headerRequestId?: string,\n): SDKError {\n const envelope = parseCommerceErrorEnvelope(body, headerRequestId)\n\n const known = COMMERCE_ERROR_CODE_SET.has(envelope.reason)\n Object.assign(error, {\n code: envelope.reason,\n kind: 'commerce' as const,\n reason: known\n ? (envelope.reason as CommerceErrorCode)\n : 'unknown_commerce_error',\n ...(known ? {} : { rawReason: envelope.reason }),\n requestId: envelope.requestId,\n retryable: envelope.retryable,\n details: envelope.details,\n })\n return error\n}\n\nexport function isCommerceSDKError(error: unknown): error is CommerceSDKError {\n if (!(error instanceof SDKError) || error.kind !== 'commerce') return false\n if (\n typeof error.requestId !== 'string' ||\n typeof error.retryable !== 'boolean' ||\n (error.retryAfter !== undefined &&\n (!Number.isSafeInteger(error.retryAfter) || error.retryAfter < 0)) ||\n typeof error.reason !== 'string'\n ) {\n return false\n }\n return error.reason === 'unknown_commerce_error'\n ? typeof error.rawReason === 'string'\n : COMMERCE_ERROR_CODE_SET.has(error.reason) && error.rawReason === undefined\n}\n\nexport class NetworkError extends SDKError {\n constructor(\n message: string,\n status?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('NETWORK_ERROR', message, status, details, userMessage, suggestion)\n this.name = 'NetworkError'\n }\n}\n\nexport class ValidationError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n status = 400,\n ) {\n super('VALIDATION_ERROR', message, status, details, userMessage, suggestion)\n this.name = 'ValidationError'\n }\n}\n\nexport class ApiError extends SDKError {\n constructor(\n message: string,\n status: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'API_ERROR',\n message,\n status,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'ApiError'\n }\n}\n\nexport class ConfigError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('CONFIG_ERROR', message, undefined, details, userMessage, suggestion)\n this.name = 'ConfigError'\n }\n}\n\nexport class TimeoutError extends SDKError {\n constructor(\n message = 'Request timed out.',\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('TIMEOUT_ERROR', message, 408, details, userMessage, suggestion)\n this.name = 'TimeoutError'\n }\n}\n\nexport class GoneError extends SDKError {\n constructor(\n message = 'The requested resource is no longer available.',\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('GONE_ERROR', message, 410, details, userMessage, suggestion)\n this.name = 'GoneError'\n }\n}\n\nexport class ServiceUnavailableError extends SDKError {\n readonly retryAfter?: number\n\n constructor(\n message = 'Service temporarily unavailable.',\n retryAfter?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super(\n 'SERVICE_UNAVAILABLE_ERROR',\n message,\n 503,\n details,\n userMessage,\n suggestion,\n )\n this.name = 'ServiceUnavailableError'\n this.retryAfter = retryAfter\n }\n}\n\nexport class UsageLimitError extends SDKError {\n readonly usage: { limit: number; current: number; remaining: number }\n\n constructor(\n message: string,\n usage: { limit: number; current: number; remaining: number },\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n ) {\n super('USAGE_LIMIT_ERROR', message, 429, details, userMessage, suggestion)\n this.name = 'UsageLimitError'\n this.usage = usage\n }\n\n toJSON() {\n return {\n ...super.toJSON(),\n usage: this.usage,\n }\n }\n}\n\nexport class AuthError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'auth_error',\n message,\n 401,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'AuthError'\n }\n}\n\nexport class PermissionError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'permission_error',\n message,\n 403,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'PermissionError'\n }\n}\n\nexport class NotFoundError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'not_found',\n message,\n 404,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'NotFoundError'\n }\n}\n\nexport class ConflictError extends SDKError {\n constructor(\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super('conflict', message, 409, details, userMessage, suggestion, requestId)\n this.name = 'ConflictError'\n }\n}\n\nexport class RateLimitError extends SDKError {\n readonly retryAfter?: number\n\n constructor(\n message: string,\n retryAfter?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n ) {\n super(\n 'rate_limit_exceeded',\n message,\n 429,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n this.name = 'RateLimitError'\n this.retryAfter = retryAfter\n }\n}\n\nexport function isSDKError(error: unknown): error is SDKError {\n return error instanceof SDKError\n}\n\nexport function isNetworkError(error: unknown): error is NetworkError {\n return error instanceof NetworkError\n}\n\nexport function isValidationError(error: unknown): error is ValidationError {\n if (error instanceof ValidationError) return true\n if (error == null || typeof error !== 'object') return false\n\n const candidate = error as {\n code?: unknown\n name?: unknown\n message?: unknown\n getUserMessage?: unknown\n toJSON?: unknown\n }\n return (\n candidate.name === 'ValidationError' &&\n candidate.code === 'VALIDATION_ERROR' &&\n typeof candidate.message === 'string' &&\n typeof candidate.getUserMessage === 'function' &&\n typeof candidate.toJSON === 'function'\n )\n}\n\nexport function isApiError(error: unknown): error is ApiError {\n return error instanceof ApiError\n}\n\nexport function isConfigError(error: unknown): error is ConfigError {\n return error instanceof ConfigError\n}\n\nexport function isTimeoutError(error: unknown): error is TimeoutError {\n return error instanceof TimeoutError\n}\n\nexport function isGoneError(error: unknown): error is GoneError {\n return error instanceof GoneError\n}\n\nexport function isServiceUnavailableError(\n error: unknown,\n): error is ServiceUnavailableError {\n return error instanceof ServiceUnavailableError\n}\n\nexport function isUsageLimitError(error: unknown): error is UsageLimitError {\n return error instanceof UsageLimitError\n}\n\nexport function isAuthError(error: unknown): error is AuthError {\n return error instanceof AuthError\n}\n\nexport function isPermissionError(error: unknown): error is PermissionError {\n return error instanceof PermissionError\n}\n\nexport function isNotFoundError(error: unknown): error is NotFoundError {\n return error instanceof NotFoundError\n}\n\nexport function isConflictError(error: unknown): error is ConflictError {\n return error instanceof ConflictError\n}\n\nexport function isRateLimitError(error: unknown): error is RateLimitError {\n return error instanceof RateLimitError\n}\n\nexport const createNetworkError = (\n message: string,\n status?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new NetworkError(message, status, details, userMessage, suggestion)\n\nexport const createValidationError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n status?: number,\n) => new ValidationError(message, details, userMessage, suggestion, status)\n\nexport const createApiError = (\n message: string,\n status: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new ApiError(message, status, details, userMessage, suggestion, requestId)\n\nexport const createConfigError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new ConfigError(message, details, userMessage, suggestion)\n\nexport const createTimeoutError = (\n message?: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new TimeoutError(message, details, userMessage, suggestion)\n\nexport const createGoneError = (\n message?: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new GoneError(message, details, userMessage, suggestion)\n\nexport const createServiceUnavailableError = (\n message?: string,\n retryAfter?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) =>\n new ServiceUnavailableError(\n message,\n retryAfter,\n details,\n userMessage,\n suggestion,\n )\n\nexport const createUsageLimitError = (\n message: string,\n usage: { limit: number; current: number; remaining: number },\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n) => new UsageLimitError(message, usage, details, userMessage, suggestion)\n\nexport const createAuthError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new AuthError(message, details, userMessage, suggestion, requestId)\n\nexport const createPermissionError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new PermissionError(message, details, userMessage, suggestion, requestId)\n\nexport const createNotFoundError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new NotFoundError(message, details, userMessage, suggestion, requestId)\n\nexport const createConflictError = (\n message: string,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) => new ConflictError(message, details, userMessage, suggestion, requestId)\n\nexport const createRateLimitError = (\n message: string,\n retryAfter?: number,\n details?: unknown,\n userMessage?: string,\n suggestion?: string,\n requestId?: string,\n) =>\n new RateLimitError(\n message,\n retryAfter,\n details,\n userMessage,\n suggestion,\n requestId,\n )\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,WAAN,cAAuB,MAAM;AAAA,EAalC,YACE,MACA,SACA,QACA,SACA,aACA,YACA,WACA;AACA,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,SAAS;AACd,SAAK,UAAU;AACf,SAAK,cAAc;AACnB,SAAK,aAAa;AAClB,SAAK,YAAY;AAEjB,QAAI,MAAM,mBAAmB;AAC3B,YAAM,kBAAkB,MAAM,UAAU;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,iBAAyB;AACvB,WAAO,KAAK,eAAe,KAAK;AAAA,EAClC;AAAA,EAEA,SAAS;AACP,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,QAAQ,KAAK;AAAA,MACb,SAAS,KAAK;AAAA,MACd,aAAa,KAAK;AAAA,MAClB,YAAY,KAAK;AAAA,MACjB,GAAI,KAAK,cAAc,UAAa,EAAE,WAAW,KAAK,UAAU;AAAA,MAChE,GAAI,KAAK,SAAS,UAAa,EAAE,MAAM,KAAK,KAAK;AAAA,MACjD,GAAI,KAAK,WAAW,UAAa,EAAE,QAAQ,KAAK,OAAO;AAAA,MACvD,GAAI,KAAK,cAAc,UAAa,EAAE,WAAW,KAAK,UAAU;AAAA,MAChE,GAAI,KAAK,cAAc,UAAa,EAAE,WAAW,KAAK,UAAU;AAAA,MAChE,GAAI,KAAK,eAAe,UAAa,EAAE,YAAY,KAAK,WAAW;AAAA,IACrE;AAAA,EACF;AACF;AAOO,IAAM,uBAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAqBA,IAAM,0BAA+C,IAAI;AAAA,EACvD;AACF;AA+FO,SAAS,mBAAmB,OAA2C;AAC5E,MAAI,EAAE,iBAAiB,aAAa,MAAM,SAAS,WAAY,QAAO;AACtE,MACE,OAAO,MAAM,cAAc,YAC3B,OAAO,MAAM,cAAc,aAC1B,MAAM,eAAe,WACnB,CAAC,OAAO,cAAc,MAAM,UAAU,KAAK,MAAM,aAAa,MACjE,OAAO,MAAM,WAAW,UACxB;AACA,WAAO;AAAA,EACT;AACA,SAAO,MAAM,WAAW,2BACpB,OAAO,MAAM,cAAc,WAC3B,wBAAwB,IAAI,MAAM,MAAM,KAAK,MAAM,cAAc;AACvE;AAEO,IAAM,eAAN,cAA2B,SAAS;AAAA,EACzC,YACE,SACA,QACA,SACA,aACA,YACA;AACA,UAAM,iBAAiB,SAAS,QAAQ,SAAS,aAAa,UAAU;AACxE,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,kBAAN,cAA8B,SAAS;AAAA,EAC5C,YACE,SACA,SACA,aACA,YACA,SAAS,KACT;AACA,UAAM,oBAAoB,SAAS,QAAQ,SAAS,aAAa,UAAU;AAC3E,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,WAAN,cAAuB,SAAS;AAAA,EACrC,YACE,SACA,QACA,SACA,aACA,YACA,WACA;AACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,cAAN,cAA0B,SAAS;AAAA,EACxC,YACE,SACA,SACA,aACA,YACA;AACA,UAAM,gBAAgB,SAAS,QAAW,SAAS,aAAa,UAAU;AAC1E,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,eAAN,cAA2B,SAAS;AAAA,EACzC,YACE,UAAU,sBACV,SACA,aACA,YACA;AACA,UAAM,iBAAiB,SAAS,KAAK,SAAS,aAAa,UAAU;AACrE,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,YAAN,cAAwB,SAAS;AAAA,EACtC,YACE,UAAU,kDACV,SACA,aACA,YACA;AACA,UAAM,cAAc,SAAS,KAAK,SAAS,aAAa,UAAU;AAClE,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,0BAAN,cAAsC,SAAS;AAAA,EAGpD,YACE,UAAU,oCACV,YACA,SACA,aACA,YACA;AACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,SAAK,OAAO;AACZ,SAAK,aAAa;AAAA,EACpB;AACF;AAEO,IAAM,kBAAN,cAA8B,SAAS;AAAA,EAG5C,YACE,SACA,OACA,SACA,aACA,YACA;AACA,UAAM,qBAAqB,SAAS,KAAK,SAAS,aAAa,UAAU;AACzE,SAAK,OAAO;AACZ,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,SAAS;AACP,WAAO;AAAA,MACL,GAAG,MAAM,OAAO;AAAA,MAChB,OAAO,KAAK;AAAA,IACd;AAAA,EACF;AACF;AAEO,IAAM,YAAN,cAAwB,SAAS;AAAA,EACtC,YACE,SACA,SACA,aACA,YACA,WACA;AACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,kBAAN,cAA8B,SAAS;AAAA,EAC5C,YACE,SACA,SACA,aACA,YACA,WACA;AACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,gBAAN,cAA4B,SAAS;AAAA,EAC1C,YACE,SACA,SACA,aACA,YACA,WACA;AACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,gBAAN,cAA4B,SAAS;AAAA,EAC1C,YACE,SACA,SACA,aACA,YACA,WACA;AACA,UAAM,YAAY,SAAS,KAAK,SAAS,aAAa,YAAY,SAAS;AAC3E,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,iBAAN,cAA6B,SAAS;AAAA,EAG3C,YACE,SACA,YACA,SACA,aACA,YACA,WACA;AACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,SAAK,OAAO;AACZ,SAAK,aAAa;AAAA,EACpB;AACF;AAEO,SAAS,WAAW,OAAmC;AAC5D,SAAO,iBAAiB;AAC1B;AAEO,SAAS,eAAe,OAAuC;AACpE,SAAO,iBAAiB;AAC1B;AAEO,SAAS,kBAAkB,OAA0C;AAC1E,MAAI,iBAAiB,gBAAiB,QAAO;AAC7C,MAAI,SAAS,QAAQ,OAAO,UAAU,SAAU,QAAO;AAEvD,QAAM,YAAY;AAOlB,SACE,UAAU,SAAS,qBACnB,UAAU,SAAS,sBACnB,OAAO,UAAU,YAAY,YAC7B,OAAO,UAAU,mBAAmB,cACpC,OAAO,UAAU,WAAW;AAEhC;AAEO,SAAS,WAAW,OAAmC;AAC5D,SAAO,iBAAiB;AAC1B;AAEO,SAAS,cAAc,OAAsC;AAClE,SAAO,iBAAiB;AAC1B;AAEO,SAAS,eAAe,OAAuC;AACpE,SAAO,iBAAiB;AAC1B;AAEO,SAAS,YAAY,OAAoC;AAC9D,SAAO,iBAAiB;AAC1B;AAEO,SAAS,0BACd,OACkC;AAClC,SAAO,iBAAiB;AAC1B;AAEO,SAAS,kBAAkB,OAA0C;AAC1E,SAAO,iBAAiB;AAC1B;AAEO,SAAS,YAAY,OAAoC;AAC9D,SAAO,iBAAiB;AAC1B;AAEO,SAAS,kBAAkB,OAA0C;AAC1E,SAAO,iBAAiB;AAC1B;AAEO,SAAS,gBAAgB,OAAwC;AACtE,SAAO,iBAAiB;AAC1B;AAEO,SAAS,gBAAgB,OAAwC;AACtE,SAAO,iBAAiB;AAC1B;AAEO,SAAS,iBAAiB,OAAyC;AACxE,SAAO,iBAAiB;AAC1B;AAEO,IAAM,qBAAqB,CAChC,SACA,QACA,SACA,aACA,eACG,IAAI,aAAa,SAAS,QAAQ,SAAS,aAAa,UAAU;AAEhE,IAAM,wBAAwB,CACnC,SACA,SACA,aACA,YACA,WACG,IAAI,gBAAgB,SAAS,SAAS,aAAa,YAAY,MAAM;AAEnE,IAAM,iBAAiB,CAC5B,SACA,QACA,SACA,aACA,YACA,cACG,IAAI,SAAS,SAAS,QAAQ,SAAS,aAAa,YAAY,SAAS;AAEvE,IAAM,oBAAoB,CAC/B,SACA,SACA,aACA,eACG,IAAI,YAAY,SAAS,SAAS,aAAa,UAAU;AAEvD,IAAM,qBAAqB,CAChC,SACA,SACA,aACA,eACG,IAAI,aAAa,SAAS,SAAS,aAAa,UAAU;AAExD,IAAM,kBAAkB,CAC7B,SACA,SACA,aACA,eACG,IAAI,UAAU,SAAS,SAAS,aAAa,UAAU;AAErD,IAAM,gCAAgC,CAC3C,SACA,YACA,SACA,aACA,eAEA,IAAI;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEK,IAAM,wBAAwB,CACnC,SACA,OACA,SACA,aACA,eACG,IAAI,gBAAgB,SAAS,OAAO,SAAS,aAAa,UAAU;AAElE,IAAM,kBAAkB,CAC7B,SACA,SACA,aACA,YACA,cACG,IAAI,UAAU,SAAS,SAAS,aAAa,YAAY,SAAS;AAEhE,IAAM,wBAAwB,CACnC,SACA,SACA,aACA,YACA,cACG,IAAI,gBAAgB,SAAS,SAAS,aAAa,YAAY,SAAS;AAEtE,IAAM,sBAAsB,CACjC,SACA,SACA,aACA,YACA,cACG,IAAI,cAAc,SAAS,SAAS,aAAa,YAAY,SAAS;AAEpE,IAAM,sBAAsB,CACjC,SACA,SACA,aACA,YACA,cACG,IAAI,cAAc,SAAS,SAAS,aAAa,YAAY,SAAS;AAEpE,IAAM,uBAAuB,CAClC,SACA,YACA,SACA,aACA,YACA,cAEA,IAAI;AAAA,EACF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":[]}
|
package/dist/errors.d.cts
CHANGED
|
@@ -5,9 +5,19 @@ declare class SDKError extends Error {
|
|
|
5
5
|
readonly userMessage?: string;
|
|
6
6
|
readonly suggestion?: string;
|
|
7
7
|
readonly requestId?: string;
|
|
8
|
+
readonly kind?: 'commerce';
|
|
9
|
+
readonly reason?: CommerceErrorCode | 'unknown_commerce_error';
|
|
10
|
+
readonly rawReason?: string;
|
|
11
|
+
readonly retryable?: boolean;
|
|
12
|
+
readonly retryAfter?: number;
|
|
8
13
|
constructor(code: string, message: string, status?: number, details?: unknown, userMessage?: string, suggestion?: string, requestId?: string);
|
|
9
14
|
getUserMessage(): string;
|
|
10
15
|
toJSON(): {
|
|
16
|
+
retryAfter?: number | undefined;
|
|
17
|
+
retryable?: boolean | undefined;
|
|
18
|
+
rawReason?: string | undefined;
|
|
19
|
+
reason?: "currency_mismatch" | "validation_failed" | "unauthorized" | "forbidden" | "token_expired" | "origin_not_allowed" | "server_credentials_required" | "not_found" | "conflict" | "cart_revision_conflict" | "rate_limit_exceeded" | "usage_limit_exceeded" | "service_unavailable" | "idempotency_conflict" | "idempotency_in_progress" | "cart_not_active" | "cart_locked" | "cart_empty" | "cart_market_unavailable" | "cart_market_mismatch" | "checkout_not_open" | "payment_slot_held" | "reservation_expired" | "payment_session_not_cancelable" | "provider_identity_mismatch" | "provider_unavailable" | "lock_timeout" | "price_changed" | "pricing_fact_in_use" | "insufficient_stock" | "market_not_found" | "market_shipping_currency_unsupported" | "missing_market_rate" | "missing_shipping_amount" | "no_enabled_payment_provider" | "product_market_unavailable" | "unsupported_currency" | "missing_price_row" | "payment_provider_currency_unsupported" | "discount_code_not_found" | "discount_not_started" | "discount_expired" | "discount_usage_limit" | "discount_per_customer_limit" | "discount_customer_required" | "discount_first_order_only" | "discount_customer_not_eligible" | "discount_customer_excluded" | "discount_items_required" | "discount_product_not_eligible" | "discount_product_excluded" | "discount_min_order_amount" | "discount_currency_scope_required" | "discount_allocation_method_unsupported" | "unknown_commerce_error" | undefined;
|
|
20
|
+
kind?: "commerce" | undefined;
|
|
11
21
|
requestId?: string | undefined;
|
|
12
22
|
name: string;
|
|
13
23
|
code: string;
|
|
@@ -18,6 +28,28 @@ declare class SDKError extends Error {
|
|
|
18
28
|
suggestion: string | undefined;
|
|
19
29
|
};
|
|
20
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Canonical Cart/Checkout/PaymentSession error reasons. This public SDK mirror
|
|
33
|
+
* intentionally does not import the private contracts package; parity is
|
|
34
|
+
* enforced by a type test.
|
|
35
|
+
*/
|
|
36
|
+
declare const COMMERCE_ERROR_CODES: readonly ["validation_failed", "unauthorized", "forbidden", "token_expired", "origin_not_allowed", "server_credentials_required", "not_found", "conflict", "cart_revision_conflict", "rate_limit_exceeded", "usage_limit_exceeded", "service_unavailable", "idempotency_conflict", "idempotency_in_progress", "cart_not_active", "cart_locked", "cart_empty", "cart_market_unavailable", "cart_market_mismatch", "checkout_not_open", "payment_slot_held", "reservation_expired", "payment_session_not_cancelable", "provider_identity_mismatch", "provider_unavailable", "lock_timeout", "price_changed", "pricing_fact_in_use", "insufficient_stock", "market_not_found", "market_shipping_currency_unsupported", "missing_market_rate", "missing_shipping_amount", "no_enabled_payment_provider", "product_market_unavailable", "unsupported_currency", "missing_price_row", "payment_provider_currency_unsupported", "discount_code_not_found", "discount_not_started", "discount_expired", "discount_usage_limit", "discount_per_customer_limit", "discount_customer_required", "discount_first_order_only", "discount_customer_not_eligible", "discount_customer_excluded", "discount_items_required", "discount_product_not_eligible", "discount_product_excluded", "discount_min_order_amount", "discount_currency_scope_required", "discount_allocation_method_unsupported", "currency_mismatch"];
|
|
37
|
+
type CommerceErrorCode = (typeof COMMERCE_ERROR_CODES)[number];
|
|
38
|
+
type CommerceSDKErrorBase = SDKError & {
|
|
39
|
+
readonly kind: 'commerce';
|
|
40
|
+
readonly requestId: string;
|
|
41
|
+
readonly retryable: boolean;
|
|
42
|
+
readonly retryAfter?: number;
|
|
43
|
+
readonly details?: Record<string, unknown>;
|
|
44
|
+
};
|
|
45
|
+
type CommerceSDKError = CommerceSDKErrorBase & ({
|
|
46
|
+
readonly reason: CommerceErrorCode;
|
|
47
|
+
readonly rawReason?: never;
|
|
48
|
+
} | {
|
|
49
|
+
readonly reason: 'unknown_commerce_error';
|
|
50
|
+
readonly rawReason: string;
|
|
51
|
+
});
|
|
52
|
+
declare function isCommerceSDKError(error: unknown): error is CommerceSDKError;
|
|
21
53
|
declare class NetworkError extends SDKError {
|
|
22
54
|
constructor(message: string, status?: number, details?: unknown, userMessage?: string, suggestion?: string);
|
|
23
55
|
}
|
|
@@ -57,6 +89,11 @@ declare class UsageLimitError extends SDKError {
|
|
|
57
89
|
current: number;
|
|
58
90
|
remaining: number;
|
|
59
91
|
};
|
|
92
|
+
retryAfter?: number | undefined;
|
|
93
|
+
retryable?: boolean | undefined;
|
|
94
|
+
rawReason?: string | undefined;
|
|
95
|
+
reason?: "currency_mismatch" | "validation_failed" | "unauthorized" | "forbidden" | "token_expired" | "origin_not_allowed" | "server_credentials_required" | "not_found" | "conflict" | "cart_revision_conflict" | "rate_limit_exceeded" | "usage_limit_exceeded" | "service_unavailable" | "idempotency_conflict" | "idempotency_in_progress" | "cart_not_active" | "cart_locked" | "cart_empty" | "cart_market_unavailable" | "cart_market_mismatch" | "checkout_not_open" | "payment_slot_held" | "reservation_expired" | "payment_session_not_cancelable" | "provider_identity_mismatch" | "provider_unavailable" | "lock_timeout" | "price_changed" | "pricing_fact_in_use" | "insufficient_stock" | "market_not_found" | "market_shipping_currency_unsupported" | "missing_market_rate" | "missing_shipping_amount" | "no_enabled_payment_provider" | "product_market_unavailable" | "unsupported_currency" | "missing_price_row" | "payment_provider_currency_unsupported" | "discount_code_not_found" | "discount_not_started" | "discount_expired" | "discount_usage_limit" | "discount_per_customer_limit" | "discount_customer_required" | "discount_first_order_only" | "discount_customer_not_eligible" | "discount_customer_excluded" | "discount_items_required" | "discount_product_not_eligible" | "discount_product_excluded" | "discount_min_order_amount" | "discount_currency_scope_required" | "discount_allocation_method_unsupported" | "unknown_commerce_error" | undefined;
|
|
96
|
+
kind?: "commerce" | undefined;
|
|
60
97
|
requestId?: string | undefined;
|
|
61
98
|
name: string;
|
|
62
99
|
code: string;
|
|
@@ -115,4 +152,4 @@ declare const createNotFoundError: (message: string, details?: unknown, userMess
|
|
|
115
152
|
declare const createConflictError: (message: string, details?: unknown, userMessage?: string, suggestion?: string, requestId?: string) => ConflictError;
|
|
116
153
|
declare const createRateLimitError: (message: string, retryAfter?: number, details?: unknown, userMessage?: string, suggestion?: string, requestId?: string) => RateLimitError;
|
|
117
154
|
|
|
118
|
-
export { ApiError, AuthError, ConfigError, ConflictError, GoneError, NetworkError, NotFoundError, PermissionError, RateLimitError, SDKError, ServiceUnavailableError, TimeoutError, UsageLimitError, ValidationError, createApiError, createAuthError, createConfigError, createConflictError, createGoneError, createNetworkError, createNotFoundError, createPermissionError, createRateLimitError, createServiceUnavailableError, createTimeoutError, createUsageLimitError, createValidationError, isApiError, isAuthError, isConfigError, isConflictError, isGoneError, isNetworkError, isNotFoundError, isPermissionError, isRateLimitError, isSDKError, isServiceUnavailableError, isTimeoutError, isUsageLimitError, isValidationError };
|
|
155
|
+
export { ApiError, AuthError, COMMERCE_ERROR_CODES, type CommerceErrorCode, type CommerceSDKError, ConfigError, ConflictError, GoneError, NetworkError, NotFoundError, PermissionError, RateLimitError, SDKError, ServiceUnavailableError, TimeoutError, UsageLimitError, ValidationError, createApiError, createAuthError, createConfigError, createConflictError, createGoneError, createNetworkError, createNotFoundError, createPermissionError, createRateLimitError, createServiceUnavailableError, createTimeoutError, createUsageLimitError, createValidationError, isApiError, isAuthError, isCommerceSDKError, isConfigError, isConflictError, isGoneError, isNetworkError, isNotFoundError, isPermissionError, isRateLimitError, isSDKError, isServiceUnavailableError, isTimeoutError, isUsageLimitError, isValidationError };
|
package/dist/errors.d.ts
CHANGED
|
@@ -5,9 +5,19 @@ declare class SDKError extends Error {
|
|
|
5
5
|
readonly userMessage?: string;
|
|
6
6
|
readonly suggestion?: string;
|
|
7
7
|
readonly requestId?: string;
|
|
8
|
+
readonly kind?: 'commerce';
|
|
9
|
+
readonly reason?: CommerceErrorCode | 'unknown_commerce_error';
|
|
10
|
+
readonly rawReason?: string;
|
|
11
|
+
readonly retryable?: boolean;
|
|
12
|
+
readonly retryAfter?: number;
|
|
8
13
|
constructor(code: string, message: string, status?: number, details?: unknown, userMessage?: string, suggestion?: string, requestId?: string);
|
|
9
14
|
getUserMessage(): string;
|
|
10
15
|
toJSON(): {
|
|
16
|
+
retryAfter?: number | undefined;
|
|
17
|
+
retryable?: boolean | undefined;
|
|
18
|
+
rawReason?: string | undefined;
|
|
19
|
+
reason?: "currency_mismatch" | "validation_failed" | "unauthorized" | "forbidden" | "token_expired" | "origin_not_allowed" | "server_credentials_required" | "not_found" | "conflict" | "cart_revision_conflict" | "rate_limit_exceeded" | "usage_limit_exceeded" | "service_unavailable" | "idempotency_conflict" | "idempotency_in_progress" | "cart_not_active" | "cart_locked" | "cart_empty" | "cart_market_unavailable" | "cart_market_mismatch" | "checkout_not_open" | "payment_slot_held" | "reservation_expired" | "payment_session_not_cancelable" | "provider_identity_mismatch" | "provider_unavailable" | "lock_timeout" | "price_changed" | "pricing_fact_in_use" | "insufficient_stock" | "market_not_found" | "market_shipping_currency_unsupported" | "missing_market_rate" | "missing_shipping_amount" | "no_enabled_payment_provider" | "product_market_unavailable" | "unsupported_currency" | "missing_price_row" | "payment_provider_currency_unsupported" | "discount_code_not_found" | "discount_not_started" | "discount_expired" | "discount_usage_limit" | "discount_per_customer_limit" | "discount_customer_required" | "discount_first_order_only" | "discount_customer_not_eligible" | "discount_customer_excluded" | "discount_items_required" | "discount_product_not_eligible" | "discount_product_excluded" | "discount_min_order_amount" | "discount_currency_scope_required" | "discount_allocation_method_unsupported" | "unknown_commerce_error" | undefined;
|
|
20
|
+
kind?: "commerce" | undefined;
|
|
11
21
|
requestId?: string | undefined;
|
|
12
22
|
name: string;
|
|
13
23
|
code: string;
|
|
@@ -18,6 +28,28 @@ declare class SDKError extends Error {
|
|
|
18
28
|
suggestion: string | undefined;
|
|
19
29
|
};
|
|
20
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Canonical Cart/Checkout/PaymentSession error reasons. This public SDK mirror
|
|
33
|
+
* intentionally does not import the private contracts package; parity is
|
|
34
|
+
* enforced by a type test.
|
|
35
|
+
*/
|
|
36
|
+
declare const COMMERCE_ERROR_CODES: readonly ["validation_failed", "unauthorized", "forbidden", "token_expired", "origin_not_allowed", "server_credentials_required", "not_found", "conflict", "cart_revision_conflict", "rate_limit_exceeded", "usage_limit_exceeded", "service_unavailable", "idempotency_conflict", "idempotency_in_progress", "cart_not_active", "cart_locked", "cart_empty", "cart_market_unavailable", "cart_market_mismatch", "checkout_not_open", "payment_slot_held", "reservation_expired", "payment_session_not_cancelable", "provider_identity_mismatch", "provider_unavailable", "lock_timeout", "price_changed", "pricing_fact_in_use", "insufficient_stock", "market_not_found", "market_shipping_currency_unsupported", "missing_market_rate", "missing_shipping_amount", "no_enabled_payment_provider", "product_market_unavailable", "unsupported_currency", "missing_price_row", "payment_provider_currency_unsupported", "discount_code_not_found", "discount_not_started", "discount_expired", "discount_usage_limit", "discount_per_customer_limit", "discount_customer_required", "discount_first_order_only", "discount_customer_not_eligible", "discount_customer_excluded", "discount_items_required", "discount_product_not_eligible", "discount_product_excluded", "discount_min_order_amount", "discount_currency_scope_required", "discount_allocation_method_unsupported", "currency_mismatch"];
|
|
37
|
+
type CommerceErrorCode = (typeof COMMERCE_ERROR_CODES)[number];
|
|
38
|
+
type CommerceSDKErrorBase = SDKError & {
|
|
39
|
+
readonly kind: 'commerce';
|
|
40
|
+
readonly requestId: string;
|
|
41
|
+
readonly retryable: boolean;
|
|
42
|
+
readonly retryAfter?: number;
|
|
43
|
+
readonly details?: Record<string, unknown>;
|
|
44
|
+
};
|
|
45
|
+
type CommerceSDKError = CommerceSDKErrorBase & ({
|
|
46
|
+
readonly reason: CommerceErrorCode;
|
|
47
|
+
readonly rawReason?: never;
|
|
48
|
+
} | {
|
|
49
|
+
readonly reason: 'unknown_commerce_error';
|
|
50
|
+
readonly rawReason: string;
|
|
51
|
+
});
|
|
52
|
+
declare function isCommerceSDKError(error: unknown): error is CommerceSDKError;
|
|
21
53
|
declare class NetworkError extends SDKError {
|
|
22
54
|
constructor(message: string, status?: number, details?: unknown, userMessage?: string, suggestion?: string);
|
|
23
55
|
}
|
|
@@ -57,6 +89,11 @@ declare class UsageLimitError extends SDKError {
|
|
|
57
89
|
current: number;
|
|
58
90
|
remaining: number;
|
|
59
91
|
};
|
|
92
|
+
retryAfter?: number | undefined;
|
|
93
|
+
retryable?: boolean | undefined;
|
|
94
|
+
rawReason?: string | undefined;
|
|
95
|
+
reason?: "currency_mismatch" | "validation_failed" | "unauthorized" | "forbidden" | "token_expired" | "origin_not_allowed" | "server_credentials_required" | "not_found" | "conflict" | "cart_revision_conflict" | "rate_limit_exceeded" | "usage_limit_exceeded" | "service_unavailable" | "idempotency_conflict" | "idempotency_in_progress" | "cart_not_active" | "cart_locked" | "cart_empty" | "cart_market_unavailable" | "cart_market_mismatch" | "checkout_not_open" | "payment_slot_held" | "reservation_expired" | "payment_session_not_cancelable" | "provider_identity_mismatch" | "provider_unavailable" | "lock_timeout" | "price_changed" | "pricing_fact_in_use" | "insufficient_stock" | "market_not_found" | "market_shipping_currency_unsupported" | "missing_market_rate" | "missing_shipping_amount" | "no_enabled_payment_provider" | "product_market_unavailable" | "unsupported_currency" | "missing_price_row" | "payment_provider_currency_unsupported" | "discount_code_not_found" | "discount_not_started" | "discount_expired" | "discount_usage_limit" | "discount_per_customer_limit" | "discount_customer_required" | "discount_first_order_only" | "discount_customer_not_eligible" | "discount_customer_excluded" | "discount_items_required" | "discount_product_not_eligible" | "discount_product_excluded" | "discount_min_order_amount" | "discount_currency_scope_required" | "discount_allocation_method_unsupported" | "unknown_commerce_error" | undefined;
|
|
96
|
+
kind?: "commerce" | undefined;
|
|
60
97
|
requestId?: string | undefined;
|
|
61
98
|
name: string;
|
|
62
99
|
code: string;
|
|
@@ -115,4 +152,4 @@ declare const createNotFoundError: (message: string, details?: unknown, userMess
|
|
|
115
152
|
declare const createConflictError: (message: string, details?: unknown, userMessage?: string, suggestion?: string, requestId?: string) => ConflictError;
|
|
116
153
|
declare const createRateLimitError: (message: string, retryAfter?: number, details?: unknown, userMessage?: string, suggestion?: string, requestId?: string) => RateLimitError;
|
|
117
154
|
|
|
118
|
-
export { ApiError, AuthError, ConfigError, ConflictError, GoneError, NetworkError, NotFoundError, PermissionError, RateLimitError, SDKError, ServiceUnavailableError, TimeoutError, UsageLimitError, ValidationError, createApiError, createAuthError, createConfigError, createConflictError, createGoneError, createNetworkError, createNotFoundError, createPermissionError, createRateLimitError, createServiceUnavailableError, createTimeoutError, createUsageLimitError, createValidationError, isApiError, isAuthError, isConfigError, isConflictError, isGoneError, isNetworkError, isNotFoundError, isPermissionError, isRateLimitError, isSDKError, isServiceUnavailableError, isTimeoutError, isUsageLimitError, isValidationError };
|
|
155
|
+
export { ApiError, AuthError, COMMERCE_ERROR_CODES, type CommerceErrorCode, type CommerceSDKError, ConfigError, ConflictError, GoneError, NetworkError, NotFoundError, PermissionError, RateLimitError, SDKError, ServiceUnavailableError, TimeoutError, UsageLimitError, ValidationError, createApiError, createAuthError, createConfigError, createConflictError, createGoneError, createNetworkError, createNotFoundError, createPermissionError, createRateLimitError, createServiceUnavailableError, createTimeoutError, createUsageLimitError, createValidationError, isApiError, isAuthError, isCommerceSDKError, isConfigError, isConflictError, isGoneError, isNetworkError, isNotFoundError, isPermissionError, isRateLimitError, isSDKError, isServiceUnavailableError, isTimeoutError, isUsageLimitError, isValidationError };
|