@uengage.io/platform-sdk 0.2.0 → 0.6.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.
@@ -4,6 +4,7 @@ exports.BusinessApiError = void 0;
4
4
  exports.createBusinessClient = createBusinessClient;
5
5
  const config_1 = require("../config");
6
6
  const http_1 = require("../http");
7
+ const token_source_1 = require("../token-source");
7
8
  class BusinessApiError extends Error {
8
9
  status;
9
10
  body;
@@ -31,13 +32,13 @@ function createBusinessClient(input = {}) {
31
32
  if (!Number.isInteger(id) || id <= 0) {
32
33
  throw new Error(`business.get: id must be a positive integer (got ${id})`);
33
34
  }
34
- const path = `/v1/business/${id}`;
35
+ const path = `/v1/businesses/${id}`;
35
36
  const query = opts.groups?.length ? `?groups=${opts.groups.join(',')}` : '';
36
37
  const config = state.resolve();
37
- const headers = (0, http_1.buildHeaders)(config, { method: 'GET', path });
38
- const res = await config.fetchFn(`${config.baseUrl}${path}${query}`, {
38
+ const res = await sendWithAuthRetry(config, {
39
39
  method: 'GET',
40
- headers,
40
+ path,
41
+ url: `${config.baseUrl}${path}${query}`,
41
42
  });
42
43
  if (!res.ok) {
43
44
  throw new BusinessApiError(res.status, await res.text());
@@ -53,15 +54,15 @@ function createBusinessClient(input = {}) {
53
54
  throw new Error(`business.bulk: every id must be a positive integer (got ${n})`);
54
55
  }
55
56
  }
56
- const path = '/v1/business/bulk';
57
+ const path = '/v1/businesses';
57
58
  const params = new URLSearchParams({ ids: ids.join(',') });
58
59
  if (opts.groups?.length)
59
60
  params.set('groups', opts.groups.join(','));
60
61
  const config = state.resolve();
61
- const headers = (0, http_1.buildHeaders)(config, { method: 'GET', path });
62
- const res = await config.fetchFn(`${config.baseUrl}${path}?${params.toString()}`, {
62
+ const res = await sendWithAuthRetry(config, {
63
63
  method: 'GET',
64
- headers,
64
+ path,
65
+ url: `${config.baseUrl}${path}?${params.toString()}`,
65
66
  });
66
67
  if (!res.ok) {
67
68
  throw new BusinessApiError(res.status, await res.text());
@@ -71,4 +72,36 @@ function createBusinessClient(input = {}) {
71
72
  };
72
73
  return client;
73
74
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1c2luZXNzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrQ0Esb0RBd0RDO0FBMUZELHNDQUttQjtBQUNuQixrQ0FBdUM7QUFnQnZDLE1BQWEsZ0JBQWlCLFNBQVEsS0FBSztJQUNoQyxNQUFNLENBQVM7SUFDZixJQUFJLENBQVM7SUFFdEIsWUFBWSxNQUFjLEVBQUUsSUFBWTtRQUN0QyxLQUFLLENBQUMsZ0JBQWdCLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBVkQsNENBVUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxRQUE2QixFQUFFO0lBQ2xFLE1BQU0sS0FBSyxHQUFHLElBQUksb0JBQVcsRUFBRSxDQUFDO0lBQ2hDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbkIsTUFBTSxNQUFNLEdBQW1CO1FBQzdCLE1BQU0sQ0FBQyxJQUFJO1lBQ1QsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUk7WUFDUCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sSUFBSSxL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SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmlnU3RhdGUsXG4gIHR5cGUgUGxhdGZvcm1BdXRoLFxuICB0eXBlIFBsYXRmb3JtQXV0aElucHV0LFxuICB0eXBlIFBsYXRmb3JtQ29uZmlnSW5wdXQsXG59IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBidWlsZEhlYWRlcnMgfSBmcm9tICcuLi9odHRwJztcbmltcG9ydCB0eXBlIHsgQnVzaW5lc3NHcm91cE5hbWUsIEJ1c2luZXNzUmVjb3JkIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzR2V0T3B0aW9ucyB7XG4gIGdyb3Vwcz86IHJlYWRvbmx5IEJ1c2luZXNzR3JvdXBOYW1lW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVzaW5lc3NDbGllbnQge1xuICBjb25maWcoaW5wdXQ6IFBsYXRmb3JtQ29uZmlnSW5wdXQpOiBCdXNpbmVzc0NsaWVudDtcbiAgYXV0aChpbnB1dDogUGxhdGZvcm1BdXRoSW5wdXQgfCBQbGF0Zm9ybUF1dGgpOiBCdXNpbmVzc0NsaWVudDtcbiAgLyoqIEdFVCAvdjEvYnVzaW5lc3MvOmlkIC0gcmV0dXJucyB0aGUgcmVjb3JkIG9yIHRocm93cyBCdXNpbmVzc0FwaUVycm9yLiAqL1xuICBnZXQoaWQ6IG51bWJlciwgb3B0cz86IEJ1c2luZXNzR2V0T3B0aW9ucyk6IFByb21pc2U8QnVzaW5lc3NSZWNvcmQ+O1xuICAvKiogR0VUIC92MS9idXNpbmVzcy9idWxrIC0gcmV0dXJucyBtYXRjaGVkIHJlY29yZHMgKG1pc3NpbmcgaWRzIGRyb3BwZWQpLiAqL1xuICBidWxrKGlkczogcmVhZG9ubHkgbnVtYmVyW10sIG9wdHM/OiBCdXNpbmVzc0dldE9wdGlvbnMpOiBQcm9taXNlPEJ1c2luZXNzUmVjb3JkW10+O1xufVxuXG5leHBvcnQgY2xhc3MgQnVzaW5lc3NBcGlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcmVhZG9ubHkgc3RhdHVzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGJvZHk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzdGF0dXM6IG51bWJlciwgYm9keTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYGJ1c2luZXNzIEFQSSAke3N0YXR1c306ICR7Ym9keX1gKTtcbiAgICB0aGlzLm5hbWUgPSAnQnVzaW5lc3NBcGlFcnJvcic7XG4gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQnVzaW5lc3NDbGllbnQoaW5wdXQ6IFBsYXRmb3JtQ29uZmlnSW5wdXQgPSB7fSk6IEJ1c2luZXNzQ2xpZW50IHtcbiAgY29uc3Qgc3RhdGUgPSBuZXcgQ29uZmlnU3RhdGUoKTtcbiAgc3RhdGUuYXBwbHkoaW5wdXQpO1xuXG4gIGNvbnN0IGNsaWVudDogQnVzaW5lc3NDbGllbnQgPSB7XG4gICAgY29uZmlnKG9wdHMpIHtcbiAgICAgIHN0YXRlLmFwcGx5KG9wdHMpO1xuICAgICAgcmV0dXJuIGNsaWVudDtcbiAgICB9LFxuICAgIGF1dGgob3B0cykge1xuICAgICAgc3RhdGUuc2V0QXV0aChvcHRzKTtcbiAgICAgIHJldHVybiBjbGllbnQ7XG4gICAgfSxcbiAgICBhc3luYyBnZXQoaWQsIG9wdHMgPSB7fSkge1xuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGlkKSB8fCBpZCA8PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgYnVzaW5lc3MuZ2V0OiBpZCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciAoZ290ICR7aWR9KWApO1xuICAgICAgfVxuICAgICAgY29uc3QgcGF0aCA9IGAvdjEvYnVzaW5lc3MvJHtpZH1gO1xuICAgICAgY29uc3QgcXVlcnkgPSBvcHRzLmdyb3Vwcz8ubGVuZ3RoID8gYD9ncm91cHM9JHtvcHRzLmdyb3Vwcy5qb2luKCcsJyl9YCA6ICcnO1xuICAgICAgY29uc3QgY29uZmlnID0gc3RhdGUucmVzb2x2ZSgpO1xuICAgICAgY29uc3QgaGVhZGVycyA9IGJ1aWxkSGVhZGVycyhjb25maWcsIHsgbWV0aG9kOiAnR0VUJywgcGF0aCB9KTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNvbmZpZy5mZXRjaEZuKGAke2NvbmZpZy5iYXNlVXJsfSR7cGF0aH0ke3F1ZXJ5fWAsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pO1xuICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1c2luZXNzQXBpRXJyb3IocmVzLnN0YXR1cywgYXdhaXQgcmVzLnRleHQoKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKGF3YWl0IHJlcy5qc29uKCkpIGFzIEJ1c2luZXNzUmVjb3JkO1xuICAgIH0sXG4gICAgYXN5bmMgYnVsayhpZHMsIG9wdHMgPSB7fSkge1xuICAgICAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdidXNpbmVzcy5idWxrOiBpZHMgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgbiBvZiBpZHMpIHtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKG4pIHx8IG4gPD0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYnVzaW5lc3MuYnVsazogZXZlcnkgaWQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgKGdvdCAke259KWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBwYXRoID0gJy92MS9idXNpbmVzcy9idWxrJztcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyBpZHM6IGlkcy5qb2luKCcsJykgfSk7XG4gICAgICBpZiAob3B0cy5ncm91cHM/Lmxlbmd0aCkgcGFyYW1zLnNldCgnZ3JvdXBzJywgb3B0cy5ncm91cHMuam9pbignLCcpKTtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLnJlc29sdmUoKTtcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBidWlsZEhlYWRlcnMoY29uZmlnLCB7IG1ldGhvZDogJ0dFVCcsIHBhdGggfSk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBjb25maWcuZmV0Y2hGbihgJHtjb25maWcuYmFzZVVybH0ke3BhdGh9PyR7cGFyYW1zLnRvU3RyaW5nKCl9YCwge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSk7XG4gICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICB0aHJvdyBuZXcgQnVzaW5lc3NBcGlFcnJvcihyZXMuc3RhdHVzLCBhd2FpdCByZXMudGV4dCgpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoYXdhaXQgcmVzLmpzb24oKSkgYXMgQnVzaW5lc3NSZWNvcmRbXTtcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBjbGllbnQ7XG59XG4iXX0=
75
+ /**
76
+ * Send a request with the SDK's standard 401-retry-once behaviour.
77
+ * Only retries when auth is `token-source`, since that's the case
78
+ * where the cached token may have expired server-side; HMAC and
79
+ * static bearer 401s mean the auth is misconfigured and a retry
80
+ * would just fail again.
81
+ */
82
+ async function sendWithAuthRetry(config, params) {
83
+ const headers = await (0, http_1.buildHeaders)(config, {
84
+ method: params.method,
85
+ path: params.path,
86
+ body: params.body,
87
+ });
88
+ const res = await config.fetchFn(params.url, {
89
+ method: params.method,
90
+ headers,
91
+ body: params.body,
92
+ });
93
+ if (res.status !== 401 || config.auth?.type !== 'token-source')
94
+ return res;
95
+ (0, token_source_1.invalidateToken)(config.auth.state);
96
+ const retryHeaders = await (0, http_1.buildHeaders)(config, {
97
+ method: params.method,
98
+ path: params.path,
99
+ body: params.body,
100
+ });
101
+ return config.fetchFn(params.url, {
102
+ method: params.method,
103
+ headers: retryHeaders,
104
+ body: params.body,
105
+ });
106
+ }
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1c2luZXNzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvQ0Esb0RBd0RDO0FBNUZELHNDQU1tQjtBQUNuQixrQ0FBdUM7QUFDdkMsa0RBQWtEO0FBZ0JsRCxNQUFhLGdCQUFpQixTQUFRLEtBQUs7SUFDaEMsTUFBTSxDQUFTO0lBQ2YsSUFBSSxDQUFTO0lBRXRCLFlBQVksTUFBYyxFQUFFLElBQVk7UUFDdEMsS0FBSyxDQUFDLGdCQUFnQixNQUFNLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQVZELDRDQVVDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsUUFBNkIsRUFBRTtJQUNsRSxNQUFNLEtBQUssR0FBRyxJQUFJLG9CQUFXLEVBQUUsQ0FBQztJQUNoQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRW5CLE1BQU0sTUFBTSxHQUFtQjtRQUM3QixNQUFNLENBQUMsSUFBSTtZQUNULEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJO1lBQ1AsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNy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O1FBQ3pDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtRQUNyQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO0tBQ2xCLENBQUMsQ0FBQztJQUNILE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1FBQzNDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtRQUNyQixPQUFPO1FBQ1AsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO0tBQ2xCLENBQUMsQ0FBQztJQUNILElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssY0FBYztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQzNFLElBQUEsOEJBQWUsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBQSxtQkFBWSxFQUFDLE1BQU0sRUFBRTtRQUM5QyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1FBQ2pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtLQUNsQixDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNoQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsT0FBTyxFQUFFLFlBQVk7UUFDckIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO0tBQ2xCLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb25maWdTdGF0ZSxcbiAgdHlwZSBQbGF0Zm9ybUF1dGgsXG4gIHR5cGUgUGxhdGZvcm1BdXRoSW5wdXQsXG4gIHR5cGUgUGxhdGZvcm1Db25maWcsXG4gIHR5cGUgUGxhdGZvcm1Db25maWdJbnB1dCxcbn0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IGJ1aWxkSGVhZGVycyB9IGZyb20gJy4uL2h0dHAnO1xuaW1wb3J0IHsgaW52YWxpZGF0ZVRva2VuIH0gZnJvbSAnLi4vdG9rZW4tc291cmNlJztcbmltcG9ydCB0eXBlIHsgQnVzaW5lc3NHcm91cE5hbWUsIEJ1c2luZXNzUmVjb3JkIH0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzR2V0T3B0aW9ucyB7XG4gIGdyb3Vwcz86IHJlYWRvbmx5IEJ1c2luZXNzR3JvdXBOYW1lW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVzaW5lc3NDbGllbnQge1xuICBjb25maWcoaW5wdXQ6IFBsYXRmb3JtQ29uZmlnSW5wdXQpOiBCdXNpbmVzc0NsaWVudDtcbiAgYXV0aChpbnB1dDogUGxhdGZvcm1BdXRoSW5wdXQgfCBQbGF0Zm9ybUF1dGgpOiBCdXNpbmVzc0NsaWVudDtcbiAgLyoqIEdFVCAvdjEvYnVzaW5lc3Nlcy86aWQgLSByZXR1cm5zIHRoZSByZWNvcmQgb3IgdGhyb3dzIEJ1c2luZXNzQXBpRXJyb3IuICovXG4gIGdldChpZDogbnVtYmVyLCBvcHRzPzogQnVzaW5lc3NHZXRPcHRpb25zKTogUHJvbWlzZTxCdXNpbmVzc1JlY29yZD47XG4gIC8qKiBHRVQgL3YxL2J1c2luZXNzZXM/aWRzPSAtIHJldHVybnMgbWF0Y2hlZCByZWNvcmRzIChtaXNzaW5nIGlkcyBkcm9wcGVkKS4gKi9cbiAgYnVsayhpZHM6IHJlYWRvbmx5IG51bWJlcltdLCBvcHRzPzogQnVzaW5lc3NHZXRPcHRpb25zKTogUHJvbWlzZTxCdXNpbmVzc1JlY29yZFtdPjtcbn1cblxuZXhwb3J0IGNsYXNzIEJ1c2luZXNzQXBpRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHJlYWRvbmx5IHN0YXR1czogbnVtYmVyO1xuICByZWFkb25seSBib2R5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc3RhdHVzOiBudW1iZXIsIGJvZHk6IHN0cmluZykge1xuICAgIHN1cGVyKGBidXNpbmVzcyBBUEkgJHtzdGF0dXN9OiAke2JvZHl9YCk7XG4gICAgdGhpcy5uYW1lID0gJ0J1c2luZXNzQXBpRXJyb3InO1xuICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJ1c2luZXNzQ2xpZW50KGlucHV0OiBQbGF0Zm9ybUNvbmZpZ0lucHV0ID0ge30pOiBCdXNpbmVzc0NsaWVudCB7XG4gIGNvbnN0IHN0YXRlID0gbmV3IENvbmZpZ1N0YXRlKCk7XG4gIHN0YXRlLmFwcGx5KGlucHV0KTtcblxuICBjb25zdCBjbGllbnQ6IEJ1c2luZXNzQ2xpZW50ID0ge1xuICAgIGNvbmZpZyhvcHRzKSB7XG4gICAgICBzdGF0ZS5hcHBseShvcHRzKTtcbiAgICAgIHJldHVybiBjbGllbnQ7XG4gICAgfSxcbiAgICBhdXRoKG9wdHMpIHtcbiAgICAgIHN0YXRlLnNldEF1dGgob3B0cyk7XG4gICAgICByZXR1cm4gY2xpZW50O1xuICAgIH0sXG4gICAgYXN5bmMgZ2V0KGlkLCBvcHRzID0ge30pIHtcbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihpZCkgfHwgaWQgPD0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJ1c2luZXNzLmdldDogaWQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgKGdvdCAke2lkfSlgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhdGggPSBgL3YxL2J1c2luZXNzZXMvJHtpZH1gO1xuICAgICAgY29uc3QgcXVlcnkgPSBvcHRzLmdyb3Vwcz8ubGVuZ3RoID8gYD9ncm91cHM9JHtvcHRzLmdyb3Vwcy5qb2luKCcsJyl9YCA6ICcnO1xuICAgICAgY29uc3QgY29uZmlnID0gc3RhdGUucmVzb2x2ZSgpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZFdpdGhBdXRoUmV0cnkoY29uZmlnLCB7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHVybDogYCR7Y29uZmlnLmJhc2VVcmx9JHtwYXRofSR7cXVlcnl9YCxcbiAgICAgIH0pO1xuICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1c2luZXNzQXBpRXJyb3IocmVzLnN0YXR1cywgYXdhaXQgcmVzLnRleHQoKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKGF3YWl0IHJlcy5qc29uKCkpIGFzIEJ1c2luZXNzUmVjb3JkO1xuICAgIH0sXG4gICAgYXN5bmMgYnVsayhpZHMsIG9wdHMgPSB7fSkge1xuICAgICAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdidXNpbmVzcy5idWxrOiBpZHMgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgbiBvZiBpZHMpIHtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKG4pIHx8IG4gPD0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYnVzaW5lc3MuYnVsazogZXZlcnkgaWQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgKGdvdCAke259KWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBwYXRoID0gJy92MS9idXNpbmVzc2VzJztcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyBpZHM6IGlkcy5qb2luKCcsJykgfSk7XG4gICAgICBpZiAob3B0cy5ncm91cHM/Lmxlbmd0aCkgcGFyYW1zLnNldCgnZ3JvdXBzJywgb3B0cy5ncm91cHMuam9pbignLCcpKTtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLnJlc29sdmUoKTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmRXaXRoQXV0aFJldHJ5KGNvbmZpZywge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICBwYXRoLFxuICAgICAgICB1cmw6IGAke2NvbmZpZy5iYXNlVXJsfSR7cGF0aH0/JHtwYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgICAgfSk7XG4gICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICB0aHJvdyBuZXcgQnVzaW5lc3NBcGlFcnJvcihyZXMuc3RhdHVzLCBhd2FpdCByZXMudGV4dCgpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoYXdhaXQgcmVzLmpzb24oKSkgYXMgQnVzaW5lc3NSZWNvcmRbXTtcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBjbGllbnQ7XG59XG5cbi8qKlxuICogU2VuZCBhIHJlcXVlc3Qgd2l0aCB0aGUgU0RLJ3Mgc3RhbmRhcmQgNDAxLXJldHJ5LW9uY2UgYmVoYXZpb3VyLlxuICogT25seSByZXRyaWVzIHdoZW4gYXV0aCBpcyBgdG9rZW4tc291cmNlYCwgc2luY2UgdGhhdCdzIHRoZSBjYXNlXG4gKiB3aGVyZSB0aGUgY2FjaGVkIHRva2VuIG1heSBoYXZlIGV4cGlyZWQgc2VydmVyLXNpZGU7IEhNQUMgYW5kXG4gKiBzdGF0aWMgYmVhcmVyIDQwMXMgbWVhbiB0aGUgYXV0aCBpcyBtaXNjb25maWd1cmVkIGFuZCBhIHJldHJ5XG4gKiB3b3VsZCBqdXN0IGZhaWwgYWdhaW4uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNlbmRXaXRoQXV0aFJldHJ5KFxuICBjb25maWc6IFBsYXRmb3JtQ29uZmlnLFxuICBwYXJhbXM6IHsgbWV0aG9kOiBzdHJpbmc7IHBhdGg6IHN0cmluZzsgdXJsOiBzdHJpbmc7IGJvZHk/OiBzdHJpbmcgfSxcbik6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgY29uc3QgaGVhZGVycyA9IGF3YWl0IGJ1aWxkSGVhZGVycyhjb25maWcsIHtcbiAgICBtZXRob2Q6IHBhcmFtcy5tZXRob2QsXG4gICAgcGF0aDogcGFyYW1zLnBhdGgsXG4gICAgYm9keTogcGFyYW1zLmJvZHksXG4gIH0pO1xuICBjb25zdCByZXMgPSBhd2FpdCBjb25maWcuZmV0Y2hGbihwYXJhbXMudXJsLCB7XG4gICAgbWV0aG9kOiBwYXJhbXMubWV0aG9kLFxuICAgIGhlYWRlcnMsXG4gICAgYm9keTogcGFyYW1zLmJvZHksXG4gIH0pO1xuICBpZiAocmVzLnN0YXR1cyAhPT0gNDAxIHx8IGNvbmZpZy5hdXRoPy50eXBlICE9PSAndG9rZW4tc291cmNlJykgcmV0dXJuIHJlcztcbiAgaW52YWxpZGF0ZVRva2VuKGNvbmZpZy5hdXRoLnN0YXRlKTtcbiAgY29uc3QgcmV0cnlIZWFkZXJzID0gYXdhaXQgYnVpbGRIZWFkZXJzKGNvbmZpZywge1xuICAgIG1ldGhvZDogcGFyYW1zLm1ldGhvZCxcbiAgICBwYXRoOiBwYXJhbXMucGF0aCxcbiAgICBib2R5OiBwYXJhbXMuYm9keSxcbiAgfSk7XG4gIHJldHVybiBjb25maWcuZmV0Y2hGbihwYXJhbXMudXJsLCB7XG4gICAgbWV0aG9kOiBwYXJhbXMubWV0aG9kLFxuICAgIGhlYWRlcnM6IHJldHJ5SGVhZGVycyxcbiAgICBib2R5OiBwYXJhbXMuYm9keSxcbiAgfSk7XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
- export { BUSINESS_GROUPS, type BusinessGroupName, type BusinessRecord, type BusinessProfile, type BusinessGst, type BusinessPaymentGateway, } from './schema';
1
+ export { BUSINESS_GROUPS, type BusinessGroupName, type BusinessRecord, type BusinessParent, type BusinessProfile, type BusinessGst, type BusinessPaymentGateway, } from './schema';
2
2
  export { createBusinessClient, BusinessApiError, type BusinessClient, type BusinessGetOptions, } from './client';
@@ -6,4 +6,4 @@ Object.defineProperty(exports, "BUSINESS_GROUPS", { enumerable: true, get: funct
6
6
  var client_1 = require("./client");
7
7
  Object.defineProperty(exports, "createBusinessClient", { enumerable: true, get: function () { return client_1.createBusinessClient; } });
8
8
  Object.defineProperty(exports, "BusinessApiError", { enumerable: true, get: function () { return client_1.BusinessApiError; } });
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVzaW5lc3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBT2tCO0FBTmhCLHlHQUFBLGVBQWUsT0FBQTtBQU9qQixtQ0FLa0I7QUFKaEIsOEdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsMEdBQUEsZ0JBQWdCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBCVVNJTkVTU19HUk9VUFMsXG4gIHR5cGUgQnVzaW5lc3NHcm91cE5hbWUsXG4gIHR5cGUgQnVzaW5lc3NSZWNvcmQsXG4gIHR5cGUgQnVzaW5lc3NQcm9maWxlLFxuICB0eXBlIEJ1c2luZXNzR3N0LFxuICB0eXBlIEJ1c2luZXNzUGF5bWVudEdhdGV3YXksXG59IGZyb20gJy4vc2NoZW1hJztcbmV4cG9ydCB7XG4gIGNyZWF0ZUJ1c2luZXNzQ2xpZW50LFxuICBCdXNpbmVzc0FwaUVycm9yLFxuICB0eXBlIEJ1c2luZXNzQ2xpZW50LFxuICB0eXBlIEJ1c2luZXNzR2V0T3B0aW9ucyxcbn0gZnJvbSAnLi9jbGllbnQnO1xuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVzaW5lc3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBUWtCO0FBUGhCLHlHQUFBLGVBQWUsT0FBQTtBQVFqQixtQ0FLa0I7QUFKaEIsOEdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsMEdBQUEsZ0JBQWdCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBCVVNJTkVTU19HUk9VUFMsXG4gIHR5cGUgQnVzaW5lc3NHcm91cE5hbWUsXG4gIHR5cGUgQnVzaW5lc3NSZWNvcmQsXG4gIHR5cGUgQnVzaW5lc3NQYXJlbnQsXG4gIHR5cGUgQnVzaW5lc3NQcm9maWxlLFxuICB0eXBlIEJ1c2luZXNzR3N0LFxuICB0eXBlIEJ1c2luZXNzUGF5bWVudEdhdGV3YXksXG59IGZyb20gJy4vc2NoZW1hJztcbmV4cG9ydCB7XG4gIGNyZWF0ZUJ1c2luZXNzQ2xpZW50LFxuICBCdXNpbmVzc0FwaUVycm9yLFxuICB0eXBlIEJ1c2luZXNzQ2xpZW50LFxuICB0eXBlIEJ1c2luZXNzR2V0T3B0aW9ucyxcbn0gZnJvbSAnLi9jbGllbnQnO1xuIl19
@@ -18,13 +18,24 @@ export interface BusinessPaymentGateway {
18
18
  };
19
19
  }
20
20
  /**
21
- * Response shape from GET /v1/business/:id and the entries returned by
22
- * GET /v1/business/bulk. Group keys are optional - the server includes
21
+ * Public summary of a parent business. Same shape as a top-level record
22
+ * with the `profile` group included, but the parent's own parent is NOT
23
+ * recursively resolved (capped at depth 1). Call
24
+ * `business.get(parent.id)` for the grand-parent if needed.
25
+ */
26
+ export interface BusinessParent {
27
+ id: number;
28
+ profile: BusinessProfile;
29
+ }
30
+ /**
31
+ * Response shape from GET /v1/businesses/:id and the entries returned by
32
+ * GET /v1/businesses. Group keys are optional - the server includes
23
33
  * only the groups that were both requested and authorized for the caller.
24
34
  */
25
35
  export interface BusinessRecord {
26
36
  id: number;
27
- parent_id: number | null;
37
+ /** Direct parent business (single level), or null if root. */
38
+ parent: BusinessParent | null;
28
39
  profile?: BusinessProfile;
29
40
  gst?: BusinessGst;
30
41
  payment_gateway?: BusinessPaymentGateway;
@@ -6,4 +6,4 @@ exports.BUSINESS_GROUPS = void 0;
6
6
  * registry in services/business; if the server adds a group, add it here.
7
7
  */
8
8
  exports.BUSINESS_GROUPS = ['profile', 'gst', 'payment_gateway'];
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1c2luZXNzL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7O0dBR0c7QUFDVSxRQUFBLGVBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR3JvdXAgbmFtZXMgcmVjb2duaXNlZCBieSB0aGUgYnVzaW5lc3MgcmVhZCBBUEkuIE1pcnJvcnMgdGhlIEdST1VQU1xuICogcmVnaXN0cnkgaW4gc2VydmljZXMvYnVzaW5lc3M7IGlmIHRoZSBzZXJ2ZXIgYWRkcyBhIGdyb3VwLCBhZGQgaXQgaGVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEJVU0lORVNTX0dST1VQUyA9IFsncHJvZmlsZScsICdnc3QnLCAncGF5bWVudF9nYXRld2F5J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBCdXNpbmVzc0dyb3VwTmFtZSA9ICh0eXBlb2YgQlVTSU5FU1NfR1JPVVBTKVtudW1iZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzUHJvZmlsZSB7XG4gIG5hbWU6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVzaW5lc3NHc3Qge1xuICBzdGF0ZTogc3RyaW5nIHwgbnVsbDtcbiAgZ3N0X25vOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzUGF5bWVudEdhdGV3YXkge1xuICByYXpvcnBheToge1xuICAgIGtleTogc3RyaW5nIHwgbnVsbDtcbiAgICBzZWNyZXQ6IHN0cmluZyB8IG51bGw7XG4gIH07XG59XG5cbi8qKlxuICogUmVzcG9uc2Ugc2hhcGUgZnJvbSBHRVQgL3YxL2J1c2luZXNzLzppZCBhbmQgdGhlIGVudHJpZXMgcmV0dXJuZWQgYnlcbiAqIEdFVCAvdjEvYnVzaW5lc3MvYnVsay4gR3JvdXAga2V5cyBhcmUgb3B0aW9uYWwgLSB0aGUgc2VydmVyIGluY2x1ZGVzXG4gKiBvbmx5IHRoZSBncm91cHMgdGhhdCB3ZXJlIGJvdGggcmVxdWVzdGVkIGFuZCBhdXRob3JpemVkIGZvciB0aGUgY2FsbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzUmVjb3JkIHtcbiAgaWQ6IG51bWJlcjtcbiAgcGFyZW50X2lkOiBudW1iZXIgfCBudWxsO1xuICBwcm9maWxlPzogQnVzaW5lc3NQcm9maWxlO1xuICBnc3Q/OiBCdXNpbmVzc0dzdDtcbiAgcGF5bWVudF9nYXRld2F5PzogQnVzaW5lc3NQYXltZW50R2F0ZXdheTtcbn1cbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1c2luZXNzL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7O0dBR0c7QUFDVSxRQUFBLGVBQWUsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR3JvdXAgbmFtZXMgcmVjb2duaXNlZCBieSB0aGUgYnVzaW5lc3MgcmVhZCBBUEkuIE1pcnJvcnMgdGhlIEdST1VQU1xuICogcmVnaXN0cnkgaW4gc2VydmljZXMvYnVzaW5lc3M7IGlmIHRoZSBzZXJ2ZXIgYWRkcyBhIGdyb3VwLCBhZGQgaXQgaGVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEJVU0lORVNTX0dST1VQUyA9IFsncHJvZmlsZScsICdnc3QnLCAncGF5bWVudF9nYXRld2F5J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBCdXNpbmVzc0dyb3VwTmFtZSA9ICh0eXBlb2YgQlVTSU5FU1NfR1JPVVBTKVtudW1iZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzUHJvZmlsZSB7XG4gIG5hbWU6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVzaW5lc3NHc3Qge1xuICBzdGF0ZTogc3RyaW5nIHwgbnVsbDtcbiAgZ3N0X25vOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzUGF5bWVudEdhdGV3YXkge1xuICByYXpvcnBheToge1xuICAgIGtleTogc3RyaW5nIHwgbnVsbDtcbiAgICBzZWNyZXQ6IHN0cmluZyB8IG51bGw7XG4gIH07XG59XG5cbi8qKlxuICogUHVibGljIHN1bW1hcnkgb2YgYSBwYXJlbnQgYnVzaW5lc3MuIFNhbWUgc2hhcGUgYXMgYSB0b3AtbGV2ZWwgcmVjb3JkXG4gKiB3aXRoIHRoZSBgcHJvZmlsZWAgZ3JvdXAgaW5jbHVkZWQsIGJ1dCB0aGUgcGFyZW50J3Mgb3duIHBhcmVudCBpcyBOT1RcbiAqIHJlY3Vyc2l2ZWx5IHJlc29sdmVkIChjYXBwZWQgYXQgZGVwdGggMSkuIENhbGxcbiAqIGBidXNpbmVzcy5nZXQocGFyZW50LmlkKWAgZm9yIHRoZSBncmFuZC1wYXJlbnQgaWYgbmVlZGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzUGFyZW50IHtcbiAgaWQ6IG51bWJlcjtcbiAgcHJvZmlsZTogQnVzaW5lc3NQcm9maWxlO1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIHNoYXBlIGZyb20gR0VUIC92MS9idXNpbmVzc2VzLzppZCBhbmQgdGhlIGVudHJpZXMgcmV0dXJuZWQgYnlcbiAqIEdFVCAvdjEvYnVzaW5lc3Nlcy4gR3JvdXAga2V5cyBhcmUgb3B0aW9uYWwgLSB0aGUgc2VydmVyIGluY2x1ZGVzXG4gKiBvbmx5IHRoZSBncm91cHMgdGhhdCB3ZXJlIGJvdGggcmVxdWVzdGVkIGFuZCBhdXRob3JpemVkIGZvciB0aGUgY2FsbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1c2luZXNzUmVjb3JkIHtcbiAgaWQ6IG51bWJlcjtcbiAgLyoqIERpcmVjdCBwYXJlbnQgYnVzaW5lc3MgKHNpbmdsZSBsZXZlbCksIG9yIG51bGwgaWYgcm9vdC4gKi9cbiAgcGFyZW50OiBCdXNpbmVzc1BhcmVudCB8IG51bGw7XG4gIHByb2ZpbGU/OiBCdXNpbmVzc1Byb2ZpbGU7XG4gIGdzdD86IEJ1c2luZXNzR3N0O1xuICBwYXltZW50X2dhdGV3YXk/OiBCdXNpbmVzc1BheW1lbnRHYXRld2F5O1xufVxuIl19
@@ -0,0 +1,71 @@
1
+ import { type AuditClient } from './audit/client';
2
+ import { type BusinessClient } from './business/client';
3
+ import { auth } from './auth';
4
+ /**
5
+ * Caller-facing config for the unified `createClient(...)` factory and
6
+ * the `platform` singleton.
7
+ *
8
+ * Pick exactly one of:
9
+ * - `accessToken` (string or callback) for the Bearer flow
10
+ * - `oauthClientId` + `oauthClientSecret` for OAuth2 client_credentials
11
+ * - `serviceId` + `serviceSecret` for HMAC service-to-service
12
+ *
13
+ * Mixing is allowed only when one is the user-facing Bearer and the
14
+ * other is the HMAC fallback for legacy endpoints (audit ingest).
15
+ * In that case `platform.business` uses Bearer; `platform.audit` uses
16
+ * HMAC. Without either, calls throw `ConfigError` on the first request.
17
+ */
18
+ export interface ClientConfig {
19
+ baseUrl?: string;
20
+ /** Auth surface base; defaults to `${baseUrl}/auth/business`. Used only to bootstrap the first client_credentials mint — once a token exists, future auth calls follow the token's `iss`. */
21
+ authBaseUrl?: string;
22
+ accessToken?: string | (() => string | Promise<string>);
23
+ oauthClientId?: string;
24
+ oauthClientSecret?: string;
25
+ oauthScope?: string;
26
+ serviceId?: string;
27
+ serviceSecret?: string;
28
+ expiryBufferMs?: number;
29
+ fetchFn?: typeof fetch;
30
+ }
31
+ export interface PlatformClient {
32
+ business: BusinessClient;
33
+ audit: AuditClient;
34
+ auth: typeof auth;
35
+ /**
36
+ * Return a derived client bound to the supplied access token.
37
+ * Inherits `baseUrl`, `fetchFn`, and any HMAC fallback from this
38
+ * client; replaces the OAuth/static-token source with the new one.
39
+ * Use case: BFF handlers that want to call the platform API as the
40
+ * end user instead of as the service.
41
+ */
42
+ withToken(token: string | (() => string | Promise<string>)): PlatformClient;
43
+ }
44
+ /**
45
+ * Build a fresh, isolated client from explicit config. Each call
46
+ * gets its own TokenSource state — concurrent `createClient(...)` use
47
+ * does not stampede the cache.
48
+ */
49
+ export declare function createClient(input?: ClientConfig): PlatformClient;
50
+ /**
51
+ * Default client. Reads config from environment variables on first
52
+ * property access (so test setups that mutate `process.env` after
53
+ * import work). Use `createClient(...)` when you need an isolated
54
+ * instance with explicit config.
55
+ *
56
+ * PLATFORM_BASE_URL defaults to https://api.platform.uengage.io
57
+ * PLATFORM_AUTH_TOKEN Bearer token (overrides OAuth + HMAC)
58
+ * PLATFORM_OAUTH_CLIENT_ID OAuth2 client_credentials
59
+ * PLATFORM_OAUTH_CLIENT_SECRET OAuth2 client_credentials
60
+ * PLATFORM_OAUTH_SCOPE optional space-separated scope list
61
+ * PLATFORM_SERVICE_ID HMAC service-id (legacy / audit)
62
+ * PLATFORM_SIGNING_SECRET HMAC raw secret (legacy / audit)
63
+ */
64
+ export declare const platform: PlatformClient;
65
+ /** Test-only: drop the singleton cache between cases. */
66
+ export declare function _resetPlatformSingleton(): void;
67
+ /**
68
+ * Convenience: shorthand for `platform.withToken(token)`.
69
+ * BFF handlers commonly call this once per request.
70
+ */
71
+ export declare function withToken(token: string | (() => string | Promise<string>)): PlatformClient;
package/dist/client.js ADDED
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.platform = void 0;
4
+ exports.createClient = createClient;
5
+ exports._resetPlatformSingleton = _resetPlatformSingleton;
6
+ exports.withToken = withToken;
7
+ const client_1 = require("./audit/client");
8
+ const client_2 = require("./business/client");
9
+ const auth_1 = require("./auth");
10
+ const token_source_1 = require("./token-source");
11
+ const DEFAULT_BASE_URL = 'https://api.platform.uengage.io';
12
+ /**
13
+ * Build a fresh, isolated client from explicit config. Each call
14
+ * gets its own TokenSource state — concurrent `createClient(...)` use
15
+ * does not stampede the cache.
16
+ */
17
+ function createClient(input = {}) {
18
+ warnIfBrowserSecret(input);
19
+ return buildClient(input);
20
+ }
21
+ function buildClient(input) {
22
+ const baseUrl = input.baseUrl ?? DEFAULT_BASE_URL;
23
+ const tokenSourceState = resolveTokenSource(input, baseUrl);
24
+ const businessAuth = pickBusinessAuth(input, tokenSourceState);
25
+ const businessClient = (0, client_2.createBusinessClient)({
26
+ baseUrl,
27
+ fetchFn: input.fetchFn,
28
+ auth: businessAuth,
29
+ });
30
+ // Audit is HMAC-only on the server side, so always use the HMAC
31
+ // creds when present, regardless of any token-source overlay.
32
+ const auditAuth = input.serviceId && input.serviceSecret
33
+ ? { type: 'hmac', serviceId: input.serviceId, secret: input.serviceSecret }
34
+ : undefined;
35
+ const auditClient = (0, client_1.createAuditClient)({
36
+ baseUrl,
37
+ fetchFn: input.fetchFn,
38
+ auth: auditAuth,
39
+ });
40
+ const client = {
41
+ business: businessClient,
42
+ audit: auditClient,
43
+ auth: auth_1.auth,
44
+ withToken(token) {
45
+ return buildClient({
46
+ ...input,
47
+ accessToken: token,
48
+ // The new client should not also try to mint via
49
+ // client_credentials on top of the supplied user token.
50
+ oauthClientId: undefined,
51
+ oauthClientSecret: undefined,
52
+ oauthScope: undefined,
53
+ });
54
+ },
55
+ };
56
+ return client;
57
+ }
58
+ function pickBusinessAuth(input, tokenSourceState) {
59
+ if (tokenSourceState)
60
+ return { type: 'token-source', state: tokenSourceState };
61
+ if (input.serviceId && input.serviceSecret) {
62
+ return { type: 'hmac', serviceId: input.serviceId, secret: input.serviceSecret };
63
+ }
64
+ return undefined;
65
+ }
66
+ function resolveTokenSource(input, baseUrl) {
67
+ const authBaseUrl = input.authBaseUrl ?? `${baseUrl}/auth/business`;
68
+ if (input.accessToken !== undefined) {
69
+ if (typeof input.accessToken === 'string') {
70
+ return (0, token_source_1.makeTokenSourceState)({ kind: 'static-string', token: input.accessToken }, { expiryBufferMs: input.expiryBufferMs, fetchFn: input.fetchFn });
71
+ }
72
+ return (0, token_source_1.makeTokenSourceState)({ kind: 'callback', getToken: input.accessToken }, { expiryBufferMs: input.expiryBufferMs, fetchFn: input.fetchFn });
73
+ }
74
+ if (input.oauthClientId && input.oauthClientSecret) {
75
+ return (0, token_source_1.makeTokenSourceState)({
76
+ kind: 'service-credentials',
77
+ clientId: input.oauthClientId,
78
+ clientSecret: input.oauthClientSecret,
79
+ authBaseUrl,
80
+ scope: input.oauthScope,
81
+ }, { expiryBufferMs: input.expiryBufferMs, fetchFn: input.fetchFn });
82
+ }
83
+ return undefined;
84
+ }
85
+ function warnIfBrowserSecret(config) {
86
+ const g = globalThis;
87
+ const inBrowser = typeof g.window !== 'undefined' && typeof g.window.document !== 'undefined';
88
+ if (!inBrowser)
89
+ return;
90
+ if (config.serviceSecret || config.oauthClientSecret) {
91
+ console.warn('[uengage-platform-sdk] service-side secrets should not be used in browser environments. ' +
92
+ 'Service credentials in browser bundles are publicly visible. ' +
93
+ 'Use `accessToken` with a token obtained via OAuth (or `withToken(...)` on a server-built client) instead.');
94
+ }
95
+ }
96
+ // ─── Default singleton ─────────────────────────────────────────────────────
97
+ //
98
+ // Resolved lazily on first property access (Proxy) so consumers that
99
+ // mutate `process.env` after import still pick up the right values.
100
+ let cachedSingleton;
101
+ function singleton() {
102
+ if (!cachedSingleton)
103
+ cachedSingleton = buildClient(envClientConfig());
104
+ return cachedSingleton;
105
+ }
106
+ function envClientConfig() {
107
+ if (typeof process === 'undefined')
108
+ return {};
109
+ const e = process.env ?? {};
110
+ return {
111
+ baseUrl: e.PLATFORM_BASE_URL,
112
+ authBaseUrl: e.PLATFORM_AUTH_BASE_URL,
113
+ accessToken: e.PLATFORM_AUTH_TOKEN,
114
+ oauthClientId: e.PLATFORM_OAUTH_CLIENT_ID,
115
+ oauthClientSecret: e.PLATFORM_OAUTH_CLIENT_SECRET,
116
+ oauthScope: e.PLATFORM_OAUTH_SCOPE,
117
+ serviceId: e.PLATFORM_SERVICE_ID,
118
+ serviceSecret: e.PLATFORM_SIGNING_SECRET,
119
+ };
120
+ }
121
+ /**
122
+ * Default client. Reads config from environment variables on first
123
+ * property access (so test setups that mutate `process.env` after
124
+ * import work). Use `createClient(...)` when you need an isolated
125
+ * instance with explicit config.
126
+ *
127
+ * PLATFORM_BASE_URL defaults to https://api.platform.uengage.io
128
+ * PLATFORM_AUTH_TOKEN Bearer token (overrides OAuth + HMAC)
129
+ * PLATFORM_OAUTH_CLIENT_ID OAuth2 client_credentials
130
+ * PLATFORM_OAUTH_CLIENT_SECRET OAuth2 client_credentials
131
+ * PLATFORM_OAUTH_SCOPE optional space-separated scope list
132
+ * PLATFORM_SERVICE_ID HMAC service-id (legacy / audit)
133
+ * PLATFORM_SIGNING_SECRET HMAC raw secret (legacy / audit)
134
+ */
135
+ exports.platform = new Proxy({}, {
136
+ get(_, prop) {
137
+ const s = singleton();
138
+ return s[prop];
139
+ },
140
+ });
141
+ /** Test-only: drop the singleton cache between cases. */
142
+ function _resetPlatformSingleton() {
143
+ cachedSingleton = undefined;
144
+ }
145
+ /**
146
+ * Convenience: shorthand for `platform.withToken(token)`.
147
+ * BFF handlers commonly call this once per request.
148
+ */
149
+ function withToken(token) {
150
+ return singleton().withToken(token);
151
+ }
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1REEsb0NBR0M7QUFpSkQsMERBRUM7QUFNRCw4QkFFQztBQXJORCwyQ0FBcUU7QUFDckUsOENBQThFO0FBQzlFLGlDQUE4QjtBQUM5QixpREFBNkU7QUE2QzdFLE1BQU0sZ0JBQWdCLEdBQUcsaUNBQWlDLENBQUM7QUFFM0Q7Ozs7R0FJRztBQUNILFNBQWdCLFlBQVksQ0FBQyxRQUFzQixFQUFFO0lBQ25ELG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFtQjtJQUN0QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDO0lBQ2xELE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRTVELE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sY0FBYyxHQUFHLElBQUEsNkJBQW9CLEVBQUM7UUFDMUMsT0FBTztRQUNQLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztRQUN0QixJQUFJLEVBQUUsWUFBWTtLQUNuQixDQUFDLENBQUM7SUFFSCxnRUFBZ0U7SUFDaEUsOERBQThEO0lBQzlELE1BQU0sU0FBUyxHQUNiLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLGFBQWE7UUFDcEMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRTtRQUMzRSxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLE1BQU0sV0FBVyxHQUFHLElB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QUFDO1FBQ2pFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCx5REFBeUQ7QUFDekQsU0FBZ0IsdUJBQXVCO0lBQ3JDLGVBQWUsR0FBRyxTQUFTLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxLQUFnRDtJQUN4RSxPQUFPLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQXVkaXRDbGllbnQsIHR5cGUgQXVkaXRDbGllbnQgfSBmcm9tICcuL2F1ZGl0L2NsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVCdXNpbmVzc0NsaWVudCwgdHlwZSBCdXNpbmVzc0NsaWVudCB9IGZyb20gJy4vYnVzaW5lc3MvY2xpZW50JztcbmltcG9ydCB7IGF1dGggfSBmcm9tICcuL2F1dGgnO1xuaW1wb3J0IHsgbWFrZVRva2VuU291cmNlU3RhdGUsIHR5cGUgVG9rZW5Tb3VyY2VTdGF0ZSB9IGZyb20gJy4vdG9rZW4tc291cmNlJztcbmltcG9ydCB0eXBlIHsgUGxhdGZvcm1BdXRoIH0gZnJvbSAnLi9jb25maWcnO1xuXG4vKipcbiAqIENhbGxlci1mYWNpbmcgY29uZmlnIGZvciB0aGUgdW5pZmllZCBgY3JlYXRlQ2xpZW50KC4uLilgIGZhY3RvcnkgYW5kXG4gKiB0aGUgYHBsYXRmb3JtYCBzaW5nbGV0b24uXG4gKlxuICogUGljayBleGFjdGx5IG9uZSBvZjpcbiAqICAgLSBgYWNjZXNzVG9rZW5gIChzdHJpbmcgb3IgY2FsbGJhY2spIGZvciB0aGUgQmVhcmVyIGZsb3dcbiAqICAgLSBgb2F1dGhDbGllbnRJZGAgKyBgb2F1dGhDbGllbnRTZWNyZXRgIGZvciBPQXV0aDIgY2xpZW50X2NyZWRlbnRpYWxzXG4gKiAgIC0gYHNlcnZpY2VJZGAgKyBgc2VydmljZVNlY3JldGAgZm9yIEhNQUMgc2VydmljZS10by1zZXJ2aWNlXG4gKlxuICogTWl4aW5nIGlzIGFsbG93ZWQgb25seSB3aGVuIG9uZSBpcyB0aGUgdXNlci1mYWNpbmcgQmVhcmVyIGFuZCB0aGVcbiAqIG90aGVyIGlzIHRoZSBITUFDIGZhbGxiYWNrIGZvciBsZWdhY3kgZW5kcG9pbnRzIChhdWRpdCBpbmdlc3QpLlxuICogSW4gdGhhdCBjYXNlIGBwbGF0Zm9ybS5idXNpbmVzc2AgdXNlcyBCZWFyZXI7IGBwbGF0Zm9ybS5hdWRpdGAgdXNlc1xuICogSE1BQy4gV2l0aG91dCBlaXRoZXIsIGNhbGxzIHRocm93IGBDb25maWdFcnJvcmAgb24gdGhlIGZpcnN0IHJlcXVlc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50Q29uZmlnIHtcbiAgYmFzZVVybD86IHN0cmluZztcbiAgLyoqIEF1dGggc3VyZmFjZSBiYXNlOyBkZWZhdWx0cyB0byBgJHtiYXNlVXJsfS9hdXRoL2J1c2luZXNzYC4gVXNlZCBvbmx5IHRvIGJvb3RzdHJhcCB0aGUgZmlyc3QgY2xpZW50X2NyZWRlbnRpYWxzIG1pbnQg4oCUIG9uY2UgYSB0b2tlbiBleGlzdHMsIGZ1dHVyZSBhdXRoIGNhbGxzIGZvbGxvdyB0aGUgdG9rZW4ncyBgaXNzYC4gKi9cbiAgYXV0aEJhc2VVcmw/OiBzdHJpbmc7XG4gIGFjY2Vzc1Rva2VuPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPik7XG4gIG9hdXRoQ2xpZW50SWQ/OiBzdHJpbmc7XG4gIG9hdXRoQ2xpZW50U2VjcmV0Pzogc3RyaW5nO1xuICBvYXV0aFNjb3BlPzogc3RyaW5nO1xuICBzZXJ2aWNlSWQ/OiBzdHJpbmc7XG4gIHNlcnZpY2VTZWNyZXQ/OiBzdHJpbmc7XG4gIGV4cGlyeUJ1ZmZlck1zPzogbnVtYmVyO1xuICBmZXRjaEZuPzogdHlwZW9mIGZldGNoO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYXRmb3JtQ2xpZW50IHtcbiAgYnVzaW5lc3M6IEJ1c2luZXNzQ2xpZW50O1xuICBhdWRpdDogQXVkaXRDbGllbnQ7XG4gIGF1dGg6IHR5cGVvZiBhdXRoO1xuICAvKipcbiAgICogUmV0dXJuIGEgZGVyaXZlZCBjbGllbnQgYm91bmQgdG8gdGhlIHN1cHBsaWVkIGFjY2VzcyB0b2tlbi5cbiAgICogSW5oZXJpdHMgYGJhc2VVcmxgLCBgZmV0Y2hGbmAsIGFuZCBhbnkgSE1BQyBmYWxsYmFjayBmcm9tIHRoaXNcbiAgICogY2xpZW50OyByZXBsYWNlcyB0aGUgT0F1dGgvc3RhdGljLXRva2VuIHNvdXJjZSB3aXRoIHRoZSBuZXcgb25lLlxuICAgKiBVc2UgY2FzZTogQkZGIGhhbmRsZXJzIHRoYXQgd2FudCB0byBjYWxsIHRoZSBwbGF0Zm9ybSBBUEkgYXMgdGhlXG4gICAqIGVuZCB1c2VyIGluc3RlYWQgb2YgYXMgdGhlIHNlcnZpY2UuXG4gICAqL1xuICB3aXRoVG9rZW4odG9rZW46IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pKTogUGxhdGZvcm1DbGllbnQ7XG59XG5cbmNvbnN0IERFRkFVTFRfQkFTRV9VUkwgPSAnaHR0cHM6Ly9hcGkucGxhdGZvcm0udWVuZ2FnZS5pbyc7XG5cbi8qKlxuICogQnVpbGQgYSBmcmVzaCwgaXNvbGF0ZWQgY2xpZW50IGZyb20gZXhwbGljaXQgY29uZmlnLiBFYWNoIGNhbGxcbiAqIGdldHMgaXRzIG93biBUb2tlblNvdXJjZSBzdGF0ZSDigJQgY29uY3VycmVudCBgY3JlYXRlQ2xpZW50KC4uLilgIHVzZVxuICogZG9lcyBub3Qgc3RhbXBlZGUgdGhlIGNhY2hlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2xpZW50KGlucHV0OiBDbGllbnRDb25maWcgPSB7fSk6IFBsYXRmb3JtQ2xpZW50IHtcbiAgd2FybklmQnJvd3NlclNlY3JldChpbnB1dCk7XG4gIHJldHVybiBidWlsZENsaWVudChpbnB1dCk7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQ2xpZW50KGlucHV0OiBDbGllbnRDb25maWcpOiBQbGF0Zm9ybUNsaWVudCB7XG4gIGNvbnN0IGJhc2VVcmwgPSBpbnB1dC5iYXNlVXJsID8/IERFRkFVTFRfQkFTRV9VUkw7XG4gIGNvbnN0IHRva2VuU291cmNlU3RhdGUgPSByZXNvbHZlVG9rZW5Tb3VyY2UoaW5wdXQsIGJhc2VVcmwpO1xuXG4gIGNvbnN0IGJ1c2luZXNzQXV0aCA9IHBpY2tCdXNpbmVzc0F1dGgoaW5wdXQsIHRva2VuU291cmNlU3RhdGUpO1xuICBjb25zdCBidXNpbmVzc0NsaWVudCA9IGNyZWF0ZUJ1c2luZXNzQ2xpZW50KHtcbiAgICBiYXNlVXJsLFxuICAgIGZldGNoRm46IGlucHV0LmZldGNoRm4sXG4gICAgYXV0aDogYnVzaW5lc3NBdXRoLFxuICB9KTtcblxuICAvLyBBdWRpdCBpcyBITUFDLW9ubHkgb24gdGhlIHNlcnZlciBzaWRlLCBzbyBhbHdheXMgdXNlIHRoZSBITUFDXG4gIC8vIGNyZWRzIHdoZW4gcHJlc2VudCwgcmVnYXJkbGVzcyBvZiBhbnkgdG9rZW4tc291cmNlIG92ZXJsYXkuXG4gIGNvbnN0IGF1ZGl0QXV0aDogUGxhdGZvcm1BdXRoIHwgdW5kZWZpbmVkID1cbiAgICBpbnB1dC5zZXJ2aWNlSWQgJiYgaW5wdXQuc2VydmljZVNlY3JldFxuICAgICAgPyB7IHR5cGU6ICdobWFjJywgc2VydmljZUlkOiBpbnB1dC5zZXJ2aWNlSWQsIHNlY3JldDogaW5wdXQuc2VydmljZVNlY3JldCB9XG4gICAgICA6IHVuZGVmaW5lZDtcbiAgY29uc3QgYXVkaXRDbGllbnQgPSBjcmVhdGVBdWRpdENsaWVudCh7XG4gICAgYmFzZVVybCxcbiAgICBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLFxuICAgIGF1dGg6IGF1ZGl0QXV0aCxcbiAgfSk7XG5cbiAgY29uc3QgY2xpZW50OiBQbGF0Zm9ybUNsaWVudCA9IHtcbiAgICBidXNpbmVzczogYnVzaW5lc3NDbGllbnQsXG4gICAgYXVkaXQ6IGF1ZGl0Q2xpZW50LFxuICAgIGF1dGgsXG4gICAgd2l0aFRva2VuKHRva2VuKSB7XG4gICAgICByZXR1cm4gYnVpbGRDbGllbnQoe1xuICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgYWNjZXNzVG9rZW46IHRva2VuLFxuICAgICAgICAvLyBUaGUgbmV3IGNsaWVudCBzaG91bGQgbm90IGFsc28gdHJ5IHRvIG1pbnQgdmlhXG4gICAgICAgIC8vIGNsaWVudF9jcmVkZW50aWFscyBvbiB0b3Agb2YgdGhlIHN1cHBsaWVkIHVzZXIgdG9rZW4uXG4gICAgICAgIG9hdXRoQ2xpZW50SWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgb2F1dGhDbGllbnRTZWNyZXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgb2F1dGhTY29wZTogdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIGNsaWVudDtcbn1cblxuZnVuY3Rpb24gcGlja0J1c2luZXNzQXV0aChcbiAgaW5wdXQ6IENsaWVudENvbmZpZyxcbiAgdG9rZW5Tb3VyY2VTdGF0ZTogVG9rZW5Tb3VyY2VTdGF0ZSB8IHVuZGVmaW5lZCxcbik6IFBsYXRmb3JtQXV0aCB8IHVuZGVmaW5lZCB7XG4gIGlmICh0b2tlblNvdXJjZVN0YXRlKSByZXR1cm4geyB0eXBlOiAndG9rZW4tc291cmNlJywgc3RhdGU6IHRva2VuU291cmNlU3RhdGUgfTtcbiAgaWYgKGlucHV0LnNlcnZpY2VJZCAmJiBpbnB1dC5zZXJ2aWNlU2VjcmV0KSB7XG4gICAgcmV0dXJuIHsgdHlwZTogJ2htYWMnLCBzZXJ2aWNlSWQ6IGlucHV0LnNlcnZpY2VJZCwgc2VjcmV0OiBpbnB1dC5zZXJ2aWNlU2VjcmV0IH07XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVRva2VuU291cmNlKGlucHV0OiBDbGllbnRDb25maWcsIGJhc2VVcmw6IHN0cmluZyk6IFRva2VuU291cmNlU3RhdGUgfCB1bmRlZmluZWQge1xuICBjb25zdCBhdXRoQmFzZVVybCA9IGlucHV0LmF1dGhCYXNlVXJsID8/IGAke2Jhc2VVcmx9L2F1dGgvYnVzaW5lc3NgO1xuICBpZiAoaW5wdXQuYWNjZXNzVG9rZW4gIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlb2YgaW5wdXQuYWNjZXNzVG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gbWFrZVRva2VuU291cmNlU3RhdGUoXG4gICAgICAgIHsga2luZDogJ3N0YXRpYy1zdHJpbmcnLCB0b2tlbjogaW5wdXQuYWNjZXNzVG9rZW4gfSxcbiAgICAgICAgeyBleHBpcnlCdWZmZXJNczogaW5wdXQuZXhwaXJ5QnVmZmVyTXMsIGZldGNoRm46IGlucHV0LmZldGNoRm4gfSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBtYWtlVG9rZW5Tb3VyY2VTdGF0ZShcbiAgICAgIHsga2luZDogJ2NhbGxiYWNrJywgZ2V0VG9rZW46IGlucHV0LmFjY2Vzc1Rva2VuIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgaWYgKGlucHV0Lm9hdXRoQ2xpZW50SWQgJiYgaW5wdXQub2F1dGhDbGllbnRTZWNyZXQpIHtcbiAgICByZXR1cm4gbWFrZVRva2VuU291cmNlU3RhdGUoXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICdzZXJ2aWNlLWNyZWRlbnRpYWxzJyxcbiAgICAgICAgY2xpZW50SWQ6IGlucHV0Lm9hdXRoQ2xpZW50SWQsXG4gICAgICAgIGNsaWVudFNlY3JldDogaW5wdXQub2F1dGhDbGllbnRTZWNyZXQsXG4gICAgICAgIGF1dGhCYXNlVXJsLFxuICAgICAgICBzY29wZTogaW5wdXQub2F1dGhTY29wZSxcbiAgICAgIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gd2FybklmQnJvd3NlclNlY3JldChjb25maWc6IENsaWVudENvbmZpZyk6IHZvaWQge1xuICBjb25zdCBnID0gZ2xvYmFsVGhpcyBhcyB7IHdpbmRvdz86IHsgZG9jdW1lbnQ/OiB1bmtub3duIH0gfTtcbiAgY29uc3QgaW5Ccm93c2VyID0gdHlwZW9mIGcud2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZy53aW5kb3cuZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuICBpZiAoIWluQnJvd3NlcikgcmV0dXJuO1xuICBpZiAoY29uZmlnLnNlcnZpY2VTZWNyZXQgfHwgY29uZmlnLm9hdXRoQ2xpZW50U2VjcmV0KSB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgJ1t1ZW5nYWdlLXBsYXRmb3JtLXNka10gc2VydmljZS1zaWRlIHNlY3JldHMgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGJyb3dzZXIgZW52aXJvbm1lbnRzLiAnICtcbiAgICAgICAgJ1NlcnZpY2UgY3JlZGVudGlhbHMgaW4gYnJvd3NlciBidW5kbGVzIGFyZSBwdWJsaWNseSB2aXNpYmxlLiAnICtcbiAgICAgICAgJ1VzZSBgYWNjZXNzVG9rZW5gIHdpdGggYSB0b2tlbiBvYnRhaW5lZCB2aWEgT0F1dGggKG9yIGB3aXRoVG9rZW4oLi4uKWAgb24gYSBzZXJ2ZXItYnVpbHQgY2xpZW50KSBpbnN0ZWFkLicsXG4gICAgKTtcbiAgfVxufVxuXG4vLyDilIDilIDilIAgRGVmYXVsdCBzaW5nbGV0b24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vL1xuLy8gUmVzb2x2ZWQgbGF6aWx5IG9uIGZpcnN0IHByb3BlcnR5IGFjY2VzcyAoUHJveHkpIHNvIGNvbnN1bWVycyB0aGF0XG4vLyBtdXRhdGUgYHByb2Nlc3MuZW52YCBhZnRlciBpbXBvcnQgc3RpbGwgcGljayB1cCB0aGUgcmlnaHQgdmFsdWVzLlxuXG5sZXQgY2FjaGVkU2luZ2xldG9uOiBQbGF0Zm9ybUNsaWVudCB8IHVuZGVmaW5lZDtcbmZ1bmN0aW9uIHNpbmdsZXRvbigpOiBQbGF0Zm9ybUNsaWVudCB7XG4gIGlmICghY2FjaGVkU2luZ2xldG9uKSBjYWNoZWRTaW5nbGV0b24gPSBidWlsZENsaWVudChlbnZDbGllbnRDb25maWcoKSk7XG4gIHJldHVybiBjYWNoZWRTaW5nbGV0b247XG59XG5cbmZ1bmN0aW9uIGVudkNsaWVudENvbmZpZygpOiBDbGllbnRDb25maWcge1xuICBpZiAodHlwZW9mIHByb2Nlc3MgPT09ICd1bmRlZmluZWQnKSByZXR1cm4ge307XG4gIGNvbnN0IGUgPSAocHJvY2VzcyBhcyB7IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4gfSkuZW52ID8/IHt9O1xuICByZXR1cm4ge1xuICAgIGJhc2VVcmw6IGUuUExBVEZPUk1fQkFTRV9VUkwsXG4gICAgYXV0aEJhc2VVcmw6IGUuUExBVEZPUk1fQVVUSF9CQVNFX1VSTCxcbiAgICBhY2Nlc3NUb2tlbjogZS5QTEFURk9STV9BVVRIX1RPS0VOLFxuICAgIG9hdXRoQ2xpZW50SWQ6IGUuUExBVEZPUk1fT0FVVEhfQ0xJRU5UX0lELFxuICAgIG9hdXRoQ2xpZW50U2VjcmV0OiBlLlBMQVRGT1JNX09BVVRIX0NMSUVOVF9TRUNSRVQsXG4gICAgb2F1dGhTY29wZTogZS5QTEFURk9STV9PQVVUSF9TQ09QRSxcbiAgICBzZXJ2aWNlSWQ6IGUuUExBVEZPUk1fU0VSVklDRV9JRCxcbiAgICBzZXJ2aWNlU2VjcmV0OiBlLlBMQVRGT1JNX1NJR05JTkdfU0VDUkVULFxuICB9O1xufVxuXG4vKipcbiAqIERlZmF1bHQgY2xpZW50LiBSZWFkcyBjb25maWcgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb24gZmlyc3RcbiAqIHByb3BlcnR5IGFjY2VzcyAoc28gdGVzdCBzZXR1cHMgdGhhdCBtdXRhdGUgYHByb2Nlc3MuZW52YCBhZnRlclxuICogaW1wb3J0IHdvcmspLiBVc2UgYGNyZWF0ZUNsaWVudCguLi4pYCB3aGVuIHlvdSBuZWVkIGFuIGlzb2xhdGVkXG4gKiBpbnN0YW5jZSB3aXRoIGV4cGxpY2l0IGNvbmZpZy5cbiAqXG4gKiAgIFBMQVRGT1JNX0JBU0VfVVJMICAgICAgICAgICAgICBkZWZhdWx0cyB0byBodHRwczovL2FwaS5wbGF0Zm9ybS51ZW5nYWdlLmlvXG4gKiAgIFBMQVRGT1JNX0FVVEhfVE9LRU4gICAgICAgICAgICBCZWFyZXIgdG9rZW4gKG92ZXJyaWRlcyBPQXV0aCArIEhNQUMpXG4gKiAgIFBMQVRGT1JNX09BVVRIX0NMSUVOVF9JRCAgICAgICBPQXV0aDIgY2xpZW50X2NyZWRlbnRpYWxzXG4gKiAgIFBMQVRGT1JNX09BVVRIX0NMSUVOVF9TRUNSRVQgICBPQXV0aDIgY2xpZW50X2NyZWRlbnRpYWxzXG4gKiAgIFBMQVRGT1JNX09BVVRIX1NDT1BFICAgICAgICAgICBvcHRpb25hbCBzcGFjZS1zZXBhcmF0ZWQgc2NvcGUgbGlzdFxuICogICBQTEFURk9STV9TRVJWSUNFX0lEICAgICAgICAgICAgSE1BQyBzZXJ2aWNlLWlkIChsZWdhY3kgLyBhdWRpdClcbiAqICAgUExBVEZPUk1fU0lHTklOR19TRUNSRVQgICAgICAgIEhNQUMgcmF3IHNlY3JldCAgKGxlZ2FjeSAvIGF1ZGl0KVxuICovXG5leHBvcnQgY29uc3QgcGxhdGZvcm06IFBsYXRmb3JtQ2xpZW50ID0gbmV3IFByb3h5KHt9IGFzIFBsYXRmb3JtQ2xpZW50LCB7XG4gIGdldChfLCBwcm9wKSB7XG4gICAgY29uc3QgcyA9IHNpbmdsZXRvbigpIGFzIHVua25vd24gYXMgUmVjb3JkPFByb3BlcnR5S2V5LCB1bmtub3duPjtcbiAgICByZXR1cm4gc1twcm9wXTtcbiAgfSxcbn0pO1xuXG4vKiogVGVzdC1vbmx5OiBkcm9wIHRoZSBzaW5nbGV0b24gY2FjaGUgYmV0d2VlbiBjYXNlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBfcmVzZXRQbGF0Zm9ybVNpbmdsZXRvbigpOiB2b2lkIHtcbiAgY2FjaGVkU2luZ2xldG9uID0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENvbnZlbmllbmNlOiBzaG9ydGhhbmQgZm9yIGBwbGF0Zm9ybS53aXRoVG9rZW4odG9rZW4pYC5cbiAqIEJGRiBoYW5kbGVycyBjb21tb25seSBjYWxsIHRoaXMgb25jZSBwZXIgcmVxdWVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhUb2tlbih0b2tlbjogc3RyaW5nIHwgKCgpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPikpOiBQbGF0Zm9ybUNsaWVudCB7XG4gIHJldHVybiBzaW5nbGV0b24oKS53aXRoVG9rZW4odG9rZW4pO1xufVxuIl19
package/dist/config.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Logger } from '@uengage.io/js-logger';
2
+ import type { TokenSourceState } from './token-source';
2
3
  export declare const DEFAULT_BASE_URL = "https://api.platform.uengage.io";
3
4
  /**
4
5
  * Resolved auth state. Discriminated by `type` so consumers can narrow.
@@ -10,6 +11,9 @@ export type PlatformAuth = {
10
11
  } | {
11
12
  type: 'bearer';
12
13
  token: string;
14
+ } | {
15
+ type: 'token-source';
16
+ state: TokenSourceState;
13
17
  };
14
18
  export interface PlatformConfig {
15
19
  baseUrl: string;
package/dist/config.js CHANGED
@@ -81,4 +81,4 @@ class ConfigState {
81
81
  }
82
82
  }
83
83
  exports.ConfigState = ConfigState;
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2Q0Esa0NBTUM7QUFlRCxzQ0FZQztBQTVFWSxRQUFBLGdCQUFnQixHQUFHLGlDQUFpQyxDQUFDO0FBc0NsRTs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVztJQUN6QixPQUFPO1FBQ0wsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksd0JBQWdCO1FBQzFELElBQUksRUFBRSxPQUFPLEVBQUU7UUFDZixPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQXFCO0tBQzFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxPQUFPO0lBQ2QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQztJQUNuRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7SUFDOUMsSUFBSSxLQUFLO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUMsSUFBSSxNQUFNLElBQUksU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUNwRSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEtBQXVDO0lBQ25FLElBQUksTUFBTSxJQUFJLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNsQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBYSxXQUFXO0lBQ2QsU0FBUyxHQUF3QixFQUFFLENBQUM7SUFDcEMsWUFBWSxDQUEyQjtJQUN2QyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRWhDLEtBQUssQ0FBQyxLQUEwQjtRQUM5QixJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDeEUsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3hFLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNyRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQXVDO1FBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxHQUFHLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDMUIsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTztZQUM5QyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7WUFDekQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBaUI7WUFDaEUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBNEI7U0FDcEQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdCRCxrQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gJ0B1ZW5nYWdlLmlvL2pzLWxvZ2dlcic7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBU0VfVVJMID0gJ2h0dHBzOi8vYXBpLnBsYXRmb3JtLnVlbmdhZ2UuaW8nO1xuXG4vKipcbiAqIFJlc29sdmVkIGF1dGggc3RhdGUuIERpc2NyaW1pbmF0ZWQgYnkgYHR5cGVgIHNvIGNvbnN1bWVycyBjYW4gbmFycm93LlxuICovXG5leHBvcnQgdHlwZSBQbGF0Zm9ybUF1dGggPVxuICB8IHsgdHlwZTogJ2htYWMnOyBzZWNyZXQ6IHN0cmluZzsgc2VydmljZUlkOiBzdHJpbmcgfVxuICB8IHsgdHlwZTogJ2JlYXJlcic7IHRva2VuOiBzdHJpbmcgfTtcblxuZXhwb3J0IGludGVyZmFjZSBQbGF0Zm9ybUNvbmZpZyB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXV0aD86IFBsYXRmb3JtQXV0aDtcbiAgZmV0Y2hGbjogdHlwZW9mIGZldGNoO1xuICBsb2dnZXI/OiBMb2dnZXI7XG59XG5cbi8qKlxuICogQ2FsbGVyLWZhY2luZyBpbnB1dCBzaGFwZS4gYGF1dGhgIGFjY2VwdHMgZWl0aGVyIGEgZGlzY3JpbWluYXRlZFxuICogUGxhdGZvcm1BdXRoIG9yIHRoZSBsb29zZXIgUGxhdGZvcm1BdXRoSW5wdXQgLSB0aGUgbG9vc2VyIGZvcm0gaXNcbiAqIGFsc28gd2hhdCBgLmF1dGgoKWAgYWNjZXB0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGF0Zm9ybUNvbmZpZ0lucHV0IHtcbiAgYmFzZVVybD86IHN0cmluZztcbiAgYXV0aD86IFBsYXRmb3JtQXV0aElucHV0IHwgUGxhdGZvcm1BdXRoO1xuICBmZXRjaEZuPzogdHlwZW9mIGZldGNoO1xuICBsb2dnZXI/OiBMb2dnZXI7XG59XG5cbi8qKlxuICogYC5hdXRoKClgIHNoYXBlLiBQYXNzIGVpdGhlciBge3Rva2VufWAgKEJlYXJlcikgb3IgYHtzZWNyZXQsIHNlcnZpY2VJZH1gXG4gKiAoSE1BQykuIE1peGluZyBib3RoIHRocm93cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGF0Zm9ybUF1dGhJbnB1dCB7XG4gIHRva2VuPzogc3RyaW5nO1xuICBzZWNyZXQ/OiBzdHJpbmc7XG4gIHNlcnZpY2VJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGVudi1kZWZhdWx0ZWQgY29uZmlnLiBSZS1yZWFkIG9uIGV2ZXJ5IGNhbGwgc28gdGhhdCBjYWxsZXJzIGNhblxuICogc2V0IGVudiB2YXJzIGFmdGVyIHRoZSBTREsgaGFzIGJlZW4gaW1wb3J0ZWQgYW5kIHN0aWxsIHBpY2sgdGhlbSB1cCBvblxuICogdGhlIG5leHQgcmVxdWVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudkRlZmF1bHRzKCk6IFBsYXRmb3JtQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBiYXNlVXJsOiBwcm9jZXNzLmVudi5QTEFURk9STV9CQVNFX1VSTCA/PyBERUZBVUxUX0JBU0VfVVJMLFxuICAgIGF1dGg6IGVudkF1dGgoKSxcbiAgICBmZXRjaEZuOiBnbG9iYWxUaGlzLmZldGNoIGFzIHR5cGVvZiBmZXRjaCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZW52QXV0aCgpOiBQbGF0Zm9ybUF1dGggfCB1bmRlZmluZWQge1xuICBjb25zdCBzZWNyZXQgPSBwcm9jZXNzLmVudi5QTEFURk9STV9TSUdOSU5HX1NFQ1JFVDtcbiAgY29uc3Qgc2VydmljZUlkID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fU0VSVklDRV9JRDtcbiAgY29uc3QgdG9rZW4gPSBwcm9jZXNzLmVudi5QTEFURk9STV9BVVRIX1RPS0VOO1xuICBpZiAodG9rZW4pIHJldHVybiB7IHR5cGU6ICdiZWFyZXInLCB0b2tlbiB9O1xuICBpZiAoc2VjcmV0ICYmIHNlcnZpY2VJZCkgcmV0dXJuIHsgdHlwZTogJ2htYWMnLCBzZWNyZXQsIHNlcnZpY2VJZCB9O1xuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENvZXJjZSBgLmF1dGgoKWAgaW5wdXQgb3IgYGNvbmZpZyh7YXV0aH0pYCBpbnB1dCBpbnRvIGEgdHlwZWQgUGxhdGZvcm1BdXRoLlxuICogVGhyb3dzIGlmIHRoZSBpbnB1dCBoYXMgbm8gdXNhYmxlIGNyZWRlbnRpYWxzIG9yIG1peGVzIEhNQUMgKyBCZWFyZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVBdXRoKGlucHV0OiBQbGF0Zm9ybUF1dGhJbnB1dCB8IFBsYXRmb3JtQXV0aCk6IFBsYXRmb3JtQXV0aCB7XG4gIGlmICgndHlwZScgaW4gaW5wdXQpIHJldHVybiBpbnB1dDtcbiAgaWYgKGlucHV0LnRva2VuKSB7XG4gICAgaWYgKGlucHV0LnNlY3JldCB8fCBpbnB1dC5zZXJ2aWNlSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYXV0aCgpOiBwYXNzIGVpdGhlciB7dG9rZW59IG9yIHtzZWNyZXQsIHNlcnZpY2VJZH0sIG5vdCBib3RoJyk7XG4gICAgfVxuICAgIHJldHVybiB7IHR5cGU6ICdiZWFyZXInLCB0b2tlbjogaW5wdXQudG9rZW4gfTtcbiAgfVxuICBpZiAoaW5wdXQuc2VjcmV0ICYmIGlucHV0LnNlcnZpY2VJZCkge1xuICAgIHJldHVybiB7IHR5cGU6ICdobWFjJywgc2VjcmV0OiBpbnB1dC5zZWNyZXQsIHNlcnZpY2VJZDogaW5wdXQuc2VydmljZUlkIH07XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdhdXRoKCk6IG11c3QgcHJvdmlkZSBlaXRoZXIge3Rva2VufSBvciB7c2VjcmV0LCBzZXJ2aWNlSWR9Jyk7XG59XG5cbi8qKlxuICogTXV0YWJsZSBjb25maWcgc2hhcmVkIGJ5IGNsaWVudHMuIGBhcHBseSgpYCBhbmQgYHNldEF1dGgoKWAgYXJlIGhvdyB0aGVcbiAqIGNoYWluYWJsZSBgLmNvbmZpZygpYCAvIGAuYXV0aCgpYCBtZXRob2RzIHdyaXRlIGJhY2suIGByZXNvbHZlKClgIHByb2R1Y2VzXG4gKiB0aGUgZWZmZWN0aXZlIGNvbmZpZyBmb3Igb25lIHJlcXVlc3QsIGZhbGxpbmcgYmFjayB0byBjdXJyZW50IGVudiBzdGF0ZVxuICogZm9yIGZpZWxkcyB0aGUgY2FsbGVyIGhhc24ndCBwaW5uZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25maWdTdGF0ZSB7XG4gIHByaXZhdGUgb3ZlcnJpZGVzOiBQbGF0Zm9ybUNvbmZpZ0lucHV0ID0ge307XG4gIHByaXZhdGUgZXhwbGljaXRBdXRoOiBQbGF0Zm9ybUF1dGggfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaGFzRXhwbGljaXRBdXRoID0gZmFsc2U7XG5cbiAgYXBwbHkoaW5wdXQ6IFBsYXRmb3JtQ29uZmlnSW5wdXQpOiB2b2lkIHtcbiAgICBpZiAoaW5wdXQuYmFzZVVybCAhPT0gdW5kZWZpbmVkKSB0aGlzLm92ZXJyaWRlcy5iYXNlVXJsID0gaW5wdXQuYmFzZVVybDtcbiAgICBpZiAoaW5wdXQuZmV0Y2hGbiAhPT0gdW5kZWZpbmVkKSB0aGlzLm92ZXJyaWRlcy5mZXRjaEZuID0gaW5wdXQuZmV0Y2hGbjtcbiAgICBpZiAoaW5wdXQubG9nZ2VyICE9PSB1bmRlZmluZWQpIHRoaXMub3ZlcnJpZGVzLmxvZ2dlciA9IGlucHV0LmxvZ2dlcjtcbiAgICBpZiAoaW5wdXQuYXV0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmV4cGxpY2l0QXV0aCA9IG5vcm1hbGl6ZUF1dGgoaW5wdXQuYXV0aCk7XG4gICAgICB0aGlzLmhhc0V4cGxpY2l0QXV0aCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2V0QXV0aChpbnB1dDogUGxhdGZvcm1BdXRoSW5wdXQgfCBQbGF0Zm9ybUF1dGgpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGxpY2l0QXV0aCA9IG5vcm1hbGl6ZUF1dGgoaW5wdXQpO1xuICAgIHRoaXMuaGFzRXhwbGljaXRBdXRoID0gdHJ1ZTtcbiAgfVxuXG4gIHJlc29sdmUoKTogUGxhdGZvcm1Db25maWcge1xuICAgIGNvbnN0IGVudiA9IGVudkRlZmF1bHRzKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJhc2VVcmw6IHRoaXMub3ZlcnJpZGVzLmJhc2VVcmwgPz8gZW52LmJhc2VVcmwsXG4gICAgICBhdXRoOiB0aGlzLmhhc0V4cGxpY2l0QXV0aCA/IHRoaXMuZXhwbGljaXRBdXRoIDogZW52LmF1dGgsXG4gICAgICBmZXRjaEZuOiAodGhpcy5vdmVycmlkZXMuZmV0Y2hGbiA/PyBlbnYuZmV0Y2hGbikgYXMgdHlwZW9mIGZldGNoLFxuICAgICAgbG9nZ2VyOiB0aGlzLm92ZXJyaWRlcy5sb2dnZXIgYXMgTG9nZ2VyIHwgdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErQ0Esa0NBTUM7QUFlRCxzQ0FZQztBQTdFWSxRQUFBLGdCQUFnQixHQUFHLGlDQUFpQyxDQUFDO0FBdUNsRTs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVztJQUN6QixPQUFPO1FBQ0wsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksd0JBQWdCO1FBQzFELElBQUksRUFBRSxPQUFPLEVBQUU7UUFDZixPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQXFCO0tBQzFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxPQUFPO0lBQ2QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQztJQUNuRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO0lBQ2xELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUM7SUFDOUMsSUFBSSxLQUFLO1FBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUMsSUFBSSxNQUFNLElBQUksU0FBUztRQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUNwRSxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEtBQXVDO0lBQ25FLElBQUksTUFBTSxJQUFJLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNsQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztRQUNsRixDQUFDO1FBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBYSxXQUFXO0lBQ2QsU0FBUyxHQUF3QixFQUFFLENBQUM7SUFDcEMsWUFBWSxDQUEyQjtJQUN2QyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRWhDLEtBQUssQ0FBQyxLQUEwQjtRQUM5QixJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDeEUsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3hFLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNyRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQXVDO1FBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxHQUFHLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDMUIsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTztZQUM5QyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUk7WUFDekQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBaUI7WUFDaEUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBNEI7U0FDcEQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdCRCxrQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gJ0B1ZW5nYWdlLmlvL2pzLWxvZ2dlcic7XG5pbXBvcnQgdHlwZSB7IFRva2VuU291cmNlU3RhdGUgfSBmcm9tICcuL3Rva2VuLXNvdXJjZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JBU0VfVVJMID0gJ2h0dHBzOi8vYXBpLnBsYXRmb3JtLnVlbmdhZ2UuaW8nO1xuXG4vKipcbiAqIFJlc29sdmVkIGF1dGggc3RhdGUuIERpc2NyaW1pbmF0ZWQgYnkgYHR5cGVgIHNvIGNvbnN1bWVycyBjYW4gbmFycm93LlxuICovXG5leHBvcnQgdHlwZSBQbGF0Zm9ybUF1dGggPVxuICB8IHsgdHlwZTogJ2htYWMnOyBzZWNyZXQ6IHN0cmluZzsgc2VydmljZUlkOiBzdHJpbmcgfVxuICB8IHsgdHlwZTogJ2JlYXJlcic7IHRva2VuOiBzdHJpbmcgfVxuICB8IHsgdHlwZTogJ3Rva2VuLXNvdXJjZSc7IHN0YXRlOiBUb2tlblNvdXJjZVN0YXRlIH07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1Db25maWcge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGF1dGg/OiBQbGF0Zm9ybUF1dGg7XG4gIGZldGNoRm46IHR5cGVvZiBmZXRjaDtcbiAgbG9nZ2VyPzogTG9nZ2VyO1xufVxuXG4vKipcbiAqIENhbGxlci1mYWNpbmcgaW5wdXQgc2hhcGUuIGBhdXRoYCBhY2NlcHRzIGVpdGhlciBhIGRpc2NyaW1pbmF0ZWRcbiAqIFBsYXRmb3JtQXV0aCBvciB0aGUgbG9vc2VyIFBsYXRmb3JtQXV0aElucHV0IC0gdGhlIGxvb3NlciBmb3JtIGlzXG4gKiBhbHNvIHdoYXQgYC5hdXRoKClgIGFjY2VwdHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1Db25maWdJbnB1dCB7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIGF1dGg/OiBQbGF0Zm9ybUF1dGhJbnB1dCB8IFBsYXRmb3JtQXV0aDtcbiAgZmV0Y2hGbj86IHR5cGVvZiBmZXRjaDtcbiAgbG9nZ2VyPzogTG9nZ2VyO1xufVxuXG4vKipcbiAqIGAuYXV0aCgpYCBzaGFwZS4gUGFzcyBlaXRoZXIgYHt0b2tlbn1gIChCZWFyZXIpIG9yIGB7c2VjcmV0LCBzZXJ2aWNlSWR9YFxuICogKEhNQUMpLiBNaXhpbmcgYm90aCB0aHJvd3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1BdXRoSW5wdXQge1xuICB0b2tlbj86IHN0cmluZztcbiAgc2VjcmV0Pzogc3RyaW5nO1xuICBzZXJ2aWNlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBlbnYtZGVmYXVsdGVkIGNvbmZpZy4gUmUtcmVhZCBvbiBldmVyeSBjYWxsIHNvIHRoYXQgY2FsbGVycyBjYW5cbiAqIHNldCBlbnYgdmFycyBhZnRlciB0aGUgU0RLIGhhcyBiZWVuIGltcG9ydGVkIGFuZCBzdGlsbCBwaWNrIHRoZW0gdXAgb25cbiAqIHRoZSBuZXh0IHJlcXVlc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnZEZWZhdWx0cygpOiBQbGF0Zm9ybUNvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgYmFzZVVybDogcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgPz8gREVGQVVMVF9CQVNFX1VSTCxcbiAgICBhdXRoOiBlbnZBdXRoKCksXG4gICAgZmV0Y2hGbjogZ2xvYmFsVGhpcy5mZXRjaCBhcyB0eXBlb2YgZmV0Y2gsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGVudkF1dGgoKTogUGxhdGZvcm1BdXRoIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc2VjcmV0ID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fU0lHTklOR19TRUNSRVQ7XG4gIGNvbnN0IHNlcnZpY2VJZCA9IHByb2Nlc3MuZW52LlBMQVRGT1JNX1NFUlZJQ0VfSUQ7XG4gIGNvbnN0IHRva2VuID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fQVVUSF9UT0tFTjtcbiAgaWYgKHRva2VuKSByZXR1cm4geyB0eXBlOiAnYmVhcmVyJywgdG9rZW4gfTtcbiAgaWYgKHNlY3JldCAmJiBzZXJ2aWNlSWQpIHJldHVybiB7IHR5cGU6ICdobWFjJywgc2VjcmV0LCBzZXJ2aWNlSWQgfTtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb2VyY2UgYC5hdXRoKClgIGlucHV0IG9yIGBjb25maWcoe2F1dGh9KWAgaW5wdXQgaW50byBhIHR5cGVkIFBsYXRmb3JtQXV0aC5cbiAqIFRocm93cyBpZiB0aGUgaW5wdXQgaGFzIG5vIHVzYWJsZSBjcmVkZW50aWFscyBvciBtaXhlcyBITUFDICsgQmVhcmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQXV0aChpbnB1dDogUGxhdGZvcm1BdXRoSW5wdXQgfCBQbGF0Zm9ybUF1dGgpOiBQbGF0Zm9ybUF1dGgge1xuICBpZiAoJ3R5cGUnIGluIGlucHV0KSByZXR1cm4gaW5wdXQ7XG4gIGlmIChpbnB1dC50b2tlbikge1xuICAgIGlmIChpbnB1dC5zZWNyZXQgfHwgaW5wdXQuc2VydmljZUlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dGgoKTogcGFzcyBlaXRoZXIge3Rva2VufSBvciB7c2VjcmV0LCBzZXJ2aWNlSWR9LCBub3QgYm90aCcpO1xuICAgIH1cbiAgICByZXR1cm4geyB0eXBlOiAnYmVhcmVyJywgdG9rZW46IGlucHV0LnRva2VuIH07XG4gIH1cbiAgaWYgKGlucHV0LnNlY3JldCAmJiBpbnB1dC5zZXJ2aWNlSWQpIHtcbiAgICByZXR1cm4geyB0eXBlOiAnaG1hYycsIHNlY3JldDogaW5wdXQuc2VjcmV0LCBzZXJ2aWNlSWQ6IGlucHV0LnNlcnZpY2VJZCB9O1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignYXV0aCgpOiBtdXN0IHByb3ZpZGUgZWl0aGVyIHt0b2tlbn0gb3Ige3NlY3JldCwgc2VydmljZUlkfScpO1xufVxuXG4vKipcbiAqIE11dGFibGUgY29uZmlnIHNoYXJlZCBieSBjbGllbnRzLiBgYXBwbHkoKWAgYW5kIGBzZXRBdXRoKClgIGFyZSBob3cgdGhlXG4gKiBjaGFpbmFibGUgYC5jb25maWcoKWAgLyBgLmF1dGgoKWAgbWV0aG9kcyB3cml0ZSBiYWNrLiBgcmVzb2x2ZSgpYCBwcm9kdWNlc1xuICogdGhlIGVmZmVjdGl2ZSBjb25maWcgZm9yIG9uZSByZXF1ZXN0LCBmYWxsaW5nIGJhY2sgdG8gY3VycmVudCBlbnYgc3RhdGVcbiAqIGZvciBmaWVsZHMgdGhlIGNhbGxlciBoYXNuJ3QgcGlubmVkLlxuICovXG5leHBvcnQgY2xhc3MgQ29uZmlnU3RhdGUge1xuICBwcml2YXRlIG92ZXJyaWRlczogUGxhdGZvcm1Db25maWdJbnB1dCA9IHt9O1xuICBwcml2YXRlIGV4cGxpY2l0QXV0aDogUGxhdGZvcm1BdXRoIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGhhc0V4cGxpY2l0QXV0aCA9IGZhbHNlO1xuXG4gIGFwcGx5KGlucHV0OiBQbGF0Zm9ybUNvbmZpZ0lucHV0KTogdm9pZCB7XG4gICAgaWYgKGlucHV0LmJhc2VVcmwgIT09IHVuZGVmaW5lZCkgdGhpcy5vdmVycmlkZXMuYmFzZVVybCA9IGlucHV0LmJhc2VVcmw7XG4gICAgaWYgKGlucHV0LmZldGNoRm4gIT09IHVuZGVmaW5lZCkgdGhpcy5vdmVycmlkZXMuZmV0Y2hGbiA9IGlucHV0LmZldGNoRm47XG4gICAgaWYgKGlucHV0LmxvZ2dlciAhPT0gdW5kZWZpbmVkKSB0aGlzLm92ZXJyaWRlcy5sb2dnZXIgPSBpbnB1dC5sb2dnZXI7XG4gICAgaWYgKGlucHV0LmF1dGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5leHBsaWNpdEF1dGggPSBub3JtYWxpemVBdXRoKGlucHV0LmF1dGgpO1xuICAgICAgdGhpcy5oYXNFeHBsaWNpdEF1dGggPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNldEF1dGgoaW5wdXQ6IFBsYXRmb3JtQXV0aElucHV0IHwgUGxhdGZvcm1BdXRoKTogdm9pZCB7XG4gICAgdGhpcy5leHBsaWNpdEF1dGggPSBub3JtYWxpemVBdXRoKGlucHV0KTtcbiAgICB0aGlzLmhhc0V4cGxpY2l0QXV0aCA9IHRydWU7XG4gIH1cblxuICByZXNvbHZlKCk6IFBsYXRmb3JtQ29uZmlnIHtcbiAgICBjb25zdCBlbnYgPSBlbnZEZWZhdWx0cygpO1xuICAgIHJldHVybiB7XG4gICAgICBiYXNlVXJsOiB0aGlzLm92ZXJyaWRlcy5iYXNlVXJsID8/IGVudi5iYXNlVXJsLFxuICAgICAgYXV0aDogdGhpcy5oYXNFeHBsaWNpdEF1dGggPyB0aGlzLmV4cGxpY2l0QXV0aCA6IGVudi5hdXRoLFxuICAgICAgZmV0Y2hGbjogKHRoaXMub3ZlcnJpZGVzLmZldGNoRm4gPz8gZW52LmZldGNoRm4pIGFzIHR5cGVvZiBmZXRjaCxcbiAgICAgIGxvZ2dlcjogdGhpcy5vdmVycmlkZXMubG9nZ2VyIGFzIExvZ2dlciB8IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Platform-SDK error hierarchy. Consumers should `instanceof`-check
3
+ * against `PlatformError` for the catch-all and the specific subclasses
4
+ * for the cases they care about. Status codes mirror the HTTP responses
5
+ * the platform API actually emits, so `error.status` is the simplest
6
+ * routing signal.
7
+ */
8
+ export declare class PlatformError extends Error {
9
+ readonly status?: number;
10
+ readonly cause?: unknown;
11
+ constructor(message: string, opts?: {
12
+ status?: number;
13
+ cause?: unknown;
14
+ });
15
+ }
16
+ export declare class AuthenticationError extends PlatformError {
17
+ constructor(message?: string, opts?: {
18
+ cause?: unknown;
19
+ });
20
+ }
21
+ export declare class AuthorizationError extends PlatformError {
22
+ /** When the API returns a `requiredScope`, surface it for the consumer. */
23
+ readonly requiredScope?: string;
24
+ constructor(message?: string, opts?: {
25
+ requiredScope?: string;
26
+ cause?: unknown;
27
+ });
28
+ }
29
+ export declare class NotFoundError extends PlatformError {
30
+ constructor(message?: string, opts?: {
31
+ cause?: unknown;
32
+ });
33
+ }
34
+ export declare class ValidationError extends PlatformError {
35
+ /** Per-field issues in the platform's standard `issues` array shape. */
36
+ readonly issues?: unknown[];
37
+ constructor(message?: string, opts?: {
38
+ issues?: unknown[];
39
+ cause?: unknown;
40
+ });
41
+ }
42
+ export declare class RateLimitError extends PlatformError {
43
+ /** Seconds the consumer should back off (from `Retry-After`). */
44
+ readonly retryAfter?: number;
45
+ constructor(message?: string, opts?: {
46
+ retryAfter?: number;
47
+ cause?: unknown;
48
+ });
49
+ }
50
+ /**
51
+ * Thrown when the SDK detects an expired access token before the request
52
+ * is sent. Callers using a static externally-supplied token must update
53
+ * the config with a fresh one.
54
+ */
55
+ export declare class TokenExpiredError extends PlatformError {
56
+ constructor(message?: string);
57
+ }
58
+ /** Thrown for missing / inconsistent SDK configuration. */
59
+ export declare class ConfigError extends PlatformError {
60
+ constructor(message: string);
61
+ }