@uengage.io/platform-sdk 0.9.1 → 0.14.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.
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZonesApiError = void 0;
4
+ exports.createZonesClient = createZonesClient;
5
+ const config_1 = require("../config");
6
+ const http_1 = require("../http");
7
+ const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
8
+ class ZonesApiError extends Error {
9
+ status;
10
+ body;
11
+ constructor(status, body) {
12
+ super(`zones API ${status}: ${body}`);
13
+ this.name = 'ZonesApiError';
14
+ this.status = status;
15
+ this.body = body;
16
+ }
17
+ }
18
+ exports.ZonesApiError = ZonesApiError;
19
+ function assertUuid(label, zid) {
20
+ if (typeof zid !== 'string' || !UUID_REGEX.test(zid)) {
21
+ throw new Error(`zones.${label}: zid must be a uuid (got ${JSON.stringify(zid)})`);
22
+ }
23
+ }
24
+ function assertPoint(label, point) {
25
+ const lat = point?.lat;
26
+ const lng = point?.lng;
27
+ if (typeof lat !== 'number' || typeof lng !== 'number') {
28
+ throw new Error(`zones.${label}: point must be { lat: number, lng: number }`);
29
+ }
30
+ if (!Number.isFinite(lat) || lat < -90 || lat > 90) {
31
+ throw new Error(`zones.${label}: lat must be in [-90, 90] (got ${lat})`);
32
+ }
33
+ if (!Number.isFinite(lng) || lng < -180 || lng > 180) {
34
+ throw new Error(`zones.${label}: lng must be in [-180, 180] (got ${lng})`);
35
+ }
36
+ }
37
+ /**
38
+ * Build the `zones` namespace.
39
+ *
40
+ * Shape and contract mirror {@link createBusinessClient} - lazy config
41
+ * resolution via {@link ConfigState}, shared 401-retry via
42
+ * {@link sendWithAuthRetry}, immutable per-call config; no globals.
43
+ *
44
+ * Writes (`create`, `update`, `replace`, `delete`, batch ops) require a
45
+ * service-actor token. Reads (`get`, `list`, `containing`, `contains`)
46
+ * accept either a service-actor or a user-actor token. The SDK does not
47
+ * enforce this - the server returns 401/403 and we surface it as
48
+ * {@link ZonesApiError}.
49
+ */
50
+ function createZonesClient(input = {}) {
51
+ const state = new config_1.ConfigState();
52
+ state.apply(input);
53
+ async function send(method, path, query, body) {
54
+ const config = state.resolve();
55
+ const url = `${config.baseUrl}${path}${query ?? ''}`;
56
+ const payload = body === undefined ? undefined : JSON.stringify(body);
57
+ return (0, http_1.sendWithAuthRetry)(config, { method, path, url, body: payload });
58
+ }
59
+ async function expectJson(res) {
60
+ if (!res.ok)
61
+ throw new ZonesApiError(res.status, await res.text());
62
+ return (await res.json());
63
+ }
64
+ const client = {
65
+ config(opts) {
66
+ state.apply(opts);
67
+ return client;
68
+ },
69
+ auth(opts) {
70
+ state.setAuth(opts);
71
+ return client;
72
+ },
73
+ async create(input) {
74
+ if (!input || typeof input !== 'object') {
75
+ throw new Error('zones.create: input must be an object with `geometry`');
76
+ }
77
+ const res = await send('POST', '/v1/zones', undefined, input);
78
+ return expectJson(res);
79
+ },
80
+ async get(zid) {
81
+ assertUuid('get', zid);
82
+ const res = await send('GET', `/v1/zones/${zid}`);
83
+ return expectJson(res);
84
+ },
85
+ async update(zid, input) {
86
+ assertUuid('update', zid);
87
+ const res = await send('PATCH', `/v1/zones/${zid}`, undefined, input);
88
+ return expectJson(res);
89
+ },
90
+ async replace(zid, input) {
91
+ assertUuid('replace', zid);
92
+ const res = await send('PUT', `/v1/zones/${zid}`, undefined, input);
93
+ return expectJson(res);
94
+ },
95
+ async delete(zid) {
96
+ assertUuid('delete', zid);
97
+ const res = await send('DELETE', `/v1/zones/${zid}`);
98
+ if (res.status === 204)
99
+ return;
100
+ if (!res.ok)
101
+ throw new ZonesApiError(res.status, await res.text());
102
+ },
103
+ async list(opts = {}) {
104
+ const params = new URLSearchParams();
105
+ if (opts.tags !== undefined)
106
+ params.set('tags', JSON.stringify(opts.tags));
107
+ if (opts.cursor !== undefined)
108
+ params.set('cursor', opts.cursor);
109
+ if (opts.limit !== undefined) {
110
+ if (!Number.isInteger(opts.limit) || opts.limit <= 0) {
111
+ throw new Error(`zones.list: limit must be a positive integer (got ${opts.limit})`);
112
+ }
113
+ params.set('limit', String(opts.limit));
114
+ }
115
+ const qs = params.toString();
116
+ const res = await send('GET', '/v1/zones', qs.length ? `?${qs}` : undefined);
117
+ return expectJson(res);
118
+ },
119
+ async createMany(zones) {
120
+ if (!Array.isArray(zones) || zones.length === 0) {
121
+ throw new Error('zones.createMany: zones must be a non-empty array');
122
+ }
123
+ const res = await send('POST', '/v1/zones/batch/create', undefined, { zones });
124
+ return expectJson(res);
125
+ },
126
+ async deleteMany(zids) {
127
+ if (!Array.isArray(zids) || zids.length === 0) {
128
+ throw new Error('zones.deleteMany: zids must be a non-empty array');
129
+ }
130
+ for (const zid of zids)
131
+ assertUuid('deleteMany', zid);
132
+ const res = await send('POST', '/v1/zones/batch/delete', undefined, { zids });
133
+ return expectJson(res);
134
+ },
135
+ async containing(input) {
136
+ if (!input || typeof input !== 'object') {
137
+ throw new Error('zones.containing: input must include `point`');
138
+ }
139
+ assertPoint('containing', input.point);
140
+ if (input.ids !== undefined) {
141
+ for (const zid of input.ids)
142
+ assertUuid('containing', zid);
143
+ }
144
+ const res = await send('POST', '/v1/zones/containing', undefined, input);
145
+ const body = await expectJson(res);
146
+ return body.zones;
147
+ },
148
+ async contains(zid, point) {
149
+ assertUuid('contains', zid);
150
+ const matches = await client.containing({ point, ids: [zid] });
151
+ return matches.length > 0;
152
+ },
153
+ };
154
+ return client;
155
+ }
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3pvbmVzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2RkEsOENBcUhDO0FBbE5ELHNDQUttQjtBQUNuQixrQ0FBNEM7QUFhNUMsTUFBTSxVQUFVLEdBQUcsaUVBQWlFLENBQUM7QUE2QnJGLE1BQWEsYUFBYyxTQUFRLEtBQUs7SUFDN0IsTUFBTSxDQUFTO0lBQ2YsSUFBSSxDQUFTO0lBRXRCLFlBQVksTUFBYyxFQUFFLElBQVk7UUFDdEMsS0FBSyxDQUFDLGFBQWEsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBVkQsc0NBVUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhLEVBQUUsR0FBVztJQUM1QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyw2QkFBNkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckYsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFhLEVBQUUsS0FBbUM7SUFDckUsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUN2QixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDO0lBQ3ZCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFL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R0FBRyxNQUFNLFVBQVUsQ0FBMkIsR0FBRyxDQUFDLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLO1lBQ3ZCLFVBQVUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMvRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLENBQUM7S0FDRixDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbmZpZ1N0YXRlLFxuICB0eXBlIFBsYXRmb3JtQXV0aCxcbiAgdHlwZSBQbGF0Zm9ybUF1dGhJbnB1dCxcbiAgdHlwZSBQbGF0Zm9ybUNvbmZpZ0lucHV0LFxufSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgc2VuZFdpdGhBdXRoUmV0cnkgfSBmcm9tICcuLi9odHRwJztcbmltcG9ydCB0eXBlIHtcbiAgQ29udGFpbmluZ0lucHV0LFxuICBab25lLFxuICBab25lQ3JlYXRlSW5wdXQsXG4gIFpvbmVDcmVhdGVSZXN1bHQsXG4gIFpvbmVMaXN0T3B0aW9ucyxcbiAgWm9uZUxpc3RQYWdlLFxuICBab25lUGF0Y2hJbnB1dCxcbiAgWm9uZVJlcGxhY2VJbnB1dCxcbiAgWm9uZVN1bW1hcnksXG59IGZyb20gJy4vc2NoZW1hJztcblxuY29uc3QgVVVJRF9SRUdFWCA9IC9eWzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17MTJ9JC9pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFpvbmVzQ2xpZW50IHtcbiAgY29uZmlnKGlucHV0OiBQbGF0Zm9ybUNvbmZpZ0lucHV0KTogWm9uZXNDbGllbnQ7XG4gIGF1dGgoaW5wdXQ6IFBsYXRmb3JtQXV0aElucHV0IHwgUGxhdGZvcm1BdXRoKTogWm9uZXNDbGllbnQ7XG5cbiAgLyoqIFBPU1QgL3YxL3pvbmVzIC0gY3JlYXRlIGEgc2luZ2xlIHpvbmUuICovXG4gIGNyZWF0ZShpbnB1dDogWm9uZUNyZWF0ZUlucHV0KTogUHJvbWlzZTxab25lQ3JlYXRlUmVzdWx0PjtcbiAgLyoqIEdFVCAvdjEvem9uZXMve3ppZH0gLSByZXR1cm5zIHRoZSBmdWxsIHpvbmUgb3IgdGhyb3dzIFpvbmVzQXBpRXJyb3IoNDA0KS4gKi9cbiAgZ2V0KHppZDogc3RyaW5nKTogUHJvbWlzZTxab25lPjtcbiAgLyoqIFBBVENIIC92MS96b25lcy97emlkfSAtIHNoYWxsb3cgdGFnIG1lcmdlOyBudWxsIGRlbGV0ZXMgYSBrZXkuICovXG4gIHVwZGF0ZSh6aWQ6IHN0cmluZywgaW5wdXQ6IFpvbmVQYXRjaElucHV0KTogUHJvbWlzZTxab25lPjtcbiAgLyoqIFBVVCAvdjEvem9uZXMve3ppZH0gLSBmdWxsIHJlcGxhY2Ugb2YgZ2VvbWV0cnkgKyB0YWdzLiAqL1xuICByZXBsYWNlKHppZDogc3RyaW5nLCBpbnB1dDogWm9uZVJlcGxhY2VJbnB1dCk6IFByb21pc2U8Wm9uZT47XG4gIC8qKiBERUxFVEUgL3YxL3pvbmVzL3t6aWR9IC0gNDA0IGlmIG5vdCBwcmVzZW50LiAqL1xuICBkZWxldGUoemlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogR0VUIC92MS96b25lcz90YWdzPS4uLiAtIHRhZy1maWx0ZXJlZCwga2V5c2V0LXBhZ2luYXRlZCBsaXN0aW5nLiAqL1xuICBsaXN0KG9wdHM/OiBab25lTGlzdE9wdGlvbnMpOiBQcm9taXNlPFpvbmVMaXN0UGFnZT47XG4gIC8qKiBQT1NUIC92MS96b25lcy9iYXRjaC9jcmVhdGUgLSBib3VuZGVkIGFycmF5OyByZXR1cm5lZCBpbiBpbnB1dCBvcmRlci4gKi9cbiAgY3JlYXRlTWFueSh6b25lczogcmVhZG9ubHkgWm9uZUNyZWF0ZUlucHV0W10pOiBQcm9taXNlPHsgem9uZXM6IEFycmF5PHsgemlkOiBzdHJpbmcgfT4gfT47XG4gIC8qKiBQT1NUIC92MS96b25lcy9iYXRjaC9kZWxldGUgLSByZXR1cm5zIHRoZSBjb3VudCBhY3R1YWxseSBkZWxldGVkLiAqL1xuICBkZWxldGVNYW55KHppZHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogUHJvbWlzZTx7IGRlbGV0ZWQ6IG51bWJlciB9PjtcblxuICAvKiogUE9TVCAvdjEvem9uZXMvY29udGFpbmluZyAtIHRoZSBzcGF0aWFsIHByaW1pdGl2ZS4gKi9cbiAgY29udGFpbmluZyhpbnB1dDogQ29udGFpbmluZ0lucHV0KTogUHJvbWlzZTxab25lU3VtbWFyeVtdPjtcbiAgLyoqIFN1Z2FyIG92ZXIgY29udGFpbmluZyh7IHBvaW50LCBpZHM6IFt6aWRdIH0pLiBUcnVlIGlmZiB0aGUgem9uZSBjb250YWlucyB0aGUgcG9pbnQuICovXG4gIGNvbnRhaW5zKHppZDogc3RyaW5nLCBwb2ludDogQ29udGFpbmluZ0lucHV0Wydwb2ludCddKTogUHJvbWlzZTxib29sZWFuPjtcbn1cblxuZXhwb3J0IGNsYXNzIFpvbmVzQXBpRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHJlYWRvbmx5IHN0YXR1czogbnVtYmVyO1xuICByZWFkb25seSBib2R5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc3RhdHVzOiBudW1iZXIsIGJvZHk6IHN0cmluZykge1xuICAgIHN1cGVyKGB6b25lcyBBUEkgJHtzdGF0dXN9OiAke2JvZHl9YCk7XG4gICAgdGhpcy5uYW1lID0gJ1pvbmVzQXBpRXJyb3InO1xuICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0VXVpZChsYWJlbDogc3RyaW5nLCB6aWQ6IHN0cmluZyk6IHZvaWQge1xuICBpZiAodHlwZW9mIHppZCAhPT0gJ3N0cmluZycgfHwgIVVVSURfUkVHRVgudGVzdCh6aWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB6b25lcy4ke2xhYmVsfTogemlkIG11c3QgYmUgYSB1dWlkIChnb3QgJHtKU09OLnN0cmluZ2lmeSh6aWQpfSlgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRQb2ludChsYWJlbDogc3RyaW5nLCBwb2ludDogeyBsYXQ6IG51bWJlcjsgbG5nOiBudW1iZXIgfSk6IHZvaWQge1xuICBjb25zdCBsYXQgPSBwb2ludD8ubGF0O1xuICBjb25zdCBsbmcgPSBwb2ludD8ubG5nO1xuICBpZiAodHlwZW9mIGxhdCAhPT0gJ251bWJlcicgfHwgdHlwZW9mIGxuZyAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHpvbmVzLiR7bGFiZWx9OiBwb2ludCBtdXN0IGJlIHsgbGF0OiBudW1iZXIsIGxuZzogbnVtYmVyIH1gKTtcbiAgfVxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShsYXQpIHx8IGxhdCA8IC05MCB8fCBsYXQgPiA5MCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgem9uZXMuJHtsYWJlbH06IGxhdCBtdXN0IGJlIGluIFstOTAsIDkwXSAoZ290ICR7bGF0fSlgKTtcbiAgfVxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShsbmcpIHx8IGxuZyA8IC0xODAgfHwgbG5nID4gMTgwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB6b25lcy4ke2xhYmVsfTogbG5nIG11c3QgYmUgaW4gWy0xODAsIDE4MF0gKGdvdCAke2xuZ30pYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgYHpvbmVzYCBuYW1lc3BhY2UuXG4gKlxuICogU2hhcGUgYW5kIGNvbnRyYWN0IG1pcnJvciB7QGxpbmsgY3JlYXRlQnVzaW5lc3NDbGllbnR9IC0gbGF6eSBjb25maWdcbiAqIHJlc29sdXRpb24gdmlhIHtAbGluayBDb25maWdTdGF0ZX0sIHNoYXJlZCA0MDEtcmV0cnkgdmlhXG4gKiB7QGxpbmsgc2VuZFdpdGhBdXRoUmV0cnl9LCBpbW11dGFibGUgcGVyLWNhbGwgY29uZmlnOyBubyBnbG9iYWxzLlxuICpcbiAqIFdyaXRlcyAoYGNyZWF0ZWAsIGB1cGRhdGVgLCBgcmVwbGFjZWAsIGBkZWxldGVgLCBiYXRjaCBvcHMpIHJlcXVpcmUgYVxuICogc2VydmljZS1hY3RvciB0b2tlbi4gUmVhZHMgKGBnZXRgLCBgbGlzdGAsIGBjb250YWluaW5nYCwgYGNvbnRhaW5zYClcbiAqIGFjY2VwdCBlaXRoZXIgYSBzZXJ2aWNlLWFjdG9yIG9yIGEgdXNlci1hY3RvciB0b2tlbi4gVGhlIFNESyBkb2VzIG5vdFxuICogZW5mb3JjZSB0aGlzIC0gdGhlIHNlcnZlciByZXR1cm5zIDQwMS80MDMgYW5kIHdlIHN1cmZhY2UgaXQgYXNcbiAqIHtAbGluayBab25lc0FwaUVycm9yfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVpvbmVzQ2xpZW50KGlucHV0OiBQbGF0Zm9ybUNvbmZpZ0lucHV0ID0ge30pOiBab25lc0NsaWVudCB7XG4gIGNvbnN0IHN0YXRlID0gbmV3IENvbmZpZ1N0YXRlKCk7XG4gIHN0YXRlLmFwcGx5KGlucHV0KTtcblxuICBhc3luYyBmdW5jdGlvbiBzZW5kKFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBxdWVyeT86IHN0cmluZyxcbiAgICBib2R5PzogdW5rbm93bixcbiAgKTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLnJlc29sdmUoKTtcbiAgICBjb25zdCB1cmwgPSBgJHtjb25maWcuYmFzZVVybH0ke3BhdGh9JHtxdWVyeSA/PyAnJ31gO1xuICAgIGNvbnN0IHBheWxvYWQgPSBib2R5ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICByZXR1cm4gc2VuZFdpdGhBdXRoUmV0cnkoY29uZmlnLCB7IG1ldGhvZCwgcGF0aCwgdXJsLCBib2R5OiBwYXlsb2FkIH0pO1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gZXhwZWN0SnNvbjxUPihyZXM6IFJlc3BvbnNlKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKCFyZXMub2spIHRocm93IG5ldyBab25lc0FwaUVycm9yKHJlcy5zdGF0dXMsIGF3YWl0IHJlcy50ZXh0KCkpO1xuICAgIHJldHVybiAoYXdhaXQgcmVzLmpzb24oKSkgYXMgVDtcbiAgfVxuXG4gIGNvbnN0IGNsaWVudDogWm9uZXNDbGllbnQgPSB7XG4gICAgY29uZmlnKG9wdHMpIHtcbiAgICAgIHN0YXRlLmFwcGx5KG9wdHMpO1xuICAgICAgcmV0dXJuIGNsaWVudDtcbiAgICB9LFxuICAgIGF1dGgob3B0cykge1xuICAgICAgc3RhdGUuc2V0QXV0aChvcHRzKTtcbiAgICAgIHJldHVybiBjbGllbnQ7XG4gICAgfSxcblxuICAgIGFzeW5jIGNyZWF0ZShpbnB1dCkge1xuICAgICAgaWYgKCFpbnB1dCB8fCB0eXBlb2YgaW5wdXQgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignem9uZXMuY3JlYXRlOiBpbnB1dCBtdXN0IGJlIGFuIG9iamVjdCB3aXRoIGBnZW9tZXRyeWAnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BPU1QnLCAnL3YxL3pvbmVzJywgdW5kZWZpbmVkLCBpbnB1dCk7XG4gICAgICByZXR1cm4gZXhwZWN0SnNvbjxab25lQ3JlYXRlUmVzdWx0PihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBnZXQoemlkKSB7XG4gICAgICBhc3NlcnRVdWlkKCdnZXQnLCB6aWQpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnR0VUJywgYC92MS96b25lcy8ke3ppZH1gKTtcbiAgICAgIHJldHVybiBleHBlY3RKc29uPFpvbmU+KHJlcyk7XG4gICAgfSxcblxuICAgIGFzeW5jIHVwZGF0ZSh6aWQsIGlucHV0KSB7XG4gICAgICBhc3NlcnRVdWlkKCd1cGRhdGUnLCB6aWQpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnUEFUQ0gnLCBgL3YxL3pvbmVzLyR7emlkfWAsIHVuZGVmaW5lZCwgaW5wdXQpO1xuICAgICAgcmV0dXJuIGV4cGVjdEpzb248Wm9uZT4ocmVzKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgcmVwbGFjZSh6aWQsIGlucHV0KSB7XG4gICAgICBhc3NlcnRVdWlkKCdyZXBsYWNlJywgemlkKTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BVVCcsIGAvdjEvem9uZXMvJHt6aWR9YCwgdW5kZWZpbmVkLCBpbnB1dCk7XG4gICAgICByZXR1cm4gZXhwZWN0SnNvbjxab25lPihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBkZWxldGUoemlkKSB7XG4gICAgICBhc3NlcnRVdWlkKCdkZWxldGUnLCB6aWQpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnREVMRVRFJywgYC92MS96b25lcy8ke3ppZH1gKTtcbiAgICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDQpIHJldHVybjtcbiAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgWm9uZXNBcGlFcnJvcihyZXMuc3RhdHVzLCBhd2FpdCByZXMudGV4dCgpKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgbGlzdChvcHRzID0ge30pIHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAgIGlmIChvcHRzLnRhZ3MgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgndGFncycsIEpTT04uc3RyaW5naWZ5KG9wdHMudGFncykpO1xuICAgICAgaWYgKG9wdHMuY3Vyc29yICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2N1cnNvcicsIG9wdHMuY3Vyc29yKTtcbiAgICAgIGlmIChvcHRzLmxpbWl0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKG9wdHMubGltaXQpIHx8IG9wdHMubGltaXQgPD0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgem9uZXMubGlzdDogbGltaXQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgKGdvdCAke29wdHMubGltaXR9KWApO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKG9wdHMubGltaXQpKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHFzID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kKCdHRVQnLCAnL3YxL3pvbmVzJywgcXMubGVuZ3RoID8gYD8ke3FzfWAgOiB1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuIGV4cGVjdEpzb248Wm9uZUxpc3RQYWdlPihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBjcmVhdGVNYW55KHpvbmVzKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoem9uZXMpIHx8IHpvbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3pvbmVzLmNyZWF0ZU1hbnk6IHpvbmVzIG11c3QgYmUgYSBub24tZW1wdHkgYXJyYXknKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BPU1QnLCAnL3YxL3pvbmVzL2JhdGNoL2NyZWF0ZScsIHVuZGVmaW5lZCwgeyB6b25lcyB9KTtcbiAgICAgIHJldHVybiBleHBlY3RKc29uPHsgem9uZXM6IEFycmF5PHsgemlkOiBzdHJpbmcgfT4gfT4ocmVzKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZGVsZXRlTWFueSh6aWRzKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoemlkcykgfHwgemlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd6b25lcy5kZWxldGVNYW55OiB6aWRzIG11c3QgYmUgYSBub24tZW1wdHkgYXJyYXknKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgemlkIG9mIHppZHMpIGFzc2VydFV1aWQoJ2RlbGV0ZU1hbnknLCB6aWQpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnUE9TVCcsICcvdjEvem9uZXMvYmF0Y2gvZGVsZXRlJywgdW5kZWZpbmVkLCB7IHppZHMgfSk7XG4gICAgICByZXR1cm4gZXhwZWN0SnNvbjx7IGRlbGV0ZWQ6IG51bWJlciB9PihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBjb250YWluaW5nKGlucHV0KSB7XG4gICAgICBpZiAoIWlucHV0IHx8IHR5cGVvZiBpbnB1dCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd6b25lcy5jb250YWluaW5nOiBpbnB1dCBtdXN0IGluY2x1ZGUgYHBvaW50YCcpO1xuICAgICAgfVxuICAgICAgYXNzZXJ0UG9pbnQoJ2NvbnRhaW5pbmcnLCBpbnB1dC5wb2ludCk7XG4gICAgICBpZiAoaW5wdXQuaWRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCB6aWQgb2YgaW5wdXQuaWRzKSBhc3NlcnRVdWlkKCdjb250YWluaW5nJywgemlkKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BPU1QnLCAnL3YxL3pvbmVzL2NvbnRhaW5pbmcnLCB1bmRlZmluZWQsIGlucHV0KTtcbiAgICAgIGNvbnN0IGJvZHkgPSBhd2FpdCBleHBlY3RKc29uPHsgem9uZXM6IFpvbmVTdW1tYXJ5W10gfT4ocmVzKTtcbiAgICAgIHJldHVybiBib2R5LnpvbmVzO1xuICAgIH0sXG5cbiAgICBhc3luYyBjb250YWlucyh6aWQsIHBvaW50KSB7XG4gICAgICBhc3NlcnRVdWlkKCdjb250YWlucycsIHppZCk7XG4gICAgICBjb25zdCBtYXRjaGVzID0gYXdhaXQgY2xpZW50LmNvbnRhaW5pbmcoeyBwb2ludCwgaWRzOiBbemlkXSB9KTtcbiAgICAgIHJldHVybiBtYXRjaGVzLmxlbmd0aCA+IDA7XG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gY2xpZW50O1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export { createZonesClient, ZonesApiError, type ZonesClient } from './client';
2
+ export type { ContainingInput, GeoJsonMultiPolygon, GeoJsonPolygon, Geometry, PatchTagBag, Point, TagBag, TagFilter, TagValue, Zone, ZoneCreateInput, ZoneCreateResult, ZoneListOptions, ZoneListPage, ZonePatchInput, ZoneReplaceInput, ZoneSummary, } from './schema';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZonesApiError = exports.createZonesClient = void 0;
4
+ var client_1 = require("./client");
5
+ Object.defineProperty(exports, "createZonesClient", { enumerable: true, get: function () { return client_1.createZonesClient; } });
6
+ Object.defineProperty(exports, "ZonesApiError", { enumerable: true, get: function () { return client_1.ZonesApiError; } });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvem9uZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQThFO0FBQXJFLDJHQUFBLGlCQUFpQixPQUFBO0FBQUUsdUdBQUEsYUFBYSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgY3JlYXRlWm9uZXNDbGllbnQsIFpvbmVzQXBpRXJyb3IsIHR5cGUgWm9uZXNDbGllbnQgfSBmcm9tICcuL2NsaWVudCc7XG5leHBvcnQgdHlwZSB7XG4gIENvbnRhaW5pbmdJbnB1dCxcbiAgR2VvSnNvbk11bHRpUG9seWdvbixcbiAgR2VvSnNvblBvbHlnb24sXG4gIEdlb21ldHJ5LFxuICBQYXRjaFRhZ0JhZyxcbiAgUG9pbnQsXG4gIFRhZ0JhZyxcbiAgVGFnRmlsdGVyLFxuICBUYWdWYWx1ZSxcbiAgWm9uZSxcbiAgWm9uZUNyZWF0ZUlucHV0LFxuICBab25lQ3JlYXRlUmVzdWx0LFxuICBab25lTGlzdE9wdGlvbnMsXG4gIFpvbmVMaXN0UGFnZSxcbiAgWm9uZVBhdGNoSW5wdXQsXG4gIFpvbmVSZXBsYWNlSW5wdXQsXG4gIFpvbmVTdW1tYXJ5LFxufSBmcm9tICcuL3NjaGVtYSc7XG4iXX0=
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Type surface for the platform Zones API.
3
+ *
4
+ * The Zones service is a generic, domain-agnostic spatial primitive: it stores
5
+ * tagged polygons and answers point-in-polygon containment queries. It knows
6
+ * nothing about businesses, serviceability, or delivery; those are consumer
7
+ * concerns that compose this primitive.
8
+ *
9
+ * Coordinate convention everywhere in this surface: points are the named
10
+ * object `{ lat, lng }` (never a positional pair). The service converts
11
+ * internally to the PostGIS lng-first order. Polygons follow GeoJSON axis
12
+ * order `[lng, lat]` per the GeoJSON spec.
13
+ */
14
+ /** Latitude/longitude pair. Lat in [-90, 90], lng in [-180, 180]. */
15
+ export interface Point {
16
+ lat: number;
17
+ lng: number;
18
+ }
19
+ /**
20
+ * GeoJSON-2008 Polygon. The first ring is the exterior; subsequent rings
21
+ * are interior (holes). Each coordinate is `[lng, lat]`.
22
+ */
23
+ export interface GeoJsonPolygon {
24
+ type: 'Polygon';
25
+ coordinates: Array<Array<[number, number]>>;
26
+ }
27
+ /**
28
+ * GeoJSON-2008 MultiPolygon. The service normalises Polygon to MultiPolygon
29
+ * on write, so reads always return MultiPolygon.
30
+ */
31
+ export interface GeoJsonMultiPolygon {
32
+ type: 'MultiPolygon';
33
+ coordinates: Array<Array<Array<[number, number]>>>;
34
+ }
35
+ export type Geometry = GeoJsonPolygon | GeoJsonMultiPolygon;
36
+ /**
37
+ * Tag values are flat: a scalar (coerced to string by the service) or a
38
+ * flat array of scalars. Nested objects are rejected on write.
39
+ *
40
+ * `null` is meaningful only inside a PATCH tag bag, where it deletes the
41
+ * key. It is not a storable value. Use {@link PatchTagBag} for PATCH bodies.
42
+ */
43
+ export type TagValue = string | string[];
44
+ export type TagBag = Record<string, TagValue>;
45
+ /** Tag bag accepted by PATCH. `null` deletes the key; everything else is shallow-merged. */
46
+ export type PatchTagBag = Record<string, TagValue | null>;
47
+ /**
48
+ * Filter grammar used by both the listing endpoint and the containment
49
+ * primitive's `tags` selector:
50
+ *
51
+ * - `{ k: "v" }` equality / array-membership: `tags @> {"k":"v"}`
52
+ * - `{ k: ["v1","v2"] }` any-of (IN): per-value `@>` clauses OR-ed
53
+ * - multiple keys AND across keys
54
+ *
55
+ * Stored arrays match scalar filters via JSONB `@>`; the compiler does not
56
+ * need to know the stored shape. Use the dedicated `ids` selector on
57
+ * containment for large id-style sets — tag IN is for low-cardinality
58
+ * value lists (category, status, type).
59
+ */
60
+ export type TagFilter = Record<string, string | string[]>;
61
+ /** The full zone record returned by `get`/`replace`/`update`. */
62
+ export interface Zone {
63
+ zid: string;
64
+ geometry: GeoJsonMultiPolygon;
65
+ tags: TagBag;
66
+ createdAt: string;
67
+ updatedAt: string;
68
+ }
69
+ /** The compact shape returned by `containing`, `list`, and `create`. */
70
+ export interface ZoneSummary {
71
+ zid: string;
72
+ tags: TagBag;
73
+ }
74
+ export interface ZoneListPage {
75
+ zones: ZoneSummary[];
76
+ nextCursor: string | null;
77
+ }
78
+ export interface ZoneCreateResult {
79
+ zid: string;
80
+ tags: TagBag;
81
+ createdAt: string;
82
+ }
83
+ export interface ZoneCreateInput {
84
+ geometry: Geometry;
85
+ tags?: TagBag;
86
+ }
87
+ export interface ZonePatchInput {
88
+ geometry?: Geometry;
89
+ tags?: PatchTagBag;
90
+ }
91
+ export interface ZoneReplaceInput {
92
+ geometry: Geometry;
93
+ tags?: TagBag;
94
+ }
95
+ export interface ZoneListOptions {
96
+ tags?: TagFilter;
97
+ cursor?: string;
98
+ limit?: number;
99
+ }
100
+ export interface ContainingInput {
101
+ point: Point;
102
+ ids?: readonly string[];
103
+ tags?: TagFilter;
104
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ /**
3
+ * Type surface for the platform Zones API.
4
+ *
5
+ * The Zones service is a generic, domain-agnostic spatial primitive: it stores
6
+ * tagged polygons and answers point-in-polygon containment queries. It knows
7
+ * nothing about businesses, serviceability, or delivery; those are consumer
8
+ * concerns that compose this primitive.
9
+ *
10
+ * Coordinate convention everywhere in this surface: points are the named
11
+ * object `{ lat, lng }` (never a positional pair). The service converts
12
+ * internally to the PostGIS lng-first order. Polygons follow GeoJSON axis
13
+ * order `[lng, lat]` per the GeoJSON spec.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3pvbmVzL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7OztHQVlHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUeXBlIHN1cmZhY2UgZm9yIHRoZSBwbGF0Zm9ybSBab25lcyBBUEkuXG4gKlxuICogVGhlIFpvbmVzIHNlcnZpY2UgaXMgYSBnZW5lcmljLCBkb21haW4tYWdub3N0aWMgc3BhdGlhbCBwcmltaXRpdmU6IGl0IHN0b3Jlc1xuICogdGFnZ2VkIHBvbHlnb25zIGFuZCBhbnN3ZXJzIHBvaW50LWluLXBvbHlnb24gY29udGFpbm1lbnQgcXVlcmllcy4gSXQga25vd3NcbiAqIG5vdGhpbmcgYWJvdXQgYnVzaW5lc3Nlcywgc2VydmljZWFiaWxpdHksIG9yIGRlbGl2ZXJ5OyB0aG9zZSBhcmUgY29uc3VtZXJcbiAqIGNvbmNlcm5zIHRoYXQgY29tcG9zZSB0aGlzIHByaW1pdGl2ZS5cbiAqXG4gKiBDb29yZGluYXRlIGNvbnZlbnRpb24gZXZlcnl3aGVyZSBpbiB0aGlzIHN1cmZhY2U6IHBvaW50cyBhcmUgdGhlIG5hbWVkXG4gKiBvYmplY3QgYHsgbGF0LCBsbmcgfWAgKG5ldmVyIGEgcG9zaXRpb25hbCBwYWlyKS4gVGhlIHNlcnZpY2UgY29udmVydHNcbiAqIGludGVybmFsbHkgdG8gdGhlIFBvc3RHSVMgbG5nLWZpcnN0IG9yZGVyLiBQb2x5Z29ucyBmb2xsb3cgR2VvSlNPTiBheGlzXG4gKiBvcmRlciBgW2xuZywgbGF0XWAgcGVyIHRoZSBHZW9KU09OIHNwZWMuXG4gKi9cblxuLyoqIExhdGl0dWRlL2xvbmdpdHVkZSBwYWlyLiBMYXQgaW4gWy05MCwgOTBdLCBsbmcgaW4gWy0xODAsIDE4MF0uICovXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcbiAgbGF0OiBudW1iZXI7XG4gIGxuZzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEdlb0pTT04tMjAwOCBQb2x5Z29uLiBUaGUgZmlyc3QgcmluZyBpcyB0aGUgZXh0ZXJpb3I7IHN1YnNlcXVlbnQgcmluZ3NcbiAqIGFyZSBpbnRlcmlvciAoaG9sZXMpLiBFYWNoIGNvb3JkaW5hdGUgaXMgYFtsbmcsIGxhdF1gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlb0pzb25Qb2x5Z29uIHtcbiAgdHlwZTogJ1BvbHlnb24nO1xuICBjb29yZGluYXRlczogQXJyYXk8QXJyYXk8W251bWJlciwgbnVtYmVyXT4+O1xufVxuXG4vKipcbiAqIEdlb0pTT04tMjAwOCBNdWx0aVBvbHlnb24uIFRoZSBzZXJ2aWNlIG5vcm1hbGlzZXMgUG9seWdvbiB0byBNdWx0aVBvbHlnb25cbiAqIG9uIHdyaXRlLCBzbyByZWFkcyBhbHdheXMgcmV0dXJuIE11bHRpUG9seWdvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW9Kc29uTXVsdGlQb2x5Z29uIHtcbiAgdHlwZTogJ011bHRpUG9seWdvbic7XG4gIGNvb3JkaW5hdGVzOiBBcnJheTxBcnJheTxBcnJheTxbbnVtYmVyLCBudW1iZXJdPj4+O1xufVxuXG5leHBvcnQgdHlwZSBHZW9tZXRyeSA9IEdlb0pzb25Qb2x5Z29uIHwgR2VvSnNvbk11bHRpUG9seWdvbjtcblxuLyoqXG4gKiBUYWcgdmFsdWVzIGFyZSBmbGF0OiBhIHNjYWxhciAoY29lcmNlZCB0byBzdHJpbmcgYnkgdGhlIHNlcnZpY2UpIG9yIGFcbiAqIGZsYXQgYXJyYXkgb2Ygc2NhbGFycy4gTmVzdGVkIG9iamVjdHMgYXJlIHJlamVjdGVkIG9uIHdyaXRlLlxuICpcbiAqIGBudWxsYCBpcyBtZWFuaW5nZnVsIG9ubHkgaW5zaWRlIGEgUEFUQ0ggdGFnIGJhZywgd2hlcmUgaXQgZGVsZXRlcyB0aGVcbiAqIGtleS4gSXQgaXMgbm90IGEgc3RvcmFibGUgdmFsdWUuIFVzZSB7QGxpbmsgUGF0Y2hUYWdCYWd9IGZvciBQQVRDSCBib2RpZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFRhZ1ZhbHVlID0gc3RyaW5nIHwgc3RyaW5nW107XG5cbmV4cG9ydCB0eXBlIFRhZ0JhZyA9IFJlY29yZDxzdHJpbmcsIFRhZ1ZhbHVlPjtcblxuLyoqIFRhZyBiYWcgYWNjZXB0ZWQgYnkgUEFUQ0guIGBudWxsYCBkZWxldGVzIHRoZSBrZXk7IGV2ZXJ5dGhpbmcgZWxzZSBpcyBzaGFsbG93LW1lcmdlZC4gKi9cbmV4cG9ydCB0eXBlIFBhdGNoVGFnQmFnID0gUmVjb3JkPHN0cmluZywgVGFnVmFsdWUgfCBudWxsPjtcblxuLyoqXG4gKiBGaWx0ZXIgZ3JhbW1hciB1c2VkIGJ5IGJvdGggdGhlIGxpc3RpbmcgZW5kcG9pbnQgYW5kIHRoZSBjb250YWlubWVudFxuICogcHJpbWl0aXZlJ3MgYHRhZ3NgIHNlbGVjdG9yOlxuICpcbiAqICAgLSBgeyBrOiBcInZcIiB9YCAgICAgICAgICAgZXF1YWxpdHkgLyBhcnJheS1tZW1iZXJzaGlwOiBgdGFncyBAPiB7XCJrXCI6XCJ2XCJ9YFxuICogICAtIGB7IGs6IFtcInYxXCIsXCJ2MlwiXSB9YCAgIGFueS1vZiAoSU4pOiBwZXItdmFsdWUgYEA+YCBjbGF1c2VzIE9SLWVkXG4gKiAgIC0gbXVsdGlwbGUga2V5cyAgICAgICAgICAgQU5EIGFjcm9zcyBrZXlzXG4gKlxuICogU3RvcmVkIGFycmF5cyBtYXRjaCBzY2FsYXIgZmlsdGVycyB2aWEgSlNPTkIgYEA+YDsgdGhlIGNvbXBpbGVyIGRvZXMgbm90XG4gKiBuZWVkIHRvIGtub3cgdGhlIHN0b3JlZCBzaGFwZS4gVXNlIHRoZSBkZWRpY2F0ZWQgYGlkc2Agc2VsZWN0b3Igb25cbiAqIGNvbnRhaW5tZW50IGZvciBsYXJnZSBpZC1zdHlsZSBzZXRzIOKAlCB0YWcgSU4gaXMgZm9yIGxvdy1jYXJkaW5hbGl0eVxuICogdmFsdWUgbGlzdHMgKGNhdGVnb3J5LCBzdGF0dXMsIHR5cGUpLlxuICovXG5leHBvcnQgdHlwZSBUYWdGaWx0ZXIgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG5cbi8qKiBUaGUgZnVsbCB6b25lIHJlY29yZCByZXR1cm5lZCBieSBgZ2V0YC9gcmVwbGFjZWAvYHVwZGF0ZWAuICovXG5leHBvcnQgaW50ZXJmYWNlIFpvbmUge1xuICB6aWQ6IHN0cmluZztcbiAgZ2VvbWV0cnk6IEdlb0pzb25NdWx0aVBvbHlnb247XG4gIHRhZ3M6IFRhZ0JhZztcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG4vKiogVGhlIGNvbXBhY3Qgc2hhcGUgcmV0dXJuZWQgYnkgYGNvbnRhaW5pbmdgLCBgbGlzdGAsIGFuZCBgY3JlYXRlYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWm9uZVN1bW1hcnkge1xuICB6aWQ6IHN0cmluZztcbiAgdGFnczogVGFnQmFnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFpvbmVMaXN0UGFnZSB7XG4gIHpvbmVzOiBab25lU3VtbWFyeVtdO1xuICBuZXh0Q3Vyc29yOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFpvbmVDcmVhdGVSZXN1bHQge1xuICB6aWQ6IHN0cmluZztcbiAgdGFnczogVGFnQmFnO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBab25lQ3JlYXRlSW5wdXQge1xuICBnZW9tZXRyeTogR2VvbWV0cnk7XG4gIHRhZ3M/OiBUYWdCYWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWm9uZVBhdGNoSW5wdXQge1xuICBnZW9tZXRyeT86IEdlb21ldHJ5O1xuICB0YWdzPzogUGF0Y2hUYWdCYWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWm9uZVJlcGxhY2VJbnB1dCB7XG4gIGdlb21ldHJ5OiBHZW9tZXRyeTtcbiAgdGFncz86IFRhZ0JhZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBab25lTGlzdE9wdGlvbnMge1xuICB0YWdzPzogVGFnRmlsdGVyO1xuICBjdXJzb3I/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhaW5pbmdJbnB1dCB7XG4gIHBvaW50OiBQb2ludDtcbiAgaWRzPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIHRhZ3M/OiBUYWdGaWx0ZXI7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@uengage.io/platform-sdk",
3
- "version": "0.9.1",
4
- "description": "Client SDK for the uEngage platform API (audit, business, auth). Single createClient(...) factory; OAuth2 client_credentials, static Bearer, or legacy session-token auth modes.",
3
+ "version": "0.14.0",
4
+ "description": "Client SDK for the uEngage platform API (audit, business, zones, wallet, auth). Single createClient(...) factory; OAuth2 client_credentials, static Bearer, or legacy session-token auth modes.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "files": [