@uengage.io/platform-sdk 0.12.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -4
- package/dist/client.d.ts +2 -0
- package/dist/client.js +4 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/wallet/client.d.ts +65 -0
- package/dist/wallet/client.js +223 -0
- package/dist/wallet/index.d.ts +3 -0
- package/dist/wallet/index.js +15 -0
- package/dist/wallet/schema.d.ts +132 -0
- package/dist/wallet/schema.js +3 -0
- package/dist/wallet/services.d.ts +15 -0
- package/dist/wallet/services.js +18 -0
- package/dist/zones/client.d.ts +5 -1
- package/dist/zones/client.js +50 -1
- package/dist/zones/schema.d.ts +21 -0
- package/dist/zones/schema.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
# @uengage.io/platform-sdk
|
|
2
2
|
|
|
3
|
-
Client SDK for uEngage platform services. One factory (`createClient`) returns a `PlatformClient` exposing `business`, `audit`, and `auth`. No singletons, no module-level state
|
|
4
|
-
|
|
5
|
-
CDK constructs live in a separate package: `@uengage/platform-constructs`.
|
|
3
|
+
Client SDK for uEngage platform services. One factory (`createClient`) returns a `PlatformClient` exposing `business`, `audit`, `zones`, `wallet`, and `auth`. No singletons, no module-level state - each consumer constructs its own client with explicit config.
|
|
6
4
|
|
|
7
5
|
## Quick start
|
|
8
6
|
|
|
9
7
|
```ts
|
|
10
|
-
import { createClient } from '@uengage.io/platform-sdk';
|
|
8
|
+
import { createClient, Services } from '@uengage.io/platform-sdk';
|
|
11
9
|
|
|
12
10
|
// No args: read everything from UENGAGE_* env vars (baseUrl, service
|
|
13
11
|
// credentials or auth token, etc.). Convenient for Lambdas where the
|
|
@@ -25,6 +23,16 @@ const explicit = createClient({
|
|
|
25
23
|
|
|
26
24
|
const acme = await client.business.get(123, { groups: ['profile'] });
|
|
27
25
|
|
|
26
|
+
// Wallet (requires a service token with the relevant wallet.* scope).
|
|
27
|
+
// getWallet(...) is a lightweight handle; operations resolve the wallet
|
|
28
|
+
// lazily and name the wallet that answered. forceChildWallet:true reads/
|
|
29
|
+
// charges the business's own wallet regardless of parent-funding routing.
|
|
30
|
+
const wallet = client.wallet.getWallet({ id: 'business:123' });
|
|
31
|
+
const { balance, balanceMinor, currency } = await wallet.getBalance();
|
|
32
|
+
// wallet.getInstance() / wallet.getCurrency() — wallet identity + currency, without the balance
|
|
33
|
+
// wallet.debit({ referenceId, amountMinor, service: Services.WHATSAPP, description }) — idempotent on referenceId
|
|
34
|
+
// wallet.credit({ ..., reversalOf }) for refunds; wallet.listTransactions({...}); wallet.getTransaction(id)
|
|
35
|
+
|
|
28
36
|
client.audit.record({
|
|
29
37
|
event_type: 'business.updated',
|
|
30
38
|
tenant: { id: 'biz_123', parent_id: null },
|
package/dist/client.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type AuditClient } from './audit/client';
|
|
2
2
|
import { type BusinessClient } from './business/client';
|
|
3
3
|
import { type ZonesClient } from './zones/client';
|
|
4
|
+
import { type WalletClient } from './wallet/client';
|
|
4
5
|
import { auth as authNamespace } from './auth';
|
|
5
6
|
/**
|
|
6
7
|
* Caller-facing config for `createClient(...)`.
|
|
@@ -94,6 +95,7 @@ export interface PlatformClient {
|
|
|
94
95
|
business: BusinessClient;
|
|
95
96
|
audit: AuditClient;
|
|
96
97
|
zones: ZonesClient;
|
|
98
|
+
wallet: WalletClient;
|
|
97
99
|
auth: typeof authNamespace;
|
|
98
100
|
/**
|
|
99
101
|
* Resolve the current access token, minting via the configured auth
|
package/dist/client.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.createClient = createClient;
|
|
|
4
4
|
const client_1 = require("./audit/client");
|
|
5
5
|
const client_2 = require("./business/client");
|
|
6
6
|
const client_3 = require("./zones/client");
|
|
7
|
+
const client_4 = require("./wallet/client");
|
|
7
8
|
const auth_1 = require("./auth");
|
|
8
9
|
const token_source_1 = require("./token-source");
|
|
9
10
|
const errors_1 = require("./errors");
|
|
@@ -33,10 +34,12 @@ function buildClient(input) {
|
|
|
33
34
|
actorVia: input.actorVia ?? input.serviceId,
|
|
34
35
|
});
|
|
35
36
|
const zonesClient = (0, client_3.createZonesClient)({ baseUrl, fetchFn: input.fetchFn, auth });
|
|
37
|
+
const walletClient = (0, client_4.createWalletClient)({ baseUrl, fetchFn: input.fetchFn, auth });
|
|
36
38
|
return {
|
|
37
39
|
business: businessClient,
|
|
38
40
|
audit: auditClient,
|
|
39
41
|
zones: zonesClient,
|
|
42
|
+
wallet: walletClient,
|
|
40
43
|
auth: auth_1.auth,
|
|
41
44
|
getAccessToken: async () => {
|
|
42
45
|
if (!tokenSourceState) {
|
|
@@ -240,4 +243,4 @@ function warnIfBrowserSecret(config) {
|
|
|
240
243
|
'Use `authToken` (a Bearer obtained via OAuth) or `sessionToken` instead.');
|
|
241
244
|
}
|
|
242
245
|
}
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTZIQSxvQ0FJQztBQWpJRCwyQ0FBcUU7QUFDckUsOENBQThFO0FBQzlFLDJDQUFxRTtBQUNyRSxpQ0FBK0M7QUFDL0MsaURBSXdCO0FBQ3hCLHFDQUE0RDtBQTRHNUQsTUFBTSxnQkFBZ0IsR0FBRyxpQ0FBaUMsQ0FBQztBQUUzRDs7Ozs7R0FLRztBQUNILFNBQWdCLFlBQVksQ0FBQyxRQUFzQixFQUFFO0lBQ25ELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBbUI7SUFDdEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQztJQUNsRCxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxNQUFNLElBQUksR0FBNkIsZ0JBQWdCO1FBQ3JELENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1FBQ25ELENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFZCxNQUFNLGNBQWMsR0FBRyxJQUFBLDZCQUFvQixFQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkYsTUFBTSxXQUFXLEdBQUcsSUFBQSwwQkFBaUIsRUFBQztRQUNwQyxPQUFPO1FBQ1AsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLElBQUk7UUFDSixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsU0FB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RUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUk7WUFDckQsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUMvQixRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRO1NBQ2hDLEVBQ0QsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUNqRSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLE1BQW9CO0lBQy9DLE1BQU0sQ0FBQyxHQUFHLFVBQWlELENBQUM7SUFDNUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLFdBQVcsQ0FBQztJQUM5RixJQUFJLENBQUMsU0FBUztRQUFFLE9BQU87SUFDdkIsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLElBQUksQ0FDVixtRkFBbUY7WUFDakYsK0RBQStEO1lBQy9ELDBFQUEwRSxDQUM3RSxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVBdWRpdENsaWVudCwgdHlwZSBBdWRpdENsaWVudCB9IGZyb20gJy4vYXVkaXQvY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUJ1c2luZXNzQ2xpZW50LCB0eXBlIEJ1c2luZXNzQ2xpZW50IH0gZnJvbSAnLi9idXNpbmVzcy9jbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlWm9uZXNDbGllbnQsIHR5cGUgWm9uZXNDbGllbnQgfSBmcm9tICcuL3pvbmVzL2NsaWVudCc7XG5pbXBvcnQgeyBhdXRoIGFzIGF1dGhOYW1lc3BhY2UgfSBmcm9tICcuL2F1dGgnO1xuaW1wb3J0IHtcbiAgZ2V0QWNjZXNzVG9rZW4gYXMgcmVzb2x2ZUFjY2Vzc1Rva2VuLFxuICBtYWtlVG9rZW5Tb3VyY2VTdGF0ZSxcbiAgdHlwZSBUb2tlblNvdXJjZVN0YXRlLFxufSBmcm9tICcuL3Rva2VuLXNvdXJjZSc7XG5pbXBvcnQgeyBDb25maWdFcnJvciwgQXV0aGVudGljYXRpb25FcnJvciB9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB0eXBlIHsgUGxhdGZvcm1BdXRoIH0gZnJvbSAnLi9jb25maWcnO1xuXG4vKipcbiAqIENhbGxlci1mYWNpbmcgY29uZmlnIGZvciBgY3JlYXRlQ2xpZW50KC4uLilgLlxuICpcbiAqIGBjcmVhdGVDbGllbnQoKWAgKG5vIGFyZ3MpIHJlYWRzIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgc3RhbmRhcmRcbiAqIGBVRU5HQUdFXypgIGVudmlyb25tZW50IHZhcmlhYmxlcyDigJQgY29udmVuaWVudCBmb3IgTGFtYmRhcyB0aGF0XG4gKiBhbHJlYWR5IGhhdmUgdGhlaXIgY29uZmlnIGluamVjdGVkIGJ5IHRoZSBkZXBsb3kgc3RhY2suIEFueSBmaWVsZFxuICogcGFzc2VkIGV4cGxpY2l0bHkgb3ZlcnJpZGVzIHRoZSBtYXRjaGluZyBlbnYgZGVmYXVsdCBmb3IgdGhhdCBvbmVcbiAqIGNhbGwgb25seSAobm8gc2hhcmVkIG11dGFibGUgc3RhdGUsIG5vIHNpbmdsZXRvbikuXG4gKlxuICogQXV0aC1tb2RlIGZpZWxkcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiBQaWNrIG9uZTpcbiAqICAgLSBgc2VydmljZUlkYCArIGBzZXJ2aWNlU2VjcmV0YCAgT0F1dGgyIGNsaWVudF9jcmVkZW50aWFscy5cbiAqICAgLSBgYXV0aFRva2VuYCAgICAgICAgICAgICAgICAgICAgc3RhdGljIEJlYXJlciB0b2tlbiwgb3IgYXN5bmNcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sgdGhhdCByZXR1cm5zIG9uZS5cbiAqICAgLSBgc2Vzc2lvbjoge2lkLCB0b2tlbn1gICAgICAgICAgbGVnYWN5IHVFbmdhZ2UgKGlkLCBhcGlUb2tlbikgL1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWQsIGFkZG9fY29udGFjdHNfbWFwcGluZy50b2tlbilcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFpci4gVGhlIFNESyBwcm9iZXMgdGhlIGJ1c2luZXNzXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cmZhY2UgKHVzZXJzKSBmaXJzdCwgZmFsbHMgYmFja1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgY3VzdG9tZXIgc3VyZmFjZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWRkb19jb250YWN0c19tYXBwaW5nKSBpZiB0aGVcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVzaW5lc3MgcHJvYmUgcmV0dXJuc1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaW52YWxpZF9ncmFudGAsIGFuZCBjYWNoZXMgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdGluZyBKV1QuXG4gKlxuICogUGFzc2luZyBtb3JlIHRoYW4gb25lIGV4cGxpY2l0bHkgaXMgYSBgQ29uZmlnRXJyb3JgLiBQYXNzaW5nIGFueSBvbmVcbiAqIG9mIHRoZW0gc3VwcHJlc3NlcyBldmVyeSBlbnYtZGVyaXZlZCBhdXRoIGRlZmF1bHQsIHNvIGEgY2FsbGVyJ3NcbiAqIGV4cGxpY2l0IG92ZXJyaWRlIGlzIG5ldmVyIHNpbGVudGx5IG1lcmdlZCB3aXRoIGVudiBjcmVkZW50aWFscyBvZlxuICogYSBkaWZmZXJlbnQgbW9kZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbGllbnRDb25maWcge1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICAvKipcbiAgICogQXV0aCBzdXJmYWNlIGJhc2UgdXNlZCB0byBib290c3RyYXAgdGhlIGZpcnN0IGNsaWVudF9jcmVkZW50aWFsc1xuICAgKiBtaW50LiBEZWZhdWx0cyB0byBgJHtiYXNlVXJsfS9hdXRoL2J1c2luZXNzYC5cbiAgICovXG4gIGF1dGhCYXNlVXJsPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tZXIgYXV0aCBzdXJmYWNlIGJhc2UgdXNlZCBieSBgc2Vzc2lvbmAgZXhjaGFuZ2VzLiBEZWZhdWx0cyB0b1xuICAgKiBgJHtiYXNlVXJsfS9hdXRoL2N1c3RvbWVyYC5cbiAgICovXG4gIGN1c3RvbWVyQXV0aEJhc2VVcmw/OiBzdHJpbmc7XG5cbiAgLy8g4pSA4pSA4pSAIEF1dGggbW9kZXMgKG11dHVhbGx5IGV4Y2x1c2l2ZSkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKiBPQXV0aDIgYGNsaWVudF9jcmVkZW50aWFsc2AgY2xpZW50SWQuIFBhaXIgd2l0aCBgc2VydmljZVNlY3JldGAuICovXG4gIHNlcnZpY2VJZD86IHN0cmluZztcbiAgLyoqIE9BdXRoMiBgY2xpZW50X2NyZWRlbnRpYWxzYCBjbGllbnRTZWNyZXQuIFBhaXIgd2l0aCBgc2VydmljZUlkYC4gKi9cbiAgc2VydmljZVNlY3JldD86IHN0cmluZztcbiAgLyoqIFNwYWNlLXNlcGFyYXRlZCBzY29wZSBsaXN0IHRvIHJlcXVlc3Qgd2hlbiBtaW50aW5nIHZpYSBjbGllbnRfY3JlZGVudGlhbHMuICovXG4gIHNjb3BlPzogc3RyaW5nO1xuICAvKiogU3RhdGljIEJlYXJlciBKV1QsIG9yIGFzeW5jIGNhbGxiYWNrIHRoYXQgcmV0dXJucyBvbmUuICovXG4gIGF1dGhUb2tlbj86IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pO1xuICAvKipcbiAgICogTGVnYWN5IHVFbmdhZ2UgKGlkLCB0b2tlbikgcGFpci4gYGlkYCBpcyBgdXNlcnMudXNlcklkYCBmb3Igc3RhZmZcbiAgICogdXNlcnMgKG1hdGNoZWQgdmlhIHRoZSBidXNpbmVzcyBzdXJmYWNlKSBvclxuICAgKiBgYWRkb19jb250YWN0c19tYXBwaW5nLmlkYC9gY29udGFjdElkYCBmb3IgY3VzdG9tZXJzIChtYXRjaGVkIHZpYVxuICAgKiB0aGUgY3VzdG9tZXIgc3VyZmFjZSkuIFRoZSBTREsgcHJvYmVzIHRoZSBidXNpbmVzcyBzdXJmYWNlIGZpcnN0XG4gICAqIGFuZCBmYWxscyBiYWNrIHRvIGN1c3RvbWVyIG9uIGBpbnZhbGlkX2dyYW50YC5cbiAgICovXG4gIHNlc3Npb24/OiB7IGlkOiBzdHJpbmcgfCBudW1iZXI7IHRva2VuOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIGAoYWNjZXNzVG9rZW4sIHJlZnJlc2hUb2tlbilgIHBhaXIgZnJvbSBhIGZpbmlzaGVkIGxvZ2luIGZsb3dcbiAgICogKGBhdXRoLmxvZ2luV2l0aFBhc3N3b3JkKC4uLilgLCBgYXV0aC52ZXJpZnlPdHAoLi4uKWAsIGV0YykuIFRoZVxuICAgKiBTREsgdXNlcyB0aGUgYWNjZXNzIHRva2VuIHVudGlsIGl0IGV4cGlyZXMsIHRoZW4gcm90YXRlcyB2aWFcbiAgICogYGF1dGgucmVmcmVzaCguLi4pYCB0cmFuc3BhcmVudGx5LiBgb25Sb3RhdGVgIGZpcmVzIGFmdGVyIGV2ZXJ5XG4gICAqIHJvdGF0aW9uIHNvIGNhbGxlcnMgY2FuIHBlcnNpc3QgdGhlIG5ldyBwYWlyLlxuICAgKi9cbiAgdG9rZW5zPzoge1xuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gICAgLyoqIEFjY2VzcyB0b2tlbiBUVEwgKHNlY29uZHMpLCBhcyByZXR1cm5lZCBieSB0aGUgYXV0aCBzdXJmYWNlLiAqL1xuICAgIGV4cGlyZXNJbjogbnVtYmVyO1xuICAgIC8qKiBPQXV0aCBjbGllbnQgaWQgdXNlZCBkdXJpbmcgdGhlIG9yaWdpbmFsIGxvZ2luIChyZXF1aXJlZCBieSB0aGUgcmVmcmVzaCBoYW5kbGVyKS4gKi9cbiAgICBjbGllbnRJZDogc3RyaW5nO1xuICAgIG9uUm90YXRlPzogKHBhaXI6IHtcbiAgICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gICAgICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIH0pID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuICB9O1xuXG4gIC8qKlxuICAgKiBTZXJ2aWNlIGlkZW50aWZpZXIgdGhlIGF1ZGl0IGNsaWVudCBzaG91bGQgc3RhbXAgaW50byBgYWN0b3IudmlhYFxuICAgKiBvbiBlbWl0dGVkIGV2ZW50cy4gRGVmYXVsdHMgdG8gYHNlcnZpY2VJZGAgd2hlbiBzZXQ7IG90aGVyd2lzZVxuICAgKiBhdWRpdCBgcmVjb3JkKClgIGNhbGxzIGxvZyBhbiBlcnJvciBhbmQgZHJvcCB0aGUgZXZlbnQuXG4gICAqL1xuICBhY3RvclZpYT86IHN0cmluZztcbiAgZXhwaXJ5QnVmZmVyTXM/OiBudW1iZXI7XG4gIGZldGNoRm4/OiB0eXBlb2YgZmV0Y2g7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1DbGllbnQge1xuICBidXNpbmVzczogQnVzaW5lc3NDbGllbnQ7XG4gIGF1ZGl0OiBBdWRpdENsaWVudDtcbiAgem9uZXM6IFpvbmVzQ2xpZW50O1xuICBhdXRoOiB0eXBlb2YgYXV0aE5hbWVzcGFjZTtcbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIGN1cnJlbnQgYWNjZXNzIHRva2VuLCBtaW50aW5nIHZpYSB0aGUgY29uZmlndXJlZCBhdXRoXG4gICAqIG1vZGUgaWYgdGhlIGNhY2hlIGlzIGNvbGQuIFVzZWZ1bCBmb3IgYGF1dGgudmVyaWZ5QWNjZXNzVG9rZW4oLi4uKWBcbiAgICogcm91bmQtdHJpcHMgYW5kIGZvciBjYWxsZXJzIHRoYXQgd2FudCB0byBsb2cgLyBmb3J3YXJkIHRoZSBiZWFyZXJcbiAgICogdG8gYSBkb3duc3RyZWFtIHNlcnZpY2UuXG4gICAqXG4gICAqIFRocm93cyBgQ29uZmlnRXJyb3JgIHdoZW4gdGhlIGNsaWVudCB3YXMgYnVpbHQgd2l0aCBubyBhdXRoIG1vZGUuXG4gICAqL1xuICBnZXRBY2Nlc3NUb2tlbigpOiBQcm9taXNlPHN0cmluZz47XG59XG5cbmNvbnN0IERFRkFVTFRfQkFTRV9VUkwgPSAnaHR0cHM6Ly9hcGkucGxhdGZvcm0udWVuZ2FnZS5pbyc7XG5cbi8qKlxuICogQnVpbGQgYSBmcmVzaCwgaXNvbGF0ZWQgY2xpZW50LiBXaXRoIG5vIGFyZ3MsIHJlYWRzIGBVRU5HQUdFXypgXG4gKiBlbnYgdmFyczsgZXhwbGljaXQgZmllbGRzIG92ZXJyaWRlIHBlciBjYWxsLiBFYWNoIGNhbGwgZ2V0cyBpdHMgb3duXG4gKiBUb2tlblNvdXJjZSBzdGF0ZSDigJQgY29uY3VycmVudCBgY3JlYXRlQ2xpZW50KC4uLilgIHVzZSBkb2VzIG5vdFxuICogc3RhbXBlZGUgdGhlIGNhY2hlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2xpZW50KGlucHV0OiBDbGllbnRDb25maWcgPSB7fSk6IFBsYXRmb3JtQ2xpZW50IHtcbiAgY29uc3QgbWVyZ2VkID0gbWVyZ2VXaXRoRW52KGlucHV0KTtcbiAgd2FybklmQnJvd3NlclNlY3JldChtZXJnZWQpO1xuICByZXR1cm4gYnVpbGRDbGllbnQobWVyZ2VkKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDbGllbnQoaW5wdXQ6IENsaWVudENvbmZpZyk6IFBsYXRmb3JtQ2xpZW50IHtcbiAgY29uc3QgYmFzZVVybCA9IGlucHV0LmJhc2VVcmwgPz8gREVGQVVMVF9CQVNFX1VSTDtcbiAgY29uc3QgdG9rZW5Tb3VyY2VTdGF0ZSA9IHJlc29sdmVUb2tlblNvdXJjZShpbnB1dCwgYmFzZVVybCk7XG4gIGNvbnN0IGF1dGg6IFBsYXRmb3JtQXV0aCB8IHVuZGVmaW5lZCA9IHRva2VuU291cmNlU3RhdGVcbiAgICA/IHsgdHlwZTogJ3Rva2VuLXNvdXJjZScsIHN0YXRlOiB0b2tlblNvdXJjZVN0YXRlIH1cbiAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBidXNpbmVzc0NsaWVudCA9IGNyZWF0ZUJ1c2luZXNzQ2xpZW50KHsgYmFzZVVybCwgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiwgYXV0aCB9KTtcbiAgY29uc3QgYXVkaXRDbGllbnQgPSBjcmVhdGVBdWRpdENsaWVudCh7XG4gICAgYmFzZVVybCxcbiAgICBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLFxuICAgIGF1dGgsXG4gICAgYWN0b3JWaWE6IGlucHV0LmFjdG9yVmlhID8/IGlucHV0LnNlcnZpY2VJZCxcbiAgfSk7XG4gIGNvbnN0IHpvbmVzQ2xpZW50ID0gY3JlYXRlWm9uZXNDbGllbnQoeyBiYXNlVXJsLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLCBhdXRoIH0pO1xuXG4gIHJldHVybiB7XG4gICAgYnVzaW5lc3M6IGJ1c2luZXNzQ2xpZW50LFxuICAgIGF1ZGl0OiBhdWRpdENsaWVudCxcbiAgICB6b25lczogem9uZXNDbGllbnQsXG4gICAgYXV0aDogYXV0aE5hbWVzcGFjZSxcbiAgICBnZXRBY2Nlc3NUb2tlbjogYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCF0b2tlblNvdXJjZVN0YXRlKSB7XG4gICAgICAgIHRocm93IG5ldyBDb25maWdFcnJvcihcbiAgICAgICAgICAnZ2V0QWNjZXNzVG9rZW46IG5vIGF1dGggbW9kZSBjb25maWd1cmVkLiBQYXNzIHtzZXJ2aWNlSWQsIHNlcnZpY2VTZWNyZXR9IHwge2F1dGhUb2tlbn0gfCB7c2Vzc2lvbn0uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlQWNjZXNzVG9rZW4odG9rZW5Tb3VyY2VTdGF0ZSk7XG4gICAgfSxcbiAgfTtcbn1cblxuY29uc3QgQVVUSF9NT0RFX0ZJRUxEUyA9IFtcbiAgJ3NlcnZpY2VJZCcsXG4gICdzZXJ2aWNlU2VjcmV0JyxcbiAgJ3Njb3BlJyxcbiAgJ2F1dGhUb2tlbicsXG4gICdzZXNzaW9uJyxcbiAgJ3Rva2VucycsXG5dIGFzIGNvbnN0O1xuXG4vKipcbiAqIE1lcmdlIGVudi1kZXJpdmVkIGRlZmF1bHRzIHdpdGggdGhlIGNhbGxlcidzIGV4cGxpY2l0IGlucHV0LiBBbnlcbiAqIGV4cGxpY2l0IGF1dGgtbW9kZSBmaWVsZCBzdXBwcmVzc2VzICphbGwqIGVudi1kZXJpdmVkIGF1dGggZGVmYXVsdHMsXG4gKiBzbyBhbiBleHBsaWNpdCBge2F1dGhUb2tlbn1gIG92ZXJyaWRlIGRvZXNuJ3QgYWNjaWRlbnRhbGx5IGluaGVyaXRcbiAqIGBzZXJ2aWNlSWRgL2BzZXJ2aWNlU2VjcmV0YCBmcm9tIGVudi4gTm9uLWF1dGggZmllbGRzIGZhbGwgdGhyb3VnaFxuICogbm9ybWFsbHkgKGNhbGxlciBgYmFzZVVybGAgb3ZlcnJpZGVzIGVudiBiYXNlVXJsOyBhYnNlbnQgaW5wdXQga2VlcHNcbiAqIGVudiBiYXNlVXJsKS5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VXaXRoRW52KGlucHV0OiBDbGllbnRDb25maWcpOiBDbGllbnRDb25maWcge1xuICBjb25zdCBlbnYgPSByZWFkRW52RGVmYXVsdHMoKTtcbiAgY29uc3QgaW5wdXRIYXNBdXRoID0gaW5wdXRIYXNBdXRoTW9kZShpbnB1dCk7XG4gIGNvbnN0IGVudkZvck1lcmdlID0gaW5wdXRIYXNBdXRoID8gd2l0aG91dEF1dGhGaWVsZHMoZW52KSA6IGVudjtcblxuICBjb25zdCBtZXJnZWQ6IENsaWVudENvbmZpZyA9IHtcbiAgICBiYXNlVXJsOiBpbnB1dC5iYXNlVXJsID8/IGVudkZvck1lcmdlLmJhc2VVcmwsXG4gICAgYXV0aEJhc2VVcmw6IGlucHV0LmF1dGhCYXNlVXJsID8/IGVudkZvck1lcmdlLmF1dGhCYXNlVXJsLFxuICAgIGN1c3RvbWVyQXV0aEJhc2VVcmw6IGlucHV0LmN1c3RvbWVyQXV0aEJhc2VVcmwgPz8gZW52Rm9yTWVyZ2UuY3VzdG9tZXJBdXRoQmFzZVVybCxcbiAgICBzZXJ2aWNlSWQ6IGlucHV0LnNlcnZpY2VJZCA/PyBlbnZGb3JNZXJnZS5zZXJ2aWNlSWQsXG4gICAgc2VydmljZVNlY3JldDogaW5wdXQuc2VydmljZVNlY3JldCA/PyBlbnZGb3JNZXJnZS5zZXJ2aWNlU2VjcmV0LFxuICAgIHNjb3BlOiBpbnB1dC5zY29wZSA/PyBlbnZGb3JNZXJnZS5zY29wZSxcbiAgICBhdXRoVG9rZW46IGlucHV0LmF1dGhUb2tlbiA/PyBlbnZGb3JNZXJnZS5hdXRoVG9rZW4sXG4gICAgc2Vzc2lvbjogaW5wdXQuc2Vzc2lvbiA/PyBlbnZGb3JNZXJnZS5zZXNzaW9uLFxuICAgIHRva2VuczogaW5wdXQudG9rZW5zLFxuICAgIGFjdG9yVmlhOiBpbnB1dC5hY3RvclZpYSA/PyBlbnZGb3JNZXJnZS5hY3RvclZpYSxcbiAgICBleHBpcnlCdWZmZXJNczogaW5wdXQuZXhwaXJ5QnVmZmVyTXMgPz8gZW52Rm9yTWVyZ2UuZXhwaXJ5QnVmZmVyTXMsXG4gICAgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbixcbiAgfTtcbiAgYXNzZXJ0RXhhY3RseU9uZUF1dGhNb2RlKG1lcmdlZCk7XG4gIHJldHVybiBtZXJnZWQ7XG59XG5cbmZ1bmN0aW9uIHJlYWRFbnZEZWZhdWx0cygpOiBDbGllbnRDb25maWcge1xuICBpZiAodHlwZW9mIHByb2Nlc3MgPT09ICd1bmRlZmluZWQnKSByZXR1cm4ge307XG4gIGNvbnN0IGUgPSAocHJvY2VzcyBhcyB7IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4gfSkuZW52ID8/IHt9O1xuICBjb25zdCBleHBpcnkgPSBlLlVFTkdBR0VfRVhQSVJZX0JVRkZFUl9NUyA/IE51bWJlcihlLlVFTkdBR0VfRVhQSVJZX0JVRkZFUl9NUykgOiB1bmRlZmluZWQ7XG4gIC8vIFVFTkdBR0VfU0VTU0lPTl9JRCArIFVFTkdBR0VfU0VTU0lPTl9UT0tFTiBtdXN0IGJlIHBhaXJlZDsgZWl0aGVyIGFsb25lIGlzIGlnbm9yZWRcbiAgLy8gc28gYW4gZW52LW9ubHkgc2V0dXAgbmV2ZXIgcHJvZHVjZXMgYSBoYWxmLWNvbmZpZ3VyZWQgc2Vzc2lvbi5cbiAgY29uc3Qgc2Vzc2lvbiA9XG4gICAgZS5VRU5HQUdFX1NFU1NJT05fSUQgJiYgZS5VRU5HQUdFX1NFU1NJT05fVE9LRU5cbiAgICAgID8geyBpZDogZS5VRU5HQUdFX1NFU1NJT05fSUQsIHRva2VuOiBlLlVFTkdBR0VfU0VTU0lPTl9UT0tFTiB9XG4gICAgICA6IHVuZGVmaW5lZDtcbiAgcmV0dXJuIHtcbiAgICBiYXNlVXJsOiBlLlVFTkdBR0VfQkFTRV9VUkwsXG4gICAgYXV0aEJhc2VVcmw6IGUuVUVOR0FHRV9BVVRIX0JBU0VfVVJMLFxuICAgIGN1c3RvbWVyQXV0aEJhc2VVcmw6IGUuVUVOR0FHRV9DVVNUT01FUl9BVVRIX0JBU0VfVVJMLFxuICAgIHNlcnZpY2VJZDogZS5VRU5HQUdFX1NFUlZJQ0VfSUQsXG4gICAgc2VydmljZVNlY3JldDogZS5VRU5HQUdFX1NFUlZJQ0VfU0VDUkVULFxuICAgIHNjb3BlOiBlLlVFTkdBR0VfU0NPUEUsXG4gICAgYXV0aFRva2VuOiBlLlVFTkdBR0VfQVVUSF9UT0tFTixcbiAgICBzZXNzaW9uLFxuICAgIGFjdG9yVmlhOiBlLlVFTkdBR0VfQUNUT1JfVklBLFxuICAgIGV4cGlyeUJ1ZmZlck1zOiBOdW1iZXIuaXNGaW5pdGUoZXhwaXJ5KSA/IChleHBpcnkgYXMgbnVtYmVyKSA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5wdXRIYXNBdXRoTW9kZShpbnB1dDogQ2xpZW50Q29uZmlnKTogYm9vbGVhbiB7XG4gIHJldHVybiBBVVRIX01PREVfRklFTERTLnNvbWUoKGYpID0+IGlucHV0W2ZdICE9PSB1bmRlZmluZWQpO1xufVxuXG5mdW5jdGlvbiB3aXRob3V0QXV0aEZpZWxkcyhjOiBDbGllbnRDb25maWcpOiBDbGllbnRDb25maWcge1xuICByZXR1cm4ge1xuICAgIC4uLmMsXG4gICAgc2VydmljZUlkOiB1bmRlZmluZWQsXG4gICAgc2VydmljZVNlY3JldDogdW5kZWZpbmVkLFxuICAgIHNjb3BlOiB1bmRlZmluZWQsXG4gICAgYXV0aFRva2VuOiB1bmRlZmluZWQsXG4gICAgc2Vzc2lvbjogdW5kZWZpbmVkLFxuICAgIHRva2VuczogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5mdW5jdGlvbiBhc3NlcnRFeGFjdGx5T25lQXV0aE1vZGUoaW5wdXQ6IENsaWVudENvbmZpZyk6IHZvaWQge1xuICBjb25zdCBtb2Rlczogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGlucHV0LmF1dGhUb2tlbiAhPT0gdW5kZWZpbmVkKSBtb2Rlcy5wdXNoKCdhdXRoVG9rZW4nKTtcbiAgaWYgKGlucHV0LnNlc3Npb24gIT09IHVuZGVmaW5lZCkgbW9kZXMucHVzaCgnc2Vzc2lvbicpO1xuICBpZiAoaW5wdXQudG9rZW5zICE9PSB1bmRlZmluZWQpIG1vZGVzLnB1c2goJ3Rva2VucycpO1xuICBpZiAoaW5wdXQuc2VydmljZUlkICE9PSB1bmRlZmluZWQgfHwgaW5wdXQuc2VydmljZVNlY3JldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbW9kZXMucHVzaCgnc2VydmljZUlkK3NlcnZpY2VTZWNyZXQnKTtcbiAgfVxuICBpZiAobW9kZXMubGVuZ3RoID4gMSkge1xuICAgIHRocm93IG5ldyBDb25maWdFcnJvcihcbiAgICAgIGBjcmVhdGVDbGllbnQ6IHBpY2sgZXhhY3RseSBvbmUgYXV0aCBtb2RlLiBHb3QgJHttb2Rlcy5qb2luKCcsICcpfS4gYCArXG4gICAgICAgICdVc2Ugb25lIG9mIHtzZXJ2aWNlSWQsIHNlcnZpY2VTZWNyZXR9IHwge2F1dGhUb2tlbn0gfCB7c2Vzc2lvbn0gfCB7dG9rZW5zfS4nLFxuICAgICk7XG4gIH1cbiAgLy8gWmVybyBtb2RlcyBpcyBhbGxvd2VkIOKAlCBjYWxsZXIgbWF5IHdhbnQgYSBmdWxseS1hbm9ueW1vdXMgY2xpZW50IGZvclxuICAvLyBwdWJsaWMgZW5kcG9pbnRzLiBUaGUgZmlyc3QgcmVxdWVzdCB0aGF0IG5lZWRzIGF1dGggd2lsbCBzdXJmYWNlIGFcbiAgLy8gQ29uZmlnRXJyb3IgZG93bnN0cmVhbS5cbn1cblxuLyoqXG4gKiBQcm9iZSB0aGUgYnVzaW5lc3MgYGxlZ2FjeV9zZXNzaW9uYCBncmFudCBmaXJzdCwgZmFsbCBiYWNrIHRvIGN1c3RvbWVyXG4gKiBvbiBgaW52YWxpZF9ncmFudGAuIEVpdGhlciBzdXJmYWNlIG1pbnRzIGEgSldUIOKAlCB0aGUgU0RLIGRvZXNuJ3QgY2FyZVxuICogd2hpY2ggc2lkZSBhbnN3ZXJlZC5cbiAqXG4gKiBXaHkgcHJvYmUgYm90aDogYGlkYCAobnVtZXJpYykgb3ZlcmxhcHMgdXNlcnMudXNlcklkIHZzXG4gKiBhZGRvX2NvbnRhY3RzX21hcHBpbmcuaWQvY29udGFjdElkLiBDYWxsZXJzIHVzdWFsbHkgZG9uJ3Qga25vdyB3aGljaFxuICogdGFibGUgdGhlaXIgKGlkLCB0b2tlbikgcGFpciBiZWxvbmdzIHRvLlxuICovXG5hc3luYyBmdW5jdGlvbiBleGNoYW5nZUxlZ2FjeVNlc3Npb24oXG4gIHNlc3Npb246IHsgaWQ6IHN0cmluZyB8IG51bWJlcjsgdG9rZW46IHN0cmluZyB9LFxuICBhdXRoQmFzZVVybDogc3RyaW5nLFxuICBjdXN0b21lckF1dGhCYXNlVXJsOiBzdHJpbmcsXG4gIGZldGNoRm46IHR5cGVvZiBmZXRjaCxcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGJvZHkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICBncmFudF90eXBlOiAnbGVnYWN5X3Nlc3Npb24nLFxuICAgIGlkOiBTdHJpbmcoc2Vzc2lvbi5pZCksXG4gICAgdG9rZW46IHNlc3Npb24udG9rZW4sXG4gIH0pLnRvU3RyaW5nKCk7XG5cbiAgY29uc3QgYnVzaW5lc3NSZXMgPSBhd2FpdCBmZXRjaEZuKGAke2F1dGhCYXNlVXJsfS9vYXV0aC90b2tlbmAsIHtcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9LFxuICAgIGJvZHksXG4gIH0pO1xuICBpZiAoYnVzaW5lc3NSZXMub2spIHtcbiAgICByZXR1cm4gcGFyc2VBY2Nlc3NUb2tlbihidXNpbmVzc1Jlcyk7XG4gIH1cbiAgaWYgKGF3YWl0IGlzSW52YWxpZEdyYW50KGJ1c2luZXNzUmVzKSkge1xuICAgIGNvbnN0IGN1c3RvbWVyUmVzID0gYXdhaXQgZmV0Y2hGbihgJHtjdXN0b21lckF1dGhCYXNlVXJsfS9vYXV0aC90b2tlbmAsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczogeyAnY29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgfSxcbiAgICAgIGJvZHksXG4gICAgfSk7XG4gICAgaWYgKGN1c3RvbWVyUmVzLm9rKSB7XG4gICAgICByZXR1cm4gcGFyc2VBY2Nlc3NUb2tlbihjdXN0b21lclJlcyk7XG4gICAgfVxuICAgIGNvbnN0IHRleHQgPSBhd2FpdCBjdXN0b21lclJlcy50ZXh0KCkuY2F0Y2goKCkgPT4gJycpO1xuICAgIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKFxuICAgICAgYGxlZ2FjeV9zZXNzaW9uIGV4Y2hhbmdlIGZhaWxlZCBvbiBib3RoIHN1cmZhY2VzOiBjdXN0b21lciBIVFRQICR7Y3VzdG9tZXJSZXMuc3RhdHVzfSAke3RleHR9YCxcbiAgICApO1xuICB9XG4gIGNvbnN0IHRleHQgPSBhd2FpdCBidXNpbmVzc1Jlcy50ZXh0KCkuY2F0Y2goKCkgPT4gJycpO1xuICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcihcbiAgICBgbGVnYWN5X3Nlc3Npb24gZXhjaGFuZ2UgZmFpbGVkOiBIVFRQICR7YnVzaW5lc3NSZXMuc3RhdHVzfSAke3RleHR9YCxcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaXNJbnZhbGlkR3JhbnQocmVzOiBSZXNwb25zZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBpZiAocmVzLnN0YXR1cyAhPT0gNDAwKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGNsb25lZCA9IHJlcy5jbG9uZSgpO1xuICBjb25zdCBqc29uID0gKGF3YWl0IGNsb25lZC5qc29uKCkuY2F0Y2goKCkgPT4gKHt9KSkpIGFzIHsgZXJyb3I/OiBzdHJpbmcgfTtcbiAgcmV0dXJuIGpzb24uZXJyb3IgPT09ICdpbnZhbGlkX2dyYW50Jztcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyc2VBY2Nlc3NUb2tlbihyZXM6IFJlc3BvbnNlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QganNvbiA9IChhd2FpdCByZXMuanNvbigpKSBhcyB7IGFjY2Vzc190b2tlbj86IHN0cmluZyB9O1xuICBpZiAoIWpzb24uYWNjZXNzX3Rva2VuKSB7XG4gICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKCdsZWdhY3lfc2Vzc2lvbiBleGNoYW5nZSByZXNwb25zZSBtaXNzaW5nIGFjY2Vzc190b2tlbicpO1xuICB9XG4gIHJldHVybiBqc29uLmFjY2Vzc190b2tlbjtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVRva2VuU291cmNlKGlucHV0OiBDbGllbnRDb25maWcsIGJhc2VVcmw6IHN0cmluZyk6IFRva2VuU291cmNlU3RhdGUgfCB1bmRlZmluZWQge1xuICBjb25zdCBhdXRoQmFzZVVybCA9IGlucHV0LmF1dGhCYXNlVXJsID8/IGAke2Jhc2VVcmx9L2F1dGgvYnVzaW5lc3NgO1xuICBjb25zdCBmZXRjaEZuID0gaW5wdXQuZmV0Y2hGbiA/PyAoZ2xvYmFsVGhpcy5mZXRjaCBhcyB0eXBlb2YgZmV0Y2gpO1xuXG4gIGlmIChpbnB1dC5hdXRoVG9rZW4gIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlb2YgaW5wdXQuYXV0aFRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIG1ha2VUb2tlblNvdXJjZVN0YXRlKFxuICAgICAgICB7IGtpbmQ6ICdzdGF0aWMtc3RyaW5nJywgdG9rZW46IGlucHV0LmF1dGhUb2tlbiB9LFxuICAgICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG1ha2VUb2tlblNvdXJjZVN0YXRlKFxuICAgICAgeyBraW5kOiAnY2FsbGJhY2snLCBnZXRUb2tlbjogaW5wdXQuYXV0aFRva2VuIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgaWYgKGlucHV0LnNlc3Npb24gIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGN1c3RvbWVyQXV0aEJhc2VVcmwgPSBpbnB1dC5jdXN0b21lckF1dGhCYXNlVXJsID8/IGAke2Jhc2VVcmx9L2F1dGgvY3VzdG9tZXJgO1xuICAgIGNvbnN0IHNlc3Npb24gPSBpbnB1dC5zZXNzaW9uO1xuICAgIHJldHVybiBtYWtlVG9rZW5Tb3VyY2VTdGF0ZShcbiAgICAgIHtcbiAgICAgICAga2luZDogJ2NhbGxiYWNrJyxcbiAgICAgICAgZ2V0VG9rZW46ICgpID0+IGV4Y2hhbmdlTGVnYWN5U2Vzc2lvbihzZXNzaW9uLCBhdXRoQmFzZVVybCwgY3VzdG9tZXJBdXRoQmFzZVVybCwgZmV0Y2hGbiksXG4gICAgICB9LFxuICAgICAgeyBleHBpcnlCdWZmZXJNczogaW5wdXQuZXhwaXJ5QnVmZmVyTXMsIGZldGNoRm46IGlucHV0LmZldGNoRm4gfSxcbiAgICApO1xuICB9XG4gIGlmIChpbnB1dC5zZXJ2aWNlSWQgJiYgaW5wdXQuc2VydmljZVNlY3JldCkge1xuICAgIHJldHVybiBtYWtlVG9rZW5Tb3VyY2VTdGF0ZShcbiAgICAgIHtcbiAgICAgICAga2luZDogJ3NlcnZpY2UtY3JlZGVudGlhbHMnLFxuICAgICAgICBjbGllbnRJZDogaW5wdXQuc2VydmljZUlkLFxuICAgICAgICBjbGllbnRTZWNyZXQ6IGlucHV0LnNlcnZpY2VTZWNyZXQsXG4gICAgICAgIGF1dGhCYXNlVXJsLFxuICAgICAgICBzY29wZTogaW5wdXQuc2NvcGUsXG4gICAgICB9LFxuICAgICAgeyBleHBpcnlCdWZmZXJNczogaW5wdXQuZXhwaXJ5QnVmZmVyTXMsIGZldGNoRm46IGlucHV0LmZldGNoRm4gfSxcbiAgICApO1xuICB9XG4gIGlmIChpbnB1dC50b2tlbnMpIHtcbiAgICByZXR1cm4gbWFrZVRva2VuU291cmNlU3RhdGUoXG4gICAgICB7XG4gICAgICAgIGtpbmQ6ICdhY2Nlc3MtcmVmcmVzaC1wYWlyJyxcbiAgICAgICAgYWNjZXNzVG9rZW46IGlucHV0LnRva2Vucy5hY2Nlc3NUb2tlbixcbiAgICAgICAgcmVmcmVzaFRva2VuOiBpbnB1dC50b2tlbnMucmVmcmVzaFRva2VuLFxuICAgICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyBpbnB1dC50b2tlbnMuZXhwaXJlc0luICogMTAwMCxcbiAgICAgICAgY2xpZW50SWQ6IGlucHV0LnRva2Vucy5jbGllbnRJZCxcbiAgICAgICAgb25Sb3RhdGU6IGlucHV0LnRva2Vucy5vblJvdGF0ZSxcbiAgICAgIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gd2FybklmQnJvd3NlclNlY3JldChjb25maWc6IENsaWVudENvbmZpZyk6IHZvaWQge1xuICBjb25zdCBnID0gZ2xvYmFsVGhpcyBhcyB7IHdpbmRvdz86IHsgZG9jdW1lbnQ/OiB1bmtub3duIH0gfTtcbiAgY29uc3QgaW5Ccm93c2VyID0gdHlwZW9mIGcud2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgZy53aW5kb3cuZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnO1xuICBpZiAoIWluQnJvd3NlcikgcmV0dXJuO1xuICBpZiAoY29uZmlnLnNlcnZpY2VTZWNyZXQpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICAnW3VlbmdhZ2UtcGxhdGZvcm0tc2RrXSBzZXJ2aWNlU2VjcmV0IHNob3VsZCBub3QgYmUgdXNlZCBpbiBicm93c2VyIGVudmlyb25tZW50cy4gJyArXG4gICAgICAgICdTZXJ2aWNlIGNyZWRlbnRpYWxzIGluIGJyb3dzZXIgYnVuZGxlcyBhcmUgcHVibGljbHkgdmlzaWJsZS4gJyArXG4gICAgICAgICdVc2UgYGF1dGhUb2tlbmAgKGEgQmVhcmVyIG9idGFpbmVkIHZpYSBPQXV0aCkgb3IgYHNlc3Npb25Ub2tlbmAgaW5zdGVhZC4nLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStIQSxvQ0FJQztBQW5JRCwyQ0FBcUU7QUFDckUsOENBQThFO0FBQzlFLDJDQUFxRTtBQUNyRSw0Q0FBd0U7QUFDeEUsaUNBQStDO0FBQy9DLGlEQUl3QjtBQUN4QixxQ0FBNEQ7QUE2RzVELE1BQU0sZ0JBQWdCLEdBQUcsaUNBQWlDLENBQUM7QUFFM0Q7Ozs7O0dBS0c7QUFDSCxTQUFnQixZQUFZLENBQUMsUUFBc0IsRUFBRTtJQUNuRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQW1CO0lBQ3RDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksZ0JBQWdCLENBQUM7SUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsTUFBTSxJQUFJLEdBQTZCLGdCQUFnQjtRQUNyRCxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtRQUNuRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsTUFBTSxjQUFjLEdBQUcsSUFBQSw2QkFBb0IsRUFBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLE1BQU0sV0FBVyxHQUFHLElBQUEsMEJBQWlCLEVBQUM7UUFDcEMsT0FBTztRQUNQLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztRQUN0QixJQUFJO1FBQ0osUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUks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QjtZQUNFLElBQUksRUFBRSxxQkFBcUI7WUFDM0IsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVztZQUNyQyxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSTtZQUNyRCxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQy9CLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVE7U0FDaEMsRUFDRCxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ2pFLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsTUFBb0I7SUFDL0MsTUFBTSxDQUFDLEdBQUcsVUFBaUQsQ0FBQztJQUM1RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDO0lBQzlGLElBQUksQ0FBQyxTQUFTO1FBQUUsT0FBTztJQUN2QixJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsSUFBSSxDQUNWLG1GQUFtRjtZQUNqRiwrREFBK0Q7WUFDL0QsMEVBQTBFLENBQzdFLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUF1ZGl0Q2xpZW50LCB0eXBlIEF1ZGl0Q2xpZW50IH0gZnJvbSAnLi9hdWRpdC9jbGllbnQnO1xuaW1wb3J0IHsgY3JlYXRlQnVzaW5lc3NDbGllbnQsIHR5cGUgQnVzaW5lc3NDbGllbnQgfSBmcm9tICcuL2J1c2luZXNzL2NsaWVudCc7XG5pbXBvcnQgeyBjcmVhdGVab25lc0NsaWVudCwgdHlwZSBab25lc0NsaWVudCB9IGZyb20gJy4vem9uZXMvY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZVdhbGxldENsaWVudCwgdHlwZSBXYWxsZXRDbGllbnQgfSBmcm9tICcuL3dhbGxldC9jbGllbnQnO1xuaW1wb3J0IHsgYXV0aCBhcyBhdXRoTmFtZXNwYWNlIH0gZnJvbSAnLi9hdXRoJztcbmltcG9ydCB7XG4gIGdldEFjY2Vzc1Rva2VuIGFzIHJlc29sdmVBY2Nlc3NUb2tlbixcbiAgbWFrZVRva2VuU291cmNlU3RhdGUsXG4gIHR5cGUgVG9rZW5Tb3VyY2VTdGF0ZSxcbn0gZnJvbSAnLi90b2tlbi1zb3VyY2UnO1xuaW1wb3J0IHsgQ29uZmlnRXJyb3IsIEF1dGhlbnRpY2F0aW9uRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgdHlwZSB7IFBsYXRmb3JtQXV0aCB9IGZyb20gJy4vY29uZmlnJztcblxuLyoqXG4gKiBDYWxsZXItZmFjaW5nIGNvbmZpZyBmb3IgYGNyZWF0ZUNsaWVudCguLi4pYC5cbiAqXG4gKiBgY3JlYXRlQ2xpZW50KClgIChubyBhcmdzKSByZWFkcyBldmVyeXRoaW5nIGZyb20gdGhlIHN0YW5kYXJkXG4gKiBgVUVOR0FHRV8qYCBlbnZpcm9ubWVudCB2YXJpYWJsZXMg4oCUIGNvbnZlbmllbnQgZm9yIExhbWJkYXMgdGhhdFxuICogYWxyZWFkeSBoYXZlIHRoZWlyIGNvbmZpZyBpbmplY3RlZCBieSB0aGUgZGVwbG95IHN0YWNrLiBBbnkgZmllbGRcbiAqIHBhc3NlZCBleHBsaWNpdGx5IG92ZXJyaWRlcyB0aGUgbWF0Y2hpbmcgZW52IGRlZmF1bHQgZm9yIHRoYXQgb25lXG4gKiBjYWxsIG9ubHkgKG5vIHNoYXJlZCBtdXRhYmxlIHN0YXRlLCBubyBzaW5nbGV0b24pLlxuICpcbiAqIEF1dGgtbW9kZSBmaWVsZHMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4gUGljayBvbmU6XG4gKiAgIC0gYHNlcnZpY2VJZGAgKyBgc2VydmljZVNlY3JldGAgIE9BdXRoMiBjbGllbnRfY3JlZGVudGlhbHMuXG4gKiAgIC0gYGF1dGhUb2tlbmAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBCZWFyZXIgdG9rZW4sIG9yIGFzeW5jXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrIHRoYXQgcmV0dXJucyBvbmUuXG4gKiAgIC0gYHNlc3Npb246IHtpZCwgdG9rZW59YCAgICAgICAgIGxlZ2FjeSB1RW5nYWdlIChpZCwgYXBpVG9rZW4pIC9cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlkLCBhZGRvX2NvbnRhY3RzX21hcHBpbmcudG9rZW4pXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhaXIuIFRoZSBTREsgcHJvYmVzIHRoZSBidXNpbmVzc1xuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJmYWNlICh1c2VycykgZmlyc3QsIGZhbGxzIGJhY2tcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIGN1c3RvbWVyIHN1cmZhY2VcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZG9fY29udGFjdHNfbWFwcGluZykgaWYgdGhlXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c2luZXNzIHByb2JlIHJldHVybnNcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGludmFsaWRfZ3JhbnRgLCBhbmQgY2FjaGVzIHRoZVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRpbmcgSldULlxuICpcbiAqIFBhc3NpbmcgbW9yZSB0aGFuIG9uZSBleHBsaWNpdGx5IGlzIGEgYENvbmZpZ0Vycm9yYC4gUGFzc2luZyBhbnkgb25lXG4gKiBvZiB0aGVtIHN1cHByZXNzZXMgZXZlcnkgZW52LWRlcml2ZWQgYXV0aCBkZWZhdWx0LCBzbyBhIGNhbGxlcidzXG4gKiBleHBsaWNpdCBvdmVycmlkZSBpcyBuZXZlciBzaWxlbnRseSBtZXJnZWQgd2l0aCBlbnYgY3JlZGVudGlhbHMgb2ZcbiAqIGEgZGlmZmVyZW50IG1vZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50Q29uZmlnIHtcbiAgYmFzZVVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIEF1dGggc3VyZmFjZSBiYXNlIHVzZWQgdG8gYm9vdHN0cmFwIHRoZSBmaXJzdCBjbGllbnRfY3JlZGVudGlhbHNcbiAgICogbWludC4gRGVmYXVsdHMgdG8gYCR7YmFzZVVybH0vYXV0aC9idXNpbmVzc2AuXG4gICAqL1xuICBhdXRoQmFzZVVybD86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbWVyIGF1dGggc3VyZmFjZSBiYXNlIHVzZWQgYnkgYHNlc3Npb25gIGV4Y2hhbmdlcy4gRGVmYXVsdHMgdG9cbiAgICogYCR7YmFzZVVybH0vYXV0aC9jdXN0b21lcmAuXG4gICAqL1xuICBjdXN0b21lckF1dGhCYXNlVXJsPzogc3RyaW5nO1xuXG4gIC8vIOKUgOKUgOKUgCBBdXRoIG1vZGVzIChtdXR1YWxseSBleGNsdXNpdmUpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAvKiogT0F1dGgyIGBjbGllbnRfY3JlZGVudGlhbHNgIGNsaWVudElkLiBQYWlyIHdpdGggYHNlcnZpY2VTZWNyZXRgLiAqL1xuICBzZXJ2aWNlSWQ/OiBzdHJpbmc7XG4gIC8qKiBPQXV0aDIgYGNsaWVudF9jcmVkZW50aWFsc2AgY2xpZW50U2VjcmV0LiBQYWlyIHdpdGggYHNlcnZpY2VJZGAuICovXG4gIHNlcnZpY2VTZWNyZXQ/OiBzdHJpbmc7XG4gIC8qKiBTcGFjZS1zZXBhcmF0ZWQgc2NvcGUgbGlzdCB0byByZXF1ZXN0IHdoZW4gbWludGluZyB2aWEgY2xpZW50X2NyZWRlbnRpYWxzLiAqL1xuICBzY29wZT86IHN0cmluZztcbiAgLyoqIFN0YXRpYyBCZWFyZXIgSldULCBvciBhc3luYyBjYWxsYmFjayB0aGF0IHJldHVybnMgb25lLiAqL1xuICBhdXRoVG9rZW4/OiBzdHJpbmcgfCAoKCkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+KTtcbiAgLyoqXG4gICAqIExlZ2FjeSB1RW5nYWdlIChpZCwgdG9rZW4pIHBhaXIuIGBpZGAgaXMgYHVzZXJzLnVzZXJJZGAgZm9yIHN0YWZmXG4gICAqIHVzZXJzIChtYXRjaGVkIHZpYSB0aGUgYnVzaW5lc3Mgc3VyZmFjZSkgb3JcbiAgICogYGFkZG9fY29udGFjdHNfbWFwcGluZy5pZGAvYGNvbnRhY3RJZGAgZm9yIGN1c3RvbWVycyAobWF0Y2hlZCB2aWFcbiAgICogdGhlIGN1c3RvbWVyIHN1cmZhY2UpLiBUaGUgU0RLIHByb2JlcyB0aGUgYnVzaW5lc3Mgc3VyZmFjZSBmaXJzdFxuICAgKiBhbmQgZmFsbHMgYmFjayB0byBjdXN0b21lciBvbiBgaW52YWxpZF9ncmFudGAuXG4gICAqL1xuICBzZXNzaW9uPzogeyBpZDogc3RyaW5nIHwgbnVtYmVyOyB0b2tlbjogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBgKGFjY2Vzc1Rva2VuLCByZWZyZXNoVG9rZW4pYCBwYWlyIGZyb20gYSBmaW5pc2hlZCBsb2dpbiBmbG93XG4gICAqIChgYXV0aC5sb2dpbldpdGhQYXNzd29yZCguLi4pYCwgYGF1dGgudmVyaWZ5T3RwKC4uLilgLCBldGMpLiBUaGVcbiAgICogU0RLIHVzZXMgdGhlIGFjY2VzcyB0b2tlbiB1bnRpbCBpdCBleHBpcmVzLCB0aGVuIHJvdGF0ZXMgdmlhXG4gICAqIGBhdXRoLnJlZnJlc2goLi4uKWAgdHJhbnNwYXJlbnRseS4gYG9uUm90YXRlYCBmaXJlcyBhZnRlciBldmVyeVxuICAgKiByb3RhdGlvbiBzbyBjYWxsZXJzIGNhbiBwZXJzaXN0IHRoZSBuZXcgcGFpci5cbiAgICovXG4gIHRva2Vucz86IHtcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICAgIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xuICAgIC8qKiBBY2Nlc3MgdG9rZW4gVFRMIChzZWNvbmRzKSwgYXMgcmV0dXJuZWQgYnkgdGhlIGF1dGggc3VyZmFjZS4gKi9cbiAgICBleHBpcmVzSW46IG51bWJlcjtcbiAgICAvKiogT0F1dGggY2xpZW50IGlkIHVzZWQgZHVyaW5nIHRoZSBvcmlnaW5hbCBsb2dpbiAocmVxdWlyZWQgYnkgdGhlIHJlZnJlc2ggaGFuZGxlcikuICovXG4gICAgY2xpZW50SWQ6IHN0cmluZztcbiAgICBvblJvdGF0ZT86IChwYWlyOiB7XG4gICAgICBhY2Nlc3NUb2tlbjogc3RyaW5nO1xuICAgICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gICAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICB9KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcbiAgfTtcblxuICAvKipcbiAgICogU2VydmljZSBpZGVudGlmaWVyIHRoZSBhdWRpdCBjbGllbnQgc2hvdWxkIHN0YW1wIGludG8gYGFjdG9yLnZpYWBcbiAgICogb24gZW1pdHRlZCBldmVudHMuIERlZmF1bHRzIHRvIGBzZXJ2aWNlSWRgIHdoZW4gc2V0OyBvdGhlcndpc2VcbiAgICogYXVkaXQgYHJlY29yZCgpYCBjYWxscyBsb2cgYW4gZXJyb3IgYW5kIGRyb3AgdGhlIGV2ZW50LlxuICAgKi9cbiAgYWN0b3JWaWE/OiBzdHJpbmc7XG4gIGV4cGlyeUJ1ZmZlck1zPzogbnVtYmVyO1xuICBmZXRjaEZuPzogdHlwZW9mIGZldGNoO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsYXRmb3JtQ2xpZW50IHtcbiAgYnVzaW5lc3M6IEJ1c2luZXNzQ2xpZW50O1xuICBhdWRpdDogQXVkaXRDbGllbnQ7XG4gIHpvbmVzOiBab25lc0NsaWVudDtcbiAgd2FsbGV0OiBXYWxsZXRDbGllbnQ7XG4gIGF1dGg6IHR5cGVvZiBhdXRoTmFtZXNwYWNlO1xuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgY3VycmVudCBhY2Nlc3MgdG9rZW4sIG1pbnRpbmcgdmlhIHRoZSBjb25maWd1cmVkIGF1dGhcbiAgICogbW9kZSBpZiB0aGUgY2FjaGUgaXMgY29sZC4gVXNlZnVsIGZvciBgYXV0aC52ZXJpZnlBY2Nlc3NUb2tlbiguLi4pYFxuICAgKiByb3VuZC10cmlwcyBhbmQgZm9yIGNhbGxlcnMgdGhhdCB3YW50IHRvIGxvZyAvIGZvcndhcmQgdGhlIGJlYXJlclxuICAgKiB0byBhIGRvd25zdHJlYW0gc2VydmljZS5cbiAgICpcbiAgICogVGhyb3dzIGBDb25maWdFcnJvcmAgd2hlbiB0aGUgY2xpZW50IHdhcyBidWlsdCB3aXRoIG5vIGF1dGggbW9kZS5cbiAgICovXG4gIGdldEFjY2Vzc1Rva2VuKCk6IFByb21pc2U8c3RyaW5nPjtcbn1cblxuY29uc3QgREVGQVVMVF9CQVNFX1VSTCA9ICdodHRwczovL2FwaS5wbGF0Zm9ybS51ZW5nYWdlLmlvJztcblxuLyoqXG4gKiBCdWlsZCBhIGZyZXNoLCBpc29sYXRlZCBjbGllbnQuIFdpdGggbm8gYXJncywgcmVhZHMgYFVFTkdBR0VfKmBcbiAqIGVudiB2YXJzOyBleHBsaWNpdCBmaWVsZHMgb3ZlcnJpZGUgcGVyIGNhbGwuIEVhY2ggY2FsbCBnZXRzIGl0cyBvd25cbiAqIFRva2VuU291cmNlIHN0YXRlIOKAlCBjb25jdXJyZW50IGBjcmVhdGVDbGllbnQoLi4uKWAgdXNlIGRvZXMgbm90XG4gKiBzdGFtcGVkZSB0aGUgY2FjaGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbGllbnQoaW5wdXQ6IENsaWVudENvbmZpZyA9IHt9KTogUGxhdGZvcm1DbGllbnQge1xuICBjb25zdCBtZXJnZWQgPSBtZXJnZVdpdGhFbnYoaW5wdXQpO1xuICB3YXJuSWZCcm93c2VyU2VjcmV0KG1lcmdlZCk7XG4gIHJldHVybiBidWlsZENsaWVudChtZXJnZWQpO1xufVxuXG5mdW5jdGlvbiBidWlsZENsaWVudChpbnB1dDogQ2xpZW50Q29uZmlnKTogUGxhdGZvcm1DbGllbnQge1xuICBjb25zdCBiYXNlVXJsID0gaW5wdXQuYmFzZVVybCA/PyBERUZBVUxUX0JBU0VfVVJMO1xuICBjb25zdCB0b2tlblNvdXJjZVN0YXRlID0gcmVzb2x2ZVRva2VuU291cmNlKGlucHV0LCBiYXNlVXJsKTtcbiAgY29uc3QgYXV0aDogUGxhdGZvcm1BdXRoIHwgdW5kZWZpbmVkID0gdG9rZW5Tb3VyY2VTdGF0ZVxuICAgID8geyB0eXBlOiAndG9rZW4tc291cmNlJywgc3RhdGU6IHRva2VuU291cmNlU3RhdGUgfVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGJ1c2luZXNzQ2xpZW50ID0gY3JlYXRlQnVzaW5lc3NDbGllbnQoeyBiYXNlVXJsLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLCBhdXRoIH0pO1xuICBjb25zdCBhdWRpdENsaWVudCA9IGNyZWF0ZUF1ZGl0Q2xpZW50KHtcbiAgICBiYXNlVXJsLFxuICAgIGZldGNoRm46IGlucHV0LmZldGNoRm4sXG4gICAgYXV0aCxcbiAgICBhY3RvclZpYTogaW5wdXQuYWN0b3JWaWEgPz8gaW5wdXQuc2VydmljZUlkLFxuICB9KTtcbiAgY29uc3Qgem9uZXNDbGllbnQgPSBjcmVhdGVab25lc0NsaWVudCh7IGJhc2VVcmwsIGZldGNoRm46IGlucHV0LmZldGNoRm4sIGF1dGggfSk7XG4gIGNvbnN0IHdhbGxldENsaWVudCA9IGNyZWF0ZVdhbGxldENsaWVudCh7IGJhc2VVcmwsIGZldGNoRm46IGlucHV0LmZldGNoRm4sIGF1dGggfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBidXNpbmVzczogYnVzaW5lc3NDbGllbnQsXG4gICAgYXVkaXQ6IGF1ZGl0Q2xpZW50LFxuICAgIHpvbmVzOiB6b25lc0NsaWVudCxcbiAgICB3YWxsZXQ6IHdhbGxldENsaWVudCxcbiAgICBhdXRoOiBhdXRoTmFtZXNwYWNlLFxuICAgIGdldEFjY2Vzc1Rva2VuOiBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoIXRva2VuU291cmNlU3RhdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKFxuICAgICAgICAgICdnZXRBY2Nlc3NUb2tlbjogbm8gYXV0aCBtb2RlIGNvbmZpZ3VyZWQuIFBhc3Mge3NlcnZpY2VJZCwgc2VydmljZVNlY3JldH0gfCB7YXV0aFRva2VufSB8IHtzZXNzaW9ufS4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmVBY2Nlc3NUb2tlbih0b2tlblNvdXJjZVN0YXRlKTtcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBBVVRIX01PREVfRklFTERTID0gW1xuICAnc2VydmljZUlkJyxcbiAgJ3NlcnZpY2VTZWNyZXQnLFxuICAnc2NvcGUnLFxuICAnYXV0aFRva2VuJyxcbiAgJ3Nlc3Npb24nLFxuICAndG9rZW5zJyxcbl0gYXMgY29uc3Q7XG5cbi8qKlxuICogTWVyZ2UgZW52LWRlcml2ZWQgZGVmYXVsdHMgd2l0aCB0aGUgY2FsbGVyJ3MgZXhwbGljaXQgaW5wdXQuIEFueVxuICogZXhwbGljaXQgYXV0aC1tb2RlIGZpZWxkIHN1cHByZXNzZXMgKmFsbCogZW52LWRlcml2ZWQgYXV0aCBkZWZhdWx0cyxcbiAqIHNvIGFuIGV4cGxpY2l0IGB7YXV0aFRva2VufWAgb3ZlcnJpZGUgZG9lc24ndCBhY2NpZGVudGFsbHkgaW5oZXJpdFxuICogYHNlcnZpY2VJZGAvYHNlcnZpY2VTZWNyZXRgIGZyb20gZW52LiBOb24tYXV0aCBmaWVsZHMgZmFsbCB0aHJvdWdoXG4gKiBub3JtYWxseSAoY2FsbGVyIGBiYXNlVXJsYCBvdmVycmlkZXMgZW52IGJhc2VVcmw7IGFic2VudCBpbnB1dCBrZWVwc1xuICogZW52IGJhc2VVcmwpLlxuICovXG5mdW5jdGlvbiBtZXJnZVdpdGhFbnYoaW5wdXQ6IENsaWVudENvbmZpZyk6IENsaWVudENvbmZpZyB7XG4gIGNvbnN0IGVudiA9IHJlYWRFbnZEZWZhdWx0cygpO1xuICBjb25zdCBpbnB1dEhhc0F1dGggPSBpbnB1dEhhc0F1dGhNb2RlKGlucHV0KTtcbiAgY29uc3QgZW52Rm9yTWVyZ2UgPSBpbnB1dEhhc0F1dGggPyB3aXRob3V0QXV0aEZpZWxkcyhlbnYpIDogZW52O1xuXG4gIGNvbnN0IG1lcmdlZDogQ2xpZW50Q29uZmlnID0ge1xuICAgIGJhc2VVcmw6IGlucHV0LmJhc2VVcmwgPz8gZW52Rm9yTWVyZ2UuYmFzZVVybCxcbiAgICBhdXRoQmFzZVVybDogaW5wdXQuYXV0aEJhc2VVcmwgPz8gZW52Rm9yTWVyZ2UuYXV0aEJhc2VVcmwsXG4gICAgY3VzdG9tZXJBdXRoQmFzZVVybDogaW5wdXQuY3VzdG9tZXJBdXRoQmFzZVVybCA/PyBlbnZGb3JNZXJnZS5jdXN0b21lckF1dGhCYXNlVXJsLFxuICAgIHNlcnZpY2VJZDogaW5wdXQuc2VydmljZUlkID8/IGVudkZvck1lcmdlLnNlcnZpY2VJZCxcbiAgICBzZXJ2aWNlU2VjcmV0OiBpbnB1dC5zZXJ2aWNlU2VjcmV0ID8/IGVudkZvck1lcmdlLnNlcnZpY2VTZWNyZXQsXG4gICAgc2NvcGU6IGlucHV0LnNjb3BlID8/IGVudkZvck1lcmdlLnNjb3BlLFxuICAgIGF1dGhUb2tlbjogaW5wdXQuYXV0aFRva2VuID8/IGVudkZvck1lcmdlLmF1dGhUb2tlbixcbiAgICBzZXNzaW9uOiBpbnB1dC5zZXNzaW9uID8/IGVudkZvck1lcmdlLnNlc3Npb24sXG4gICAgdG9rZW5zOiBpbnB1dC50b2tlbnMsXG4gICAgYWN0b3JWaWE6IGlucHV0LmFjdG9yVmlhID8/IGVudkZvck1lcmdlLmFjdG9yVmlhLFxuICAgIGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcyA/PyBlbnZGb3JNZXJnZS5leHBpcnlCdWZmZXJNcyxcbiAgICBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuLFxuICB9O1xuICBhc3NlcnRFeGFjdGx5T25lQXV0aE1vZGUobWVyZ2VkKTtcbiAgcmV0dXJuIG1lcmdlZDtcbn1cblxuZnVuY3Rpb24gcmVhZEVudkRlZmF1bHRzKCk6IENsaWVudENvbmZpZyB7XG4gIGlmICh0eXBlb2YgcHJvY2VzcyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiB7fTtcbiAgY29uc3QgZSA9IChwcm9jZXNzIGFzIHsgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiB9KS5lbnYgPz8ge307XG4gIGNvbnN0IGV4cGlyeSA9IGUuVUVOR0FHRV9FWFBJUllfQlVGRkVSX01TID8gTnVtYmVyKGUuVUVOR0FHRV9FWFBJUllfQlVGRkVSX01TKSA6IHVuZGVmaW5lZDtcbiAgLy8gVUVOR0FHRV9TRVNTSU9OX0lEICsgVUVOR0FHRV9TRVNTSU9OX1RPS0VOIG11c3QgYmUgcGFpcmVkOyBlaXRoZXIgYWxvbmUgaXMgaWdub3JlZFxuICAvLyBzbyBhbiBlbnYtb25seSBzZXR1cCBuZXZlciBwcm9kdWNlcyBhIGhhbGYtY29uZmlndXJlZCBzZXNzaW9uLlxuICBjb25zdCBzZXNzaW9uID1cbiAgICBlLlVFTkdBR0VfU0VTU0lPTl9JRCAmJiBlLlVFTkdBR0VfU0VTU0lPTl9UT0tFTlxuICAgICAgPyB7IGlkOiBlLlVFTkdBR0VfU0VTU0lPTl9JRCwgdG9rZW46IGUuVUVOR0FHRV9TRVNTSU9OX1RPS0VOIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuICByZXR1cm4ge1xuICAgIGJhc2VVcmw6IGUuVUVOR0FHRV9CQVNFX1VSTCxcbiAgICBhdXRoQmFzZVVybDogZS5VRU5HQUdFX0FVVEhfQkFTRV9VUkwsXG4gICAgY3VzdG9tZXJBdXRoQmFzZVVybDogZS5VRU5HQUdFX0NVU1RPTUVSX0FVVEhfQkFTRV9VUkwsXG4gICAgc2VydmljZUlkOiBlLlVFTkdBR0VfU0VSVklDRV9JRCxcbiAgICBzZXJ2aWNlU2VjcmV0OiBlLlVFTkdBR0VfU0VSVklDRV9TRUNSRVQsXG4gICAgc2NvcGU6IGUuVUVOR0FHRV9TQ09QRSxcbiAgICBhdXRoVG9rZW46IGUuVUVOR0FHRV9BVVRIX1RPS0VOLFxuICAgIHNlc3Npb24sXG4gICAgYWN0b3JWaWE6IGUuVUVOR0FHRV9BQ1RPUl9WSUEsXG4gICAgZXhwaXJ5QnVmZmVyTXM6IE51bWJlci5pc0Zpbml0ZShleHBpcnkpID8gKGV4cGlyeSBhcyBudW1iZXIpIDogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5mdW5jdGlvbiBpbnB1dEhhc0F1dGhNb2RlKGlucHV0OiBDbGllbnRDb25maWcpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFVVEhfTU9ERV9GSUVMRFMuc29tZSgoZikgPT4gaW5wdXRbZl0gIT09IHVuZGVmaW5lZCk7XG59XG5cbmZ1bmN0aW9uIHdpdGhvdXRBdXRoRmllbGRzKGM6IENsaWVudENvbmZpZyk6IENsaWVudENvbmZpZyB7XG4gIHJldHVybiB7XG4gICAgLi4uYyxcbiAgICBzZXJ2aWNlSWQ6IHVuZGVmaW5lZCxcbiAgICBzZXJ2aWNlU2VjcmV0OiB1bmRlZmluZWQsXG4gICAgc2NvcGU6IHVuZGVmaW5lZCxcbiAgICBhdXRoVG9rZW46IHVuZGVmaW5lZCxcbiAgICBzZXNzaW9uOiB1bmRlZmluZWQsXG4gICAgdG9rZW5zOiB1bmRlZmluZWQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFzc2VydEV4YWN0bHlPbmVBdXRoTW9kZShpbnB1dDogQ2xpZW50Q29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IG1vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoaW5wdXQuYXV0aFRva2VuICE9PSB1bmRlZmluZWQpIG1vZGVzLnB1c2goJ2F1dGhUb2tlbicpO1xuICBpZiAoaW5wdXQuc2Vzc2lvbiAhPT0gdW5kZWZpbmVkKSBtb2Rlcy5wdXNoKCdzZXNzaW9uJyk7XG4gIGlmIChpbnB1dC50b2tlbnMgIT09IHVuZGVmaW5lZCkgbW9kZXMucHVzaCgndG9rZW5zJyk7XG4gIGlmIChpbnB1dC5zZXJ2aWNlSWQgIT09IHVuZGVmaW5lZCB8fCBpbnB1dC5zZXJ2aWNlU2VjcmV0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBtb2Rlcy5wdXNoKCdzZXJ2aWNlSWQrc2VydmljZVNlY3JldCcpO1xuICB9XG4gIGlmIChtb2Rlcy5sZW5ndGggPiAxKSB7XG4gICAgdGhyb3cgbmV3IENvbmZpZ0Vycm9yKFxuICAgICAgYGNyZWF0ZUNsaWVudDogcGljayBleGFjdGx5IG9uZSBhdXRoIG1vZGUuIEdvdCAke21vZGVzLmpvaW4oJywgJyl9LiBgICtcbiAgICAgICAgJ1VzZSBvbmUgb2Yge3NlcnZpY2VJZCwgc2VydmljZVNlY3JldH0gfCB7YXV0aFRva2VufSB8IHtzZXNzaW9ufSB8IHt0b2tlbnN9LicsXG4gICAgKTtcbiAgfVxuICAvLyBaZXJvIG1vZGVzIGlzIGFsbG93ZWQg4oCUIGNhbGxlciBtYXkgd2FudCBhIGZ1bGx5LWFub255bW91cyBjbGllbnQgZm9yXG4gIC8vIHB1YmxpYyBlbmRwb2ludHMuIFRoZSBmaXJzdCByZXF1ZXN0IHRoYXQgbmVlZHMgYXV0aCB3aWxsIHN1cmZhY2UgYVxuICAvLyBDb25maWdFcnJvciBkb3duc3RyZWFtLlxufVxuXG4vKipcbiAqIFByb2JlIHRoZSBidXNpbmVzcyBgbGVnYWN5X3Nlc3Npb25gIGdyYW50IGZpcnN0LCBmYWxsIGJhY2sgdG8gY3VzdG9tZXJcbiAqIG9uIGBpbnZhbGlkX2dyYW50YC4gRWl0aGVyIHN1cmZhY2UgbWludHMgYSBKV1Qg4oCUIHRoZSBTREsgZG9lc24ndCBjYXJlXG4gKiB3aGljaCBzaWRlIGFuc3dlcmVkLlxuICpcbiAqIFdoeSBwcm9iZSBib3RoOiBgaWRgIChudW1lcmljKSBvdmVybGFwcyB1c2Vycy51c2VySWQgdnNcbiAqIGFkZG9fY29udGFjdHNfbWFwcGluZy5pZC9jb250YWN0SWQuIENhbGxlcnMgdXN1YWxseSBkb24ndCBrbm93IHdoaWNoXG4gKiB0YWJsZSB0aGVpciAoaWQsIHRva2VuKSBwYWlyIGJlbG9uZ3MgdG8uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlTGVnYWN5U2Vzc2lvbihcbiAgc2Vzc2lvbjogeyBpZDogc3RyaW5nIHwgbnVtYmVyOyB0b2tlbjogc3RyaW5nIH0sXG4gIGF1dGhCYXNlVXJsOiBzdHJpbmcsXG4gIGN1c3RvbWVyQXV0aEJhc2VVcmw6IHN0cmluZyxcbiAgZmV0Y2hGbjogdHlwZW9mIGZldGNoLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgYm9keSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgIGdyYW50X3R5cGU6ICdsZWdhY3lfc2Vzc2lvbicsXG4gICAgaWQ6IFN0cmluZyhzZXNzaW9uLmlkKSxcbiAgICB0b2tlbjogc2Vzc2lvbi50b2tlbixcbiAgfSkudG9TdHJpbmcoKTtcblxuICBjb25zdCBidXNpbmVzc1JlcyA9IGF3YWl0IGZldGNoRm4oYCR7YXV0aEJhc2VVcmx9L29hdXRoL3Rva2VuYCwge1xuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGhlYWRlcnM6IHsgJ2NvbnRlbnQtdHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnIH0sXG4gICAgYm9keSxcbiAgfSk7XG4gIGlmIChidXNpbmVzc1Jlcy5vaykge1xuICAgIHJldHVybiBwYXJzZUFjY2Vzc1Rva2VuKGJ1c2luZXNzUmVzKTtcbiAgfVxuICBpZiAoYXdhaXQgaXNJbnZhbGlkR3JhbnQoYnVzaW5lc3NSZXMpKSB7XG4gICAgY29uc3QgY3VzdG9tZXJSZXMgPSBhd2FpdCBmZXRjaEZuKGAke2N1c3RvbWVyQXV0aEJhc2VVcmx9L29hdXRoL3Rva2VuYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiB7ICdjb250ZW50LXR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9LFxuICAgICAgYm9keSxcbiAgICB9KTtcbiAgICBpZiAoY3VzdG9tZXJSZXMub2spIHtcbiAgICAgIHJldHVybiBwYXJzZUFjY2Vzc1Rva2VuKGN1c3RvbWVyUmVzKTtcbiAgICB9XG4gICAgY29uc3QgdGV4dCA9IGF3YWl0IGN1c3RvbWVyUmVzLnRleHQoKS5jYXRjaCgoKSA9PiAnJyk7XG4gICAgdGhyb3cgbmV3IEF1dGhlbnRpY2F0aW9uRXJyb3IoXG4gICAgICBgbGVnYWN5X3Nlc3Npb24gZXhjaGFuZ2UgZmFpbGVkIG9uIGJvdGggc3VyZmFjZXM6IGN1c3RvbWVyIEhUVFAgJHtjdXN0b21lclJlcy5zdGF0dXN9ICR7dGV4dH1gLFxuICAgICk7XG4gIH1cbiAgY29uc3QgdGV4dCA9IGF3YWl0IGJ1c2luZXNzUmVzLnRleHQoKS5jYXRjaCgoKSA9PiAnJyk7XG4gIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKFxuICAgIGBsZWdhY3lfc2Vzc2lvbiBleGNoYW5nZSBmYWlsZWQ6IEhUVFAgJHtidXNpbmVzc1Jlcy5zdGF0dXN9ICR7dGV4dH1gLFxuICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpc0ludmFsaWRHcmFudChyZXM6IFJlc3BvbnNlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmIChyZXMuc3RhdHVzICE9PSA0MDApIHJldHVybiBmYWxzZTtcbiAgY29uc3QgY2xvbmVkID0gcmVzLmNsb25lKCk7XG4gIGNvbnN0IGpzb24gPSAoYXdhaXQgY2xvbmVkLmpzb24oKS5jYXRjaCgoKSA9PiAoe30pKSkgYXMgeyBlcnJvcj86IHN0cmluZyB9O1xuICByZXR1cm4ganNvbi5lcnJvciA9PT0gJ2ludmFsaWRfZ3JhbnQnO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwYXJzZUFjY2Vzc1Rva2VuKHJlczogUmVzcG9uc2UpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBqc29uID0gKGF3YWl0IHJlcy5qc29uKCkpIGFzIHsgYWNjZXNzX3Rva2VuPzogc3RyaW5nIH07XG4gIGlmICghanNvbi5hY2Nlc3NfdG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgQ29uZmlnRXJyb3IoJ2xlZ2FjeV9zZXNzaW9uIGV4Y2hhbmdlIHJlc3BvbnNlIG1pc3NpbmcgYWNjZXNzX3Rva2VuJyk7XG4gIH1cbiAgcmV0dXJuIGpzb24uYWNjZXNzX3Rva2VuO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlVG9rZW5Tb3VyY2UoaW5wdXQ6IENsaWVudENvbmZpZywgYmFzZVVybDogc3RyaW5nKTogVG9rZW5Tb3VyY2VTdGF0ZSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGF1dGhCYXNlVXJsID0gaW5wdXQuYXV0aEJhc2VVcmwgPz8gYCR7YmFzZVVybH0vYXV0aC9idXNpbmVzc2A7XG4gIGNvbnN0IGZldGNoRm4gPSBpbnB1dC5mZXRjaEZuID8/IChnbG9iYWxUaGlzLmZldGNoIGFzIHR5cGVvZiBmZXRjaCk7XG5cbiAgaWYgKGlucHV0LmF1dGhUb2tlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dC5hdXRoVG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gbWFrZVRva2VuU291cmNlU3RhdGUoXG4gICAgICAgIHsga2luZDogJ3N0YXRpYy1zdHJpbmcnLCB0b2tlbjogaW5wdXQuYXV0aFRva2VuIH0sXG4gICAgICAgIHsgZXhwaXJ5QnVmZmVyTXM6IGlucHV0LmV4cGlyeUJ1ZmZlck1zLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuIH0sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbWFrZVRva2VuU291cmNlU3RhdGUoXG4gICAgICB7IGtpbmQ6ICdjYWxsYmFjaycsIGdldFRva2VuOiBpbnB1dC5hdXRoVG9rZW4gfSxcbiAgICAgIHsgZXhwaXJ5QnVmZmVyTXM6IGlucHV0LmV4cGlyeUJ1ZmZlck1zLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuIH0sXG4gICAgKTtcbiAgfVxuICBpZiAoaW5wdXQuc2Vzc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgY3VzdG9tZXJBdXRoQmFzZVVybCA9IGlucHV0LmN1c3RvbWVyQXV0aEJhc2VVcmwgPz8gYCR7YmFzZVVybH0vYXV0aC9jdXN0b21lcmA7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGlucHV0LnNlc3Npb247XG4gICAgcmV0dXJuIG1ha2VUb2tlblNvdXJjZVN0YXRlKFxuICAgICAge1xuICAgICAgICBraW5kOiAnY2FsbGJhY2snLFxuICAgICAgICBnZXRUb2tlbjogKCkgPT4gZXhjaGFuZ2VMZWdhY3lTZXNzaW9uKHNlc3Npb24sIGF1dGhCYXNlVXJsLCBjdXN0b21lckF1dGhCYXNlVXJsLCBmZXRjaEZuKSxcbiAgICAgIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgaWYgKGlucHV0LnNlcnZpY2VJZCAmJiBpbnB1dC5zZXJ2aWNlU2VjcmV0KSB7XG4gICAgcmV0dXJuIG1ha2VUb2tlblNvdXJjZVN0YXRlKFxuICAgICAge1xuICAgICAgICBraW5kOiAnc2VydmljZS1jcmVkZW50aWFscycsXG4gICAgICAgIGNsaWVudElkOiBpbnB1dC5zZXJ2aWNlSWQsXG4gICAgICAgIGNsaWVudFNlY3JldDogaW5wdXQuc2VydmljZVNlY3JldCxcbiAgICAgICAgYXV0aEJhc2VVcmwsXG4gICAgICAgIHNjb3BlOiBpbnB1dC5zY29wZSxcbiAgICAgIH0sXG4gICAgICB7IGV4cGlyeUJ1ZmZlck1zOiBpbnB1dC5leHBpcnlCdWZmZXJNcywgZmV0Y2hGbjogaW5wdXQuZmV0Y2hGbiB9LFxuICAgICk7XG4gIH1cbiAgaWYgKGlucHV0LnRva2Vucykge1xuICAgIHJldHVybiBtYWtlVG9rZW5Tb3VyY2VTdGF0ZShcbiAgICAgIHtcbiAgICAgICAga2luZDogJ2FjY2Vzcy1yZWZyZXNoLXBhaXInLFxuICAgICAgICBhY2Nlc3NUb2tlbjogaW5wdXQudG9rZW5zLmFjY2Vzc1Rva2VuLFxuICAgICAgICByZWZyZXNoVG9rZW46IGlucHV0LnRva2Vucy5yZWZyZXNoVG9rZW4sXG4gICAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArIGlucHV0LnRva2Vucy5leHBpcmVzSW4gKiAxMDAwLFxuICAgICAgICBjbGllbnRJZDogaW5wdXQudG9rZW5zLmNsaWVudElkLFxuICAgICAgICBvblJvdGF0ZTogaW5wdXQudG9rZW5zLm9uUm90YXRlLFxuICAgICAgfSxcbiAgICAgIHsgZXhwaXJ5QnVmZmVyTXM6IGlucHV0LmV4cGlyeUJ1ZmZlck1zLCBmZXRjaEZuOiBpbnB1dC5mZXRjaEZuIH0sXG4gICAgKTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiB3YXJuSWZCcm93c2VyU2VjcmV0KGNvbmZpZzogQ2xpZW50Q29uZmlnKTogdm9pZCB7XG4gIGNvbnN0IGcgPSBnbG9iYWxUaGlzIGFzIHsgd2luZG93PzogeyBkb2N1bWVudD86IHVua25vd24gfSB9O1xuICBjb25zdCBpbkJyb3dzZXIgPSB0eXBlb2YgZy53aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBnLndpbmRvdy5kb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCc7XG4gIGlmICghaW5Ccm93c2VyKSByZXR1cm47XG4gIGlmIChjb25maWcuc2VydmljZVNlY3JldCkge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdbdWVuZ2FnZS1wbGF0Zm9ybS1zZGtdIHNlcnZpY2VTZWNyZXQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIGJyb3dzZXIgZW52aXJvbm1lbnRzLiAnICtcbiAgICAgICAgJ1NlcnZpY2UgY3JlZGVudGlhbHMgaW4gYnJvd3NlciBidW5kbGVzIGFyZSBwdWJsaWNseSB2aXNpYmxlLiAnICtcbiAgICAgICAgJ1VzZSBgYXV0aFRva2VuYCAoYSBCZWFyZXIgb2J0YWluZWQgdmlhIE9BdXRoKSBvciBgc2Vzc2lvblRva2VuYCBpbnN0ZWFkLicsXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './audit';
|
|
2
2
|
export * from './business';
|
|
3
3
|
export * from './zones';
|
|
4
|
+
export * from './wallet';
|
|
4
5
|
export * from './errors';
|
|
5
6
|
export { auth } from './auth';
|
|
6
7
|
export type { PkcePair, AuthorizeUrlInput, ExchangeCodeInput, RefreshInput, TokenPair, } from './auth';
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ exports.createClient = exports.DEFAULT_BASE_URL = exports.auth = void 0;
|
|
|
18
18
|
__exportStar(require("./audit"), exports);
|
|
19
19
|
__exportStar(require("./business"), exports);
|
|
20
20
|
__exportStar(require("./zones"), exports);
|
|
21
|
+
__exportStar(require("./wallet"), exports);
|
|
21
22
|
__exportStar(require("./errors"), exports);
|
|
22
23
|
var auth_1 = require("./auth");
|
|
23
24
|
Object.defineProperty(exports, "auth", { enumerable: true, get: function () { return auth_1.auth; } });
|
|
@@ -25,4 +26,4 @@ var config_1 = require("./config");
|
|
|
25
26
|
Object.defineProperty(exports, "DEFAULT_BASE_URL", { enumerable: true, get: function () { return config_1.DEFAULT_BASE_URL; } });
|
|
26
27
|
var client_1 = require("./client");
|
|
27
28
|
Object.defineProperty(exports, "createClient", { enumerable: true, get: function () { return client_1.createClient; } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsNkNBQTJCO0FBQzNCLDBDQUF3QjtBQUN4QiwyQ0FBeUI7QUFDekIsMkNBQXlCO0FBQ3pCLCtCQUE4QjtBQUFyQiw0RkFBQSxJQUFJLE9BQUE7QUFRYixtQ0FNa0I7QUFEaEIsMEdBQUEsZ0JBQWdCLE9BQUE7QUFFbEIsbUNBQWdGO0FBQXZFLHNHQUFBLFlBQVksT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXVkaXQnO1xuZXhwb3J0ICogZnJvbSAnLi9idXNpbmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL3pvbmVzJztcbmV4cG9ydCAqIGZyb20gJy4vd2FsbGV0JztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3JzJztcbmV4cG9ydCB7IGF1dGggfSBmcm9tICcuL2F1dGgnO1xuZXhwb3J0IHR5cGUge1xuICBQa2NlUGFpcixcbiAgQXV0aG9yaXplVXJsSW5wdXQsXG4gIEV4Y2hhbmdlQ29kZUlucHV0LFxuICBSZWZyZXNoSW5wdXQsXG4gIFRva2VuUGFpcixcbn0gZnJvbSAnLi9hdXRoJztcbmV4cG9ydCB7XG4gIHR5cGUgUGxhdGZvcm1BdXRoLFxuICB0eXBlIFBsYXRmb3JtQXV0aElucHV0LFxuICB0eXBlIFBsYXRmb3JtQ29uZmlnLFxuICB0eXBlIFBsYXRmb3JtQ29uZmlnSW5wdXQsXG4gIERFRkFVTFRfQkFTRV9VUkwsXG59IGZyb20gJy4vY29uZmlnJztcbmV4cG9ydCB7IGNyZWF0ZUNsaWVudCwgdHlwZSBDbGllbnRDb25maWcsIHR5cGUgUGxhdGZvcm1DbGllbnQgfSBmcm9tICcuL2NsaWVudCc7XG4iXX0=
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { type PlatformAuth, type PlatformAuthInput, type PlatformConfigInput } from '../config';
|
|
2
|
+
import type { CreditInput, Currency, DebitInput, GetWalletOptions, ListTransactionsFilter, TransactionPage, TransactionResult, WalletBalance, WalletInstance, WalletTransaction } from './schema';
|
|
3
|
+
/**
|
|
4
|
+
* A handle to one business wallet. Cheap to create — `getWallet(...)`
|
|
5
|
+
* does no I/O. The wallet is resolved server-side on the first
|
|
6
|
+
* operation, so `UnresolvableWalletError` / `WalletNotFoundError`
|
|
7
|
+
* surface from the operation, not from `getWallet()`.
|
|
8
|
+
*/
|
|
9
|
+
export interface Wallet {
|
|
10
|
+
/** GET /v1/wallet/balance — resolves the wallet and returns its balance + currency. */
|
|
11
|
+
getBalance(): Promise<WalletBalance>;
|
|
12
|
+
/** GET /v1/wallet/instance — wallet identity + currency, without the balance. */
|
|
13
|
+
getInstance(): Promise<WalletInstance>;
|
|
14
|
+
/** The wallet's currency `{code, symbol}` (a slice of getInstance()). */
|
|
15
|
+
getCurrency(): Promise<Currency>;
|
|
16
|
+
/** POST /v1/wallet/transactions (type=debit). Idempotent on `referenceId`. */
|
|
17
|
+
debit(input: DebitInput): Promise<TransactionResult>;
|
|
18
|
+
/** POST /v1/wallet/transactions (type=credit). Pass `reversalOf` for a refund. */
|
|
19
|
+
credit(input: CreditInput): Promise<TransactionResult>;
|
|
20
|
+
/** GET /v1/wallet/transactions — newest-first, keyset-paginated. */
|
|
21
|
+
listTransactions(filter?: ListTransactionsFilter): Promise<TransactionPage>;
|
|
22
|
+
/** GET /v1/wallet/transactions/:id — scoped to this wallet. */
|
|
23
|
+
getTransaction(id: string): Promise<WalletTransaction>;
|
|
24
|
+
}
|
|
25
|
+
export interface WalletClient {
|
|
26
|
+
config(input: PlatformConfigInput): WalletClient;
|
|
27
|
+
auth(input: PlatformAuthInput | PlatformAuth): WalletClient;
|
|
28
|
+
/**
|
|
29
|
+
* Build a handle to a business wallet. Synchronous and I/O-free — it
|
|
30
|
+
* only parses `id`. Requires a service token carrying the relevant
|
|
31
|
+
* `wallet.*` scope for the operations on the returned handle.
|
|
32
|
+
*/
|
|
33
|
+
getWallet(opts: GetWalletOptions): Wallet;
|
|
34
|
+
}
|
|
35
|
+
export declare class WalletApiError extends Error {
|
|
36
|
+
readonly status: number;
|
|
37
|
+
readonly body: string;
|
|
38
|
+
constructor(status: number, body: string);
|
|
39
|
+
}
|
|
40
|
+
/** A debit would overdraw the wallet; nothing was moved (HTTP 409). */
|
|
41
|
+
export declare class InsufficientBalanceError extends WalletApiError {
|
|
42
|
+
readonly balanceMinor: number;
|
|
43
|
+
constructor(balanceMinor: number, body: string);
|
|
44
|
+
}
|
|
45
|
+
/** A refund would push total reversals past the original debit (HTTP 409). */
|
|
46
|
+
export declare class OverRefundError extends WalletApiError {
|
|
47
|
+
constructor(body: string);
|
|
48
|
+
}
|
|
49
|
+
/** `reversalOf` doesn't reference a valid debit on this wallet (HTTP 422). */
|
|
50
|
+
export declare class InvalidReversalError extends WalletApiError {
|
|
51
|
+
constructor(body: string);
|
|
52
|
+
}
|
|
53
|
+
/** A `referenceId` was reused with a different amount/type/service (HTTP 409). */
|
|
54
|
+
export declare class IdempotencyConflictError extends WalletApiError {
|
|
55
|
+
constructor(body: string);
|
|
56
|
+
}
|
|
57
|
+
/** The business, or the business its `bId_deduction` points to, does not exist (HTTP 422). */
|
|
58
|
+
export declare class UnresolvableWalletError extends WalletApiError {
|
|
59
|
+
constructor(body: string);
|
|
60
|
+
}
|
|
61
|
+
/** No wallet document, or no such transaction on this wallet (HTTP 404). */
|
|
62
|
+
export declare class WalletNotFoundError extends WalletApiError {
|
|
63
|
+
constructor(body: string);
|
|
64
|
+
}
|
|
65
|
+
export declare function createWalletClient(input?: PlatformConfigInput): WalletClient;
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WalletNotFoundError = exports.UnresolvableWalletError = exports.IdempotencyConflictError = exports.InvalidReversalError = exports.OverRefundError = exports.InsufficientBalanceError = exports.WalletApiError = void 0;
|
|
4
|
+
exports.createWalletClient = createWalletClient;
|
|
5
|
+
const config_1 = require("../config");
|
|
6
|
+
const http_1 = require("../http");
|
|
7
|
+
class WalletApiError extends Error {
|
|
8
|
+
status;
|
|
9
|
+
body;
|
|
10
|
+
constructor(status, body) {
|
|
11
|
+
super(`wallet API ${status}: ${body}`);
|
|
12
|
+
this.name = 'WalletApiError';
|
|
13
|
+
this.status = status;
|
|
14
|
+
this.body = body;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.WalletApiError = WalletApiError;
|
|
18
|
+
/** A debit would overdraw the wallet; nothing was moved (HTTP 409). */
|
|
19
|
+
class InsufficientBalanceError extends WalletApiError {
|
|
20
|
+
balanceMinor;
|
|
21
|
+
constructor(balanceMinor, body) {
|
|
22
|
+
super(409, body);
|
|
23
|
+
this.name = 'InsufficientBalanceError';
|
|
24
|
+
this.balanceMinor = balanceMinor;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.InsufficientBalanceError = InsufficientBalanceError;
|
|
28
|
+
/** A refund would push total reversals past the original debit (HTTP 409). */
|
|
29
|
+
class OverRefundError extends WalletApiError {
|
|
30
|
+
constructor(body) {
|
|
31
|
+
super(409, body);
|
|
32
|
+
this.name = 'OverRefundError';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.OverRefundError = OverRefundError;
|
|
36
|
+
/** `reversalOf` doesn't reference a valid debit on this wallet (HTTP 422). */
|
|
37
|
+
class InvalidReversalError extends WalletApiError {
|
|
38
|
+
constructor(body) {
|
|
39
|
+
super(422, body);
|
|
40
|
+
this.name = 'InvalidReversalError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.InvalidReversalError = InvalidReversalError;
|
|
44
|
+
/** A `referenceId` was reused with a different amount/type/service (HTTP 409). */
|
|
45
|
+
class IdempotencyConflictError extends WalletApiError {
|
|
46
|
+
constructor(body) {
|
|
47
|
+
super(409, body);
|
|
48
|
+
this.name = 'IdempotencyConflictError';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.IdempotencyConflictError = IdempotencyConflictError;
|
|
52
|
+
/** The business, or the business its `bId_deduction` points to, does not exist (HTTP 422). */
|
|
53
|
+
class UnresolvableWalletError extends WalletApiError {
|
|
54
|
+
constructor(body) {
|
|
55
|
+
super(422, body);
|
|
56
|
+
this.name = 'UnresolvableWalletError';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.UnresolvableWalletError = UnresolvableWalletError;
|
|
60
|
+
/** No wallet document, or no such transaction on this wallet (HTTP 404). */
|
|
61
|
+
class WalletNotFoundError extends WalletApiError {
|
|
62
|
+
constructor(body) {
|
|
63
|
+
super(404, body);
|
|
64
|
+
this.name = 'WalletNotFoundError';
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.WalletNotFoundError = WalletNotFoundError;
|
|
68
|
+
const BUSINESS_ID_RE = /^business:(\d+)$/;
|
|
69
|
+
/** Parse a typed wallet id (`"business:8841"`) into the numeric business id. */
|
|
70
|
+
function parseBusinessId(id) {
|
|
71
|
+
const match = BUSINESS_ID_RE.exec(id);
|
|
72
|
+
if (!match) {
|
|
73
|
+
throw new Error(`wallet.getWallet: id must look like "business:<positive integer>" (got "${id}")`);
|
|
74
|
+
}
|
|
75
|
+
return Number.parseInt(match[1], 10);
|
|
76
|
+
}
|
|
77
|
+
/** Map a non-2xx wallet response to the most specific typed error. */
|
|
78
|
+
function walletError(status, body) {
|
|
79
|
+
let code;
|
|
80
|
+
let balanceMinor;
|
|
81
|
+
try {
|
|
82
|
+
const parsed = JSON.parse(body);
|
|
83
|
+
code = parsed.error;
|
|
84
|
+
balanceMinor = parsed.balanceMinor;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// non-JSON body — fall through to a generic error
|
|
88
|
+
}
|
|
89
|
+
if (status === 409 && code === 'insufficient_balance') {
|
|
90
|
+
return new InsufficientBalanceError(balanceMinor ?? 0, body);
|
|
91
|
+
}
|
|
92
|
+
if (status === 409 && code === 'over_refund')
|
|
93
|
+
return new OverRefundError(body);
|
|
94
|
+
if (status === 409 && code === 'idempotency_conflict')
|
|
95
|
+
return new IdempotencyConflictError(body);
|
|
96
|
+
if (status === 422 && code === 'invalid_reversal')
|
|
97
|
+
return new InvalidReversalError(body);
|
|
98
|
+
if (status === 422 && code === 'unresolvable_wallet')
|
|
99
|
+
return new UnresolvableWalletError(body);
|
|
100
|
+
if (status === 404)
|
|
101
|
+
return new WalletNotFoundError(body);
|
|
102
|
+
return new WalletApiError(status, body);
|
|
103
|
+
}
|
|
104
|
+
function createWalletClient(input = {}) {
|
|
105
|
+
const state = new config_1.ConfigState();
|
|
106
|
+
state.apply(input);
|
|
107
|
+
const client = {
|
|
108
|
+
config(opts) {
|
|
109
|
+
state.apply(opts);
|
|
110
|
+
return client;
|
|
111
|
+
},
|
|
112
|
+
auth(opts) {
|
|
113
|
+
state.setAuth(opts);
|
|
114
|
+
return client;
|
|
115
|
+
},
|
|
116
|
+
getWallet(opts) {
|
|
117
|
+
// Parse eagerly so a malformed id fails fast at the call site,
|
|
118
|
+
// but do NOT resolve the wallet here — that happens on the first
|
|
119
|
+
// operation against the handle.
|
|
120
|
+
const businessId = parseBusinessId(opts.id);
|
|
121
|
+
const forceChildWallet = opts.forceChildWallet === true;
|
|
122
|
+
const baseParams = () => {
|
|
123
|
+
const p = new URLSearchParams({ businessId: String(businessId) });
|
|
124
|
+
if (forceChildWallet)
|
|
125
|
+
p.set('forceChildWallet', 'true');
|
|
126
|
+
return p;
|
|
127
|
+
};
|
|
128
|
+
const postTransaction = async (type, body) => {
|
|
129
|
+
const path = '/v1/wallet/transactions';
|
|
130
|
+
const payload = JSON.stringify({ businessId, forceChildWallet, type, ...body });
|
|
131
|
+
const config = state.resolve();
|
|
132
|
+
const res = await (0, http_1.sendWithAuthRetry)(config, {
|
|
133
|
+
method: 'POST',
|
|
134
|
+
path,
|
|
135
|
+
url: `${config.baseUrl}${path}`,
|
|
136
|
+
body: payload,
|
|
137
|
+
});
|
|
138
|
+
if (!res.ok)
|
|
139
|
+
throw walletError(res.status, await res.text());
|
|
140
|
+
return (await res.json());
|
|
141
|
+
};
|
|
142
|
+
const wallet = {
|
|
143
|
+
async getBalance() {
|
|
144
|
+
const path = '/v1/wallet/balance';
|
|
145
|
+
const config = state.resolve();
|
|
146
|
+
const res = await (0, http_1.sendWithAuthRetry)(config, {
|
|
147
|
+
method: 'GET',
|
|
148
|
+
path,
|
|
149
|
+
url: `${config.baseUrl}${path}?${baseParams().toString()}`,
|
|
150
|
+
});
|
|
151
|
+
if (!res.ok)
|
|
152
|
+
throw walletError(res.status, await res.text());
|
|
153
|
+
return (await res.json());
|
|
154
|
+
},
|
|
155
|
+
async getInstance() {
|
|
156
|
+
const path = '/v1/wallet/instance';
|
|
157
|
+
const config = state.resolve();
|
|
158
|
+
const res = await (0, http_1.sendWithAuthRetry)(config, {
|
|
159
|
+
method: 'GET',
|
|
160
|
+
path,
|
|
161
|
+
url: `${config.baseUrl}${path}?${baseParams().toString()}`,
|
|
162
|
+
});
|
|
163
|
+
if (!res.ok)
|
|
164
|
+
throw walletError(res.status, await res.text());
|
|
165
|
+
return (await res.json());
|
|
166
|
+
},
|
|
167
|
+
async getCurrency() {
|
|
168
|
+
return (await wallet.getInstance()).currency;
|
|
169
|
+
},
|
|
170
|
+
debit(body) {
|
|
171
|
+
return postTransaction('debit', body);
|
|
172
|
+
},
|
|
173
|
+
credit(body) {
|
|
174
|
+
return postTransaction('credit', body);
|
|
175
|
+
},
|
|
176
|
+
async listTransactions(filter = {}) {
|
|
177
|
+
const p = baseParams();
|
|
178
|
+
if (filter.type)
|
|
179
|
+
p.set('type', filter.type);
|
|
180
|
+
if (filter.from)
|
|
181
|
+
p.set('from', filter.from);
|
|
182
|
+
if (filter.to)
|
|
183
|
+
p.set('to', filter.to);
|
|
184
|
+
if (filter.service !== undefined)
|
|
185
|
+
p.set('service', String(filter.service));
|
|
186
|
+
if (filter.referenceId)
|
|
187
|
+
p.set('referenceId', filter.referenceId);
|
|
188
|
+
if (filter.tag)
|
|
189
|
+
p.set('tag', filter.tag);
|
|
190
|
+
if (filter.cursor)
|
|
191
|
+
p.set('cursor', filter.cursor);
|
|
192
|
+
if (filter.limit !== undefined)
|
|
193
|
+
p.set('limit', String(filter.limit));
|
|
194
|
+
const path = '/v1/wallet/transactions';
|
|
195
|
+
const config = state.resolve();
|
|
196
|
+
const res = await (0, http_1.sendWithAuthRetry)(config, {
|
|
197
|
+
method: 'GET',
|
|
198
|
+
path,
|
|
199
|
+
url: `${config.baseUrl}${path}?${p.toString()}`,
|
|
200
|
+
});
|
|
201
|
+
if (!res.ok)
|
|
202
|
+
throw walletError(res.status, await res.text());
|
|
203
|
+
return (await res.json());
|
|
204
|
+
},
|
|
205
|
+
async getTransaction(id) {
|
|
206
|
+
const path = `/v1/wallet/transactions/${id}`;
|
|
207
|
+
const config = state.resolve();
|
|
208
|
+
const res = await (0, http_1.sendWithAuthRetry)(config, {
|
|
209
|
+
method: 'GET',
|
|
210
|
+
path,
|
|
211
|
+
url: `${config.baseUrl}${path}?${baseParams().toString()}`,
|
|
212
|
+
});
|
|
213
|
+
if (!res.ok)
|
|
214
|
+
throw walletError(res.status, await res.text());
|
|
215
|
+
return (await res.json());
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
return wallet;
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
return client;
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhbGxldC9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUpBLGdEQWdIQztBQXZRRCxzQ0FLbUI7QUFDbkIsa0NBQTRDO0FBZ0Q1QyxNQUFhLGNBQWUsU0FBUSxLQUFLO0lBQzlCLE1BQU0sQ0FBUztJQUNmLElBQUksQ0FBUztJQUV0QixZQUFZLE1BQWMsRUFBRSxJQUFZO1FBQ3RDLEtBQUssQ0FBQyxjQUFjLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBVkQsd0NBVUM7QUFFRCx1RUFBdUU7QUFDdkUsTUFBYSx3QkFBeUIsU0FBUSxjQUFjO0lBQ2pELFlBQVksQ0FBUztJQUM5QixZQUFZLFlBQW9CLEVBQUUsSUFBWTtRQUM1QyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsMEJBQTBCLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztDQUNGO0FBUEQsNERBT0M7QUFFRCw4RUFBOEU7QUFDOUUsTUFBYSxlQUFnQixTQUFRLGNBQWM7SUFDakQsWUFBWSxJQUFZO1FBQ3RCLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFMRCwwQ0FLQztBQUVELDhFQUE4RTtBQUM5RSxNQUFhLG9CQUFxQixTQUFRLGNBQWM7SUFDdEQsWUFBWSxJQUFZO1FBQ3RCLEtBQUssQ0FBQyxHQUFHLEVBQUUsSUFBSSxD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LE1BQU0sV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDN0QsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFvQixDQUFDO2dCQUMvQyxDQUFDO2dCQUNELEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRTtvQkFDckIsTUFBTSxJQUFJLEdBQUcsMkJBQTJCLEVBQUUsRUFBRSxDQUFDO29CQUM3QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQy9CLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSx3QkFBaUIsRUFBQyxNQUFNLEVBQUU7d0JBQzFDLE1BQU0sRUFBRSxLQUFLO3dCQUNiLElBQUk7d0JBQ0osR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7cUJBQzNELENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQUUsTUFBTSxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUM3RCxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQXNCLENBQUM7Z0JBQ2pELENBQUM7YUFDRixDQUFDO1lBQ0YsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztLQUNGLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmlnU3RhdGUsXG4gIHR5cGUgUGxhdGZvcm1BdXRoLFxuICB0eXBlIFBsYXRmb3JtQXV0aElucHV0LFxuICB0eXBlIFBsYXRmb3JtQ29uZmlnSW5wdXQsXG59IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBzZW5kV2l0aEF1dGhSZXRyeSB9IGZyb20gJy4uL2h0dHAnO1xuaW1wb3J0IHR5cGUge1xuICBDcmVkaXRJbnB1dCxcbiAgQ3VycmVuY3ksXG4gIERlYml0SW5wdXQsXG4gIEdldFdhbGxldE9wdGlvbnMsXG4gIExpc3RUcmFuc2FjdGlvbnNGaWx0ZXIsXG4gIFRyYW5zYWN0aW9uUGFnZSxcbiAgVHJhbnNhY3Rpb25SZXN1bHQsXG4gIFdhbGxldEJhbGFuY2UsXG4gIFdhbGxldEluc3RhbmNlLFxuICBXYWxsZXRUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9zY2hlbWEnO1xuXG4vKipcbiAqIEEgaGFuZGxlIHRvIG9uZSBidXNpbmVzcyB3YWxsZXQuIENoZWFwIHRvIGNyZWF0ZSDigJQgYGdldFdhbGxldCguLi4pYFxuICogZG9lcyBubyBJL08uIFRoZSB3YWxsZXQgaXMgcmVzb2x2ZWQgc2VydmVyLXNpZGUgb24gdGhlIGZpcnN0XG4gKiBvcGVyYXRpb24sIHNvIGBVbnJlc29sdmFibGVXYWxsZXRFcnJvcmAgLyBgV2FsbGV0Tm90Rm91bmRFcnJvcmBcbiAqIHN1cmZhY2UgZnJvbSB0aGUgb3BlcmF0aW9uLCBub3QgZnJvbSBgZ2V0V2FsbGV0KClgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdhbGxldCB7XG4gIC8qKiBHRVQgL3YxL3dhbGxldC9iYWxhbmNlIOKAlCByZXNvbHZlcyB0aGUgd2FsbGV0IGFuZCByZXR1cm5zIGl0cyBiYWxhbmNlICsgY3VycmVuY3kuICovXG4gIGdldEJhbGFuY2UoKTogUHJvbWlzZTxXYWxsZXRCYWxhbmNlPjtcbiAgLyoqIEdFVCAvdjEvd2FsbGV0L2luc3RhbmNlIOKAlCB3YWxsZXQgaWRlbnRpdHkgKyBjdXJyZW5jeSwgd2l0aG91dCB0aGUgYmFsYW5jZS4gKi9cbiAgZ2V0SW5zdGFuY2UoKTogUHJvbWlzZTxXYWxsZXRJbnN0YW5jZT47XG4gIC8qKiBUaGUgd2FsbGV0J3MgY3VycmVuY3kgYHtjb2RlLCBzeW1ib2x9YCAoYSBzbGljZSBvZiBnZXRJbnN0YW5jZSgpKS4gKi9cbiAgZ2V0Q3VycmVuY3koKTogUHJvbWlzZTxDdXJyZW5jeT47XG4gIC8qKiBQT1NUIC92MS93YWxsZXQvdHJhbnNhY3Rpb25zICh0eXBlPWRlYml0KS4gSWRlbXBvdGVudCBvbiBgcmVmZXJlbmNlSWRgLiAqL1xuICBkZWJpdChpbnB1dDogRGViaXRJbnB1dCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZXN1bHQ+O1xuICAvKiogUE9TVCAvdjEvd2FsbGV0L3RyYW5zYWN0aW9ucyAodHlwZT1jcmVkaXQpLiBQYXNzIGByZXZlcnNhbE9mYCBmb3IgYSByZWZ1bmQuICovXG4gIGNyZWRpdChpbnB1dDogQ3JlZGl0SW5wdXQpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVzdWx0PjtcbiAgLyoqIEdFVCAvdjEvd2FsbGV0L3RyYW5zYWN0aW9ucyDigJQgbmV3ZXN0LWZpcnN0LCBrZXlzZXQtcGFnaW5hdGVkLiAqL1xuICBsaXN0VHJhbnNhY3Rpb25zKGZpbHRlcj86IExpc3RUcmFuc2FjdGlvbnNGaWx0ZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uUGFnZT47XG4gIC8qKiBHRVQgL3YxL3dhbGxldC90cmFuc2FjdGlvbnMvOmlkIOKAlCBzY29wZWQgdG8gdGhpcyB3YWxsZXQuICovXG4gIGdldFRyYW5zYWN0aW9uKGlkOiBzdHJpbmcpOiBQcm9taXNlPFdhbGxldFRyYW5zYWN0aW9uPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRDbGllbnQge1xuICBjb25maWcoaW5wdXQ6IFBsYXRmb3JtQ29uZmlnSW5wdXQpOiBXYWxsZXRDbGllbnQ7XG4gIGF1dGgoaW5wdXQ6IFBsYXRmb3JtQXV0aElucHV0IHwgUGxhdGZvcm1BdXRoKTogV2FsbGV0Q2xpZW50O1xuICAvKipcbiAgICogQnVpbGQgYSBoYW5kbGUgdG8gYSBidXNpbmVzcyB3YWxsZXQuIFN5bmNocm9ub3VzIGFuZCBJL08tZnJlZSDigJQgaXRcbiAgICogb25seSBwYXJzZXMgYGlkYC4gUmVxdWlyZXMgYSBzZXJ2aWNlIHRva2VuIGNhcnJ5aW5nIHRoZSByZWxldmFudFxuICAgKiBgd2FsbGV0LipgIHNjb3BlIGZvciB0aGUgb3BlcmF0aW9ucyBvbiB0aGUgcmV0dXJuZWQgaGFuZGxlLlxuICAgKi9cbiAgZ2V0V2FsbGV0KG9wdHM6IEdldFdhbGxldE9wdGlvbnMpOiBXYWxsZXQ7XG59XG5cbmV4cG9ydCBjbGFzcyBXYWxsZXRBcGlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcmVhZG9ubHkgc3RhdHVzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGJvZHk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzdGF0dXM6IG51bWJlciwgYm9keTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYHdhbGxldCBBUEkgJHtzdGF0dXN9OiAke2JvZHl9YCk7XG4gICAgdGhpcy5uYW1lID0gJ1dhbGxldEFwaUVycm9yJztcbiAgICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgICB0aGlzLmJvZHkgPSBib2R5O1xuICB9XG59XG5cbi8qKiBBIGRlYml0IHdvdWxkIG92ZXJkcmF3IHRoZSB3YWxsZXQ7IG5vdGhpbmcgd2FzIG1vdmVkIChIVFRQIDQwOSkuICovXG5leHBvcnQgY2xhc3MgSW5zdWZmaWNpZW50QmFsYW5jZUVycm9yIGV4dGVuZHMgV2FsbGV0QXBpRXJyb3Ige1xuICByZWFkb25seSBiYWxhbmNlTWlub3I6IG51bWJlcjtcbiAgY29uc3RydWN0b3IoYmFsYW5jZU1pbm9yOiBudW1iZXIsIGJvZHk6IHN0cmluZykge1xuICAgIHN1cGVyKDQwOSwgYm9keSk7XG4gICAgdGhpcy5uYW1lID0gJ0luc3VmZmljaWVudEJhbGFuY2VFcnJvcic7XG4gICAgdGhpcy5iYWxhbmNlTWlub3IgPSBiYWxhbmNlTWlub3I7XG4gIH1cbn1cblxuLyoqIEEgcmVmdW5kIHdvdWxkIHB1c2ggdG90YWwgcmV2ZXJzYWxzIHBhc3QgdGhlIG9yaWdpbmFsIGRlYml0IChIVFRQIDQwOSkuICovXG5leHBvcnQgY2xhc3MgT3ZlclJlZnVuZEVycm9yIGV4dGVuZHMgV2FsbGV0QXBpRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihib2R5OiBzdHJpbmcpIHtcbiAgICBzdXBlcig0MDksIGJvZHkpO1xuICAgIHRoaXMubmFtZSA9ICdPdmVyUmVmdW5kRXJyb3InO1xuICB9XG59XG5cbi8qKiBgcmV2ZXJzYWxPZmAgZG9lc24ndCByZWZlcmVuY2UgYSB2YWxpZCBkZWJpdCBvbiB0aGlzIHdhbGxldCAoSFRUUCA0MjIpLiAqL1xuZXhwb3J0IGNsYXNzIEludmFsaWRSZXZlcnNhbEVycm9yIGV4dGVuZHMgV2FsbGV0QXBpRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihib2R5OiBzdHJpbmcpIHtcbiAgICBzdXBlcig0MjIsIGJvZHkpO1xuICAgIHRoaXMubmFtZSA9ICdJbnZhbGlkUmV2ZXJzYWxFcnJvcic7XG4gIH1cbn1cblxuLyoqIEEgYHJlZmVyZW5jZUlkYCB3YXMgcmV1c2VkIHdpdGggYSBkaWZmZXJlbnQgYW1vdW50L3R5cGUvc2VydmljZSAoSFRUUCA0MDkpLiAqL1xuZXhwb3J0IGNsYXNzIElkZW1wb3RlbmN5Q29uZmxpY3RFcnJvciBleHRlbmRzIFdhbGxldEFwaUVycm9yIHtcbiAgY29uc3RydWN0b3IoYm9keTogc3RyaW5nKSB7XG4gICAgc3VwZXIoNDA5LCBib2R5KTtcbiAgICB0aGlzLm5hbWUgPSAnSWRlbXBvdGVuY3lDb25mbGljdEVycm9yJztcbiAgfVxufVxuXG4vKiogVGhlIGJ1c2luZXNzLCBvciB0aGUgYnVzaW5lc3MgaXRzIGBiSWRfZGVkdWN0aW9uYCBwb2ludHMgdG8sIGRvZXMgbm90IGV4aXN0IChIVFRQIDQyMikuICovXG5leHBvcnQgY2xhc3MgVW5yZXNvbHZhYmxlV2FsbGV0RXJyb3IgZXh0ZW5kcyBXYWxsZXRBcGlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKGJvZHk6IHN0cmluZykge1xuICAgIHN1cGVyKDQyMiwgYm9keSk7XG4gICAgdGhpcy5uYW1lID0gJ1VucmVzb2x2YWJsZVdhbGxldEVycm9yJztcbiAgfVxufVxuXG4vKiogTm8gd2FsbGV0IGRvY3VtZW50LCBvciBubyBzdWNoIHRyYW5zYWN0aW9uIG9uIHRoaXMgd2FsbGV0IChIVFRQIDQwNCkuICovXG5leHBvcnQgY2xhc3MgV2FsbGV0Tm90Rm91bmRFcnJvciBleHRlbmRzIFdhbGxldEFwaUVycm9yIHtcbiAgY29uc3RydWN0b3IoYm9keTogc3RyaW5nKSB7XG4gICAgc3VwZXIoNDA0LCBib2R5KTtcbiAgICB0aGlzLm5hbWUgPSAnV2FsbGV0Tm90Rm91bmRFcnJvcic7XG4gIH1cbn1cblxuY29uc3QgQlVTSU5FU1NfSURfUkUgPSAvXmJ1c2luZXNzOihcXGQrKSQvO1xuXG4vKiogUGFyc2UgYSB0eXBlZCB3YWxsZXQgaWQgKGBcImJ1c2luZXNzOjg4NDFcImApIGludG8gdGhlIG51bWVyaWMgYnVzaW5lc3MgaWQuICovXG5mdW5jdGlvbiBwYXJzZUJ1c2luZXNzSWQoaWQ6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IG1hdGNoID0gQlVTSU5FU1NfSURfUkUuZXhlYyhpZCk7XG4gIGlmICghbWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgd2FsbGV0LmdldFdhbGxldDogaWQgbXVzdCBsb29rIGxpa2UgXCJidXNpbmVzczo8cG9zaXRpdmUgaW50ZWdlcj5cIiAoZ290IFwiJHtpZH1cIilgLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIE51bWJlci5wYXJzZUludChtYXRjaFsxXSwgMTApO1xufVxuXG4vKiogTWFwIGEgbm9uLTJ4eCB3YWxsZXQgcmVzcG9uc2UgdG8gdGhlIG1vc3Qgc3BlY2lmaWMgdHlwZWQgZXJyb3IuICovXG5mdW5jdGlvbiB3YWxsZXRFcnJvcihzdGF0dXM6IG51bWJlciwgYm9keTogc3RyaW5nKTogV2FsbGV0QXBpRXJyb3Ige1xuICBsZXQgY29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBsZXQgYmFsYW5jZU1pbm9yOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShib2R5KSBhcyB7IGVycm9yPzogc3RyaW5nOyBiYWxhbmNlTWlub3I/OiBudW1iZXIgfTtcbiAgICBjb2RlID0gcGFyc2VkLmVycm9yO1xuICAgIGJhbGFuY2VNaW5vciA9IHBhcnNlZC5iYWxhbmNlTWlub3I7XG4gIH0gY2F0Y2gge1xuICAgIC8vIG5vbi1KU09OIGJvZHkg4oCUIGZhbGwgdGhyb3VnaCB0byBhIGdlbmVyaWMgZXJyb3JcbiAgfVxuICBpZiAoc3RhdHVzID09PSA0MDkgJiYgY29kZSA9PT0gJ2luc3VmZmljaWVudF9iYWxhbmNlJykge1xuICAgIHJldHVybiBuZXcgSW5zdWZmaWNpZW50QmFsYW5jZUVycm9yKGJhbGFuY2VNaW5vciA/PyAwLCBib2R5KTtcbiAgfVxuICBpZiAoc3RhdHVzID09PSA0MDkgJiYgY29kZSA9PT0gJ292ZXJfcmVmdW5kJykgcmV0dXJuIG5ldyBPdmVyUmVmdW5kRXJyb3IoYm9keSk7XG4gIGlmIChzdGF0dXMgPT09IDQwOSAmJiBjb2RlID09PSAnaWRlbXBvdGVuY3lfY29uZmxpY3QnKSByZXR1cm4gbmV3IElkZW1wb3RlbmN5Q29uZmxpY3RFcnJvcihib2R5KTtcbiAgaWYgKHN0YXR1cyA9PT0gNDIyICYmIGNvZGUgPT09ICdpbnZhbGlkX3JldmVyc2FsJykgcmV0dXJuIG5ldyBJbnZhbGlkUmV2ZXJzYWxFcnJvcihib2R5KTtcbiAgaWYgKHN0YXR1cyA9PT0gNDIyICYmIGNvZGUgPT09ICd1bnJlc29sdmFibGVfd2FsbGV0JykgcmV0dXJuIG5ldyBVbnJlc29sdmFibGVXYWxsZXRFcnJvcihib2R5KTtcbiAgaWYgKHN0YXR1cyA9PT0gNDA0KSByZXR1cm4gbmV3IFdhbGxldE5vdEZvdW5kRXJyb3IoYm9keSk7XG4gIHJldHVybiBuZXcgV2FsbGV0QXBpRXJyb3Ioc3RhdHVzLCBib2R5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVdhbGxldENsaWVudChpbnB1dDogUGxhdGZvcm1Db25maWdJbnB1dCA9IHt9KTogV2FsbGV0Q2xpZW50IHtcbiAgY29uc3Qgc3RhdGUgPSBuZXcgQ29uZmlnU3RhdGUoKTtcbiAgc3RhdGUuYXBwbHkoaW5wdXQpO1xuXG4gIGNvbnN0IGNsaWVudDogV2FsbGV0Q2xpZW50ID0ge1xuICAgIGNvbmZpZyhvcHRzKSB7XG4gICAgICBzdGF0ZS5hcHBseShvcHRzKTtcbiAgICAgIHJldHVybiBjbGllbnQ7XG4gICAgfSxcbiAgICBhdXRoKG9wdHMpIHtcbiAgICAgIHN0YXRlLnNldEF1dGgob3B0cyk7XG4gICAgICByZXR1cm4gY2xpZW50O1xuICAgIH0sXG4gICAgZ2V0V2FsbGV0KG9wdHMpIHtcbiAgICAgIC8vIFBhcnNlIGVhZ2VybHkgc28gYSBtYWxmb3JtZWQgaWQgZmFpbHMgZmFzdCBhdCB0aGUgY2FsbCBzaXRlLFxuICAgICAgLy8gYnV0IGRvIE5PVCByZXNvbHZlIHRoZSB3YWxsZXQgaGVyZSDigJQgdGhhdCBoYXBwZW5zIG9uIHRoZSBmaXJzdFxuICAgICAgLy8gb3BlcmF0aW9uIGFnYWluc3QgdGhlIGhhbmRsZS5cbiAgICAgIGNvbnN0IGJ1c2luZXNzSWQgPSBwYXJzZUJ1c2luZXNzSWQob3B0cy5pZCk7XG4gICAgICBjb25zdCBmb3JjZUNoaWxkV2FsbGV0ID0gb3B0cy5mb3JjZUNoaWxkV2FsbGV0ID09PSB0cnVlO1xuXG4gICAgICBjb25zdCBiYXNlUGFyYW1zID0gKCk6IFVSTFNlYXJjaFBhcmFtcyA9PiB7XG4gICAgICAgIGNvbnN0IHAgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHsgYnVzaW5lc3NJZDogU3RyaW5nKGJ1c2luZXNzSWQpIH0pO1xuICAgICAgICBpZiAoZm9yY2VDaGlsZFdhbGxldCkgcC5zZXQoJ2ZvcmNlQ2hpbGRXYWxsZXQnLCAndHJ1ZScpO1xuICAgICAgICByZXR1cm4gcDtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBvc3RUcmFuc2FjdGlvbiA9IGFzeW5jIChcbiAgICAgICAgdHlwZTogJ2RlYml0JyB8ICdjcmVkaXQnLFxuICAgICAgICBib2R5OiBEZWJpdElucHV0IHwgQ3JlZGl0SW5wdXQsXG4gICAgICApOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVzdWx0PiA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSAnL3YxL3dhbGxldC90cmFuc2FjdGlvbnMnO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkoeyBidXNpbmVzc0lkLCBmb3JjZUNoaWxkV2FsbGV0LCB0eXBlLCAuLi5ib2R5IH0pO1xuICAgICAgICBjb25zdCBjb25maWcgPSBzdGF0ZS5yZXNvbHZlKCk7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmRXaXRoQXV0aFJldHJ5KGNvbmZpZywge1xuICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgdXJsOiBgJHtjb25maWcuYmFzZVVybH0ke3BhdGh9YCxcbiAgICAgICAgICBib2R5OiBwYXlsb2FkLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFyZXMub2spIHRocm93IHdhbGxldEVycm9yKHJlcy5zdGF0dXMsIGF3YWl0IHJlcy50ZXh0KCkpO1xuICAgICAgICByZXR1cm4gKGF3YWl0IHJlcy5qc29uKCkpIGFzIFRyYW5zYWN0aW9uUmVzdWx0O1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgd2FsbGV0OiBXYWxsZXQgPSB7XG4gICAgICAgIGFzeW5jIGdldEJhbGFuY2UoKSB7XG4gICAgICAgICAgY29uc3QgcGF0aCA9ICcvdjEvd2FsbGV0L2JhbGFuY2UnO1xuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLnJlc29sdmUoKTtcbiAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kV2l0aEF1dGhSZXRyeShjb25maWcsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgdXJsOiBgJHtjb25maWcuYmFzZVVybH0ke3BhdGh9PyR7YmFzZVBhcmFtcygpLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoIXJlcy5vaykgdGhyb3cgd2FsbGV0RXJyb3IocmVzLnN0YXR1cywgYXdhaXQgcmVzLnRleHQoKSk7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCByZXMuanNvbigpKSBhcyBXYWxsZXRCYWxhbmNlO1xuICAgICAgICB9LFxuICAgICAgICBhc3luYyBnZXRJbnN0YW5jZSgpIHtcbiAgICAgICAgICBjb25zdCBwYXRoID0gJy92MS93YWxsZXQvaW5zdGFuY2UnO1xuICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLnJlc29sdmUoKTtcbiAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kV2l0aEF1dGhSZXRyeShjb25maWcsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgdXJsOiBgJHtjb25maWcuYmFzZVVybH0ke3BhdGh9PyR7YmFzZVBhcmFtcygpLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoIXJlcy5vaykgdGhyb3cgd2FsbGV0RXJyb3IocmVzLnN0YXR1cywgYXdhaXQgcmVzLnRleHQoKSk7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCByZXMuanNvbigpKSBhcyBXYWxsZXRJbnN0YW5jZTtcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZ2V0Q3VycmVuY3koKSB7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCB3YWxsZXQuZ2V0SW5zdGFuY2UoKSkuY3VycmVuY3k7XG4gICAgICAgIH0sXG4gICAgICAgIGRlYml0KGJvZHkpIHtcbiAgICAgICAgICByZXR1cm4gcG9zdFRyYW5zYWN0aW9uKCdkZWJpdCcsIGJvZHkpO1xuICAgICAgICB9LFxuICAgICAgICBjcmVkaXQoYm9keSkge1xuICAgICAgICAgIHJldHVybiBwb3N0VHJhbnNhY3Rpb24oJ2NyZWRpdCcsIGJvZHkpO1xuICAgICAgICB9LFxuICAgICAgICBhc3luYyBsaXN0VHJhbnNhY3Rpb25zKGZpbHRlciA9IHt9KSB7XG4gICAgICAgICAgY29uc3QgcCA9IGJhc2VQYXJhbXMoKTtcbiAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUpIHAuc2V0KCd0eXBlJywgZmlsdGVyLnR5cGUpO1xuICAgICAgICAgIGlmIChmaWx0ZXIuZnJvbSkgcC5zZXQoJ2Zyb20nLCBmaWx0ZXIuZnJvbSk7XG4gICAgICAgICAgaWYgKGZpbHRlci50bykgcC5zZXQoJ3RvJywgZmlsdGVyLnRvKTtcbiAgICAgICAgICBpZiAoZmlsdGVyLnNlcnZpY2UgIT09IHVuZGVmaW5lZCkgcC5zZXQoJ3NlcnZpY2UnLCBTdHJpbmcoZmlsdGVyLnNlcnZpY2UpKTtcbiAgICAgICAgICBpZiAoZmlsdGVyLnJlZmVyZW5jZUlkKSBwLnNldCgncmVmZXJlbmNlSWQnLCBmaWx0ZXIucmVmZXJlbmNlSWQpO1xuICAgICAgICAgIGlmIChmaWx0ZXIudGFnKSBwLnNldCgndGFnJywgZmlsdGVyLnRhZyk7XG4gICAgICAgICAgaWYgKGZpbHRlci5jdXJzb3IpIHAuc2V0KCdjdXJzb3InLCBmaWx0ZXIuY3Vyc29yKTtcbiAgICAgICAgICBpZiAoZmlsdGVyLmxpbWl0ICE9PSB1bmRlZmluZWQpIHAuc2V0KCdsaW1pdCcsIFN0cmluZyhmaWx0ZXIubGltaXQpKTtcbiAgICAgICAgICBjb25zdCBwYXRoID0gJy92MS93YWxsZXQvdHJhbnNhY3Rpb25zJztcbiAgICAgICAgICBjb25zdCBjb25maWcgPSBzdGF0ZS5yZXNvbHZlKCk7XG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZFdpdGhBdXRoUmV0cnkoY29uZmlnLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHVybDogYCR7Y29uZmlnLmJhc2VVcmx9JHtwYXRofT8ke3AudG9TdHJpbmcoKX1gLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICghcmVzLm9rKSB0aHJvdyB3YWxsZXRFcnJvcihyZXMuc3RhdHVzLCBhd2FpdCByZXMudGV4dCgpKTtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJlcy5qc29uKCkpIGFzIFRyYW5zYWN0aW9uUGFnZTtcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgZ2V0VHJhbnNhY3Rpb24oaWQpIHtcbiAgICAgICAgICBjb25zdCBwYXRoID0gYC92MS93YWxsZXQvdHJhbnNhY3Rpb25zLyR7aWR9YDtcbiAgICAgICAgICBjb25zdCBjb25maWcgPSBzdGF0ZS5yZXNvbHZlKCk7XG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZFdpdGhBdXRoUmV0cnkoY29uZmlnLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHVybDogYCR7Y29uZmlnLmJhc2VVcmx9JHtwYXRofT8ke2Jhc2VQYXJhbXMoKS50b1N0cmluZygpfWAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKCFyZXMub2spIHRocm93IHdhbGxldEVycm9yKHJlcy5zdGF0dXMsIGF3YWl0IHJlcy50ZXh0KCkpO1xuICAgICAgICAgIHJldHVybiAoYXdhaXQgcmVzLmpzb24oKSkgYXMgV2FsbGV0VHJhbnNhY3Rpb247XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHdhbGxldDtcbiAgICB9LFxuICB9O1xuXG4gIHJldHVybiBjbGllbnQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { WalletRef, WalletBalance, WalletInstance, Currency, Amount, Balance, ServiceRef, GetWalletOptions, Breakup, WalletTags, DebitInput, CreditInput, TransactionResult, WalletTransaction, ListTransactionsFilter, TransactionPage, } from './schema';
|
|
2
|
+
export { Services, type Service } from './services';
|
|
3
|
+
export { createWalletClient, WalletApiError, InsufficientBalanceError, OverRefundError, InvalidReversalError, IdempotencyConflictError, UnresolvableWalletError, WalletNotFoundError, type WalletClient, type Wallet, } from './client';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WalletNotFoundError = exports.UnresolvableWalletError = exports.IdempotencyConflictError = exports.InvalidReversalError = exports.OverRefundError = exports.InsufficientBalanceError = exports.WalletApiError = exports.createWalletClient = exports.Services = void 0;
|
|
4
|
+
var services_1 = require("./services");
|
|
5
|
+
Object.defineProperty(exports, "Services", { enumerable: true, get: function () { return services_1.Services; } });
|
|
6
|
+
var client_1 = require("./client");
|
|
7
|
+
Object.defineProperty(exports, "createWalletClient", { enumerable: true, get: function () { return client_1.createWalletClient; } });
|
|
8
|
+
Object.defineProperty(exports, "WalletApiError", { enumerable: true, get: function () { return client_1.WalletApiError; } });
|
|
9
|
+
Object.defineProperty(exports, "InsufficientBalanceError", { enumerable: true, get: function () { return client_1.InsufficientBalanceError; } });
|
|
10
|
+
Object.defineProperty(exports, "OverRefundError", { enumerable: true, get: function () { return client_1.OverRefundError; } });
|
|
11
|
+
Object.defineProperty(exports, "InvalidReversalError", { enumerable: true, get: function () { return client_1.InvalidReversalError; } });
|
|
12
|
+
Object.defineProperty(exports, "IdempotencyConflictError", { enumerable: true, get: function () { return client_1.IdempotencyConflictError; } });
|
|
13
|
+
Object.defineProperty(exports, "UnresolvableWalletError", { enumerable: true, get: function () { return client_1.UnresolvableWalletError; } });
|
|
14
|
+
Object.defineProperty(exports, "WalletNotFoundError", { enumerable: true, get: function () { return client_1.WalletNotFoundError; } });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWtCQSx1Q0FBb0Q7QUFBM0Msb0dBQUEsUUFBUSxPQUFBO0FBQ2pCLG1DQVdrQjtBQVZoQiw0R0FBQSxrQkFBa0IsT0FBQTtBQUNsQix3R0FBQSxjQUFjLE9BQUE7QUFDZCxrSEFBQSx3QkFBd0IsT0FBQTtBQUN4Qix5R0FBQSxlQUFlLE9BQUE7QUFDZiw4R0FBQSxvQkFBb0IsT0FBQTtBQUNwQixrSEFBQSx3QkFBd0IsT0FBQTtBQUN4QixpSEFBQSx1QkFBdUIsT0FBQTtBQUN2Qiw2R0FBQSxtQkFBbUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHtcbiAgV2FsbGV0UmVmLFxuICBXYWxsZXRCYWxhbmNlLFxuICBXYWxsZXRJbnN0YW5jZSxcbiAgQ3VycmVuY3ksXG4gIEFtb3VudCxcbiAgQmFsYW5jZSxcbiAgU2VydmljZVJlZixcbiAgR2V0V2FsbGV0T3B0aW9ucyxcbiAgQnJlYWt1cCxcbiAgV2FsbGV0VGFncyxcbiAgRGViaXRJbnB1dCxcbiAgQ3JlZGl0SW5wdXQsXG4gIFRyYW5zYWN0aW9uUmVzdWx0LFxuICBXYWxsZXRUcmFuc2FjdGlvbixcbiAgTGlzdFRyYW5zYWN0aW9uc0ZpbHRlcixcbiAgVHJhbnNhY3Rpb25QYWdlLFxufSBmcm9tICcuL3NjaGVtYSc7XG5leHBvcnQgeyBTZXJ2aWNlcywgdHlwZSBTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5leHBvcnQge1xuICBjcmVhdGVXYWxsZXRDbGllbnQsXG4gIFdhbGxldEFwaUVycm9yLFxuICBJbnN1ZmZpY2llbnRCYWxhbmNlRXJyb3IsXG4gIE92ZXJSZWZ1bmRFcnJvcixcbiAgSW52YWxpZFJldmVyc2FsRXJyb3IsXG4gIElkZW1wb3RlbmN5Q29uZmxpY3RFcnJvcixcbiAgVW5yZXNvbHZhYmxlV2FsbGV0RXJyb3IsXG4gIFdhbGxldE5vdEZvdW5kRXJyb3IsXG4gIHR5cGUgV2FsbGV0Q2xpZW50LFxuICB0eXBlIFdhbGxldCxcbn0gZnJvbSAnLi9jbGllbnQnO1xuIl19
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { Service } from './services';
|
|
2
|
+
/**
|
|
3
|
+
* Wallet identity inside the platform wallet service. `childBusinessId`
|
|
4
|
+
* is `"0"` when the parent business's own wallet answered (parent-chain
|
|
5
|
+
* billing resolved on the outlet's behalf).
|
|
6
|
+
*/
|
|
7
|
+
export interface WalletRef {
|
|
8
|
+
parentBusinessId: string;
|
|
9
|
+
childBusinessId: string;
|
|
10
|
+
}
|
|
11
|
+
/** Currency descriptor for a wallet. */
|
|
12
|
+
export interface Currency {
|
|
13
|
+
/** ISO code, e.g. `"INR"`. */
|
|
14
|
+
code: string;
|
|
15
|
+
/** Display symbol, e.g. `"₹"`. */
|
|
16
|
+
symbol: string;
|
|
17
|
+
}
|
|
18
|
+
/** A transaction amount in major + integer minor units. */
|
|
19
|
+
export interface Amount {
|
|
20
|
+
amount: number;
|
|
21
|
+
amountMinor: number;
|
|
22
|
+
}
|
|
23
|
+
/** A balance in major + integer minor units. */
|
|
24
|
+
export interface Balance {
|
|
25
|
+
balance: number;
|
|
26
|
+
balanceMinor: number;
|
|
27
|
+
}
|
|
28
|
+
/** A chargeable service, as returned on a transaction. */
|
|
29
|
+
export interface ServiceRef {
|
|
30
|
+
id: number;
|
|
31
|
+
name: string;
|
|
32
|
+
}
|
|
33
|
+
export interface WalletBalance {
|
|
34
|
+
/** Balance in major units. */
|
|
35
|
+
balance: number;
|
|
36
|
+
/** Balance in integer minor units, per the wallet's currency. */
|
|
37
|
+
balanceMinor: number;
|
|
38
|
+
currency: Currency;
|
|
39
|
+
}
|
|
40
|
+
/** Wallet details (identity + currency), without the balance. */
|
|
41
|
+
export interface WalletInstance {
|
|
42
|
+
wallet: WalletRef;
|
|
43
|
+
currency: Currency;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Options for `wallet.getWallet(...)`.
|
|
47
|
+
*
|
|
48
|
+
* `id` is a typed entity reference, e.g. `"business:8841"` (same
|
|
49
|
+
* prefixed shape the platform uses for JWT subjects). Today only the
|
|
50
|
+
* `business:` prefix is supported.
|
|
51
|
+
*/
|
|
52
|
+
export interface GetWalletOptions {
|
|
53
|
+
id: string;
|
|
54
|
+
/**
|
|
55
|
+
* Force the business's own (child) wallet, bypassing parent-funding
|
|
56
|
+
* routing (`flash_configuration.bId_deduction`). Default `false` — the
|
|
57
|
+
* service resolves child-vs-parent automatically. No effect for a root
|
|
58
|
+
* business, which only has its own wallet.
|
|
59
|
+
*/
|
|
60
|
+
forceChildWallet?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** The GST split on a charge. Recorded on the ledger; the service does not compute GST. */
|
|
63
|
+
export interface Breakup {
|
|
64
|
+
subTotalMinor: number;
|
|
65
|
+
gstMinor: number;
|
|
66
|
+
gstRate: number;
|
|
67
|
+
}
|
|
68
|
+
/** Searchable key/value metadata attached to a transaction. */
|
|
69
|
+
export type WalletTags = Record<string, string>;
|
|
70
|
+
/** Fields common to a debit and a credit. */
|
|
71
|
+
interface TransactionInputBase {
|
|
72
|
+
/** Deterministic id of the business event — the idempotency key. */
|
|
73
|
+
referenceId: string;
|
|
74
|
+
/** Amount in integer minor units of the wallet's currency. */
|
|
75
|
+
amountMinor: number;
|
|
76
|
+
service: Service;
|
|
77
|
+
description: string;
|
|
78
|
+
breakup?: Breakup;
|
|
79
|
+
tags?: WalletTags;
|
|
80
|
+
}
|
|
81
|
+
export interface DebitInput extends TransactionInputBase {
|
|
82
|
+
/** Allow the balance to go negative (flash migration only — needs sign-off). */
|
|
83
|
+
allowNegative?: boolean;
|
|
84
|
+
}
|
|
85
|
+
export interface CreditInput extends TransactionInputBase {
|
|
86
|
+
/** Link a refund to the original debit's `id`; subject to the over-refund guard. */
|
|
87
|
+
reversalOf?: string;
|
|
88
|
+
}
|
|
89
|
+
/** What `debit()` / `credit()` return. */
|
|
90
|
+
export interface TransactionResult {
|
|
91
|
+
/** The wallet_transactions record id. Persist this; use as `reversalOf` for a refund. */
|
|
92
|
+
id: string;
|
|
93
|
+
/** `true` = a replay of an earlier identical referenceId; no money moved now. */
|
|
94
|
+
idempotent: boolean;
|
|
95
|
+
type: 'debit' | 'credit';
|
|
96
|
+
amount: Amount;
|
|
97
|
+
balanceBefore: Balance;
|
|
98
|
+
balanceAfter: Balance;
|
|
99
|
+
currency: Currency;
|
|
100
|
+
wallet: WalletRef;
|
|
101
|
+
}
|
|
102
|
+
/** A transaction as returned by `listTransactions()` / `getTransaction()`. */
|
|
103
|
+
export interface WalletTransaction {
|
|
104
|
+
id: string;
|
|
105
|
+
type: string;
|
|
106
|
+
amount: Amount;
|
|
107
|
+
service: ServiceRef;
|
|
108
|
+
description: string;
|
|
109
|
+
tags?: WalletTags;
|
|
110
|
+
reversalOf?: string;
|
|
111
|
+
balanceBefore: Balance;
|
|
112
|
+
balanceAfter: Balance;
|
|
113
|
+
timestamp: string;
|
|
114
|
+
currency: Currency;
|
|
115
|
+
wallet: WalletRef;
|
|
116
|
+
}
|
|
117
|
+
export interface ListTransactionsFilter {
|
|
118
|
+
type?: 'debit' | 'credit' | 'all';
|
|
119
|
+
from?: string;
|
|
120
|
+
to?: string;
|
|
121
|
+
service?: Service;
|
|
122
|
+
referenceId?: string;
|
|
123
|
+
/** Single tag filter as `key:value`. */
|
|
124
|
+
tag?: string;
|
|
125
|
+
cursor?: string;
|
|
126
|
+
limit?: number;
|
|
127
|
+
}
|
|
128
|
+
export interface TransactionPage {
|
|
129
|
+
transactions: WalletTransaction[];
|
|
130
|
+
nextCursor?: string;
|
|
131
|
+
}
|
|
132
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhbGxldC9zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG4vKipcbiAqIFdhbGxldCBpZGVudGl0eSBpbnNpZGUgdGhlIHBsYXRmb3JtIHdhbGxldCBzZXJ2aWNlLiBgY2hpbGRCdXNpbmVzc0lkYFxuICogaXMgYFwiMFwiYCB3aGVuIHRoZSBwYXJlbnQgYnVzaW5lc3MncyBvd24gd2FsbGV0IGFuc3dlcmVkIChwYXJlbnQtY2hhaW5cbiAqIGJpbGxpbmcgcmVzb2x2ZWQgb24gdGhlIG91dGxldCdzIGJlaGFsZikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0UmVmIHtcbiAgcGFyZW50QnVzaW5lc3NJZDogc3RyaW5nO1xuICBjaGlsZEJ1c2luZXNzSWQ6IHN0cmluZztcbn1cblxuLyoqIEN1cnJlbmN5IGRlc2NyaXB0b3IgZm9yIGEgd2FsbGV0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXJyZW5jeSB7XG4gIC8qKiBJU08gY29kZSwgZS5nLiBgXCJJTlJcImAuICovXG4gIGNvZGU6IHN0cmluZztcbiAgLyoqIERpc3BsYXkgc3ltYm9sLCBlLmcuIGBcIuKCuVwiYC4gKi9cbiAgc3ltYm9sOiBzdHJpbmc7XG59XG5cbi8qKiBBIHRyYW5zYWN0aW9uIGFtb3VudCBpbiBtYWpvciArIGludGVnZXIgbWlub3IgdW5pdHMuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtb3VudCB7XG4gIGFtb3VudDogbnVtYmVyO1xuICBhbW91bnRNaW5vcjogbnVtYmVyO1xufVxuXG4vKiogQSBiYWxhbmNlIGluIG1ham9yICsgaW50ZWdlciBtaW5vciB1bml0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFsYW5jZSB7XG4gIGJhbGFuY2U6IG51bWJlcjtcbiAgYmFsYW5jZU1pbm9yOiBudW1iZXI7XG59XG5cbi8qKiBBIGNoYXJnZWFibGUgc2VydmljZSwgYXMgcmV0dXJuZWQgb24gYSB0cmFuc2FjdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVJlZiB7XG4gIGlkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRCYWxhbmNlIHtcbiAgLyoqIEJhbGFuY2UgaW4gbWFqb3IgdW5pdHMuICovXG4gIGJhbGFuY2U6IG51bWJlcjtcbiAgLyoqIEJhbGFuY2UgaW4gaW50ZWdlciBtaW5vciB1bml0cywgcGVyIHRoZSB3YWxsZXQncyBjdXJyZW5jeS4gKi9cbiAgYmFsYW5jZU1pbm9yOiBudW1iZXI7XG4gIGN1cnJlbmN5OiBDdXJyZW5jeTtcbn1cblxuLyoqIFdhbGxldCBkZXRhaWxzIChpZGVudGl0eSArIGN1cnJlbmN5KSwgd2l0aG91dCB0aGUgYmFsYW5jZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0SW5zdGFuY2Uge1xuICB3YWxsZXQ6IFdhbGxldFJlZjtcbiAgY3VycmVuY3k6IEN1cnJlbmN5O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGB3YWxsZXQuZ2V0V2FsbGV0KC4uLilgLlxuICpcbiAqIGBpZGAgaXMgYSB0eXBlZCBlbnRpdHkgcmVmZXJlbmNlLCBlLmcuIGBcImJ1c2luZXNzOjg4NDFcImAgKHNhbWVcbiAqIHByZWZpeGVkIHNoYXBlIHRoZSBwbGF0Zm9ybSB1c2VzIGZvciBKV1Qgc3ViamVjdHMpLiBUb2RheSBvbmx5IHRoZVxuICogYGJ1c2luZXNzOmAgcHJlZml4IGlzIHN1cHBvcnRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRXYWxsZXRPcHRpb25zIHtcbiAgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEZvcmNlIHRoZSBidXNpbmVzcydzIG93biAoY2hpbGQpIHdhbGxldCwgYnlwYXNzaW5nIHBhcmVudC1mdW5kaW5nXG4gICAqIHJvdXRpbmcgKGBmbGFzaF9jb25maWd1cmF0aW9uLmJJZF9kZWR1Y3Rpb25gKS4gRGVmYXVsdCBgZmFsc2VgIOKAlCB0aGVcbiAgICogc2VydmljZSByZXNvbHZlcyBjaGlsZC12cy1wYXJlbnQgYXV0b21hdGljYWxseS4gTm8gZWZmZWN0IGZvciBhIHJvb3RcbiAgICogYnVzaW5lc3MsIHdoaWNoIG9ubHkgaGFzIGl0cyBvd24gd2FsbGV0LlxuICAgKi9cbiAgZm9yY2VDaGlsZFdhbGxldD86IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgR1NUIHNwbGl0IG9uIGEgY2hhcmdlLiBSZWNvcmRlZCBvbiB0aGUgbGVkZ2VyOyB0aGUgc2VydmljZSBkb2VzIG5vdCBjb21wdXRlIEdTVC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJlYWt1cCB7XG4gIHN1YlRvdGFsTWlub3I6IG51bWJlcjtcbiAgZ3N0TWlub3I6IG51bWJlcjtcbiAgZ3N0UmF0ZTogbnVtYmVyO1xufVxuXG4vKiogU2VhcmNoYWJsZSBrZXkvdmFsdWUgbWV0YWRhdGEgYXR0YWNoZWQgdG8gYSB0cmFuc2FjdGlvbi4gKi9cbmV4cG9ydCB0eXBlIFdhbGxldFRhZ3MgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4vKiogRmllbGRzIGNvbW1vbiB0byBhIGRlYml0IGFuZCBhIGNyZWRpdC4gKi9cbmludGVyZmFjZSBUcmFuc2FjdGlvbklucHV0QmFzZSB7XG4gIC8qKiBEZXRlcm1pbmlzdGljIGlkIG9mIHRoZSBidXNpbmVzcyBldmVudCDigJQgdGhlIGlkZW1wb3RlbmN5IGtleS4gKi9cbiAgcmVmZXJlbmNlSWQ6IHN0cmluZztcbiAgLyoqIEFtb3VudCBpbiBpbnRlZ2VyIG1pbm9yIHVuaXRzIG9mIHRoZSB3YWxsZXQncyBjdXJyZW5jeS4gKi9cbiAgYW1vdW50TWlub3I6IG51bWJlcjtcbiAgc2VydmljZTogU2VydmljZTtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgYnJlYWt1cD86IEJyZWFrdXA7XG4gIHRhZ3M/OiBXYWxsZXRUYWdzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlYml0SW5wdXQgZXh0ZW5kcyBUcmFuc2FjdGlvbklucHV0QmFzZSB7XG4gIC8qKiBBbGxvdyB0aGUgYmFsYW5jZSB0byBnbyBuZWdhdGl2ZSAoZmxhc2ggbWlncmF0aW9uIG9ubHkg4oCUIG5lZWRzIHNpZ24tb2ZmKS4gKi9cbiAgYWxsb3dOZWdhdGl2ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlZGl0SW5wdXQgZXh0ZW5kcyBUcmFuc2FjdGlvbklucHV0QmFzZSB7XG4gIC8qKiBMaW5rIGEgcmVmdW5kIHRvIHRoZSBvcmlnaW5hbCBkZWJpdCdzIGBpZGA7IHN1YmplY3QgdG8gdGhlIG92ZXItcmVmdW5kIGd1YXJkLiAqL1xuICByZXZlcnNhbE9mPzogc3RyaW5nO1xufVxuXG4vKiogV2hhdCBgZGViaXQoKWAgLyBgY3JlZGl0KClgIHJldHVybi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25SZXN1bHQge1xuICAvKiogVGhlIHdhbGxldF90cmFuc2FjdGlvbnMgcmVjb3JkIGlkLiBQZXJzaXN0IHRoaXM7IHVzZSBhcyBgcmV2ZXJzYWxPZmAgZm9yIGEgcmVmdW5kLiAqL1xuICBpZDogc3RyaW5nO1xuICAvKiogYHRydWVgID0gYSByZXBsYXkgb2YgYW4gZWFybGllciBpZGVudGljYWwgcmVmZXJlbmNlSWQ7IG5vIG1vbmV5IG1vdmVkIG5vdy4gKi9cbiAgaWRlbXBvdGVudDogYm9vbGVhbjtcbiAgdHlwZTogJ2RlYml0JyB8ICdjcmVkaXQnO1xuICBhbW91bnQ6IEFtb3VudDtcbiAgYmFsYW5jZUJlZm9yZTogQmFsYW5jZTtcbiAgYmFsYW5jZUFmdGVyOiBCYWxhbmNlO1xuICBjdXJyZW5jeTogQ3VycmVuY3k7XG4gIHdhbGxldDogV2FsbGV0UmVmO1xufVxuXG4vKiogQSB0cmFuc2FjdGlvbiBhcyByZXR1cm5lZCBieSBgbGlzdFRyYW5zYWN0aW9ucygpYCAvIGBnZXRUcmFuc2FjdGlvbigpYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0VHJhbnNhY3Rpb24ge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGFtb3VudDogQW1vdW50O1xuICBzZXJ2aWNlOiBTZXJ2aWNlUmVmO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB0YWdzPzogV2FsbGV0VGFncztcbiAgcmV2ZXJzYWxPZj86IHN0cmluZztcbiAgYmFsYW5jZUJlZm9yZTogQmFsYW5jZTtcbiAgYmFsYW5jZUFmdGVyOiBCYWxhbmNlO1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgY3VycmVuY3k6IEN1cnJlbmN5O1xuICB3YWxsZXQ6IFdhbGxldFJlZjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0VHJhbnNhY3Rpb25zRmlsdGVyIHtcbiAgdHlwZT86ICdkZWJpdCcgfCAnY3JlZGl0JyB8ICdhbGwnO1xuICBmcm9tPzogc3RyaW5nO1xuICB0bz86IHN0cmluZztcbiAgc2VydmljZT86IFNlcnZpY2U7XG4gIHJlZmVyZW5jZUlkPzogc3RyaW5nO1xuICAvKiogU2luZ2xlIHRhZyBmaWx0ZXIgYXMgYGtleTp2YWx1ZWAuICovXG4gIHRhZz86IHN0cmluZztcbiAgY3Vyc29yPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvblBhZ2Uge1xuICB0cmFuc2FjdGlvbnM6IFdhbGxldFRyYW5zYWN0aW9uW107XG4gIG5leHRDdXJzb3I/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chargeable services. The value is the legacy `service_id` stored on
|
|
3
|
+
* every ledger entry (so existing reports/invoicing keep working);
|
|
4
|
+
* callers reference the named constant instead of hardcoding the
|
|
5
|
+
* number. Extend as new chargeable services are added.
|
|
6
|
+
*/
|
|
7
|
+
export declare const Services: {
|
|
8
|
+
readonly RECHARGE: 0;
|
|
9
|
+
readonly SMS: 1;
|
|
10
|
+
readonly WHATSAPP: 4;
|
|
11
|
+
readonly FLASH_DELIVERY: 5;
|
|
12
|
+
readonly EMAIL: 10;
|
|
13
|
+
readonly ALERT: 40;
|
|
14
|
+
};
|
|
15
|
+
export type Service = (typeof Services)[keyof typeof Services];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Services = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Chargeable services. The value is the legacy `service_id` stored on
|
|
6
|
+
* every ledger entry (so existing reports/invoicing keep working);
|
|
7
|
+
* callers reference the named constant instead of hardcoding the
|
|
8
|
+
* number. Extend as new chargeable services are added.
|
|
9
|
+
*/
|
|
10
|
+
exports.Services = {
|
|
11
|
+
RECHARGE: 0,
|
|
12
|
+
SMS: 1,
|
|
13
|
+
WHATSAPP: 4,
|
|
14
|
+
FLASH_DELIVERY: 5,
|
|
15
|
+
EMAIL: 10,
|
|
16
|
+
ALERT: 40,
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L3NlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7OztHQUtHO0FBQ1UsUUFBQSxRQUFRLEdBQUc7SUFDdEIsUUFBUSxFQUFFLENBQUM7SUFDWCxHQUFHLEVBQUUsQ0FBQztJQUNOLFFBQVEsRUFBRSxDQUFDO0lBQ1gsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFQUFFLEVBQUU7SUFDVCxLQUFLLEVBQUUsRUFBRTtDQUNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoYXJnZWFibGUgc2VydmljZXMuIFRoZSB2YWx1ZSBpcyB0aGUgbGVnYWN5IGBzZXJ2aWNlX2lkYCBzdG9yZWQgb25cbiAqIGV2ZXJ5IGxlZGdlciBlbnRyeSAoc28gZXhpc3RpbmcgcmVwb3J0cy9pbnZvaWNpbmcga2VlcCB3b3JraW5nKTtcbiAqIGNhbGxlcnMgcmVmZXJlbmNlIHRoZSBuYW1lZCBjb25zdGFudCBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgdGhlXG4gKiBudW1iZXIuIEV4dGVuZCBhcyBuZXcgY2hhcmdlYWJsZSBzZXJ2aWNlcyBhcmUgYWRkZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBTZXJ2aWNlcyA9IHtcbiAgUkVDSEFSR0U6IDAsXG4gIFNNUzogMSxcbiAgV0hBVFNBUFA6IDQsXG4gIEZMQVNIX0RFTElWRVJZOiA1LFxuICBFTUFJTDogMTAsXG4gIEFMRVJUOiA0MCxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2UgPSAodHlwZW9mIFNlcnZpY2VzKVtrZXlvZiB0eXBlb2YgU2VydmljZXNdO1xuIl19
|
package/dist/zones/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type PlatformAuth, type PlatformAuthInput, type PlatformConfigInput } from '../config';
|
|
2
|
-
import type { ContainingInput, Zone, ZoneCreateInput, ZoneCreateResult, ZoneListOptions, ZoneListPage, ZonePatchInput, ZoneReplaceInput, ZoneSummary } from './schema';
|
|
2
|
+
import type { ContainingInput, IntersectingInput, NearbyInput, Zone, ZoneCreateInput, ZoneCreateResult, ZoneListOptions, ZoneListPage, ZoneNearby, ZonePatchInput, ZoneReplaceInput, ZoneSummary } from './schema';
|
|
3
3
|
export interface ZonesClient {
|
|
4
4
|
config(input: PlatformConfigInput): ZonesClient;
|
|
5
5
|
auth(input: PlatformAuthInput | PlatformAuth): ZonesClient;
|
|
@@ -29,6 +29,10 @@ export interface ZonesClient {
|
|
|
29
29
|
containing(input: ContainingInput): Promise<ZoneSummary[]>;
|
|
30
30
|
/** Sugar over containing({ point, ids: [zid] }). True iff the zone contains the point. */
|
|
31
31
|
contains(zid: string, point: ContainingInput['point']): Promise<boolean>;
|
|
32
|
+
/** POST /v1/zones/nearby - zones within `radiusMeters` of a point, ordered by distance asc. */
|
|
33
|
+
nearby(input: NearbyInput): Promise<ZoneNearby[]>;
|
|
34
|
+
/** POST /v1/zones/intersecting - zones whose geometry overlaps the given geometry. */
|
|
35
|
+
intersecting(input: IntersectingInput): Promise<ZoneSummary[]>;
|
|
32
36
|
}
|
|
33
37
|
export declare class ZonesApiError extends Error {
|
|
34
38
|
readonly status: number;
|
package/dist/zones/client.js
CHANGED
|
@@ -34,6 +34,22 @@ function assertPoint(label, point) {
|
|
|
34
34
|
throw new Error(`zones.${label}: lng must be in [-180, 180] (got ${lng})`);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
+
function assertGeometry(label, geometry) {
|
|
38
|
+
const type = geometry?.type;
|
|
39
|
+
if (type !== 'Polygon' && type !== 'MultiPolygon') {
|
|
40
|
+
throw new Error(`zones.${label}: geometry.type must be Polygon or MultiPolygon (got ${JSON.stringify(type)})`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function assertPositiveNumber(label, field, value) {
|
|
44
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
|
|
45
|
+
throw new Error(`zones.${label}: ${field} must be a positive number (got ${value})`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function assertPositiveInt(label, field, value) {
|
|
49
|
+
if (!Number.isInteger(value) || value <= 0) {
|
|
50
|
+
throw new Error(`zones.${label}: ${field} must be a positive integer (got ${value})`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
37
53
|
/**
|
|
38
54
|
* Build the `zones` namespace.
|
|
39
55
|
*
|
|
@@ -150,7 +166,40 @@ function createZonesClient(input = {}) {
|
|
|
150
166
|
const matches = await client.containing({ point, ids: [zid] });
|
|
151
167
|
return matches.length > 0;
|
|
152
168
|
},
|
|
169
|
+
async nearby(input) {
|
|
170
|
+
if (!input || typeof input !== 'object') {
|
|
171
|
+
throw new Error('zones.nearby: input must include `point`');
|
|
172
|
+
}
|
|
173
|
+
assertPoint('nearby', input.point);
|
|
174
|
+
assertPositiveNumber('nearby', 'radiusMeters', input.radiusMeters);
|
|
175
|
+
if (input.limit !== undefined)
|
|
176
|
+
assertPositiveInt('nearby', 'limit', input.limit);
|
|
177
|
+
if (input.ids !== undefined) {
|
|
178
|
+
for (const zid of input.ids)
|
|
179
|
+
assertUuid('nearby', zid);
|
|
180
|
+
}
|
|
181
|
+
const res = await send('POST', '/v1/zones/nearby', undefined, input);
|
|
182
|
+
const body = await expectJson(res);
|
|
183
|
+
return body.zones;
|
|
184
|
+
},
|
|
185
|
+
async intersecting(input) {
|
|
186
|
+
if (!input || typeof input !== 'object' || !input.geometry) {
|
|
187
|
+
throw new Error('zones.intersecting: input must include `geometry`');
|
|
188
|
+
}
|
|
189
|
+
assertGeometry('intersecting', input.geometry);
|
|
190
|
+
if (input.limit !== undefined)
|
|
191
|
+
assertPositiveInt('intersecting', 'limit', input.limit);
|
|
192
|
+
if (input.ids !== undefined) {
|
|
193
|
+
for (const zid of input.ids)
|
|
194
|
+
assertUuid('intersecting', zid);
|
|
195
|
+
}
|
|
196
|
+
if (input.excludeZid !== undefined)
|
|
197
|
+
assertUuid('intersecting', input.excludeZid);
|
|
198
|
+
const res = await send('POST', '/v1/zones/intersecting', undefined, input);
|
|
199
|
+
const body = await expectJson(res);
|
|
200
|
+
return body.zones;
|
|
201
|
+
},
|
|
153
202
|
};
|
|
154
203
|
return client;
|
|
155
204
|
}
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3pvbmVzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2RkEsOENBcUhDO0FBbE5ELHNDQUttQjtBQUNuQixrQ0FBNEM7QUFhNUMsTUFBTSxVQUFVLEdBQUcsaUVBQWlFLENBQUM7QUE2QnJGLE1BQWEsYUFBYyxTQUFRLEtBQUs7SUFDN0IsTUFBTSxDQUFTO0lBQ2YsSUFBSSxDQUFTO0lBRXRCLFlBQVksTUFBYyxFQUFFLElBQVk7UUFDdEMsS0FBSyxDQUFDLGFBQWEsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBVkQsc0NBVUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhLEVBQUUsR0FBVztJQUM1QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyw2QkFBNkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckYsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFhLEVBQUUsS0FBbUM7SUFDckUsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUN2QixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBRyxDQUFDO0lBQ3ZCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFL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R0FBRyxNQUFNLFVBQVUsQ0FBMkIsR0FBRyxDQUFDLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLO1lBQ3ZCLFVBQVUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMvRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLENBQUM7S0FDRixDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbmZpZ1N0YXRlLFxuICB0eXBlIFBsYXRmb3JtQXV0aCxcbiAgdHlwZSBQbGF0Zm9ybUF1dGhJbnB1dCxcbiAgdHlwZSBQbGF0Zm9ybUNvbmZpZ0lucHV0LFxufSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgc2VuZFdpdGhBdXRoUmV0cnkgfSBmcm9tICcuLi9odHRwJztcbmltcG9ydCB0eXBlIHtcbiAgQ29udGFpbmluZ0lucHV0LFxuICBab25lLFxuICBab25lQ3JlYXRlSW5wdXQsXG4gIFpvbmVDcmVhdGVSZXN1bHQsXG4gIFpvbmVMaXN0T3B0aW9ucyxcbiAgWm9uZUxpc3RQYWdlLFxuICBab25lUGF0Y2hJbnB1dCxcbiAgWm9uZVJlcGxhY2VJbnB1dCxcbiAgWm9uZVN1bW1hcnksXG59IGZyb20gJy4vc2NoZW1hJztcblxuY29uc3QgVVVJRF9SRUdFWCA9IC9eWzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17NH0tWzAtOWEtZl17MTJ9JC9pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFpvbmVzQ2xpZW50IHtcbiAgY29uZmlnKGlucHV0OiBQbGF0Zm9ybUNvbmZpZ0lucHV0KTogWm9uZXNDbGllbnQ7XG4gIGF1dGgoaW5wdXQ6IFBsYXRmb3JtQXV0aElucHV0IHwgUGxhdGZvcm1BdXRoKTogWm9uZXNDbGllbnQ7XG5cbiAgLyoqIFBPU1QgL3YxL3pvbmVzIC0gY3JlYXRlIGEgc2luZ2xlIHpvbmUuICovXG4gIGNyZWF0ZShpbnB1dDogWm9uZUNyZWF0ZUlucHV0KTogUHJvbWlzZTxab25lQ3JlYXRlUmVzdWx0PjtcbiAgLyoqIEdFVCAvdjEvem9uZXMve3ppZH0gLSByZXR1cm5zIHRoZSBmdWxsIHpvbmUgb3IgdGhyb3dzIFpvbmVzQXBpRXJyb3IoNDA0KS4gKi9cbiAgZ2V0KHppZDogc3RyaW5nKTogUHJvbWlzZTxab25lPjtcbiAgLyoqIFBBVENIIC92MS96b25lcy97emlkfSAtIHNoYWxsb3cgdGFnIG1lcmdlOyBudWxsIGRlbGV0ZXMgYSBrZXkuICovXG4gIHVwZGF0ZSh6aWQ6IHN0cmluZywgaW5wdXQ6IFpvbmVQYXRjaElucHV0KTogUHJvbWlzZTxab25lPjtcbiAgLyoqIFBVVCAvdjEvem9uZXMve3ppZH0gLSBmdWxsIHJlcGxhY2Ugb2YgZ2VvbWV0cnkgKyB0YWdzLiAqL1xuICByZXBsYWNlKHppZDogc3RyaW5nLCBpbnB1dDogWm9uZVJlcGxhY2VJbnB1dCk6IFByb21pc2U8Wm9uZT47XG4gIC8qKiBERUxFVEUgL3YxL3pvbmVzL3t6aWR9IC0gNDA0IGlmIG5vdCBwcmVzZW50LiAqL1xuICBkZWxldGUoemlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAvKiogR0VUIC92MS96b25lcz90YWdzPS4uLiAtIHRhZy1maWx0ZXJlZCwga2V5c2V0LXBhZ2luYXRlZCBsaXN0aW5nLiAqL1xuICBsaXN0KG9wdHM/OiBab25lTGlzdE9wdGlvbnMpOiBQcm9taXNlPFpvbmVMaXN0UGFnZT47XG4gIC8qKiBQT1NUIC92MS96b25lcy9iYXRjaC9jcmVhdGUgLSBib3VuZGVkIGFycmF5OyByZXR1cm5lZCBpbiBpbnB1dCBvcmRlci4gKi9cbiAgY3JlYXRlTWFueSh6b25lczogcmVhZG9ubHkgWm9uZUNyZWF0ZUlucHV0W10pOiBQcm9taXNlPHsgem9uZXM6IEFycmF5PHsgemlkOiBzdHJpbmcgfT4gfT47XG4gIC8qKiBQT1NUIC92MS96b25lcy9iYXRjaC9kZWxldGUgLSByZXR1cm5zIHRoZSBjb3VudCBhY3R1YWxseSBkZWxldGVkLiAqL1xuICBkZWxldGVNYW55KHppZHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogUHJvbWlzZTx7IGRlbGV0ZWQ6IG51bWJlciB9PjtcblxuICAvKiogUE9TVCAvdjEvem9uZXMvY29udGFpbmluZyAtIHRoZSBzcGF0aWFsIHByaW1pdGl2ZS4gKi9cbiAgY29udGFpbmluZyhpbnB1dDogQ29udGFpbmluZ0lucHV0KTogUHJvbWlzZTxab25lU3VtbWFyeVtdPjtcbiAgLyoqIFN1Z2FyIG92ZXIgY29udGFpbmluZyh7IHBvaW50LCBpZHM6IFt6aWRdIH0pLiBUcnVlIGlmZiB0aGUgem9uZSBjb250YWlucyB0aGUgcG9pbnQuICovXG4gIGNvbnRhaW5zKHppZDogc3RyaW5nLCBwb2ludDogQ29udGFpbmluZ0lucHV0Wydwb2ludCddKTogUHJvbWlzZTxib29sZWFuPjtcbn1cblxuZXhwb3J0IGNsYXNzIFpvbmVzQXBpRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHJlYWRvbmx5IHN0YXR1czogbnVtYmVyO1xuICByZWFkb25seSBib2R5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc3RhdHVzOiBudW1iZXIsIGJvZHk6IHN0cmluZykge1xuICAgIHN1cGVyKGB6b25lcyBBUEkgJHtzdGF0dXN9OiAke2JvZHl9YCk7XG4gICAgdGhpcy5uYW1lID0gJ1pvbmVzQXBpRXJyb3InO1xuICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xuICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0VXVpZChsYWJlbDogc3RyaW5nLCB6aWQ6IHN0cmluZyk6IHZvaWQge1xuICBpZiAodHlwZW9mIHppZCAhPT0gJ3N0cmluZycgfHwgIVVVSURfUkVHRVgudGVzdCh6aWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB6b25lcy4ke2xhYmVsfTogemlkIG11c3QgYmUgYSB1dWlkIChnb3QgJHtKU09OLnN0cmluZ2lmeSh6aWQpfSlgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRQb2ludChsYWJlbDogc3RyaW5nLCBwb2ludDogeyBsYXQ6IG51bWJlcjsgbG5nOiBudW1iZXIgfSk6IHZvaWQge1xuICBjb25zdCBsYXQgPSBwb2ludD8ubGF0O1xuICBjb25zdCBsbmcgPSBwb2ludD8ubG5nO1xuICBpZiAodHlwZW9mIGxhdCAhPT0gJ251bWJlcicgfHwgdHlwZW9mIGxuZyAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHpvbmVzLiR7bGFiZWx9OiBwb2ludCBtdXN0IGJlIHsgbGF0OiBudW1iZXIsIGxuZzogbnVtYmVyIH1gKTtcbiAgfVxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShsYXQpIHx8IGxhdCA8IC05MCB8fCBsYXQgPiA5MCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgem9uZXMuJHtsYWJlbH06IGxhdCBtdXN0IGJlIGluIFstOTAsIDkwXSAoZ290ICR7bGF0fSlgKTtcbiAgfVxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShsbmcpIHx8IGxuZyA8IC0xODAgfHwgbG5nID4gMTgwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB6b25lcy4ke2xhYmVsfTogbG5nIG11c3QgYmUgaW4gWy0xODAsIDE4MF0gKGdvdCAke2xuZ30pYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgYHpvbmVzYCBuYW1lc3BhY2UuXG4gKlxuICogU2hhcGUgYW5kIGNvbnRyYWN0IG1pcnJvciB7QGxpbmsgY3JlYXRlQnVzaW5lc3NDbGllbnR9IC0gbGF6eSBjb25maWdcbiAqIHJlc29sdXRpb24gdmlhIHtAbGluayBDb25maWdTdGF0ZX0sIHNoYXJlZCA0MDEtcmV0cnkgdmlhXG4gKiB7QGxpbmsgc2VuZFdpdGhBdXRoUmV0cnl9LCBpbW11dGFibGUgcGVyLWNhbGwgY29uZmlnOyBubyBnbG9iYWxzLlxuICpcbiAqIFdyaXRlcyAoYGNyZWF0ZWAsIGB1cGRhdGVgLCBgcmVwbGFjZWAsIGBkZWxldGVgLCBiYXRjaCBvcHMpIHJlcXVpcmUgYVxuICogc2VydmljZS1hY3RvciB0b2tlbi4gUmVhZHMgKGBnZXRgLCBgbGlzdGAsIGBjb250YWluaW5nYCwgYGNvbnRhaW5zYClcbiAqIGFjY2VwdCBlaXRoZXIgYSBzZXJ2aWNlLWFjdG9yIG9yIGEgdXNlci1hY3RvciB0b2tlbi4gVGhlIFNESyBkb2VzIG5vdFxuICogZW5mb3JjZSB0aGlzIC0gdGhlIHNlcnZlciByZXR1cm5zIDQwMS80MDMgYW5kIHdlIHN1cmZhY2UgaXQgYXNcbiAqIHtAbGluayBab25lc0FwaUVycm9yfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVpvbmVzQ2xpZW50KGlucHV0OiBQbGF0Zm9ybUNvbmZpZ0lucHV0ID0ge30pOiBab25lc0NsaWVudCB7XG4gIGNvbnN0IHN0YXRlID0gbmV3IENvbmZpZ1N0YXRlKCk7XG4gIHN0YXRlLmFwcGx5KGlucHV0KTtcblxuICBhc3luYyBmdW5jdGlvbiBzZW5kKFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBxdWVyeT86IHN0cmluZyxcbiAgICBib2R5PzogdW5rbm93bixcbiAgKTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLnJlc29sdmUoKTtcbiAgICBjb25zdCB1cmwgPSBgJHtjb25maWcuYmFzZVVybH0ke3BhdGh9JHtxdWVyeSA/PyAnJ31gO1xuICAgIGNvbnN0IHBheWxvYWQgPSBib2R5ID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICByZXR1cm4gc2VuZFdpdGhBdXRoUmV0cnkoY29uZmlnLCB7IG1ldGhvZCwgcGF0aCwgdXJsLCBib2R5OiBwYXlsb2FkIH0pO1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gZXhwZWN0SnNvbjxUPihyZXM6IFJlc3BvbnNlKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKCFyZXMub2spIHRocm93IG5ldyBab25lc0FwaUVycm9yKHJlcy5zdGF0dXMsIGF3YWl0IHJlcy50ZXh0KCkpO1xuICAgIHJldHVybiAoYXdhaXQgcmVzLmpzb24oKSkgYXMgVDtcbiAgfVxuXG4gIGNvbnN0IGNsaWVudDogWm9uZXNDbGllbnQgPSB7XG4gICAgY29uZmlnKG9wdHMpIHtcbiAgICAgIHN0YXRlLmFwcGx5KG9wdHMpO1xuICAgICAgcmV0dXJuIGNsaWVudDtcbiAgICB9LFxuICAgIGF1dGgob3B0cykge1xuICAgICAgc3RhdGUuc2V0QXV0aChvcHRzKTtcbiAgICAgIHJldHVybiBjbGllbnQ7XG4gICAgfSxcblxuICAgIGFzeW5jIGNyZWF0ZShpbnB1dCkge1xuICAgICAgaWYgKCFpbnB1dCB8fCB0eXBlb2YgaW5wdXQgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignem9uZXMuY3JlYXRlOiBpbnB1dCBtdXN0IGJlIGFuIG9iamVjdCB3aXRoIGBnZW9tZXRyeWAnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BPU1QnLCAnL3YxL3pvbmVzJywgdW5kZWZpbmVkLCBpbnB1dCk7XG4gICAgICByZXR1cm4gZXhwZWN0SnNvbjxab25lQ3JlYXRlUmVzdWx0PihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBnZXQoemlkKSB7XG4gICAgICBhc3NlcnRVdWlkKCdnZXQnLCB6aWQpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnR0VUJywgYC92MS96b25lcy8ke3ppZH1gKTtcbiAgICAgIHJldHVybiBleHBlY3RKc29uPFpvbmU+KHJlcyk7XG4gICAgfSxcblxuICAgIGFzeW5jIHVwZGF0ZSh6aWQsIGlucHV0KSB7XG4gICAgICBhc3NlcnRVdWlkKCd1cGRhdGUnLCB6aWQpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnUEFUQ0gnLCBgL3YxL3pvbmVzLyR7emlkfWAsIHVuZGVmaW5lZCwgaW5wdXQpO1xuICAgICAgcmV0dXJuIGV4cGVjdEpzb248Wm9uZT4ocmVzKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgcmVwbGFjZSh6aWQsIGlucHV0KSB7XG4gICAgICBhc3NlcnRVdWlkKCdyZXBsYWNlJywgemlkKTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BVVCcsIGAvdjEvem9uZXMvJHt6aWR9YCwgdW5kZWZpbmVkLCBpbnB1dCk7XG4gICAgICByZXR1cm4gZXhwZWN0SnNvbjxab25lPihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBkZWxldGUoemlkKSB7XG4gICAgICBhc3NlcnRVdWlkKCdkZWxldGUnLCB6aWQpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnREVMRVRFJywgYC92MS96b25lcy8ke3ppZH1gKTtcbiAgICAgIGlmIChyZXMuc3RhdHVzID09PSAyMDQpIHJldHVybjtcbiAgICAgIGlmICghcmVzLm9rKSB0aHJvdyBuZXcgWm9uZXNBcGlFcnJvcihyZXMuc3RhdHVzLCBhd2FpdCByZXMudGV4dCgpKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgbGlzdChvcHRzID0ge30pIHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAgIGlmIChvcHRzLnRhZ3MgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgndGFncycsIEpTT04uc3RyaW5naWZ5KG9wdHMudGFncykpO1xuICAgICAgaWYgKG9wdHMuY3Vyc29yICE9PSB1bmRlZmluZWQpIHBhcmFtcy5zZXQoJ2N1cnNvcicsIG9wdHMuY3Vyc29yKTtcbiAgICAgIGlmIChvcHRzLmxpbWl0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKG9wdHMubGltaXQpIHx8IG9wdHMubGltaXQgPD0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgem9uZXMubGlzdDogbGltaXQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgKGdvdCAke29wdHMubGltaXR9KWApO1xuICAgICAgICB9XG4gICAgICAgIHBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKG9wdHMubGltaXQpKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHFzID0gcGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kKCdHRVQnLCAnL3YxL3pvbmVzJywgcXMubGVuZ3RoID8gYD8ke3FzfWAgOiB1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuIGV4cGVjdEpzb248Wm9uZUxpc3RQYWdlPihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBjcmVhdGVNYW55KHpvbmVzKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoem9uZXMpIHx8IHpvbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3pvbmVzLmNyZWF0ZU1hbnk6IHpvbmVzIG11c3QgYmUgYSBub24tZW1wdHkgYXJyYXknKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BPU1QnLCAnL3YxL3pvbmVzL2JhdGNoL2NyZWF0ZScsIHVuZGVmaW5lZCwgeyB6b25lcyB9KTtcbiAgICAgIHJldHVybiBleHBlY3RKc29uPHsgem9uZXM6IEFycmF5PHsgemlkOiBzdHJpbmcgfT4gfT4ocmVzKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZGVsZXRlTWFueSh6aWRzKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoemlkcykgfHwgemlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd6b25lcy5kZWxldGVNYW55OiB6aWRzIG11c3QgYmUgYSBub24tZW1wdHkgYXJyYXknKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgemlkIG9mIHppZHMpIGFzc2VydFV1aWQoJ2RlbGV0ZU1hbnknLCB6aWQpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnUE9TVCcsICcvdjEvem9uZXMvYmF0Y2gvZGVsZXRlJywgdW5kZWZpbmVkLCB7IHppZHMgfSk7XG4gICAgICByZXR1cm4gZXhwZWN0SnNvbjx7IGRlbGV0ZWQ6IG51bWJlciB9PihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBjb250YWluaW5nKGlucHV0KSB7XG4gICAgICBpZiAoIWlucHV0IHx8IHR5cGVvZiBpbnB1dCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd6b25lcy5jb250YWluaW5nOiBpbnB1dCBtdXN0IGluY2x1ZGUgYHBvaW50YCcpO1xuICAgICAgfVxuICAgICAgYXNzZXJ0UG9pbnQoJ2NvbnRhaW5pbmcnLCBpbnB1dC5wb2ludCk7XG4gICAgICBpZiAoaW5wdXQuaWRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCB6aWQgb2YgaW5wdXQuaWRzKSBhc3NlcnRVdWlkKCdjb250YWluaW5nJywgemlkKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ1BPU1QnLCAnL3YxL3pvbmVzL2NvbnRhaW5pbmcnLCB1bmRlZmluZWQsIGlucHV0KTtcbiAgICAgIGNvbnN0IGJvZHkgPSBhd2FpdCBleHBlY3RKc29uPHsgem9uZXM6IFpvbmVTdW1tYXJ5W10gfT4ocmVzKTtcbiAgICAgIHJldHVybiBib2R5LnpvbmVzO1xuICAgIH0sXG5cbiAgICBhc3luYyBjb250YWlucyh6aWQsIHBvaW50KSB7XG4gICAgICBhc3NlcnRVdWlkKCdjb250YWlucycsIHppZCk7XG4gICAgICBjb25zdCBtYXRjaGVzID0gYXdhaXQgY2xpZW50LmNvbnRhaW5pbmcoeyBwb2ludCwgaWRzOiBbemlkXSB9KTtcbiAgICAgIHJldHVybiBtYXRjaGVzLmxlbmd0aCA+IDA7XG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gY2xpZW50O1xufVxuIl19
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3pvbmVzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF5SEEsOENBbUpDO0FBNVFELHNDQUttQjtBQUNuQixrQ0FBNEM7QUFnQjVDLE1BQU0sVUFBVSxHQUFHLGlFQUFpRSxDQUFDO0FBaUNyRixNQUFhLGFBQWMsU0FBUSxLQUFLO0lBQzdCLE1BQU0sQ0FBUztJQUNmLElBQUksQ0FBUztJQUV0QixZQUFZLE1BQWMsRUFBRSxJQUFZO1FBQ3RDLEtBQUssQ0FBQyxhQUFhLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQVZELHNDQVVDO0FBRUQsU0FBUyxVQUFVLENBQUMsS0FBYSxFQUFFLEdBQVc7SUFDNUMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssNkJBQTZCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBYSxFQUFFLEtBQW1DO0lBQ3JFLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFHLENBQUM7SUFDdkIsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQztJQUN2QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN2RCxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsS0FB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RCxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7WUFDdkUsQ0FBQztZQUNELGNBQWMsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTO2dCQUFFLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZGLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRztvQkFBRSxVQUFVLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9ELENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUztnQkFBRSxVQUFVLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqRixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNFLE1BQU0sSUFBSSxHQUFHLE1BQU0sVUFBVSxDQUEyQixHQUFHLENBQUMsQ0FBQztZQUM3RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQztLQUNGLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmlnU3RhdGUsXG4gIHR5cGUgUGxhdGZvcm1BdXRoLFxuICB0eXBlIFBsYXRmb3JtQXV0aElucHV0LFxuICB0eXBlIFBsYXRmb3JtQ29uZmlnSW5wdXQsXG59IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBzZW5kV2l0aEF1dGhSZXRyeSB9IGZyb20gJy4uL2h0dHAnO1xuaW1wb3J0IHR5cGUge1xuICBDb250YWluaW5nSW5wdXQsXG4gIEludGVyc2VjdGluZ0lucHV0LFxuICBOZWFyYnlJbnB1dCxcbiAgWm9uZSxcbiAgWm9uZUNyZWF0ZUlucHV0LFxuICBab25lQ3JlYXRlUmVzdWx0LFxuICBab25lTGlzdE9wdGlvbnMsXG4gIFpvbmVMaXN0UGFnZSxcbiAgWm9uZU5lYXJieSxcbiAgWm9uZVBhdGNoSW5wdXQsXG4gIFpvbmVSZXBsYWNlSW5wdXQsXG4gIFpvbmVTdW1tYXJ5LFxufSBmcm9tICcuL3NjaGVtYSc7XG5cbmNvbnN0IFVVSURfUkVHRVggPSAvXlswLTlhLWZdezh9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezR9LVswLTlhLWZdezEyfSQvaTtcblxuZXhwb3J0IGludGVyZmFjZSBab25lc0NsaWVudCB7XG4gIGNvbmZpZyhpbnB1dDogUGxhdGZvcm1Db25maWdJbnB1dCk6IFpvbmVzQ2xpZW50O1xuICBhdXRoKGlucHV0OiBQbGF0Zm9ybUF1dGhJbnB1dCB8IFBsYXRmb3JtQXV0aCk6IFpvbmVzQ2xpZW50O1xuXG4gIC8qKiBQT1NUIC92MS96b25lcyAtIGNyZWF0ZSBhIHNpbmdsZSB6b25lLiAqL1xuICBjcmVhdGUoaW5wdXQ6IFpvbmVDcmVhdGVJbnB1dCk6IFByb21pc2U8Wm9uZUNyZWF0ZVJlc3VsdD47XG4gIC8qKiBHRVQgL3YxL3pvbmVzL3t6aWR9IC0gcmV0dXJucyB0aGUgZnVsbCB6b25lIG9yIHRocm93cyBab25lc0FwaUVycm9yKDQwNCkuICovXG4gIGdldCh6aWQ6IHN0cmluZyk6IFByb21pc2U8Wm9uZT47XG4gIC8qKiBQQVRDSCAvdjEvem9uZXMve3ppZH0gLSBzaGFsbG93IHRhZyBtZXJnZTsgbnVsbCBkZWxldGVzIGEga2V5LiAqL1xuICB1cGRhdGUoemlkOiBzdHJpbmcsIGlucHV0OiBab25lUGF0Y2hJbnB1dCk6IFByb21pc2U8Wm9uZT47XG4gIC8qKiBQVVQgL3YxL3pvbmVzL3t6aWR9IC0gZnVsbCByZXBsYWNlIG9mIGdlb21ldHJ5ICsgdGFncy4gKi9cbiAgcmVwbGFjZSh6aWQ6IHN0cmluZywgaW5wdXQ6IFpvbmVSZXBsYWNlSW5wdXQpOiBQcm9taXNlPFpvbmU+O1xuICAvKiogREVMRVRFIC92MS96b25lcy97emlkfSAtIDQwNCBpZiBub3QgcHJlc2VudC4gKi9cbiAgZGVsZXRlKHppZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgLyoqIEdFVCAvdjEvem9uZXM/dGFncz0uLi4gLSB0YWctZmlsdGVyZWQsIGtleXNldC1wYWdpbmF0ZWQgbGlzdGluZy4gKi9cbiAgbGlzdChvcHRzPzogWm9uZUxpc3RPcHRpb25zKTogUHJvbWlzZTxab25lTGlzdFBhZ2U+O1xuICAvKiogUE9TVCAvdjEvem9uZXMvYmF0Y2gvY3JlYXRlIC0gYm91bmRlZCBhcnJheTsgcmV0dXJuZWQgaW4gaW5wdXQgb3JkZXIuICovXG4gIGNyZWF0ZU1hbnkoem9uZXM6IHJlYWRvbmx5IFpvbmVDcmVhdGVJbnB1dFtdKTogUHJvbWlzZTx7IHpvbmVzOiBBcnJheTx7IHppZDogc3RyaW5nIH0+IH0+O1xuICAvKiogUE9TVCAvdjEvem9uZXMvYmF0Y2gvZGVsZXRlIC0gcmV0dXJucyB0aGUgY291bnQgYWN0dWFsbHkgZGVsZXRlZC4gKi9cbiAgZGVsZXRlTWFueSh6aWRzOiByZWFkb25seSBzdHJpbmdbXSk6IFByb21pc2U8eyBkZWxldGVkOiBudW1iZXIgfT47XG5cbiAgLyoqIFBPU1QgL3YxL3pvbmVzL2NvbnRhaW5pbmcgLSB0aGUgc3BhdGlhbCBwcmltaXRpdmUuICovXG4gIGNvbnRhaW5pbmcoaW5wdXQ6IENvbnRhaW5pbmdJbnB1dCk6IFByb21pc2U8Wm9uZVN1bW1hcnlbXT47XG4gIC8qKiBTdWdhciBvdmVyIGNvbnRhaW5pbmcoeyBwb2ludCwgaWRzOiBbemlkXSB9KS4gVHJ1ZSBpZmYgdGhlIHpvbmUgY29udGFpbnMgdGhlIHBvaW50LiAqL1xuICBjb250YWlucyh6aWQ6IHN0cmluZywgcG9pbnQ6IENvbnRhaW5pbmdJbnB1dFsncG9pbnQnXSk6IFByb21pc2U8Ym9vbGVhbj47XG4gIC8qKiBQT1NUIC92MS96b25lcy9uZWFyYnkgLSB6b25lcyB3aXRoaW4gYHJhZGl1c01ldGVyc2Agb2YgYSBwb2ludCwgb3JkZXJlZCBieSBkaXN0YW5jZSBhc2MuICovXG4gIG5lYXJieShpbnB1dDogTmVhcmJ5SW5wdXQpOiBQcm9taXNlPFpvbmVOZWFyYnlbXT47XG4gIC8qKiBQT1NUIC92MS96b25lcy9pbnRlcnNlY3RpbmcgLSB6b25lcyB3aG9zZSBnZW9tZXRyeSBvdmVybGFwcyB0aGUgZ2l2ZW4gZ2VvbWV0cnkuICovXG4gIGludGVyc2VjdGluZyhpbnB1dDogSW50ZXJzZWN0aW5nSW5wdXQpOiBQcm9taXNlPFpvbmVTdW1tYXJ5W10+O1xufVxuXG5leHBvcnQgY2xhc3MgWm9uZXNBcGlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcmVhZG9ubHkgc3RhdHVzOiBudW1iZXI7XG4gIHJlYWRvbmx5IGJvZHk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzdGF0dXM6IG51bWJlciwgYm9keTogc3RyaW5nKSB7XG4gICAgc3VwZXIoYHpvbmVzIEFQSSAke3N0YXR1c306ICR7Ym9keX1gKTtcbiAgICB0aGlzLm5hbWUgPSAnWm9uZXNBcGlFcnJvcic7XG4gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRVdWlkKGxhYmVsOiBzdHJpbmcsIHppZDogc3RyaW5nKTogdm9pZCB7XG4gIGlmICh0eXBlb2YgemlkICE9PSAnc3RyaW5nJyB8fCAhVVVJRF9SRUdFWC50ZXN0KHppZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHpvbmVzLiR7bGFiZWx9OiB6aWQgbXVzdCBiZSBhIHV1aWQgKGdvdCAke0pTT04uc3RyaW5naWZ5KHppZCl9KWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydFBvaW50KGxhYmVsOiBzdHJpbmcsIHBvaW50OiB7IGxhdDogbnVtYmVyOyBsbmc6IG51bWJlciB9KTogdm9pZCB7XG4gIGNvbnN0IGxhdCA9IHBvaW50Py5sYXQ7XG4gIGNvbnN0IGxuZyA9IHBvaW50Py5sbmc7XG4gIGlmICh0eXBlb2YgbGF0ICE9PSAnbnVtYmVyJyB8fCB0eXBlb2YgbG5nICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBFcnJvcihgem9uZXMuJHtsYWJlbH06IHBvaW50IG11c3QgYmUgeyBsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIgfWApO1xuICB9XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGxhdCkgfHwgbGF0IDwgLTkwIHx8IGxhdCA+IDkwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB6b25lcy4ke2xhYmVsfTogbGF0IG11c3QgYmUgaW4gWy05MCwgOTBdIChnb3QgJHtsYXR9KWApO1xuICB9XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGxuZykgfHwgbG5nIDwgLTE4MCB8fCBsbmcgPiAxODApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHpvbmVzLiR7bGFiZWx9OiBsbmcgbXVzdCBiZSBpbiBbLTE4MCwgMTgwXSAoZ290ICR7bG5nfSlgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhc3NlcnRHZW9tZXRyeShsYWJlbDogc3RyaW5nLCBnZW9tZXRyeTogdW5rbm93bik6IHZvaWQge1xuICBjb25zdCB0eXBlID0gKGdlb21ldHJ5IGFzIHsgdHlwZT86IHVua25vd24gfSB8IG51bGwgfCB1bmRlZmluZWQpPy50eXBlO1xuICBpZiAodHlwZSAhPT0gJ1BvbHlnb24nICYmIHR5cGUgIT09ICdNdWx0aVBvbHlnb24nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYHpvbmVzLiR7bGFiZWx9OiBnZW9tZXRyeS50eXBlIG11c3QgYmUgUG9seWdvbiBvciBNdWx0aVBvbHlnb24gKGdvdCAke0pTT04uc3RyaW5naWZ5KHR5cGUpfSlgLFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0UG9zaXRpdmVOdW1iZXIobGFiZWw6IHN0cmluZywgZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcik6IHZvaWQge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJyB8fCAhTnVtYmVyLmlzRmluaXRlKHZhbHVlKSB8fCB2YWx1ZSA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB6b25lcy4ke2xhYmVsfTogJHtmaWVsZH0gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciAoZ290ICR7dmFsdWV9KWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydFBvc2l0aXZlSW50KGxhYmVsOiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSB8fCB2YWx1ZSA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB6b25lcy4ke2xhYmVsfTogJHtmaWVsZH0gbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgKGdvdCAke3ZhbHVlfSlgKTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBgem9uZXNgIG5hbWVzcGFjZS5cbiAqXG4gKiBTaGFwZSBhbmQgY29udHJhY3QgbWlycm9yIHtAbGluayBjcmVhdGVCdXNpbmVzc0NsaWVudH0gLSBsYXp5IGNvbmZpZ1xuICogcmVzb2x1dGlvbiB2aWEge0BsaW5rIENvbmZpZ1N0YXRlfSwgc2hhcmVkIDQwMS1yZXRyeSB2aWFcbiAqIHtAbGluayBzZW5kV2l0aEF1dGhSZXRyeX0sIGltbXV0YWJsZSBwZXItY2FsbCBjb25maWc7IG5vIGdsb2JhbHMuXG4gKlxuICogV3JpdGVzIChgY3JlYXRlYCwgYHVwZGF0ZWAsIGByZXBsYWNlYCwgYGRlbGV0ZWAsIGJhdGNoIG9wcykgcmVxdWlyZSBhXG4gKiBzZXJ2aWNlLWFjdG9yIHRva2VuLiBSZWFkcyAoYGdldGAsIGBsaXN0YCwgYGNvbnRhaW5pbmdgLCBgY29udGFpbnNgKVxuICogYWNjZXB0IGVpdGhlciBhIHNlcnZpY2UtYWN0b3Igb3IgYSB1c2VyLWFjdG9yIHRva2VuLiBUaGUgU0RLIGRvZXMgbm90XG4gKiBlbmZvcmNlIHRoaXMgLSB0aGUgc2VydmVyIHJldHVybnMgNDAxLzQwMyBhbmQgd2Ugc3VyZmFjZSBpdCBhc1xuICoge0BsaW5rIFpvbmVzQXBpRXJyb3J9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlWm9uZXNDbGllbnQoaW5wdXQ6IFBsYXRmb3JtQ29uZmlnSW5wdXQgPSB7fSk6IFpvbmVzQ2xpZW50IHtcbiAgY29uc3Qgc3RhdGUgPSBuZXcgQ29uZmlnU3RhdGUoKTtcbiAgc3RhdGUuYXBwbHkoaW5wdXQpO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHNlbmQoXG4gICAgbWV0aG9kOiBzdHJpbmcsXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIHF1ZXJ5Pzogc3RyaW5nLFxuICAgIGJvZHk/OiB1bmtub3duLFxuICApOiBQcm9taXNlPFJlc3BvbnNlPiB7XG4gICAgY29uc3QgY29uZmlnID0gc3RhdGUucmVzb2x2ZSgpO1xuICAgIGNvbnN0IHVybCA9IGAke2NvbmZpZy5iYXNlVXJsfSR7cGF0aH0ke3F1ZXJ5ID8/ICcnfWA7XG4gICAgY29uc3QgcGF5bG9hZCA9IGJvZHkgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIHJldHVybiBzZW5kV2l0aEF1dGhSZXRyeShjb25maWcsIHsgbWV0aG9kLCBwYXRoLCB1cmwsIGJvZHk6IHBheWxvYWQgfSk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiBleHBlY3RKc29uPFQ+KHJlczogUmVzcG9uc2UpOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAoIXJlcy5vaykgdGhyb3cgbmV3IFpvbmVzQXBpRXJyb3IocmVzLnN0YXR1cywgYXdhaXQgcmVzLnRleHQoKSk7XG4gICAgcmV0dXJuIChhd2FpdCByZXMuanNvbigpKSBhcyBUO1xuICB9XG5cbiAgY29uc3QgY2xpZW50OiBab25lc0NsaWVudCA9IHtcbiAgICBjb25maWcob3B0cykge1xuICAgICAgc3RhdGUuYXBwbHkob3B0cyk7XG4gICAgICByZXR1cm4gY2xpZW50O1xuICAgIH0sXG4gICAgYXV0aChvcHRzKSB7XG4gICAgICBzdGF0ZS5zZXRBdXRoKG9wdHMpO1xuICAgICAgcmV0dXJuIGNsaWVudDtcbiAgICB9LFxuXG4gICAgYXN5bmMgY3JlYXRlKGlucHV0KSB7XG4gICAgICBpZiAoIWlucHV0IHx8IHR5cGVvZiBpbnB1dCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd6b25lcy5jcmVhdGU6IGlucHV0IG11c3QgYmUgYW4gb2JqZWN0IHdpdGggYGdlb21ldHJ5YCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnUE9TVCcsICcvdjEvem9uZXMnLCB1bmRlZmluZWQsIGlucHV0KTtcbiAgICAgIHJldHVybiBleHBlY3RKc29uPFpvbmVDcmVhdGVSZXN1bHQ+KHJlcyk7XG4gICAgfSxcblxuICAgIGFzeW5jIGdldCh6aWQpIHtcbiAgICAgIGFzc2VydFV1aWQoJ2dldCcsIHppZCk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kKCdHRVQnLCBgL3YxL3pvbmVzLyR7emlkfWApO1xuICAgICAgcmV0dXJuIGV4cGVjdEpzb248Wm9uZT4ocmVzKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgdXBkYXRlKHppZCwgaW5wdXQpIHtcbiAgICAgIGFzc2VydFV1aWQoJ3VwZGF0ZScsIHppZCk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kKCdQQVRDSCcsIGAvdjEvem9uZXMvJHt6aWR9YCwgdW5kZWZpbmVkLCBpbnB1dCk7XG4gICAgICByZXR1cm4gZXhwZWN0SnNvbjxab25lPihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyByZXBsYWNlKHppZCwgaW5wdXQpIHtcbiAgICAgIGFzc2VydFV1aWQoJ3JlcGxhY2UnLCB6aWQpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnUFVUJywgYC92MS96b25lcy8ke3ppZH1gLCB1bmRlZmluZWQsIGlucHV0KTtcbiAgICAgIHJldHVybiBleHBlY3RKc29uPFpvbmU+KHJlcyk7XG4gICAgfSxcblxuICAgIGFzeW5jIGRlbGV0ZSh6aWQpIHtcbiAgICAgIGFzc2VydFV1aWQoJ2RlbGV0ZScsIHppZCk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kKCdERUxFVEUnLCBgL3YxL3pvbmVzLyR7emlkfWApO1xuICAgICAgaWYgKHJlcy5zdGF0dXMgPT09IDIwNCkgcmV0dXJuO1xuICAgICAgaWYgKCFyZXMub2spIHRocm93IG5ldyBab25lc0FwaUVycm9yKHJlcy5zdGF0dXMsIGF3YWl0IHJlcy50ZXh0KCkpO1xuICAgIH0sXG5cbiAgICBhc3luYyBsaXN0KG9wdHMgPSB7fSkge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgaWYgKG9wdHMudGFncyAhPT0gdW5kZWZpbmVkKSBwYXJhbXMuc2V0KCd0YWdzJywgSlNPTi5zdHJpbmdpZnkob3B0cy50YWdzKSk7XG4gICAgICBpZiAob3B0cy5jdXJzb3IgIT09IHVuZGVmaW5lZCkgcGFyYW1zLnNldCgnY3Vyc29yJywgb3B0cy5jdXJzb3IpO1xuICAgICAgaWYgKG9wdHMubGltaXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIob3B0cy5saW1pdCkgfHwgb3B0cy5saW1pdCA8PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB6b25lcy5saXN0OiBsaW1pdCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciAoZ290ICR7b3B0cy5saW1pdH0pYCk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0cy5saW1pdCkpO1xuICAgICAgfVxuICAgICAgY29uc3QgcXMgPSBwYXJhbXMudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHNlbmQoJ0dFVCcsICcvdjEvem9uZXMnLCBxcy5sZW5ndGggPyBgPyR7cXN9YCA6IHVuZGVmaW5lZCk7XG4gICAgICByZXR1cm4gZXhwZWN0SnNvbjxab25lTGlzdFBhZ2U+KHJlcyk7XG4gICAgfSxcblxuICAgIGFzeW5jIGNyZWF0ZU1hbnkoem9uZXMpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh6b25lcykgfHwgem9uZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignem9uZXMuY3JlYXRlTWFueTogem9uZXMgbXVzdCBiZSBhIG5vbi1lbXB0eSBhcnJheScpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnUE9TVCcsICcvdjEvem9uZXMvYmF0Y2gvY3JlYXRlJywgdW5kZWZpbmVkLCB7IHpvbmVzIH0pO1xuICAgICAgcmV0dXJuIGV4cGVjdEpzb248eyB6b25lczogQXJyYXk8eyB6aWQ6IHN0cmluZyB9PiB9PihyZXMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBkZWxldGVNYW55KHppZHMpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh6aWRzKSB8fCB6aWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3pvbmVzLmRlbGV0ZU1hbnk6IHppZHMgbXVzdCBiZSBhIG5vbi1lbXB0eSBhcnJheScpO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCB6aWQgb2YgemlkcykgYXNzZXJ0VXVpZCgnZGVsZXRlTWFueScsIHppZCk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kKCdQT1NUJywgJy92MS96b25lcy9iYXRjaC9kZWxldGUnLCB1bmRlZmluZWQsIHsgemlkcyB9KTtcbiAgICAgIHJldHVybiBleHBlY3RKc29uPHsgZGVsZXRlZDogbnVtYmVyIH0+KHJlcyk7XG4gICAgfSxcblxuICAgIGFzeW5jIGNvbnRhaW5pbmcoaW5wdXQpIHtcbiAgICAgIGlmICghaW5wdXQgfHwgdHlwZW9mIGlucHV0ICE9PSAnb2JqZWN0Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3pvbmVzLmNvbnRhaW5pbmc6IGlucHV0IG11c3QgaW5jbHVkZSBgcG9pbnRgJyk7XG4gICAgICB9XG4gICAgICBhc3NlcnRQb2ludCgnY29udGFpbmluZycsIGlucHV0LnBvaW50KTtcbiAgICAgIGlmIChpbnB1dC5pZHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3IgKGNvbnN0IHppZCBvZiBpbnB1dC5pZHMpIGFzc2VydFV1aWQoJ2NvbnRhaW5pbmcnLCB6aWQpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnUE9TVCcsICcvdjEvem9uZXMvY29udGFpbmluZycsIHVuZGVmaW5lZCwgaW5wdXQpO1xuICAgICAgY29uc3QgYm9keSA9IGF3YWl0IGV4cGVjdEpzb248eyB6b25lczogWm9uZVN1bW1hcnlbXSB9PihyZXMpO1xuICAgICAgcmV0dXJuIGJvZHkuem9uZXM7XG4gICAgfSxcblxuICAgIGFzeW5jIGNvbnRhaW5zKHppZCwgcG9pbnQpIHtcbiAgICAgIGFzc2VydFV1aWQoJ2NvbnRhaW5zJywgemlkKTtcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBhd2FpdCBjbGllbnQuY29udGFpbmluZyh7IHBvaW50LCBpZHM6IFt6aWRdIH0pO1xuICAgICAgcmV0dXJuIG1hdGNoZXMubGVuZ3RoID4gMDtcbiAgICB9LFxuXG4gICAgYXN5bmMgbmVhcmJ5KGlucHV0KSB7XG4gICAgICBpZiAoIWlucHV0IHx8IHR5cGVvZiBpbnB1dCAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd6b25lcy5uZWFyYnk6IGlucHV0IG11c3QgaW5jbHVkZSBgcG9pbnRgJyk7XG4gICAgICB9XG4gICAgICBhc3NlcnRQb2ludCgnbmVhcmJ5JywgaW5wdXQucG9pbnQpO1xuICAgICAgYXNzZXJ0UG9zaXRpdmVOdW1iZXIoJ25lYXJieScsICdyYWRpdXNNZXRlcnMnLCBpbnB1dC5yYWRpdXNNZXRlcnMpO1xuICAgICAgaWYgKGlucHV0LmxpbWl0ICE9PSB1bmRlZmluZWQpIGFzc2VydFBvc2l0aXZlSW50KCduZWFyYnknLCAnbGltaXQnLCBpbnB1dC5saW1pdCk7XG4gICAgICBpZiAoaW5wdXQuaWRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCB6aWQgb2YgaW5wdXQuaWRzKSBhc3NlcnRVdWlkKCduZWFyYnknLCB6aWQpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc2VuZCgnUE9TVCcsICcvdjEvem9uZXMvbmVhcmJ5JywgdW5kZWZpbmVkLCBpbnB1dCk7XG4gICAgICBjb25zdCBib2R5ID0gYXdhaXQgZXhwZWN0SnNvbjx7IHpvbmVzOiBab25lTmVhcmJ5W10gfT4ocmVzKTtcbiAgICAgIHJldHVybiBib2R5LnpvbmVzO1xuICAgIH0sXG5cbiAgICBhc3luYyBpbnRlcnNlY3RpbmcoaW5wdXQpIHtcbiAgICAgIGlmICghaW5wdXQgfHwgdHlwZW9mIGlucHV0ICE9PSAnb2JqZWN0JyB8fCAhaW5wdXQuZ2VvbWV0cnkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd6b25lcy5pbnRlcnNlY3Rpbmc6IGlucHV0IG11c3QgaW5jbHVkZSBgZ2VvbWV0cnlgJyk7XG4gICAgICB9XG4gICAgICBhc3NlcnRHZW9tZXRyeSgnaW50ZXJzZWN0aW5nJywgaW5wdXQuZ2VvbWV0cnkpO1xuICAgICAgaWYgKGlucHV0LmxpbWl0ICE9PSB1bmRlZmluZWQpIGFzc2VydFBvc2l0aXZlSW50KCdpbnRlcnNlY3RpbmcnLCAnbGltaXQnLCBpbnB1dC5saW1pdCk7XG4gICAgICBpZiAoaW5wdXQuaWRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCB6aWQgb2YgaW5wdXQuaWRzKSBhc3NlcnRVdWlkKCdpbnRlcnNlY3RpbmcnLCB6aWQpO1xuICAgICAgfVxuICAgICAgaWYgKGlucHV0LmV4Y2x1ZGVaaWQgIT09IHVuZGVmaW5lZCkgYXNzZXJ0VXVpZCgnaW50ZXJzZWN0aW5nJywgaW5wdXQuZXhjbHVkZVppZCk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBzZW5kKCdQT1NUJywgJy92MS96b25lcy9pbnRlcnNlY3RpbmcnLCB1bmRlZmluZWQsIGlucHV0KTtcbiAgICAgIGNvbnN0IGJvZHkgPSBhd2FpdCBleHBlY3RKc29uPHsgem9uZXM6IFpvbmVTdW1tYXJ5W10gfT4ocmVzKTtcbiAgICAgIHJldHVybiBib2R5LnpvbmVzO1xuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGNsaWVudDtcbn1cbiJdfQ==
|
package/dist/zones/schema.d.ts
CHANGED
|
@@ -63,6 +63,7 @@ export interface Zone {
|
|
|
63
63
|
zid: string;
|
|
64
64
|
geometry: GeoJsonMultiPolygon;
|
|
65
65
|
tags: TagBag;
|
|
66
|
+
areaSqKm: number;
|
|
66
67
|
createdAt: string;
|
|
67
68
|
updatedAt: string;
|
|
68
69
|
}
|
|
@@ -102,3 +103,23 @@ export interface ContainingInput {
|
|
|
102
103
|
ids?: readonly string[];
|
|
103
104
|
tags?: TagFilter;
|
|
104
105
|
}
|
|
106
|
+
export interface NearbyInput {
|
|
107
|
+
point: Point;
|
|
108
|
+
radiusMeters: number;
|
|
109
|
+
tags?: TagFilter;
|
|
110
|
+
ids?: readonly string[];
|
|
111
|
+
limit?: number;
|
|
112
|
+
}
|
|
113
|
+
/** The compact shape returned by `nearby`, with the distance from the query point. */
|
|
114
|
+
export interface ZoneNearby {
|
|
115
|
+
zid: string;
|
|
116
|
+
tags: TagBag;
|
|
117
|
+
distanceMeters: number;
|
|
118
|
+
}
|
|
119
|
+
export interface IntersectingInput {
|
|
120
|
+
geometry: Geometry;
|
|
121
|
+
tags?: TagFilter;
|
|
122
|
+
ids?: readonly string[];
|
|
123
|
+
excludeZid?: string;
|
|
124
|
+
limit?: number;
|
|
125
|
+
}
|
package/dist/zones/schema.js
CHANGED
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
* order `[lng, lat]` per the GeoJSON spec.
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3pvbmVzL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7OztHQVlHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUeXBlIHN1cmZhY2UgZm9yIHRoZSBwbGF0Zm9ybSBab25lcyBBUEkuXG4gKlxuICogVGhlIFpvbmVzIHNlcnZpY2UgaXMgYSBnZW5lcmljLCBkb21haW4tYWdub3N0aWMgc3BhdGlhbCBwcmltaXRpdmU6IGl0IHN0b3Jlc1xuICogdGFnZ2VkIHBvbHlnb25zIGFuZCBhbnN3ZXJzIHBvaW50LWluLXBvbHlnb24gY29udGFpbm1lbnQgcXVlcmllcy4gSXQga25vd3NcbiAqIG5vdGhpbmcgYWJvdXQgYnVzaW5lc3Nlcywgc2VydmljZWFiaWxpdHksIG9yIGRlbGl2ZXJ5OyB0aG9zZSBhcmUgY29uc3VtZXJcbiAqIGNvbmNlcm5zIHRoYXQgY29tcG9zZSB0aGlzIHByaW1pdGl2ZS5cbiAqXG4gKiBDb29yZGluYXRlIGNvbnZlbnRpb24gZXZlcnl3aGVyZSBpbiB0aGlzIHN1cmZhY2U6IHBvaW50cyBhcmUgdGhlIG5hbWVkXG4gKiBvYmplY3QgYHsgbGF0LCBsbmcgfWAgKG5ldmVyIGEgcG9zaXRpb25hbCBwYWlyKS4gVGhlIHNlcnZpY2UgY29udmVydHNcbiAqIGludGVybmFsbHkgdG8gdGhlIFBvc3RHSVMgbG5nLWZpcnN0IG9yZGVyLiBQb2x5Z29ucyBmb2xsb3cgR2VvSlNPTiBheGlzXG4gKiBvcmRlciBgW2xuZywgbGF0XWAgcGVyIHRoZSBHZW9KU09OIHNwZWMuXG4gKi9cblxuLyoqIExhdGl0dWRlL2xvbmdpdHVkZSBwYWlyLiBMYXQgaW4gWy05MCwgOTBdLCBsbmcgaW4gWy0xODAsIDE4MF0uICovXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcbiAgbGF0OiBudW1iZXI7XG4gIGxuZzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEdlb0pTT04tMjAwOCBQb2x5Z29uLiBUaGUgZmlyc3QgcmluZyBpcyB0aGUgZXh0ZXJpb3I7IHN1YnNlcXVlbnQgcmluZ3NcbiAqIGFyZSBpbnRlcmlvciAoaG9sZXMpLiBFYWNoIGNvb3JkaW5hdGUgaXMgYFtsbmcsIGxhdF1gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlb0pzb25Qb2x5Z29uIHtcbiAgdHlwZTogJ1BvbHlnb24nO1xuICBjb29yZGluYXRlczogQXJyYXk8QXJyYXk8W251bWJlciwgbnVtYmVyXT4+O1xufVxuXG4vKipcbiAqIEdlb0pTT04tMjAwOCBNdWx0aVBvbHlnb24uIFRoZSBzZXJ2aWNlIG5vcm1hbGlzZXMgUG9seWdvbiB0byBNdWx0aVBvbHlnb25cbiAqIG9uIHdyaXRlLCBzbyByZWFkcyBhbHdheXMgcmV0dXJuIE11bHRpUG9seWdvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW9Kc29uTXVsdGlQb2x5Z29uIHtcbiAgdHlwZTogJ011bHRpUG9seWdvbic7XG4gIGNvb3JkaW5hdGVzOiBBcnJheTxBcnJheTxBcnJheTxbbnVtYmVyLCBudW1iZXJdPj4+O1xufVxuXG5leHBvcnQgdHlwZSBHZW9tZXRyeSA9IEdlb0pzb25Qb2x5Z29uIHwgR2VvSnNvbk11bHRpUG9seWdvbjtcblxuLyoqXG4gKiBUYWcgdmFsdWVzIGFyZSBmbGF0OiBhIHNjYWxhciAoY29lcmNlZCB0byBzdHJpbmcgYnkgdGhlIHNlcnZpY2UpIG9yIGFcbiAqIGZsYXQgYXJyYXkgb2Ygc2NhbGFycy4gTmVzdGVkIG9iamVjdHMgYXJlIHJlamVjdGVkIG9uIHdyaXRlLlxuICpcbiAqIGBudWxsYCBpcyBtZWFuaW5nZnVsIG9ubHkgaW5zaWRlIGEgUEFUQ0ggdGFnIGJhZywgd2hlcmUgaXQgZGVsZXRlcyB0aGVcbiAqIGtleS4gSXQgaXMgbm90IGEgc3RvcmFibGUgdmFsdWUuIFVzZSB7QGxpbmsgUGF0Y2hUYWdCYWd9IGZvciBQQVRDSCBib2RpZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFRhZ1ZhbHVlID0gc3RyaW5nIHwgc3RyaW5nW107XG5cbmV4cG9ydCB0eXBlIFRhZ0JhZyA9IFJlY29yZDxzdHJpbmcsIFRhZ1ZhbHVlPjtcblxuLyoqIFRhZyBiYWcgYWNjZXB0ZWQgYnkgUEFUQ0guIGBudWxsYCBkZWxldGVzIHRoZSBrZXk7IGV2ZXJ5dGhpbmcgZWxzZSBpcyBzaGFsbG93LW1lcmdlZC4gKi9cbmV4cG9ydCB0eXBlIFBhdGNoVGFnQmFnID0gUmVjb3JkPHN0cmluZywgVGFnVmFsdWUgfCBudWxsPjtcblxuLyoqXG4gKiBGaWx0ZXIgZ3JhbW1hciB1c2VkIGJ5IGJvdGggdGhlIGxpc3RpbmcgZW5kcG9pbnQgYW5kIHRoZSBjb250YWlubWVudFxuICogcHJpbWl0aXZlJ3MgYHRhZ3NgIHNlbGVjdG9yOlxuICpcbiAqICAgLSBgeyBrOiBcInZcIiB9YCAgICAgICAgICAgZXF1YWxpdHkgLyBhcnJheS1tZW1iZXJzaGlwOiBgdGFncyBAPiB7XCJrXCI6XCJ2XCJ9YFxuICogICAtIGB7IGs6IFtcInYxXCIsXCJ2MlwiXSB9YCAgIGFueS1vZiAoSU4pOiBwZXItdmFsdWUgYEA+YCBjbGF1c2VzIE9SLWVkXG4gKiAgIC0gbXVsdGlwbGUga2V5cyAgICAgICAgICAgQU5EIGFjcm9zcyBrZXlzXG4gKlxuICogU3RvcmVkIGFycmF5cyBtYXRjaCBzY2FsYXIgZmlsdGVycyB2aWEgSlNPTkIgYEA+
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3pvbmVzL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7OztHQVlHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUeXBlIHN1cmZhY2UgZm9yIHRoZSBwbGF0Zm9ybSBab25lcyBBUEkuXG4gKlxuICogVGhlIFpvbmVzIHNlcnZpY2UgaXMgYSBnZW5lcmljLCBkb21haW4tYWdub3N0aWMgc3BhdGlhbCBwcmltaXRpdmU6IGl0IHN0b3Jlc1xuICogdGFnZ2VkIHBvbHlnb25zIGFuZCBhbnN3ZXJzIHBvaW50LWluLXBvbHlnb24gY29udGFpbm1lbnQgcXVlcmllcy4gSXQga25vd3NcbiAqIG5vdGhpbmcgYWJvdXQgYnVzaW5lc3Nlcywgc2VydmljZWFiaWxpdHksIG9yIGRlbGl2ZXJ5OyB0aG9zZSBhcmUgY29uc3VtZXJcbiAqIGNvbmNlcm5zIHRoYXQgY29tcG9zZSB0aGlzIHByaW1pdGl2ZS5cbiAqXG4gKiBDb29yZGluYXRlIGNvbnZlbnRpb24gZXZlcnl3aGVyZSBpbiB0aGlzIHN1cmZhY2U6IHBvaW50cyBhcmUgdGhlIG5hbWVkXG4gKiBvYmplY3QgYHsgbGF0LCBsbmcgfWAgKG5ldmVyIGEgcG9zaXRpb25hbCBwYWlyKS4gVGhlIHNlcnZpY2UgY29udmVydHNcbiAqIGludGVybmFsbHkgdG8gdGhlIFBvc3RHSVMgbG5nLWZpcnN0IG9yZGVyLiBQb2x5Z29ucyBmb2xsb3cgR2VvSlNPTiBheGlzXG4gKiBvcmRlciBgW2xuZywgbGF0XWAgcGVyIHRoZSBHZW9KU09OIHNwZWMuXG4gKi9cblxuLyoqIExhdGl0dWRlL2xvbmdpdHVkZSBwYWlyLiBMYXQgaW4gWy05MCwgOTBdLCBsbmcgaW4gWy0xODAsIDE4MF0uICovXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcbiAgbGF0OiBudW1iZXI7XG4gIGxuZzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEdlb0pTT04tMjAwOCBQb2x5Z29uLiBUaGUgZmlyc3QgcmluZyBpcyB0aGUgZXh0ZXJpb3I7IHN1YnNlcXVlbnQgcmluZ3NcbiAqIGFyZSBpbnRlcmlvciAoaG9sZXMpLiBFYWNoIGNvb3JkaW5hdGUgaXMgYFtsbmcsIGxhdF1gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlb0pzb25Qb2x5Z29uIHtcbiAgdHlwZTogJ1BvbHlnb24nO1xuICBjb29yZGluYXRlczogQXJyYXk8QXJyYXk8W251bWJlciwgbnVtYmVyXT4+O1xufVxuXG4vKipcbiAqIEdlb0pTT04tMjAwOCBNdWx0aVBvbHlnb24uIFRoZSBzZXJ2aWNlIG5vcm1hbGlzZXMgUG9seWdvbiB0byBNdWx0aVBvbHlnb25cbiAqIG9uIHdyaXRlLCBzbyByZWFkcyBhbHdheXMgcmV0dXJuIE11bHRpUG9seWdvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW9Kc29uTXVsdGlQb2x5Z29uIHtcbiAgdHlwZTogJ011bHRpUG9seWdvbic7XG4gIGNvb3JkaW5hdGVzOiBBcnJheTxBcnJheTxBcnJheTxbbnVtYmVyLCBudW1iZXJdPj4+O1xufVxuXG5leHBvcnQgdHlwZSBHZW9tZXRyeSA9IEdlb0pzb25Qb2x5Z29uIHwgR2VvSnNvbk11bHRpUG9seWdvbjtcblxuLyoqXG4gKiBUYWcgdmFsdWVzIGFyZSBmbGF0OiBhIHNjYWxhciAoY29lcmNlZCB0byBzdHJpbmcgYnkgdGhlIHNlcnZpY2UpIG9yIGFcbiAqIGZsYXQgYXJyYXkgb2Ygc2NhbGFycy4gTmVzdGVkIG9iamVjdHMgYXJlIHJlamVjdGVkIG9uIHdyaXRlLlxuICpcbiAqIGBudWxsYCBpcyBtZWFuaW5nZnVsIG9ubHkgaW5zaWRlIGEgUEFUQ0ggdGFnIGJhZywgd2hlcmUgaXQgZGVsZXRlcyB0aGVcbiAqIGtleS4gSXQgaXMgbm90IGEgc3RvcmFibGUgdmFsdWUuIFVzZSB7QGxpbmsgUGF0Y2hUYWdCYWd9IGZvciBQQVRDSCBib2RpZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFRhZ1ZhbHVlID0gc3RyaW5nIHwgc3RyaW5nW107XG5cbmV4cG9ydCB0eXBlIFRhZ0JhZyA9IFJlY29yZDxzdHJpbmcsIFRhZ1ZhbHVlPjtcblxuLyoqIFRhZyBiYWcgYWNjZXB0ZWQgYnkgUEFUQ0guIGBudWxsYCBkZWxldGVzIHRoZSBrZXk7IGV2ZXJ5dGhpbmcgZWxzZSBpcyBzaGFsbG93LW1lcmdlZC4gKi9cbmV4cG9ydCB0eXBlIFBhdGNoVGFnQmFnID0gUmVjb3JkPHN0cmluZywgVGFnVmFsdWUgfCBudWxsPjtcblxuLyoqXG4gKiBGaWx0ZXIgZ3JhbW1hciB1c2VkIGJ5IGJvdGggdGhlIGxpc3RpbmcgZW5kcG9pbnQgYW5kIHRoZSBjb250YWlubWVudFxuICogcHJpbWl0aXZlJ3MgYHRhZ3NgIHNlbGVjdG9yOlxuICpcbiAqICAgLSBgeyBrOiBcInZcIiB9YCAgICAgICAgICAgZXF1YWxpdHkgLyBhcnJheS1tZW1iZXJzaGlwOiBgdGFncyBAPiB7XCJrXCI6XCJ2XCJ9YFxuICogICAtIGB7IGs6IFtcInYxXCIsXCJ2MlwiXSB9YCAgIGFueS1vZiAoSU4pOiBwZXItdmFsdWUgYEA+YCBjbGF1c2VzIE9SLWVkXG4gKiAgIC0gbXVsdGlwbGUga2V5cyAgICAgICAgICAgQU5EIGFjcm9zcyBrZXlzXG4gKlxuICogU3RvcmVkIGFycmF5cyBtYXRjaCBzY2FsYXIgZmlsdGVycyB2aWEgSlNPTkIgYEA+YDsgdGhlIGNvbXBpbGVyIGRvZXMgbm90XG4gKiBuZWVkIHRvIGtub3cgdGhlIHN0b3JlZCBzaGFwZS4gVXNlIHRoZSBkZWRpY2F0ZWQgYGlkc2Agc2VsZWN0b3Igb25cbiAqIGNvbnRhaW5tZW50IGZvciBsYXJnZSBpZC1zdHlsZSBzZXRzIOKAlCB0YWcgSU4gaXMgZm9yIGxvdy1jYXJkaW5hbGl0eVxuICogdmFsdWUgbGlzdHMgKGNhdGVnb3J5LCBzdGF0dXMsIHR5cGUpLlxuICovXG5leHBvcnQgdHlwZSBUYWdGaWx0ZXIgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT47XG5cbi8qKiBUaGUgZnVsbCB6b25lIHJlY29yZCByZXR1cm5lZCBieSBgZ2V0YC9gcmVwbGFjZWAvYHVwZGF0ZWAuICovXG5leHBvcnQgaW50ZXJmYWNlIFpvbmUge1xuICB6aWQ6IHN0cmluZztcbiAgZ2VvbWV0cnk6IEdlb0pzb25NdWx0aVBvbHlnb247XG4gIHRhZ3M6IFRhZ0JhZztcbiAgYXJlYVNxS206IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xufVxuXG4vKiogVGhlIGNvbXBhY3Qgc2hhcGUgcmV0dXJuZWQgYnkgYGNvbnRhaW5pbmdgLCBgbGlzdGAsIGFuZCBgY3JlYXRlYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWm9uZVN1bW1hcnkge1xuICB6aWQ6IHN0cmluZztcbiAgdGFnczogVGFnQmFnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFpvbmVMaXN0UGFnZSB7XG4gIHpvbmVzOiBab25lU3VtbWFyeVtdO1xuICBuZXh0Q3Vyc29yOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFpvbmVDcmVhdGVSZXN1bHQge1xuICB6aWQ6IHN0cmluZztcbiAgdGFnczogVGFnQmFnO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBab25lQ3JlYXRlSW5wdXQge1xuICBnZW9tZXRyeTogR2VvbWV0cnk7XG4gIHRhZ3M/OiBUYWdCYWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWm9uZVBhdGNoSW5wdXQge1xuICBnZW9tZXRyeT86IEdlb21ldHJ5O1xuICB0YWdzPzogUGF0Y2hUYWdCYWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgWm9uZVJlcGxhY2VJbnB1dCB7XG4gIGdlb21ldHJ5OiBHZW9tZXRyeTtcbiAgdGFncz86IFRhZ0JhZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBab25lTGlzdE9wdGlvbnMge1xuICB0YWdzPzogVGFnRmlsdGVyO1xuICBjdXJzb3I/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhaW5pbmdJbnB1dCB7XG4gIHBvaW50OiBQb2ludDtcbiAgaWRzPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIHRhZ3M/OiBUYWdGaWx0ZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmVhcmJ5SW5wdXQge1xuICBwb2ludDogUG9pbnQ7XG4gIHJhZGl1c01ldGVyczogbnVtYmVyO1xuICB0YWdzPzogVGFnRmlsdGVyO1xuICBpZHM/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgbGltaXQ/OiBudW1iZXI7XG59XG5cbi8qKiBUaGUgY29tcGFjdCBzaGFwZSByZXR1cm5lZCBieSBgbmVhcmJ5YCwgd2l0aCB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgcXVlcnkgcG9pbnQuICovXG5leHBvcnQgaW50ZXJmYWNlIFpvbmVOZWFyYnkge1xuICB6aWQ6IHN0cmluZztcbiAgdGFnczogVGFnQmFnO1xuICBkaXN0YW5jZU1ldGVyczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVyc2VjdGluZ0lucHV0IHtcbiAgZ2VvbWV0cnk6IEdlb21ldHJ5O1xuICB0YWdzPzogVGFnRmlsdGVyO1xuICBpZHM/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgZXhjbHVkZVppZD86IHN0cmluZztcbiAgbGltaXQ/OiBudW1iZXI7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uengage.io/platform-sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Client SDK for the uEngage platform API (audit, business, auth). Single createClient(...) factory; OAuth2 client_credentials, static Bearer, or legacy session-token auth modes.",
|
|
3
|
+
"version": "0.15.0",
|
|
4
|
+
"description": "Client SDK for the uEngage platform API (audit, business, zones, wallet, auth). Single createClient(...) factory; OAuth2 client_credentials, static Bearer, or legacy session-token auth modes.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"files": [
|