obsidian-integration-testing 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cjs/global-setup-core.cjs +12 -11
- package/dist/lib/cjs/log.cjs +32 -0
- package/dist/lib/cjs/log.d.cts +11 -0
- package/dist/lib/cjs/transport-appium.cjs +12 -11
- package/dist/lib/cjs/transport-desktop-cdp.cjs +13 -12
- package/dist/lib/cjs/transport-desktop-cli.cjs +13 -12
- package/dist/lib/cjs/transport-factory.cjs +15 -14
- package/dist/lib/esm/global-setup-core.mjs +12 -11
- package/dist/lib/esm/log.d.mts +11 -0
- package/dist/lib/esm/log.mjs +8 -0
- package/dist/lib/esm/transport-appium.mjs +12 -11
- package/dist/lib/esm/transport-desktop-cdp.mjs +13 -12
- package/dist/lib/esm/transport-desktop-cli.mjs +13 -12
- package/dist/lib/esm/transport-factory.mjs +15 -14
- package/dist/obsidian-integration-testing-2.0.1.tgz +0 -0
- package/package.json +1 -1
- package/dist/obsidian-integration-testing-2.0.0.tgz +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import http from "node:http";
|
|
3
3
|
import { remote } from "webdriverio";
|
|
4
|
+
import { log } from "./log.mjs";
|
|
4
5
|
import { AppiumTransport } from "./transport-appium.mjs";
|
|
5
6
|
import { DesktopCdpTransport } from "./transport-desktop-cdp.mjs";
|
|
6
7
|
import { DesktopCliTransport } from "./transport-desktop-cli.mjs";
|
|
@@ -10,25 +11,25 @@ const APPIUM_CONNECTION_RETRY_COUNT = 1;
|
|
|
10
11
|
const APPIUM_CONNECTION_RETRY_TIMEOUT_IN_MILLISECONDS = 1e4;
|
|
11
12
|
const APPIUM_PREFLIGHT_TIMEOUT_IN_MILLISECONDS = 5e3;
|
|
12
13
|
const APPIUM_START_POLL_INTERVAL_IN_MILLISECONDS = 500;
|
|
13
|
-
const APPIUM_START_TIMEOUT_IN_MILLISECONDS =
|
|
14
|
+
const APPIUM_START_TIMEOUT_IN_MILLISECONDS = 6e4;
|
|
14
15
|
const CDP_DEFAULT_PORT = 8315;
|
|
15
16
|
const COMMAND_TIMEOUT_IN_MILLISECONDS = 300;
|
|
16
17
|
const SERVER_LAUNCH_TIMEOUT_IN_MILLISECONDS = 3e4;
|
|
17
18
|
let cachedTransport;
|
|
18
19
|
async function createTransportFromOptions(options) {
|
|
19
20
|
if (!options || options.type === "obsidian-cli") {
|
|
20
|
-
|
|
21
|
+
log("[transport-factory] Creating DesktopCliTransport (no options or type=obsidian-cli)");
|
|
21
22
|
return new DesktopCliTransport();
|
|
22
23
|
}
|
|
23
24
|
if (options.type === "obsidian-cdp") {
|
|
24
|
-
|
|
25
|
+
log(`[transport-factory] Creating DesktopCdpTransport (host=${options.host ?? "localhost"}, port=${String(options.port ?? CDP_DEFAULT_PORT)})`);
|
|
25
26
|
return new DesktopCdpTransport({
|
|
26
27
|
...options.host !== void 0 && { cdpHost: options.host },
|
|
27
28
|
...options.port !== void 0 && { cdpPort: options.port },
|
|
28
29
|
...options.commandTimeoutInMilliseconds !== void 0 && { commandTimeoutInMilliseconds: options.commandTimeoutInMilliseconds }
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
+
log(`[transport-factory] Creating AppiumTransport (url=${options.appiumUrl}, device=${options.deviceId})`);
|
|
32
33
|
return createAppiumTransport(options);
|
|
33
34
|
}
|
|
34
35
|
async function getOrCreateTransport(options) {
|
|
@@ -70,21 +71,21 @@ async function createAppiumTransport(options) {
|
|
|
70
71
|
throw new Error(`Invalid port in appiumUrl: ${url.port}`);
|
|
71
72
|
}
|
|
72
73
|
const appId = options.appId ?? APP_PACKAGE;
|
|
73
|
-
|
|
74
|
+
log(`[transport-factory] Checking Appium server at ${options.appiumUrl}...`);
|
|
74
75
|
let appiumProcess;
|
|
75
76
|
try {
|
|
76
77
|
await checkAppiumReachable(url);
|
|
77
|
-
|
|
78
|
+
log("[transport-factory] Appium server is reachable.");
|
|
78
79
|
} catch (error) {
|
|
79
80
|
if (options.shouldAutoStartAppium === false) {
|
|
80
81
|
throw error;
|
|
81
82
|
}
|
|
82
|
-
|
|
83
|
+
log(`[transport-factory] Appium not reachable, auto-starting on port ${String(port)}...`);
|
|
83
84
|
appiumProcess = startAppiumServer(port);
|
|
84
85
|
await waitForAppiumReady(url);
|
|
85
|
-
|
|
86
|
+
log("[transport-factory] Auto-started Appium server is ready.");
|
|
86
87
|
}
|
|
87
|
-
|
|
88
|
+
log(`[transport-factory] Connecting to Appium (device=${options.deviceId}, app=${appId})...`);
|
|
88
89
|
const browser = await remote({
|
|
89
90
|
capabilities: {
|
|
90
91
|
"appium:appActivity": APP_ACTIVITY,
|
|
@@ -107,7 +108,7 @@ async function createAppiumTransport(options) {
|
|
|
107
108
|
path: url.pathname,
|
|
108
109
|
port
|
|
109
110
|
});
|
|
110
|
-
|
|
111
|
+
log("[transport-factory] Appium session established.");
|
|
111
112
|
const transport = new AppiumTransport({
|
|
112
113
|
appId,
|
|
113
114
|
browser,
|
|
@@ -119,16 +120,16 @@ async function createAppiumTransport(options) {
|
|
|
119
120
|
transport.dispose = async () => {
|
|
120
121
|
await originalDispose();
|
|
121
122
|
appiumProcess.kill();
|
|
122
|
-
|
|
123
|
+
log("[transport-factory] Auto-started Appium server stopped.");
|
|
123
124
|
};
|
|
124
125
|
}
|
|
125
126
|
return transport;
|
|
126
127
|
}
|
|
127
128
|
function startAppiumServer(port) {
|
|
128
|
-
const child = spawn(
|
|
129
|
+
const child = spawn(`npx appium --log-timestamp --port ${String(port)}`, {
|
|
129
130
|
detached: true,
|
|
130
131
|
shell: true,
|
|
131
|
-
stdio: "
|
|
132
|
+
stdio: "inherit"
|
|
132
133
|
});
|
|
133
134
|
child.unref();
|
|
134
135
|
return child;
|
|
@@ -153,4 +154,4 @@ export {
|
|
|
153
154
|
createTransportFromOptions,
|
|
154
155
|
getOrCreateTransport
|
|
155
156
|
};
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3RyYW5zcG9ydC1mYWN0b3J5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRmFjdG9yeSBmb3IgY3JlYXRpbmcgdHJhbnNwb3J0IGluc3RhbmNlcyBmcm9tIHtAbGluayBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnN9LlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIGZhY3RvcnkgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcblxuaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdub2RlOmNoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IGh0dHAgZnJvbSAnbm9kZTpodHRwJztcbmltcG9ydCB7IHJlbW90ZSB9IGZyb20gJ3dlYmRyaXZlcmlvJztcblxuaW1wb3J0IHR5cGUge1xuICBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zLFxuICBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnNcbn0gZnJvbSAnLi90cmFuc3BvcnQtb3B0aW9ucy5tanMnO1xuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0Lm1qcyc7XG5cbmltcG9ydCB7IEFwcGl1bVRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LWFwcGl1bS5tanMnO1xuaW1wb3J0IHsgRGVza3RvcENkcFRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LWRlc2t0b3AtY2RwLm1qcyc7XG5pbXBvcnQgeyBEZXNrdG9wQ2xpVHJhbnNwb3J0IH0gZnJvbSAnLi90cmFuc3BvcnQtZGVza3RvcC1jbGkubWpzJztcblxuY29uc3QgQVBQX1BBQ0tBR0UgPSAnbWQub2JzaWRpYW4nO1xuY29uc3QgQVBQX0FDVElWSVRZID0gYCR7QVBQX1BBQ0tBR0V9Lk1haW5BY3Rpdml0eWA7XG5jb25zdCBBUFBJVU1fQ09OTkVDVElPTl9SRVRSWV9DT1VOVCA9IDE7XG5jb25zdCBBUFBJVU1fQ09OTkVDVElPTl9SRVRSWV9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEwMDAwO1xuY29uc3QgQVBQSVVNX1BSRUZMSUdIVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDUwMDA7XG5jb25zdCBBUFBJVU1fU1RBUlRfUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMgPSA1MDA7XG5jb25zdCBBUFBJVU1fU1RBUlRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSAzMDAwMDtcbmNvbnN0IENEUF9ERUZBVUxUX1BPUlQgPSA4MzE1O1xuY29uc3QgQ09NTUFORF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDMwMDtcbmNvbnN0IFNFUlZFUl9MQVVOQ0hfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSAzMDAwMDtcblxubGV0IGNhY2hlZFRyYW5zcG9ydDogT2JzaWRpYW5UcmFuc3BvcnQgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyB0cmFuc3BvcnQgaW5zdGFuY2UgZnJvbSB0aGUgZ2l2ZW4gb3B0aW9ucy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRyYW5zcG9ydCBjb25maWd1cmF0aW9uLiBEZWZhdWx0cyB0byBDTEkgdHJhbnNwb3J0LlxuICogQHJldHVybnMgQSBuZXcgdHJhbnNwb3J0IGluc3RhbmNlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVHJhbnNwb3J0RnJvbU9wdGlvbnMob3B0aW9ucz86IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyk6IFByb21pc2U8T2JzaWRpYW5UcmFuc3BvcnQ+IHtcbiAgaWYgKCFvcHRpb25zIHx8IG9wdGlvbnMudHlwZSA9PT0gJ29ic2lkaWFuLWNsaScpIHtcbiAgICBjb25zb2xlLndhcm4oJ1t0cmFuc3BvcnQtZmFjdG9yeV0gQ3JlYXRpbmcgRGVza3RvcENsaVRyYW5zcG9ydCAobm8gb3B0aW9ucyBvciB0eXBlPW9ic2lkaWFuLWNsaSknKTtcbiAgICByZXR1cm4gbmV3IERlc2t0b3BDbGlUcmFuc3BvcnQoKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnR5cGUgPT09ICdvYnNpZGlhbi1jZHAnKSB7XG4gICAgY29uc29sZS53YXJuKGBbdHJhbnNwb3J0LWZhY3RvcnldIENyZWF0aW5nIERlc2t0b3BDZHBUcmFuc3BvcnQgKGhvc3Q9JHtvcHRpb25zLmhvc3QgPz8gJ2xvY2FsaG9zdCd9LCBwb3J0PSR7U3RyaW5nKG9wdGlvbnMucG9ydCA/PyBDRFBfREVGQVVMVF9QT1JUKX0pYCk7XG4gICAgcmV0dXJuIG5ldyBEZXNrdG9wQ2RwVHJhbnNwb3J0KHtcbiAgICAgIC4uLihvcHRpb25zLmhvc3QgIT09IHVuZGVmaW5lZCAmJiB7IGNkcEhvc3Q6IG9wdGlvbnMuaG9zdCB9KSxcbiAgICAgIC4uLihvcHRpb25zLnBvcnQgIT09IHVuZGVmaW5lZCAmJiB7IGNkcFBvcnQ6IG9wdGlvbnMucG9ydCB9KSxcbiAgICAgIC4uLihvcHRpb25zLmNvbW1hbmRUaW1lb3V0SW5NaWxsaXNlY29uZHMgIT09IHVuZGVmaW5lZCAmJiB7IGNvbW1hbmRUaW1lb3V0SW5NaWxsaXNlY29uZHM6IG9wdGlvbnMuY29tbWFuZFRpbWVvdXRJbk1pbGxpc2Vjb25kcyB9KVxuICAgIH0pO1xuICB9XG5cbiAgY29uc29sZS53YXJuKGBbdHJhbnNwb3J0LWZhY3RvcnldIENyZWF0aW5nIEFwcGl1bVRyYW5zcG9ydCAodXJsPSR7b3B0aW9ucy5hcHBpdW1Vcmx9LCBkZXZpY2U9JHtvcHRpb25zLmRldmljZUlkfSlgKTtcbiAgcmV0dXJuIGNyZWF0ZUFwcGl1bVRyYW5zcG9ydChvcHRpb25zKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgY2FjaGVkIHRyYW5zcG9ydCBpbnN0YW5jZSwgY3JlYXRpbmcgb25lIGZyb20gdGhlIGdpdmVuIG9wdGlvbnNcbiAqIGlmIG5vdCBhbHJlYWR5IGNhY2hlZC5cbiAqXG4gKiBUaGUgdHJhbnNwb3J0IGlzIGNhY2hlZCBwZXIgd29ya2VyIHByb2Nlc3Mgc28gV2ViU29ja2V0L0FwcGl1bSBzZXNzaW9uc1xuICogYXJlIHJldXNlZCBhY3Jvc3MgY2FsbHMgd2l0aGluIHRoZSBzYW1lIHRlc3Qgd29ya2VyLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24uIERlZmF1bHRzIHRvIENMSSB0cmFuc3BvcnQuXG4gKiBAcmV0dXJucyBUaGUgY2FjaGVkIG9yIG5ld2x5IGNyZWF0ZWQgdHJhbnNwb3J0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0T3JDcmVhdGVUcmFuc3BvcnQob3B0aW9ucz86IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyk6IFByb21pc2U8T2JzaWRpYW5UcmFuc3BvcnQ+IHtcbiAgaWYgKGNhY2hlZFRyYW5zcG9ydCkge1xuICAgIHJldHVybiBjYWNoZWRUcmFuc3BvcnQ7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBjcmVhdGVUcmFuc3BvcnRGcm9tT3B0aW9ucyhvcHRpb25zKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXRvbWljLXVwZGF0ZXMgLS0gU2luZ2xlLXRocmVhZGVkIHdvcmtlcjsgbm8gY29uY3VycmVudCB3cml0ZXMuXG4gIGNhY2hlZFRyYW5zcG9ydCA9IHJlc3VsdDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBQZXJmb3JtcyBhIHF1aWNrIEhUVFAgY2hlY2sgYWdhaW5zdCB0aGUgQXBwaXVtIHNlcnZlcidzIHN0YXR1cyBlbmRwb2ludC5cbiAqXG4gKiBGYWlscyBmYXN0ICh3aXRoaW4ge0BsaW5rIEFQUElVTV9QUkVGTElHSFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFN9KSB3aXRoXG4gKiBhIGNsZWFyIGVycm9yIG1lc3NhZ2UgaW5zdGVhZCBvZiBsZXR0aW5nIFdlYkRyaXZlcklPIHJldHJ5IHNpbGVudGx5IGZvciBtaW51dGVzLlxuICpcbiAqIEBwYXJhbSB1cmwgLSBUaGUgcGFyc2VkIEFwcGl1bSBVUkwuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrQXBwaXVtUmVhY2hhYmxlKHVybDogVVJMKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc3RhdHVzVXJsID0gbmV3IFVSTCgnL3N0YXR1cycsIHVybCk7XG4gICAgY29uc3QgcmVxID0gaHR0cC5nZXQoc3RhdHVzVXJsLCB7IHRpbWVvdXQ6IEFQUElVTV9QUkVGTElHSFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgfSwgKHJlcykgPT4ge1xuICAgICAgcmVzLnJlc3VtZSgpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0pO1xuICAgIHJlcS5vbigndGltZW91dCcsICgpID0+IHtcbiAgICAgIHJlcS5kZXN0cm95KCk7XG4gICAgICByZWplY3QoXG4gICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICBgQXBwaXVtIHNlcnZlciBhdCAke3VybC5vcmlnaW59IGRpZCBub3QgcmVzcG9uZCB3aXRoaW4gJHtTdHJpbmcoQVBQSVVNX1BSRUZMSUdIVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyl9bXMuIElzIHRoZSBBcHBpdW0gc2VydmVyIHJ1bm5pbmc/YFxuICAgICAgICApXG4gICAgICApO1xuICAgIH0pO1xuICAgIHJlcS5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICByZWplY3QoXG4gICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICBgQ2Fubm90IHJlYWNoIEFwcGl1bSBzZXJ2ZXIgYXQgJHt1cmwub3JpZ2lufTogJHtlcnIubWVzc2FnZX0uIElzIHRoZSBBcHBpdW0gc2VydmVyIHJ1bm5pbmc/YFxuICAgICAgICApXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIEFwcGl1bSB0cmFuc3BvcnQgYnkgZXN0YWJsaXNoaW5nIGEgV2ViRHJpdmVySU8gc2Vzc2lvbi5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIEFuZHJvaWQgQXBwaXVtIHRyYW5zcG9ydCBvcHRpb25zLlxuICogQHJldHVybnMgQSBjb25maWd1cmVkIEFwcGl1bSB0cmFuc3BvcnQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFwcGl1bVRyYW5zcG9ydChvcHRpb25zOiBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zKTogUHJvbWlzZTxBcHBpdW1UcmFuc3BvcnQ+IHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChvcHRpb25zLmFwcGl1bVVybCk7XG5cbiAgY29uc3QgcG9ydCA9IE51bWJlcih1cmwucG9ydCk7XG4gIGlmIChpc05hTihwb3J0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwb3J0IGluIGFwcGl1bVVybDogJHt1cmwucG9ydH1gKTtcbiAgfVxuXG4gIGNvbnN0IGFwcElkID0gb3B0aW9ucy5hcHBJZCA/PyBBUFBfUEFDS0FHRTtcblxuICBjb25zb2xlLndhcm4oYFt0cmFuc3BvcnQtZmFjdG9yeV0gQ2hlY2tpbmcgQXBwaXVtIHNlcnZlciBhdCAke29wdGlvbnMuYXBwaXVtVXJsfS4uLmApO1xuICBsZXQgYXBwaXVtUHJvY2VzczogQ2hpbGRQcm9jZXNzIHwgdW5kZWZpbmVkO1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgY2hlY2tBcHBpdW1SZWFjaGFibGUodXJsKTtcbiAgICBjb25zb2xlLndhcm4oJ1t0cmFuc3BvcnQtZmFjdG9yeV0gQXBwaXVtIHNlcnZlciBpcyByZWFjaGFibGUuJyk7XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgaWYgKG9wdGlvbnMuc2hvdWxkQXV0b1N0YXJ0QXBwaXVtID09PSBmYWxzZSkge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuXG4gICAgY29uc29sZS53YXJuKGBbdHJhbnNwb3J0LWZhY3RvcnldIEFwcGl1bSBub3QgcmVhY2hhYmxlLCBhdXRvLXN0YXJ0aW5nIG9uIHBvcnQgJHtTdHJpbmcocG9ydCl9Li4uYCk7XG4gICAgYXBwaXVtUHJvY2VzcyA9IHN0YXJ0QXBwaXVtU2VydmVyKHBvcnQpO1xuICAgIGF3YWl0IHdhaXRGb3JBcHBpdW1SZWFkeSh1cmwpO1xuICAgIGNvbnNvbGUud2FybignW3RyYW5zcG9ydC1mYWN0b3J5XSBBdXRvLXN0YXJ0ZWQgQXBwaXVtIHNlcnZlciBpcyByZWFkeS4nKTtcbiAgfVxuXG4gIGNvbnNvbGUud2FybihgW3RyYW5zcG9ydC1mYWN0b3J5XSBDb25uZWN0aW5nIHRvIEFwcGl1bSAoZGV2aWNlPSR7b3B0aW9ucy5kZXZpY2VJZH0sIGFwcD0ke2FwcElkfSkuLi5gKTtcbiAgY29uc3QgYnJvd3NlciA9IGF3YWl0IHJlbW90ZSh7XG4gICAgY2FwYWJpbGl0aWVzOiB7XG4gICAgICAnYXBwaXVtOmFwcEFjdGl2aXR5JzogQVBQX0FDVElWSVRZLFxuICAgICAgJ2FwcGl1bTphcHBQYWNrYWdlJzogYXBwSWQsXG4gICAgICAnYXBwaXVtOmF1dG9HcmFudFBlcm1pc3Npb25zJzogdHJ1ZSxcbiAgICAgICdhcHBpdW06YXV0b21hdGlvbk5hbWUnOiAnVWlBdXRvbWF0b3IyJyxcbiAgICAgICdhcHBpdW06bmV3Q29tbWFuZFRpbWVvdXQnOiBDT01NQU5EX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTLFxuICAgICAgJ2FwcGl1bTpub1Jlc2V0JzogdHJ1ZSxcbiAgICAgICdhcHBpdW06c2V0dGluZ3MnOiB7XG4gICAgICAgICdhcHBpdW06Y2hyb21lZHJpdmVyQXV0b2Rvd25sb2FkJzogdHJ1ZVxuICAgICAgfSxcbiAgICAgICdhcHBpdW06c2tpcFNlcnZlckluc3RhbGxhdGlvbic6IHRydWUsXG4gICAgICAnYXBwaXVtOnVkaWQnOiBvcHRpb25zLmRldmljZUlkLFxuICAgICAgJ2FwcGl1bTp1aWF1dG9tYXRvcjJTZXJ2ZXJMYXVuY2hUaW1lb3V0JzogU0VSVkVSX0xBVU5DSF9USU1FT1VUX0lOX01JTExJU0VDT05EUyxcbiAgICAgICdwbGF0Zm9ybU5hbWUnOiAnQW5kcm9pZCdcbiAgICB9LFxuICAgIGNvbm5lY3Rpb25SZXRyeUNvdW50OiBBUFBJVU1fQ09OTkVDVElPTl9SRVRSWV9DT1VOVCxcbiAgICBjb25uZWN0aW9uUmV0cnlUaW1lb3V0OiBBUFBJVU1fQ09OTkVDVElPTl9SRVRSWV9USU1FT1VUX0lOX01JTExJU0VDT05EUyxcbiAgICBob3N0bmFtZTogdXJsLmhvc3RuYW1lLFxuICAgIHBhdGg6IHVybC5wYXRobmFtZSxcbiAgICBwb3J0XG4gIH0pO1xuXG4gIGNvbnNvbGUud2FybignW3RyYW5zcG9ydC1mYWN0b3J5XSBBcHBpdW0gc2Vzc2lvbiBlc3RhYmxpc2hlZC4nKTtcbiAgY29uc3QgdHJhbnNwb3J0ID0gbmV3IEFwcGl1bVRyYW5zcG9ydCh7XG4gICAgYXBwSWQsXG4gICAgYnJvd3NlcixcbiAgICBwbGF0Zm9ybTogJ2FuZHJvaWQnLFxuICAgIC4uLihvcHRpb25zLnZhdWx0QmFzZVBhdGggIT09IHVuZGVmaW5lZCAmJiB7IHZhdWx0QmFzZVBhdGg6IG9wdGlvbnMudmF1bHRCYXNlUGF0aCB9KVxuICB9KTtcblxuICBpZiAoYXBwaXVtUHJvY2Vzcykge1xuICAgIGNvbnN0IG9yaWdpbmFsRGlzcG9zZSA9IHRyYW5zcG9ydC5kaXNwb3NlLmJpbmQodHJhbnNwb3J0KTtcbiAgICB0cmFuc3BvcnQuZGlzcG9zZSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IG9yaWdpbmFsRGlzcG9zZSgpO1xuICAgICAgYXBwaXVtUHJvY2Vzcy5raWxsKCk7XG4gICAgICBjb25zb2xlLndhcm4oJ1t0cmFuc3BvcnQtZmFjdG9yeV0gQXV0by1zdGFydGVkIEFwcGl1bSBzZXJ2ZXIgc3RvcHBlZC4nKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHRyYW5zcG9ydDtcbn1cblxuLyoqXG4gKiBTcGF3bnMgYW4gQXBwaXVtIHNlcnZlciBhcyBhIGRldGFjaGVkIGJhY2tncm91bmQgcHJvY2Vzcy5cbiAqXG4gKiBAcGFyYW0gcG9ydCAtIFRoZSBwb3J0IHRvIHN0YXJ0IEFwcGl1bSBvbi5cbiAqIEByZXR1cm5zIFRoZSBzcGF3bmVkIGNoaWxkIHByb2Nlc3MuXG4gKi9cbmZ1bmN0aW9uIHN0YXJ0QXBwaXVtU2VydmVyKHBvcnQ6IG51bWJlcik6IENoaWxkUHJvY2VzcyB7XG4gIGNvbnN0IGNoaWxkID0gc3Bhd24oJ25weCcsIFsnYXBwaXVtJywgJy0tcG9ydCcsIFN0cmluZyhwb3J0KV0sIHtcbiAgICBkZXRhY2hlZDogdHJ1ZSxcbiAgICBzaGVsbDogdHJ1ZSxcbiAgICBzdGRpbzogJ2lnbm9yZSdcbiAgfSk7XG5cbiAgY2hpbGQudW5yZWYoKTtcbiAgcmV0dXJuIGNoaWxkO1xufVxuXG4vKipcbiAqIFBvbGxzIHRoZSBBcHBpdW0gc2VydmVyIHVudGlsIGl0IHJlc3BvbmRzIHRvIGAvc3RhdHVzYC5cbiAqXG4gKiBAcGFyYW0gdXJsIC0gVGhlIEFwcGl1bSBzZXJ2ZXIgVVJMLlxuICovXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yQXBwaXVtUmVhZHkodXJsOiBVUkwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGVhZGxpbmUgPSBEYXRlLm5vdygpICsgQVBQSVVNX1NUQVJUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTO1xuXG4gIHdoaWxlIChEYXRlLm5vdygpIDwgZGVhZGxpbmUpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY2hlY2tBcHBpdW1SZWFjaGFibGUodXJsKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgQVBQSVVNX1NUQVJUX1BPTExfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgQXV0by1zdGFydGVkIEFwcGl1bSBzZXJ2ZXIgZGlkIG5vdCBiZWNvbWUgcmVhZHkgd2l0aGluICR7U3RyaW5nKEFQUElVTV9TVEFSVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyl9bXNgXG4gICk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiQUFVQSxTQUFTLGFBQWE7QUFDdEIsT0FBTyxVQUFVO0FBQ2pCLFNBQVMsY0FBYztBQVF2QixTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLDJCQUEyQjtBQUVwQyxNQUFNLGNBQWM7QUFDcEIsTUFBTSxlQUFlLEdBQUcsV0FBVztBQUNuQyxNQUFNLGdDQUFnQztBQUN0QyxNQUFNLGtEQUFrRDtBQUN4RCxNQUFNLDJDQUEyQztBQUNqRCxNQUFNLDZDQUE2QztBQUNuRCxNQUFNLHVDQUF1QztBQUM3QyxNQUFNLG1CQUFtQjtBQUN6QixNQUFNLGtDQUFrQztBQUN4QyxNQUFNLHdDQUF3QztBQUU5QyxJQUFJO0FBUUosZUFBc0IsMkJBQTJCLFNBQWdFO0FBQy9HLE1BQUksQ0FBQyxXQUFXLFFBQVEsU0FBUyxnQkFBZ0I7QUFDL0MsWUFBUSxLQUFLLG9GQUFvRjtBQUNqRyxXQUFPLElBQUksb0JBQW9CO0FBQUEsRUFDakM7QUFFQSxNQUFJLFFBQVEsU0FBUyxnQkFBZ0I7QUFDbkMsWUFBUSxLQUFLLDBEQUEwRCxRQUFRLFFBQVEsV0FBVyxVQUFVLE9BQU8sUUFBUSxRQUFRLGdCQUFnQixDQUFDLEdBQUc7QUFDdkosV0FBTyxJQUFJLG9CQUFvQjtBQUFBLE1BQzdCLEdBQUksUUFBUSxTQUFTLFVBQWEsRUFBRSxTQUFTLFFBQVEsS0FBSztBQUFBLE1BQzFELEdBQUksUUFBUSxTQUFTLFVBQWEsRUFBRSxTQUFTLFFBQVEsS0FBSztBQUFBLE1BQzFELEdBQUksUUFBUSxpQ0FBaUMsVUFBYSxFQUFFLDhCQUE4QixRQUFRLDZCQUE2QjtBQUFBLElBQ2pJLENBQUM7QUFBQSxFQUNIO0FBRUEsVUFBUSxLQUFLLHFEQUFxRCxRQUFRLFNBQVMsWUFBWSxR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
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3RyYW5zcG9ydC1mYWN0b3J5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRmFjdG9yeSBmb3IgY3JlYXRpbmcgdHJhbnNwb3J0IGluc3RhbmNlcyBmcm9tIHtAbGluayBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnN9LlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIGZhY3RvcnkgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcblxuaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdub2RlOmNoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IGh0dHAgZnJvbSAnbm9kZTpodHRwJztcbmltcG9ydCB7IHJlbW90ZSB9IGZyb20gJ3dlYmRyaXZlcmlvJztcblxuaW1wb3J0IHR5cGUge1xuICBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zLFxuICBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnNcbn0gZnJvbSAnLi90cmFuc3BvcnQtb3B0aW9ucy5tanMnO1xuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0Lm1qcyc7XG5cbmltcG9ydCB7IGxvZyB9IGZyb20gJy4vbG9nLm1qcyc7XG5pbXBvcnQgeyBBcHBpdW1UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1hcHBpdW0ubWpzJztcbmltcG9ydCB7IERlc2t0b3BDZHBUcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1kZXNrdG9wLWNkcC5tanMnO1xuaW1wb3J0IHsgRGVza3RvcENsaVRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LWRlc2t0b3AtY2xpLm1qcyc7XG5cbmNvbnN0IEFQUF9QQUNLQUdFID0gJ21kLm9ic2lkaWFuJztcbmNvbnN0IEFQUF9BQ1RJVklUWSA9IGAke0FQUF9QQUNLQUdFfS5NYWluQWN0aXZpdHlgO1xuY29uc3QgQVBQSVVNX0NPTk5FQ1RJT05fUkVUUllfQ09VTlQgPSAxO1xuY29uc3QgQVBQSVVNX0NPTk5FQ1RJT05fUkVUUllfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwMDtcbmNvbnN0IEFQUElVTV9QUkVGTElHSFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSA1MDAwO1xuY29uc3QgQVBQSVVNX1NUQVJUX1BPTExfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTID0gNTAwO1xuY29uc3QgQVBQSVVNX1NUQVJUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gNjAwMDA7XG5jb25zdCBDRFBfREVGQVVMVF9QT1JUID0gODMxNTtcbmNvbnN0IENPTU1BTkRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSAzMDA7XG5jb25zdCBTRVJWRVJfTEFVTkNIX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gMzAwMDA7XG5cbmxldCBjYWNoZWRUcmFuc3BvcnQ6IE9ic2lkaWFuVHJhbnNwb3J0IHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgdHJhbnNwb3J0IGluc3RhbmNlIGZyb20gdGhlIGdpdmVuIG9wdGlvbnMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUcmFuc3BvcnQgY29uZmlndXJhdGlvbi4gRGVmYXVsdHMgdG8gQ0xJIHRyYW5zcG9ydC5cbiAqIEByZXR1cm5zIEEgbmV3IHRyYW5zcG9ydCBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRyYW5zcG9ydEZyb21PcHRpb25zKG9wdGlvbnM/OiBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMpOiBQcm9taXNlPE9ic2lkaWFuVHJhbnNwb3J0PiB7XG4gIGlmICghb3B0aW9ucyB8fCBvcHRpb25zLnR5cGUgPT09ICdvYnNpZGlhbi1jbGknKSB7XG4gICAgbG9nKCdbdHJhbnNwb3J0LWZhY3RvcnldIENyZWF0aW5nIERlc2t0b3BDbGlUcmFuc3BvcnQgKG5vIG9wdGlvbnMgb3IgdHlwZT1vYnNpZGlhbi1jbGkpJyk7XG4gICAgcmV0dXJuIG5ldyBEZXNrdG9wQ2xpVHJhbnNwb3J0KCk7XG4gIH1cblxuICBpZiAob3B0aW9ucy50eXBlID09PSAnb2JzaWRpYW4tY2RwJykge1xuICAgIGxvZyhgW3RyYW5zcG9ydC1mYWN0b3J5XSBDcmVhdGluZyBEZXNrdG9wQ2RwVHJhbnNwb3J0IChob3N0PSR7b3B0aW9ucy5ob3N0ID8/ICdsb2NhbGhvc3QnfSwgcG9ydD0ke1N0cmluZyhvcHRpb25zLnBvcnQgPz8gQ0RQX0RFRkFVTFRfUE9SVCl9KWApO1xuICAgIHJldHVybiBuZXcgRGVza3RvcENkcFRyYW5zcG9ydCh7XG4gICAgICAuLi4ob3B0aW9ucy5ob3N0ICE9PSB1bmRlZmluZWQgJiYgeyBjZHBIb3N0OiBvcHRpb25zLmhvc3QgfSksXG4gICAgICAuLi4ob3B0aW9ucy5wb3J0ICE9PSB1bmRlZmluZWQgJiYgeyBjZHBQb3J0OiBvcHRpb25zLnBvcnQgfSksXG4gICAgICAuLi4ob3B0aW9ucy5jb21tYW5kVGltZW91dEluTWlsbGlzZWNvbmRzICE9PSB1bmRlZmluZWQgJiYgeyBjb21tYW5kVGltZW91dEluTWlsbGlzZWNvbmRzOiBvcHRpb25zLmNvbW1hbmRUaW1lb3V0SW5NaWxsaXNlY29uZHMgfSlcbiAgICB9KTtcbiAgfVxuXG4gIGxvZyhgW3RyYW5zcG9ydC1mYWN0b3J5XSBDcmVhdGluZyBBcHBpdW1UcmFuc3BvcnQgKHVybD0ke29wdGlvbnMuYXBwaXVtVXJsfSwgZGV2aWNlPSR7b3B0aW9ucy5kZXZpY2VJZH0pYCk7XG4gIHJldHVybiBjcmVhdGVBcHBpdW1UcmFuc3BvcnQob3B0aW9ucyk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGNhY2hlZCB0cmFuc3BvcnQgaW5zdGFuY2UsIGNyZWF0aW5nIG9uZSBmcm9tIHRoZSBnaXZlbiBvcHRpb25zXG4gKiBpZiBub3QgYWxyZWFkeSBjYWNoZWQuXG4gKlxuICogVGhlIHRyYW5zcG9ydCBpcyBjYWNoZWQgcGVyIHdvcmtlciBwcm9jZXNzIHNvIFdlYlNvY2tldC9BcHBpdW0gc2Vzc2lvbnNcbiAqIGFyZSByZXVzZWQgYWNyb3NzIGNhbGxzIHdpdGhpbiB0aGUgc2FtZSB0ZXN0IHdvcmtlci5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRyYW5zcG9ydCBjb25maWd1cmF0aW9uLiBEZWZhdWx0cyB0byBDTEkgdHJhbnNwb3J0LlxuICogQHJldHVybnMgVGhlIGNhY2hlZCBvciBuZXdseSBjcmVhdGVkIHRyYW5zcG9ydC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE9yQ3JlYXRlVHJhbnNwb3J0KG9wdGlvbnM/OiBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMpOiBQcm9taXNlPE9ic2lkaWFuVHJhbnNwb3J0PiB7XG4gIGlmIChjYWNoZWRUcmFuc3BvcnQpIHtcbiAgICByZXR1cm4gY2FjaGVkVHJhbnNwb3J0O1xuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY3JlYXRlVHJhbnNwb3J0RnJvbU9wdGlvbnMob3B0aW9ucyk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF0b21pYy11cGRhdGVzIC0tIFNpbmdsZS10aHJlYWRlZCB3b3JrZXI7IG5vIGNvbmN1cnJlbnQgd3JpdGVzLlxuICBjYWNoZWRUcmFuc3BvcnQgPSByZXN1bHQ7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogUGVyZm9ybXMgYSBxdWljayBIVFRQIGNoZWNrIGFnYWluc3QgdGhlIEFwcGl1bSBzZXJ2ZXIncyBzdGF0dXMgZW5kcG9pbnQuXG4gKlxuICogRmFpbHMgZmFzdCAod2l0aGluIHtAbGluayBBUFBJVU1fUFJFRkxJR0hUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTfSkgd2l0aFxuICogYSBjbGVhciBlcnJvciBtZXNzYWdlIGluc3RlYWQgb2YgbGV0dGluZyBXZWJEcml2ZXJJTyByZXRyeSBzaWxlbnRseSBmb3IgbWludXRlcy5cbiAqXG4gKiBAcGFyYW0gdXJsIC0gVGhlIHBhcnNlZCBBcHBpdW0gVVJMLlxuICovXG5mdW5jdGlvbiBjaGVja0FwcGl1bVJlYWNoYWJsZSh1cmw6IFVSTCk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHN0YXR1c1VybCA9IG5ldyBVUkwoJy9zdGF0dXMnLCB1cmwpO1xuICAgIGNvbnN0IHJlcSA9IGh0dHAuZ2V0KHN0YXR1c1VybCwgeyB0aW1lb3V0OiBBUFBJVU1fUFJFRkxJR0hUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTIH0sIChyZXMpID0+IHtcbiAgICAgIHJlcy5yZXN1bWUoKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgICByZXEub24oJ3RpbWVvdXQnLCAoKSA9PiB7XG4gICAgICByZXEuZGVzdHJveSgpO1xuICAgICAgcmVqZWN0KFxuICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgYEFwcGl1bSBzZXJ2ZXIgYXQgJHt1cmwub3JpZ2lufSBkaWQgbm90IHJlc3BvbmQgd2l0aGluICR7U3RyaW5nKEFQUElVTV9QUkVGTElHSFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMpfW1zLiBJcyB0aGUgQXBwaXVtIHNlcnZlciBydW5uaW5nP2BcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICByZXEub24oJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgcmVqZWN0KFxuICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgYENhbm5vdCByZWFjaCBBcHBpdW0gc2VydmVyIGF0ICR7dXJsLm9yaWdpbn06ICR7ZXJyLm1lc3NhZ2V9LiBJcyB0aGUgQXBwaXVtIHNlcnZlciBydW5uaW5nP2BcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBBcHBpdW0gdHJhbnNwb3J0IGJ5IGVzdGFibGlzaGluZyBhIFdlYkRyaXZlcklPIHNlc3Npb24uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBBbmRyb2lkIEFwcGl1bSB0cmFuc3BvcnQgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgY29uZmlndXJlZCBBcHBpdW0gdHJhbnNwb3J0LlxuICovXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVBcHBpdW1UcmFuc3BvcnQob3B0aW9uczogT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucyk6IFByb21pc2U8QXBwaXVtVHJhbnNwb3J0PiB7XG4gIGNvbnN0IHVybCA9IG5ldyBVUkwob3B0aW9ucy5hcHBpdW1VcmwpO1xuXG4gIGNvbnN0IHBvcnQgPSBOdW1iZXIodXJsLnBvcnQpO1xuICBpZiAoaXNOYU4ocG9ydCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcG9ydCBpbiBhcHBpdW1Vcmw6ICR7dXJsLnBvcnR9YCk7XG4gIH1cblxuICBjb25zdCBhcHBJZCA9IG9wdGlvbnMuYXBwSWQgPz8gQVBQX1BBQ0tBR0U7XG5cbiAgbG9nKGBbdHJhbnNwb3J0LWZhY3RvcnldIENoZWNraW5nIEFwcGl1bSBzZXJ2ZXIgYXQgJHtvcHRpb25zLmFwcGl1bVVybH0uLi5gKTtcbiAgbGV0IGFwcGl1bVByb2Nlc3M6IENoaWxkUHJvY2VzcyB8IHVuZGVmaW5lZDtcblxuICB0cnkge1xuICAgIGF3YWl0IGNoZWNrQXBwaXVtUmVhY2hhYmxlKHVybCk7XG4gICAgbG9nKCdbdHJhbnNwb3J0LWZhY3RvcnldIEFwcGl1bSBzZXJ2ZXIgaXMgcmVhY2hhYmxlLicpO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGlmIChvcHRpb25zLnNob3VsZEF1dG9TdGFydEFwcGl1bSA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGxvZyhgW3RyYW5zcG9ydC1mYWN0b3J5XSBBcHBpdW0gbm90IHJlYWNoYWJsZSwgYXV0by1zdGFydGluZyBvbiBwb3J0ICR7U3RyaW5nKHBvcnQpfS4uLmApO1xuICAgIGFwcGl1bVByb2Nlc3MgPSBzdGFydEFwcGl1bVNlcnZlcihwb3J0KTtcbiAgICBhd2FpdCB3YWl0Rm9yQXBwaXVtUmVhZHkodXJsKTtcbiAgICBsb2coJ1t0cmFuc3BvcnQtZmFjdG9yeV0gQXV0by1zdGFydGVkIEFwcGl1bSBzZXJ2ZXIgaXMgcmVhZHkuJyk7XG4gIH1cblxuICBsb2coYFt0cmFuc3BvcnQtZmFjdG9yeV0gQ29ubmVjdGluZyB0byBBcHBpdW0gKGRldmljZT0ke29wdGlvbnMuZGV2aWNlSWR9LCBhcHA9JHthcHBJZH0pLi4uYCk7XG4gIGNvbnN0IGJyb3dzZXIgPSBhd2FpdCByZW1vdGUoe1xuICAgIGNhcGFiaWxpdGllczoge1xuICAgICAgJ2FwcGl1bTphcHBBY3Rpdml0eSc6IEFQUF9BQ1RJVklUWSxcbiAgICAgICdhcHBpdW06YXBwUGFja2FnZSc6IGFwcElkLFxuICAgICAgJ2FwcGl1bTphdXRvR3JhbnRQZXJtaXNzaW9ucyc6IHRydWUsXG4gICAgICAnYXBwaXVtOmF1dG9tYXRpb25OYW1lJzogJ1VpQXV0b21hdG9yMicsXG4gICAgICAnYXBwaXVtOm5ld0NvbW1hbmRUaW1lb3V0JzogQ09NTUFORF9USU1FT1VUX0lOX01JTExJU0VDT05EUyxcbiAgICAgICdhcHBpdW06bm9SZXNldCc6IHRydWUsXG4gICAgICAnYXBwaXVtOnNldHRpbmdzJzoge1xuICAgICAgICAnYXBwaXVtOmNocm9tZWRyaXZlckF1dG9kb3dubG9hZCc6IHRydWVcbiAgICAgIH0sXG4gICAgICAnYXBwaXVtOnNraXBTZXJ2ZXJJbnN0YWxsYXRpb24nOiB0cnVlLFxuICAgICAgJ2FwcGl1bTp1ZGlkJzogb3B0aW9ucy5kZXZpY2VJZCxcbiAgICAgICdhcHBpdW06dWlhdXRvbWF0b3IyU2VydmVyTGF1bmNoVGltZW91dCc6IFNFUlZFUl9MQVVOQ0hfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgICAncGxhdGZvcm1OYW1lJzogJ0FuZHJvaWQnXG4gICAgfSxcbiAgICBjb25uZWN0aW9uUmV0cnlDb3VudDogQVBQSVVNX0NPTk5FQ1RJT05fUkVUUllfQ09VTlQsXG4gICAgY29ubmVjdGlvblJldHJ5VGltZW91dDogQVBQSVVNX0NPTk5FQ1RJT05fUkVUUllfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgaG9zdG5hbWU6IHVybC5ob3N0bmFtZSxcbiAgICBwYXRoOiB1cmwucGF0aG5hbWUsXG4gICAgcG9ydFxuICB9KTtcblxuICBsb2coJ1t0cmFuc3BvcnQtZmFjdG9yeV0gQXBwaXVtIHNlc3Npb24gZXN0YWJsaXNoZWQuJyk7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IG5ldyBBcHBpdW1UcmFuc3BvcnQoe1xuICAgIGFwcElkLFxuICAgIGJyb3dzZXIsXG4gICAgcGxhdGZvcm06ICdhbmRyb2lkJyxcbiAgICAuLi4ob3B0aW9ucy52YXVsdEJhc2VQYXRoICE9PSB1bmRlZmluZWQgJiYgeyB2YXVsdEJhc2VQYXRoOiBvcHRpb25zLnZhdWx0QmFzZVBhdGggfSlcbiAgfSk7XG5cbiAgaWYgKGFwcGl1bVByb2Nlc3MpIHtcbiAgICBjb25zdCBvcmlnaW5hbERpc3Bvc2UgPSB0cmFuc3BvcnQuZGlzcG9zZS5iaW5kKHRyYW5zcG9ydCk7XG4gICAgdHJhbnNwb3J0LmRpc3Bvc2UgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBhd2FpdCBvcmlnaW5hbERpc3Bvc2UoKTtcbiAgICAgIGFwcGl1bVByb2Nlc3Mua2lsbCgpO1xuICAgICAgbG9nKCdbdHJhbnNwb3J0LWZhY3RvcnldIEF1dG8tc3RhcnRlZCBBcHBpdW0gc2VydmVyIHN0b3BwZWQuJyk7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB0cmFuc3BvcnQ7XG59XG5cbi8qKlxuICogU3Bhd25zIGFuIEFwcGl1bSBzZXJ2ZXIgYXMgYSBkZXRhY2hlZCBiYWNrZ3JvdW5kIHByb2Nlc3MuXG4gKlxuICogQHBhcmFtIHBvcnQgLSBUaGUgcG9ydCB0byBzdGFydCBBcHBpdW0gb24uXG4gKiBAcmV0dXJucyBUaGUgc3Bhd25lZCBjaGlsZCBwcm9jZXNzLlxuICovXG5mdW5jdGlvbiBzdGFydEFwcGl1bVNlcnZlcihwb3J0OiBudW1iZXIpOiBDaGlsZFByb2Nlc3Mge1xuICBjb25zdCBjaGlsZCA9IHNwYXduKGBucHggYXBwaXVtIC0tbG9nLXRpbWVzdGFtcCAtLXBvcnQgJHtTdHJpbmcocG9ydCl9YCwge1xuICAgIGRldGFjaGVkOiB0cnVlLFxuICAgIHNoZWxsOiB0cnVlLFxuICAgIHN0ZGlvOiAnaW5oZXJpdCdcbiAgfSk7XG5cbiAgY2hpbGQudW5yZWYoKTtcbiAgcmV0dXJuIGNoaWxkO1xufVxuXG4vKipcbiAqIFBvbGxzIHRoZSBBcHBpdW0gc2VydmVyIHVudGlsIGl0IHJlc3BvbmRzIHRvIGAvc3RhdHVzYC5cbiAqXG4gKiBAcGFyYW0gdXJsIC0gVGhlIEFwcGl1bSBzZXJ2ZXIgVVJMLlxuICovXG5hc3luYyBmdW5jdGlvbiB3YWl0Rm9yQXBwaXVtUmVhZHkodXJsOiBVUkwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGVhZGxpbmUgPSBEYXRlLm5vdygpICsgQVBQSVVNX1NUQVJUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTO1xuXG4gIHdoaWxlIChEYXRlLm5vdygpIDwgZGVhZGxpbmUpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY2hlY2tBcHBpdW1SZWFjaGFibGUodXJsKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgQVBQSVVNX1NUQVJUX1BPTExfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgQXV0by1zdGFydGVkIEFwcGl1bSBzZXJ2ZXIgZGlkIG5vdCBiZWNvbWUgcmVhZHkgd2l0aGluICR7U3RyaW5nKEFQUElVTV9TVEFSVF9USU1FT1VUX0lOX01JTExJU0VDT05EUyl9bXNgXG4gICk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiQUFVQSxTQUFTLGFBQWE7QUFDdEIsT0FBTyxVQUFVO0FBQ2pCLFNBQVMsY0FBYztBQVF2QixTQUFTLFdBQVc7QUFDcEIsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUywyQkFBMkI7QUFDcEMsU0FBUywyQkFBMkI7QUFFcEMsTUFBTSxjQUFjO0FBQ3BCLE1BQU0sZUFBZSxHQUFHLFdBQVc7QUFDbkMsTUFBTSxnQ0FBZ0M7QUFDdEMsTUFBTSxrREFBa0Q7QUFDeEQsTUFBTSwyQ0FBMkM7QUFDakQsTUFBTSw2Q0FBNkM7QUFDbkQsTUFBTSx1Q0FBdUM7QUFDN0MsTUFBTSxtQkFBbUI7QUFDekIsTUFBTSxrQ0FBa0M7QUFDeEMsTUFBTSx3Q0FBd0M7QUFFOUMsSUFBSTtBQVFKLGVBQXNCLDJCQUEyQixTQUFnRTtBQUMvRyxNQUFJLENBQUMsV0FBVyxRQUFRLFNBQVMsZ0JBQWdCO0FBQy9DLFFBQUksb0ZBQW9GO0FBQ3hGLFdBQU8sSUFBSSxvQkFBb0I7QUFBQSxFQUNqQztBQUVBLE1BQUksUUFBUSxTQUFTLGdCQUFnQjtBQUNuQyxRQUFJLDBEQUEwRCxRQUFRLFFBQVEsV0FBVyxVQUFVLE9BQU8sUUFBUSxRQUFRLGdCQUFnQixDQUFDLEdBQUc7QUFDOUksV0FBTyxJQUFJLG9CQUFvQjtBQUFBLE1BQzdCLEdBQUksUUFBUSxTQUFTLFVBQWEsRUFBRSxTQUFTLFFBQVEsS0FBSztBQUFBLE1BQzFELEdBQUksUUFBUSxTQUFTLFVBQWEsRUFBRSxTQUFTLFFBQVEsS0FBSztBQUFBLE1BQzFELEdBQUksUUFBUSxpQ0FBaUMsVUFBYSxFQUFFLDhCQUE4QixRQUFRLDZCQUE2QjtBQUFBLElBQ2pJLENBQUM7QUFBQSxFQUNIO0FBRUEsTUFBSSxxREFBcUQsUUFBUSxTQUFTLFlBQVksUUFBUSxRQUFRLEdBQUc7QUFDekcsU0FBTyxzQkFBc0IsT0FBTztBQUN0QztB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
|
|
Binary file
|
package/package.json
CHANGED
|
Binary file
|