@01.software/sdk 0.30.1 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -20
- package/dist/client.cjs +81 -16
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +6 -6
- package/dist/client.d.ts +6 -6
- package/dist/client.js +81 -16
- package/dist/client.js.map +1 -1
- package/dist/{collection-client-B9d9kr1d.d.ts → collection-client-ByzY3hWK.d.ts} +3 -3
- package/dist/{collection-client-QPbwimkU.d.cts → collection-client-DFXXz0vk.d.cts} +3 -3
- package/dist/{const-VZuk2tWc.d.cts → const-AytzliEu.d.cts} +4 -4
- package/dist/{const-B75IFDRi.d.ts → const-BGCP-OJL.d.ts} +4 -4
- package/dist/{index-B2WbhEgT.d.cts → index-BGEhoDUs.d.cts} +1 -1
- package/dist/{index-B2WbhEgT.d.ts → index-BGEhoDUs.d.ts} +1 -1
- package/dist/index.cjs +156 -19
- 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 +156 -19
- package/dist/index.js.map +1 -1
- package/dist/{payload-types-DPjO_IbQ.d.cts → payload-types-Wa4-eC6x.d.cts} +790 -534
- package/dist/{payload-types-DPjO_IbQ.d.ts → payload-types-Wa4-eC6x.d.ts} +790 -534
- package/dist/query.cjs +63 -13
- package/dist/query.cjs.map +1 -1
- package/dist/query.d.cts +6 -6
- package/dist/query.d.ts +6 -6
- package/dist/query.js +63 -13
- 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 +142 -17
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +32 -7
- package/dist/server.d.ts +32 -7
- package/dist/server.js +142 -17
- package/dist/server.js.map +1 -1
- package/dist/{types-Dlb2mwpX.d.cts → types-BX2mqDf6.d.ts} +46 -6
- package/dist/{types-1fBLrYU7.d.ts → types-CVA10VC-.d.ts} +6 -2
- package/dist/{types-BwT0eeaz.d.cts → types-CmLG-7RL.d.cts} +6 -2
- package/dist/{types-DuSKPiY5.d.ts → types-DChFjQGz.d.cts} +46 -6
- 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 +3 -3
- package/dist/webhook.d.ts +3 -3
- package/package.json +1 -1
package/dist/server.d.cts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { S as ServerCollectionClient } from './collection-client-
|
|
2
|
-
export { C as CollectionClient } from './collection-client-
|
|
3
|
-
import { B as BaseApi,
|
|
4
|
-
import {
|
|
1
|
+
import { S as ServerCollectionClient } from './collection-client-DFXXz0vk.cjs';
|
|
2
|
+
export { C as CollectionClient } from './collection-client-DFXXz0vk.cjs';
|
|
3
|
+
import { B as BaseApi, aN as ServerApiOptions, aQ as StockCheckParams, aR as StockCheckResponse, Y as ListingGroupsParams, ap as ProductListingGroupsResponse, ab as ProductDetailParams, a2 as ProductDetail, bh as ProductDetailPreviewParams, bi as ProductDetailPreviewOptions, bj as ProductUpsertParams, bk as ProductUpsertResponse, k as AddItemParams, aU as UpdateItemParams, aI as RemoveItemParams, l as ApplyDiscountParams, aH as RemoveDiscountParams, t as ClearCartParams, s as CheckoutParams, G as CreateOrderParams, aV as UpdateOrderParams, aY as UpdateTransactionParams, y as ConfirmPaymentParams, z as ConfirmPaymentResponse, F as CreateFulfillmentParams, aT as UpdateFulfillmentParams, m as BulkImportFulfillmentsParams, n as BulkImportFulfillmentsResponse, H as CreateReturnParams, aX as UpdateReturnParams, aM as ReturnWithRefundParams, aZ as ValidateDiscountParams, a_ as ValidateDiscountResult, o as CalculateShippingParams, p as CalculateShippingResult, a as CommunityClient, c as ClientState, bl as ClientServerConfig } from './types-DChFjQGz.cjs';
|
|
4
|
+
import { i as Cart, j as CartItem, O as Order, n as Transaction, o as Fulfillment, p as Return } from './payload-types-Wa4-eC6x.cjs';
|
|
5
5
|
import './metadata.cjs';
|
|
6
|
-
import './const-
|
|
7
|
-
import './types-
|
|
6
|
+
import './const-AytzliEu.cjs';
|
|
7
|
+
import './types-CmLG-7RL.cjs';
|
|
8
8
|
|
|
9
9
|
type ModerationApiOptions = ServerApiOptions;
|
|
10
10
|
interface CommunityBan {
|
|
@@ -45,6 +45,7 @@ declare class ServerCommerceClient {
|
|
|
45
45
|
stockCheck: (params: StockCheckParams) => Promise<StockCheckResponse>;
|
|
46
46
|
listingGroups: (params: ListingGroupsParams) => Promise<ProductListingGroupsResponse>;
|
|
47
47
|
detail: (params: ProductDetailParams) => Promise<ProductDetail | null>;
|
|
48
|
+
previewDetail: (params: ProductDetailPreviewParams, options: ProductDetailPreviewOptions) => Promise<ProductDetail | null>;
|
|
48
49
|
upsert: (params: ProductUpsertParams) => Promise<ProductUpsertResponse>;
|
|
49
50
|
};
|
|
50
51
|
readonly cart: {
|
|
@@ -85,6 +86,27 @@ declare class ServerCommerceClient {
|
|
|
85
86
|
constructor(options: ServerCommerceClientOptions);
|
|
86
87
|
}
|
|
87
88
|
|
|
89
|
+
type PreviewDetailParams = {
|
|
90
|
+
collection: string;
|
|
91
|
+
id: string;
|
|
92
|
+
};
|
|
93
|
+
type PreviewDetailOptions = {
|
|
94
|
+
previewToken: string;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Server-side client for the generic preview detail endpoint
|
|
98
|
+
* (`POST /api/preview/detail`). Returns `null` on 404 so callers can
|
|
99
|
+
* branch on missing previews without try/catch noise.
|
|
100
|
+
*
|
|
101
|
+
* Auth uses the standard server credentials (`secretKey` +
|
|
102
|
+
* `publishableKey`) plus the short-lived `X-Preview-Token` header issued
|
|
103
|
+
* by the Console preview start endpoint.
|
|
104
|
+
*/
|
|
105
|
+
declare class ServerPreviewClient extends BaseApi {
|
|
106
|
+
constructor(options: ServerApiOptions);
|
|
107
|
+
detail<T = unknown>(params: PreviewDetailParams, options: PreviewDetailOptions): Promise<T | null>;
|
|
108
|
+
}
|
|
109
|
+
|
|
88
110
|
declare class ServerClient {
|
|
89
111
|
commerce: ServerCommerceClient;
|
|
90
112
|
community: CommunityClient & {
|
|
@@ -95,6 +117,9 @@ declare class ServerClient {
|
|
|
95
117
|
}>;
|
|
96
118
|
};
|
|
97
119
|
};
|
|
120
|
+
preview: {
|
|
121
|
+
detail: <T = unknown>(params: PreviewDetailParams, options: PreviewDetailOptions) => Promise<T | null>;
|
|
122
|
+
};
|
|
98
123
|
collections: ServerCollectionClient;
|
|
99
124
|
lastRequestId: string | null;
|
|
100
125
|
protected state: ClientState;
|
|
@@ -109,4 +134,4 @@ declare class ServerClient {
|
|
|
109
134
|
*/
|
|
110
135
|
declare function createServerClient(options: ClientServerConfig): ServerClient;
|
|
111
136
|
|
|
112
|
-
export { ClientServerConfig, CommunityClient, ModerationApi, ServerClient, ServerCollectionClient, ServerCommerceClient, createServerClient };
|
|
137
|
+
export { ClientServerConfig, CommunityClient, ModerationApi, type PreviewDetailOptions, type PreviewDetailParams, ServerClient, ServerCollectionClient, ServerCommerceClient, ServerPreviewClient, createServerClient };
|
package/dist/server.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { S as ServerCollectionClient } from './collection-client-
|
|
2
|
-
export { C as CollectionClient } from './collection-client-
|
|
3
|
-
import { B as BaseApi,
|
|
4
|
-
import {
|
|
1
|
+
import { S as ServerCollectionClient } from './collection-client-ByzY3hWK.js';
|
|
2
|
+
export { C as CollectionClient } from './collection-client-ByzY3hWK.js';
|
|
3
|
+
import { B as BaseApi, aN as ServerApiOptions, aQ as StockCheckParams, aR as StockCheckResponse, Y as ListingGroupsParams, ap as ProductListingGroupsResponse, ab as ProductDetailParams, a2 as ProductDetail, bh as ProductDetailPreviewParams, bi as ProductDetailPreviewOptions, bj as ProductUpsertParams, bk as ProductUpsertResponse, k as AddItemParams, aU as UpdateItemParams, aI as RemoveItemParams, l as ApplyDiscountParams, aH as RemoveDiscountParams, t as ClearCartParams, s as CheckoutParams, G as CreateOrderParams, aV as UpdateOrderParams, aY as UpdateTransactionParams, y as ConfirmPaymentParams, z as ConfirmPaymentResponse, F as CreateFulfillmentParams, aT as UpdateFulfillmentParams, m as BulkImportFulfillmentsParams, n as BulkImportFulfillmentsResponse, H as CreateReturnParams, aX as UpdateReturnParams, aM as ReturnWithRefundParams, aZ as ValidateDiscountParams, a_ as ValidateDiscountResult, o as CalculateShippingParams, p as CalculateShippingResult, a as CommunityClient, c as ClientState, bl as ClientServerConfig } from './types-BX2mqDf6.js';
|
|
4
|
+
import { i as Cart, j as CartItem, O as Order, n as Transaction, o as Fulfillment, p as Return } from './payload-types-Wa4-eC6x.js';
|
|
5
5
|
import './metadata.js';
|
|
6
|
-
import './const-
|
|
7
|
-
import './types-
|
|
6
|
+
import './const-BGCP-OJL.js';
|
|
7
|
+
import './types-CVA10VC-.js';
|
|
8
8
|
|
|
9
9
|
type ModerationApiOptions = ServerApiOptions;
|
|
10
10
|
interface CommunityBan {
|
|
@@ -45,6 +45,7 @@ declare class ServerCommerceClient {
|
|
|
45
45
|
stockCheck: (params: StockCheckParams) => Promise<StockCheckResponse>;
|
|
46
46
|
listingGroups: (params: ListingGroupsParams) => Promise<ProductListingGroupsResponse>;
|
|
47
47
|
detail: (params: ProductDetailParams) => Promise<ProductDetail | null>;
|
|
48
|
+
previewDetail: (params: ProductDetailPreviewParams, options: ProductDetailPreviewOptions) => Promise<ProductDetail | null>;
|
|
48
49
|
upsert: (params: ProductUpsertParams) => Promise<ProductUpsertResponse>;
|
|
49
50
|
};
|
|
50
51
|
readonly cart: {
|
|
@@ -85,6 +86,27 @@ declare class ServerCommerceClient {
|
|
|
85
86
|
constructor(options: ServerCommerceClientOptions);
|
|
86
87
|
}
|
|
87
88
|
|
|
89
|
+
type PreviewDetailParams = {
|
|
90
|
+
collection: string;
|
|
91
|
+
id: string;
|
|
92
|
+
};
|
|
93
|
+
type PreviewDetailOptions = {
|
|
94
|
+
previewToken: string;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Server-side client for the generic preview detail endpoint
|
|
98
|
+
* (`POST /api/preview/detail`). Returns `null` on 404 so callers can
|
|
99
|
+
* branch on missing previews without try/catch noise.
|
|
100
|
+
*
|
|
101
|
+
* Auth uses the standard server credentials (`secretKey` +
|
|
102
|
+
* `publishableKey`) plus the short-lived `X-Preview-Token` header issued
|
|
103
|
+
* by the Console preview start endpoint.
|
|
104
|
+
*/
|
|
105
|
+
declare class ServerPreviewClient extends BaseApi {
|
|
106
|
+
constructor(options: ServerApiOptions);
|
|
107
|
+
detail<T = unknown>(params: PreviewDetailParams, options: PreviewDetailOptions): Promise<T | null>;
|
|
108
|
+
}
|
|
109
|
+
|
|
88
110
|
declare class ServerClient {
|
|
89
111
|
commerce: ServerCommerceClient;
|
|
90
112
|
community: CommunityClient & {
|
|
@@ -95,6 +117,9 @@ declare class ServerClient {
|
|
|
95
117
|
}>;
|
|
96
118
|
};
|
|
97
119
|
};
|
|
120
|
+
preview: {
|
|
121
|
+
detail: <T = unknown>(params: PreviewDetailParams, options: PreviewDetailOptions) => Promise<T | null>;
|
|
122
|
+
};
|
|
98
123
|
collections: ServerCollectionClient;
|
|
99
124
|
lastRequestId: string | null;
|
|
100
125
|
protected state: ClientState;
|
|
@@ -109,4 +134,4 @@ declare class ServerClient {
|
|
|
109
134
|
*/
|
|
110
135
|
declare function createServerClient(options: ClientServerConfig): ServerClient;
|
|
111
136
|
|
|
112
|
-
export { ClientServerConfig, CommunityClient, ModerationApi, ServerClient, ServerCollectionClient, ServerCommerceClient, createServerClient };
|
|
137
|
+
export { ClientServerConfig, CommunityClient, ModerationApi, type PreviewDetailOptions, type PreviewDetailParams, ServerClient, ServerCollectionClient, ServerCommerceClient, ServerPreviewClient, createServerClient };
|
package/dist/server.js
CHANGED
|
@@ -45,8 +45,16 @@ var ValidationError = class extends SDKError {
|
|
|
45
45
|
}
|
|
46
46
|
};
|
|
47
47
|
var ApiError = class extends SDKError {
|
|
48
|
-
constructor(message, status, details, userMessage, suggestion) {
|
|
49
|
-
super(
|
|
48
|
+
constructor(message, status, details, userMessage, suggestion, requestId) {
|
|
49
|
+
super(
|
|
50
|
+
"API_ERROR",
|
|
51
|
+
message,
|
|
52
|
+
status,
|
|
53
|
+
details,
|
|
54
|
+
userMessage,
|
|
55
|
+
suggestion,
|
|
56
|
+
requestId
|
|
57
|
+
);
|
|
50
58
|
this.name = "ApiError";
|
|
51
59
|
}
|
|
52
60
|
};
|
|
@@ -77,19 +85,43 @@ var UsageLimitError = class extends SDKError {
|
|
|
77
85
|
};
|
|
78
86
|
var AuthError = class extends SDKError {
|
|
79
87
|
constructor(message, details, userMessage, suggestion, requestId) {
|
|
80
|
-
super(
|
|
88
|
+
super(
|
|
89
|
+
"auth_error",
|
|
90
|
+
message,
|
|
91
|
+
401,
|
|
92
|
+
details,
|
|
93
|
+
userMessage,
|
|
94
|
+
suggestion,
|
|
95
|
+
requestId
|
|
96
|
+
);
|
|
81
97
|
this.name = "AuthError";
|
|
82
98
|
}
|
|
83
99
|
};
|
|
84
100
|
var PermissionError = class extends SDKError {
|
|
85
101
|
constructor(message, details, userMessage, suggestion, requestId) {
|
|
86
|
-
super(
|
|
102
|
+
super(
|
|
103
|
+
"permission_error",
|
|
104
|
+
message,
|
|
105
|
+
403,
|
|
106
|
+
details,
|
|
107
|
+
userMessage,
|
|
108
|
+
suggestion,
|
|
109
|
+
requestId
|
|
110
|
+
);
|
|
87
111
|
this.name = "PermissionError";
|
|
88
112
|
}
|
|
89
113
|
};
|
|
90
114
|
var NotFoundError = class extends SDKError {
|
|
91
115
|
constructor(message, details, userMessage, suggestion, requestId) {
|
|
92
|
-
super(
|
|
116
|
+
super(
|
|
117
|
+
"not_found",
|
|
118
|
+
message,
|
|
119
|
+
404,
|
|
120
|
+
details,
|
|
121
|
+
userMessage,
|
|
122
|
+
suggestion,
|
|
123
|
+
requestId
|
|
124
|
+
);
|
|
93
125
|
this.name = "NotFoundError";
|
|
94
126
|
}
|
|
95
127
|
};
|
|
@@ -101,14 +133,22 @@ var ConflictError = class extends SDKError {
|
|
|
101
133
|
};
|
|
102
134
|
var RateLimitError = class extends SDKError {
|
|
103
135
|
constructor(message, retryAfter, details, userMessage, suggestion, requestId) {
|
|
104
|
-
super(
|
|
136
|
+
super(
|
|
137
|
+
"rate_limit_exceeded",
|
|
138
|
+
message,
|
|
139
|
+
429,
|
|
140
|
+
details,
|
|
141
|
+
userMessage,
|
|
142
|
+
suggestion,
|
|
143
|
+
requestId
|
|
144
|
+
);
|
|
105
145
|
this.name = "RateLimitError";
|
|
106
146
|
this.retryAfter = retryAfter;
|
|
107
147
|
}
|
|
108
148
|
};
|
|
109
149
|
var createNetworkError = (message, status, details, userMessage, suggestion) => new NetworkError(message, status, details, userMessage, suggestion);
|
|
110
150
|
var createValidationError = (message, details, userMessage, suggestion, status) => new ValidationError(message, details, userMessage, suggestion, status);
|
|
111
|
-
var createApiError = (message, status, details, userMessage, suggestion) => new ApiError(message, status, details, userMessage, suggestion);
|
|
151
|
+
var createApiError = (message, status, details, userMessage, suggestion, requestId) => new ApiError(message, status, details, userMessage, suggestion, requestId);
|
|
112
152
|
var createConfigError = (message, details, userMessage, suggestion) => new ConfigError(message, details, userMessage, suggestion);
|
|
113
153
|
var createTimeoutError = (message, details, userMessage, suggestion) => new TimeoutError(message, details, userMessage, suggestion);
|
|
114
154
|
var createUsageLimitError = (message, usage, details, userMessage, suggestion) => new UsageLimitError(message, usage, details, userMessage, suggestion);
|
|
@@ -116,7 +156,14 @@ var createAuthError = (message, details, userMessage, suggestion, requestId) =>
|
|
|
116
156
|
var createPermissionError = (message, details, userMessage, suggestion, requestId) => new PermissionError(message, details, userMessage, suggestion, requestId);
|
|
117
157
|
var createNotFoundError = (message, details, userMessage, suggestion, requestId) => new NotFoundError(message, details, userMessage, suggestion, requestId);
|
|
118
158
|
var createConflictError = (message, details, userMessage, suggestion, requestId) => new ConflictError(message, details, userMessage, suggestion, requestId);
|
|
119
|
-
var createRateLimitError = (message, retryAfter, details, userMessage, suggestion, requestId) => new RateLimitError(
|
|
159
|
+
var createRateLimitError = (message, retryAfter, details, userMessage, suggestion, requestId) => new RateLimitError(
|
|
160
|
+
message,
|
|
161
|
+
retryAfter,
|
|
162
|
+
details,
|
|
163
|
+
userMessage,
|
|
164
|
+
suggestion,
|
|
165
|
+
requestId
|
|
166
|
+
);
|
|
120
167
|
|
|
121
168
|
// src/core/internal/utils/credentials.ts
|
|
122
169
|
function requirePublishableKeyForSecret(apiName, publishableKey, secretKey) {
|
|
@@ -156,6 +203,22 @@ function debugLog(debug, type, message, data) {
|
|
|
156
203
|
console.groupEnd();
|
|
157
204
|
}
|
|
158
205
|
}
|
|
206
|
+
function redactSensitiveHeader(value) {
|
|
207
|
+
const prefix = value.toLowerCase().startsWith("bearer ") ? "Bearer " : "";
|
|
208
|
+
return value.length > 20 ? `${prefix}...****${value.slice(-8)}` : "****";
|
|
209
|
+
}
|
|
210
|
+
function redactSensitiveHeaders(headers) {
|
|
211
|
+
const redacted = Object.fromEntries(headers.entries());
|
|
212
|
+
if (redacted.authorization) {
|
|
213
|
+
redacted.authorization = redactSensitiveHeader(redacted.authorization);
|
|
214
|
+
}
|
|
215
|
+
if (redacted["x-preview-token"]) {
|
|
216
|
+
redacted["x-preview-token"] = redactSensitiveHeader(
|
|
217
|
+
redacted["x-preview-token"]
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
return redacted;
|
|
221
|
+
}
|
|
159
222
|
function getErrorSuggestion(status) {
|
|
160
223
|
if (status === 400)
|
|
161
224
|
return "The request data failed validation. Check field values and types.";
|
|
@@ -230,6 +293,12 @@ async function parseErrorBody(response) {
|
|
|
230
293
|
return fallback;
|
|
231
294
|
}
|
|
232
295
|
}
|
|
296
|
+
function getParsedErrorSuggestion(status, parsed) {
|
|
297
|
+
if (status === 403 && parsed.reason === "origin_not_allowed") {
|
|
298
|
+
return "Add the request origin to the tenant Browser API origins, then retry the browser request.";
|
|
299
|
+
}
|
|
300
|
+
return getErrorSuggestion(status);
|
|
301
|
+
}
|
|
233
302
|
async function delay(ms) {
|
|
234
303
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
235
304
|
}
|
|
@@ -243,7 +312,7 @@ function createHttpStatusError(status, parsed, details, requestId) {
|
|
|
243
312
|
...parsed.errors && { errors: parsed.errors },
|
|
244
313
|
...parsed.body && { body: parsed.body }
|
|
245
314
|
};
|
|
246
|
-
const suggestion =
|
|
315
|
+
const suggestion = getParsedErrorSuggestion(status, parsed);
|
|
247
316
|
if (status === 400 || status === 422) {
|
|
248
317
|
return attachRequestId(
|
|
249
318
|
createValidationError(
|
|
@@ -349,11 +418,7 @@ async function httpFetch(url, options) {
|
|
|
349
418
|
if (!headers.has("Content-Type") && requestInit.body && !(requestInit.body instanceof FormData)) {
|
|
350
419
|
headers.set("Content-Type", "application/json");
|
|
351
420
|
}
|
|
352
|
-
const redactedHeaders =
|
|
353
|
-
if (redactedHeaders["authorization"]) {
|
|
354
|
-
const token = redactedHeaders["authorization"];
|
|
355
|
-
redactedHeaders["authorization"] = token.length > 20 ? `Bearer ...****${token.slice(-8)}` : "****";
|
|
356
|
-
}
|
|
421
|
+
const redactedHeaders = redactSensitiveHeaders(headers);
|
|
357
422
|
debugLog(debug, "request", url, {
|
|
358
423
|
method: requestInit.method || "GET",
|
|
359
424
|
headers: redactedHeaders,
|
|
@@ -371,7 +436,7 @@ async function httpFetch(url, options) {
|
|
|
371
436
|
debugLog(debug, "response", url, {
|
|
372
437
|
status: response.status,
|
|
373
438
|
statusText: response.statusText,
|
|
374
|
-
headers:
|
|
439
|
+
headers: redactSensitiveHeaders(response.headers)
|
|
375
440
|
});
|
|
376
441
|
if (!response.ok) {
|
|
377
442
|
if (isUsageLimitExceededResponse(response)) {
|
|
@@ -1020,7 +1085,7 @@ async function parseApiResponse(response, endpoint) {
|
|
|
1020
1085
|
if (reason === "validation_failed") {
|
|
1021
1086
|
throw attachRequestId(createValidationError(errorMessage, data, errorMessage), requestId);
|
|
1022
1087
|
}
|
|
1023
|
-
if (reason === "token_expired" || reason === "token_invalid" || reason === "key_invalid" || reason === "key_revoked") {
|
|
1088
|
+
if (reason === "token_expired" || reason === "token_invalid" || reason === "preview_token_invalid" || reason === "preview_token_required" || reason === "key_invalid" || reason === "key_revoked") {
|
|
1024
1089
|
throw attachRequestId(createAuthError(errorMessage, data, errorMessage), requestId);
|
|
1025
1090
|
}
|
|
1026
1091
|
if (reason === "forbidden") {
|
|
@@ -1449,7 +1514,61 @@ var OrderApi = class extends BaseApi {
|
|
|
1449
1514
|
}
|
|
1450
1515
|
};
|
|
1451
1516
|
|
|
1517
|
+
// src/core/preview/server-preview-client.ts
|
|
1518
|
+
var ServerPreviewClient = class extends BaseApi {
|
|
1519
|
+
constructor(options) {
|
|
1520
|
+
super("ServerPreviewClient", options);
|
|
1521
|
+
}
|
|
1522
|
+
async detail(params, options) {
|
|
1523
|
+
let response;
|
|
1524
|
+
try {
|
|
1525
|
+
response = await httpFetch("/api/preview/detail", {
|
|
1526
|
+
method: "POST",
|
|
1527
|
+
apiUrl: this.apiUrl,
|
|
1528
|
+
publishableKey: this.publishableKey,
|
|
1529
|
+
secretKey: this.secretKey,
|
|
1530
|
+
body: JSON.stringify(params),
|
|
1531
|
+
headers: { "X-Preview-Token": options.previewToken }
|
|
1532
|
+
});
|
|
1533
|
+
} catch (err) {
|
|
1534
|
+
const id = err instanceof SDKError ? err.requestId ?? null : null;
|
|
1535
|
+
this.onRequestId?.(id);
|
|
1536
|
+
if (err instanceof NotFoundError) return null;
|
|
1537
|
+
throw err;
|
|
1538
|
+
}
|
|
1539
|
+
const requestId = response.headers.get("x-request-id") ?? null;
|
|
1540
|
+
this.onRequestId?.(requestId);
|
|
1541
|
+
try {
|
|
1542
|
+
return await response.json();
|
|
1543
|
+
} catch (err) {
|
|
1544
|
+
if (err instanceof SyntaxError) {
|
|
1545
|
+
throw createApiError(
|
|
1546
|
+
"Invalid JSON response from /api/preview/detail",
|
|
1547
|
+
200,
|
|
1548
|
+
void 0,
|
|
1549
|
+
"Server returned an invalid response.",
|
|
1550
|
+
"Check if the API endpoint is available.",
|
|
1551
|
+
requestId ?? void 0
|
|
1552
|
+
);
|
|
1553
|
+
}
|
|
1554
|
+
throw err;
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
};
|
|
1558
|
+
|
|
1452
1559
|
// src/core/commerce/server-commerce-client.ts
|
|
1560
|
+
var PreviewProductApi = class extends ProductApi {
|
|
1561
|
+
constructor(options) {
|
|
1562
|
+
super(options);
|
|
1563
|
+
this.previewApi = new ServerPreviewClient(options);
|
|
1564
|
+
}
|
|
1565
|
+
async previewDetail(params, options) {
|
|
1566
|
+
return this.previewApi.detail(
|
|
1567
|
+
{ collection: "products", id: params.id },
|
|
1568
|
+
options
|
|
1569
|
+
);
|
|
1570
|
+
}
|
|
1571
|
+
};
|
|
1453
1572
|
var ServerCommerceClient = class {
|
|
1454
1573
|
constructor(options) {
|
|
1455
1574
|
const publishableKey = requirePublishableKeyForSecret(
|
|
@@ -1463,7 +1582,7 @@ var ServerCommerceClient = class {
|
|
|
1463
1582
|
apiUrl: options.apiUrl,
|
|
1464
1583
|
onRequestId: options.onRequestId
|
|
1465
1584
|
};
|
|
1466
|
-
const productApi = new
|
|
1585
|
+
const productApi = new PreviewProductApi(serverOptions);
|
|
1467
1586
|
const cartApi = new CartApi(serverOptions);
|
|
1468
1587
|
const discountApi = new DiscountApi(serverOptions);
|
|
1469
1588
|
const shippingApi = new ShippingApi(serverOptions);
|
|
@@ -1472,6 +1591,7 @@ var ServerCommerceClient = class {
|
|
|
1472
1591
|
stockCheck: productApi.stockCheck.bind(productApi),
|
|
1473
1592
|
listingGroups: productApi.listingGroups.bind(productApi),
|
|
1474
1593
|
detail: productApi.detail.bind(productApi),
|
|
1594
|
+
previewDetail: productApi.previewDetail.bind(productApi),
|
|
1475
1595
|
upsert: productApi.upsert.bind(productApi)
|
|
1476
1596
|
};
|
|
1477
1597
|
this.cart = {
|
|
@@ -1538,6 +1658,10 @@ var ServerClient = class {
|
|
|
1538
1658
|
onRequestId
|
|
1539
1659
|
};
|
|
1540
1660
|
this.commerce = new ServerCommerceClient(serverOptions);
|
|
1661
|
+
const previewApi = new ServerPreviewClient(serverOptions);
|
|
1662
|
+
this.preview = {
|
|
1663
|
+
detail: previewApi.detail.bind(previewApi)
|
|
1664
|
+
};
|
|
1541
1665
|
const communityClient = new CommunityClient(serverOptions);
|
|
1542
1666
|
const moderationApi = new ModerationApi(serverOptions);
|
|
1543
1667
|
this.community = Object.assign(communityClient, {
|
|
@@ -1573,6 +1697,7 @@ export {
|
|
|
1573
1697
|
ServerClient,
|
|
1574
1698
|
ServerCollectionClient,
|
|
1575
1699
|
ServerCommerceClient,
|
|
1700
|
+
ServerPreviewClient,
|
|
1576
1701
|
createServerClient
|
|
1577
1702
|
};
|
|
1578
1703
|
//# sourceMappingURL=server.js.map
|