@zenglobal/api-client 3.0.1 → 3.1.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 +25 -7
- package/dist/configure.d.ts +10 -0
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +11 -0
- package/dist/configure.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,6 +24,11 @@ configureZenClient({
|
|
|
24
24
|
baseUrl: "https://api.zenglobal.au/v1",
|
|
25
25
|
username: process.env.ZEN_API_USER,
|
|
26
26
|
password: process.env.ZEN_API_PASS,
|
|
27
|
+
partner: {
|
|
28
|
+
partnerId: "q74vzg9o",
|
|
29
|
+
name: "my-pos-app",
|
|
30
|
+
version: "1.0.0",
|
|
31
|
+
},
|
|
27
32
|
});
|
|
28
33
|
|
|
29
34
|
// Call any endpoint with full type safety
|
|
@@ -88,13 +93,26 @@ Both error classes extend `Error`, so `instanceof Error` works for catch-all han
|
|
|
88
93
|
|
|
89
94
|
## Configuration Options
|
|
90
95
|
|
|
91
|
-
| Option | Type
|
|
92
|
-
| ---------- |
|
|
93
|
-
| `baseUrl` | `string`
|
|
94
|
-
| `username` | `string`
|
|
95
|
-
| `password` | `string`
|
|
96
|
-
| `
|
|
97
|
-
| `
|
|
96
|
+
| Option | Type | Default | Description |
|
|
97
|
+
| ---------- | ------------ | -------------- | ---------------------------------- |
|
|
98
|
+
| `baseUrl` | `string` | — | Zen API base URL |
|
|
99
|
+
| `username` | `string` | — | HTTP Basic Auth username |
|
|
100
|
+
| `password` | `string` | — | HTTP Basic Auth password |
|
|
101
|
+
| `partner` | `ZenPartner` | — | Partner identification (see below) |
|
|
102
|
+
| `timeout` | `number` | `30000` | Request timeout in ms |
|
|
103
|
+
| `retry` | `object` | `{ limit: 3 }` | Retry configuration |
|
|
104
|
+
|
|
105
|
+
### Partner Identification
|
|
106
|
+
|
|
107
|
+
Every client must specify a partner identity via the `partner` property. This sets the `zen-client-user-agent` header on all requests, allowing Zen to attribute API traffic to the correct integration partner.
|
|
108
|
+
|
|
109
|
+
| Field | Type | Description |
|
|
110
|
+
| ----------- | -------- | -------------------------------------- |
|
|
111
|
+
| `partnerId` | `string` | 8-character partner ID assigned by Zen |
|
|
112
|
+
| `name` | `string` | Name of the integrating application |
|
|
113
|
+
| `version` | `string` | Version of the integrating application |
|
|
114
|
+
|
|
115
|
+
Contact Zen Global to obtain your partner ID.
|
|
98
116
|
|
|
99
117
|
## Advanced Usage
|
|
100
118
|
|
package/dist/configure.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import type { Client } from "./client/client/index.js";
|
|
2
|
+
export interface ZenPartner {
|
|
3
|
+
/** Partner ID assigned by Zen Global */
|
|
4
|
+
partnerId: string;
|
|
5
|
+
/** Name of the integrating application */
|
|
6
|
+
name: string;
|
|
7
|
+
/** Version of the integrating application */
|
|
8
|
+
version: string;
|
|
9
|
+
}
|
|
2
10
|
export interface ZenClientConfig {
|
|
3
11
|
/** Base URL of the Zen API, e.g. 'https://api.zenglobal.au' */
|
|
4
12
|
baseUrl: string;
|
|
@@ -6,6 +14,8 @@ export interface ZenClientConfig {
|
|
|
6
14
|
username: string;
|
|
7
15
|
/** HTTP Basic Auth password */
|
|
8
16
|
password: string;
|
|
17
|
+
/** Partner identification — sets the zen-client-user-agent header */
|
|
18
|
+
partner: ZenPartner;
|
|
9
19
|
/** Request timeout in milliseconds (default: 30000) */
|
|
10
20
|
timeout?: number;
|
|
11
21
|
/** Retry configuration (default: { limit: 3 }) */
|
package/dist/configure.d.ts.map
CHANGED
|
@@ -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,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,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5B;
|
|
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;AAwED;;;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"}
|
package/dist/configure.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
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
|
+
function buildUserAgentHeader(partner) {
|
|
5
|
+
return JSON.stringify({
|
|
6
|
+
name: partner.name,
|
|
7
|
+
version: partner.version,
|
|
8
|
+
partner_id: partner.partnerId,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
4
11
|
let interceptorRegistered = false;
|
|
5
12
|
/**
|
|
6
13
|
* Register the Zen error interceptor on a client instance.
|
|
@@ -75,12 +82,14 @@ export function resetConfigureState() {
|
|
|
75
82
|
*/
|
|
76
83
|
export function configureZenClient(config) {
|
|
77
84
|
const credentials = Buffer.from(`${config.username}:${config.password}`).toString("base64");
|
|
85
|
+
const userAgent = buildUserAgentHeader(config.partner);
|
|
78
86
|
client.setConfig({
|
|
79
87
|
baseUrl: config.baseUrl,
|
|
80
88
|
timeout: config.timeout ?? 30_000,
|
|
81
89
|
retry: { limit: config.retry?.limit ?? 3 },
|
|
82
90
|
headers: {
|
|
83
91
|
Authorization: `Basic ${credentials}`,
|
|
92
|
+
"zen-client-user-agent": userAgent,
|
|
84
93
|
},
|
|
85
94
|
});
|
|
86
95
|
if (!interceptorRegistered) {
|
|
@@ -103,12 +112,14 @@ export function configureZenClient(config) {
|
|
|
103
112
|
export function createZenClient(config) {
|
|
104
113
|
const instance = createClient(createConfig());
|
|
105
114
|
const credentials = Buffer.from(`${config.username}:${config.password}`).toString("base64");
|
|
115
|
+
const userAgent = buildUserAgentHeader(config.partner);
|
|
106
116
|
instance.setConfig({
|
|
107
117
|
baseUrl: config.baseUrl,
|
|
108
118
|
timeout: config.timeout ?? 30_000,
|
|
109
119
|
retry: { limit: config.retry?.limit ?? 3 },
|
|
110
120
|
headers: {
|
|
111
121
|
Authorization: `Basic ${credentials}`,
|
|
122
|
+
"zen-client-user-agent": userAgent,
|
|
112
123
|
},
|
|
113
124
|
});
|
|
114
125
|
registerErrorInterceptor(instance);
|
package/dist/configure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { configureZenClient, createZenClient } from "./configure.js";
|
|
2
|
-
export type { ZenClientConfig } from "./configure.js";
|
|
2
|
+
export type { ZenClientConfig, ZenPartner } from "./configure.js";
|
|
3
3
|
export { ZenApiError, ZenHttpError } from "./errors.js";
|
|
4
4
|
export { client } from "./client/client.gen.js";
|
|
5
5
|
export * from "./client/sdk.gen.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,MAAM,gBAAgB,CAAC;
|
|
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"}
|