@zenglobal/api-client 5.0.10 → 5.0.12

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 (55) hide show
  1. package/README.md +36 -9
  2. package/dist/__tests__/mocks/handlers/loyalty.d.ts +2 -0
  3. package/dist/__tests__/mocks/handlers/loyalty.d.ts.map +1 -0
  4. package/dist/__tests__/mocks/handlers/loyalty.js +21 -0
  5. package/dist/__tests__/mocks/handlers/loyalty.js.map +1 -0
  6. package/dist/__tests__/mocks/handlers/ping.d.ts +2 -0
  7. package/dist/__tests__/mocks/handlers/ping.d.ts.map +1 -0
  8. package/dist/__tests__/mocks/handlers/ping.js +5 -0
  9. package/dist/__tests__/mocks/handlers/ping.js.map +1 -0
  10. package/dist/__tests__/mocks/handlers/voucher.d.ts +2 -0
  11. package/dist/__tests__/mocks/handlers/voucher.d.ts.map +1 -0
  12. package/dist/__tests__/mocks/handlers/voucher.js +33 -0
  13. package/dist/__tests__/mocks/handlers/voucher.js.map +1 -0
  14. package/dist/__tests__/mocks/handlers.d.ts +2 -0
  15. package/dist/__tests__/mocks/handlers.d.ts.map +1 -0
  16. package/dist/__tests__/mocks/handlers.js +9 -0
  17. package/dist/__tests__/mocks/handlers.js.map +1 -0
  18. package/dist/__tests__/mocks/node.d.ts +3 -0
  19. package/dist/__tests__/mocks/node.d.ts.map +1 -0
  20. package/dist/__tests__/mocks/node.js +5 -0
  21. package/dist/__tests__/mocks/node.js.map +1 -0
  22. package/dist/auth/__tests__/tokenManager.test.d.ts +2 -0
  23. package/dist/auth/__tests__/tokenManager.test.d.ts.map +1 -0
  24. package/dist/auth/__tests__/tokenManager.test.js +103 -0
  25. package/dist/auth/__tests__/tokenManager.test.js.map +1 -0
  26. package/dist/auth/tokenManager.d.ts +42 -0
  27. package/dist/auth/tokenManager.d.ts.map +1 -0
  28. package/dist/auth/tokenManager.js +108 -0
  29. package/dist/auth/tokenManager.js.map +1 -0
  30. package/dist/client/client/client.gen.d.ts.map +1 -1
  31. package/dist/client/client/client.gen.js +1 -4
  32. package/dist/client/client/client.gen.js.map +1 -1
  33. package/dist/client/client/types.gen.d.ts +1 -1
  34. package/dist/client/client/types.gen.d.ts.map +1 -1
  35. package/dist/client/client/utils.gen.d.ts +2 -2
  36. package/dist/client/client/utils.gen.d.ts.map +1 -1
  37. package/dist/client/client/utils.gen.js +3 -3
  38. package/dist/client/client/utils.gen.js.map +1 -1
  39. package/dist/client/core/params.gen.js +4 -4
  40. package/dist/client/core/params.gen.js.map +1 -1
  41. package/dist/client/types.gen.d.ts +7 -1
  42. package/dist/client/types.gen.d.ts.map +1 -1
  43. package/dist/configure.d.ts +43 -5
  44. package/dist/configure.d.ts.map +1 -1
  45. package/dist/configure.js +152 -20
  46. package/dist/configure.js.map +1 -1
  47. package/dist/errors.d.ts +15 -0
  48. package/dist/errors.d.ts.map +1 -1
  49. package/dist/errors.js +16 -0
  50. package/dist/errors.js.map +1 -1
  51. package/dist/index.d.ts +3 -3
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +2 -2
  54. package/dist/index.js.map +1 -1
  55. package/package.json +4 -4
@@ -7,13 +7,45 @@ export interface ZenPartner {
7
7
  /** Version of the integrating application */
8
8
  version: string;
9
9
  }
10
- export interface ZenClientConfig {
11
- /** Base URL of the Zen API, e.g. 'https://api.zenglobal.au' */
12
- baseUrl: string;
13
- /** HTTP Basic Auth username */
10
+ /** Default production OAuth token endpoint (separate host from the API). */
11
+ export declare const DEFAULT_TOKEN_URL = "https://auth.zenglobal.au/oauth/token";
12
+ /** Authentication strategy for the client. */
13
+ export type ZenAuth = {
14
+ mode: "basic";
15
+ username: string;
16
+ password: string;
17
+ } | {
18
+ mode: "clientCredentials";
19
+ /** OAuth client id == Partner API key username (model C). */
20
+ clientId: string;
21
+ /** OAuth client secret == Partner API key password. */
22
+ clientSecret: string;
23
+ /** Optional space-delimited scope string. */
24
+ scope?: string;
25
+ /** Token endpoint override; defaults to DEFAULT_TOKEN_URL. */
26
+ tokenUrl?: string;
27
+ };
28
+ /** Fully-resolved auth with all defaults applied. */
29
+ export type ResolvedAuth = {
30
+ mode: "basic";
14
31
  username: string;
15
- /** HTTP Basic Auth password */
16
32
  password: string;
33
+ } | {
34
+ mode: "clientCredentials";
35
+ clientId: string;
36
+ clientSecret: string;
37
+ scope?: string;
38
+ tokenUrl: string;
39
+ };
40
+ export interface ZenClientConfig {
41
+ /** Base URL of the Zen API, e.g. 'https://api.zenglobal.au/v1' */
42
+ baseUrl: string;
43
+ /** HTTP Basic Auth username (legacy; or use `auth`). */
44
+ username?: string;
45
+ /** HTTP Basic Auth password (legacy; or use `auth`). */
46
+ password?: string;
47
+ /** Authentication strategy. When set, takes precedence over username/password. */
48
+ auth?: ZenAuth;
17
49
  /** Partner identification — sets the zen-client-user-agent header */
18
50
  partner: ZenPartner;
19
51
  /** Request timeout in milliseconds (default: 30000) */
@@ -23,6 +55,12 @@ export interface ZenClientConfig {
23
55
  limit?: number;
24
56
  };
25
57
  }
58
+ /**
59
+ * Resolve the effective auth strategy: an explicit `auth` field wins;
60
+ * otherwise fall back to top-level username/password as Basic. Throws if
61
+ * neither yields usable credentials.
62
+ */
63
+ export declare function resolveAuth(config: ZenClientConfig): ResolvedAuth;
26
64
  /**
27
65
  * Reset module-level interceptor registration state.
28
66
  * For use in tests only — not exported from the public index.ts barrel.
@@ -1 +1 @@
1
- {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAIvD,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,EAAE,UAAU,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AA0FD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAqBhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAsB/D"}
1
+ {"version":3,"file":"configure.d.ts","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAKvD,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,0CAA0C,CAAC;AAEzE,8CAA8C;AAC9C,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEN,qDAAqD;AACrD,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEN,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qEAAqE;IACrE,OAAO,EAAE,UAAU,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CA2BjE;AA2JD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAO1C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CA8ChE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAuC/D"}
package/dist/configure.js CHANGED
@@ -1,6 +1,40 @@
1
1
  import { client } from "./client/client.gen.js";
2
2
  import { createClient, createConfig } from "./client/client/index.js";
3
3
  import { ZenApiError, ZenHttpError } from "./errors.js";
4
+ import { TokenManager } from "./auth/tokenManager.js";
5
+ /** Default production OAuth token endpoint (separate host from the API). */
6
+ export const DEFAULT_TOKEN_URL = "https://auth.zenglobal.au/oauth/token";
7
+ /**
8
+ * Resolve the effective auth strategy: an explicit `auth` field wins;
9
+ * otherwise fall back to top-level username/password as Basic. Throws if
10
+ * neither yields usable credentials.
11
+ */
12
+ export function resolveAuth(config) {
13
+ if (config.auth?.mode === "clientCredentials") {
14
+ return {
15
+ mode: "clientCredentials",
16
+ clientId: config.auth.clientId,
17
+ clientSecret: config.auth.clientSecret,
18
+ scope: config.auth.scope,
19
+ tokenUrl: config.auth.tokenUrl ?? DEFAULT_TOKEN_URL,
20
+ };
21
+ }
22
+ if (config.auth?.mode === "basic") {
23
+ return {
24
+ mode: "basic",
25
+ username: config.auth.username,
26
+ password: config.auth.password,
27
+ };
28
+ }
29
+ if (config.username && config.password) {
30
+ return {
31
+ mode: "basic",
32
+ username: config.username,
33
+ password: config.password,
34
+ };
35
+ }
36
+ throw new Error("configureZenClient: no credentials provided. Supply username/password or an `auth` config.");
37
+ }
4
38
  function buildUserAgentHeader(partner) {
5
39
  return JSON.stringify({
6
40
  name: partner.name,
@@ -9,6 +43,59 @@ function buildUserAgentHeader(partner) {
9
43
  });
10
44
  }
11
45
  let interceptorRegistered = false;
46
+ let authInterceptorRegistered = false;
47
+ let singletonTokenManager = null;
48
+ // Methods safe to replay on a 401 refresh: idempotent AND body-less, so the
49
+ // manual re-fetch (which cannot replay an already-consumed request body) loses
50
+ // nothing. PUT/DELETE are excluded because they may carry a body.
51
+ const OAUTH_IDEMPOTENT_METHODS = new Set(["GET", "HEAD", "OPTIONS", "TRACE"]);
52
+ /**
53
+ * Apply resolved auth + common config to a client target. Returns the
54
+ * TokenManager when in OAuth mode (so the singleton can store it), else null.
55
+ * `registerInterceptors` is supplied by the caller so the singleton can
56
+ * guard against double-registration while fresh instances always register.
57
+ */
58
+ function applyAuthConfig(target, config, registerInterceptors) {
59
+ const auth = resolveAuth(config);
60
+ const userAgent = buildUserAgentHeader(config.partner);
61
+ const timeout = config.timeout ?? 30_000;
62
+ const retryLimit = config.retry?.limit ?? 3;
63
+ if (auth.mode === "basic") {
64
+ const credentials = Buffer.from(`${auth.username}:${auth.password}`).toString("base64");
65
+ target.setConfig({
66
+ baseUrl: config.baseUrl,
67
+ timeout,
68
+ retry: { limit: retryLimit },
69
+ headers: {
70
+ Authorization: `Basic ${credentials}`,
71
+ "zen-client-user-agent": userAgent,
72
+ },
73
+ kyOptions: {},
74
+ });
75
+ return null;
76
+ }
77
+ // clientCredentials
78
+ const manager = new TokenManager({
79
+ clientId: auth.clientId,
80
+ clientSecret: auth.clientSecret,
81
+ scope: auth.scope,
82
+ tokenUrl: auth.tokenUrl,
83
+ });
84
+ target.setConfig({
85
+ baseUrl: config.baseUrl,
86
+ timeout,
87
+ retry: { limit: retryLimit },
88
+ // Clear any stale static Authorization so the interceptor's Bearer wins
89
+ // (ky merges config headers over the request's; null deletes the key).
90
+ headers: {
91
+ Authorization: null,
92
+ "zen-client-user-agent": userAgent,
93
+ },
94
+ kyOptions: {},
95
+ });
96
+ registerInterceptors(() => manager);
97
+ return manager;
98
+ }
12
99
  /**
13
100
  * Register the Zen error interceptor on a client instance.
14
101
  *
@@ -92,23 +179,51 @@ function registerErrorInterceptor(target) {
92
179
  export function resetConfigureState() {
93
180
  client.interceptors.response.clear();
94
181
  client.interceptors.error.clear();
182
+ client.interceptors.request.clear();
95
183
  interceptorRegistered = false;
184
+ authInterceptorRegistered = false;
185
+ singletonTokenManager = null;
96
186
  }
97
187
  /**
98
188
  * Configure the global Zen API client singleton with authentication and error handling.
99
189
  * Call this once at application startup before making any API calls.
100
190
  */
101
191
  export function configureZenClient(config) {
102
- const credentials = Buffer.from(`${config.username}:${config.password}`).toString("base64");
103
- const userAgent = buildUserAgentHeader(config.partner);
104
- client.setConfig({
105
- baseUrl: config.baseUrl,
106
- timeout: config.timeout ?? 30_000,
107
- retry: { limit: config.retry?.limit ?? 3 },
108
- headers: {
109
- Authorization: `Basic ${credentials}`,
110
- "zen-client-user-agent": userAgent,
111
- },
192
+ singletonTokenManager = applyAuthConfig(client, config, () => {
193
+ if (!authInterceptorRegistered) {
194
+ authInterceptorRegistered = true;
195
+ client.interceptors.request.use(async (request) => {
196
+ const manager = singletonTokenManager;
197
+ if (!manager)
198
+ return request;
199
+ request.headers.set("Authorization", `Bearer ${await manager.getToken()}`);
200
+ return request;
201
+ });
202
+ // Register OAuth 401 refresh+retry response interceptor.
203
+ // Response interceptors fire on every response regardless of ok-ness
204
+ // and can return a replacement Response. This allows manual re-fetch
205
+ // with a fresh token, bypassing ky's retry mechanics.
206
+ client.interceptors.response.use(async (response, request) => {
207
+ const manager = singletonTokenManager;
208
+ if (!manager ||
209
+ response.status !== 401 ||
210
+ !OAUTH_IDEMPOTENT_METHODS.has(request.method.toUpperCase())) {
211
+ return response;
212
+ }
213
+ // Token may have been revoked/expired early. Refresh once and retry
214
+ // the request with the new Bearer. The manual re-fetch bypasses the
215
+ // interceptor chain, so this cannot loop. Non-idempotent methods are
216
+ // excluded above.
217
+ const fresh = await manager.refresh();
218
+ const headers = new Headers(request.headers);
219
+ headers.set("Authorization", `Bearer ${fresh}`);
220
+ const retried = new Request(request.url, {
221
+ method: request.method,
222
+ headers,
223
+ });
224
+ return globalThis.fetch(retried);
225
+ });
226
+ }
112
227
  });
113
228
  if (!interceptorRegistered) {
114
229
  interceptorRegistered = true;
@@ -129,16 +244,33 @@ export function configureZenClient(config) {
129
244
  */
130
245
  export function createZenClient(config) {
131
246
  const instance = createClient(createConfig());
132
- const credentials = Buffer.from(`${config.username}:${config.password}`).toString("base64");
133
- const userAgent = buildUserAgentHeader(config.partner);
134
- instance.setConfig({
135
- baseUrl: config.baseUrl,
136
- timeout: config.timeout ?? 30_000,
137
- retry: { limit: config.retry?.limit ?? 3 },
138
- headers: {
139
- Authorization: `Basic ${credentials}`,
140
- "zen-client-user-agent": userAgent,
141
- },
247
+ applyAuthConfig(instance, config, (getManager) => {
248
+ instance.interceptors.request.use(async (request) => {
249
+ const manager = getManager();
250
+ if (!manager)
251
+ return request;
252
+ request.headers.set("Authorization", `Bearer ${await manager.getToken()}`);
253
+ return request;
254
+ });
255
+ // Register OAuth 401 refresh+retry response interceptor.
256
+ instance.interceptors.response.use(async (response, request) => {
257
+ const manager = getManager();
258
+ if (!manager ||
259
+ response.status !== 401 ||
260
+ !OAUTH_IDEMPOTENT_METHODS.has(request.method.toUpperCase())) {
261
+ return response;
262
+ }
263
+ // Token may have been revoked/expired early. Refresh once and retry
264
+ // the request with the new Bearer.
265
+ const fresh = await manager.refresh();
266
+ const headers = new Headers(request.headers);
267
+ headers.set("Authorization", `Bearer ${fresh}`);
268
+ const retried = new Request(request.url, {
269
+ method: request.method,
270
+ headers,
271
+ });
272
+ return globalThis.fetch(retried);
273
+ });
142
274
  });
143
275
  registerErrorInterceptor(instance);
144
276
  return instance;
@@ -1 +1 @@
1
- {"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -42,4 +42,19 @@ export declare class ZenApiError extends Error {
42
42
  response: Response;
43
43
  });
44
44
  }
45
+ /**
46
+ * Thrown when the OAuth token endpoint cannot mint a client_credentials
47
+ * token (non-2xx response, malformed body, or network failure). Surfaced
48
+ * so consumers can distinguish auth-provisioning failures from ordinary
49
+ * API errors.
50
+ */
51
+ export declare class ZenAuthError extends Error {
52
+ readonly status?: number;
53
+ readonly body?: unknown;
54
+ constructor(opts: {
55
+ message: string;
56
+ status?: number;
57
+ body?: unknown;
58
+ });
59
+ }
45
60
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,QAAQ,EAAE,QAAQ,CAAC;gBAEvB,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,QAAQ,CAAC;KACpB;CAUF;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;gBAEvB,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,QAAQ,CAAC;KACpB;CASF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,QAAQ,EAAE,QAAQ,CAAC;gBAEvB,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,QAAQ,CAAC;KACpB;CAUF;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChC,SAAgB,QAAQ,EAAE,QAAQ,CAAC;gBAEvB,IAAI,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,QAAQ,CAAC;KACpB;CASF;AAED;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChC,SAAgB,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEnB,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;CAMvE"}
package/dist/errors.js CHANGED
@@ -46,4 +46,20 @@ export class ZenApiError extends Error {
46
46
  this.response = opts.response;
47
47
  }
48
48
  }
49
+ /**
50
+ * Thrown when the OAuth token endpoint cannot mint a client_credentials
51
+ * token (non-2xx response, malformed body, or network failure). Surfaced
52
+ * so consumers can distinguish auth-provisioning failures from ordinary
53
+ * API errors.
54
+ */
55
+ export class ZenAuthError extends Error {
56
+ status;
57
+ body;
58
+ constructor(opts) {
59
+ super(opts.message);
60
+ this.name = "ZenAuthError";
61
+ this.status = opts.status;
62
+ this.body = opts.body;
63
+ }
64
+ }
49
65
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrB,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,IAAI,CAAU;IACd,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,QAAQ,CAAW;IAEnC,YAAY,IAOX;QACC,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpB,IAAI,CAAS;IACb,YAAY,CAAS;IACrB,KAAK,CAAU;IACf,MAAM,CAAU;IAChB,QAAQ,CAAW;IAEnC,YAAY,IAMX;QACC,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrB,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,IAAI,CAAU;IACd,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,QAAQ,CAAW;IAEnC,YAAY,IAOX;QACC,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpB,IAAI,CAAS;IACb,YAAY,CAAS;IACrB,KAAK,CAAU;IACf,MAAM,CAAU;IAChB,QAAQ,CAAW;IAEnC,YAAY,IAMX;QACC,KAAK,CAAC,iBAAiB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAChC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrB,MAAM,CAAU;IAChB,IAAI,CAAW;IAE/B,YAAY,IAA0D;QACpE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export { configureZenClient, createZenClient } from "./configure.js";
2
- export type { ZenClientConfig, ZenPartner } from "./configure.js";
3
- export { ZenApiError, ZenHttpError } from "./errors.js";
1
+ export { configureZenClient, createZenClient, DEFAULT_TOKEN_URL, } from "./configure.js";
2
+ export type { ZenAuth, ZenClientConfig, ZenPartner } from "./configure.js";
3
+ export { ZenApiError, ZenAuthError, ZenHttpError } from "./errors.js";
4
4
  export { client } from "./client/client.gen.js";
5
5
  export * from "./client/sdk.gen.js";
6
6
  export * from "./client/types.gen.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGxD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGhD,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // Client configuration
2
- export { configureZenClient, createZenClient } from "./configure.js";
2
+ export { configureZenClient, createZenClient, DEFAULT_TOKEN_URL, } from "./configure.js";
3
3
  // Error handling
4
- export { ZenApiError, ZenHttpError } from "./errors.js";
4
+ export { ZenApiError, ZenAuthError, ZenHttpError } from "./errors.js";
5
5
  // Generated client instance
6
6
  export { client } from "./client/client.gen.js";
7
7
  // Generated SDK methods and types
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGrE,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,4BAA4B;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,kCAAkC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEtE,4BAA4B;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,kCAAkC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenglobal/api-client",
3
- "version": "5.0.10",
3
+ "version": "5.0.12",
4
4
  "description": "TypeScript client for the Zen API v1, generated from the OpenAPI specification",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -34,10 +34,10 @@
34
34
  "generate": "openapi-ts",
35
35
  "build": "tsc",
36
36
  "typecheck": "tsc --noEmit",
37
+ "typecheck:scripts": "tsc -p tsconfig.scripts.json",
37
38
  "test": "vitest run",
38
39
  "test:watch": "vitest",
39
- "check:breaking": "tsx scripts/check-breaking-changes.ts",
40
- "changelog:generate": "tsx scripts/generate-changelog.ts"
40
+ "check:breaking": "tsx scripts/check-breaking-changes.ts"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "ky": ">=1.0.0"
@@ -51,5 +51,5 @@
51
51
  "typescript": "^5.7.0",
52
52
  "vitest": "^4.0.18"
53
53
  },
54
- "zenCompatibility": "127.2.0"
54
+ "zenCompatibility": "131.0.0"
55
55
  }