@uengage.io/platform-sdk 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +2 -0
- package/dist/client.js +4 -1
- package/dist/config.d.ts +0 -5
- package/dist/config.js +14 -3
- package/dist/http.js +25 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/upsell/client.d.ts +44 -0
- package/dist/upsell/client.js +136 -0
- package/dist/upsell/index.d.ts +2 -0
- package/dist/upsell/index.js +7 -0
- package/dist/upsell/schema.d.ts +203 -0
- package/dist/upsell/schema.js +12 -0
- package/dist/version.d.ts +7 -1
- package/dist/version.js +8 -2
- package/package.json +2 -2
package/dist/client.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { type AuditClient } from './audit/client';
|
|
|
2
2
|
import { type BusinessClient } from './business/client';
|
|
3
3
|
import { type ZonesClient } from './zones/client';
|
|
4
4
|
import { type WalletClient } from './wallet/client';
|
|
5
|
+
import { type UpsellClient } from './upsell/client';
|
|
5
6
|
import { auth as authNamespace } from './auth';
|
|
6
7
|
/**
|
|
7
8
|
* Caller-facing config for `createClient(...)`.
|
|
@@ -107,6 +108,7 @@ export interface PlatformClient {
|
|
|
107
108
|
audit: AuditClient;
|
|
108
109
|
zones: ZonesClient;
|
|
109
110
|
wallet: WalletClient;
|
|
111
|
+
upsell: UpsellClient;
|
|
110
112
|
auth: typeof authNamespace;
|
|
111
113
|
/**
|
|
112
114
|
* Resolve the current access token, minting via the configured auth
|
package/dist/client.js
CHANGED
|
@@ -5,6 +5,7 @@ const client_1 = require("./audit/client");
|
|
|
5
5
|
const client_2 = require("./business/client");
|
|
6
6
|
const client_3 = require("./zones/client");
|
|
7
7
|
const client_4 = require("./wallet/client");
|
|
8
|
+
const client_5 = require("./upsell/client");
|
|
8
9
|
const auth_1 = require("./auth");
|
|
9
10
|
const token_source_1 = require("./token-source");
|
|
10
11
|
const errors_1 = require("./errors");
|
|
@@ -35,11 +36,13 @@ function buildClient(input) {
|
|
|
35
36
|
});
|
|
36
37
|
const zonesClient = (0, client_3.createZonesClient)({ baseUrl, fetchFn: input.fetchFn, auth });
|
|
37
38
|
const walletClient = (0, client_4.createWalletClient)({ baseUrl, fetchFn: input.fetchFn, auth });
|
|
39
|
+
const upsellClient = (0, client_5.createUpsellClient)({ baseUrl, fetchFn: input.fetchFn, auth });
|
|
38
40
|
return {
|
|
39
41
|
business: businessClient,
|
|
40
42
|
audit: auditClient,
|
|
41
43
|
zones: zonesClient,
|
|
42
44
|
wallet: walletClient,
|
|
45
|
+
upsell: upsellClient,
|
|
43
46
|
auth: auth_1.auth,
|
|
44
47
|
getAccessToken: async () => {
|
|
45
48
|
if (!tokenSourceState) {
|
|
@@ -243,4 +246,4 @@ function warnIfBrowserSecret(config) {
|
|
|
243
246
|
'Use `authToken` (a Bearer obtained via OAuth) or `sessionToken` instead.');
|
|
244
247
|
}
|
|
245
248
|
}
|
|
246
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBJQSxvQ0FJQztBQTlJRCwyQ0FBcUU7QUFDckUsOENBQThFO0FBQzlFLDJDQUFxRTtBQUNyRSw0Q0FBd0U7QUFDeEUsaUNBQStDO0FBQy9DLGlEQUl3QjtBQUN4QixxQ0FBNEQ7QUF3SDVELE1BQU0sZ0JBQWdCLEdBQUcsaUNBQWlDLENBQUM7QUFFM0Q7Ozs7O0dBS0c7QUFDSCxTQUFnQixZQUFZLENBQUMsUUFBc0IsRUFBRTtJQUNuRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQW1CO0lBQ3RDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksZ0JBQWdCLENBQUM7SUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsTUFBTSxJQUFJLEdBQTZCLGdCQUFnQjtRQUNyRCxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtRQUNuRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsTUFBTSxjQUFjLEdBQUcsSUFBQSw2QkFBb0IsRUFBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLE1BQU0sV0FBVyxHQUFHLElBQUEsMEJBQWlCLEVBQUM7UUFDcEMsT0FBTztRQUNQLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztRQUN0QixJQUFJO1FBQ0osUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUks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QjtZQUNFLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVztZQUNyQyxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSTtZQUNyRCxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQy9CLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVE7U0FDaEMsRUFDRCxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ2pFLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsTUFBb0I7SUFDL0MsTUFBTSxDQUFDLEdBQUcsVUFBaUQsQ0FBQztJQUM1RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDO0lBQzlGLElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTztJQUN2QixJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsSUFBSSxDQUNWLG1GQUFtRjtZQUNqRiwrREFBK0Q7WUFDL0QsMEVBQTBFLENBQzdFLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUF1ZGl0Q2xpZW50LCB0eXBlIEF1ZGl0Q2xpZW50IH0gZnJvbSAnLi9hdWRpdC9jbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQnVzaW5lc3NDbGllbnQsIHR5cGUgQnVzaW5lc3NDbGllbnQgfSBmcm9tICcuL2J1c2luZXNzL2NsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVab25lc0NsaWVudCwgdHlwZSBab25lc0NsaWVudCB9IGZyb20gJy4vem9uZXMvY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZVdhbGxldENsaWVudCwgdHlwZSBXYWxsZXRDbGllbnQgfSBmcm9tICcuL3dhbGxldC9jbGllbnQnO1xuaW1wb3J0IHsgYXV0aCBhcyBhdXRoTmFtZXNwYWNlIH0gZnJvbSAnLi9hdXRoJztcbmltcG9ydCB7XG4gIGdldEFjY2Vzc1Rva2VuIGFzIHJlc29sdmVBY2Nlc3NUb2tlbixcbiAgbWFrZVRva2VuU291cmNlU3RhdGUsXG4gIHR5cGUgVG9rZW5Tb3VyY2VTdGF0ZSxcbn0gZnJvbSAnLi90b2tlbi1zb3VyY2UnO1xuaW1wb3J0IHsgQ29uZmlnRXJyb3IsIEF1dGhlbnRpY2F0aW9uRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFBsYXRmb3JtQXV0aCB9IGZyb20gJy4vY29uZmlnJztcblxuLyoqXG4gKiBDYWxsZXItZmFjaW5nIGNvbmZpZyBmb3IgYGNyZWF0ZUNsaWVudCguLi4pYC5cbiAqXG4gKiBgY3JlYXRlQ2xpZW50KClgIChubyBhcmdzKSByZWFkcyBldmVyeXRoaW5nIGZyb20gdGhlIHN0YW5kYXJkXG4gKiBgVUVOR0FHRV8qYCBlbnZpcm9ubWVudCB2YXJpYWJsZXMg4oCUIGNvbnZlbmllbnQgZm9yIExhbWJkYXMgdGhhdFxuICogYWxyZWFkeSBoYXZlIHRoZWlyIGNvbmZpZyBpbmplY3RlZCBieSB0aGUgZGVwbG95IHN0YWNrLiBBbnkgZmllbGRcbiAqIHBhc3NlZCBleHBsaWNpdGx5IG92ZXJyaWRlcyB0aGUgbWF0Y2hpbmcgZW52IGRlZmF1bHQgZm9yIHRoYXQgb25lXG4gKiBjYWxsIG9ubHkgKG5vIHNoYXJlZCBtdXRhYmxlIHN0YXRlLCBubyBzaW5nbGV0b24pLlxuICpcbiAqIEF1dGgtbW9kZSBmaWVsZHMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gUGljayBvbmU6XG4gKiAgIC0gYHNlcnZpY2VJZGAgKyBgc2VydmljZVNlY3JldGAgIE9BdXRoMiBjbGllbnRfY3JlZGVudGlhbHMuXG4gKiAgIC0gYGF1dGhUb2tlbmAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBCZWFyZXIgdG9rZW4sIG9yIGFzeW5jXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrIHRoYXQgcmV0dXJucyBvbmUuXG4gKiAgIC0gYHNlc3Npb246IHtpZCwgdG9rZW59YCAgICAgICAgIGxlZ2FjeSB1RW5nYWdlIChpZCwgYXBpVG9rZW4pIC9cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlkLCBhZGRvX2NvbnRhY3RzX21hcHBpbmcudG9rZW4pXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhaXIuIFRoZSBTREsgcHJvYmVzIHRoZSBidXNpbmVzc1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJmYWNlICh1c2VycykgZmlyc3QsIGZhbGxzIGJhY2tcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIGN1c3RvbWVyIHN1cmZhY2VcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZG9fY29udGFjdHNfbWFwcGluZykgaWYgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c2luZXNzIHByb2JlIHJldHVybnNcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGludmFsaWRfZ3JhbnRgLCBhbmQgY2FjaGVzIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRpbmcgSldULlxuICpcbiAqIFBhc3NpbmcgbW9yZSB0aGFuIG9uZSBleHBsaWNpdGx5IGlzIGEgYENvbmZpZ0Vycm9yYC4gUGFzc2luZyBhbnkgb25lXG4gKiBvZiB0aGVtIHN1cHByZXNzZXMgZXZlcnkgZW52LWRlcml2ZWQgYXV0aCBkZWZhdWx0LCBzbyBhIGNhbGxlcidzXG4gKiBleHBsaWNpdCBvdmVycmlkZSBpcyBuZXZlciBzaWxlbnRseSBtZXJnZWQgd2l0aCBlbnYgY3JlZGVudGlhbHMgb2ZcbiAqIGEgZGlmZmVyZW50IG1vZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50Q29uZmlnIHtcbiAgYmFzZVVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIEF1dGggc3VyZmFjZSBiYXNlIHVzZWQgdG8gYm9vdHN0cmFwIHRoZSBmaXJzdCBjbGllbnRfY3JlZGVudGlhbHNcbiAgICogbWludC4gRGVmYXVsdHMgdG8gYCR7YmFzZVVybH0vYXV0aC9idXNpbmVzc2AuXG4gICAqL1xuICBhdXRoQmFzZVVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbWVyIGF1dGggc3VyZmFjZSBiYXNlIHVzZWQgYnkgYHNlc3Npb25gIGV4Y2hhbmdlcy4gRGVmYXVsdHMgdG9cbiAgICogYCR7YmFzZVVybH0vYXV0aC9jdXN0b21lcmAuXG4gICAqL1xuICBjdXN0b21lckF1dGhCYXNlVXJsPzogc3RyaW5nO1xuXG4gIC8vIOKUgOKUgOKUgCBBdXRoIG1vZGVzIChtdXR1YWxseSBleGNsdXNpdmUpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAvKiogT0F1dGgyIGBjbGllbnRfY3JlZGVudGlhbHNgIGNsaWVudElkLiBQYWlyIHdpdGggYHNlcnZpY2VTZWNyZXRgLiAqL1xuICBzZXJ2aWNlSWQ/OiBzdHJpbmc7XG4gIC8qKiBPQXV0aDIgYGNsaWVudF9jcmVkZW50aWFsc2AgY2xpZW50U2VjcmV0LiBQYWlyIHdpdGggYHNlcnZpY2VJZGAuICovXG4gIHNlcnZpY2VTZWNyZXQ/OiBzdHJpbmc7XG4gIC8qKiBTcGFjZS1zZXBhcmF0ZWQgc2NvcGUgbGlzdCB0byByZXF1ZXN0IHdoZW4gbWludGluZyB2aWEgY2xpZW50X2NyZWRlbnRpYWxzLiAqL1xuICBzY29wZT86IHN0cmluZztcbiAgLyoqIFN0YXRpYyBCZWFyZXIgSldULCBvciBhc3luYyBjYWxsYmFjayB0aGF0IHJldHVybnMgb25lLiAqL1xuICBhdXRoVG9rZW4/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+KTtcbiAgLyoqXG4gICAqIExlZ2FjeSB1RW5nYWdlIChpZCwgdG9rZW4pIHBhaXIuIGBpZGAgaXMgYHVzZXJzLnVzZXJJZGAgZm9yIHN0YWZmXG4gICAqIHVzZXJzIChtYXRjaGVkIHZpYSB0aGUgYnVzaW5lc3Mgc3VyZmFjZSkgb3JcbiAgICogYGFkZG9fY29udGFjdHNfbWFwcGluZy5pZGAvYGNvbnRhY3RJZGAgZm9yIGN1c3RvbWVycyAobWF0Y2hlZCB2aWFcbiAgICogdGhlIGN1c3RvbWVyIHN1cmZhY2UpLiBUaGUgU0RLIHByb2JlcyB0aGUgYnVzaW5lc3Mgc3VyZmFjZSBmaXJzdFxuICAgKiBhbmQgZmFsbHMgYmFjayB0byBjdXN0b21lciBvbiBgaW52YWxpZF9ncmFudGAuXG4gICAqL1xuICBzZXNzaW9uPzogeyBpZDogc3RyaW5nIHwgbnVtYmVyOyB0b2tlbjogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBgKGFjY2Vzc1Rva2VuLCByZWZyZXNoVG9rZW4pYCBwYWlyIGZyb20gYSBmaW5pc2hlZCBsb2dpbiBmbG93XG4gICAqIChgYXV0aC5sb2dpbldpdGhQYXNzd29yZCguLi4pYCwgYGF1dGgudmVyaWZ5T3RwKC4uLilgLCBldGMpLiBUaGVcbiAgICogU0RLIHVzZXMgdGhlIGFjY2VzcyB0b2tlbiB1bnRpbCBpdCBleHBpcmVzLCB0aGVuIHJvdGF0ZXMgdmlhXG4gICAqIGBhdXRoLnJlZnJlc2goLi4uKWAgdHJhbnNwYXJlbnRseS4gYG9uUm90YXRlYCBmaXJlcyBhZnRlciBldmVyeVxuICAgKiByb3RhdGlvbiBzbyBjYWxsZXJzIGNhbiBwZXJzaXN0IHRoZSBuZXcgcGFpci5cbiAgICovXG4gIHRva2Vucz86IHtcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICAgIC8qKiBBY2Nlc3MgdG9rZW4gVFRMIChzZWNvbmRzKSwgYXMgcmV0dXJuZWQgYnkgdGhlIGF1dGggc3VyZmFjZS4gKi9cbiAgICBleHBpcmVzSW46IG51bWJlcjtcbiAgICAvKiogT0F1dGggY2xpZW50IGlkIHVzZWQgZHVyaW5nIHRoZSBvcmlnaW5hbCBsb2dpbiAocmVxdWlyZWQgYnkgdGhlIHJlZnJlc2ggaGFuZGxlcikuICovXG4gICAgY2xpZW50SWQ6IHN0cmluZztcbiAgICBvblJvdGF0ZT86IChwYWlyOiB7XG4gICAgICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICAgICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gICAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICB9KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgfTtcblxuICAvKipcbiAgICogU2VydmljZSBpZGVudGlmaWVyIHRoZSBhdWRpdCBjbGllbnQgc2hvdWxkIHN0YW1wIGludG8gYGFjdG9yLnZpYWBcbiAgICogb24gZW1pdHRlZCBldmVudHMuIERlZmF1bHRzIHRvIGBzZXJ2aWNlSWRgIHdoZW4gc2V0OyBvdGhlcndpc2VcbiAgICogYXVkaXQgYHJlY29yZCgpYCBjYWxscyBsb2cgYW4gZXJyb3IgYW5kIGRyb3AgdGhlIGV2ZW50LlxuICAgKi9cbiAgYWN0b3JWaWE/OiBzdHJpbmc7XG4gIGV4cGlyeUJ1ZmZlck1zPzogbnVtYmVyO1xuICBmZXRjaEZuPzogdHlwZW9mIGZldGNoO1xufVxuXG4vKipcbiAqIFRoZSBuYW1lc3BhY2VzIHRoYXQgcmVhY2ggdGhlIHBsYXRmb3JtIEhUVFAgQVBJLlxuICpcbiAqIGBldmVudHNgIGlzIGRlbGliZXJhdGVseSBOT1QgaGVyZS4gSXQgcHVibGlzaGVzIHN0cmFpZ2h0IHRvIFNOUywgc29cbiAqIHdpcmluZyBpdCBvbnRvIHRoaXMgY2xpZW50IHdvdWxkIG1ha2UgYEBhd3Mtc2RrL2NsaWVudC1zbnNgIGEgaGFyZFxuICogZGVwZW5kZW5jeSBvZiB0aGUgU0RLJ3MgbWFpbiBlbnRyeSDigJQgcGFpZCBieSBldmVyeSBjb25zdW1lciB0aGF0IG9ubHlcbiAqIHJlYWRzIGJ1c2luZXNzZXMgb3Igem9uZXMsIGFuZCBieSBldmVyeSBmcm9udGVuZCBidW5kbGUgdGhhdCB0b3VjaGVzXG4gKiB0aGUgcm9vdCBpbXBvcnQuIEl0IGxpdmVzIGF0IHRoZSBgQHVlbmdhZ2UuaW8vcGxhdGZvcm0tc2RrL2V2ZW50c2BcbiAqIHN1YnBhdGggaW5zdGVhZCwgYWxvbmdzaWRlIGAvcmVhbHRpbWVgLCBhbmQgaXMgY29uZmlndXJlZCBmcm9tIHRoZVxuICogZW52aXJvbm1lbnQgKGBQTEFURk9STV9FVkVOVFNfVE9QSUNfQVJOYCkgb3IgYGNyZWF0ZUV2ZW50c0NsaWVudCguLi4pYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGF0Zm9ybUNsaWVudCB7XG4gIGJ1c2luZXNzOiBCdXNpbmVzc0NsaWVudDtcbiAgYXVkaXQ6IEF1ZGl0Q2xpZW50O1xuICB6b25lczogWm9uZXNDbGllbnQ7XG4gIHdhbGxldDogV2FsbGV0Q2xpZW50O1xuICBhdXRoOiB0eXBlb2YgYXV0aE5hbWVzcGFjZTtcbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIGN1cnJlbnQgYWNjZXNzIHRva2VuLCBtaW50aW5nIHZpYSB0aGUgY29uZmlndXJlZCBhdXRoXG4gICAqIG1vZGUgaWYgdGhlIGNhY2hlIGlzIGNvbGQuIFVzZWZ1bCBmb3IgYGF1dGgudmVyaWZ5QWNjZXNzVG9rZW4oLi4uKWBcbiAgICogcm91bmQtdHJpcHMgYW5kIGZvciBjYWxsZXJzIHRoYXQgd2FudCB0byBsb2cgLyBmb3J3YXJkIHRoZSBiZWFyZXJcbiAgICogdG8gYSBkb3duc3RyZWFtIHNlcnZpY2UuXG4gICAqXG4gICAqIFRocm93cyBgQ29uZmlnRXJyb3JgIHdoZW4gdGhlIGNsaWVudCB3YXMgYnVpbHQgd2l0aCBubyBhdXRoIG1vZGUuXG4gICAqL1xuICBnZXRBY2Nlc3NUb2tlbigpOiBQcm9taXNlPHN0cmluZz47XG59XG5cbmNvbnN0IERFRkFVTFRfQkFTRV9VUkwgPSAnaHR0cHM6Ly9hcGkucGxhdGZvcm0udWVuZ2FnZS5pbyc7XG5cbi8qKlxuICogQnVpbGQgYSBmcmVzaCwgaXNvbGF0ZWQgY2xpZW50LiBXaXRoIG5vIGFyZ3MsIHJlYWRzIGBVRU5HQUdFXypgXG4gKiBlbnYgdmFyczsgZXhwbGljaXQgZmllbGRzIG92ZXJyaWRlIHBlciBjYWxsLiBFYWNoIGNhbGwgZ2V0cyBpdHMgb3duXG4gKiBUb2tlblNvdXJjZSBzdGF0ZSDigJQgY29uY3VycmVudCBgY3JlYXRlQ2xpZW50KC4uLilgIHVzZSBkb2VzIG5vdFxuICogc3RhbXBlZGUgdGhlIGNhY2hlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2xpZW50KGlucHV0OiBDbGllbnRDb25maWcgPSB7fSk6IFBsYXRmb3JtQ2xpZW50IHtcbiAgY29uc3QgbWVyZ2VkID0gbWVyZ2VXaXRoRW52KGlucHV0KTtcbiAgd2FybklmQnJvd3NlclNlY3JldChtZXJnZWQpO1xuICByZXR1cm4gYnVpbGRDbGllbnQobWVyZ2VkKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDbGllbnQoaW5wdXQ6IENsaWVudENvbmZpZyk6IFBsYXRmb3JtQ2xpZW50IHtcbiAgY29uc3QgYmFzZVVybCA9IGlucHV0LmJhc2VVcmwgPz8gREVGQVVMVF9CQVNFX1VSTDtcbiAgY29uc3QgdG9rZW5Tb3VyY2VTdGF0ZSA9IHJlc29sdmVUb2tlblNvdXJjZShpbnB1dCwgYmFzZVVybCk7XG4gIGNvbnN0IGF1dGg6IFBsYXRmb3JtQXV0aCB8IHVuZGVmaW5lZCA9IHRva2VuU291cmNlU3RhdGVcbiAgICA/IHsgdHlwZTogJ3Rva2VuLXNvdXJjZScsIHN0YXRlOiB0b2tlblNvdXJjZVN0YXRlIH1cbiAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBidXNpbmVzc0NsaWVudCA9IGNyZWF0ZUJ1c2luZXNzQ2xpZW50KHsgYmFzZVVybCwgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiwgYXV0aCB9KTtcbiAgY29uc3QgYXVkaXRDbGllbnQgPSBjcmVhdGVBdWRpdENsaWVudCh7XG4gICAgYmFzZVVybCxcbiAgICBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLFxuICAgIGF1dGgsXG4gICAgYWN0b3JWaWE6IGlucHV0LmFjdG9yVmlhID8/IGlucHV0LnNlcnZpY2VJZCxcbiAgfSk7XG4gIGNvbnN0IHpvbmVzQ2xpZW50ID0gY3JlYXRlWm9uZXNDbGllbnQoeyBiYXNlVXJsLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLCBhdXRoIH0pO1xuICBjb25zdCB3YWxsZXRDbGllbnQgPSBjcmVhdGVXYWxsZXRDbGllbnQoeyBiYXNlVXJsLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLCBhdXRoIH0pO1xuXG4gIHJldHVybiB7XG4gICAgYnVzaW5lc3M6IGJ1c2luZXNzQ2xpZW50LFxuICAgIGF1ZGl0OiBhdWRpdENsaWVudCxcbiAgICB6b25lczogem9uZXNDbGllbnQsXG4gICAgd2FsbGV0OiB3YWxsZXRDbGllbnQsXG4gICAgYXV0aDogYXV0aE5hbWVzcGFjZSxcbiAgICBnZXRBY2Nlc3NUb2tlbjogYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCF0b2tlblNvdXJjZVN0YXRlKSB7XG4gICAgICAgIHRocm93IG5ldyBDb25maWdFcnJvcihcbiAgICAgICAgICAnZ2V0QWNjZXNzVG9rZW46IG5vIGF1dGggbW9kZSBjb25maWd1cmVkLiBQYXNzIHtzZXJ2aWNlSWQsIHNlcnZpY2VTZWNyZXR9IHwge2F1dGhUb2tlbn0gfCB7c2Vzc2lvbn0uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlQWNjZXNzVG9rZW4odG9rZW5Tb3VyY2VTdGF0ZSk7XG4gICAgfSxcbiAgfTtcbn1cblxuY29uc3QgQVVUSF9NT0RFX0ZJRUxEUyA9IFtcbiAgJ3NlcnZpY2VJZCcsXG4gICdzZXJ2aWNlU2VjcmV0JyxcbiAgJ3Njb3BlJyxcbiAgJ2F1dGhUb2tlbicsXG4gICdzZXNzaW9uJyxcbiAgJ3Rva2VucycsXG5dIGFzIGNvbnN0O1xuXG4vKipcbiAqIE1lcmdlIGVudi1kZXJpdmVkIGRlZmF1bHRzIHdpdGggdGhlIGNhbGxlcidzIGV4cGxpY2l0IGlucHV0LiBBbnlcbiAqIGV4cGxpY2l0IGF1dGgtbW9kZSBmaWVsZCBzdXBwcmVzc2VzICphbGwqIGVudi1kZXJpdmVkIGF1dGggZGVmYXVsdHMsXG4gKiBzbyBhbiBleHBsaWNpdCBge2F1dGhUb2tlbn1gIG92ZXJyaWRlIGRvZXNuJ3QgYWNjaWRlbnRhbGx5IGluaGVyaXRcbiAqIGBzZXJ2aWNlSWRgL2BzZXJ2aWNlU2VjcmV0YCBmcm9tIGVudi4gTm9uLWF1dGggZmllbGRzIGZhbGwgdGhyb3VnaFxuICogbm9ybWFsbHkgKGNhbGxlciBgYmFzZVVybGAgb3ZlcnJpZGVzIGVudiBiYXNlVXJsOyBhYnNlbnQgaW5wdXQga2VlcHNcbiAqIGVudiBiYXNlVXJsKS5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VXaXRoRW52KGlucHV0OiBDbGllbnRDb25maWcpOiBDbGllbnRDb25maWcge1xuICBjb25zdCBlbnYgPSByZWFkRW52RGVmYXVsdHMoKTtcbiAgY29uc3QgaW5wdXRIYXNBdXRoID0gaW5wdXRIYXNBdXRoTW9kZShpbnB1dCk7XG4gIGNvbnN0IGVudkZvck1lcmdlID0gaW5wdXRIYXNBdXRoID8gd2l0aG91dEF1dGhGaWVsZHMoZW52KSA6IGVudjtcblxuICBjb25zdCBtZXJnZWQ6IENsaWVudENvbmZpZyA9IHtcbiAgICBiYXNlVXJsOiBpbnB1dC5iYXNlVXJsID8/IGVudkZvck1lcmdlLmJhc2VVcmwsXG4gICAgYXV0aEJhc2VVcmw6IGlucHV0LmF1dGhCYXNlVXJsID8/IGVudkZvck1lcmdlLmF1dGhCYXNlVXJsLFxuICAgIGN1c3RvbWVyQXV0aEJhc2VVcmw6IGlucHV0LmN1c3RvbWVyQXV0aEJhc2VVcmwgPz8gZW52Rm9yTWVyZ2UuY3VzdG9tZXJBdXRoQmFzZVVybCxcbiAgICBzZXJ2aWNlSWQ6IGlucHV0LnNlcnZpY2VJZCA/PyBlbnZGb3JNZXJnZS5zZXJ2aWNlSWQsXG4gICAgc2VydmljZVNlY3JldDogaW5wdXQuc2VydmljZVNlY3JldCA/PyBlbnZGb3JNZXJnZS5zZXJ2aWNlU2VjcmV0LFxuICAgIHNjb3BlOiBpbnB1dC5zY29wZSA/PyBlbnZGb3JNZXJnZS5zY29wZSxcbiAgICBhdXRoVG9rZW46IGlucHV0LmF1dGhUb2tlbiA/PyBlbnZGb3JNZXJnZS5hdXRoVG9rZW4sXG4gICAgc2Vzc2lvbjogaW5wdXQuc2Vzc2lvbiA/PyBlbnZGb3JNZXJnZS5zZXNzaW9uLFxuICAgIHRva2VuczogaW5wdXQudG9rZW5zLFxuICAgIGFjdG9yVmlhOiBpbnB1dC5hY3RvclZpYSA/PyBlbnZGb3JNZXJnZS5hY3RvclZpYSxcbiAgICBleHBpcnlCdWZmZXJNczogaW5wdXQuZXhwaXJ5QnVmZmVyTXMgPz8gZW52Rm9yTWVyZ2UuZXhwaXJ5QnVmZmVyTXMsXG4gICAgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbixcbiAgfTtcbiAgYXNzZXJ0RXhhY3RseU9uZUF1dGhNb2RlKG1lcmdlZCk7XG4gIHJldHVybiBtZXJnZWQ7XG59XG5cbmZ1bmN0aW9uIHJlYWRFbnZEZWZhdWx0cygpOiBDbGllbnRDb25maWcge1xuICBpZiAodHlwZW9mIHByb2Nlc3MgPT09ICd1bmRlZmluZWQnKSByZXR1cm4ge307XG4gIGNvbnN0IGUgPSAocHJvY2VzcyBhcyB7IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4gfSkuZW52ID8/IHt9O1xuICBjb25zdCBleHBpcnkgPSBlLlVFTkdBR0VfRVhQSVJZX0JVRkZFUl9NUyA/IE51bWJlcihlLlVFTkdBR0VfRVhQSVJZX0JVRkZFUl9NUykgOiB1bmRlZmluZWQ7XG4gIC8vIFVFTkdBR0VfU0VTU0lPTl9JRCArIFVFTkdBR0VfU0VTU0lPTl9UT0tFTiBtdXN0IGJlIHBhaXJlZDsgZWl0aGVyIGFsb25lIGlzIGlnbm9yZWRcbiAgLy8gc28gYW4gZW52LW9ubHkgc2V0dXAgbmV2ZXIgcHJvZHVjZXMgYSBoYWxmLWNvbmZpZ3VyZWQgc2Vzc2lvbi5cbiAgY29uc3Qgc2Vzc2lvbiA9XG4gICAgZS5VRU5HQUdFX1NFU1NJT05fSUQgJiYgZS5VRU5HQUdFX1NFU1NJT05fVE9LRU5cbiAgICAgID8geyBpZDogZS5VRU5HQUdFX1NFU1NJT05fSUQsIHRva2VuOiBlLlVFTkdBR0VfU0VTU0lPTl9UT0tFTiB9XG4gICAgICA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIHtcbiAgICBiYXNlVXJsOiBlLlVFTkdBR0VfQkFTRV9VUkwsXG4gICAgYXV0aEJhc2VVcmw6IGUuVUVOR0FHRV9BVVRIX0JBU0VfVVJMLFxuICAgIGN1c3RvbWVyQXV0aEJhc2VVcmw6IGUuVUVOR0FHRV9DVVNUT01FUl9BVVRIX0JBU0VfVVJMLFxuICAgIHNlcnZpY2VJZDogZS5VRU5HQUdFX1NFUlZJQ0VfSUQsXG4gICAgc2VydmljZVNlY3JldDogZS5VRU5HQUdFX1NFUlZJQ0VfU0VDUkVULFxuICAgIHNjb3BlOiBlLlVFTkdBR0VfU0NPUEUsXG4gICAgYXV0aFRva2VuOiBlLlVFTkdBR0VfQVVUSF9UT0tFTixcbiAgICBzZXNzaW9uLFxuICAgIGFjdG9yVmlhOiBlLlVFTkdBR0VfQUNUT1JfVklBLFxuICAgIGV4cGlyeUJ1ZmZlck1zOiBOdW1iZXIuaXNGaW5pdGUoZXhwaXJ5KSA/IChleHBpcnkgYXMgbnVtYmVyKSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5wdXRIYXNBdXRoTW9kZShpbnB1dDogQ2xpZW50Q29uZmlnKTogYm9vbGVhbiB7XG4gIHJldHVybiBBVVRIX01PREVfRklFTERTLnNvbWUoKGYpID0+IGlucHV0W2ZdICE9PSB1bmRlZmluZWQpO1xufVxuXG5mdW5jdGlvbiB3aXRob3V0QXV0aEZpZWxkcyhjOiBDbGllbnRDb25maWcpOiBDbGllbnRDb25maWcge1xuICByZXR1cm4ge1xuICAgIC4uLmMsXG4gICAgc2VydmljZUlkOiB1bmRlZmluZWQsXG4gICAgc2VydmljZVNlY3JldDogdW5kZWZpbmVkLFxuICAgIHNjb3BlOiB1bmRlZmluZWQsXG4gICAgYXV0aFRva2VuOiB1bmRlZmluZWQsXG4gICAgc2Vzc2lvbjogdW5kZWZpbmVkLFxuICAgIHRva2VuczogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5mdW5jdGlvbiBhc3NlcnRFeGFjdGx5T25lQXV0aE1vZGUoaW5wdXQ6IENsaWVudENvbmZpZyk6IHZvaWQge1xuICBjb25zdCBtb2Rlczogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGlucHV0LmF1dGhUb2tlbiAhPT0gdW5kZWZpbmVkKSBtb2Rlcy5wdXNoKCdhdXRoVG9rZW4nKTtcbiAgaWYgKGlucHV0LnNlc3Npb24gIT09IHVuZGVmaW5lZCkgbW9kZXMucHVzaCgnc2Vzc2lvbicpO1xuICBpZiAoaW5wdXQudG9rZW5zICE9PSB1bmRlZmluZWQpIG1vZGVzLnB1c2goJ3Rva2VucycpO1xuICBpZiAoaW5wdXQuc2VydmljZUlkICE9PSB1bmRlZmluZWQgfHwgaW5wdXQuc2VydmljZVNlY3JldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbW9kZXMucHVzaCgnc2VydmljZUlkK3NlcnZpY2VTZWNyZXQnKTtcbiAgfVxuICBpZiAobW9kZXMubGVuZ3RoID4gMSkge1xuICAgIHRocm93IG5ldyBDb25maWdFcnJvcihcbiAgICAgIGBjcmVhdGVDbGllbnQ6IHBpY2sgZXhhY3RseSBvbmUgYXV0aCBtb2RlLiBHb3QgJHttb2Rlcy5qb2luKCcsICcpfS4gYCArXG4gICAgICAgICdVc2Ugb25lIG9mIHtzZXJ2aWNlSWQsIHNlcnZpY2VTZWNyZXR9IHwge2F1dGhUb2tlbn0gfCB7c2Vzc2lvbn0gfCB7dG9rZW5zfS4nLFxuICAgICk7XG4gIH1cbiAgLy8gWmVybyBtb2RlcyBpcyBhbGxvd2VkIOKAlCBjYWxsZXIgbWF5IHdhbnQgYSBmdWxseS1hbm9ueW1vdXMgY2xpZW50IGZvclxuICAvLyBwdWJsaWMgZW5kcG9pbnRzLiBUaGUgZmlyc3QgcmVxdWVzdCB0aGF0IG5lZWRzIGF1dGggd2lsbCBzdXJmYWNlIGFcbiAgLy8gQ29uZmlnRXJyb3IgZG93bnN0cmVhbS5cbn1cblxuLyoqXG4gKiBQcm9iZSB0aGUgYnVzaW5lc3MgYGxlZ2FjeV9zZXNzaW9uYCBncmFudCBmaXJzdCwgZmFsbCBiYWNrIHRvIGN1c3RvbWVyXG4gKiBvbiBgaW52YWxpZF9ncmFudGAuIEVpdGhlciBzdXJmYWNlIG1pbnRzIGEgSldUIOKAlCB0aGUgU0RLIGRvZXNuJ3QgY2FyZVxuICogd2hpY2ggc2lkZSBhbnN3ZXJlZC5cbiAqXG4gKiBXaHkgcHJvYmUgYm90aDogYGlkYCAobnVtZXJpYykgb3ZlcmxhcHMgdXNlcnMudXNlcklkIHZzXG4gKiBhZGRvX2NvbnRhY3RzX21hcHBpbmcuaWQvY29udGFjdElkLiBDYWxsZXJzIHVzdWFsbHkgZG9uJ3Qga25vdyB3aGljaFxuICogdGFibGUgdGhlaXIgKGlkLCB0b2tlbikgcGFpciBiZWxvbmdzIHRvLlxuICovXG5hc3luYyBmdW5jdGlvbiBleGNoYW5nZUxlZ2FjeVNlc3Npb24oXG4gIHNlc3Npb246IHsgaWQ6IHN0cmluZyB8IG51bWJlcjsgdG9rZW46IHN0cmluZyB9LFxuICBhdXRoQmFzZVVybDogc3RyaW5nLFxuICBjdXN0b21lckF1dGhCYXNlVXJsOiBzdHJpbmcsXG4gIGZldGNoRm46IHR5cGVvZiBmZXRjaCxcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGJvZHkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICBncmFudF90eXBlOiAnbGVnYWN5X3Nlc3Npb24nLFxuICAgIGlkOiBTdHJpbmcoc2Vzc2lvbi5pZCksXG4gICAgdG9rZW46IHNlc3Npb24udG9rZW4sXG4gIH0pLnRvU3RyaW5nKCk7XG5cbiAgY29uc3QgYnVzaW5lc3NSZXMgPSBhd2FpdCBmZXRjaEZuKGAke2F1dGhCYXNlVXJsfS9vYXV0aC90b2tlbmAsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9LFxuICAgIGJvZHksXG4gIH0pO1xuICBpZiAoYnVzaW5lc3NSZXMub2spIHtcbiAgICByZXR1cm4gcGFyc2VBY2Nlc3NUb2tlbihidXNpbmVzc1Jlcyk7XG4gIH1cbiAgaWYgKGF3YWl0IGlzSW52YWxpZEdyYW50KGJ1c2luZXNzUmVzKSkge1xuICAgIGNvbnN0IGN1c3RvbWVyUmVzID0gYXdhaXQgZmV0Y2hGbihgJHtjdXN0b21lckF1dGhCYXNlVXJsfS9vYXV0aC90b2tlbmAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogeyAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgfSxcbiAgICAgIGJvZHksXG4gICAgfSk7XG4gICAgaWYgKGN1c3RvbWVyUmVzLm9rKSB7XG4gICAgICByZXR1cm4gcGFyc2VBY2Nlc3NUb2tlbihjdXN0b21lclJlcyk7XG4gICAgfVxuICAgIGNvbnN0IHRleHQgPSBhd2FpdCBjdXN0b21lclJlcy50ZXh0KCkuY2F0Y2goKCkgPT4gJycpO1xuICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKFxuICAgICAgYGxlZ2FjeV9zZXNzaW9uIGV4Y2hhbmdlIGZhaWxlZCBvbiBib3RoIHN1cmZhY2VzOiBjdXN0b21lciBIVFRQICR7Y3VzdG9tZXJSZXMuc3RhdHVzfSAke3RleHR9YCxcbiAgICApO1xuICB9XG4gIGNvbnN0IHRleHQgPSBhd2FpdCBidXNpbmVzc1Jlcy50ZXh0KCkuY2F0Y2goKCkgPT4gJycpO1xuICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcihcbiAgICBgbGVnYWN5X3Nlc3Npb24gZXhjaGFuZ2UgZmFpbGVkOiBIVFRQICR7YnVzaW5lc3NSZXMuc3RhdHVzfSAke3RleHR9YCxcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNJbnZhbGlkR3JhbnQocmVzOiBSZXNwb25zZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBpZiAocmVzLnN0YXR1cyAhPT0gNDAwKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGNsb25lZCA9IHJlcy5jbG9uZSgpO1xuICBjb25zdCBqc29uID0gKGF3YWl0IGNsb25lZC5qc29uKCkuY2F0Y2goKCkgPT4gKHt9KSkpIGFzIHsgZXJyb3I/OiBzdHJpbmcgfTtcbiAgcmV0dXJuIGpzb24uZXJyb3IgPT09ICdpbnZhbGlkX2dyYW50Jztcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyc2VBY2Nlc3NUb2tlbihyZXM6IFJlc3BvbnNlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QganNvbiA9IChhd2FpdCByZXMuanNvbigpKSBhcyB7IGFjY2Vzc190b2tlbj86IHN0cmluZyB9O1xuICBpZiAoIWpzb24uYWNjZXNzX3Rva2VuKSB7XG4gICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKCdsZWdhY3lfc2Vzc2lvbiBleGNoYW5nZSByZXNwb25zZSBtaXNzaW5nIGFjY2Vzc190b2tlbicpO1xuICB9XG4gIHJldHVybiBqc29uLmFjY2Vzc190b2tlbjtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVRva2VuU291cmNlKGlucHV0OiBDbGllbnRDb25maWcsIGJhc2VVcmw6IHN0cmluZyk6IFRva2VuU291cmNlU3RhdGUgfCB1bmRlZmluZWQge1xuICBjb25zdCBhdXRoQmFzZVVybCA9IGlucHV0LmF1dGhCYXNlVXJsID8/IGAke2Jhc2VVcmx9L2F1dGgvYnVzaW5lc3NgO1xuICBjb25zdCBmZXRjaEZuID0gaW5wdXQuZmV0Y2hGbiA/PyAoZ2xvYmFsVGhpcy5mZXRjaCBhcyB0eXBlb2YgZmV0Y2gpO1xuXG4gIGlmIChpbnB1dC5hdXRoVG9rZW4gIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlb2YgaW5wdXQuYXV0aFRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG1ha2VUb2tlblNvdXJjZVN0YXRlKFxuICAgICAgICB7IGtpbmQ6ICdzdGF0aWMtc3RyaW5nJywgdG9rZW46IGlucHV0LmF1dGhUb2tlbiB9LFxuICAgICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ha2VUb2tlblNvdXJjZVN0YXRlKFxuICAgICAgeyBraW5kOiAnY2FsbGJhY2snLCBnZXRUb2tlbjogaW5wdXQuYXV0aFRva2VuIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgaWYgKGlucHV0LnNlc3Npb24gIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGN1c3RvbWVyQXV0aEJhc2VVcmwgPSBpbnB1dC5jdXN0b21lckF1dGhCYXNlVXJsID8/IGAke2Jhc2VVcmx9L2F1dGgvY3VzdG9tZXJgO1xuICAgIGNvbnN0IHNlc3Npb24gPSBpbnB1dC5zZXNzaW9uO1xuICAgIHJldHVybiBtYWtlVG9rZW5Tb3VyY2VTdGF0ZShcbiAgICAgIHtcbiAgICAgICAga2luZDogJ2NhbGxiYWNrJyxcbiAgICAgICAgZ2V0VG9rZW46ICgpID0+IGV4Y2hhbmdlTGVnYWN5U2Vzc2lvbihzZXNzaW9uLCBhdXRoQmFzZVVybCwgY3VzdG9tZXJBdXRoQmFzZVVybCwgZmV0Y2hGbiksXG4gICAgICB9LFxuICAgICAgeyBleHBpcnlCdWZmZXJNczogaW5wdXQuZXhwaXJ5QnVmZmVyTXMsIGZldGNoRm46IGlucHV0LmZldGNoRm4gfSxcbiAgICApO1xuICB9XG4gIGlmIChpbnB1dC5zZXJ2aWNlSWQgJiYgaW5wdXQuc2VydmljZVNlY3JldCkge1xuICAgIHJldHVybiBtYWtlVG9rZW5Tb3VyY2VTdGF0ZShcbiAgICAgIHtcbiAgICAgICAga2luZDogJ3NlcnZpY2UtY3JlZGVudGlhbHMnLFxuICAgICAgICBjbGllbnRJZDogaW5wdXQuc2VydmljZUlkLFxuICAgICAgICBjbGllbnRTZWNyZXQ6IGlucHV0LnNlcnZpY2VTZWNyZXQsXG4gICAgICAgIGF1dGhCYXNlVXJsLFxuICAgICAgICBzY29wZTogaW5wdXQuc2NvcGUsXG4gICAgICB9LFxuICAgICAgeyBleHBpcnlCdWZmZXJNczogaW5wdXQuZXhwaXJ5QnVmZmVyTXMsIGZldGNoRm46IGlucHV0LmZldGNoRm4gfSxcbiAgICApO1xuICB9XG4gIGlmIChpbnB1dC50b2tlbnMpIHtcbiAgICByZXR1cm4gbWFrZVRva2VuU291cmNlU3RhdGUoXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICdhY2Nlc3MtcmVmcmVzaC1wYWlyJyxcbiAgICAgICAgYWNjZXNzVG9rZW46IGlucHV0LnRva2Vucy5hY2Nlc3NUb2tlbixcbiAgICAgICAgcmVmcmVzaFRva2VuOiBpbnB1dC50b2tlbnMucmVmcmVzaFRva2VuLFxuICAgICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyBpbnB1dC50b2tlbnMuZXhwaXJlc0luICogMTAwMCxcbiAgICAgICAgY2xpZW50SWQ6IGlucHV0LnRva2Vucy5jbGllbnRJZCxcbiAgICAgICAgb25Sb3RhdGU6IGlucHV0LnRva2Vucy5vblJvdGF0ZSxcbiAgICAgIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gd2FybklmQnJvd3NlclNlY3JldChjb25maWc6IENsaWVudENvbmZpZyk6IHZvaWQge1xuICBjb25zdCBnID0gZ2xvYmFsVGhpcyBhcyB7IHdpbmRvdz86IHsgZG9jdW1lbnQ/OiB1bmtub3duIH0gfTtcbiAgY29uc3QgaW5Ccm93c2VyID0gdHlwZW9mIGcud2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZy53aW5kb3cuZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuICBpZiAoIWluQnJvd3NlcikgcmV0dXJuO1xuICBpZiAoY29uZmlnLnNlcnZpY2VTZWNyZXQpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICAnW3VlbmdhZ2UtcGxhdGZvcm0tc2RrXSBzZXJ2aWNlU2VjcmV0IHNob3VsZCBub3QgYmUgdXNlZCBpbiBicm93c2VyIGVudmlyb25tZW50cy4gJyArXG4gICAgICAgICdTZXJ2aWNlIGNyZWRlbnRpYWxzIGluIGJyb3dzZXIgYnVuZGxlcyBhcmUgcHVibGljbHkgdmlzaWJsZS4gJyArXG4gICAgICAgICdVc2UgYGF1dGhUb2tlbmAgKGEgQmVhcmVyIG9idGFpbmVkIHZpYSBPQXV0aCkgb3IgYHNlc3Npb25Ub2tlbmAgaW5zdGVhZC4nLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTRJQSxvQ0FJQztBQWhKRCwyQ0FBcUU7QUFDckUsOENBQThFO0FBQzlFLDJDQUFxRTtBQUNyRSw0Q0FBd0U7QUFDeEUsNENBQXdFO0FBQ3hFLGlDQUErQztBQUMvQyxpREFJd0I7QUFDeEIscUNBQTREO0FBeUg1RCxNQUFNLGdCQUFnQixHQUFHLGlDQUFpQyxDQUFDO0FBRTNEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLFFBQXNCLEVBQUU7SUFDbkQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFtQjtJQUN0QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDO0lBQ2xELE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVELE1BQU0sSUFBSSxHQUE2QixnQkFBZ0I7UUFDckQsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7UUFDbkQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUVkLE1BQU0sY0FBYyxHQUFHLElBQUEsNkJBQW9CLEVBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RixNQUFNLFdBQVcsR0FBRyxJQUFBLDBCQUFpQixFQUFDO1FBQ3BDLE9BQU87UUFDUCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsSUFBSTtRQUNKLFFBQVEsRUFBRSxLQUFLLENB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QXVkaXRDbGllbnQgfSBmcm9tICcuL2F1ZGl0L2NsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVCdXNpbmVzc0NsaWVudCwgdHlwZSBCdXNpbmVzc0NsaWVudCB9IGZyb20gJy4vYnVzaW5lc3MvY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZVpvbmVzQ2xpZW50LCB0eXBlIFpvbmVzQ2xpZW50IH0gZnJvbSAnLi96b25lcy9jbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlV2FsbGV0Q2xpZW50LCB0eXBlIFdhbGxldENsaWVudCB9IGZyb20gJy4vd2FsbGV0L2NsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVVcHNlbGxDbGllbnQsIHR5cGUgVXBzZWxsQ2xpZW50IH0gZnJvbSAnLi91cHNlbGwvY2xpZW50JztcbmltcG9ydCB7IGF1dGggYXMgYXV0aE5hbWVzcGFjZSB9IGZyb20gJy4vYXV0aCc7XG5pbXBvcnQge1xuICBnZXRBY2Nlc3NUb2tlbiBhcyByZXNvbHZlQWNjZXNzVG9rZW4sXG4gIG1ha2VUb2tlblNvdXJjZVN0YXRlLFxuICB0eXBlIFRva2VuU291cmNlU3RhdGUsXG59IGZyb20gJy4vdG9rZW4tc291cmNlJztcbmltcG9ydCB7IENvbmZpZ0Vycm9yLCBBdXRoZW50aWNhdGlvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHR5cGUgeyBQbGF0Zm9ybUF1dGggfSBmcm9tICcuL2NvbmZpZyc7XG5cbi8qKlxuICogQ2FsbGVyLWZhY2luZyBjb25maWcgZm9yIGBjcmVhdGVDbGllbnQoLi4uKWAuXG4gKlxuICogYGNyZWF0ZUNsaWVudCgpYCAobm8gYXJncykgcmVhZHMgZXZlcnl0aGluZyBmcm9tIHRoZSBzdGFuZGFyZFxuICogYFVFTkdBR0VfKmAgZW52aXJvbm1lbnQgdmFyaWFibGVzIOKAlCBjb252ZW5pZW50IGZvciBMYW1iZGFzIHRoYXRcbiAqIGFscmVhZHkgaGF2ZSB0aGVpciBjb25maWcgaW5qZWN0ZWQgYnkgdGhlIGRlcGxveSBzdGFjay4gQW55IGZpZWxkXG4gKiBwYXNzZWQgZXhwbGljaXRseSBvdmVycmlkZXMgdGhlIG1hdGNoaW5nIGVudiBkZWZhdWx0IGZvciB0aGF0IG9uZVxuICogY2FsbCBvbmx5IChubyBzaGFyZWQgbXV0YWJsZSBzdGF0ZSwgbm8gc2luZ2xldG9uKS5cbiAqXG4gKiBBdXRoLW1vZGUgZmllbGRzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuIFBpY2sgb25lOlxuICogICAtIGBzZXJ2aWNlSWRgICsgYHNlcnZpY2VTZWNyZXRgICBPQXV0aDIgY2xpZW50X2NyZWRlbnRpYWxzLlxuICogICAtIGBhdXRoVG9rZW5gICAgICAgICAgICAgICAgICAgICBzdGF0aWMgQmVhcmVyIHRva2VuLCBvciBhc3luY1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayB0aGF0IHJldHVybnMgb25lLlxuICogICAtIGBzZXNzaW9uOiB7aWQsIHRva2VufWAgICAgICAgICBsZWdhY3kgdUVuZ2FnZSAoaWQsIGFwaVRva2VuKSAvXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZCwgYWRkb19jb250YWN0c19tYXBwaW5nLnRva2VuKVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWlyLiBUaGUgU0RLIHByb2JlcyB0aGUgYnVzaW5lc3NcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VyZmFjZSAodXNlcnMpIGZpcnN0LCBmYWxscyBiYWNrXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBjdXN0b21lciBzdXJmYWNlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhZGRvX2NvbnRhY3RzX21hcHBpbmcpIGlmIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXNpbmVzcyBwcm9iZSByZXR1cm5zXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBpbnZhbGlkX2dyYW50YCwgYW5kIGNhY2hlcyB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0aW5nIEpXVC5cbiAqXG4gKiBQYXNzaW5nIG1vcmUgdGhhbiBvbmUgZXhwbGljaXRseSBpcyBhIGBDb25maWdFcnJvcmAuIFBhc3NpbmcgYW55IG9uZVxuICogb2YgdGhlbSBzdXBwcmVzc2VzIGV2ZXJ5IGVudi1kZXJpdmVkIGF1dGggZGVmYXVsdCwgc28gYSBjYWxsZXInc1xuICogZXhwbGljaXQgb3ZlcnJpZGUgaXMgbmV2ZXIgc2lsZW50bHkgbWVyZ2VkIHdpdGggZW52IGNyZWRlbnRpYWxzIG9mXG4gKiBhIGRpZmZlcmVudCBtb2RlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudENvbmZpZyB7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBdXRoIHN1cmZhY2UgYmFzZSB1c2VkIHRvIGJvb3RzdHJhcCB0aGUgZmlyc3QgY2xpZW50X2NyZWRlbnRpYWxzXG4gICAqIG1pbnQuIERlZmF1bHRzIHRvIGAke2Jhc2VVcmx9L2F1dGgvYnVzaW5lc3NgLlxuICAgKi9cbiAgYXV0aEJhc2VVcmw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b21lciBhdXRoIHN1cmZhY2UgYmFzZSB1c2VkIGJ5IGBzZXNzaW9uYCBleGNoYW5nZXMuIERlZmF1bHRzIHRvXG4gICAqIGAke2Jhc2VVcmx9L2F1dGgvY3VzdG9tZXJgLlxuICAgKi9cbiAgY3VzdG9tZXJBdXRoQmFzZVVybD86IHN0cmluZztcblxuICAvLyDilIDilIDilIAgQXV0aCBtb2RlcyAobXV0dWFsbHkgZXhjbHVzaXZlKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLyoqIE9BdXRoMiBgY2xpZW50X2NyZWRlbnRpYWxzYCBjbGllbnRJZC4gUGFpciB3aXRoIGBzZXJ2aWNlU2VjcmV0YC4gKi9cbiAgc2VydmljZUlkPzogc3RyaW5nO1xuICAvKiogT0F1dGgyIGBjbGllbnRfY3JlZGVudGlhbHNgIGNsaWVudFNlY3JldC4gUGFpciB3aXRoIGBzZXJ2aWNlSWRgLiAqL1xuICBzZXJ2aWNlU2VjcmV0Pzogc3RyaW5nO1xuICAvKiogU3BhY2Utc2VwYXJhdGVkIHNjb3BlIGxpc3QgdG8gcmVxdWVzdCB3aGVuIG1pbnRpbmcgdmlhIGNsaWVudF9jcmVkZW50aWFscy4gKi9cbiAgc2NvcGU/OiBzdHJpbmc7XG4gIC8qKiBTdGF0aWMgQmVhcmVyIEpXVCwgb3IgYXN5bmMgY2FsbGJhY2sgdGhhdCByZXR1cm5zIG9uZS4gKi9cbiAgYXV0aFRva2VuPzogc3RyaW5nIHwgKCgpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPik7XG4gIC8qKlxuICAgKiBMZWdhY3kgdUVuZ2FnZSAoaWQsIHRva2VuKSBwYWlyLiBgaWRgIGlzIGB1c2Vycy51c2VySWRgIGZvciBzdGFmZlxuICAgKiB1c2VycyAobWF0Y2hlZCB2aWEgdGhlIGJ1c2luZXNzIHN1cmZhY2UpIG9yXG4gICAqIGBhZGRvX2NvbnRhY3RzX21hcHBpbmcuaWRgL2Bjb250YWN0SWRgIGZvciBjdXN0b21lcnMgKG1hdGNoZWQgdmlhXG4gICAqIHRoZSBjdXN0b21lciBzdXJmYWNlKS4gVGhlIFNESyBwcm9iZXMgdGhlIGJ1c2luZXNzIHN1cmZhY2UgZmlyc3RcbiAgICogYW5kIGZhbGxzIGJhY2sgdG8gY3VzdG9tZXIgb24gYGludmFsaWRfZ3JhbnRgLlxuICAgKi9cbiAgc2Vzc2lvbj86IHsgaWQ6IHN0cmluZyB8IG51bWJlcjsgdG9rZW46IHN0cmluZyB9O1xuICAvKipcbiAgICogYChhY2Nlc3NUb2tlbiwgcmVmcmVzaFRva2VuKWAgcGFpciBmcm9tIGEgZmluaXNoZWQgbG9naW4gZmxvd1xuICAgKiAoYGF1dGgubG9naW5XaXRoUGFzc3dvcmQoLi4uKWAsIGBhdXRoLnZlcmlmeU90cCguLi4pYCwgZXRjKS4gVGhlXG4gICAqIFNESyB1c2VzIHRoZSBhY2Nlc3MgdG9rZW4gdW50aWwgaXQgZXhwaXJlcywgdGhlbiByb3RhdGVzIHZpYVxuICAgKiBgYXV0aC5yZWZyZXNoKC4uLilgIHRyYW5zcGFyZW50bHkuIGBvblJvdGF0ZWAgZmlyZXMgYWZ0ZXIgZXZlcnlcbiAgICogcm90YXRpb24gc28gY2FsbGVycyBjYW4gcGVyc2lzdCB0aGUgbmV3IHBhaXIuXG4gICAqL1xuICB0b2tlbnM/OiB7XG4gICAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgICAvKiogQWNjZXNzIHRva2VuIFRUTCAoc2Vjb25kcyksIGFzIHJldHVybmVkIGJ5IHRoZSBhdXRoIHN1cmZhY2UuICovXG4gICAgZXhwaXJlc0luOiBudW1iZXI7XG4gICAgLyoqIE9BdXRoIGNsaWVudCBpZCB1c2VkIGR1cmluZyB0aGUgb3JpZ2luYWwgbG9naW4gKHJlcXVpcmVkIGJ5IHRoZSByZWZyZXNoIGhhbmRsZXIpLiAqL1xuICAgIGNsaWVudElkOiBzdHJpbmc7XG4gICAgb25Sb3RhdGU/OiAocGFpcjoge1xuICAgICAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICAgICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgfSkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG4gIH07XG5cbiAgLyoqXG4gICAqIFNlcnZpY2UgaWRlbnRpZmllciB0aGUgYXVkaXQgY2xpZW50IHNob3VsZCBzdGFtcCBpbnRvIGBhY3Rvci52aWFgXG4gICAqIG9uIGVtaXR0ZWQgZXZlbnRzLiBEZWZhdWx0cyB0byBgc2VydmljZUlkYCB3aGVuIHNldDsgb3RoZXJ3aXNlXG4gICAqIGF1ZGl0IGByZWNvcmQoKWAgY2FsbHMgbG9nIGFuIGVycm9yIGFuZCBkcm9wIHRoZSBldmVudC5cbiAgICovXG4gIGFjdG9yVmlhPzogc3RyaW5nO1xuICBleHBpcnlCdWZmZXJNcz86IG51bWJlcjtcbiAgZmV0Y2hGbj86IHR5cGVvZiBmZXRjaDtcbn1cblxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlcyB0aGF0IHJlYWNoIHRoZSBwbGF0Zm9ybSBIVFRQIEFQSS5cbiAqXG4gKiBgZXZlbnRzYCBpcyBkZWxpYmVyYXRlbHkgTk9UIGhlcmUuIEl0IHB1Ymxpc2hlcyBzdHJhaWdodCB0byBTTlMsIHNvXG4gKiB3aXJpbmcgaXQgb250byB0aGlzIGNsaWVudCB3b3VsZCBtYWtlIGBAYXdzLXNkay9jbGllbnQtc25zYCBhIGhhcmRcbiAqIGRlcGVuZGVuY3kgb2YgdGhlIFNESydzIG1haW4gZW50cnkg4oCUIHBhaWQgYnkgZXZlcnkgY29uc3VtZXIgdGhhdCBvbmx5XG4gKiByZWFkcyBidXNpbmVzc2VzIG9yIHpvbmVzLCBhbmQgYnkgZXZlcnkgZnJvbnRlbmQgYnVuZGxlIHRoYXQgdG91Y2hlc1xuICogdGhlIHJvb3QgaW1wb3J0LiBJdCBsaXZlcyBhdCB0aGUgYEB1ZW5nYWdlLmlvL3BsYXRmb3JtLXNkay9ldmVudHNgXG4gKiBzdWJwYXRoIGluc3RlYWQsIGFsb25nc2lkZSBgL3JlYWx0aW1lYCwgYW5kIGlzIGNvbmZpZ3VyZWQgZnJvbSB0aGVcbiAqIGVudmlyb25tZW50IChgUExBVEZPUk1fRVZFTlRTX1RPUElDX0FSTmApIG9yIGBjcmVhdGVFdmVudHNDbGllbnQoLi4uKWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1DbGllbnQge1xuICBidXNpbmVzczogQnVzaW5lc3NDbGllbnQ7XG4gIGF1ZGl0OiBBdWRpdENsaWVudDtcbiAgem9uZXM6IFpvbmVzQ2xpZW50O1xuICB3YWxsZXQ6IFdhbGxldENsaWVudDtcbiAgdXBzZWxsOiBVcHNlbGxDbGllbnQ7XG4gIGF1dGg6IHR5cGVvZiBhdXRoTmFtZXNwYWNlO1xuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgY3VycmVudCBhY2Nlc3MgdG9rZW4sIG1pbnRpbmcgdmlhIHRoZSBjb25maWd1cmVkIGF1dGhcbiAgICogbW9kZSBpZiB0aGUgY2FjaGUgaXMgY29sZC4gVXNlZnVsIGZvciBgYXV0aC52ZXJpZnlBY2Nlc3NUb2tlbiguLi4pYFxuICAgKiByb3VuZC10cmlwcyBhbmQgZm9yIGNhbGxlcnMgdGhhdCB3YW50IHRvIGxvZyAvIGZvcndhcmQgdGhlIGJlYXJlclxuICAgKiB0byBhIGRvd25zdHJlYW0gc2VydmljZS5cbiAgICpcbiAgICogVGhyb3dzIGBDb25maWdFcnJvcmAgd2hlbiB0aGUgY2xpZW50IHdhcyBidWlsdCB3aXRoIG5vIGF1dGggbW9kZS5cbiAgICovXG4gIGdldEFjY2Vzc1Rva2VuKCk6IFByb21pc2U8c3RyaW5nPjtcbn1cblxuY29uc3QgREVGQVVMVF9CQVNFX1VSTCA9ICdodHRwczovL2FwaS5wbGF0Zm9ybS51ZW5nYWdlLmlvJztcblxuLyoqXG4gKiBCdWlsZCBhIGZyZXNoLCBpc29sYXRlZCBjbGllbnQuIFdpdGggbm8gYXJncywgcmVhZHMgYFVFTkdBR0VfKmBcbiAqIGVudiB2YXJzOyBleHBsaWNpdCBmaWVsZHMgb3ZlcnJpZGUgcGVyIGNhbGwuIEVhY2ggY2FsbCBnZXRzIGl0cyBvd25cbiAqIFRva2VuU291cmNlIHN0YXRlIOKAlCBjb25jdXJyZW50IGBjcmVhdGVDbGllbnQoLi4uKWAgdXNlIGRvZXMgbm90XG4gKiBzdGFtcGVkZSB0aGUgY2FjaGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbGllbnQoaW5wdXQ6IENsaWVudENvbmZpZyA9IHt9KTogUGxhdGZvcm1DbGllbnQge1xuICBjb25zdCBtZXJnZWQgPSBtZXJnZVdpdGhFbnYoaW5wdXQpO1xuICB3YXJuSWZCcm93c2VyU2VjcmV0KG1lcmdlZCk7XG4gIHJldHVybiBidWlsZENsaWVudChtZXJnZWQpO1xufVxuXG5mdW5jdGlvbiBidWlsZENsaWVudChpbnB1dDogQ2xpZW50Q29uZmlnKTogUGxhdGZvcm1DbGllbnQge1xuICBjb25zdCBiYXNlVXJsID0gaW5wdXQuYmFzZVVybCA/PyBERUZBVUxUX0JBU0VfVVJMO1xuICBjb25zdCB0b2tlblNvdXJjZVN0YXRlID0gcmVzb2x2ZVRva2VuU291cmNlKGlucHV0LCBiYXNlVXJsKTtcbiAgY29uc3QgYXV0aDogUGxhdGZvcm1BdXRoIHwgdW5kZWZpbmVkID0gdG9rZW5Tb3VyY2VTdGF0ZVxuICAgID8geyB0eXBlOiAndG9rZW4tc291cmNlJywgc3RhdGU6IHRva2VuU291cmNlU3RhdGUgfVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGJ1c2luZXNzQ2xpZW50ID0gY3JlYXRlQnVzaW5lc3NDbGllbnQoeyBiYXNlVXJsLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLCBhdXRoIH0pO1xuICBjb25zdCBhdWRpdENsaWVudCA9IGNyZWF0ZUF1ZGl0Q2xpZW50KHtcbiAgICBiYXNlVXJsLFxuICAgIGZldGNoRm46IGlucHV0LmZldGNoRm4sXG4gICAgYXV0aCxcbiAgICBhY3RvclZpYTogaW5wdXQuYWN0b3JWaWEgPz8gaW5wdXQuc2VydmljZUlkLFxuICB9KTtcbiAgY29uc3Qgem9uZXNDbGllbnQgPSBjcmVhdGVab25lc0NsaWVudCh7IGJhc2VVcmwsIGZldGNoRm46IGlucHV0LmZldGNoRm4sIGF1dGggfSk7XG4gIGNvbnN0IHdhbGxldENsaWVudCA9IGNyZWF0ZVdhbGxldENsaWVudCh7IGJhc2VVcmwsIGZldGNoRm46IGlucHV0LmZldGNoRm4sIGF1dGggfSk7XG4gIGNvbnN0IHVwc2VsbENsaWVudCA9IGNyZWF0ZVVwc2VsbENsaWVudCh7IGJhc2VVcmwsIGZldGNoRm46IGlucHV0LmZldGNoRm4sIGF1dGggfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBidXNpbmVzczogYnVzaW5lc3NDbGllbnQsXG4gICAgYXVkaXQ6IGF1ZGl0Q2xpZW50LFxuICAgIHpvbmVzOiB6b25lc0NsaWVudCxcbiAgICB3YWxsZXQ6IHdhbGxldENsaWVudCxcbiAgICB1cHNlbGw6IHVwc2VsbENsaWVudCxcbiAgICBhdXRoOiBhdXRoTmFtZXNwYWNlLFxuICAgIGdldEFjY2Vzc1Rva2VuOiBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoIXRva2VuU291cmNlU3RhdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKFxuICAgICAgICAgICdnZXRBY2Nlc3NUb2tlbjogbm8gYXV0aCBtb2RlIGNvbmZpZ3VyZWQuIFBhc3Mge3NlcnZpY2VJZCwgc2VydmljZVNlY3JldH0gfCB7YXV0aFRva2VufSB8IHtzZXNzaW9ufS4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmVBY2Nlc3NUb2tlbih0b2tlblNvdXJjZVN0YXRlKTtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBBVVRIX01PREVfRklFTERTID0gW1xuICAnc2VydmljZUlkJyxcbiAgJ3NlcnZpY2VTZWNyZXQnLFxuICAnc2NvcGUnLFxuICAnYXV0aFRva2VuJyxcbiAgJ3Nlc3Npb24nLFxuICAndG9rZW5zJyxcbl0gYXMgY29uc3Q7XG5cbi8qKlxuICogTWVyZ2UgZW52LWRlcml2ZWQgZGVmYXVsdHMgd2l0aCB0aGUgY2FsbGVyJ3MgZXhwbGljaXQgaW5wdXQuIEFueVxuICogZXhwbGljaXQgYXV0aC1tb2RlIGZpZWxkIHN1cHByZXNzZXMgKmFsbCogZW52LWRlcml2ZWQgYXV0aCBkZWZhdWx0cyxcbiAqIHNvIGFuIGV4cGxpY2l0IGB7YXV0aFRva2VufWAgb3ZlcnJpZGUgZG9lc24ndCBhY2NpZGVudGFsbHkgaW5oZXJpdFxuICogYHNlcnZpY2VJZGAvYHNlcnZpY2VTZWNyZXRgIGZyb20gZW52LiBOb24tYXV0aCBmaWVsZHMgZmFsbCB0aHJvdWdoXG4gKiBub3JtYWxseSAoY2FsbGVyIGBiYXNlVXJsYCBvdmVycmlkZXMgZW52IGJhc2VVcmw7IGFic2VudCBpbnB1dCBrZWVwc1xuICogZW52IGJhc2VVcmwpLlxuICovXG5mdW5jdGlvbiBtZXJnZVdpdGhFbnYoaW5wdXQ6IENsaWVudENvbmZpZyk6IENsaWVudENvbmZpZyB7XG4gIGNvbnN0IGVudiA9IHJlYWRFbnZEZWZhdWx0cygpO1xuICBjb25zdCBpbnB1dEhhc0F1dGggPSBpbnB1dEhhc0F1dGhNb2RlKGlucHV0KTtcbiAgY29uc3QgZW52Rm9yTWVyZ2UgPSBpbnB1dEhhc0F1dGggPyB3aXRob3V0QXV0aEZpZWxkcyhlbnYpIDogZW52O1xuXG4gIGNvbnN0IG1lcmdlZDogQ2xpZW50Q29uZmlnID0ge1xuICAgIGJhc2VVcmw6IGlucHV0LmJhc2VVcmwgPz8gZW52Rm9yTWVyZ2UuYmFzZVVybCxcbiAgICBhdXRoQmFzZVVybDogaW5wdXQuYXV0aEJhc2VVcmwgPz8gZW52Rm9yTWVyZ2UuYXV0aEJhc2VVcmwsXG4gICAgY3VzdG9tZXJBdXRoQmFzZVVybDogaW5wdXQuY3VzdG9tZXJBdXRoQmFzZVVybCA/PyBlbnZGb3JNZXJnZS5jdXN0b21lckF1dGhCYXNlVXJsLFxuICAgIHNlcnZpY2VJZDogaW5wdXQuc2VydmljZUlkID8/IGVudkZvck1lcmdlLnNlcnZpY2VJZCxcbiAgICBzZXJ2aWNlU2VjcmV0OiBpbnB1dC5zZXJ2aWNlU2VjcmV0ID8/IGVudkZvck1lcmdlLnNlcnZpY2VTZWNyZXQsXG4gICAgc2NvcGU6IGlucHV0LnNjb3BlID8/IGVudkZvck1lcmdlLnNjb3BlLFxuICAgIGF1dGhUb2tlbjogaW5wdXQuYXV0aFRva2VuID8/IGVudkZvck1lcmdlLmF1dGhUb2tlbixcbiAgICBzZXNzaW9uOiBpbnB1dC5zZXNzaW9uID8/IGVudkZvck1lcmdlLnNlc3Npb24sXG4gICAgdG9rZW5zOiBpbnB1dC50b2tlbnMsXG4gICAgYWN0b3JWaWE6IGlucHV0LmFjdG9yVmlhID8/IGVudkZvck1lcmdlLmFjdG9yVmlhLFxuICAgIGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcyA/PyBlbnZGb3JNZXJnZS5leHBpcnlCdWZmZXJNcyxcbiAgICBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLFxuICB9O1xuICBhc3NlcnRFeGFjdGx5T25lQXV0aE1vZGUobWVyZ2VkKTtcbiAgcmV0dXJuIG1lcmdlZDtcbn1cblxuZnVuY3Rpb24gcmVhZEVudkRlZmF1bHRzKCk6IENsaWVudENvbmZpZyB7XG4gIGlmICh0eXBlb2YgcHJvY2VzcyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiB7fTtcbiAgY29uc3QgZSA9IChwcm9jZXNzIGFzIHsgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiB9KS5lbnYgPz8ge307XG4gIGNvbnN0IGV4cGlyeSA9IGUuVUVOR0FHRV9FWFBJUllfQlVGRkVSX01TID8gTnVtYmVyKGUuVUVOR0FHRV9FWFBJUllfQlVGRkVSX01TKSA6IHVuZGVmaW5lZDtcbiAgLy8gVUVOR0FHRV9TRVNTSU9OX0lEICsgVUVOR0FHRV9TRVNTSU9OX1RPS0VOIG11c3QgYmUgcGFpcmVkOyBlaXRoZXIgYWxvbmUgaXMgaWdub3JlZFxuICAvLyBzbyBhbiBlbnYtb25seSBzZXR1cCBuZXZlciBwcm9kdWNlcyBhIGhhbGYtY29uZmlndXJlZCBzZXNzaW9uLlxuICBjb25zdCBzZXNzaW9uID1cbiAgICBlLlVFTkdBR0VfU0VTU0lPTl9JRCAmJiBlLlVFTkdBR0VfU0VTU0lPTl9UT0tFTlxuICAgICAgPyB7IGlkOiBlLlVFTkdBR0VfU0VTU0lPTl9JRCwgdG9rZW46IGUuVUVOR0FHRV9TRVNTSU9OX1RPS0VOIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuICByZXR1cm4ge1xuICAgIGJhc2VVcmw6IGUuVUVOR0FHRV9CQVNFX1VSTCxcbiAgICBhdXRoQmFzZVVybDogZS5VRU5HQUdFX0FVVEhfQkFTRV9VUkwsXG4gICAgY3VzdG9tZXJBdXRoQmFzZVVybDogZS5VRU5HQUdFX0NVU1RPTUVSX0FVVEhfQkFTRV9VUkwsXG4gICAgc2VydmljZUlkOiBlLlVFTkdBR0VfU0VSVklDRV9JRCxcbiAgICBzZXJ2aWNlU2VjcmV0OiBlLlVFTkdBR0VfU0VSVklDRV9TRUNSRVQsXG4gICAgc2NvcGU6IGUuVUVOR0FHRV9TQ09QRSxcbiAgICBhdXRoVG9rZW46IGUuVUVOR0FHRV9BVVRIX1RPS0VOLFxuICAgIHNlc3Npb24sXG4gICAgYWN0b3JWaWE6IGUuVUVOR0FHRV9BQ1RPUl9WSUEsXG4gICAgZXhwaXJ5QnVmZmVyTXM6IE51bWJlci5pc0Zpbml0ZShleHBpcnkpID8gKGV4cGlyeSBhcyBudW1iZXIpIDogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5mdW5jdGlvbiBpbnB1dEhhc0F1dGhNb2RlKGlucHV0OiBDbGllbnRDb25maWcpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFVVEhfTU9ERV9GSUVMRFMuc29tZSgoZikgPT4gaW5wdXRbZl0gIT09IHVuZGVmaW5lZCk7XG59XG5cbmZ1bmN0aW9uIHdpdGhvdXRBdXRoRmllbGRzKGM6IENsaWVudENvbmZpZyk6IENsaWVudENvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgLi4uYyxcbiAgICBzZXJ2aWNlSWQ6IHVuZGVmaW5lZCxcbiAgICBzZXJ2aWNlU2VjcmV0OiB1bmRlZmluZWQsXG4gICAgc2NvcGU6IHVuZGVmaW5lZCxcbiAgICBhdXRoVG9rZW46IHVuZGVmaW5lZCxcbiAgICBzZXNzaW9uOiB1bmRlZmluZWQsXG4gICAgdG9rZW5zOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFzc2VydEV4YWN0bHlPbmVBdXRoTW9kZShpbnB1dDogQ2xpZW50Q29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IG1vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoaW5wdXQuYXV0aFRva2VuICE9PSB1bmRlZmluZWQpIG1vZGVzLnB1c2goJ2F1dGhUb2tlbicpO1xuICBpZiAoaW5wdXQuc2Vzc2lvbiAhPT0gdW5kZWZpbmVkKSBtb2Rlcy5wdXNoKCdzZXNzaW9uJyk7XG4gIGlmIChpbnB1dC50b2tlbnMgIT09IHVuZGVmaW5lZCkgbW9kZXMucHVzaCgndG9rZW5zJyk7XG4gIGlmIChpbnB1dC5zZXJ2aWNlSWQgIT09IHVuZGVmaW5lZCB8fCBpbnB1dC5zZXJ2aWNlU2VjcmV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBtb2Rlcy5wdXNoKCdzZXJ2aWNlSWQrc2VydmljZVNlY3JldCcpO1xuICB9XG4gIGlmIChtb2Rlcy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKFxuICAgICAgYGNyZWF0ZUNsaWVudDogcGljayBleGFjdGx5IG9uZSBhdXRoIG1vZGUuIEdvdCAke21vZGVzLmpvaW4oJywgJyl9LiBgICtcbiAgICAgICAgJ1VzZSBvbmUgb2Yge3NlcnZpY2VJZCwgc2VydmljZVNlY3JldH0gfCB7YXV0aFRva2VufSB8IHtzZXNzaW9ufSB8IHt0b2tlbnN9LicsXG4gICAgKTtcbiAgfVxuICAvLyBaZXJvIG1vZGVzIGlzIGFsbG93ZWQg4oCUIGNhbGxlciBtYXkgd2FudCBhIGZ1bGx5LWFub255bW91cyBjbGllbnQgZm9yXG4gIC8vIHB1YmxpYyBlbmRwb2ludHMuIFRoZSBmaXJzdCByZXF1ZXN0IHRoYXQgbmVlZHMgYXV0aCB3aWxsIHN1cmZhY2UgYVxuICAvLyBDb25maWdFcnJvciBkb3duc3RyZWFtLlxufVxuXG4vKipcbiAqIFByb2JlIHRoZSBidXNpbmVzcyBgbGVnYWN5X3Nlc3Npb25gIGdyYW50IGZpcnN0LCBmYWxsIGJhY2sgdG8gY3VzdG9tZXJcbiAqIG9uIGBpbnZhbGlkX2dyYW50YC4gRWl0aGVyIHN1cmZhY2UgbWludHMgYSBKV1Qg4oCUIHRoZSBTREsgZG9lc24ndCBjYXJlXG4gKiB3aGljaCBzaWRlIGFuc3dlcmVkLlxuICpcbiAqIFdoeSBwcm9iZSBib3RoOiBgaWRgIChudW1lcmljKSBvdmVybGFwcyB1c2Vycy51c2VySWQgdnNcbiAqIGFkZG9fY29udGFjdHNfbWFwcGluZy5pZC9jb250YWN0SWQuIENhbGxlcnMgdXN1YWxseSBkb24ndCBrbm93IHdoaWNoXG4gKiB0YWJsZSB0aGVpciAoaWQsIHRva2VuKSBwYWlyIGJlbG9uZ3MgdG8uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlTGVnYWN5U2Vzc2lvbihcbiAgc2Vzc2lvbjogeyBpZDogc3RyaW5nIHwgbnVtYmVyOyB0b2tlbjogc3RyaW5nIH0sXG4gIGF1dGhCYXNlVXJsOiBzdHJpbmcsXG4gIGN1c3RvbWVyQXV0aEJhc2VVcmw6IHN0cmluZyxcbiAgZmV0Y2hGbjogdHlwZW9mIGZldGNoLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgYm9keSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgIGdyYW50X3R5cGU6ICdsZWdhY3lfc2Vzc2lvbicsXG4gICAgaWQ6IFN0cmluZyhzZXNzaW9uLmlkKSxcbiAgICB0b2tlbjogc2Vzc2lvbi50b2tlbixcbiAgfSkudG9TdHJpbmcoKTtcblxuICBjb25zdCBidXNpbmVzc1JlcyA9IGF3YWl0IGZldGNoRm4oYCR7YXV0aEJhc2VVcmx9L29hdXRoL3Rva2VuYCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHsgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnIH0sXG4gICAgYm9keSxcbiAgfSk7XG4gIGlmIChidXNpbmVzc1Jlcy5vaykge1xuICAgIHJldHVybiBwYXJzZUFjY2Vzc1Rva2VuKGJ1c2luZXNzUmVzKTtcbiAgfVxuICBpZiAoYXdhaXQgaXNJbnZhbGlkR3JhbnQoYnVzaW5lc3NSZXMpKSB7XG4gICAgY29uc3QgY3VzdG9tZXJSZXMgPSBhd2FpdCBmZXRjaEZuKGAke2N1c3RvbWVyQXV0aEJhc2VVcmx9L29hdXRoL3Rva2VuYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9LFxuICAgICAgYm9keSxcbiAgICB9KTtcbiAgICBpZiAoY3VzdG9tZXJSZXMub2spIHtcbiAgICAgIHJldHVybiBwYXJzZUFjY2Vzc1Rva2VuKGN1c3RvbWVyUmVzKTtcbiAgICB9XG4gICAgY29uc3QgdGV4dCA9IGF3YWl0IGN1c3RvbWVyUmVzLnRleHQoKS5jYXRjaCgoKSA9PiAnJyk7XG4gICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoXG4gICAgICBgbGVnYWN5X3Nlc3Npb24gZXhjaGFuZ2UgZmFpbGVkIG9uIGJvdGggc3VyZmFjZXM6IGN1c3RvbWVyIEhUVFAgJHtjdXN0b21lclJlcy5zdGF0dXN9ICR7dGV4dH1gLFxuICAgICk7XG4gIH1cbiAgY29uc3QgdGV4dCA9IGF3YWl0IGJ1c2luZXNzUmVzLnRleHQoKS5jYXRjaCgoKSA9PiAnJyk7XG4gIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKFxuICAgIGBsZWdhY3lfc2Vzc2lvbiBleGNoYW5nZSBmYWlsZWQ6IEhUVFAgJHtidXNpbmVzc1Jlcy5zdGF0dXN9ICR7dGV4dH1gLFxuICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpc0ludmFsaWRHcmFudChyZXM6IFJlc3BvbnNlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmIChyZXMuc3RhdHVzICE9PSA0MDApIHJldHVybiBmYWxzZTtcbiAgY29uc3QgY2xvbmVkID0gcmVzLmNsb25lKCk7XG4gIGNvbnN0IGpzb24gPSAoYXdhaXQgY2xvbmVkLmpzb24oKS5jYXRjaCgoKSA9PiAoe30pKSkgYXMgeyBlcnJvcj86IHN0cmluZyB9O1xuICByZXR1cm4ganNvbi5lcnJvciA9PT0gJ2ludmFsaWRfZ3JhbnQnO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwYXJzZUFjY2Vzc1Rva2VuKHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBqc29uID0gKGF3YWl0IHJlcy5qc29uKCkpIGFzIHsgYWNjZXNzX3Rva2VuPzogc3RyaW5nIH07XG4gIGlmICghanNvbi5hY2Nlc3NfdG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgQ29uZmlnRXJyb3IoJ2xlZ2FjeV9zZXNzaW9uIGV4Y2hhbmdlIHJlc3BvbnNlIG1pc3NpbmcgYWNjZXNzX3Rva2VuJyk7XG4gIH1cbiAgcmV0dXJuIGpzb24uYWNjZXNzX3Rva2VuO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlVG9rZW5Tb3VyY2UoaW5wdXQ6IENsaWVudENvbmZpZywgYmFzZVVybDogc3RyaW5nKTogVG9rZW5Tb3VyY2VTdGF0ZSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGF1dGhCYXNlVXJsID0gaW5wdXQuYXV0aEJhc2VVcmwgPz8gYCR7YmFzZVVybH0vYXV0aC9idXNpbmVzc2A7XG4gIGNvbnN0IGZldGNoRm4gPSBpbnB1dC5mZXRjaEZuID8/IChnbG9iYWxUaGlzLmZldGNoIGFzIHR5cGVvZiBmZXRjaCk7XG5cbiAgaWYgKGlucHV0LmF1dGhUb2tlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dC5hdXRoVG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gbWFrZVRva2VuU291cmNlU3RhdGUoXG4gICAgICAgIHsga2luZDogJ3N0YXRpYy1zdHJpbmcnLCB0b2tlbjogaW5wdXQuYXV0aFRva2VuIH0sXG4gICAgICAgIHsgZXhwaXJ5QnVmZmVyTXM6IGlucHV0LmV4cGlyeUJ1ZmZlck1zLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuIH0sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbWFrZVRva2VuU291cmNlU3RhdGUoXG4gICAgICB7IGtpbmQ6ICdjYWxsYmFjaycsIGdldFRva2VuOiBpbnB1dC5hdXRoVG9rZW4gfSxcbiAgICAgIHsgZXhwaXJ5QnVmZmVyTXM6IGlucHV0LmV4cGlyeUJ1ZmZlck1zLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuIH0sXG4gICAgKTtcbiAgfVxuICBpZiAoaW5wdXQuc2Vzc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgY3VzdG9tZXJBdXRoQmFzZVVybCA9IGlucHV0LmN1c3RvbWVyQXV0aEJhc2VVcmwgPz8gYCR7YmFzZVVybH0vYXV0aC9jdXN0b21lcmA7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGlucHV0LnNlc3Npb247XG4gICAgcmV0dXJuIG1ha2VUb2tlblNvdXJjZVN0YXRlKFxuICAgICAge1xuICAgICAgICBraW5kOiAnY2FsbGJhY2snLFxuICAgICAgICBnZXRUb2tlbjogKCkgPT4gZXhjaGFuZ2VMZWdhY3lTZXNzaW9uKHNlc3Npb24sIGF1dGhCYXNlVXJsLCBjdXN0b21lckF1dGhCYXNlVXJsLCBmZXRjaEZuKSxcbiAgICAgIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgaWYgKGlucHV0LnNlcnZpY2VJZCAmJiBpbnB1dC5zZXJ2aWNlU2VjcmV0KSB7XG4gICAgcmV0dXJuIG1ha2VUb2tlblNvdXJjZVN0YXRlKFxuICAgICAge1xuICAgICAgICBraW5kOiAnc2VydmljZS1jcmVkZW50aWFscycsXG4gICAgICAgIGNsaWVudElkOiBpbnB1dC5zZXJ2aWNlSWQsXG4gICAgICAgIGNsaWVudFNlY3JldDogaW5wdXQuc2VydmljZVNlY3JldCxcbiAgICAgICAgYXV0aEJhc2VVcmwsXG4gICAgICAgIHNjb3BlOiBpbnB1dC5zY29wZSxcbiAgICAgIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgaWYgKGlucHV0LnRva2Vucykge1xuICAgIHJldHVybiBtYWtlVG9rZW5Tb3VyY2VTdGF0ZShcbiAgICAgIHtcbiAgICAgICAga2luZDogJ2FjY2Vzcy1yZWZyZXNoLXBhaXInLFxuICAgICAgICBhY2Nlc3NUb2tlbjogaW5wdXQudG9rZW5zLmFjY2Vzc1Rva2VuLFxuICAgICAgICByZWZyZXNoVG9rZW46IGlucHV0LnRva2Vucy5yZWZyZXNoVG9rZW4sXG4gICAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIGlucHV0LnRva2Vucy5leHBpcmVzSW4gKiAxMDAwLFxuICAgICAgICBjbGllbnRJZDogaW5wdXQudG9rZW5zLmNsaWVudElkLFxuICAgICAgICBvblJvdGF0ZTogaW5wdXQudG9rZW5zLm9uUm90YXRlLFxuICAgICAgfSxcbiAgICAgIHsgZXhwaXJ5QnVmZmVyTXM6IGlucHV0LmV4cGlyeUJ1ZmZlck1zLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuIH0sXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiB3YXJuSWZCcm93c2VyU2VjcmV0KGNvbmZpZzogQ2xpZW50Q29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IGcgPSBnbG9iYWxUaGlzIGFzIHsgd2luZG93PzogeyBkb2N1bWVudD86IHVua25vd24gfSB9O1xuICBjb25zdCBpbkJyb3dzZXIgPSB0eXBlb2YgZy53aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBnLndpbmRvdy5kb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCc7XG4gIGlmICghaW5Ccm93c2VyKSByZXR1cm47XG4gIGlmIChjb25maWcuc2VydmljZVNlY3JldCkge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdbdWVuZ2FnZS1wbGF0Zm9ybS1zZGtdIHNlcnZpY2VTZWNyZXQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGJyb3dzZXIgZW52aXJvbm1lbnRzLiAnICtcbiAgICAgICAgJ1NlcnZpY2UgY3JlZGVudGlhbHMgaW4gYnJvd3NlciBidW5kbGVzIGFyZSBwdWJsaWNseSB2aXNpYmxlLiAnICtcbiAgICAgICAgJ1VzZSBgYXV0aFRva2VuYCAoYSBCZWFyZXIgb2J0YWluZWQgdmlhIE9BdXRoKSBvciBgc2Vzc2lvblRva2VuYCBpbnN0ZWFkLicsXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/dist/config.d.ts
CHANGED
|
@@ -31,11 +31,6 @@ export interface PlatformConfigInput {
|
|
|
31
31
|
export interface PlatformAuthInput {
|
|
32
32
|
token?: string;
|
|
33
33
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Resolve env-defaulted config. Re-read on every call so that callers can
|
|
36
|
-
* set env vars after the SDK has been imported and still pick them up on
|
|
37
|
-
* the next request.
|
|
38
|
-
*/
|
|
39
34
|
export declare function envDefaults(): PlatformConfig;
|
|
40
35
|
/**
|
|
41
36
|
* Coerce `.auth()` input or `config({auth})` input into a typed
|
package/dist/config.js
CHANGED
|
@@ -9,15 +9,26 @@ exports.DEFAULT_BASE_URL = 'https://api.platform.uengage.io';
|
|
|
9
9
|
* set env vars after the SDK has been imported and still pick them up on
|
|
10
10
|
* the next request.
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* Read `process.env` defensively: in a browser bundle `process` is not
|
|
14
|
+
* defined at all, and touching it throws a ReferenceError rather than
|
|
15
|
+
* yielding undefined. The SDK is used from browsers (the
|
|
16
|
+
* `whitelabel_web` channel), so every env read goes through here.
|
|
17
|
+
*/
|
|
18
|
+
function env(name) {
|
|
19
|
+
if (typeof process === 'undefined')
|
|
20
|
+
return undefined;
|
|
21
|
+
return process.env?.[name];
|
|
22
|
+
}
|
|
12
23
|
function envDefaults() {
|
|
13
24
|
return {
|
|
14
|
-
baseUrl:
|
|
25
|
+
baseUrl: env('UENGAGE_BASE_URL') ?? exports.DEFAULT_BASE_URL,
|
|
15
26
|
auth: envAuth(),
|
|
16
27
|
fetchFn: globalThis.fetch,
|
|
17
28
|
};
|
|
18
29
|
}
|
|
19
30
|
function envAuth() {
|
|
20
|
-
const token =
|
|
31
|
+
const token = env('UENGAGE_AUTH_TOKEN');
|
|
21
32
|
if (token)
|
|
22
33
|
return { type: 'bearer', token };
|
|
23
34
|
return undefined;
|
|
@@ -76,4 +87,4 @@ class ConfigState {
|
|
|
76
87
|
}
|
|
77
88
|
}
|
|
78
89
|
exports.ConfigState = ConfigState;
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtREEsa0NBTUM7QUFpQkQsc0NBUUM7QUEvRVksUUFBQSxnQkFBZ0IsR0FBRyxpQ0FBaUMsQ0FBQztBQWdDbEU7Ozs7R0FJRztBQUNIOzs7OztHQUtHO0FBQ0gsU0FBUyxHQUFHLENBQUMsSUFBWTtJQUN2QixJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNyRCxPQUFRLE9BQXdELENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0UsQ0FBQztBQUVELFNBQWdCLFdBQVc7SUFDekIsT0FBTztRQUNMLE9BQU8sRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSx3QkFBZ0I7UUFDcEQsSUFBSSxFQUFFLE9BQU8sRUFBRTtRQUNmLE9BQU8sRUFBRSxVQUFVLENBQUMsS0FBcUI7S0FDMUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLE9BQU87SUFDZCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN4QyxJQUFJLEtBQUs7UUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1QyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixhQUFhLENBQUMsS0FBdUM7SUFDbkUsSUFBSSxNQUFNLElBQUksS0FBSztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ2xDLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQ2Isc0lBQXNJLENBQ3ZJLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFhLFdBQVc7SUFDZCxTQUFTLEdBQXdCLEVBQUUsQ0FBQztJQUNwQyxZQUFZLENBQTJCO0lBQ3ZDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFFaEMsS0FBSyxDQUFDLEtBQTBCO1FBQzlCLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN4RSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDeEUsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3JFLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsS0FBdUM7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLEdBQUcsR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUMxQixPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPO1lBQzlDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUN6RCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFpQjtZQUNoRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUE0QjtTQUNwRCxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBN0JELGtDQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSAnQHVlbmdhZ2UuaW8vanMtbG9nZ2VyJztcbmltcG9ydCB0eXBlIHsgVG9rZW5Tb3VyY2VTdGF0ZSB9IGZyb20gJy4vdG9rZW4tc291cmNlJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFTRV9VUkwgPSAnaHR0cHM6Ly9hcGkucGxhdGZvcm0udWVuZ2FnZS5pbyc7XG5cbi8qKlxuICogUmVzb2x2ZWQgYXV0aCBzdGF0ZS4gRGlzY3JpbWluYXRlZCBieSBgdHlwZWAgc28gY29uc3VtZXJzIGNhbiBuYXJyb3cuXG4gKi9cbmV4cG9ydCB0eXBlIFBsYXRmb3JtQXV0aCA9XG4gIHwgeyB0eXBlOiAnYmVhcmVyJzsgdG9rZW46IHN0cmluZyB9XG4gIHwgeyB0eXBlOiAndG9rZW4tc291cmNlJzsgc3RhdGU6IFRva2VuU291cmNlU3RhdGUgfTtcblxuZXhwb3J0IGludGVyZmFjZSBQbGF0Zm9ybUNvbmZpZyB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgYXV0aD86IFBsYXRmb3JtQXV0aDtcbiAgZmV0Y2hGbjogdHlwZW9mIGZldGNoO1xuICBsb2dnZXI/OiBMb2dnZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1Db25maWdJbnB1dCB7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIGF1dGg/OiBQbGF0Zm9ybUF1dGhJbnB1dCB8IFBsYXRmb3JtQXV0aDtcbiAgZmV0Y2hGbj86IHR5cGVvZiBmZXRjaDtcbiAgbG9nZ2VyPzogTG9nZ2VyO1xufVxuXG4vKipcbiAqIGAuYXV0aCgpYCBzaGFwZS4gUGFzcyBge3Rva2VufWAgZm9yIGEgc3RhdGljIEJlYXJlciBhY2Nlc3MgdG9rZW4uXG4gKiBPQXV0aDIgY2xpZW50X2NyZWRlbnRpYWxzIGxpdmUgYXQgYGNyZWF0ZUNsaWVudCgpYCBjb25maWctdGltZVxuICogKGBzZXJ2aWNlSWRgICsgYHNlcnZpY2VTZWNyZXRgIGZpZWxkcyksIG5vdCB2aWEgYC5hdXRoKClgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsYXRmb3JtQXV0aElucHV0IHtcbiAgdG9rZW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBlbnYtZGVmYXVsdGVkIGNvbmZpZy4gUmUtcmVhZCBvbiBldmVyeSBjYWxsIHNvIHRoYXQgY2FsbGVycyBjYW5cbiAqIHNldCBlbnYgdmFycyBhZnRlciB0aGUgU0RLIGhhcyBiZWVuIGltcG9ydGVkIGFuZCBzdGlsbCBwaWNrIHRoZW0gdXAgb25cbiAqIHRoZSBuZXh0IHJlcXVlc3QuXG4gKi9cbi8qKlxuICogUmVhZCBgcHJvY2Vzcy5lbnZgIGRlZmVuc2l2ZWx5OiBpbiBhIGJyb3dzZXIgYnVuZGxlIGBwcm9jZXNzYCBpcyBub3RcbiAqIGRlZmluZWQgYXQgYWxsLCBhbmQgdG91Y2hpbmcgaXQgdGhyb3dzIGEgUmVmZXJlbmNlRXJyb3IgcmF0aGVyIHRoYW5cbiAqIHlpZWxkaW5nIHVuZGVmaW5lZC4gVGhlIFNESyBpcyB1c2VkIGZyb20gYnJvd3NlcnMgKHRoZVxuICogYHdoaXRlbGFiZWxfd2ViYCBjaGFubmVsKSwgc28gZXZlcnkgZW52IHJlYWQgZ29lcyB0aHJvdWdoIGhlcmUuXG4gKi9cbmZ1bmN0aW9uIGVudihuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIHByb2Nlc3MgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gdW5kZWZpbmVkO1xuICByZXR1cm4gKHByb2Nlc3MgYXMgeyBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+IH0pLmVudj8uW25hbWVdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW52RGVmYXVsdHMoKTogUGxhdGZvcm1Db25maWcge1xuICByZXR1cm4ge1xuICAgIGJhc2VVcmw6IGVudignVUVOR0FHRV9CQVNFX1VSTCcpID8/IERFRkFVTFRfQkFTRV9VUkwsXG4gICAgYXV0aDogZW52QXV0aCgpLFxuICAgIGZldGNoRm46IGdsb2JhbFRoaXMuZmV0Y2ggYXMgdHlwZW9mIGZldGNoLFxuICB9O1xufVxuXG5mdW5jdGlvbiBlbnZBdXRoKCk6IFBsYXRmb3JtQXV0aCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHRva2VuID0gZW52KCdVRU5HQUdFX0FVVEhfVE9LRU4nKTtcbiAgaWYgKHRva2VuKSByZXR1cm4geyB0eXBlOiAnYmVhcmVyJywgdG9rZW4gfTtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb2VyY2UgYC5hdXRoKClgIGlucHV0IG9yIGBjb25maWcoe2F1dGh9KWAgaW5wdXQgaW50byBhIHR5cGVkXG4gKiBQbGF0Zm9ybUF1dGguIFRocm93cyB3aGVuIHRoZSBpbnB1dCBoYXMgbm8gdXNhYmxlIGNyZWRlbnRpYWxzLlxuICpcbiAqIFRvZGF5IHRoaXMgb25seSBhY2NlcHRzIGB7dG9rZW59YCBvciBhIHByZS1zaGFwZWQgYFBsYXRmb3JtQXV0aGAuXG4gKiBGb3IgT0F1dGgyIGNsaWVudF9jcmVkZW50aWFscyB1c2UgYGNyZWF0ZUNsaWVudCh7c2VydmljZUlkLCBzZXJ2aWNlU2VjcmV0fSlgXG4gKiBpbnN0ZWFkIOKAlCB0aGF0IGJ1aWxkcyBhIFRva2VuU291cmNlIHdoaWNoIG1pbnRzICsgY2FjaGVzIEJlYXJlclxuICogdG9rZW5zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQXV0aChpbnB1dDogUGxhdGZvcm1BdXRoSW5wdXQgfCBQbGF0Zm9ybUF1dGgpOiBQbGF0Zm9ybUF1dGgge1xuICBpZiAoJ3R5cGUnIGluIGlucHV0KSByZXR1cm4gaW5wdXQ7XG4gIGlmIChpbnB1dC50b2tlbikge1xuICAgIHJldHVybiB7IHR5cGU6ICdiZWFyZXInLCB0b2tlbjogaW5wdXQudG9rZW4gfTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgJ2F1dGgoKTogcGFzcyB7dG9rZW59IGZvciBhIHN0YXRpYyBCZWFyZXIgYWNjZXNzIHRva2VuLCBvciB1c2UgY3JlYXRlQ2xpZW50KHtzZXJ2aWNlSWQsIHNlcnZpY2VTZWNyZXR9KSBmb3IgT0F1dGgyIGNsaWVudF9jcmVkZW50aWFscycsXG4gICk7XG59XG5cbi8qKlxuICogTXV0YWJsZSBjb25maWcgc2hhcmVkIGJ5IGNsaWVudHMuIGBhcHBseSgpYCBhbmQgYHNldEF1dGgoKWAgYXJlIGhvdyB0aGVcbiAqIGNoYWluYWJsZSBgLmNvbmZpZygpYCAvIGAuYXV0aCgpYCBtZXRob2RzIHdyaXRlIGJhY2suIGByZXNvbHZlKClgIHByb2R1Y2VzXG4gKiB0aGUgZWZmZWN0aXZlIGNvbmZpZyBmb3Igb25lIHJlcXVlc3QsIGZhbGxpbmcgYmFjayB0byBjdXJyZW50IGVudiBzdGF0ZVxuICogZm9yIGZpZWxkcyB0aGUgY2FsbGVyIGhhc24ndCBwaW5uZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25maWdTdGF0ZSB7XG4gIHByaXZhdGUgb3ZlcnJpZGVzOiBQbGF0Zm9ybUNvbmZpZ0lucHV0ID0ge307XG4gIHByaXZhdGUgZXhwbGljaXRBdXRoOiBQbGF0Zm9ybUF1dGggfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaGFzRXhwbGljaXRBdXRoID0gZmFsc2U7XG5cbiAgYXBwbHkoaW5wdXQ6IFBsYXRmb3JtQ29uZmlnSW5wdXQpOiB2b2lkIHtcbiAgICBpZiAoaW5wdXQuYmFzZVVybCAhPT0gdW5kZWZpbmVkKSB0aGlzLm92ZXJyaWRlcy5iYXNlVXJsID0gaW5wdXQuYmFzZVVybDtcbiAgICBpZiAoaW5wdXQuZmV0Y2hGbiAhPT0gdW5kZWZpbmVkKSB0aGlzLm92ZXJyaWRlcy5mZXRjaEZuID0gaW5wdXQuZmV0Y2hGbjtcbiAgICBpZiAoaW5wdXQubG9nZ2VyICE9PSB1bmRlZmluZWQpIHRoaXMub3ZlcnJpZGVzLmxvZ2dlciA9IGlucHV0LmxvZ2dlcjtcbiAgICBpZiAoaW5wdXQuYXV0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmV4cGxpY2l0QXV0aCA9IG5vcm1hbGl6ZUF1dGgoaW5wdXQuYXV0aCk7XG4gICAgICB0aGlzLmhhc0V4cGxpY2l0QXV0aCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2V0QXV0aChpbnB1dDogUGxhdGZvcm1BdXRoSW5wdXQgfCBQbGF0Zm9ybUF1dGgpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGxpY2l0QXV0aCA9IG5vcm1hbGl6ZUF1dGgoaW5wdXQpO1xuICAgIHRoaXMuaGFzRXhwbGljaXRBdXRoID0gdHJ1ZTtcbiAgfVxuXG4gIHJlc29sdmUoKTogUGxhdGZvcm1Db25maWcge1xuICAgIGNvbnN0IGVudiA9IGVudkRlZmF1bHRzKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJhc2VVcmw6IHRoaXMub3ZlcnJpZGVzLmJhc2VVcmwgPz8gZW52LmJhc2VVcmwsXG4gICAgICBhdXRoOiB0aGlzLmhhc0V4cGxpY2l0QXV0aCA/IHRoaXMuZXhwbGljaXRBdXRoIDogZW52LmF1dGgsXG4gICAgICBmZXRjaEZuOiAodGhpcy5vdmVycmlkZXMuZmV0Y2hGbiA/PyBlbnYuZmV0Y2hGbikgYXMgdHlwZW9mIGZldGNoLFxuICAgICAgbG9nZ2VyOiB0aGlzLm92ZXJyaWRlcy5sb2dnZXIgYXMgTG9nZ2VyIHwgdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
package/dist/http.js
CHANGED
|
@@ -2,10 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildHeaders = buildHeaders;
|
|
4
4
|
exports.sendWithAuthRetry = sendWithAuthRetry;
|
|
5
|
-
const node_crypto_1 = require("node:crypto");
|
|
6
5
|
const token_source_1 = require("./token-source");
|
|
7
6
|
const version_1 = require("./version");
|
|
8
7
|
const MUTATING_METHODS = new Set(['POST', 'PUT', 'PATCH', 'DELETE']);
|
|
8
|
+
/**
|
|
9
|
+
* UUID v4 without a `node:crypto` import.
|
|
10
|
+
*
|
|
11
|
+
* The SDK runs in browsers as well as Lambdas — `whitelabel_web` is a
|
|
12
|
+
* first-class channel — and a static `node:crypto` import breaks any
|
|
13
|
+
* browser bundler that does not shim it. `crypto.randomUUID` is present
|
|
14
|
+
* in Node >= 19 and every current browser; the manual fallback covers
|
|
15
|
+
* older runtimes and non-secure contexts, where the value is only used
|
|
16
|
+
* as an idempotency key and needs uniqueness, not unguessability.
|
|
17
|
+
*/
|
|
18
|
+
function randomUUID() {
|
|
19
|
+
const c = globalThis.crypto;
|
|
20
|
+
if (c?.randomUUID)
|
|
21
|
+
return c.randomUUID();
|
|
22
|
+
if (c?.getRandomValues) {
|
|
23
|
+
const b = c.getRandomValues(new Uint8Array(16));
|
|
24
|
+
b[6] = (b[6] & 0x0f) | 0x40;
|
|
25
|
+
b[8] = (b[8] & 0x3f) | 0x80;
|
|
26
|
+
const hex = [...b].map((x) => x.toString(16).padStart(2, '0')).join('');
|
|
27
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
28
|
+
}
|
|
29
|
+
throw new Error('No crypto source available for idempotency-key generation');
|
|
30
|
+
}
|
|
9
31
|
/**
|
|
10
32
|
* Build the headers for a request to the platform API.
|
|
11
33
|
*
|
|
@@ -28,7 +50,7 @@ async function buildHeaders(config, params) {
|
|
|
28
50
|
if (params.body !== undefined)
|
|
29
51
|
headers['content-type'] = 'application/json';
|
|
30
52
|
if (MUTATING_METHODS.has(params.method.toUpperCase())) {
|
|
31
|
-
headers['idempotency-key'] =
|
|
53
|
+
headers['idempotency-key'] = randomUUID();
|
|
32
54
|
}
|
|
33
55
|
if (!config.auth)
|
|
34
56
|
return headers;
|
|
@@ -78,4 +100,4 @@ async function sendWithAuthRetry(config, params) {
|
|
|
78
100
|
body: params.body,
|
|
79
101
|
});
|
|
80
102
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBOEJBLG9DQXVCQztBQXdCRCw4Q0EwQkM7QUF2R0QsNkNBQXlDO0FBRXpDLGlEQUFpRTtBQUNqRSx1Q0FBd0M7QUFVeEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFckU7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSSxLQUFLLFVBQVUsWUFBWSxDQUNoQyxNQUFzQixFQUN0QixNQUEwQjtJQUUxQixNQUFNLE9BQU8sR0FBMkI7UUFDdEMsWUFBWSxFQUFFLHdCQUF3QixxQkFBVyxFQUFFO0tBQ3BELENBQUM7SUFDRixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUztRQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztJQUM1RSxJQUFJLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN0RCxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFBLHdCQUFVLEdBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1FBQUUsT0FBTyxPQUFPLENBQUM7SUFFakMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsVUFBVSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCx1RUFBdUU7SUFDdkUsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFBLDZCQUFjLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsVUFBVSxLQUFLLEVBQUUsQ0FBQztJQUM3QyxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBWUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLE1BQXNCLEVBQ3RCLE1BQXlCO0lBRXpCLE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRTtRQUN6QyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1FBQ2pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtLQUNsQixDQUFDLENBQUM7SUFDSCxNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUMzQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsT0FBTztRQUNQLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtLQUNsQixDQUFDLENBQUM7SUFDSCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLGNBQWM7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUMzRSxJQUFBLDhCQUFlLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxNQUFNLFlBQVksR0FBRyxNQUFNLFlBQVksQ0FBQyxNQUFNLEVBQUU7UUFDOUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ3JCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7S0FDbEIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7UUFDaEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ3JCLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtLQUNsQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCB0eXBlIHsgUGxhdGZvcm1Db25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBnZXRBY2Nlc3NUb2tlbiwgaW52YWxpZGF0ZVRva2VuIH0gZnJvbSAnLi90b2tlbi1zb3VyY2UnO1xuaW1wb3J0IHsgU0RLX1ZFUlNJT04gfSBmcm9tICcuL3ZlcnNpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lZEhlYWRlclBhcmFtcyB7XG4gIG1ldGhvZDogc3RyaW5nO1xuICAvKiogVVJMIHBhdGhuYW1lIG9ubHksIHdpdGhvdXQgcXVlcnkgc3RyaW5nLiBNdXN0IG1hdGNoIGBjLnJlcS5wYXRoYCBzZXJ2ZXItc2lkZS4gKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogUmF3IEpTT04gYm9keSBzdHJpbmcsIG9yIGVtcHR5IGZvciBub25lLiAqL1xuICBib2R5Pzogc3RyaW5nO1xufVxuXG5jb25zdCBNVVRBVElOR19NRVRIT0RTID0gbmV3IFNldChbJ1BPU1QnLCAnUFVUJywgJ1BBVENIJywgJ0RFTEVURSddKTtcblxuLyoqXG4gKiBCdWlsZCB0aGUgaGVhZGVycyBmb3IgYSByZXF1ZXN0IHRvIHRoZSBwbGF0Zm9ybSBBUEkuXG4gKlxuICogQWRkcyB0aHJlZSBwbGF0Zm9ybS13aWRlIGhlYWRlcnMgYXV0b21hdGljYWxseTpcbiAqICAgLSBgVXNlci1BZ2VudGAgc28gdGhlIGdhdGV3YXkgY2FuIGF0dHJpYnV0ZSB0cmFmZmljIHRvIFNESyB2ZXJzaW9uXG4gKiAgIC0gYElkZW1wb3RlbmN5LUtleWAgKFVVSUQgdjQpIG9uIG11dGF0aW5nIG1ldGhvZHMsIHNvIGNhbGxlcnMgZG9uJ3RcbiAqICAgICBoYXZlIHRvIGdlbmVyYXRlIG9uZSBwZXIgY2FsbFxuICogICAtIGBjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb25gIHdoZW4gYSBib2R5IGlzIHN1cHBsaWVkXG4gKlxuICogQXV0aCBjb21lcyBmcm9tIGBjb25maWcuYXV0aGA6XG4gKiAgIC0gYGJlYXJlcmA6IHRoZSB0b2tlbiBpcyBzZW50IHZlcmJhdGltIChjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yXG4gKiAgICAgZnJlc2huZXNzOyBTREsgdGhyb3dzIFRva2VuRXhwaXJlZEVycm9yIG9uIGxvY2FsLWRldGVjdGVkIGV4cGlyeSlcbiAqICAgLSBgdG9rZW4tc291cmNlYDogU0RLIG1pbnRzICsgY2FjaGVzIHZpYSBPQXV0aDIgY2xpZW50X2NyZWRlbnRpYWxzXG4gKiAgICAgYW5kIHJlZnJlc2hlcyBvbiBleHBpcnkgLyA0MDFcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkSGVhZGVycyhcbiAgY29uZmlnOiBQbGF0Zm9ybUNvbmZpZyxcbiAgcGFyYW1zOiBTaWduZWRIZWFkZXJQYXJhbXMsXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAndXNlci1hZ2VudCc6IGB1ZW5nYWdlLXBsYXRmb3JtLXNkay8ke1NES19WRVJTSU9OfWAsXG4gIH07XG4gIGlmIChwYXJhbXMuYm9keSAhPT0gdW5kZWZpbmVkKSBoZWFkZXJzWydjb250ZW50LXR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgaWYgKE1VVEFUSU5HX01FVEhPRFMuaGFzKHBhcmFtcy5tZXRob2QudG9VcHBlckNhc2UoKSkpIHtcbiAgICBoZWFkZXJzWydpZGVtcG90ZW5jeS1rZXknXSA9IHJhbmRvbVVVSUQoKTtcbiAgfVxuXG4gIGlmICghY29uZmlnLmF1dGgpIHJldHVybiBoZWFkZXJzO1xuXG4gIGlmIChjb25maWcuYXV0aC50eXBlID09PSAnYmVhcmVyJykge1xuICAgIGhlYWRlcnNbJ2F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHtjb25maWcuYXV0aC50b2tlbn1gO1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgLy8gdG9rZW4tc291cmNlOiBtaW50ICsgY2FjaGUgKyByZWZyZXNoLWRlZHVwIGhhcHBlbnMgaW4gZ2V0QWNjZXNzVG9rZW5cbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBnZXRBY2Nlc3NUb2tlbihjb25maWcuYXV0aC5zdGF0ZSk7XG4gIGhlYWRlcnNbJ2F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICByZXR1cm4gaGVhZGVycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW5kUmVxdWVzdFBhcmFtcyB7XG4gIG1ldGhvZDogc3RyaW5nO1xuICAvKiogVVJMIHBhdGhuYW1lIG9ubHksIHdpdGhvdXQgcXVlcnkgc3RyaW5nLiBNdXN0IG1hdGNoIGBjLnJlcS5wYXRoYCBzZXJ2ZXItc2lkZS4gKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogRnVsbHktcXVhbGlmaWVkIFVSTCB0aGUgZmV0Y2ggaXMgc2VudCB0byAoYmFzZSArIHBhdGggKyBxdWVyeXN0cmluZykuICovXG4gIHVybDogc3RyaW5nO1xuICAvKiogUmF3IEpTT04gYm9keSBzdHJpbmcsIG9yIHVuZGVmaW5lZCBmb3Igbm9uZS4gKi9cbiAgYm9keT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZW5kIGEgcmVxdWVzdCB3aXRoIHRoZSBTREsncyBzdGFuZGFyZCA0MDEtcmV0cnktb25jZSBiZWhhdmlvdXIuXG4gKlxuICogT25seSByZXRyaWVzIHdoZW4gYXV0aCBpcyBgdG9rZW4tc291cmNlYCwgc2luY2UgdGhhdCdzIHRoZSBjYXNlXG4gKiB3aGVyZSB0aGUgY2FjaGVkIHRva2VuIG1heSBoYXZlIGV4cGlyZWQgc2VydmVyLXNpZGUuIEhNQUMgYW5kXG4gKiBzdGF0aWMgYmVhcmVyIDQwMXMgbWVhbiB0aGUgYXV0aCBpcyBtaXNjb25maWd1cmVkIGFuZCBhIHJldHJ5XG4gKiB3b3VsZCBqdXN0IGZhaWwgYWdhaW4uIEJ1YmJsZSB0aGUgcmVzcG9uc2Ugc28gdGhlIGNhbGxlciBzdXJmYWNlcyBpdC5cbiAqXG4gKiBTaGFyZWQgYnkgZXZlcnkgbmFtZXNwYWNlIGNsaWVudCAoYnVzaW5lc3MsIGF1ZGl0LCB6b25lcywgLi4uKSBzb1xuICogdGhlIHJldHJ5IHNlbWFudGljcyBhcmUgdW5pZm9ybS4gTGlmdGVkIG91dCBvZiBgYnVzaW5lc3MvY2xpZW50LnRzYFxuICogd2l0aCBubyBiZWhhdmlvdXIgY2hhbmdlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFdpdGhBdXRoUmV0cnkoXG4gIGNvbmZpZzogUGxhdGZvcm1Db25maWcsXG4gIHBhcmFtczogU2VuZFJlcXVlc3RQYXJhbXMsXG4pOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gIGNvbnN0IGhlYWRlcnMgPSBhd2FpdCBidWlsZEhlYWRlcnMoY29uZmlnLCB7XG4gICAgbWV0aG9kOiBwYXJhbXMubWV0aG9kLFxuICAgIHBhdGg6IHBhcmFtcy5wYXRoLFxuICAgIGJvZHk6IHBhcmFtcy5ib2R5LFxuICB9KTtcbiAgY29uc3QgcmVzID0gYXdhaXQgY29uZmlnLmZldGNoRm4ocGFyYW1zLnVybCwge1xuICAgIG1ldGhvZDogcGFyYW1zLm1ldGhvZCxcbiAgICBoZWFkZXJzLFxuICAgIGJvZHk6IHBhcmFtcy5ib2R5LFxuICB9KTtcbiAgaWYgKHJlcy5zdGF0dXMgIT09IDQwMSB8fCBjb25maWcuYXV0aD8udHlwZSAhPT0gJ3Rva2VuLXNvdXJjZScpIHJldHVybiByZXM7XG4gIGludmFsaWRhdGVUb2tlbihjb25maWcuYXV0aC5zdGF0ZSk7XG4gIGNvbnN0IHJldHJ5SGVhZGVycyA9IGF3YWl0IGJ1aWxkSGVhZGVycyhjb25maWcsIHtcbiAgICBtZXRob2Q6IHBhcmFtcy5tZXRob2QsXG4gICAgcGF0aDogcGFyYW1zLnBhdGgsXG4gICAgYm9keTogcGFyYW1zLmJvZHksXG4gIH0pO1xuICByZXR1cm4gY29uZmlnLmZldGNoRm4ocGFyYW1zLnVybCwge1xuICAgIG1ldGhvZDogcGFyYW1zLm1ldGhvZCxcbiAgICBoZWFkZXJzOiByZXRyeUhlYWRlcnMsXG4gICAgYm9keTogcGFyYW1zLmJvZHksXG4gIH0pO1xufVxuIl19
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBd0RBLG9DQXVCQztBQXdCRCw4Q0EwQkM7QUFoSUQsaURBQWlFO0FBQ2pFLHVDQUF3QztBQVV4QyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUVyRTs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLFVBQVU7SUFDakIsTUFBTSxDQUFDLEdBQ0wsVUFHRCxDQUFDLE1BQU0sQ0FBQztJQUNULElBQUksQ0FBQyxFQUFFLFVBQVU7UUFBRSxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN6QyxJQUFJLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQztRQUN2QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzVCLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFD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QUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGxhdGZvcm1Db25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBnZXRBY2Nlc3NUb2tlbiwgaW52YWxpZGF0ZVRva2VuIH0gZnJvbSAnLi90b2tlbi1zb3VyY2UnO1xuaW1wb3J0IHsgU0RLX1ZFUlNJT04gfSBmcm9tICcuL3ZlcnNpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25lZEhlYWRlclBhcmFtcyB7XG4gIG1ldGhvZDogc3RyaW5nO1xuICAvKiogVVJMIHBhdGhuYW1lIG9ubHksIHdpdGhvdXQgcXVlcnkgc3RyaW5nLiBNdXN0IG1hdGNoIGBjLnJlcS5wYXRoYCBzZXJ2ZXItc2lkZS4gKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogUmF3IEpTT04gYm9keSBzdHJpbmcsIG9yIGVtcHR5IGZvciBub25lLiAqL1xuICBib2R5Pzogc3RyaW5nO1xufVxuXG5jb25zdCBNVVRBVElOR19NRVRIT0RTID0gbmV3IFNldChbJ1BPU1QnLCAnUFVUJywgJ1BBVENIJywgJ0RFTEVURSddKTtcblxuLyoqXG4gKiBVVUlEIHY0IHdpdGhvdXQgYSBgbm9kZTpjcnlwdG9gIGltcG9ydC5cbiAqXG4gKiBUaGUgU0RLIHJ1bnMgaW4gYnJvd3NlcnMgYXMgd2VsbCBhcyBMYW1iZGFzIOKAlCBgd2hpdGVsYWJlbF93ZWJgIGlzIGFcbiAqIGZpcnN0LWNsYXNzIGNoYW5uZWwg4oCUIGFuZCBhIHN0YXRpYyBgbm9kZTpjcnlwdG9gIGltcG9ydCBicmVha3MgYW55XG4gKiBicm93c2VyIGJ1bmRsZXIgdGhhdCBkb2VzIG5vdCBzaGltIGl0LiBgY3J5cHRvLnJhbmRvbVVVSURgIGlzIHByZXNlbnRcbiAqIGluIE5vZGUgPj0gMTkgYW5kIGV2ZXJ5IGN1cnJlbnQgYnJvd3NlcjsgdGhlIG1hbnVhbCBmYWxsYmFjayBjb3ZlcnNcbiAqIG9sZGVyIHJ1bnRpbWVzIGFuZCBub24tc2VjdXJlIGNvbnRleHRzLCB3aGVyZSB0aGUgdmFsdWUgaXMgb25seSB1c2VkXG4gKiBhcyBhbiBpZGVtcG90ZW5jeSBrZXkgYW5kIG5lZWRzIHVuaXF1ZW5lc3MsIG5vdCB1bmd1ZXNzYWJpbGl0eS5cbiAqL1xuZnVuY3Rpb24gcmFuZG9tVVVJRCgpOiBzdHJpbmcge1xuICBjb25zdCBjID0gKFxuICAgIGdsb2JhbFRoaXMgYXMge1xuICAgICAgY3J5cHRvPzogeyByYW5kb21VVUlEPzogKCkgPT4gc3RyaW5nOyBnZXRSYW5kb21WYWx1ZXM/OiAoYTogVWludDhBcnJheSkgPT4gVWludDhBcnJheSB9O1xuICAgIH1cbiAgKS5jcnlwdG87XG4gIGlmIChjPy5yYW5kb21VVUlEKSByZXR1cm4gYy5yYW5kb21VVUlEKCk7XG4gIGlmIChjPy5nZXRSYW5kb21WYWx1ZXMpIHtcbiAgICBjb25zdCBiID0gYy5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoMTYpKTtcbiAgICBiWzZdID0gKGJbNl0gJiAweDBmKSB8IDB4NDA7XG4gICAgYls4XSA9IChiWzhdICYgMHgzZikgfCAweDgwO1xuICAgIGNvbnN0IGhleCA9IFsuLi5iXS5tYXAoKHgpID0+IHgudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsICcwJykpLmpvaW4oJycpO1xuICAgIHJldHVybiBgJHtoZXguc2xpY2UoMCwgOCl9LSR7aGV4LnNsaWNlKDgsIDEyKX0tJHtoZXguc2xpY2UoMTIsIDE2KX0tJHtoZXguc2xpY2UoMTYsIDIwKX0tJHtoZXguc2xpY2UoMjApfWA7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdObyBjcnlwdG8gc291cmNlIGF2YWlsYWJsZSBmb3IgaWRlbXBvdGVuY3kta2V5IGdlbmVyYXRpb24nKTtcbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgaGVhZGVycyBmb3IgYSByZXF1ZXN0IHRvIHRoZSBwbGF0Zm9ybSBBUEkuXG4gKlxuICogQWRkcyB0aHJlZSBwbGF0Zm9ybS13aWRlIGhlYWRlcnMgYXV0b21hdGljYWxseTpcbiAqICAgLSBgVXNlci1BZ2VudGAgc28gdGhlIGdhdGV3YXkgY2FuIGF0dHJpYnV0ZSB0cmFmZmljIHRvIFNESyB2ZXJzaW9uXG4gKiAgIC0gYElkZW1wb3RlbmN5LUtleWAgKFVVSUQgdjQpIG9uIG11dGF0aW5nIG1ldGhvZHMsIHNvIGNhbGxlcnMgZG9uJ3RcbiAqICAgICBoYXZlIHRvIGdlbmVyYXRlIG9uZSBwZXIgY2FsbFxuICogICAtIGBjb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb25gIHdoZW4gYSBib2R5IGlzIHN1cHBsaWVkXG4gKlxuICogQXV0aCBjb21lcyBmcm9tIGBjb25maWcuYXV0aGA6XG4gKiAgIC0gYGJlYXJlcmA6IHRoZSB0b2tlbiBpcyBzZW50IHZlcmJhdGltIChjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yXG4gKiAgICAgZnJlc2huZXNzOyBTREsgdGhyb3dzIFRva2VuRXhwaXJlZEVycm9yIG9uIGxvY2FsLWRldGVjdGVkIGV4cGlyeSlcbiAqICAgLSBgdG9rZW4tc291cmNlYDogU0RLIG1pbnRzICsgY2FjaGVzIHZpYSBPQXV0aDIgY2xpZW50X2NyZWRlbnRpYWxzXG4gKiAgICAgYW5kIHJlZnJlc2hlcyBvbiBleHBpcnkgLyA0MDFcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkSGVhZGVycyhcbiAgY29uZmlnOiBQbGF0Zm9ybUNvbmZpZyxcbiAgcGFyYW1zOiBTaWduZWRIZWFkZXJQYXJhbXMsXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAndXNlci1hZ2VudCc6IGB1ZW5nYWdlLXBsYXRmb3JtLXNkay8ke1NES19WRVJTSU9OfWAsXG4gIH07XG4gIGlmIChwYXJhbXMuYm9keSAhPT0gdW5kZWZpbmVkKSBoZWFkZXJzWydjb250ZW50LXR5cGUnXSA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgaWYgKE1VVEFUSU5HX01FVEhPRFMuaGFzKHBhcmFtcy5tZXRob2QudG9VcHBlckNhc2UoKSkpIHtcbiAgICBoZWFkZXJzWydpZGVtcG90ZW5jeS1rZXknXSA9IHJhbmRvbVVVSUQoKTtcbiAgfVxuXG4gIGlmICghY29uZmlnLmF1dGgpIHJldHVybiBoZWFkZXJzO1xuXG4gIGlmIChjb25maWcuYXV0aC50eXBlID09PSAnYmVhcmVyJykge1xuICAgIGhlYWRlcnNbJ2F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHtjb25maWcuYXV0aC50b2tlbn1gO1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgLy8gdG9rZW4tc291cmNlOiBtaW50ICsgY2FjaGUgKyByZWZyZXNoLWRlZHVwIGhhcHBlbnMgaW4gZ2V0QWNjZXNzVG9rZW5cbiAgY29uc3QgdG9rZW4gPSBhd2FpdCBnZXRBY2Nlc3NUb2tlbihjb25maWcuYXV0aC5zdGF0ZSk7XG4gIGhlYWRlcnNbJ2F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICByZXR1cm4gaGVhZGVycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW5kUmVxdWVzdFBhcmFtcyB7XG4gIG1ldGhvZDogc3RyaW5nO1xuICAvKiogVVJMIHBhdGhuYW1lIG9ubHksIHdpdGhvdXQgcXVlcnkgc3RyaW5nLiBNdXN0IG1hdGNoIGBjLnJlcS5wYXRoYCBzZXJ2ZXItc2lkZS4gKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogRnVsbHktcXVhbGlmaWVkIFVSTCB0aGUgZmV0Y2ggaXMgc2VudCB0byAoYmFzZSArIHBhdGggKyBxdWVyeXN0cmluZykuICovXG4gIHVybDogc3RyaW5nO1xuICAvKiogUmF3IEpTT04gYm9keSBzdHJpbmcsIG9yIHVuZGVmaW5lZCBmb3Igbm9uZS4gKi9cbiAgYm9keT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZW5kIGEgcmVxdWVzdCB3aXRoIHRoZSBTREsncyBzdGFuZGFyZCA0MDEtcmV0cnktb25jZSBiZWhhdmlvdXIuXG4gKlxuICogT25seSByZXRyaWVzIHdoZW4gYXV0aCBpcyBgdG9rZW4tc291cmNlYCwgc2luY2UgdGhhdCdzIHRoZSBjYXNlXG4gKiB3aGVyZSB0aGUgY2FjaGVkIHRva2VuIG1heSBoYXZlIGV4cGlyZWQgc2VydmVyLXNpZGUuIEhNQUMgYW5kXG4gKiBzdGF0aWMgYmVhcmVyIDQwMXMgbWVhbiB0aGUgYXV0aCBpcyBtaXNjb25maWd1cmVkIGFuZCBhIHJldHJ5XG4gKiB3b3VsZCBqdXN0IGZhaWwgYWdhaW4uIEJ1YmJsZSB0aGUgcmVzcG9uc2Ugc28gdGhlIGNhbGxlciBzdXJmYWNlcyBpdC5cbiAqXG4gKiBTaGFyZWQgYnkgZXZlcnkgbmFtZXNwYWNlIGNsaWVudCAoYnVzaW5lc3MsIGF1ZGl0LCB6b25lcywgLi4uKSBzb1xuICogdGhlIHJldHJ5IHNlbWFudGljcyBhcmUgdW5pZm9ybS4gTGlmdGVkIG91dCBvZiBgYnVzaW5lc3MvY2xpZW50LnRzYFxuICogd2l0aCBubyBiZWhhdmlvdXIgY2hhbmdlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZFdpdGhBdXRoUmV0cnkoXG4gIGNvbmZpZzogUGxhdGZvcm1Db25maWcsXG4gIHBhcmFtczogU2VuZFJlcXVlc3RQYXJhbXMsXG4pOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gIGNvbnN0IGhlYWRlcnMgPSBhd2FpdCBidWlsZEhlYWRlcnMoY29uZmlnLCB7XG4gICAgbWV0aG9kOiBwYXJhbXMubWV0aG9kLFxuICAgIHBhdGg6IHBhcmFtcy5wYXRoLFxuICAgIGJvZHk6IHBhcmFtcy5ib2R5LFxuICB9KTtcbiAgY29uc3QgcmVzID0gYXdhaXQgY29uZmlnLmZldGNoRm4ocGFyYW1zLnVybCwge1xuICAgIG1ldGhvZDogcGFyYW1zLm1ldGhvZCxcbiAgICBoZWFkZXJzLFxuICAgIGJvZHk6IHBhcmFtcy5ib2R5LFxuICB9KTtcbiAgaWYgKHJlcy5zdGF0dXMgIT09IDQwMSB8fCBjb25maWcuYXV0aD8udHlwZSAhPT0gJ3Rva2VuLXNvdXJjZScpIHJldHVybiByZXM7XG4gIGludmFsaWRhdGVUb2tlbihjb25maWcuYXV0aC5zdGF0ZSk7XG4gIGNvbnN0IHJldHJ5SGVhZGVycyA9IGF3YWl0IGJ1aWxkSGVhZGVycyhjb25maWcsIHtcbiAgICBtZXRob2Q6IHBhcmFtcy5tZXRob2QsXG4gICAgcGF0aDogcGFyYW1zLnBhdGgsXG4gICAgYm9keTogcGFyYW1zLmJvZHksXG4gIH0pO1xuICByZXR1cm4gY29uZmlnLmZldGNoRm4ocGFyYW1zLnVybCwge1xuICAgIG1ldGhvZDogcGFyYW1zLm1ldGhvZCxcbiAgICBoZWFkZXJzOiByZXRyeUhlYWRlcnMsXG4gICAgYm9keTogcGFyYW1zLmJvZHksXG4gIH0pO1xufVxuIl19
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './audit';
|
|
|
2
2
|
export * from './business';
|
|
3
3
|
export * from './zones';
|
|
4
4
|
export * from './wallet';
|
|
5
|
+
export * from './upsell';
|
|
5
6
|
export * from './errors';
|
|
6
7
|
export { auth } from './auth';
|
|
7
8
|
export type { PkcePair, AuthorizeUrlInput, ExchangeCodeInput, RefreshInput, TokenPair, } from './auth';
|
package/dist/index.js
CHANGED
|
@@ -19,6 +19,7 @@ __exportStar(require("./audit"), exports);
|
|
|
19
19
|
__exportStar(require("./business"), exports);
|
|
20
20
|
__exportStar(require("./zones"), exports);
|
|
21
21
|
__exportStar(require("./wallet"), exports);
|
|
22
|
+
__exportStar(require("./upsell"), exports);
|
|
22
23
|
__exportStar(require("./errors"), exports);
|
|
23
24
|
var auth_1 = require("./auth");
|
|
24
25
|
Object.defineProperty(exports, "auth", { enumerable: true, get: function () { return auth_1.auth; } });
|
|
@@ -26,4 +27,4 @@ var config_1 = require("./config");
|
|
|
26
27
|
Object.defineProperty(exports, "DEFAULT_BASE_URL", { enumerable: true, get: function () { return config_1.DEFAULT_BASE_URL; } });
|
|
27
28
|
var client_1 = require("./client");
|
|
28
29
|
Object.defineProperty(exports, "createClient", { enumerable: true, get: function () { return client_1.createClient; } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsNkNBQTJCO0FBQzNCLDBDQUF3QjtBQUN4QiwyQ0FBeUI7QUFDekIsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6QiwrQkFBOEI7QUFBckIsNEZBQUEsSUFBSSxPQUFBO0FBUWIsbUNBTWtCO0FBRGhCLDBHQUFBLGdCQUFnQixPQUFBO0FBRWxCLG1DQUFnRjtBQUF2RSxzR0FBQSxZQUFZLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1ZGl0JztcbmV4cG9ydCAqIGZyb20gJy4vYnVzaW5lc3MnO1xuZXhwb3J0ICogZnJvbSAnLi96b25lcyc7XG5leHBvcnQgKiBmcm9tICcuL3dhbGxldCc7XG5leHBvcnQgKiBmcm9tICcuL3Vwc2VsbCc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9ycyc7XG5leHBvcnQgeyBhdXRoIH0gZnJvbSAnLi9hdXRoJztcbmV4cG9ydCB0eXBlIHtcbiAgUGtjZVBhaXIsXG4gIEF1dGhvcml6ZVVybElucHV0LFxuICBFeGNoYW5nZUNvZGVJbnB1dCxcbiAgUmVmcmVzaElucHV0LFxuICBUb2tlblBhaXIsXG59IGZyb20gJy4vYXV0aCc7XG5leHBvcnQge1xuICB0eXBlIFBsYXRmb3JtQXV0aCxcbiAgdHlwZSBQbGF0Zm9ybUF1dGhJbnB1dCxcbiAgdHlwZSBQbGF0Zm9ybUNvbmZpZyxcbiAgdHlwZSBQbGF0Zm9ybUNvbmZpZ0lucHV0LFxuICBERUZBVUxUX0JBU0VfVVJMLFxufSBmcm9tICcuL2NvbmZpZyc7XG5leHBvcnQgeyBjcmVhdGVDbGllbnQsIHR5cGUgQ2xpZW50Q29uZmlnLCB0eXBlIFBsYXRmb3JtQ2xpZW50IH0gZnJvbSAnLi9jbGllbnQnO1xuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type PlatformAuth, type PlatformAuthInput, type PlatformConfigInput } from '../config';
|
|
2
|
+
import type { Placement, PlacementDeleteInput, PlacementRecord, PlacementUpsertInput, PlacementsQuery, SuggestionsInput, SuggestionsResult, UpsellEventsInput } from './schema';
|
|
3
|
+
export interface UpsellClient {
|
|
4
|
+
config(input: PlatformConfigInput): UpsellClient;
|
|
5
|
+
auth(input: PlatformAuthInput | PlatformAuth): UpsellClient;
|
|
6
|
+
/** GET /v1/upsell/placements - resolved placements for a channel + tenant. */
|
|
7
|
+
placements(query: PlacementsQuery): Promise<Placement[]>;
|
|
8
|
+
/** POST /v1/upsell/suggestions - items for one placement given the live cart. */
|
|
9
|
+
suggest(input: SuggestionsInput): Promise<SuggestionsResult>;
|
|
10
|
+
/**
|
|
11
|
+
* POST /v1/upsell/events - report shown / added / ignored for a
|
|
12
|
+
* rendered placement. Fire-and-forget; feeds attach-rate measurement
|
|
13
|
+
* and the weight tuning that follows it.
|
|
14
|
+
*/
|
|
15
|
+
reportEvents(input: UpsellEventsInput): Promise<{
|
|
16
|
+
accepted: number;
|
|
17
|
+
}>;
|
|
18
|
+
/** GET /v1/upsell/admin/placements - raw config rows (service-actor only). */
|
|
19
|
+
adminListPlacements(opts?: {
|
|
20
|
+
parentId?: number;
|
|
21
|
+
}): Promise<PlacementRecord[]>;
|
|
22
|
+
/** PUT /v1/upsell/admin/placements - create/replace a config row (service-actor only). */
|
|
23
|
+
adminUpsertPlacement(input: PlacementUpsertInput): Promise<PlacementRecord>;
|
|
24
|
+
/** DELETE /v1/upsell/admin/placements - throws UpsellApiError(404) if absent. */
|
|
25
|
+
adminDeletePlacement(input: PlacementDeleteInput): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
export declare class UpsellApiError extends Error {
|
|
28
|
+
readonly status: number;
|
|
29
|
+
readonly body: string;
|
|
30
|
+
constructor(status: number, body: string);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Build the `upsell` namespace.
|
|
34
|
+
*
|
|
35
|
+
* Shape and contract mirror {@link createZonesClient} - lazy config
|
|
36
|
+
* resolution via {@link ConfigState}, shared 401-retry via
|
|
37
|
+
* {@link sendWithAuthRetry}, immutable per-call config; no globals.
|
|
38
|
+
*
|
|
39
|
+
* Reads (`placements`, `suggest`) accept user or service tokens —
|
|
40
|
+
* channel apps call them with customer session JWTs. Admin methods
|
|
41
|
+
* require a service-actor token; the server answers 403 otherwise and
|
|
42
|
+
* we surface it as {@link UpsellApiError}.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createUpsellClient(input?: PlatformConfigInput): UpsellClient;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpsellApiError = void 0;
|
|
4
|
+
exports.createUpsellClient = createUpsellClient;
|
|
5
|
+
const config_1 = require("../config");
|
|
6
|
+
const http_1 = require("../http");
|
|
7
|
+
class UpsellApiError extends Error {
|
|
8
|
+
status;
|
|
9
|
+
body;
|
|
10
|
+
constructor(status, body) {
|
|
11
|
+
super(`upsell API ${status}: ${body}`);
|
|
12
|
+
this.name = 'UpsellApiError';
|
|
13
|
+
this.status = status;
|
|
14
|
+
this.body = body;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.UpsellApiError = UpsellApiError;
|
|
18
|
+
function assertPositiveInt(label, value) {
|
|
19
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
20
|
+
throw new Error(`upsell.${label}: expected a positive integer (got ${JSON.stringify(value)})`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function assertTenantIds(label, input) {
|
|
24
|
+
if (input.parentId !== undefined)
|
|
25
|
+
assertPositiveInt(`${label}.parentId`, input.parentId);
|
|
26
|
+
if (input.businessId !== undefined) {
|
|
27
|
+
assertPositiveInt(`${label}.businessId`, input.businessId);
|
|
28
|
+
if (input.parentId === undefined) {
|
|
29
|
+
throw new Error(`upsell.${label}: businessId requires parentId`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Build the `upsell` namespace.
|
|
35
|
+
*
|
|
36
|
+
* Shape and contract mirror {@link createZonesClient} - lazy config
|
|
37
|
+
* resolution via {@link ConfigState}, shared 401-retry via
|
|
38
|
+
* {@link sendWithAuthRetry}, immutable per-call config; no globals.
|
|
39
|
+
*
|
|
40
|
+
* Reads (`placements`, `suggest`) accept user or service tokens —
|
|
41
|
+
* channel apps call them with customer session JWTs. Admin methods
|
|
42
|
+
* require a service-actor token; the server answers 403 otherwise and
|
|
43
|
+
* we surface it as {@link UpsellApiError}.
|
|
44
|
+
*/
|
|
45
|
+
function createUpsellClient(input = {}) {
|
|
46
|
+
const state = new config_1.ConfigState();
|
|
47
|
+
state.apply(input);
|
|
48
|
+
async function send(method, path, query, body) {
|
|
49
|
+
const config = state.resolve();
|
|
50
|
+
const url = `${config.baseUrl}${path}${query ?? ''}`;
|
|
51
|
+
const payload = body === undefined ? undefined : JSON.stringify(body);
|
|
52
|
+
return (0, http_1.sendWithAuthRetry)(config, { method, path, url, body: payload });
|
|
53
|
+
}
|
|
54
|
+
async function expectJson(res) {
|
|
55
|
+
if (!res.ok)
|
|
56
|
+
throw new UpsellApiError(res.status, await res.text());
|
|
57
|
+
return (await res.json());
|
|
58
|
+
}
|
|
59
|
+
const client = {
|
|
60
|
+
config(opts) {
|
|
61
|
+
state.apply(opts);
|
|
62
|
+
return client;
|
|
63
|
+
},
|
|
64
|
+
auth(opts) {
|
|
65
|
+
state.setAuth(opts);
|
|
66
|
+
return client;
|
|
67
|
+
},
|
|
68
|
+
async placements(query) {
|
|
69
|
+
assertPositiveInt('placements.parentId', query.parentId);
|
|
70
|
+
assertPositiveInt('placements.businessId', query.businessId);
|
|
71
|
+
const params = new URLSearchParams({
|
|
72
|
+
channel: query.channel,
|
|
73
|
+
parentId: String(query.parentId),
|
|
74
|
+
businessId: String(query.businessId),
|
|
75
|
+
});
|
|
76
|
+
const res = await send('GET', '/v1/upsell/placements', `?${params.toString()}`);
|
|
77
|
+
const body = await expectJson(res);
|
|
78
|
+
return body.placements;
|
|
79
|
+
},
|
|
80
|
+
async suggest(input) {
|
|
81
|
+
if (!input || typeof input !== 'object' || !input.tenant) {
|
|
82
|
+
throw new Error('upsell.suggest: input must include `tenant` and `context.cart`');
|
|
83
|
+
}
|
|
84
|
+
assertPositiveInt('suggest.tenant.parentId', input.tenant.parentId);
|
|
85
|
+
assertPositiveInt('suggest.tenant.businessId', input.tenant.businessId);
|
|
86
|
+
if (!input.context?.cart || !Array.isArray(input.context.cart.items)) {
|
|
87
|
+
throw new Error('upsell.suggest: context.cart.items must be an array');
|
|
88
|
+
}
|
|
89
|
+
const res = await send('POST', '/v1/upsell/suggestions', undefined, input);
|
|
90
|
+
return expectJson(res);
|
|
91
|
+
},
|
|
92
|
+
async reportEvents(input) {
|
|
93
|
+
if (!input?.events?.length) {
|
|
94
|
+
throw new Error('upsell.reportEvents: events must be a non-empty array');
|
|
95
|
+
}
|
|
96
|
+
assertPositiveInt('reportEvents.tenant.parentId', input.tenant.parentId);
|
|
97
|
+
assertPositiveInt('reportEvents.tenant.businessId', input.tenant.businessId);
|
|
98
|
+
const res = await send('POST', '/v1/upsell/events', undefined, input);
|
|
99
|
+
return expectJson(res);
|
|
100
|
+
},
|
|
101
|
+
async adminListPlacements(opts = {}) {
|
|
102
|
+
if (opts.parentId !== undefined)
|
|
103
|
+
assertPositiveInt('adminListPlacements.parentId', opts.parentId);
|
|
104
|
+
const qs = opts.parentId !== undefined ? `?parentId=${opts.parentId}` : undefined;
|
|
105
|
+
const res = await send('GET', '/v1/upsell/admin/placements', qs);
|
|
106
|
+
const body = await expectJson(res);
|
|
107
|
+
return body.placements;
|
|
108
|
+
},
|
|
109
|
+
async adminUpsertPlacement(input) {
|
|
110
|
+
assertTenantIds('adminUpsertPlacement', input);
|
|
111
|
+
const res = await send('PUT', '/v1/upsell/admin/placements', undefined, input);
|
|
112
|
+
return expectJson(res);
|
|
113
|
+
},
|
|
114
|
+
async adminDeletePlacement(input) {
|
|
115
|
+
assertTenantIds('adminDeletePlacement', input);
|
|
116
|
+
const params = new URLSearchParams({ channel: input.channel, key: input.key });
|
|
117
|
+
if (input.parentId !== undefined)
|
|
118
|
+
params.set('parentId', String(input.parentId));
|
|
119
|
+
if (input.businessId !== undefined)
|
|
120
|
+
params.set('businessId', String(input.businessId));
|
|
121
|
+
// Omitting parentId targets the platform default row, which the
|
|
122
|
+
// server refuses to delete without an explicit confirmation. Send
|
|
123
|
+
// the flag through rather than inferring it, so a caller that meant
|
|
124
|
+
// to scope the delete still gets the 400 instead of silently
|
|
125
|
+
// wiping the default for every tenant.
|
|
126
|
+
if (input.confirmDeleteDefault)
|
|
127
|
+
params.set('confirmDeleteDefault', 'true');
|
|
128
|
+
const res = await send('DELETE', '/v1/upsell/admin/placements', `?${params.toString()}`);
|
|
129
|
+
if (res.status === 204)
|
|
130
|
+
return;
|
|
131
|
+
throw new UpsellApiError(res.status, await res.text());
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
return client;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Vwc2VsbC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUZBLGdEQW9HQztBQXJMRCxzQ0FLbUI7QUFDbkIsa0NBQTRDO0FBbUM1QyxNQUFhLGNBQWUsU0FBUSxLQUFLO0lBQzlCLE1BQU0sQ0FBUztJQUNmLElBQUksQ0FBUztJQUV0QixZQUFZLE1BQWMsRUFBRSxJQUFZO1FBQ3RDLEtBQUssQ0FBQyxjQUFjLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBVkQsd0NBVUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxLQUFhO0lBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxzQ0FBc0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakcsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxLQUFhLEVBQUUsS0FBaUQ7SUFDdkYsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVM7UUFBRSxpQkFBaUIsQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RixJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbkMsaUJBQWlCLENBQUMsR0FBRyxLQUFLLGFBQWEsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0QsSUFB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QUFDLENBQUM7WUFDdkYsZ0VBQWdFO1lBQ2hFLGtFQUFrRTtZQUNsRSxvRUFBb0U7WUFDcEUsNkRBQTZEO1lBQzdELHVDQUF1QztZQUN2QyxJQUFJLEtBQUssQ0FBQyxvQkFBb0I7Z0JBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMzRSxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3pGLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHO2dCQUFFLE9BQU87WUFDL0IsTUFBTSxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQztLQUNGLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmlnU3RhdGUsXG4gIHR5cGUgUGxhdGZvcm1BdXRoLFxuICB0eXBlIFBsYXRmb3JtQXV0aElucHV0LFxuICB0eXBlIFBsYXRmb3JtQ29uZmlnSW5wdXQsXG59IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBzZW5kV2l0aEF1dGhSZXRyeSB9IGZyb20gJy4uL2h0dHAnO1xuaW1wb3J0IHR5cGUge1xuICBQbGFjZW1lbnQsXG4gIFBsYWNlbWVudERlbGV0ZUlucHV0LFxuICBQbGFjZW1lbnRSZWNvcmQsXG4gIFBsYWNlbWVudFVwc2VydElucHV0LFxuICBQbGFjZW1lbnRzUXVlcnksXG4gIFN1Z2dlc3Rpb25zSW5wdXQsXG4gIFN1Z2dlc3Rpb25zUmVzdWx0LFxuICBVcHNlbGxFdmVudHNJbnB1dCxcbn0gZnJvbSAnLi9zY2hlbWEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwc2VsbENsaWVudCB7XG4gIGNvbmZpZyhpbnB1dDogUGxhdGZvcm1Db25maWdJbnB1dCk6IFVwc2VsbENsaWVudDtcbiAgYXV0aChpbnB1dDogUGxhdGZvcm1BdXRoSW5wdXQgfCBQbGF0Zm9ybUF1dGgpOiBVcHNlbGxDbGllbnQ7XG5cbiAgLyoqIEdFVCAvdjEvdXBzZWxsL3BsYWNlbWVudHMgLSByZXNvbHZlZCBwbGFjZW1lbnRzIGZvciBhIGNoYW5uZWwgKyB0ZW5hbnQuICovXG4gIHBsYWNlbWVudHMocXVlcnk6IFBsYWNlbWVudHNRdWVyeSk6IFByb21pc2U8UGxhY2VtZW50W10+O1xuICAvKiogUE9TVCAvdjEvdXBzZWxsL3N1Z2dlc3Rpb25zIC0gaXRlbXMgZm9yIG9uZSBwbGFjZW1lbnQgZ2l2ZW4gdGhlIGxpdmUgY2FydC4gKi9cbiAgc3VnZ2VzdChpbnB1dDogU3VnZ2VzdGlvbnNJbnB1dCk6IFByb21pc2U8U3VnZ2VzdGlvbnNSZXN1bHQ+O1xuICAvKipcbiAgICogUE9TVCAvdjEvdXBzZWxsL2V2ZW50cyAtIHJlcG9ydCBzaG93biAvIGFkZGVkIC8gaWdub3JlZCBmb3IgYVxuICAgKiByZW5kZXJlZCBwbGFjZW1lbnQuIEZpcmUtYW5kLWZvcmdldDsgZmVlZHMgYXR0YWNoLXJhdGUgbWVhc3VyZW1lbnRcbiAgICogYW5kIHRoZSB3ZWlnaHQgdHVuaW5nIHRoYXQgZm9sbG93cyBpdC5cbiAgICovXG4gIHJlcG9ydEV2ZW50cyhpbnB1dDogVXBzZWxsRXZlbnRzSW5wdXQpOiBQcm9taXNlPHsgYWNjZXB0ZWQ6IG51bWJlciB9PjtcblxuICAvKiogR0VUIC92MS91cHNlbGwvYWRtaW4vcGxhY2VtZW50cyAtIHJhdyBjb25maWcgcm93cyAoc2VydmljZS1hY3RvciBvbmx5KS4gKi9cbiAgYWRtaW5MaXN0UGxhY2VtZW50cyhvcHRzPzogeyBwYXJlbnRJZD86IG51bWJlciB9KTogUHJvbWlzZTxQbGFjZW1lbnRSZWNvcmRbXT47XG4gIC8qKiBQVVQgL3YxL3Vwc2VsbC9hZG1pbi9wbGFjZW1lbnRzIC0gY3JlYXRlL3JlcGxhY2UgYSBjb25maWcgcm93IChzZXJ2aWNlLWFjdG9yIG9ubHkpLiAqL1xuICBhZG1pblVwc2VydFBsYWNlbWVudChpbnB1dDogUGxhY2VtZW50VXBzZXJ0SW5wdXQpOiBQcm9taXNlPFBsYWNlbWVudFJlY29yZD47XG4gIC8qKiBERUxFVEUgL3YxL3Vwc2VsbC9hZG1pbi9wbGFjZW1lbnRzIC0gdGhyb3dzIFVwc2VsbEFwaUVycm9yKDQwNCkgaWYgYWJzZW50LiAqL1xuICBhZG1pbkRlbGV0ZVBsYWNlbWVudChpbnB1dDogUGxhY2VtZW50RGVsZXRlSW5wdXQpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgY2xhc3MgVXBzZWxsQXBpRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHJlYWRvbmx5IHN0YXR1czogbnVtYmVyO1xuICByZWFkb25seSBib2R5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc3RhdHVzOiBudW1iZXIsIGJvZHk6IHN0cmluZykge1xuICAgIHN1cGVyKGB1cHNlbGwgQVBJICR7c3RhdHVzfTogJHtib2R5fWApO1xuICAgIHRoaXMubmFtZSA9ICdVcHNlbGxBcGlFcnJvcic7XG4gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRQb3NpdGl2ZUludChsYWJlbDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgfHwgdmFsdWUgPD0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdXBzZWxsLiR7bGFiZWx9OiBleHBlY3RlZCBhIHBvc2l0aXZlIGludGVnZXIgKGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX0pYCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0VGVuYW50SWRzKGxhYmVsOiBzdHJpbmcsIGlucHV0OiB7IHBhcmVudElkPzogbnVtYmVyOyBidXNpbmVzc0lkPzogbnVtYmVyIH0pOiB2b2lkIHtcbiAgaWYgKGlucHV0LnBhcmVudElkICE9PSB1bmRlZmluZWQpIGFzc2VydFBvc2l0aXZlSW50KGAke2xhYmVsfS5wYXJlbnRJZGAsIGlucHV0LnBhcmVudElkKTtcbiAgaWYgKGlucHV0LmJ1c2luZXNzSWQgIT09IHVuZGVmaW5lZCkge1xuICAgIGFzc2VydFBvc2l0aXZlSW50KGAke2xhYmVsfS5idXNpbmVzc0lkYCwgaW5wdXQuYnVzaW5lc3NJZCk7XG4gICAgaWYgKGlucHV0LnBhcmVudElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdXBzZWxsLiR7bGFiZWx9OiBidXNpbmVzc0lkIHJlcXVpcmVzIHBhcmVudElkYCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIGB1cHNlbGxgIG5hbWVzcGFjZS5cbiAqXG4gKiBTaGFwZSBhbmQgY29udHJhY3QgbWlycm9yIHtAbGluayBjcmVhdGVab25lc0NsaWVudH0gLSBsYXp5IGNvbmZpZ1xuICogcmVzb2x1dGlvbiB2aWEge0BsaW5rIENvbmZpZ1N0YXRlfSwgc2hhcmVkIDQwMS1yZXRyeSB2aWFcbiAqIHtAbGluayBzZW5kV2l0aEF1dGhSZXRyeX0sIGltbXV0YWJsZSBwZXItY2FsbCBjb25maWc7IG5vIGdsb2JhbHMuXG4gKlxuICogUmVhZHMgKGBwbGFjZW1lbnRzYCwgYHN1Z2dlc3RgKSBhY2NlcHQgdXNlciBvciBzZXJ2aWNlIHRva2VucyDigJRcbiAqIGNoYW5uZWwgYXBwcyBjYWxsIHRoZW0gd2l0aCBjdXN0b21lciBzZXNzaW9uIEpXVHMuIEFkbWluIG1ldGhvZHNcbiAqIHJlcXVpcmUgYSBzZXJ2aWNlLWFjdG9yIHRva2VuOyB0aGUgc2VydmVyIGFuc3dlcnMgNDAzIG90aGVyd2lzZSBhbmRcbiAqIHdlIHN1cmZhY2UgaXQgYXMge0BsaW5rIFVwc2VsbEFwaUVycm9yfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVwc2VsbENsaWVudChpbnB1dDogUGxhdGZvcm1Db25maWdJbnB1dCA9IHt9KTogVXBzZWxsQ2xpZW50IHtcbiAgY29uc3Qgc3RhdGUgPSBuZXcgQ29uZmlnU3RhdGUoKTtcbiAgc3RhdGUuYXBwbHkoaW5wdXQpO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHNlbmQoXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHF1ZXJ5Pzogc3RyaW5nLFxuICAgIGJvZHk/OiB1bmtub3duLFxuICApOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgY29uc3QgY29uZmlnID0gc3RhdGUucmVzb2x2ZSgpO1xuICAgIGNvbnN0IHVybCA9IGAke2NvbmZpZy5iYXNlVXJsfSR7cGF0aH0ke3F1ZXJ5ID8/ICcnfWA7XG4gICAgY29uc3QgcGF5bG9hZCA9IGJvZHkgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIHJldHVybiBzZW5kV2l0aEF1dGhSZXRyeShjb25maWcsIHsgbWV0aG9kLCBwYXRoLCB1cmwsIGJvZHk6IHBheWxvYWQgfSk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBleHBlY3RKc29uPFQ+KHJlczogUmVzcG9uc2UpOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAoIXJlcy5vaykgdGhyb3cgbmV3IFVwc2VsbEFwaUVycm9yKHJlcy5zdGF0dXMsIGF3YWl0IHJlcy50ZXh0KCkpO1xuICAgIHJldHVybiAoYXdhaXQgcmVzLmpzb24oKSkgYXMgVDtcbiAgfVxuXG4gIGNvbnN0IGNsaWVudDogVXBzZWxsQ2xpZW50ID0ge1xuICAgIGNvbmZpZyhvcHRzKSB7XG4gICAgICBzdGF0ZS5hcHBseShvcHRzKTtcbiAgICAgIHJldHVybiBjbGllbnQ7XG4gICAgfSxcbiAgICBhdXRoKG9wdHMpIHtcbiAgICAgIHN0YXRlLnNldEF1dGgob3B0cyk7XG4gICAgICByZXR1cm4gY2xpZW50O1xuICAgIH0sXG5cbiAgICBhc3luYyBwbGFjZW1lbnRzKHF1ZXJ5KSB7XG4gICAgICBhc3NlcnRQb3NpdGl2ZUludCgncGxhY2VtZW50cy5wYXJlbnRJZCcsIHF1ZXJ5LnBhcmVudElkKTtcbiAgICAgIGFzc2VydFBvc2l0aXZlSW50KCdwbGFjZW1lbnRzLmJ1c2luZXNzSWQnLCBxdWVyeS5idXNpbmVzc0lkKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICBjaGFubmVsOiBxdWVyeS5jaGFubmVsLFxuICAgICAgICBwYXJlbnRJZDogU3RyaW5nKHF1ZXJ5LnBhcmVudElkKSxcbiAgICAgICAgYnVzaW5lc3NJZDogU3RyaW5nKHF1ZXJ5LmJ1c2luZXNzSWQpLFxuICAgICAgfSk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kKCdHRVQnLCAnL3YxL3Vwc2VsbC9wbGFjZW1lbnRzJywgYD8ke3BhcmFtcy50b1N0cmluZygpfWApO1xuICAgICAgY29uc3QgYm9keSA9IGF3YWl0IGV4cGVjdEpzb248eyBwbGFjZW1lbnRzOiBQbGFjZW1lbnRbXSB9PihyZXMpO1xuICAgICAgcmV0dXJuIGJvZHkucGxhY2VtZW50cztcbiAgICB9LFxuXG4gICAgYXN5bmMgc3VnZ2VzdChpbnB1dCkge1xuICAgICAgaWYgKCFpbnB1dCB8fCB0eXBlb2YgaW5wdXQgIT09ICdvYmplY3QnIHx8ICFpbnB1dC50ZW5hbnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1cHNlbGwuc3VnZ2VzdDogaW5wdXQgbXVzdCBpbmNsdWRlIGB0ZW5hbnRgIGFuZCBgY29udGV4dC5jYXJ0YCcpO1xuICAgICAgfVxuICAgICAgYXNzZXJ0UG9zaXRpdmVJbnQoJ3N1Z2dlc3QudGVuYW50LnBhcmVudElkJywgaW5wdXQudGVuYW50LnBhcmVudElkKTtcbiAgICAgIGFzc2VydFBvc2l0aXZlSW50KCdzdWdnZXN0LnRlbmFudC5idXNpbmVzc0lkJywgaW5wdXQudGVuYW50LmJ1c2luZXNzSWQpO1xuICAgICAgaWYgKCFpbnB1dC5jb250ZXh0Py5jYXJ0IHx8ICFBcnJheS5pc0FycmF5KGlucHV0LmNvbnRleHQuY2FydC5pdGVtcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1cHNlbGwuc3VnZ2VzdDogY29udGV4dC5jYXJ0Lml0ZW1zIG11c3QgYmUgYW4gYXJyYXknKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BPU1QnLCAnL3YxL3Vwc2VsbC9zdWdnZXN0aW9ucycsIHVuZGVmaW5lZCwgaW5wdXQpO1xuICAgICAgcmV0dXJuIGV4cGVjdEpzb248U3VnZ2VzdGlvbnNSZXN1bHQ+KHJlcyk7XG4gICAgfSxcblxuICAgIGFzeW5jIHJlcG9ydEV2ZW50cyhpbnB1dCkge1xuICAgICAgaWYgKCFpbnB1dD8uZXZlbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1cHNlbGwucmVwb3J0RXZlbnRzOiBldmVudHMgbXVzdCBiZSBhIG5vbi1lbXB0eSBhcnJheScpO1xuICAgICAgfVxuICAgICAgYXNzZXJ0UG9zaXRpdmVJbnQoJ3JlcG9ydEV2ZW50cy50ZW5hbnQucGFyZW50SWQnLCBpbnB1dC50ZW5hbnQucGFyZW50SWQpO1xuICAgICAgYXNzZXJ0UG9zaXRpdmVJbnQoJ3JlcG9ydEV2ZW50cy50ZW5hbnQuYnVzaW5lc3NJZCcsIGlucHV0LnRlbmFudC5idXNpbmVzc0lkKTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BPU1QnLCAnL3YxL3Vwc2VsbC9ldmVudHMnLCB1bmRlZmluZWQsIGlucHV0KTtcbiAgICAgIHJldHVybiBleHBlY3RKc29uPHsgYWNjZXB0ZWQ6IG51bWJlciB9PihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBhZG1pbkxpc3RQbGFjZW1lbnRzKG9wdHMgPSB7fSkge1xuICAgICAgaWYgKG9wdHMucGFyZW50SWQgIT09IHVuZGVmaW5lZClcbiAgICAgICAgYXNzZXJ0UG9zaXRpdmVJbnQoJ2FkbWluTGlzdFBsYWNlbWVudHMucGFyZW50SWQnLCBvcHRzLnBhcmVudElkKTtcbiAgICAgIGNvbnN0IHFzID0gb3B0cy5wYXJlbnRJZCAhPT0gdW5kZWZpbmVkID8gYD9wYXJlbnRJZD0ke29wdHMucGFyZW50SWR9YCA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ0dFVCcsICcvdjEvdXBzZWxsL2FkbWluL3BsYWNlbWVudHMnLCBxcyk7XG4gICAgICBjb25zdCBib2R5ID0gYXdhaXQgZXhwZWN0SnNvbjx7IHBsYWNlbWVudHM6IFBsYWNlbWVudFJlY29yZFtdIH0+KHJlcyk7XG4gICAgICByZXR1cm4gYm9keS5wbGFjZW1lbnRzO1xuICAgIH0sXG5cbiAgICBhc3luYyBhZG1pblVwc2VydFBsYWNlbWVudChpbnB1dCkge1xuICAgICAgYXNzZXJ0VGVuYW50SWRzKCdhZG1pblVwc2VydFBsYWNlbWVudCcsIGlucHV0KTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BVVCcsICcvdjEvdXBzZWxsL2FkbWluL3BsYWNlbWVudHMnLCB1bmRlZmluZWQsIGlucHV0KTtcbiAgICAgIHJldHVybiBleHBlY3RKc29uPFBsYWNlbWVudFJlY29yZD4ocmVzKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgYWRtaW5EZWxldGVQbGFjZW1lbnQoaW5wdXQpIHtcbiAgICAgIGFzc2VydFRlbmFudElkcygnYWRtaW5EZWxldGVQbGFjZW1lbnQnLCBpbnB1dCk7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgY2hhbm5lbDogaW5wdXQuY2hhbm5lbCwga2V5OiBpbnB1dC5rZXkgfSk7XG4gICAgICBpZiAoaW5wdXQucGFyZW50SWQgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgncGFyZW50SWQnLCBTdHJpbmcoaW5wdXQucGFyZW50SWQpKTtcbiAgICAgIGlmIChpbnB1dC5idXNpbmVzc0lkICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2J1c2luZXNzSWQnLCBTdHJpbmcoaW5wdXQuYnVzaW5lc3NJZCkpO1xuICAgICAgLy8gT21pdHRpbmcgcGFyZW50SWQgdGFyZ2V0cyB0aGUgcGxhdGZvcm0gZGVmYXVsdCByb3csIHdoaWNoIHRoZVxuICAgICAgLy8gc2VydmVyIHJlZnVzZXMgdG8gZGVsZXRlIHdpdGhvdXQgYW4gZXhwbGljaXQgY29uZmlybWF0aW9uLiBTZW5kXG4gICAgICAvLyB0aGUgZmxhZyB0aHJvdWdoIHJhdGhlciB0aGFuIGluZmVycmluZyBpdCwgc28gYSBjYWxsZXIgdGhhdCBtZWFudFxuICAgICAgLy8gdG8gc2NvcGUgdGhlIGRlbGV0ZSBzdGlsbCBnZXRzIHRoZSA0MDAgaW5zdGVhZCBvZiBzaWxlbnRseVxuICAgICAgLy8gd2lwaW5nIHRoZSBkZWZhdWx0IGZvciBldmVyeSB0ZW5hbnQuXG4gICAgICBpZiAoaW5wdXQuY29uZmlybURlbGV0ZURlZmF1bHQpIHBhcmFtcy5zZXQoJ2NvbmZpcm1EZWxldGVEZWZhdWx0JywgJ3RydWUnKTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ0RFTEVURScsICcvdjEvdXBzZWxsL2FkbWluL3BsYWNlbWVudHMnLCBgPyR7cGFyYW1zLnRvU3RyaW5nKCl9YCk7XG4gICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjA0KSByZXR1cm47XG4gICAgICB0aHJvdyBuZXcgVXBzZWxsQXBpRXJyb3IocmVzLnN0YXR1cywgYXdhaXQgcmVzLnRleHQoKSk7XG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gY2xpZW50O1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { createUpsellClient, UpsellApiError, type UpsellClient } from './client';
|
|
2
|
+
export type { Cart, CartItem, Channel, KnownLayout, LadderRung, Layout, Placement, PlacementDeleteInput, PlacementDisplay, PlacementRecord, PlacementScope, PlacementUpsertInput, PlacementsQuery, ReasonCode, StrategyParams, SuggestionsInput, SuggestionsResult, Tenant, Touchpoint, UpsellEvent, UpsellEventType, UpsellEventsInput, UpsellItem, UpsellStrategy, } from './schema';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpsellApiError = exports.createUpsellClient = void 0;
|
|
4
|
+
var client_1 = require("./client");
|
|
5
|
+
Object.defineProperty(exports, "createUpsellClient", { enumerable: true, get: function () { return client_1.createUpsellClient; } });
|
|
6
|
+
Object.defineProperty(exports, "UpsellApiError", { enumerable: true, get: function () { return client_1.UpsellApiError; } });
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXBzZWxsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFpRjtBQUF4RSw0R0FBQSxrQkFBa0IsT0FBQTtBQUFFLHdHQUFBLGNBQWMsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGNyZWF0ZVVwc2VsbENsaWVudCwgVXBzZWxsQXBpRXJyb3IsIHR5cGUgVXBzZWxsQ2xpZW50IH0gZnJvbSAnLi9jbGllbnQnO1xuZXhwb3J0IHR5cGUge1xuICBDYXJ0LFxuICBDYXJ0SXRlbSxcbiAgQ2hhbm5lbCxcbiAgS25vd25MYXlvdXQsXG4gIExhZGRlclJ1bmcsXG4gIExheW91dCxcbiAgUGxhY2VtZW50LFxuICBQbGFjZW1lbnREZWxldGVJbnB1dCxcbiAgUGxhY2VtZW50RGlzcGxheSxcbiAgUGxhY2VtZW50UmVjb3JkLFxuICBQbGFjZW1lbnRTY29wZSxcbiAgUGxhY2VtZW50VXBzZXJ0SW5wdXQsXG4gIFBsYWNlbWVudHNRdWVyeSxcbiAgUmVhc29uQ29kZSxcbiAgU3RyYXRlZ3lQYXJhbXMsXG4gIFN1Z2dlc3Rpb25zSW5wdXQsXG4gIFN1Z2dlc3Rpb25zUmVzdWx0LFxuICBUZW5hbnQsXG4gIFRvdWNocG9pbnQsXG4gIFVwc2VsbEV2ZW50LFxuICBVcHNlbGxFdmVudFR5cGUsXG4gIFVwc2VsbEV2ZW50c0lucHV0LFxuICBVcHNlbGxJdGVtLFxuICBVcHNlbGxTdHJhdGVneSxcbn0gZnJvbSAnLi9zY2hlbWEnO1xuIl19
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type surface for the platform Upsell API.
|
|
3
|
+
*
|
|
4
|
+
* Two consumer-facing calls: `placements(...)` (which upsell surfaces a
|
|
5
|
+
* channel should render for a tenant) and `suggest(...)` (items for one
|
|
6
|
+
* placement given the live cart). `reportEvents(...)` feeds attach-rate
|
|
7
|
+
* telemetry. Placement config is managed via the service-actor-only
|
|
8
|
+
* admin methods.
|
|
9
|
+
*/
|
|
10
|
+
export type Channel = 'mobile_app' | 'kiosk' | 'whitelabel_web' | 'whatsapp' | 'voice';
|
|
11
|
+
/**
|
|
12
|
+
* A moment in the customer journey — the unit of platform policy
|
|
13
|
+
* (price band, max items, and later the signal weight profile). A
|
|
14
|
+
* placement is a channel's journey label pointing at one of these.
|
|
15
|
+
*/
|
|
16
|
+
export type Touchpoint = 'home' | 'menu_browsing' | 'menu_composing' | 'search_no_result' | 'cart' | 'pre_checkout' | 'post_order';
|
|
17
|
+
/**
|
|
18
|
+
* Rendering hint, owned by the channel frontend — the platform never
|
|
19
|
+
* interprets it. Known values are listed for editor completion, but any
|
|
20
|
+
* lowercase identifier is valid so new layouts need no SDK release.
|
|
21
|
+
*/
|
|
22
|
+
export type KnownLayout = 'carousel_2up' | 'horizontal_carousel' | 'grid_2xn_modal' | 'carousel_1up' | 'vertical_list' | 'grid_3xn' | 'compact_list' | 'hero_banner';
|
|
23
|
+
export type Layout = KnownLayout | (string & {});
|
|
24
|
+
/** Why an item was recommended. Channels render these in customer language. */
|
|
25
|
+
export type ReasonCode = 'popular_now' | 'completes_meal' | 'often_ordered_together' | 'your_usual' | 'chefs_pick';
|
|
26
|
+
/** Which rung of the resolution ladder answered the request. */
|
|
27
|
+
export type LadderRung = 'full_engine' | 'band_relaxation' | 'popularity_floor' | 'backup_suggestions' | 'empty_degraded';
|
|
28
|
+
export type UpsellStrategy = 'menu-order-popularity' | 'legacy-catalog-sample';
|
|
29
|
+
export interface PlacementDisplay {
|
|
30
|
+
title: string;
|
|
31
|
+
/** Requested count. Touchpoint policy may cap it lower — see `meta.maxItems`. */
|
|
32
|
+
maxItems: number;
|
|
33
|
+
layout: Layout;
|
|
34
|
+
}
|
|
35
|
+
/** Resolved public placement (business override > brand > platform default). */
|
|
36
|
+
export interface Placement {
|
|
37
|
+
key: string;
|
|
38
|
+
channel: Channel;
|
|
39
|
+
touchpoint: Touchpoint;
|
|
40
|
+
enabled: boolean;
|
|
41
|
+
display: PlacementDisplay;
|
|
42
|
+
configVersion: string;
|
|
43
|
+
}
|
|
44
|
+
export interface Tenant {
|
|
45
|
+
parentId: number;
|
|
46
|
+
businessId: number;
|
|
47
|
+
}
|
|
48
|
+
export interface CartItem {
|
|
49
|
+
itemId: number;
|
|
50
|
+
qty: number;
|
|
51
|
+
unitPrice: number;
|
|
52
|
+
/** Optional; lets the dietary gate and category no-repeat see cart contents. */
|
|
53
|
+
itemSlug?: string;
|
|
54
|
+
sectionName?: string;
|
|
55
|
+
/** Legacy vegNonvegBoth flag: 1 veg, 2 non-veg, 3 both/egg. */
|
|
56
|
+
veg?: number;
|
|
57
|
+
}
|
|
58
|
+
export interface Cart {
|
|
59
|
+
items: CartItem[];
|
|
60
|
+
subtotal: number;
|
|
61
|
+
}
|
|
62
|
+
export interface SuggestionsInput {
|
|
63
|
+
channel: Channel;
|
|
64
|
+
placement: string;
|
|
65
|
+
tenant: Tenant;
|
|
66
|
+
context: {
|
|
67
|
+
cart: Cart;
|
|
68
|
+
fulfilmentMode?: 'delivery' | 'pickup' | 'dine_in';
|
|
69
|
+
/**
|
|
70
|
+
* Optional; unused by the v1 scorers. In the contract from day one
|
|
71
|
+
* so personalization lands without a break. `id` MUST be the opaque
|
|
72
|
+
* platform customer id, never a mobile number.
|
|
73
|
+
*/
|
|
74
|
+
customer?: {
|
|
75
|
+
id: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Optional; not yet acted on. Impression fatigue is session-scoped
|
|
79
|
+
* and shared across touchpoints — send it now so channels
|
|
80
|
+
* instrument once rather than twice.
|
|
81
|
+
*/
|
|
82
|
+
sessionId?: string;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export interface UpsellItem {
|
|
86
|
+
itemId: number;
|
|
87
|
+
itemName: string;
|
|
88
|
+
itemSlug: string | null;
|
|
89
|
+
description: string | null;
|
|
90
|
+
sectionId: number | null;
|
|
91
|
+
sectionName: string | null;
|
|
92
|
+
/** Selling price (INR). */
|
|
93
|
+
price: number;
|
|
94
|
+
image: string | null;
|
|
95
|
+
/** Raw legacy `vegNonvegBoth` flag, passed through untranslated. */
|
|
96
|
+
veg: number | null;
|
|
97
|
+
brandId: number | null;
|
|
98
|
+
reasonCode: ReasonCode;
|
|
99
|
+
}
|
|
100
|
+
export interface SuggestionsResult {
|
|
101
|
+
placement: string;
|
|
102
|
+
touchpoint: Touchpoint;
|
|
103
|
+
items: UpsellItem[];
|
|
104
|
+
meta: {
|
|
105
|
+
enabled: boolean;
|
|
106
|
+
strategy: UpsellStrategy;
|
|
107
|
+
configVersion: string;
|
|
108
|
+
/** Which ladder rung produced these items. */
|
|
109
|
+
rung: LadderRung;
|
|
110
|
+
/** Effective cap applied: min(display.maxItems, touchpoint policy). */
|
|
111
|
+
maxItems: number;
|
|
112
|
+
/** How long the client may reuse this response, in seconds. */
|
|
113
|
+
ttlSeconds: number;
|
|
114
|
+
/** True when the candidate source failed and the service degraded to empty. */
|
|
115
|
+
degraded?: boolean;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/** Merchant-controlled selection inputs. */
|
|
119
|
+
export interface StrategyParams {
|
|
120
|
+
includedItemSlugs?: string[];
|
|
121
|
+
includedSections?: string[];
|
|
122
|
+
excludedSections?: string[];
|
|
123
|
+
/** "Never Suggest These" — absolute, overrides the priority list. */
|
|
124
|
+
neverSuggestItemSlugs?: string[];
|
|
125
|
+
/** "My Priority Items" — occupy reserved slots ahead of scored items. */
|
|
126
|
+
priorityItemSlugs?: string[];
|
|
127
|
+
/** "Backup Suggestions" — 2-6 items, served when everything else is empty. */
|
|
128
|
+
backupItemSlugs?: string[];
|
|
129
|
+
excludeCartItems?: boolean;
|
|
130
|
+
maxPrice?: number;
|
|
131
|
+
}
|
|
132
|
+
export type PlacementScope = 'default' | 'tenant' | 'business';
|
|
133
|
+
/** Raw admin-plane config row (no precedence merge applied). */
|
|
134
|
+
export interface PlacementRecord {
|
|
135
|
+
scope: PlacementScope;
|
|
136
|
+
parentId?: number;
|
|
137
|
+
businessId?: number;
|
|
138
|
+
channel: Channel;
|
|
139
|
+
key: string;
|
|
140
|
+
touchpoint: Touchpoint;
|
|
141
|
+
enabled: boolean;
|
|
142
|
+
display: PlacementDisplay;
|
|
143
|
+
strategy: UpsellStrategy;
|
|
144
|
+
strategyParams: StrategyParams;
|
|
145
|
+
configVersion: string;
|
|
146
|
+
updatedAt: string;
|
|
147
|
+
updatedBy: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Admin upsert. Scope is derived: no parentId → platform default;
|
|
151
|
+
* parentId only → brand row; parentId + businessId → business override.
|
|
152
|
+
*/
|
|
153
|
+
export interface PlacementUpsertInput {
|
|
154
|
+
parentId?: number;
|
|
155
|
+
businessId?: number;
|
|
156
|
+
channel: Channel;
|
|
157
|
+
key: string;
|
|
158
|
+
touchpoint: Touchpoint;
|
|
159
|
+
enabled: boolean;
|
|
160
|
+
display: PlacementDisplay;
|
|
161
|
+
strategy?: UpsellStrategy;
|
|
162
|
+
strategyParams?: StrategyParams;
|
|
163
|
+
}
|
|
164
|
+
export interface PlacementDeleteInput {
|
|
165
|
+
parentId?: number;
|
|
166
|
+
businessId?: number;
|
|
167
|
+
channel: Channel;
|
|
168
|
+
key: string;
|
|
169
|
+
/**
|
|
170
|
+
* Required by the server when `parentId` is omitted, because that call
|
|
171
|
+
* targets the PLATFORM DEFAULT row and so removes the placement for
|
|
172
|
+
* every tenant that has not overridden it. Without this the server
|
|
173
|
+
* rejects the request with 400 rather than guessing that a missing
|
|
174
|
+
* parentId was deliberate.
|
|
175
|
+
*
|
|
176
|
+
* Deliberately not defaulted to `true` here: the whole point of the
|
|
177
|
+
* flag is that deleting a default must be stated, not inferred from
|
|
178
|
+
* the shape of the call.
|
|
179
|
+
*/
|
|
180
|
+
confirmDeleteDefault?: boolean;
|
|
181
|
+
}
|
|
182
|
+
export interface PlacementsQuery {
|
|
183
|
+
channel: Channel;
|
|
184
|
+
parentId: number;
|
|
185
|
+
businessId: number;
|
|
186
|
+
}
|
|
187
|
+
export type UpsellEventType = 'shown' | 'added' | 'ignored';
|
|
188
|
+
export interface UpsellEvent {
|
|
189
|
+
type: UpsellEventType;
|
|
190
|
+
itemId: number;
|
|
191
|
+
reasonCode?: ReasonCode;
|
|
192
|
+
/** ISO-8601. Defaults to server receive time when omitted. */
|
|
193
|
+
occurredAt?: string;
|
|
194
|
+
}
|
|
195
|
+
export interface UpsellEventsInput {
|
|
196
|
+
channel: Channel;
|
|
197
|
+
placement: string;
|
|
198
|
+
tenant: Tenant;
|
|
199
|
+
sessionId?: string;
|
|
200
|
+
/** Echo `meta.configVersion` from the response being reported on. */
|
|
201
|
+
configVersion?: string;
|
|
202
|
+
events: UpsellEvent[];
|
|
203
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type surface for the platform Upsell API.
|
|
4
|
+
*
|
|
5
|
+
* Two consumer-facing calls: `placements(...)` (which upsell surfaces a
|
|
6
|
+
* channel should render for a tenant) and `suggest(...)` (items for one
|
|
7
|
+
* placement given the live cart). `reportEvents(...)` feeds attach-rate
|
|
8
|
+
* telemetry. Placement config is managed via the service-actor-only
|
|
9
|
+
* admin methods.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Vwc2VsbC9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUeXBlIHN1cmZhY2UgZm9yIHRoZSBwbGF0Zm9ybSBVcHNlbGwgQVBJLlxuICpcbiAqIFR3byBjb25zdW1lci1mYWNpbmcgY2FsbHM6IGBwbGFjZW1lbnRzKC4uLilgICh3aGljaCB1cHNlbGwgc3VyZmFjZXMgYVxuICogY2hhbm5lbCBzaG91bGQgcmVuZGVyIGZvciBhIHRlbmFudCkgYW5kIGBzdWdnZXN0KC4uLilgIChpdGVtcyBmb3Igb25lXG4gKiBwbGFjZW1lbnQgZ2l2ZW4gdGhlIGxpdmUgY2FydCkuIGByZXBvcnRFdmVudHMoLi4uKWAgZmVlZHMgYXR0YWNoLXJhdGVcbiAqIHRlbGVtZXRyeS4gUGxhY2VtZW50IGNvbmZpZyBpcyBtYW5hZ2VkIHZpYSB0aGUgc2VydmljZS1hY3Rvci1vbmx5XG4gKiBhZG1pbiBtZXRob2RzLlxuICovXG5cbmV4cG9ydCB0eXBlIENoYW5uZWwgPSAnbW9iaWxlX2FwcCcgfCAna2lvc2snIHwgJ3doaXRlbGFiZWxfd2ViJyB8ICd3aGF0c2FwcCcgfCAndm9pY2UnO1xuXG4vKipcbiAqIEEgbW9tZW50IGluIHRoZSBjdXN0b21lciBqb3VybmV5IOKAlCB0aGUgdW5pdCBvZiBwbGF0Zm9ybSBwb2xpY3lcbiAqIChwcmljZSBiYW5kLCBtYXggaXRlbXMsIGFuZCBsYXRlciB0aGUgc2lnbmFsIHdlaWdodCBwcm9maWxlKS4gQVxuICogcGxhY2VtZW50IGlzIGEgY2hhbm5lbCdzIGpvdXJuZXkgbGFiZWwgcG9pbnRpbmcgYXQgb25lIG9mIHRoZXNlLlxuICovXG5leHBvcnQgdHlwZSBUb3VjaHBvaW50ID1cbiAgfCAnaG9tZSdcbiAgfCAnbWVudV9icm93c2luZydcbiAgfCAnbWVudV9jb21wb3NpbmcnXG4gIHwgJ3NlYXJjaF9ub19yZXN1bHQnXG4gIHwgJ2NhcnQnXG4gIHwgJ3ByZV9jaGVja291dCdcbiAgfCAncG9zdF9vcmRlcic7XG5cbi8qKlxuICogUmVuZGVyaW5nIGhpbnQsIG93bmVkIGJ5IHRoZSBjaGFubmVsIGZyb250ZW5kIOKAlCB0aGUgcGxhdGZvcm0gbmV2ZXJcbiAqIGludGVycHJldHMgaXQuIEtub3duIHZhbHVlcyBhcmUgbGlzdGVkIGZvciBlZGl0b3IgY29tcGxldGlvbiwgYnV0IGFueVxuICogbG93ZXJjYXNlIGlkZW50aWZpZXIgaXMgdmFsaWQgc28gbmV3IGxheW91dHMgbmVlZCBubyBTREsgcmVsZWFzZS5cbiAqL1xuZXhwb3J0IHR5cGUgS25vd25MYXlvdXQgPVxuICB8ICdjYXJvdXNlbF8ydXAnXG4gIHwgJ2hvcml6b250YWxfY2Fyb3VzZWwnXG4gIHwgJ2dyaWRfMnhuX21vZGFsJ1xuICB8ICdjYXJvdXNlbF8xdXAnXG4gIHwgJ3ZlcnRpY2FsX2xpc3QnXG4gIHwgJ2dyaWRfM3huJ1xuICB8ICdjb21wYWN0X2xpc3QnXG4gIHwgJ2hlcm9fYmFubmVyJztcblxuZXhwb3J0IHR5cGUgTGF5b3V0ID0gS25vd25MYXlvdXQgfCAoc3RyaW5nICYge30pO1xuXG4vKiogV2h5IGFuIGl0ZW0gd2FzIHJlY29tbWVuZGVkLiBDaGFubmVscyByZW5kZXIgdGhlc2UgaW4gY3VzdG9tZXIgbGFuZ3VhZ2UuICovXG5leHBvcnQgdHlwZSBSZWFzb25Db2RlID1cbiAgfCAncG9wdWxhcl9ub3cnXG4gIHwgJ2NvbXBsZXRlc19tZWFsJ1xuICB8ICdvZnRlbl9vcmRlcmVkX3RvZ2V0aGVyJ1xuICB8ICd5b3VyX3VzdWFsJ1xuICB8ICdjaGVmc19waWNrJztcblxuLyoqIFdoaWNoIHJ1bmcgb2YgdGhlIHJlc29sdXRpb24gbGFkZGVyIGFuc3dlcmVkIHRoZSByZXF1ZXN0LiAqL1xuZXhwb3J0IHR5cGUgTGFkZGVyUnVuZyA9XG4gIHwgJ2Z1bGxfZW5naW5lJ1xuICB8ICdiYW5kX3JlbGF4YXRpb24nXG4gIHwgJ3BvcHVsYXJpdHlfZmxvb3InXG4gIHwgJ2JhY2t1cF9zdWdnZXN0aW9ucydcbiAgfCAnZW1wdHlfZGVncmFkZWQnO1xuXG5leHBvcnQgdHlwZSBVcHNlbGxTdHJhdGVneSA9ICdtZW51LW9yZGVyLXBvcHVsYXJpdHknIHwgJ2xlZ2FjeS1jYXRhbG9nLXNhbXBsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VtZW50RGlzcGxheSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIC8qKiBSZXF1ZXN0ZWQgY291bnQuIFRvdWNocG9pbnQgcG9saWN5IG1heSBjYXAgaXQgbG93ZXIg4oCUIHNlZSBgbWV0YS5tYXhJdGVtc2AuICovXG4gIG1heEl0ZW1zOiBudW1iZXI7XG4gIGxheW91dDogTGF5b3V0O1xufVxuXG4vKiogUmVzb2x2ZWQgcHVibGljIHBsYWNlbWVudCAoYnVzaW5lc3Mgb3ZlcnJpZGUgPiBicmFuZCA+IHBsYXRmb3JtIGRlZmF1bHQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGFjZW1lbnQge1xuICBrZXk6IHN0cmluZztcbiAgY2hhbm5lbDogQ2hhbm5lbDtcbiAgdG91Y2hwb2ludDogVG91Y2hwb2ludDtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgZGlzcGxheTogUGxhY2VtZW50RGlzcGxheTtcbiAgY29uZmlnVmVyc2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbmFudCB7XG4gIHBhcmVudElkOiBudW1iZXI7XG4gIGJ1c2luZXNzSWQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXJ0SXRlbSB7XG4gIGl0ZW1JZDogbnVtYmVyO1xuICBxdHk6IG51bWJlcjtcbiAgdW5pdFByaWNlOiBudW1iZXI7XG4gIC8qKiBPcHRpb25hbDsgbGV0cyB0aGUgZGlldGFyeSBnYXRlIGFuZCBjYXRlZ29yeSBuby1yZXBlYXQgc2VlIGNhcnQgY29udGVudHMuICovXG4gIGl0ZW1TbHVnPzogc3RyaW5nO1xuICBzZWN0aW9uTmFtZT86IHN0cmluZztcbiAgLyoqIExlZ2FjeSB2ZWdOb252ZWdCb3RoIGZsYWc6IDEgdmVnLCAyIG5vbi12ZWcsIDMgYm90aC9lZ2cuICovXG4gIHZlZz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXJ0IHtcbiAgaXRlbXM6IENhcnRJdGVtW107XG4gIHN1YnRvdGFsOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VnZ2VzdGlvbnNJbnB1dCB7XG4gIGNoYW5uZWw6IENoYW5uZWw7XG4gIHBsYWNlbWVudDogc3RyaW5nO1xuICB0ZW5hbnQ6IFRlbmFudDtcbiAgY29udGV4dDoge1xuICAgIGNhcnQ6IENhcnQ7XG4gICAgZnVsZmlsbWVudE1vZGU/OiAnZGVsaXZlcnknIHwgJ3BpY2t1cCcgfCAnZGluZV9pbic7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWw7IHVudXNlZCBieSB0aGUgdjEgc2NvcmVycy4gSW4gdGhlIGNvbnRyYWN0IGZyb20gZGF5IG9uZVxuICAgICAqIHNvIHBlcnNvbmFsaXphdGlvbiBsYW5kcyB3aXRob3V0IGEgYnJlYWsuIGBpZGAgTVVTVCBiZSB0aGUgb3BhcXVlXG4gICAgICogcGxhdGZvcm0gY3VzdG9tZXIgaWQsIG5ldmVyIGEgbW9iaWxlIG51bWJlci5cbiAgICAgKi9cbiAgICBjdXN0b21lcj86IHsgaWQ6IHN0cmluZyB9O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsOyBub3QgeWV0IGFjdGVkIG9uLiBJbXByZXNzaW9uIGZhdGlndWUgaXMgc2Vzc2lvbi1zY29wZWRcbiAgICAgKiBhbmQgc2hhcmVkIGFjcm9zcyB0b3VjaHBvaW50cyDigJQgc2VuZCBpdCBub3cgc28gY2hhbm5lbHNcbiAgICAgKiBpbnN0cnVtZW50IG9uY2UgcmF0aGVyIHRoYW4gdHdpY2UuXG4gICAgICovXG4gICAgc2Vzc2lvbklkPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwc2VsbEl0ZW0ge1xuICBpdGVtSWQ6IG51bWJlcjtcbiAgaXRlbU5hbWU6IHN0cmluZztcbiAgaXRlbVNsdWc6IHN0cmluZyB8IG51bGw7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBzZWN0aW9uSWQ6IG51bWJlciB8IG51bGw7XG4gIHNlY3Rpb25OYW1lOiBzdHJpbmcgfCBudWxsO1xuICAvKiogU2VsbGluZyBwcmljZSAoSU5SKS4gKi9cbiAgcHJpY2U6IG51bWJlcjtcbiAgaW1hZ2U6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSYXcgbGVnYWN5IGB2ZWdOb252ZWdCb3RoYCBmbGFnLCBwYXNzZWQgdGhyb3VnaCB1bnRyYW5zbGF0ZWQuICovXG4gIHZlZzogbnVtYmVyIHwgbnVsbDtcbiAgYnJhbmRJZDogbnVtYmVyIHwgbnVsbDtcbiAgcmVhc29uQ29kZTogUmVhc29uQ29kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWdnZXN0aW9uc1Jlc3VsdCB7XG4gIHBsYWNlbWVudDogc3RyaW5nO1xuICB0b3VjaHBvaW50OiBUb3VjaHBvaW50O1xuICBpdGVtczogVXBzZWxsSXRlbVtdO1xuICBtZXRhOiB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBzdHJhdGVneTogVXBzZWxsU3RyYXRlZ3k7XG4gICAgY29uZmlnVmVyc2lvbjogc3RyaW5nO1xuICAgIC8qKiBXaGljaCBsYWRkZXIgcnVuZyBwcm9kdWNlZCB0aGVzZSBpdGVtcy4gKi9cbiAgICBydW5nOiBMYWRkZXJSdW5nO1xuICAgIC8qKiBFZmZlY3RpdmUgY2FwIGFwcGxpZWQ6IG1pbihkaXNwbGF5Lm1heEl0ZW1zLCB0b3VjaHBvaW50IHBvbGljeSkuICovXG4gICAgbWF4SXRlbXM6IG51bWJlcjtcbiAgICAvKiogSG93IGxvbmcgdGhlIGNsaWVudCBtYXkgcmV1c2UgdGhpcyByZXNwb25zZSwgaW4gc2Vjb25kcy4gKi9cbiAgICB0dGxTZWNvbmRzOiBudW1iZXI7XG4gICAgLyoqIFRydWUgd2hlbiB0aGUgY2FuZGlkYXRlIHNvdXJjZSBmYWlsZWQgYW5kIHRoZSBzZXJ2aWNlIGRlZ3JhZGVkIHRvIGVtcHR5LiAqL1xuICAgIGRlZ3JhZGVkPzogYm9vbGVhbjtcbiAgfTtcbn1cblxuLyoqIE1lcmNoYW50LWNvbnRyb2xsZWQgc2VsZWN0aW9uIGlucHV0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyYXRlZ3lQYXJhbXMge1xuICBpbmNsdWRlZEl0ZW1TbHVncz86IHN0cmluZ1tdO1xuICBpbmNsdWRlZFNlY3Rpb25zPzogc3RyaW5nW107XG4gIGV4Y2x1ZGVkU2VjdGlvbnM/OiBzdHJpbmdbXTtcbiAgLyoqIFwiTmV2ZXIgU3VnZ2VzdCBUaGVzZVwiIOKAlCBhYnNvbHV0ZSwgb3ZlcnJpZGVzIHRoZSBwcmlvcml0eSBsaXN0LiAqL1xuICBuZXZlclN1Z2dlc3RJdGVtU2x1Z3M/OiBzdHJpbmdbXTtcbiAgLyoqIFwiTXkgUHJpb3JpdHkgSXRlbXNcIiDigJQgb2NjdXB5IHJlc2VydmVkIHNsb3RzIGFoZWFkIG9mIHNjb3JlZCBpdGVtcy4gKi9cbiAgcHJpb3JpdHlJdGVtU2x1Z3M/OiBzdHJpbmdbXTtcbiAgLyoqIFwiQmFja3VwIFN1Z2dlc3Rpb25zXCIg4oCUIDItNiBpdGVtcywgc2VydmVkIHdoZW4gZXZlcnl0aGluZyBlbHNlIGlzIGVtcHR5LiAqL1xuICBiYWNrdXBJdGVtU2x1Z3M/OiBzdHJpbmdbXTtcbiAgZXhjbHVkZUNhcnRJdGVtcz86IGJvb2xlYW47XG4gIG1heFByaWNlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBQbGFjZW1lbnRTY29wZSA9ICdkZWZhdWx0JyB8ICd0ZW5hbnQnIHwgJ2J1c2luZXNzJztcblxuLyoqIFJhdyBhZG1pbi1wbGFuZSBjb25maWcgcm93IChubyBwcmVjZWRlbmNlIG1lcmdlIGFwcGxpZWQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGFjZW1lbnRSZWNvcmQge1xuICBzY29wZTogUGxhY2VtZW50U2NvcGU7XG4gIHBhcmVudElkPzogbnVtYmVyO1xuICBidXNpbmVzc0lkPzogbnVtYmVyO1xuICBjaGFubmVsOiBDaGFubmVsO1xuICBrZXk6IHN0cmluZztcbiAgdG91Y2hwb2ludDogVG91Y2hwb2ludDtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgZGlzcGxheTogUGxhY2VtZW50RGlzcGxheTtcbiAgc3RyYXRlZ3k6IFVwc2VsbFN0cmF0ZWd5O1xuICBzdHJhdGVneVBhcmFtczogU3RyYXRlZ3lQYXJhbXM7XG4gIGNvbmZpZ1ZlcnNpb246IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRCeTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFkbWluIHVwc2VydC4gU2NvcGUgaXMgZGVyaXZlZDogbm8gcGFyZW50SWQg4oaSIHBsYXRmb3JtIGRlZmF1bHQ7XG4gKiBwYXJlbnRJZCBvbmx5IOKGkiBicmFuZCByb3c7IHBhcmVudElkICsgYnVzaW5lc3NJZCDihpIgYnVzaW5lc3Mgb3ZlcnJpZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VtZW50VXBzZXJ0SW5wdXQge1xuICBwYXJlbnRJZD86IG51bWJlcjtcbiAgYnVzaW5lc3NJZD86IG51bWJlcjtcbiAgY2hhbm5lbDogQ2hhbm5lbDtcbiAga2V5OiBzdHJpbmc7XG4gIHRvdWNocG9pbnQ6IFRvdWNocG9pbnQ7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGRpc3BsYXk6IFBsYWNlbWVudERpc3BsYXk7XG4gIHN0cmF0ZWd5PzogVXBzZWxsU3RyYXRlZ3k7XG4gIHN0cmF0ZWd5UGFyYW1zPzogU3RyYXRlZ3lQYXJhbXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VtZW50RGVsZXRlSW5wdXQge1xuICBwYXJlbnRJZD86IG51bWJlcjtcbiAgYnVzaW5lc3NJZD86IG51bWJlcjtcbiAgY2hhbm5lbDogQ2hhbm5lbDtcbiAga2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBSZXF1aXJlZCBieSB0aGUgc2VydmVyIHdoZW4gYHBhcmVudElkYCBpcyBvbWl0dGVkLCBiZWNhdXNlIHRoYXQgY2FsbFxuICAgKiB0YXJnZXRzIHRoZSBQTEFURk9STSBERUZBVUxUIHJvdyBhbmQgc28gcmVtb3ZlcyB0aGUgcGxhY2VtZW50IGZvclxuICAgKiBldmVyeSB0ZW5hbnQgdGhhdCBoYXMgbm90IG92ZXJyaWRkZW4gaXQuIFdpdGhvdXQgdGhpcyB0aGUgc2VydmVyXG4gICAqIHJlamVjdHMgdGhlIHJlcXVlc3Qgd2l0aCA0MDAgcmF0aGVyIHRoYW4gZ3Vlc3NpbmcgdGhhdCBhIG1pc3NpbmdcbiAgICogcGFyZW50SWQgd2FzIGRlbGliZXJhdGUuXG4gICAqXG4gICAqIERlbGliZXJhdGVseSBub3QgZGVmYXVsdGVkIHRvIGB0cnVlYCBoZXJlOiB0aGUgd2hvbGUgcG9pbnQgb2YgdGhlXG4gICAqIGZsYWcgaXMgdGhhdCBkZWxldGluZyBhIGRlZmF1bHQgbXVzdCBiZSBzdGF0ZWQsIG5vdCBpbmZlcnJlZCBmcm9tXG4gICAqIHRoZSBzaGFwZSBvZiB0aGUgY2FsbC5cbiAgICovXG4gIGNvbmZpcm1EZWxldGVEZWZhdWx0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFjZW1lbnRzUXVlcnkge1xuICBjaGFubmVsOiBDaGFubmVsO1xuICBwYXJlbnRJZDogbnVtYmVyO1xuICBidXNpbmVzc0lkOiBudW1iZXI7XG59XG5cbi8vIOKUgOKUgOKUgCBBdHRhY2gtcmF0ZSB0ZWxlbWV0cnkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbmV4cG9ydCB0eXBlIFVwc2VsbEV2ZW50VHlwZSA9ICdzaG93bicgfCAnYWRkZWQnIHwgJ2lnbm9yZWQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwc2VsbEV2ZW50IHtcbiAgdHlwZTogVXBzZWxsRXZlbnRUeXBlO1xuICBpdGVtSWQ6IG51bWJlcjtcbiAgcmVhc29uQ29kZT86IFJlYXNvbkNvZGU7XG4gIC8qKiBJU08tODYwMS4gRGVmYXVsdHMgdG8gc2VydmVyIHJlY2VpdmUgdGltZSB3aGVuIG9taXR0ZWQuICovXG4gIG9jY3VycmVkQXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBzZWxsRXZlbnRzSW5wdXQge1xuICBjaGFubmVsOiBDaGFubmVsO1xuICBwbGFjZW1lbnQ6IHN0cmluZztcbiAgdGVuYW50OiBUZW5hbnQ7XG4gIHNlc3Npb25JZD86IHN0cmluZztcbiAgLyoqIEVjaG8gYG1ldGEuY29uZmlnVmVyc2lvbmAgZnJvbSB0aGUgcmVzcG9uc2UgYmVpbmcgcmVwb3J0ZWQgb24uICovXG4gIGNvbmZpZ1ZlcnNpb24/OiBzdHJpbmc7XG4gIGV2ZW50czogVXBzZWxsRXZlbnRbXTtcbn1cbiJdfQ==
|
package/dist/version.d.ts
CHANGED
|
@@ -4,5 +4,11 @@
|
|
|
4
4
|
* value from package.json at runtime would require either a JSON import
|
|
5
5
|
* (TS lib settings dependent) or a build-time replacement, and the
|
|
6
6
|
* cost of one bump-in-two-places per release is small.
|
|
7
|
+
*
|
|
8
|
+
* That cost was underestimated once: the publish job verifies
|
|
9
|
+
* package.json against the release tag but never reads this file, so the
|
|
10
|
+
* two drifted and 1.0.0 shipped reporting 0.9.1. A test now pins them
|
|
11
|
+
* together (`test/upsell/client.test.ts`), so forgetting this bump fails
|
|
12
|
+
* the build instead of the User-Agent.
|
|
7
13
|
*/
|
|
8
|
-
export declare const SDK_VERSION = "0.
|
|
14
|
+
export declare const SDK_VERSION = "2.0.0";
|
package/dist/version.js
CHANGED
|
@@ -7,6 +7,12 @@ exports.SDK_VERSION = void 0;
|
|
|
7
7
|
* value from package.json at runtime would require either a JSON import
|
|
8
8
|
* (TS lib settings dependent) or a build-time replacement, and the
|
|
9
9
|
* cost of one bump-in-two-places per release is small.
|
|
10
|
+
*
|
|
11
|
+
* That cost was underestimated once: the publish job verifies
|
|
12
|
+
* package.json against the release tag but never reads this file, so the
|
|
13
|
+
* two drifted and 1.0.0 shipped reporting 0.9.1. A test now pins them
|
|
14
|
+
* together (`test/upsell/client.test.ts`), so forgetting this bump fails
|
|
15
|
+
* the build instead of the User-Agent.
|
|
10
16
|
*/
|
|
11
|
-
exports.SDK_VERSION = '0.
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
exports.SDK_VERSION = '2.0.0';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUNVLFFBQUEsV0FBVyxHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFudWFsbHktbWFpbnRhaW5lZCB2ZXJzaW9uIHN0cmluZyBzdXJmYWNlZCB2aWEgdGhlIGBVc2VyLUFnZW50YFxuICogaGVhZGVyLiBLZXB0IGluIHN5bmMgd2l0aCBgcGFja2FnZS5qc29uYCBieSBoYW5kIGJlY2F1c2UgcHVsbGluZyB0aGVcbiAqIHZhbHVlIGZyb20gcGFja2FnZS5qc29uIGF0IHJ1bnRpbWUgd291bGQgcmVxdWlyZSBlaXRoZXIgYSBKU09OIGltcG9ydFxuICogKFRTIGxpYiBzZXR0aW5ncyBkZXBlbmRlbnQpIG9yIGEgYnVpbGQtdGltZSByZXBsYWNlbWVudCwgYW5kIHRoZVxuICogY29zdCBvZiBvbmUgYnVtcC1pbi10d28tcGxhY2VzIHBlciByZWxlYXNlIGlzIHNtYWxsLlxuICpcbiAqIFRoYXQgY29zdCB3YXMgdW5kZXJlc3RpbWF0ZWQgb25jZTogdGhlIHB1Ymxpc2ggam9iIHZlcmlmaWVzXG4gKiBwYWNrYWdlLmpzb24gYWdhaW5zdCB0aGUgcmVsZWFzZSB0YWcgYnV0IG5ldmVyIHJlYWRzIHRoaXMgZmlsZSwgc28gdGhlXG4gKiB0d28gZHJpZnRlZCBhbmQgMS4wLjAgc2hpcHBlZCByZXBvcnRpbmcgMC45LjEuIEEgdGVzdCBub3cgcGlucyB0aGVtXG4gKiB0b2dldGhlciAoYHRlc3QvdXBzZWxsL2NsaWVudC50ZXN0LnRzYCksIHNvIGZvcmdldHRpbmcgdGhpcyBidW1wIGZhaWxzXG4gKiB0aGUgYnVpbGQgaW5zdGVhZCBvZiB0aGUgVXNlci1BZ2VudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFNES19WRVJTSU9OID0gJzIuMC4wJztcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uengage.io/platform-sdk",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Client SDK for the uEngage platform API (audit, business, zones, wallet, auth, events). Single createClient(...) factory; OAuth2 client_credentials, static Bearer, or legacy session-token auth modes. Browser-safe realtime client at the /realtime subpath.",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Client SDK for the uEngage platform API (audit, business, zones, wallet, upsell, auth, events). Single createClient(...) factory; OAuth2 client_credentials, static Bearer, or legacy session-token auth modes. Browser-safe realtime client at the /realtime subpath.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"exports": {
|