@cubist-labs/cubesigner-sdk 0.3.28 → 0.3.29
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 +1 -6
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/api.d.ts +2 -1
- package/dist/cjs/src/api.js +4 -2
- package/dist/cjs/src/client.d.ts +16 -11
- package/dist/cjs/src/client.js +4 -3
- package/dist/cjs/src/key.d.ts +3 -0
- package/dist/cjs/src/key.js +10 -1
- package/dist/cjs/src/org.d.ts +3 -3
- package/dist/cjs/src/schema.d.ts +970 -46
- package/dist/cjs/src/schema.js +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/src/api.d.ts +2 -1
- package/dist/esm/src/api.js +4 -2
- package/dist/esm/src/client.d.ts +16 -11
- package/dist/esm/src/client.js +4 -3
- package/dist/esm/src/key.d.ts +3 -0
- package/dist/esm/src/key.js +10 -1
- package/dist/esm/src/org.d.ts +3 -3
- package/dist/esm/src/schema.d.ts +970 -46
- package/dist/esm/src/schema.js +1 -1
- package/package.json +1 -1
- package/src/api.ts +7 -1
- package/src/client.ts +3 -2
- package/src/key.ts +9 -0
- package/src/schema.ts +1008 -44
- package/dist/cjs/src/org_event_processor.d.ts +0 -57
- package/dist/cjs/src/org_event_processor.js +0 -137
- package/dist/esm/src/org_event_processor.d.ts +0 -57
- package/dist/esm/src/org_event_processor.js +0 -133
- package/dist/package.json +0 -36
- package/dist/spec/env/beta.json +0 -9
- package/dist/spec/env/gamma.json +0 -9
- package/dist/spec/env/prod.json +0 -9
- package/dist/src/api.d.ts +0 -634
- package/dist/src/api.js +0 -1309
- package/dist/src/client.d.ts +0 -575
- package/dist/src/client.js +0 -381
- package/dist/src/env.d.ts +0 -15
- package/dist/src/env.js +0 -35
- package/dist/src/error.d.ts +0 -29
- package/dist/src/error.js +0 -36
- package/dist/src/events.d.ts +0 -84
- package/dist/src/events.js +0 -195
- package/dist/src/index.d.ts +0 -207
- package/dist/src/index.js +0 -308
- package/dist/src/key.d.ts +0 -152
- package/dist/src/key.js +0 -242
- package/dist/src/mfa.d.ts +0 -94
- package/dist/src/mfa.js +0 -169
- package/dist/src/org.d.ts +0 -99
- package/dist/src/org.js +0 -95
- package/dist/src/paginator.d.ts +0 -76
- package/dist/src/paginator.js +0 -99
- package/dist/src/response.d.ts +0 -101
- package/dist/src/response.js +0 -164
- package/dist/src/role.d.ts +0 -283
- package/dist/src/role.js +0 -253
- package/dist/src/schema.d.ts +0 -6209
- package/dist/src/schema.js +0 -7
- package/dist/src/schema_types.d.ts +0 -113
- package/dist/src/schema_types.js +0 -3
- package/dist/src/session/session_storage.d.ts +0 -47
- package/dist/src/session/session_storage.js +0 -76
- package/dist/src/session/signer_session_manager.d.ts +0 -125
- package/dist/src/session/signer_session_manager.js +0 -239
- package/dist/src/signer_session.d.ts +0 -41
- package/dist/src/signer_session.js +0 -77
- package/dist/src/user_export.d.ts +0 -52
- package/dist/src/user_export.js +0 -129
- package/dist/src/util.d.ts +0 -61
- package/dist/src/util.js +0 -97
package/dist/src/util.d.ts
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/** JSON map type */
|
|
2
|
-
export interface JsonMap {
|
|
3
|
-
[member: string]: string | number | boolean | null | JsonArray | JsonMap;
|
|
4
|
-
}
|
|
5
|
-
/** JSON array type */
|
|
6
|
-
export type JsonArray = Array<string | number | boolean | null | JsonArray | JsonMap>;
|
|
7
|
-
/**
|
|
8
|
-
* Path join
|
|
9
|
-
* @param {string} dir Parent directory
|
|
10
|
-
* @param {string} file Pathname
|
|
11
|
-
* @return {string} New pathname
|
|
12
|
-
*/
|
|
13
|
-
export declare function pathJoin(dir: string, file: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* Directory where CubeSigner stores config files.
|
|
16
|
-
* @return {string} Config dir
|
|
17
|
-
*/
|
|
18
|
-
export declare function configDir(): string;
|
|
19
|
-
/**
|
|
20
|
-
* Browser-friendly helper for decoding a 'base64'-encoded string into a byte array.
|
|
21
|
-
*
|
|
22
|
-
* @param {string} b64 The 'base64'-encoded string to decode
|
|
23
|
-
* @return {Uint8Array} Decoded byte array
|
|
24
|
-
*/
|
|
25
|
-
export declare function decodeBase64(b64: string): Uint8Array;
|
|
26
|
-
/**
|
|
27
|
-
* Browser-friendly helper for decoding a 'base64url'-encoded string into a byte array.
|
|
28
|
-
*
|
|
29
|
-
* @param {string} b64url The 'base64url'-encoded string to decode
|
|
30
|
-
* @return {Uint8Array} Decoded byte array
|
|
31
|
-
*/
|
|
32
|
-
export declare function decodeBase64Url(b64url: string): Uint8Array;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
* Browser-friendly helper for encoding a byte array into a padded `base64`-encoded string.
|
|
36
|
-
*
|
|
37
|
-
* @param {Iterable<number>} buffer The byte array to encode
|
|
38
|
-
* @return {string} The 'base64' encoding of the byte array.
|
|
39
|
-
*/
|
|
40
|
-
export declare function encodeToBase64(buffer: Iterable<number>): string;
|
|
41
|
-
/**
|
|
42
|
-
* Browser-friendly helper for encoding a byte array into a 'base64url`-encoded string.
|
|
43
|
-
*
|
|
44
|
-
* @param {Iterable<number>} buffer The byte array to encode
|
|
45
|
-
* @return {string} The 'base64url' encoding of the byte array.
|
|
46
|
-
*/
|
|
47
|
-
export declare function encodeToBase64Url(buffer: Iterable<number>): string;
|
|
48
|
-
/**
|
|
49
|
-
* Sleeps for `ms` milliseconds.
|
|
50
|
-
*
|
|
51
|
-
* @param {number} ms Milliseconds to sleep
|
|
52
|
-
* @return {Promise<void>} A promise that is resolved after `ms` milliseconds.
|
|
53
|
-
*/
|
|
54
|
-
export declare function delay(ms: number): Promise<void>;
|
|
55
|
-
/**
|
|
56
|
-
* Converts a string or a uint8 array into a hex string. Strings are encoded in UTF-8 before
|
|
57
|
-
* being converted to hex.
|
|
58
|
-
* @param {string | Uint8Array} message The input
|
|
59
|
-
* @return {string} Hex string prefixed with "0x"
|
|
60
|
-
*/
|
|
61
|
-
export declare function encodeToHex(message: string | Uint8Array): string;
|
package/dist/src/util.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.encodeToHex = exports.delay = exports.encodeToBase64Url = exports.encodeToBase64 = exports.decodeBase64Url = exports.decodeBase64 = exports.configDir = exports.pathJoin = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Path join
|
|
6
|
-
* @param {string} dir Parent directory
|
|
7
|
-
* @param {string} file Pathname
|
|
8
|
-
* @return {string} New pathname
|
|
9
|
-
*/
|
|
10
|
-
function pathJoin(dir, file) {
|
|
11
|
-
const sep = globalThis?.process?.platform === "win32" ? "\\" : "/";
|
|
12
|
-
return `${dir}${sep}${file}`;
|
|
13
|
-
}
|
|
14
|
-
exports.pathJoin = pathJoin;
|
|
15
|
-
/**
|
|
16
|
-
* Directory where CubeSigner stores config files.
|
|
17
|
-
* @return {string} Config dir
|
|
18
|
-
*/
|
|
19
|
-
function configDir() {
|
|
20
|
-
const configDir = process.platform === "darwin"
|
|
21
|
-
? `${process.env.HOME}/Library/Application Support`
|
|
22
|
-
: `${process.env.HOME}/.config`;
|
|
23
|
-
return pathJoin(configDir, "cubesigner");
|
|
24
|
-
}
|
|
25
|
-
exports.configDir = configDir;
|
|
26
|
-
/**
|
|
27
|
-
* Browser-friendly helper for decoding a 'base64'-encoded string into a byte array.
|
|
28
|
-
*
|
|
29
|
-
* @param {string} b64 The 'base64'-encoded string to decode
|
|
30
|
-
* @return {Uint8Array} Decoded byte array
|
|
31
|
-
*/
|
|
32
|
-
function decodeBase64(b64) {
|
|
33
|
-
return typeof Buffer === "function"
|
|
34
|
-
? Buffer.from(b64, "base64")
|
|
35
|
-
: Uint8Array.from(atob(b64), (c) => c.charCodeAt(0));
|
|
36
|
-
}
|
|
37
|
-
exports.decodeBase64 = decodeBase64;
|
|
38
|
-
/**
|
|
39
|
-
* Browser-friendly helper for decoding a 'base64url'-encoded string into a byte array.
|
|
40
|
-
*
|
|
41
|
-
* @param {string} b64url The 'base64url'-encoded string to decode
|
|
42
|
-
* @return {Uint8Array} Decoded byte array
|
|
43
|
-
*/
|
|
44
|
-
function decodeBase64Url(b64url) {
|
|
45
|
-
// NOTE: there is no "base64url" encoding in the "buffer" module for the browser (unlike in node.js)
|
|
46
|
-
const b64 = b64url.replace(/-/g, "+").replace(/_/g, "/").replace(/=*$/g, "");
|
|
47
|
-
return decodeBase64(b64);
|
|
48
|
-
}
|
|
49
|
-
exports.decodeBase64Url = decodeBase64Url;
|
|
50
|
-
/**
|
|
51
|
-
*
|
|
52
|
-
* Browser-friendly helper for encoding a byte array into a padded `base64`-encoded string.
|
|
53
|
-
*
|
|
54
|
-
* @param {Iterable<number>} buffer The byte array to encode
|
|
55
|
-
* @return {string} The 'base64' encoding of the byte array.
|
|
56
|
-
*/
|
|
57
|
-
function encodeToBase64(buffer) {
|
|
58
|
-
const bytes = new Uint8Array(buffer);
|
|
59
|
-
const b64 = typeof Buffer === "function"
|
|
60
|
-
? Buffer.from(bytes).toString("base64")
|
|
61
|
-
: btoa(bytes.reduce((s, b) => s + String.fromCharCode(b), ""));
|
|
62
|
-
return b64;
|
|
63
|
-
}
|
|
64
|
-
exports.encodeToBase64 = encodeToBase64;
|
|
65
|
-
/**
|
|
66
|
-
* Browser-friendly helper for encoding a byte array into a 'base64url`-encoded string.
|
|
67
|
-
*
|
|
68
|
-
* @param {Iterable<number>} buffer The byte array to encode
|
|
69
|
-
* @return {string} The 'base64url' encoding of the byte array.
|
|
70
|
-
*/
|
|
71
|
-
function encodeToBase64Url(buffer) {
|
|
72
|
-
const b64 = encodeToBase64(buffer);
|
|
73
|
-
// NOTE: there is no "base64url" encoding in the "buffer" module for the browser (unlike in node.js)
|
|
74
|
-
return b64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=*$/g, "");
|
|
75
|
-
}
|
|
76
|
-
exports.encodeToBase64Url = encodeToBase64Url;
|
|
77
|
-
/**
|
|
78
|
-
* Sleeps for `ms` milliseconds.
|
|
79
|
-
*
|
|
80
|
-
* @param {number} ms Milliseconds to sleep
|
|
81
|
-
* @return {Promise<void>} A promise that is resolved after `ms` milliseconds.
|
|
82
|
-
*/
|
|
83
|
-
function delay(ms) {
|
|
84
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
85
|
-
}
|
|
86
|
-
exports.delay = delay;
|
|
87
|
-
/**
|
|
88
|
-
* Converts a string or a uint8 array into a hex string. Strings are encoded in UTF-8 before
|
|
89
|
-
* being converted to hex.
|
|
90
|
-
* @param {string | Uint8Array} message The input
|
|
91
|
-
* @return {string} Hex string prefixed with "0x"
|
|
92
|
-
*/
|
|
93
|
-
function encodeToHex(message) {
|
|
94
|
-
return ("0x" + (typeof message === "string" ? Buffer.from(message, "utf8") : message).toString("hex"));
|
|
95
|
-
}
|
|
96
|
-
exports.encodeToHex = encodeToHex;
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBOzs7OztHQUtHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFDLEdBQVcsRUFBRSxJQUFZO0lBQ2hELE1BQU0sR0FBRyxHQUFHLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDbkUsT0FBTyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7QUFDL0IsQ0FBQztBQUhELDRCQUdDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsU0FBUztJQUN2QixNQUFNLFNBQVMsR0FDYixPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVE7UUFDM0IsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLDhCQUE4QjtRQUNuRCxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxDQUFDO0lBQ3BDLE9BQU8sUUFBUSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBTkQsOEJBTUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLE9BQU8sT0FBTyxNQUFNLEtBQUssVUFBVTtRQUNqQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFKRCxvQ0FJQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLE1BQWM7SUFDNUMsb0dBQW9HO0lBQ3BHLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RSxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBSkQsMENBSUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixjQUFjLENBQUMsTUFBd0I7SUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsTUFBTSxHQUFHLEdBQ1AsT0FBTyxNQUFNLEtBQUssVUFBVTtRQUMxQixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBUEQsd0NBT0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLE1BQXdCO0lBQ3hELE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxvR0FBb0c7SUFDcEcsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDekUsQ0FBQztBQUpELDhDQUlDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixLQUFLLENBQUMsRUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUZELHNCQUVDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixXQUFXLENBQUMsT0FBNEI7SUFDdEQsT0FBTyxDQUNMLElBQUksR0FBRyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDOUYsQ0FBQztBQUNKLENBQUM7QUFKRCxrQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBKU09OIG1hcCB0eXBlICovXG5leHBvcnQgaW50ZXJmYWNlIEpzb25NYXAge1xuICBbbWVtYmVyOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IEpzb25BcnJheSB8IEpzb25NYXA7XG59XG5cbi8qKiBKU09OIGFycmF5IHR5cGUgKi9cbmV4cG9ydCB0eXBlIEpzb25BcnJheSA9IEFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgSnNvbkFycmF5IHwgSnNvbk1hcD47XG5cbi8qKlxuICogUGF0aCBqb2luXG4gKiBAcGFyYW0ge3N0cmluZ30gZGlyIFBhcmVudCBkaXJlY3RvcnlcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlIFBhdGhuYW1lXG4gKiBAcmV0dXJuIHtzdHJpbmd9IE5ldyBwYXRobmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aEpvaW4oZGlyOiBzdHJpbmcsIGZpbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNlcCA9IGdsb2JhbFRoaXM/LnByb2Nlc3M/LnBsYXRmb3JtID09PSBcIndpbjMyXCIgPyBcIlxcXFxcIiA6IFwiL1wiO1xuICByZXR1cm4gYCR7ZGlyfSR7c2VwfSR7ZmlsZX1gO1xufVxuXG4vKipcbiAqIERpcmVjdG9yeSB3aGVyZSBDdWJlU2lnbmVyIHN0b3JlcyBjb25maWcgZmlsZXMuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IENvbmZpZyBkaXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ0RpcigpOiBzdHJpbmcge1xuICBjb25zdCBjb25maWdEaXIgPVxuICAgIHByb2Nlc3MucGxhdGZvcm0gPT09IFwiZGFyd2luXCJcbiAgICAgID8gYCR7cHJvY2Vzcy5lbnYuSE9NRX0vTGlicmFyeS9BcHBsaWNhdGlvbiBTdXBwb3J0YFxuICAgICAgOiBgJHtwcm9jZXNzLmVudi5IT01FfS8uY29uZmlnYDtcbiAgcmV0dXJuIHBhdGhKb2luKGNvbmZpZ0RpciwgXCJjdWJlc2lnbmVyXCIpO1xufVxuXG4vKipcbiAqIEJyb3dzZXItZnJpZW5kbHkgaGVscGVyIGZvciBkZWNvZGluZyBhICdiYXNlNjQnLWVuY29kZWQgc3RyaW5nIGludG8gYSBieXRlIGFycmF5LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBiNjQgVGhlICdiYXNlNjQnLWVuY29kZWQgc3RyaW5nIHRvIGRlY29kZVxuICogQHJldHVybiB7VWludDhBcnJheX0gRGVjb2RlZCBieXRlIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVCYXNlNjQoYjY0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIHR5cGVvZiBCdWZmZXIgPT09IFwiZnVuY3Rpb25cIlxuICAgID8gQnVmZmVyLmZyb20oYjY0LCBcImJhc2U2NFwiKVxuICAgIDogVWludDhBcnJheS5mcm9tKGF0b2IoYjY0KSwgKGMpID0+IGMuY2hhckNvZGVBdCgwKSk7XG59XG5cbi8qKlxuICogQnJvd3Nlci1mcmllbmRseSBoZWxwZXIgZm9yIGRlY29kaW5nIGEgJ2Jhc2U2NHVybCctZW5jb2RlZCBzdHJpbmcgaW50byBhIGJ5dGUgYXJyYXkuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGI2NHVybCBUaGUgJ2Jhc2U2NHVybCctZW5jb2RlZCBzdHJpbmcgdG8gZGVjb2RlXG4gKiBAcmV0dXJuIHtVaW50OEFycmF5fSBEZWNvZGVkIGJ5dGUgYXJyYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZUJhc2U2NFVybChiNjR1cmw6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAvLyBOT1RFOiB0aGVyZSBpcyBubyBcImJhc2U2NHVybFwiIGVuY29kaW5nIGluIHRoZSBcImJ1ZmZlclwiIG1vZHVsZSBmb3IgdGhlIGJyb3dzZXIgKHVubGlrZSBpbiBub2RlLmpzKVxuICBjb25zdCBiNjQgPSBiNjR1cmwucmVwbGFjZSgvLS9nLCBcIitcIikucmVwbGFjZSgvXy9nLCBcIi9cIikucmVwbGFjZSgvPSokL2csIFwiXCIpO1xuICByZXR1cm4gZGVjb2RlQmFzZTY0KGI2NCk7XG59XG5cbi8qKlxuICpcbiAqIEJyb3dzZXItZnJpZW5kbHkgaGVscGVyIGZvciBlbmNvZGluZyBhIGJ5dGUgYXJyYXkgaW50byBhIHBhZGRlZCBgYmFzZTY0YC1lbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge0l0ZXJhYmxlPG51bWJlcj59IGJ1ZmZlciBUaGUgYnl0ZSBhcnJheSB0byBlbmNvZGVcbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlICdiYXNlNjQnIGVuY29kaW5nIG9mIHRoZSBieXRlIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlVG9CYXNlNjQoYnVmZmVyOiBJdGVyYWJsZTxudW1iZXI+KTogc3RyaW5nIHtcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICBjb25zdCBiNjQgPVxuICAgIHR5cGVvZiBCdWZmZXIgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgPyBCdWZmZXIuZnJvbShieXRlcykudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgIDogYnRvYShieXRlcy5yZWR1Y2UoKHMsIGIpID0+IHMgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGIpLCBcIlwiKSk7XG4gIHJldHVybiBiNjQ7XG59XG5cbi8qKlxuICogQnJvd3Nlci1mcmllbmRseSBoZWxwZXIgZm9yIGVuY29kaW5nIGEgYnl0ZSBhcnJheSBpbnRvIGEgJ2Jhc2U2NHVybGAtZW5jb2RlZCBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtJdGVyYWJsZTxudW1iZXI+fSBidWZmZXIgVGhlIGJ5dGUgYXJyYXkgdG8gZW5jb2RlXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSAnYmFzZTY0dXJsJyBlbmNvZGluZyBvZiB0aGUgYnl0ZSBhcnJheS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVRvQmFzZTY0VXJsKGJ1ZmZlcjogSXRlcmFibGU8bnVtYmVyPik6IHN0cmluZyB7XG4gIGNvbnN0IGI2NCA9IGVuY29kZVRvQmFzZTY0KGJ1ZmZlcik7XG4gIC8vIE5PVEU6IHRoZXJlIGlzIG5vIFwiYmFzZTY0dXJsXCIgZW5jb2RpbmcgaW4gdGhlIFwiYnVmZmVyXCIgbW9kdWxlIGZvciB0aGUgYnJvd3NlciAodW5saWtlIGluIG5vZGUuanMpXG4gIHJldHVybiBiNjQucmVwbGFjZSgvXFwrL2csIFwiLVwiKS5yZXBsYWNlKC9cXC8vZywgXCJfXCIpLnJlcGxhY2UoLz0qJC9nLCBcIlwiKTtcbn1cblxuLyoqXG4gKiBTbGVlcHMgZm9yIGBtc2AgbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBtcyBNaWxsaXNlY29uZHMgdG8gc2xlZXBcbiAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIGFmdGVyIGBtc2AgbWlsbGlzZWNvbmRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsYXkobXM6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0cmluZyBvciBhIHVpbnQ4IGFycmF5IGludG8gYSBoZXggc3RyaW5nLiBTdHJpbmdzIGFyZSBlbmNvZGVkIGluIFVURi04IGJlZm9yZVxuICogYmVpbmcgY29udmVydGVkIHRvIGhleC5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgVWludDhBcnJheX0gbWVzc2FnZSBUaGUgaW5wdXRcbiAqIEByZXR1cm4ge3N0cmluZ30gSGV4IHN0cmluZyBwcmVmaXhlZCB3aXRoIFwiMHhcIlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlVG9IZXgobWVzc2FnZTogc3RyaW5nIHwgVWludDhBcnJheSk6IHN0cmluZyB7XG4gIHJldHVybiAoXG4gICAgXCIweFwiICsgKHR5cGVvZiBtZXNzYWdlID09PSBcInN0cmluZ1wiID8gQnVmZmVyLmZyb20obWVzc2FnZSwgXCJ1dGY4XCIpIDogbWVzc2FnZSkudG9TdHJpbmcoXCJoZXhcIilcbiAgKTtcbn1cbiJdfQ==
|