@01.software/sdk 0.46.1 → 0.49.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 +96 -1
- package/README.md +145 -14
- package/dist/client.cjs +485 -81
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +7 -6
- package/dist/client.d.ts +7 -6
- package/dist/client.js +485 -81
- package/dist/client.js.map +1 -1
- package/dist/{collection-client-BEGXnfQe.d.ts → collection-client-DnDt6EQz.d.ts} +4 -4
- package/dist/{collection-client-L2rEgBaR.d.cts → collection-client-XfGLPuTf.d.cts} +4 -4
- package/dist/{const-y0eipvnQ.d.cts → const-CBba4lDo.d.cts} +4 -4
- package/dist/{const-GYVwlXLr.d.ts → const-DCNV5Kq7.d.ts} +4 -4
- package/dist/errors.cjs +112 -16
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.cts +13 -4
- package/dist/errors.d.ts +13 -4
- package/dist/errors.js +112 -16
- package/dist/errors.js.map +1 -1
- package/dist/{index-BfYL6Qb1.d.cts → index-CbKyoEzy.d.cts} +3 -3
- package/dist/{index-Bei4WlVw.d.ts → index-DUuIqUS8.d.ts} +3 -3
- package/dist/index.cjs +452 -104
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/index.js +452 -104
- package/dist/index.js.map +1 -1
- package/dist/{payload-types-3WNyC0gk.d.cts → payload-types-MKbx5MuJ.d.cts} +309 -17
- package/dist/{payload-types-3WNyC0gk.d.ts → payload-types-MKbx5MuJ.d.ts} +309 -17
- package/dist/query.cjs +165 -43
- package/dist/query.cjs.map +1 -1
- package/dist/query.d.cts +5 -5
- package/dist/query.d.ts +5 -5
- package/dist/query.js +165 -43
- package/dist/query.js.map +1 -1
- package/dist/realtime.d.cts +2 -2
- package/dist/realtime.d.ts +2 -2
- package/dist/server.cjs +566 -81
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +8 -7
- package/dist/server.d.ts +8 -7
- package/dist/server.js +566 -81
- package/dist/server.js.map +1 -1
- package/dist/storefront-cache.cjs +70 -1
- package/dist/storefront-cache.cjs.map +1 -1
- package/dist/storefront-cache.js +70 -1
- package/dist/storefront-cache.js.map +1 -1
- package/dist/{types-mIROvhhP.d.ts → types-1UeOk1Uy.d.cts} +110 -8
- package/dist/{types-CAicTn-o.d.cts → types-BKr_2avj.d.cts} +2 -2
- package/dist/{types-CDJ2M-MJ.d.cts → types-Du4s5anw.d.ts} +110 -8
- package/dist/{types-DpSyNTxy.d.ts → types-L_nh-ED7.d.ts} +2 -2
- 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.d.cts +4 -4
- package/dist/webhook.d.ts +4 -4
- package/package.json +6 -5
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import './payload-types-
|
|
1
|
+
import { G as DebugConfig, ak as RetryConfig, i as ApiQueryOptions, P as PayloadFindResponse, L as PayloadMutationResponse, bW as ApiDeleteOptions, bX as PublicReadQueryOptions } from './types-Du4s5anw.js';
|
|
2
|
+
import './payload-types-MKbx5MuJ.js';
|
|
3
3
|
import { GenerateMetadataOptions, Metadata } from './metadata.js';
|
|
4
|
-
import { C as Collection, S as ServerCollection, P as PublicCollection } from './const-
|
|
5
|
-
import { C as CollectionType } from './types-
|
|
4
|
+
import { C as Collection, S as ServerCollection, P as PublicCollection } from './const-DCNV5Kq7.js';
|
|
5
|
+
import { C as CollectionType } from './types-L_nh-ED7.js';
|
|
6
6
|
|
|
7
7
|
interface FetchOptions extends RequestInit {
|
|
8
8
|
apiUrl?: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import './payload-types-
|
|
1
|
+
import { G as DebugConfig, ak as RetryConfig, i as ApiQueryOptions, P as PayloadFindResponse, L as PayloadMutationResponse, bW as ApiDeleteOptions, bX as PublicReadQueryOptions } from './types-1UeOk1Uy.cjs';
|
|
2
|
+
import './payload-types-MKbx5MuJ.cjs';
|
|
3
3
|
import { GenerateMetadataOptions, Metadata } from './metadata.cjs';
|
|
4
|
-
import { C as Collection, S as ServerCollection, P as PublicCollection } from './const-
|
|
5
|
-
import { C as CollectionType } from './types-
|
|
4
|
+
import { C as Collection, S as ServerCollection, P as PublicCollection } from './const-CBba4lDo.cjs';
|
|
5
|
+
import { C as CollectionType } from './types-BKr_2avj.cjs';
|
|
6
6
|
|
|
7
7
|
interface FetchOptions extends RequestInit {
|
|
8
8
|
apiUrl?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './payload-types-
|
|
1
|
+
import './payload-types-MKbx5MuJ.cjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Internal collections that should not be exposed via SDK.
|
|
@@ -10,20 +10,20 @@ type InternalCollection = (typeof INTERNAL_COLLECTIONS)[number];
|
|
|
10
10
|
* Array of browser-public collection names for runtime use (e.g., Zod enum validation).
|
|
11
11
|
* This is the single source of truth for publishable-key collection discovery.
|
|
12
12
|
*/
|
|
13
|
-
declare const COLLECTIONS: readonly ["
|
|
13
|
+
declare const COLLECTIONS: readonly ["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"];
|
|
14
14
|
/**
|
|
15
15
|
* Server-auth collection names for runtime use. These collections are safe for
|
|
16
16
|
* secret-key/PAT SDK and MCP server tools, but must not appear in browser or
|
|
17
17
|
* publishable-key collection discovery.
|
|
18
18
|
*/
|
|
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"];
|
|
19
|
+
declare const SERVER_ONLY_COLLECTIONS: readonly ["tenants", "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"];
|
|
20
20
|
/**
|
|
21
21
|
* Browser-public collections available for publishable-key SDK access.
|
|
22
22
|
* Derived from the COLLECTIONS array (single source of truth).
|
|
23
23
|
*/
|
|
24
24
|
type PublicCollection = (typeof COLLECTIONS)[number];
|
|
25
25
|
type ServerOnlyCollection = (typeof SERVER_ONLY_COLLECTIONS)[number];
|
|
26
|
-
declare const SERVER_COLLECTIONS: readonly ["
|
|
26
|
+
declare const SERVER_COLLECTIONS: readonly ["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", "tenants", "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"];
|
|
27
27
|
type ServerCollection = (typeof SERVER_COLLECTIONS)[number];
|
|
28
28
|
/**
|
|
29
29
|
* The published SDK collection universe is exactly the union of its three
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './payload-types-
|
|
1
|
+
import './payload-types-MKbx5MuJ.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Internal collections that should not be exposed via SDK.
|
|
@@ -10,20 +10,20 @@ type InternalCollection = (typeof INTERNAL_COLLECTIONS)[number];
|
|
|
10
10
|
* Array of browser-public collection names for runtime use (e.g., Zod enum validation).
|
|
11
11
|
* This is the single source of truth for publishable-key collection discovery.
|
|
12
12
|
*/
|
|
13
|
-
declare const COLLECTIONS: readonly ["
|
|
13
|
+
declare const COLLECTIONS: readonly ["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"];
|
|
14
14
|
/**
|
|
15
15
|
* Server-auth collection names for runtime use. These collections are safe for
|
|
16
16
|
* secret-key/PAT SDK and MCP server tools, but must not appear in browser or
|
|
17
17
|
* publishable-key collection discovery.
|
|
18
18
|
*/
|
|
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"];
|
|
19
|
+
declare const SERVER_ONLY_COLLECTIONS: readonly ["tenants", "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"];
|
|
20
20
|
/**
|
|
21
21
|
* Browser-public collections available for publishable-key SDK access.
|
|
22
22
|
* Derived from the COLLECTIONS array (single source of truth).
|
|
23
23
|
*/
|
|
24
24
|
type PublicCollection = (typeof COLLECTIONS)[number];
|
|
25
25
|
type ServerOnlyCollection = (typeof SERVER_ONLY_COLLECTIONS)[number];
|
|
26
|
-
declare const SERVER_COLLECTIONS: readonly ["
|
|
26
|
+
declare const SERVER_COLLECTIONS: readonly ["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", "tenants", "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"];
|
|
27
27
|
type ServerCollection = (typeof SERVER_COLLECTIONS)[number];
|
|
28
28
|
/**
|
|
29
29
|
* The published SDK collection universe is exactly the union of its three
|
package/dist/errors.cjs
CHANGED
|
@@ -48,6 +48,7 @@ __export(errors_exports, {
|
|
|
48
48
|
createTimeoutError: () => createTimeoutError,
|
|
49
49
|
createUsageLimitError: () => createUsageLimitError,
|
|
50
50
|
createValidationError: () => createValidationError,
|
|
51
|
+
getSDKErrorReason: () => getSDKErrorReason,
|
|
51
52
|
isApiError: () => isApiError,
|
|
52
53
|
isAuthError: () => isAuthError,
|
|
53
54
|
isCommerceSDKError: () => isCommerceSDKError,
|
|
@@ -67,6 +68,24 @@ __export(errors_exports, {
|
|
|
67
68
|
module.exports = __toCommonJS(errors_exports);
|
|
68
69
|
|
|
69
70
|
// src/core/errors.ts
|
|
71
|
+
var SDK_ERROR_BRAND = /* @__PURE__ */ Symbol.for("@01.software/sdk/SDKError");
|
|
72
|
+
var SDK_ERROR_TYPE_BRAND = /* @__PURE__ */ Symbol.for("@01.software/sdk/SDKError.type");
|
|
73
|
+
function defineSDKErrorBrand(error) {
|
|
74
|
+
Object.defineProperty(error, SDK_ERROR_BRAND, {
|
|
75
|
+
value: true,
|
|
76
|
+
enumerable: false,
|
|
77
|
+
configurable: false,
|
|
78
|
+
writable: false
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function defineSDKErrorType(error, type) {
|
|
82
|
+
Object.defineProperty(error, SDK_ERROR_TYPE_BRAND, {
|
|
83
|
+
value: type,
|
|
84
|
+
enumerable: false,
|
|
85
|
+
configurable: false,
|
|
86
|
+
writable: false
|
|
87
|
+
});
|
|
88
|
+
}
|
|
70
89
|
var SDKError = class extends Error {
|
|
71
90
|
constructor(code, message, status, details, userMessage, suggestion, requestId) {
|
|
72
91
|
super(message);
|
|
@@ -77,6 +96,7 @@ var SDKError = class extends Error {
|
|
|
77
96
|
this.userMessage = userMessage;
|
|
78
97
|
this.suggestion = suggestion;
|
|
79
98
|
this.requestId = requestId;
|
|
99
|
+
defineSDKErrorBrand(this);
|
|
80
100
|
if (Error.captureStackTrace) {
|
|
81
101
|
Error.captureStackTrace(this, new.target);
|
|
82
102
|
}
|
|
@@ -97,6 +117,7 @@ var SDKError = class extends Error {
|
|
|
97
117
|
...this.kind !== void 0 && { kind: this.kind },
|
|
98
118
|
...this.reason !== void 0 && { reason: this.reason },
|
|
99
119
|
...this.rawReason !== void 0 && { rawReason: this.rawReason },
|
|
120
|
+
...this.apiReason !== void 0 && { apiReason: this.apiReason },
|
|
100
121
|
...this.retryable !== void 0 && { retryable: this.retryable },
|
|
101
122
|
...this.retryAfter !== void 0 && { retryAfter: this.retryAfter }
|
|
102
123
|
};
|
|
@@ -104,34 +125,78 @@ var SDKError = class extends Error {
|
|
|
104
125
|
};
|
|
105
126
|
var COMMERCE_ERROR_CODES = [
|
|
106
127
|
"validation_failed",
|
|
128
|
+
"bad_request",
|
|
107
129
|
"unauthorized",
|
|
108
130
|
"forbidden",
|
|
131
|
+
"account_suspended",
|
|
132
|
+
"key_invalid",
|
|
133
|
+
"pat_tenant_header_forbidden",
|
|
134
|
+
"tenant_mismatch",
|
|
135
|
+
"test_tenant_expired",
|
|
136
|
+
"token_invalid",
|
|
109
137
|
"token_expired",
|
|
110
138
|
"origin_not_allowed",
|
|
111
139
|
"server_credentials_required",
|
|
140
|
+
"role_denied",
|
|
141
|
+
"scope_denied",
|
|
142
|
+
"feature_disabled",
|
|
112
143
|
"not_found",
|
|
113
144
|
"conflict",
|
|
145
|
+
"locked",
|
|
114
146
|
"cart_revision_conflict",
|
|
115
147
|
"rate_limit_exceeded",
|
|
116
148
|
"usage_limit_exceeded",
|
|
117
149
|
"service_unavailable",
|
|
118
150
|
"idempotency_conflict",
|
|
119
151
|
"idempotency_in_progress",
|
|
152
|
+
"idempotency_key_required",
|
|
153
|
+
"invalid_idempotency_key",
|
|
120
154
|
"cart_not_active",
|
|
121
155
|
"cart_locked",
|
|
122
156
|
"cart_empty",
|
|
123
157
|
"cart_market_unavailable",
|
|
124
158
|
"cart_market_mismatch",
|
|
125
159
|
"checkout_not_open",
|
|
160
|
+
"checkout_already_open",
|
|
126
161
|
"payment_slot_held",
|
|
127
162
|
"reservation_expired",
|
|
128
163
|
"payment_session_not_cancelable",
|
|
164
|
+
"payment_session_conflict",
|
|
129
165
|
"provider_identity_mismatch",
|
|
166
|
+
"payment_method_unavailable",
|
|
130
167
|
"provider_unavailable",
|
|
131
168
|
"lock_timeout",
|
|
132
169
|
"price_changed",
|
|
133
170
|
"pricing_fact_in_use",
|
|
134
171
|
"insufficient_stock",
|
|
172
|
+
"reservation_conflict",
|
|
173
|
+
"stock_lock_unavailable",
|
|
174
|
+
"variant_not_found",
|
|
175
|
+
"variant_stock_write_failed",
|
|
176
|
+
"stock_invariant_violation",
|
|
177
|
+
"payment_confirmation_in_flight",
|
|
178
|
+
"checkout_reservation_release_requires_transaction",
|
|
179
|
+
"admission_metadata_invalid",
|
|
180
|
+
"admission_metadata_required",
|
|
181
|
+
"capacity_exceeded",
|
|
182
|
+
"occurrence_lock_unavailable",
|
|
183
|
+
"occurrence_not_open",
|
|
184
|
+
"admission_type_capacity_exceeded",
|
|
185
|
+
"admission_type_occurrence_mismatch",
|
|
186
|
+
"admission_hold_expired",
|
|
187
|
+
"admission_hold_checkout_item_conflict",
|
|
188
|
+
"admission_hold_checkout_conflict",
|
|
189
|
+
"admission_hold_quantity_mismatch",
|
|
190
|
+
"admission_hold_unbound",
|
|
191
|
+
"admission_hold_missing",
|
|
192
|
+
"admission_hold_checkout_item_missing",
|
|
193
|
+
"admission_hold_expiry_failed",
|
|
194
|
+
"admission_hold_expiry_requires_transaction",
|
|
195
|
+
"admission_hold_line_item_mismatch",
|
|
196
|
+
"admission_materialization_failed",
|
|
197
|
+
"variant_inactive",
|
|
198
|
+
"variant_product_mismatch",
|
|
199
|
+
"product_not_public",
|
|
135
200
|
"market_not_found",
|
|
136
201
|
"market_shipping_currency_unsupported",
|
|
137
202
|
"missing_market_rate",
|
|
@@ -156,13 +221,21 @@ var COMMERCE_ERROR_CODES = [
|
|
|
156
221
|
"discount_min_order_amount",
|
|
157
222
|
"discount_currency_scope_required",
|
|
158
223
|
"discount_allocation_method_unsupported",
|
|
159
|
-
"currency_mismatch"
|
|
224
|
+
"currency_mismatch",
|
|
225
|
+
"customer_token_required",
|
|
226
|
+
"market_required",
|
|
227
|
+
"server_derived",
|
|
228
|
+
"internal_error"
|
|
160
229
|
];
|
|
161
230
|
var COMMERCE_ERROR_CODE_SET = new Set(
|
|
162
231
|
COMMERCE_ERROR_CODES
|
|
163
232
|
);
|
|
233
|
+
function getSDKErrorReason(error) {
|
|
234
|
+
if (error.kind !== "commerce") return error.apiReason;
|
|
235
|
+
return error.reason === "unknown_commerce_error" ? error.rawReason : error.reason;
|
|
236
|
+
}
|
|
164
237
|
function isCommerceSDKError(error) {
|
|
165
|
-
if (!(error
|
|
238
|
+
if (!isSDKError(error) || error.kind !== "commerce") return false;
|
|
166
239
|
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
240
|
return false;
|
|
168
241
|
}
|
|
@@ -172,12 +245,14 @@ var NetworkError = class extends SDKError {
|
|
|
172
245
|
constructor(message, status, details, userMessage, suggestion) {
|
|
173
246
|
super("NETWORK_ERROR", message, status, details, userMessage, suggestion);
|
|
174
247
|
this.name = "NetworkError";
|
|
248
|
+
defineSDKErrorType(this, "NetworkError");
|
|
175
249
|
}
|
|
176
250
|
};
|
|
177
251
|
var ValidationError = class extends SDKError {
|
|
178
252
|
constructor(message, details, userMessage, suggestion, status = 400) {
|
|
179
253
|
super("VALIDATION_ERROR", message, status, details, userMessage, suggestion);
|
|
180
254
|
this.name = "ValidationError";
|
|
255
|
+
defineSDKErrorType(this, "ValidationError");
|
|
181
256
|
}
|
|
182
257
|
};
|
|
183
258
|
var ApiError = class extends SDKError {
|
|
@@ -192,24 +267,28 @@ var ApiError = class extends SDKError {
|
|
|
192
267
|
requestId
|
|
193
268
|
);
|
|
194
269
|
this.name = "ApiError";
|
|
270
|
+
defineSDKErrorType(this, "ApiError");
|
|
195
271
|
}
|
|
196
272
|
};
|
|
197
273
|
var ConfigError = class extends SDKError {
|
|
198
274
|
constructor(message, details, userMessage, suggestion) {
|
|
199
275
|
super("CONFIG_ERROR", message, void 0, details, userMessage, suggestion);
|
|
200
276
|
this.name = "ConfigError";
|
|
277
|
+
defineSDKErrorType(this, "ConfigError");
|
|
201
278
|
}
|
|
202
279
|
};
|
|
203
280
|
var TimeoutError = class extends SDKError {
|
|
204
281
|
constructor(message = "Request timed out.", details, userMessage, suggestion) {
|
|
205
282
|
super("TIMEOUT_ERROR", message, 408, details, userMessage, suggestion);
|
|
206
283
|
this.name = "TimeoutError";
|
|
284
|
+
defineSDKErrorType(this, "TimeoutError");
|
|
207
285
|
}
|
|
208
286
|
};
|
|
209
287
|
var GoneError = class extends SDKError {
|
|
210
288
|
constructor(message = "The requested resource is no longer available.", details, userMessage, suggestion) {
|
|
211
289
|
super("GONE_ERROR", message, 410, details, userMessage, suggestion);
|
|
212
290
|
this.name = "GoneError";
|
|
291
|
+
defineSDKErrorType(this, "GoneError");
|
|
213
292
|
}
|
|
214
293
|
};
|
|
215
294
|
var ServiceUnavailableError = class extends SDKError {
|
|
@@ -224,6 +303,7 @@ var ServiceUnavailableError = class extends SDKError {
|
|
|
224
303
|
);
|
|
225
304
|
this.name = "ServiceUnavailableError";
|
|
226
305
|
this.retryAfter = retryAfter;
|
|
306
|
+
defineSDKErrorType(this, "ServiceUnavailableError");
|
|
227
307
|
}
|
|
228
308
|
};
|
|
229
309
|
var UsageLimitError = class extends SDKError {
|
|
@@ -231,6 +311,7 @@ var UsageLimitError = class extends SDKError {
|
|
|
231
311
|
super("USAGE_LIMIT_ERROR", message, 429, details, userMessage, suggestion);
|
|
232
312
|
this.name = "UsageLimitError";
|
|
233
313
|
this.usage = usage;
|
|
314
|
+
defineSDKErrorType(this, "UsageLimitError");
|
|
234
315
|
}
|
|
235
316
|
toJSON() {
|
|
236
317
|
return {
|
|
@@ -251,6 +332,7 @@ var AuthError = class extends SDKError {
|
|
|
251
332
|
requestId
|
|
252
333
|
);
|
|
253
334
|
this.name = "AuthError";
|
|
335
|
+
defineSDKErrorType(this, "AuthError");
|
|
254
336
|
}
|
|
255
337
|
};
|
|
256
338
|
var PermissionError = class extends SDKError {
|
|
@@ -265,6 +347,7 @@ var PermissionError = class extends SDKError {
|
|
|
265
347
|
requestId
|
|
266
348
|
);
|
|
267
349
|
this.name = "PermissionError";
|
|
350
|
+
defineSDKErrorType(this, "PermissionError");
|
|
268
351
|
}
|
|
269
352
|
};
|
|
270
353
|
var NotFoundError = class extends SDKError {
|
|
@@ -279,12 +362,14 @@ var NotFoundError = class extends SDKError {
|
|
|
279
362
|
requestId
|
|
280
363
|
);
|
|
281
364
|
this.name = "NotFoundError";
|
|
365
|
+
defineSDKErrorType(this, "NotFoundError");
|
|
282
366
|
}
|
|
283
367
|
};
|
|
284
368
|
var ConflictError = class extends SDKError {
|
|
285
369
|
constructor(message, details, userMessage, suggestion, requestId) {
|
|
286
370
|
super("conflict", message, 409, details, userMessage, suggestion, requestId);
|
|
287
371
|
this.name = "ConflictError";
|
|
372
|
+
defineSDKErrorType(this, "ConflictError");
|
|
288
373
|
}
|
|
289
374
|
};
|
|
290
375
|
var RateLimitError = class extends SDKError {
|
|
@@ -300,52 +385,63 @@ var RateLimitError = class extends SDKError {
|
|
|
300
385
|
);
|
|
301
386
|
this.name = "RateLimitError";
|
|
302
387
|
this.retryAfter = retryAfter;
|
|
388
|
+
defineSDKErrorType(this, "RateLimitError");
|
|
303
389
|
}
|
|
304
390
|
};
|
|
391
|
+
function hasBrandedSDKErrorShape(error) {
|
|
392
|
+
if (error === null || typeof error !== "object") return false;
|
|
393
|
+
const candidate = error;
|
|
394
|
+
return candidate[SDK_ERROR_BRAND] === true && typeof candidate.name === "string" && typeof candidate.code === "string" && typeof candidate.message === "string" && (candidate.status === void 0 || typeof candidate.status === "number") && (candidate.userMessage === void 0 || typeof candidate.userMessage === "string") && (candidate.suggestion === void 0 || typeof candidate.suggestion === "string") && (candidate.requestId === void 0 || typeof candidate.requestId === "string") && (candidate.kind === void 0 || candidate.kind === "commerce") && (candidate.reason === void 0 || typeof candidate.reason === "string") && (candidate.rawReason === void 0 || typeof candidate.rawReason === "string") && (candidate.apiReason === void 0 || typeof candidate.apiReason === "string") && (candidate.retryable === void 0 || typeof candidate.retryable === "boolean") && (candidate.retryAfter === void 0 || typeof candidate.retryAfter === "number") && typeof candidate.getUserMessage === "function" && typeof candidate.toJSON === "function";
|
|
395
|
+
}
|
|
396
|
+
function hasSDKErrorType(error, type) {
|
|
397
|
+
return hasBrandedSDKErrorShape(error) && error[SDK_ERROR_TYPE_BRAND] === type;
|
|
398
|
+
}
|
|
305
399
|
function isSDKError(error) {
|
|
306
|
-
return error instanceof SDKError;
|
|
400
|
+
return error instanceof SDKError || hasBrandedSDKErrorShape(error);
|
|
307
401
|
}
|
|
308
402
|
function isNetworkError(error) {
|
|
309
|
-
return error instanceof NetworkError;
|
|
403
|
+
return error instanceof NetworkError || hasSDKErrorType(error, "NetworkError");
|
|
310
404
|
}
|
|
311
405
|
function isValidationError(error) {
|
|
312
|
-
if (error instanceof ValidationError)
|
|
406
|
+
if (error instanceof ValidationError || hasSDKErrorType(error, "ValidationError")) {
|
|
407
|
+
return true;
|
|
408
|
+
}
|
|
313
409
|
if (error == null || typeof error !== "object") return false;
|
|
314
410
|
const candidate = error;
|
|
315
411
|
return candidate.name === "ValidationError" && candidate.code === "VALIDATION_ERROR" && typeof candidate.message === "string" && typeof candidate.getUserMessage === "function" && typeof candidate.toJSON === "function";
|
|
316
412
|
}
|
|
317
413
|
function isApiError(error) {
|
|
318
|
-
return error instanceof ApiError;
|
|
414
|
+
return error instanceof ApiError || hasSDKErrorType(error, "ApiError");
|
|
319
415
|
}
|
|
320
416
|
function isConfigError(error) {
|
|
321
|
-
return error instanceof ConfigError;
|
|
417
|
+
return error instanceof ConfigError || hasSDKErrorType(error, "ConfigError");
|
|
322
418
|
}
|
|
323
419
|
function isTimeoutError(error) {
|
|
324
|
-
return error instanceof TimeoutError;
|
|
420
|
+
return error instanceof TimeoutError || hasSDKErrorType(error, "TimeoutError");
|
|
325
421
|
}
|
|
326
422
|
function isGoneError(error) {
|
|
327
|
-
return error instanceof GoneError;
|
|
423
|
+
return error instanceof GoneError || hasSDKErrorType(error, "GoneError");
|
|
328
424
|
}
|
|
329
425
|
function isServiceUnavailableError(error) {
|
|
330
|
-
return error instanceof ServiceUnavailableError;
|
|
426
|
+
return error instanceof ServiceUnavailableError || hasSDKErrorType(error, "ServiceUnavailableError");
|
|
331
427
|
}
|
|
332
428
|
function isUsageLimitError(error) {
|
|
333
|
-
return error instanceof UsageLimitError;
|
|
429
|
+
return error instanceof UsageLimitError || hasSDKErrorType(error, "UsageLimitError");
|
|
334
430
|
}
|
|
335
431
|
function isAuthError(error) {
|
|
336
|
-
return error instanceof AuthError;
|
|
432
|
+
return error instanceof AuthError || hasSDKErrorType(error, "AuthError");
|
|
337
433
|
}
|
|
338
434
|
function isPermissionError(error) {
|
|
339
|
-
return error instanceof PermissionError;
|
|
435
|
+
return error instanceof PermissionError || hasSDKErrorType(error, "PermissionError");
|
|
340
436
|
}
|
|
341
437
|
function isNotFoundError(error) {
|
|
342
|
-
return error instanceof NotFoundError;
|
|
438
|
+
return error instanceof NotFoundError || hasSDKErrorType(error, "NotFoundError");
|
|
343
439
|
}
|
|
344
440
|
function isConflictError(error) {
|
|
345
|
-
return error instanceof ConflictError;
|
|
441
|
+
return error instanceof ConflictError || hasSDKErrorType(error, "ConflictError");
|
|
346
442
|
}
|
|
347
443
|
function isRateLimitError(error) {
|
|
348
|
-
return error instanceof RateLimitError;
|
|
444
|
+
return error instanceof RateLimitError || hasSDKErrorType(error, "RateLimitError");
|
|
349
445
|
}
|
|
350
446
|
var createNetworkError = (message, status, details, userMessage, suggestion) => new NetworkError(message, status, details, userMessage, suggestion);
|
|
351
447
|
var createValidationError = (message, details, userMessage, suggestion, status) => new ValidationError(message, details, userMessage, suggestion, status);
|
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 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":"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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 getSDKErrorReason,\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","const SDK_ERROR_BRAND = Symbol.for('@01.software/sdk/SDKError')\nconst SDK_ERROR_TYPE_BRAND = Symbol.for('@01.software/sdk/SDKError.type')\n\ntype SDKErrorType =\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\nfunction defineSDKErrorBrand(error: SDKError): void {\n Object.defineProperty(error, SDK_ERROR_BRAND, {\n value: true,\n enumerable: false,\n configurable: false,\n writable: false,\n })\n}\n\nfunction defineSDKErrorType(error: SDKError, type: SDKErrorType): void {\n Object.defineProperty(error, SDK_ERROR_TYPE_BRAND, {\n value: type,\n enumerable: false,\n configurable: false,\n writable: false,\n })\n}\n\nexport 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 /** Machine-readable reason from a non-commerce API response. */\n readonly apiReason?: 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 defineSDKErrorBrand(this)\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.apiReason !== undefined && { apiReason: this.apiReason }),\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 'bad_request',\n 'unauthorized',\n 'forbidden',\n 'account_suspended',\n 'key_invalid',\n 'pat_tenant_header_forbidden',\n 'tenant_mismatch',\n 'test_tenant_expired',\n 'token_invalid',\n 'token_expired',\n 'origin_not_allowed',\n 'server_credentials_required',\n 'role_denied',\n 'scope_denied',\n 'feature_disabled',\n 'not_found',\n 'conflict',\n 'locked',\n 'cart_revision_conflict',\n 'rate_limit_exceeded',\n 'usage_limit_exceeded',\n 'service_unavailable',\n 'idempotency_conflict',\n 'idempotency_in_progress',\n 'idempotency_key_required',\n 'invalid_idempotency_key',\n 'cart_not_active',\n 'cart_locked',\n 'cart_empty',\n 'cart_market_unavailable',\n 'cart_market_mismatch',\n 'checkout_not_open',\n 'checkout_already_open',\n 'payment_slot_held',\n 'reservation_expired',\n 'payment_session_not_cancelable',\n 'payment_session_conflict',\n 'provider_identity_mismatch',\n 'payment_method_unavailable',\n 'provider_unavailable',\n 'lock_timeout',\n 'price_changed',\n 'pricing_fact_in_use',\n 'insufficient_stock',\n 'reservation_conflict',\n 'stock_lock_unavailable',\n 'variant_not_found',\n 'variant_stock_write_failed',\n 'stock_invariant_violation',\n 'payment_confirmation_in_flight',\n 'checkout_reservation_release_requires_transaction',\n 'admission_metadata_invalid',\n 'admission_metadata_required',\n 'capacity_exceeded',\n 'occurrence_lock_unavailable',\n 'occurrence_not_open',\n 'admission_type_capacity_exceeded',\n 'admission_type_occurrence_mismatch',\n 'admission_hold_expired',\n 'admission_hold_checkout_item_conflict',\n 'admission_hold_checkout_conflict',\n 'admission_hold_quantity_mismatch',\n 'admission_hold_unbound',\n 'admission_hold_missing',\n 'admission_hold_checkout_item_missing',\n 'admission_hold_expiry_failed',\n 'admission_hold_expiry_requires_transaction',\n 'admission_hold_line_item_mismatch',\n 'admission_materialization_failed',\n 'variant_inactive',\n 'variant_product_mismatch',\n 'product_not_public',\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 'customer_token_required',\n 'market_required',\n 'server_derived',\n 'internal_error',\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 (headerRequestId === undefined) {\n throw commerceProtocolError('missing_request_id_header')\n }\n if (headerRequestId.length === 0) {\n throw commerceProtocolError('empty_request_id_header')\n }\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 !== undefined && 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\n/** @internal Apply a non-commerce reason without canonical-commerce validation. */\nexport function enhanceNonCommerceError(\n error: SDKError,\n reason: unknown,\n): SDKError {\n if (typeof reason === 'string') Object.assign(error, { apiReason: reason })\n return error\n}\n\n/**\n * Read the server-provided machine reason across strict commerce and\n * non-commerce SDK errors. Unknown commerce reasons are returned verbatim.\n */\nexport function getSDKErrorReason(error: SDKError): string | undefined {\n if (error.kind !== 'commerce') return error.apiReason\n return error.reason === 'unknown_commerce_error'\n ? error.rawReason\n : error.reason\n}\n\nexport function isCommerceSDKError(error: unknown): error is CommerceSDKError {\n if (!isSDKError(error) || 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 defineSDKErrorType(this, '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 defineSDKErrorType(this, '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 defineSDKErrorType(this, '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 defineSDKErrorType(this, '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 defineSDKErrorType(this, '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 defineSDKErrorType(this, '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 defineSDKErrorType(this, 'ServiceUnavailableError')\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 defineSDKErrorType(this, 'UsageLimitError')\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 defineSDKErrorType(this, '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 defineSDKErrorType(this, '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 defineSDKErrorType(this, '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 defineSDKErrorType(this, '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 defineSDKErrorType(this, 'RateLimitError')\n }\n}\n\nfunction hasBrandedSDKErrorShape(error: unknown): error is SDKError {\n if (error === null || typeof error !== 'object') return false\n\n const candidate = error as Record<PropertyKey, unknown>\n return (\n candidate[SDK_ERROR_BRAND] === true &&\n typeof candidate.name === 'string' &&\n typeof candidate.code === 'string' &&\n typeof candidate.message === 'string' &&\n (candidate.status === undefined || typeof candidate.status === 'number') &&\n (candidate.userMessage === undefined ||\n typeof candidate.userMessage === 'string') &&\n (candidate.suggestion === undefined ||\n typeof candidate.suggestion === 'string') &&\n (candidate.requestId === undefined ||\n typeof candidate.requestId === 'string') &&\n (candidate.kind === undefined || candidate.kind === 'commerce') &&\n (candidate.reason === undefined || typeof candidate.reason === 'string') &&\n (candidate.rawReason === undefined ||\n typeof candidate.rawReason === 'string') &&\n (candidate.apiReason === undefined ||\n typeof candidate.apiReason === 'string') &&\n (candidate.retryable === undefined ||\n typeof candidate.retryable === 'boolean') &&\n (candidate.retryAfter === undefined ||\n typeof candidate.retryAfter === 'number') &&\n typeof candidate.getUserMessage === 'function' &&\n typeof candidate.toJSON === 'function'\n )\n}\n\nfunction hasSDKErrorType(error: unknown, type: SDKErrorType): boolean {\n return (\n hasBrandedSDKErrorShape(error) &&\n (error as unknown as Record<PropertyKey, unknown>)[SDK_ERROR_TYPE_BRAND] ===\n type\n )\n}\n\nexport function isSDKError(error: unknown): error is SDKError {\n return error instanceof SDKError || hasBrandedSDKErrorShape(error)\n}\n\nexport function isNetworkError(error: unknown): error is NetworkError {\n return error instanceof NetworkError || hasSDKErrorType(error, 'NetworkError')\n}\n\nexport function isValidationError(error: unknown): error is ValidationError {\n if (\n error instanceof ValidationError ||\n hasSDKErrorType(error, 'ValidationError')\n ) {\n return true\n }\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 || hasSDKErrorType(error, 'ApiError')\n}\n\nexport function isConfigError(error: unknown): error is ConfigError {\n return error instanceof ConfigError || hasSDKErrorType(error, 'ConfigError')\n}\n\nexport function isTimeoutError(error: unknown): error is TimeoutError {\n return error instanceof TimeoutError || hasSDKErrorType(error, 'TimeoutError')\n}\n\nexport function isGoneError(error: unknown): error is GoneError {\n return error instanceof GoneError || hasSDKErrorType(error, 'GoneError')\n}\n\nexport function isServiceUnavailableError(\n error: unknown,\n): error is ServiceUnavailableError {\n return (\n error instanceof ServiceUnavailableError ||\n hasSDKErrorType(error, 'ServiceUnavailableError')\n )\n}\n\nexport function isUsageLimitError(error: unknown): error is UsageLimitError {\n return (\n error instanceof UsageLimitError ||\n hasSDKErrorType(error, 'UsageLimitError')\n )\n}\n\nexport function isAuthError(error: unknown): error is AuthError {\n return error instanceof AuthError || hasSDKErrorType(error, 'AuthError')\n}\n\nexport function isPermissionError(error: unknown): error is PermissionError {\n return (\n error instanceof PermissionError ||\n hasSDKErrorType(error, 'PermissionError')\n )\n}\n\nexport function isNotFoundError(error: unknown): error is NotFoundError {\n return (\n error instanceof NotFoundError || hasSDKErrorType(error, 'NotFoundError')\n )\n}\n\nexport function isConflictError(error: unknown): error is ConflictError {\n return (\n error instanceof ConflictError || hasSDKErrorType(error, 'ConflictError')\n )\n}\n\nexport function isRateLimitError(error: unknown): error is RateLimitError {\n return (\n error instanceof RateLimitError || hasSDKErrorType(error, 'RateLimitError')\n )\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":[]}
|