@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.
Files changed (46) hide show
  1. package/README.md +74 -20
  2. package/dist/client.cjs +81 -16
  3. package/dist/client.cjs.map +1 -1
  4. package/dist/client.d.cts +6 -6
  5. package/dist/client.d.ts +6 -6
  6. package/dist/client.js +81 -16
  7. package/dist/client.js.map +1 -1
  8. package/dist/{collection-client-B9d9kr1d.d.ts → collection-client-ByzY3hWK.d.ts} +3 -3
  9. package/dist/{collection-client-QPbwimkU.d.cts → collection-client-DFXXz0vk.d.cts} +3 -3
  10. package/dist/{const-VZuk2tWc.d.cts → const-AytzliEu.d.cts} +4 -4
  11. package/dist/{const-B75IFDRi.d.ts → const-BGCP-OJL.d.ts} +4 -4
  12. package/dist/{index-B2WbhEgT.d.cts → index-BGEhoDUs.d.cts} +1 -1
  13. package/dist/{index-B2WbhEgT.d.ts → index-BGEhoDUs.d.ts} +1 -1
  14. package/dist/index.cjs +156 -19
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.d.cts +8 -8
  17. package/dist/index.d.ts +8 -8
  18. package/dist/index.js +156 -19
  19. package/dist/index.js.map +1 -1
  20. package/dist/{payload-types-DPjO_IbQ.d.cts → payload-types-Wa4-eC6x.d.cts} +790 -534
  21. package/dist/{payload-types-DPjO_IbQ.d.ts → payload-types-Wa4-eC6x.d.ts} +790 -534
  22. package/dist/query.cjs +63 -13
  23. package/dist/query.cjs.map +1 -1
  24. package/dist/query.d.cts +6 -6
  25. package/dist/query.d.ts +6 -6
  26. package/dist/query.js +63 -13
  27. package/dist/query.js.map +1 -1
  28. package/dist/realtime.d.cts +2 -2
  29. package/dist/realtime.d.ts +2 -2
  30. package/dist/server.cjs +142 -17
  31. package/dist/server.cjs.map +1 -1
  32. package/dist/server.d.cts +32 -7
  33. package/dist/server.d.ts +32 -7
  34. package/dist/server.js +142 -17
  35. package/dist/server.js.map +1 -1
  36. package/dist/{types-Dlb2mwpX.d.cts → types-BX2mqDf6.d.ts} +46 -6
  37. package/dist/{types-1fBLrYU7.d.ts → types-CVA10VC-.d.ts} +6 -2
  38. package/dist/{types-BwT0eeaz.d.cts → types-CmLG-7RL.d.cts} +6 -2
  39. package/dist/{types-DuSKPiY5.d.ts → types-DChFjQGz.d.cts} +46 -6
  40. package/dist/ui/form.d.cts +1 -1
  41. package/dist/ui/form.d.ts +1 -1
  42. package/dist/ui/video.d.cts +1 -1
  43. package/dist/ui/video.d.ts +1 -1
  44. package/dist/webhook.d.cts +3 -3
  45. package/dist/webhook.d.ts +3 -3
  46. package/package.json +1 -1
package/dist/client.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- import { R as ReadOnlyCollectionClient } from './collection-client-QPbwimkU.cjs';
2
- import { C as CommerceClient, a as CommunityClient, b as CustomerNamespace, c as ClientState, d as ClientConfig } from './types-Dlb2mwpX.cjs';
3
- export { A as ApiQueryOptions, e as ClientMetadata, D as DebugConfig, f as DeepPartial, E as ExtractArrayType, P as PayloadFindResponse, g as PayloadMutationResponse, R as RetryConfig, h as RootClient, h as RootClientType, i as RootCollectionClient, j as RootReadOnlyQueryBuilder, S as Sort, W as Where } from './types-Dlb2mwpX.cjs';
4
- export { C as Collection, P as PublicCollection } from './const-VZuk2tWc.cjs';
1
+ import { R as ReadOnlyCollectionClient } from './collection-client-DFXXz0vk.cjs';
2
+ import { C as CommerceClient, a as CommunityClient, b as CustomerNamespace, c as ClientState, d as ClientConfig } from './types-DChFjQGz.cjs';
3
+ export { A as ApiQueryOptions, e as ClientMetadata, D as DebugConfig, f as DeepPartial, E as ExtractArrayType, P as PayloadFindResponse, g as PayloadMutationResponse, R as RetryConfig, h as RootClient, h as RootClientType, i as RootCollectionClient, j as RootReadOnlyQueryBuilder, S as Sort, W as Where } from './types-DChFjQGz.cjs';
4
+ export { C as Collection, P as PublicCollection } from './const-AytzliEu.cjs';
5
5
  import './metadata.cjs';
6
- import './types-BwT0eeaz.cjs';
7
- import './payload-types-DPjO_IbQ.cjs';
6
+ import './types-CmLG-7RL.cjs';
7
+ import './payload-types-Wa4-eC6x.cjs';
8
8
 
9
9
  declare class Client {
10
10
  commerce: CommerceClient;
package/dist/client.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { R as ReadOnlyCollectionClient } from './collection-client-B9d9kr1d.js';
2
- import { C as CommerceClient, a as CommunityClient, b as CustomerNamespace, c as ClientState, d as ClientConfig } from './types-DuSKPiY5.js';
3
- export { A as ApiQueryOptions, e as ClientMetadata, D as DebugConfig, f as DeepPartial, E as ExtractArrayType, P as PayloadFindResponse, g as PayloadMutationResponse, R as RetryConfig, h as RootClient, h as RootClientType, i as RootCollectionClient, j as RootReadOnlyQueryBuilder, S as Sort, W as Where } from './types-DuSKPiY5.js';
4
- export { C as Collection, P as PublicCollection } from './const-B75IFDRi.js';
1
+ import { R as ReadOnlyCollectionClient } from './collection-client-ByzY3hWK.js';
2
+ import { C as CommerceClient, a as CommunityClient, b as CustomerNamespace, c as ClientState, d as ClientConfig } from './types-BX2mqDf6.js';
3
+ export { A as ApiQueryOptions, e as ClientMetadata, D as DebugConfig, f as DeepPartial, E as ExtractArrayType, P as PayloadFindResponse, g as PayloadMutationResponse, R as RetryConfig, h as RootClient, h as RootClientType, i as RootCollectionClient, j as RootReadOnlyQueryBuilder, S as Sort, W as Where } from './types-BX2mqDf6.js';
4
+ export { C as Collection, P as PublicCollection } from './const-BGCP-OJL.js';
5
5
  import './metadata.js';
6
- import './types-1fBLrYU7.js';
7
- import './payload-types-DPjO_IbQ.js';
6
+ import './types-CVA10VC-.js';
7
+ import './payload-types-Wa4-eC6x.js';
8
8
 
9
9
  declare class Client {
10
10
  commerce: CommerceClient;
package/dist/client.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("API_ERROR", message, status, details, userMessage, suggestion);
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("auth_error", message, 401, details, userMessage, suggestion, requestId);
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("permission_error", message, 403, details, userMessage, suggestion, requestId);
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("not_found", message, 404, details, userMessage, suggestion, requestId);
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("rate_limit_exceeded", message, 429, details, userMessage, suggestion, requestId);
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(message, retryAfter, details, userMessage, suggestion, requestId);
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 = getErrorSuggestion(status);
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 = Object.fromEntries(headers.entries());
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: Object.fromEntries(response.headers.entries())
439
+ headers: redactSensitiveHeaders(response.headers)
375
440
  });
376
441
  if (!response.ok) {
377
442
  if (isUsageLimitExceededResponse(response)) {
@@ -804,7 +869,7 @@ async function parseApiResponse(response, endpoint) {
804
869
  if (reason === "validation_failed") {
805
870
  throw attachRequestId(createValidationError(errorMessage, data, errorMessage), requestId);
806
871
  }
807
- if (reason === "token_expired" || reason === "token_invalid" || reason === "key_invalid" || reason === "key_revoked") {
872
+ if (reason === "token_expired" || reason === "token_invalid" || reason === "preview_token_invalid" || reason === "preview_token_required" || reason === "key_invalid" || reason === "key_revoked") {
808
873
  throw attachRequestId(createAuthError(errorMessage, data, errorMessage), requestId);
809
874
  }
810
875
  if (reason === "forbidden") {