obsidian-integration-testing 2.0.2 → 2.0.4
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 +49 -35
- package/dist/lib/cjs/log.cjs +14 -2
- package/dist/lib/cjs/log.d.cts +3 -1
- package/dist/lib/cjs/transport-factory.cjs +218 -47
- package/dist/lib/cjs/transport-options.cjs +1 -1
- package/dist/lib/cjs/transport-options.d.cts +12 -0
- package/dist/lib/esm/global-setup-core.mjs +49 -35
- package/dist/lib/esm/log.d.mts +3 -1
- package/dist/lib/esm/log.mjs +14 -2
- package/dist/lib/esm/transport-factory.mjs +222 -48
- package/dist/lib/esm/transport-options.d.mts +12 -0
- package/dist/obsidian-integration-testing-2.0.4.tgz +0 -0
- package/package.json +1 -1
- package/dist/obsidian-integration-testing-2.0.2.tgz +0 -0
|
@@ -14,4 +14,4 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
14
14
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
15
|
var transport_options_exports = {};
|
|
16
16
|
module.exports = __toCommonJS(transport_options_exports);
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3RyYW5zcG9ydC1vcHRpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRGlzY3JpbWluYXRlZCB1bmlvbiB0eXBlcyBmb3IgY29uZmlndXJpbmcgdGhlIE9ic2lkaWFuIHRyYW5zcG9ydFxuICogdmlhIHZpdGVzdCBgZW52aXJvbm1lbnRPcHRpb25zYC5cbiAqL1xuXG4vKipcbiAqIFRyYW5zcG9ydCBvcHRpb25zIGZvciBBbmRyb2lkIHRlc3RpbmcgdmlhIEFwcGl1bSBXZWJWaWV3IGluamVjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFwcCBwYWNrYWdlIChBbmRyb2lkKSBvciBidW5kbGUgSUQgKGlPUykuXG4gICAqIERlZmF1bHRzIHRvIGAnbWQub2JzaWRpYW4nYFxuICAgKi9cbiAgYXBwSWQ/
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3RyYW5zcG9ydC1vcHRpb25zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRGlzY3JpbWluYXRlZCB1bmlvbiB0eXBlcyBmb3IgY29uZmlndXJpbmcgdGhlIE9ic2lkaWFuIHRyYW5zcG9ydFxuICogdmlhIHZpdGVzdCBgZW52aXJvbm1lbnRPcHRpb25zYC5cbiAqL1xuXG4vKipcbiAqIFRyYW5zcG9ydCBvcHRpb25zIGZvciBBbmRyb2lkIHRlc3RpbmcgdmlhIEFwcGl1bSBXZWJWaWV3IGluamVjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFwcCBwYWNrYWdlIChBbmRyb2lkKSBvciBidW5kbGUgSUQgKGlPUykuXG4gICAqIERlZmF1bHRzIHRvIGAnbWQub2JzaWRpYW4nYFxuICAgKi9cbiAgYXBwSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBcHBpdW0gc2VydmVyIFVSTCAoZS5nLiBgJ2h0dHA6Ly9sb2NhbGhvc3Q6NDcyMydgKS5cbiAgICovXG4gIGFwcGl1bVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQW5kcm9pZCBBVkQgKEFuZHJvaWQgVmlydHVhbCBEZXZpY2UpIG5hbWUgdG8gYXV0by1zdGFydCBpZlxuICAgKiB0aGUgZGV2aWNlIHNwZWNpZmllZCBieSB7QGxpbmsgZGV2aWNlSWR9IGlzIG5vdCBjb25uZWN0ZWQuXG4gICAqXG4gICAqIFdoZW4gcHJvdmlkZWQgYW5kIHRoZSBkZXZpY2UgaXMgbm90IGZvdW5kIHZpYSBgYWRiIGRldmljZXNgLCB0aGVcbiAgICogdHJhbnNwb3J0IGZhY3RvcnkgbGF1bmNoZXMgYGVtdWxhdG9yIC1hdmQgPGF2ZE5hbWU+YCBhcyBhIGJhY2tncm91bmRcbiAgICogcHJvY2VzcyBhbmQgcG9sbHMgdW50aWwgdGhlIGRldmljZSBhcHBlYXJzLiBUaGUgZW11bGF0b3IgaXMga2lsbGVkXG4gICAqIG9uIHRyYW5zcG9ydCBkaXNwb3NhbC5cbiAgICpcbiAgICogUnVuIGBlbXVsYXRvciAtbGlzdC1hdmRzYCB0byBzZWUgYXZhaWxhYmxlIEFWRCBuYW1lcy5cbiAgICovXG4gIGF2ZE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXZpY2UgVURJRCAoZS5nLiBgJ2VtdWxhdG9yLTU1NTQnYCkuXG4gICAqL1xuICBkZXZpY2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgc3RhcnQgdGhlIEFwcGl1bSBzZXJ2ZXIgaWYgaXQgaXMgbm90IHJlYWNoYWJsZS5cbiAgICpcbiAgICogV2hlbiBgdHJ1ZWAgKHRoZSBkZWZhdWx0KSwgdGhlIHRyYW5zcG9ydCBmYWN0b3J5IHNwYXducyBgbnB4IGFwcGl1bWBcbiAgICogYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3Mgd2hlbiB0aGUgcHJlZmxpZ2h0IGNoZWNrIGZhaWxzLCBhbmQga2lsbHMgaXRcbiAgICogb24gdHJhbnNwb3J0IGRpc3Bvc2FsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHNob3VsZEF1dG9TdGFydEFwcGl1bT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERpc2NyaW1pbmFudCBmb3IgdGhlIHRyYW5zcG9ydCB0eXBlLlxuICAgKi9cbiAgdHlwZTogJ29ic2lkaWFuLWFuZHJvaWQtYXBwaXVtJztcblxuICAvKipcbiAgICogQmFzZSBwYXRoIG9uIHRoZSBkZXZpY2Ugd2hlcmUgT2JzaWRpYW4gc3RvcmVzIHZhdWx0cy5cbiAgICpcbiAgICogRGVmYXVsdHM6XG4gICAqIC0gQW5kcm9pZDogYC9zZGNhcmQvRG9jdW1lbnRzL2BcbiAgICogLSBpT1M6IGBAbWQub2JzaWRpYW46ZG9jdW1lbnRzL2BcbiAgICovXG4gIHZhdWx0QmFzZVBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVHJhbnNwb3J0IG9wdGlvbnMgZm9yIGRlc2t0b3AgdGVzdGluZyB2aWEgQ2hyb21lIERldlRvb2xzIFByb3RvY29sLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuQ2RwVHJhbnNwb3J0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaW1lb3V0IGluIG1pbGxpc2Vjb25kcyBmb3IgaW5kaXZpZHVhbCBDRFAgY29tbWFuZHMuXG4gICAqIERlZmF1bHRzIHRvIDMwMDAwXG4gICAqL1xuICBjb21tYW5kVGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDRFAgaG9zdC5cbiAgICogRGVmYXVsdHMgdG8gYCdsb2NhbGhvc3QnYFxuICAgKi9cbiAgaG9zdD86IHN0cmluZztcblxuICAvKipcbiAgICogQ0RQIHBvcnQuXG4gICAqIERlZmF1bHRzIHRvIDgzMTVcbiAgICovXG4gIHBvcnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERpc2NyaW1pbmFudCBmb3IgdGhlIHRyYW5zcG9ydCB0eXBlLlxuICAgKi9cbiAgdHlwZTogJ29ic2lkaWFuLWNkcCc7XG59XG5cbi8qKlxuICogVHJhbnNwb3J0IG9wdGlvbnMgZm9yIGRlc2t0b3AgdGVzdGluZyB2aWEgdGhlIE9ic2lkaWFuIENMSS5cbiAqXG4gKiBUaGlzIGlzIHRoZSBkZWZhdWx0IHRyYW5zcG9ydCB3aGVuIG5vIGBvYnNpZGlhblRyYW5zcG9ydGAgaXMgY29uZmlndXJlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhbkNsaVRyYW5zcG9ydE9wdGlvbnMge1xuICAvKipcbiAgICogRGlzY3JpbWluYW50IGZvciB0aGUgdHJhbnNwb3J0IHR5cGUuXG4gICAqL1xuICB0eXBlOiAnb2JzaWRpYW4tY2xpJztcbn1cblxuLyoqXG4gKiBEaXNjcmltaW5hdGVkIHVuaW9uIG9mIGFsbCBzdXBwb3J0ZWQgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb25zLlxuICpcbiAqIFVzZWQgaW4gdml0ZXN0IGBlbnZpcm9ubWVudE9wdGlvbnMub2JzaWRpYW5UcmFuc3BvcnRgIHRvIHNlbGVjdCBhbmRcbiAqIGNvbmZpZ3VyZSB0aGUgdHJhbnNwb3J0IGZvciBpbnRlZ3JhdGlvbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IHR5cGUgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zID1cbiAgfCBPYnNpZGlhbkFuZHJvaWRBcHBpdW1UcmFuc3BvcnRPcHRpb25zXG4gIHwgT2JzaWRpYW5DZHBUcmFuc3BvcnRPcHRpb25zXG4gIHwgT2JzaWRpYW5DbGlUcmFuc3BvcnRPcHRpb25zO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -17,6 +17,18 @@ export interface ObsidianAndroidAppiumTransportOptions {
|
|
|
17
17
|
* The Appium server URL (e.g. `'http://localhost:4723'`).
|
|
18
18
|
*/
|
|
19
19
|
appiumUrl: string;
|
|
20
|
+
/**
|
|
21
|
+
* The Android AVD (Android Virtual Device) name to auto-start if
|
|
22
|
+
* the device specified by {@link deviceId} is not connected.
|
|
23
|
+
*
|
|
24
|
+
* When provided and the device is not found via `adb devices`, the
|
|
25
|
+
* transport factory launches `emulator -avd <avdName>` as a background
|
|
26
|
+
* process and polls until the device appears. The emulator is killed
|
|
27
|
+
* on transport disposal.
|
|
28
|
+
*
|
|
29
|
+
* Run `emulator -list-avds` to see available AVD names.
|
|
30
|
+
*/
|
|
31
|
+
avdName?: string;
|
|
20
32
|
/**
|
|
21
33
|
* The device UDID (e.g. `'emulator-5554'`).
|
|
22
34
|
*/
|
|
@@ -29,41 +29,55 @@ async function coreSetup(params) {
|
|
|
29
29
|
log("[integration-setup] Creating transport...");
|
|
30
30
|
const transport = await createTransportFromOptions(transportOptions);
|
|
31
31
|
log(`[integration-setup] Transport created: ${transport.constructor.name}`);
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
32
|
+
let tempVault;
|
|
33
|
+
try {
|
|
34
|
+
log(`[integration-setup] Project root: ${projectRoot}`);
|
|
35
|
+
const distPath = await resolveDistPath(projectRoot);
|
|
36
|
+
const manifestJson = JSON.parse(await readFile(join(distPath, "manifest.json"), "utf-8"));
|
|
37
|
+
const pluginId = manifestJson.id;
|
|
38
|
+
if (transport.isMobile && manifestJson.isDesktopOnly) {
|
|
39
|
+
throw new Error(
|
|
40
|
+
`Plugin "${pluginId}" has isDesktopOnly: true in manifest.json. Mobile integration tests cannot run for desktop-only plugins.`
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
const mainJs = join(distPath, MAIN_JS);
|
|
44
|
+
const buildStat = await stat(mainJs);
|
|
45
|
+
log(`[integration-setup] Using ${distPath} (${buildStat.mtime.toISOString()}). If outdated, rebuild.`);
|
|
46
|
+
tempVault = new TempVault();
|
|
47
|
+
log(`[integration-setup] Created temp vault: ${tempVault.path}`);
|
|
48
|
+
const pluginDir = join(tempVault.path, OBSIDIAN_CONFIG_DIR, PLUGINS_DIR, pluginId);
|
|
49
|
+
await mkdir(pluginDir, { recursive: true });
|
|
50
|
+
await cp(distPath, pluginDir, { recursive: true });
|
|
51
|
+
await writeFile(join(tempVault.path, OBSIDIAN_CONFIG_DIR, COMMUNITY_PLUGINS_JSON), JSON.stringify([pluginId]));
|
|
52
|
+
log("[integration-setup] Syncing vault to device...");
|
|
53
|
+
await tempVault.syncToDevice(transport);
|
|
54
|
+
log("[integration-setup] Registering vault...");
|
|
55
|
+
await tempVault.register(transport);
|
|
56
|
+
log("[integration-setup] Vault registered.");
|
|
57
|
+
log(`[integration-setup] Enabling plugin "${pluginId}"...`);
|
|
58
|
+
const { errorMessage } = await evalInObsidian({
|
|
59
|
+
args: { pluginId },
|
|
60
|
+
fn: enablePluginWithErrorCapture,
|
|
61
|
+
shouldSkipPreflightChecks: true,
|
|
62
|
+
transport,
|
|
63
|
+
vaultPath: tempVault.path
|
|
64
|
+
});
|
|
65
|
+
if (errorMessage) {
|
|
66
|
+
throw new Error(`Plugin "${pluginId}" failed to load: ${errorMessage}`);
|
|
67
|
+
}
|
|
68
|
+
log(`[integration-setup] Plugin "${pluginId}" enabled successfully.`);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
log("[integration-setup] Setup failed, cleaning up...");
|
|
71
|
+
try {
|
|
72
|
+
if (tempVault) {
|
|
73
|
+
await tempVault.dispose(transport);
|
|
74
|
+
}
|
|
75
|
+
await transport.dispose?.();
|
|
76
|
+
} catch (cleanupError) {
|
|
77
|
+
log(`[integration-setup] Cleanup error (non-fatal): ${String(cleanupError)}`);
|
|
78
|
+
}
|
|
79
|
+
throw error;
|
|
65
80
|
}
|
|
66
|
-
log(`[integration-setup] Plugin "${pluginId}" enabled successfully.`);
|
|
67
81
|
return { tempVault, transport, transportOptions };
|
|
68
82
|
}
|
|
69
83
|
async function coreTeardown(result) {
|
|
@@ -105,4 +119,4 @@ export {
|
|
|
105
119
|
coreSetup,
|
|
106
120
|
coreTeardown
|
|
107
121
|
};
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dsb2JhbC1zZXR1cC1jb3JlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRnJhbWV3b3JrLWFnbm9zdGljIGNvcmUgbG9naWMgZm9yIGludGVncmF0aW9uIHRlc3QgZ2xvYmFsIHNldHVwIGFuZCB0ZWFyZG93bi5cbiAqXG4gKiBWaXRlc3QgYW5kIEplc3QgYWRhcHRlcnMgZGVsZWdhdGUgdG8gdGhlc2UgZnVuY3Rpb25zLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIHNldHVwIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbk1hbmlmZXN0IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgbWtkaXIsXG4gIHJlYWRGaWxlLFxuICBzdGF0LFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGxvYWRFbnZGaWxlIH0gZnJvbSAnbm9kZTpwcm9jZXNzJztcblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1vcHRpb25zLm1qcyc7XG5pbXBvcnQgdHlwZSB7IE9ic2lkaWFuVHJhbnNwb3J0IH0gZnJvbSAnLi90cmFuc3BvcnQubWpzJztcblxuaW1wb3J0IHsgZW5hYmxlUGx1Z2luV2l0aEVycm9yQ2FwdHVyZSB9IGZyb20gJy4vZW5hYmxlLXBsdWdpbi5tanMnO1xuaW1wb3J0IHsgbG9nIH0gZnJvbSAnLi9sb2cubWpzJztcbmltcG9ydCB7IGV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnLi9vYnNpZGlhbi1jbGkubWpzJztcbmltcG9ydCB7IFRlbXBWYXVsdCB9IGZyb20gJy4vdGVtcC12YXVsdC5tanMnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNwb3J0RnJvbU9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1mYWN0b3J5Lm1qcyc7XG5cbmNvbnN0IERJU1RfREVWID0gJ2Rpc3QvZGV2JztcbmNvbnN0IERJU1RfQlVJTEQgPSAnZGlzdC9idWlsZCc7XG5jb25zdCBNQUlOX0pTID0gJ21haW4uanMnO1xuY29uc3QgT0JTSURJQU5fQ09ORklHX0RJUiA9ICcub2JzaWRpYW4nO1xuY29uc3QgUExVR0lOU19ESVIgPSAncGx1Z2lucyc7XG5jb25zdCBDT01NVU5JVFlfUExVR0lOU19KU09OID0gJ2NvbW11bml0eS1wbHVnaW5zLmpzb24nO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjb3JlU2V0dXB9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcmVTZXR1cFBhcmFtcyB7XG4gIC8qKiBUcmFuc3BvcnQgb3B0aW9ucy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byB0aGUgQ0xJIHRyYW5zcG9ydC4gKi9cbiAgdHJhbnNwb3J0T3B0aW9ucz86IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXN1bHQgcmV0dXJuZWQgYnkge0BsaW5rIGNvcmVTZXR1cH0sIHVzZWQgYnkgZnJhbWV3b3JrIGFkYXB0ZXJzXG4gKiB0byBwYXNzIGNvbnRleHQgdG8gdGVzdCB3b3JrZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcmVTZXR1cFJlc3VsdCB7XG4gIC8qKiBUaGUgdGVtcG9yYXJ5IHZhdWx0IGNyZWF0ZWQgZHVyaW5nIHNldHVwLiAqL1xuICB0ZW1wVmF1bHQ6IFRlbXBWYXVsdDtcblxuICAvKiogVGhlIHRyYW5zcG9ydCBpbnN0YW5jZSB1c2VkIGR1cmluZyBzZXR1cC4gKi9cbiAgdHJhbnNwb3J0OiBPYnNpZGlhblRyYW5zcG9ydDtcblxuICAvKiogVGhlIHRyYW5zcG9ydCBvcHRpb25zIHRoYXQgd2VyZSByZXNvbHZlZC4gKi9cbiAgdHJhbnNwb3J0T3B0aW9uczogT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEZyYW1ld29yay1hZ25vc3RpYyBnbG9iYWwgc2V0dXAgbG9naWMuXG4gKlxuICogTG9hZHMgYC5lbnZgIGZyb20gdGhlIHByb2plY3Qgcm9vdCwgY3JlYXRlcyBhIHRyYW5zcG9ydCwgY29waWVzIHRoZSBidWlsdFxuICogcGx1Z2luIGludG8gYSB0ZW1wb3JhcnkgdmF1bHQsIHJlZ2lzdGVycyB0aGUgdmF1bHQgd2l0aCBPYnNpZGlhbiwgYW5kXG4gKiBlbmFibGVzIHRoZSBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFNldHVwIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgc2V0dXAgcmVzdWx0IGNvbnRhaW5pbmcgdGhlIHRlbXAgdmF1bHQsIHRyYW5zcG9ydCwgYW5kIHJlc29sdmVkIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3JlU2V0dXAocGFyYW1zPzogQ29yZVNldHVwUGFyYW1zKTogUHJvbWlzZTxDb3JlU2V0dXBSZXN1bHQ+IHtcbiAgY29uc3QgcHJvamVjdFJvb3QgPSBmaW5kUHJvamVjdFJvb3QoKTtcbiAgY29uc3QgZW52RmlsZVBhdGggPSBqb2luKHByb2plY3RSb290LCAnLmVudicpO1xuICBpZiAoZXhpc3RzU3luYyhlbnZGaWxlUGF0aCkpIHtcbiAgICBsb2FkRW52RmlsZShlbnZGaWxlUGF0aCk7XG4gIH1cblxuICBjb25zdCB0cmFuc3BvcnRPcHRpb25zID0gcGFyYW1zPy50cmFuc3BvcnRPcHRpb25zO1xuICBsb2coJ1tpbnRlZ3JhdGlvbi1zZXR1cF0gQ3JlYXRpbmcgdHJhbnNwb3J0Li4uJyk7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IGF3YWl0IGNyZWF0ZVRyYW5zcG9ydEZyb21PcHRpb25zKHRyYW5zcG9ydE9wdGlvbnMpO1xuICBsb2coYFtpbnRlZ3JhdGlvbi1zZXR1cF0gVHJhbnNwb3J0IGNyZWF0ZWQ6ICR7dHJhbnNwb3J0LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG5cbiAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXBdIFByb2plY3Qgcm9vdDogJHtwcm9qZWN0Um9vdH1gKTtcbiAgY29uc3QgZGlzdFBhdGggPSBhd2FpdCByZXNvbHZlRGlzdFBhdGgocHJvamVjdFJvb3QpO1xuICBjb25zdCBtYW5pZmVzdEpzb24gPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGpvaW4oZGlzdFBhdGgsICdtYW5pZmVzdC5qc29uJyksICd1dGYtOCcpKSBhcyBQbHVnaW5NYW5pZmVzdDtcbiAgY29uc3QgcGx1Z2luSWQgPSBtYW5pZmVzdEpzb24uaWQ7XG5cbiAgaWYgKHRyYW5zcG9ydC5pc01vYmlsZSAmJiBtYW5pZmVzdEpzb24uaXNEZXNrdG9wT25seSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBQbHVnaW4gXCIke3BsdWdpbklkfVwiIGhhcyBpc0Rlc2t0b3BPbmx5OiB0cnVlIGluIG1hbmlmZXN0Lmpzb24uIE1vYmlsZSBpbnRlZ3JhdGlvbiB0ZXN0cyBjYW5ub3QgcnVuIGZvciBkZXNrdG9wLW9ubHkgcGx1Z2lucy5gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IG1haW5KcyA9IGpvaW4oZGlzdFBhdGgsIE1BSU5fSlMpO1xuICBjb25zdCBidWlsZFN0YXQgPSBhd2FpdCBzdGF0KG1haW5Kcyk7XG5cbiAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXBdIFVzaW5nICR7ZGlzdFBhdGh9ICgke2J1aWxkU3RhdC5tdGltZS50b0lTT1N0cmluZygpfSkuIElmIG91dGRhdGVkLCByZWJ1aWxkLmApO1xuXG4gIGNvbnN0IHRlbXBWYXVsdCA9IG5ldyBUZW1wVmF1bHQoKTtcbiAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXBdIENyZWF0ZWQgdGVtcCB2YXVsdDogJHt0ZW1wVmF1bHQucGF0aH1gKTtcbiAgY29uc3QgcGx1Z2luRGlyID0gam9pbih0ZW1wVmF1bHQucGF0aCwgT0JTSURJQU5fQ09ORklHX0RJUiwgUExVR0lOU19ESVIsIHBsdWdpbklkKTtcbiAgYXdhaXQgbWtkaXIocGx1Z2luRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgYXdhaXQgY3AoZGlzdFBhdGgsIHBsdWdpbkRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGF3YWl0IHdyaXRlRmlsZShqb2luKHRlbXBWYXVsdC5wYXRoLCBPQlNJRElBTl9DT05GSUdfRElSLCBDT01NVU5JVFlfUExVR0lOU19KU09OKSwgSlNPTi5zdHJpbmdpZnkoW3BsdWdpbklkXSkpO1xuXG4gIGxvZygnW2ludGVncmF0aW9uLXNldHVwXSBTeW5jaW5nIHZhdWx0IHRvIGRldmljZS4uLicpO1xuICBhd2FpdCB0ZW1wVmF1bHQuc3luY1RvRGV2aWNlKHRyYW5zcG9ydCk7XG4gIGxvZygnW2ludGVncmF0aW9uLXNldHVwXSBSZWdpc3RlcmluZyB2YXVsdC4uLicpO1xuICBhd2FpdCB0ZW1wVmF1bHQucmVnaXN0ZXIodHJhbnNwb3J0KTtcbiAgbG9nKCdbaW50ZWdyYXRpb24tc2V0dXBdIFZhdWx0IHJlZ2lzdGVyZWQuJyk7XG5cbiAgLy8gRW5hYmxlIHRoZSBwbHVnaW4gYW5kIHZlcmlmeSBpdCBsb2FkZWQuIE9ic2lkaWFuJ3MgZW5hYmxlUGx1Z2luKCkgd3JhcHNcbiAgLy8gTG9hZFBsdWdpbigpIGluIGEgdHJ5LWNhdGNoIHRoYXQgc3dhbGxvd3MgZXJyb3JzIGFuZCByZXR1cm5zIGZhbHNlLlxuICAvLyBXZSBtb25rZXktcGF0Y2ggbG9hZFBsdWdpbigpIHRvIGNhcHR1cmUgdGhlIGVycm9yIGJlZm9yZSBpdCdzIHN3YWxsb3dlZC5cbiAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXBdIEVuYWJsaW5nIHBsdWdpbiBcIiR7cGx1Z2luSWR9XCIuLi5gKTtcbiAgY29uc3QgeyBlcnJvck1lc3NhZ2UgfSA9IGF3YWl0IGV2YWxJbk9ic2lkaWFuKHtcbiAgICBhcmdzOiB7IHBsdWdpbklkIH0sXG4gICAgZm46IGVuYWJsZVBsdWdpbldpdGhFcnJvckNhcHR1cmUsXG4gICAgc2hvdWxkU2tpcFByZWZsaWdodENoZWNrczogdHJ1ZSxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmF1bHRQYXRoOiB0ZW1wVmF1bHQucGF0aFxuICB9KTtcblxuICBpZiAoZXJyb3JNZXNzYWdlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBQbHVnaW4gXCIke3BsdWdpbklkfVwiIGZhaWxlZCB0byBsb2FkOiAke2Vycm9yTWVzc2FnZX1gKTtcbiAgfVxuXG4gIGxvZyhgW2ludGVncmF0aW9uLXNldHVwXSBQbHVnaW4gXCIke3BsdWdpbklkfVwiIGVuYWJsZWQgc3VjY2Vzc2Z1bGx5LmApO1xuXG4gIHJldHVybiB7IHRlbXBWYXVsdCwgdHJhbnNwb3J0LCB0cmFuc3BvcnRPcHRpb25zIH07XG59XG5cbi8qKlxuICogRnJhbWV3b3JrLWFnbm9zdGljIGdsb2JhbCB0ZWFyZG93biBsb2dpYy5cbiAqXG4gKiBEaXNwb3NlcyBvZiB0aGUgdGVtcG9yYXJ5IHZhdWx0IGFuZCB0cmFuc3BvcnQgY3JlYXRlZCBkdXJpbmcgc2V0dXAuXG4gKlxuICogQHBhcmFtIHJlc3VsdCAtIFRoZSByZXN1bHQgZnJvbSB7QGxpbmsgY29yZVNldHVwfS4gV2hlbiBgdW5kZWZpbmVkYCwgZG9lcyBub3RoaW5nLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29yZVRlYXJkb3duKHJlc3VsdD86IENvcmVTZXR1cFJlc3VsdCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCByZXN1bHQ/LnRlbXBWYXVsdC5kaXNwb3NlKHJlc3VsdC50cmFuc3BvcnQpO1xuICBhd2FpdCByZXN1bHQ/LnRyYW5zcG9ydC5kaXNwb3NlPy4oKTtcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgcHJvamVjdCByb290IGJ5IHdhbGtpbmcgdXAgZnJvbSBgcHJvY2Vzcy5jd2QoKWAgbG9va2luZyBmb3IgYHBhY2thZ2UuanNvbmAuXG4gKlxuICogQHJldHVybnMgVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHByb2plY3Qgcm9vdC5cbiAqL1xuZnVuY3Rpb24gZmluZFByb2plY3RSb290KCk6IHN0cmluZyB7XG4gIGxldCBkaXIgPSBwcm9jZXNzLmN3ZCgpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uIC0tIExvb3AgdGVybWluYXRlcyBhdCBmaWxlc3lzdGVtIHJvb3QuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKGV4aXN0c1N5bmMoam9pbihkaXIsICdwYWNrYWdlLmpzb24nKSkpIHtcbiAgICAgIHJldHVybiBkaXI7XG4gICAgfVxuICAgIGNvbnN0IHBhcmVudCA9IGpvaW4oZGlyLCAnLi4nKTtcbiAgICBpZiAocGFyZW50ID09PSBkaXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgcHJvamVjdCByb290IChubyBwYWNrYWdlLmpzb24gZm91bmQpLicpO1xuICAgIH1cbiAgICBkaXIgPSBwYXJlbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZGlzdCBwYXRoIHRvIHVzZSBmb3IgaW50ZWdyYXRpb24gdGVzdHMuXG4gKlxuICogUGlja3Mgd2hpY2hldmVyIG9mIGBkaXN0L2RldmAgYW5kIGBkaXN0L2J1aWxkYCBoYXMgYSBuZXdlciBgbWFpbi5qc2AuXG4gKiBJZiBvbmx5IG9uZSBleGlzdHMsIHRoYXQgb25lIGlzIHVzZWQuIFRocm93cyBpZiBuZWl0aGVyIGV4aXN0cy5cbiAqXG4gKiBAcGFyYW0gcHJvamVjdFJvb3QgLSBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgcHJvamVjdCByb290LlxuICogQHJldHVybnMgVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGNob3NlbiBkaXN0IGZvbGRlci5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZURpc3RQYXRoKHByb2plY3RSb290OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBkZXZQYXRoID0gam9pbihwcm9qZWN0Um9vdCwgRElTVF9ERVYpO1xuICBjb25zdCBidWlsZFBhdGggPSBqb2luKHByb2plY3RSb290LCBESVNUX0JVSUxEKTtcbiAgY29uc3QgZGV2TWFpbkpzID0gam9pbihkZXZQYXRoLCBNQUlOX0pTKTtcbiAgY29uc3QgYnVpbGRNYWluSnMgPSBqb2luKGJ1aWxkUGF0aCwgTUFJTl9KUyk7XG4gIGNvbnN0IGRldlN0YXQgPSBleGlzdHNTeW5jKGRldk1haW5KcykgPyBhd2FpdCBzdGF0KGRldk1haW5KcykgOiBudWxsO1xuICBjb25zdCBidWlsZFN0YXQgPSBleGlzdHNTeW5jKGJ1aWxkTWFpbkpzKSA/IGF3YWl0IHN0YXQoYnVpbGRNYWluSnMpIDogbnVsbDtcblxuICBpZiAoZGV2U3RhdCAmJiBidWlsZFN0YXQpIHtcbiAgICByZXR1cm4gZGV2U3RhdC5tdGltZSA+IGJ1aWxkU3RhdC5tdGltZSA/IGRldlBhdGggOiBidWlsZFBhdGg7XG4gIH1cblxuICBpZiAoZGV2U3RhdCkge1xuICAgIHJldHVybiBkZXZQYXRoO1xuICB9XG5cbiAgaWYgKGJ1aWxkU3RhdCkge1xuICAgIHJldHVybiBidWlsZFBhdGg7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ05vIGJ1aWxkIGZvdW5kLiBSdW4gYG5wbSBydW4gYnVpbGRgIG9yIGBucG0gcnVuIGRldmAgZmlyc3QuJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFZQSxTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsWUFBWTtBQUNyQixTQUFTLG1CQUFtQjtBQUs1QixTQUFTLG9DQUFvQztBQUM3QyxTQUFTLFdBQVc7QUFDcEIsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUyxrQ0FBa0M7QUFFM0MsTUFBTSxXQUFXO0FB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
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dsb2JhbC1zZXR1cC1jb3JlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRnJhbWV3b3JrLWFnbm9zdGljIGNvcmUgbG9naWMgZm9yIGludGVncmF0aW9uIHRlc3QgZ2xvYmFsIHNldHVwIGFuZCB0ZWFyZG93bi5cbiAqXG4gKiBWaXRlc3QgYW5kIEplc3QgYWRhcHRlcnMgZGVsZWdhdGUgdG8gdGhlc2UgZnVuY3Rpb25zLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIHNldHVwIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbk1hbmlmZXN0IH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgbWtkaXIsXG4gIHJlYWRGaWxlLFxuICBzdGF0LFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGxvYWRFbnZGaWxlIH0gZnJvbSAnbm9kZTpwcm9jZXNzJztcblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1vcHRpb25zLm1qcyc7XG5pbXBvcnQgdHlwZSB7IE9ic2lkaWFuVHJhbnNwb3J0IH0gZnJvbSAnLi90cmFuc3BvcnQubWpzJztcblxuaW1wb3J0IHsgZW5hYmxlUGx1Z2luV2l0aEVycm9yQ2FwdHVyZSB9IGZyb20gJy4vZW5hYmxlLXBsdWdpbi5tanMnO1xuaW1wb3J0IHsgbG9nIH0gZnJvbSAnLi9sb2cubWpzJztcbmltcG9ydCB7IGV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnLi9vYnNpZGlhbi1jbGkubWpzJztcbmltcG9ydCB7IFRlbXBWYXVsdCB9IGZyb20gJy4vdGVtcC12YXVsdC5tanMnO1xuaW1wb3J0IHsgY3JlYXRlVHJhbnNwb3J0RnJvbU9wdGlvbnMgfSBmcm9tICcuL3RyYW5zcG9ydC1mYWN0b3J5Lm1qcyc7XG5cbmNvbnN0IERJU1RfREVWID0gJ2Rpc3QvZGV2JztcbmNvbnN0IERJU1RfQlVJTEQgPSAnZGlzdC9idWlsZCc7XG5jb25zdCBNQUlOX0pTID0gJ21haW4uanMnO1xuY29uc3QgT0JTSURJQU5fQ09ORklHX0RJUiA9ICcub2JzaWRpYW4nO1xuY29uc3QgUExVR0lOU19ESVIgPSAncGx1Z2lucyc7XG5jb25zdCBDT01NVU5JVFlfUExVR0lOU19KU09OID0gJ2NvbW11bml0eS1wbHVnaW5zLmpzb24nO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjb3JlU2V0dXB9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcmVTZXR1cFBhcmFtcyB7XG4gIC8qKiBUcmFuc3BvcnQgb3B0aW9ucy4gV2hlbiBvbWl0dGVkLCBkZWZhdWx0cyB0byB0aGUgQ0xJIHRyYW5zcG9ydC4gKi9cbiAgdHJhbnNwb3J0T3B0aW9ucz86IE9ic2lkaWFuVHJhbnNwb3J0T3B0aW9ucyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXN1bHQgcmV0dXJuZWQgYnkge0BsaW5rIGNvcmVTZXR1cH0sIHVzZWQgYnkgZnJhbWV3b3JrIGFkYXB0ZXJzXG4gKiB0byBwYXNzIGNvbnRleHQgdG8gdGVzdCB3b3JrZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvcmVTZXR1cFJlc3VsdCB7XG4gIC8qKiBUaGUgdGVtcG9yYXJ5IHZhdWx0IGNyZWF0ZWQgZHVyaW5nIHNldHVwLiAqL1xuICB0ZW1wVmF1bHQ6IFRlbXBWYXVsdDtcblxuICAvKiogVGhlIHRyYW5zcG9ydCBpbnN0YW5jZSB1c2VkIGR1cmluZyBzZXR1cC4gKi9cbiAgdHJhbnNwb3J0OiBPYnNpZGlhblRyYW5zcG9ydDtcblxuICAvKiogVGhlIHRyYW5zcG9ydCBvcHRpb25zIHRoYXQgd2VyZSByZXNvbHZlZC4gKi9cbiAgdHJhbnNwb3J0T3B0aW9uczogT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEZyYW1ld29yay1hZ25vc3RpYyBnbG9iYWwgc2V0dXAgbG9naWMuXG4gKlxuICogTG9hZHMgYC5lbnZgIGZyb20gdGhlIHByb2plY3Qgcm9vdCwgY3JlYXRlcyBhIHRyYW5zcG9ydCwgY29waWVzIHRoZSBidWlsdFxuICogcGx1Z2luIGludG8gYSB0ZW1wb3JhcnkgdmF1bHQsIHJlZ2lzdGVycyB0aGUgdmF1bHQgd2l0aCBPYnNpZGlhbiwgYW5kXG4gKiBlbmFibGVzIHRoZSBwbHVnaW4uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFNldHVwIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgc2V0dXAgcmVzdWx0IGNvbnRhaW5pbmcgdGhlIHRlbXAgdmF1bHQsIHRyYW5zcG9ydCwgYW5kIHJlc29sdmVkIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3JlU2V0dXAocGFyYW1zPzogQ29yZVNldHVwUGFyYW1zKTogUHJvbWlzZTxDb3JlU2V0dXBSZXN1bHQ+IHtcbiAgY29uc3QgcHJvamVjdFJvb3QgPSBmaW5kUHJvamVjdFJvb3QoKTtcbiAgY29uc3QgZW52RmlsZVBhdGggPSBqb2luKHByb2plY3RSb290LCAnLmVudicpO1xuICBpZiAoZXhpc3RzU3luYyhlbnZGaWxlUGF0aCkpIHtcbiAgICBsb2FkRW52RmlsZShlbnZGaWxlUGF0aCk7XG4gIH1cblxuICBjb25zdCB0cmFuc3BvcnRPcHRpb25zID0gcGFyYW1zPy50cmFuc3BvcnRPcHRpb25zO1xuICBsb2coJ1tpbnRlZ3JhdGlvbi1zZXR1cF0gQ3JlYXRpbmcgdHJhbnNwb3J0Li4uJyk7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IGF3YWl0IGNyZWF0ZVRyYW5zcG9ydEZyb21PcHRpb25zKHRyYW5zcG9ydE9wdGlvbnMpO1xuICBsb2coYFtpbnRlZ3JhdGlvbi1zZXR1cF0gVHJhbnNwb3J0IGNyZWF0ZWQ6ICR7dHJhbnNwb3J0LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG5cbiAgbGV0IHRlbXBWYXVsdDogVGVtcFZhdWx0IHwgdW5kZWZpbmVkO1xuXG4gIHRyeSB7XG4gICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXBdIFByb2plY3Qgcm9vdDogJHtwcm9qZWN0Um9vdH1gKTtcbiAgICBjb25zdCBkaXN0UGF0aCA9IGF3YWl0IHJlc29sdmVEaXN0UGF0aChwcm9qZWN0Um9vdCk7XG4gICAgY29uc3QgbWFuaWZlc3RKc29uID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShqb2luKGRpc3RQYXRoLCAnbWFuaWZlc3QuanNvbicpLCAndXRmLTgnKSkgYXMgUGx1Z2luTWFuaWZlc3Q7XG4gICAgY29uc3QgcGx1Z2luSWQgPSBtYW5pZmVzdEpzb24uaWQ7XG5cbiAgICBpZiAodHJhbnNwb3J0LmlzTW9iaWxlICYmIG1hbmlmZXN0SnNvbi5pc0Rlc2t0b3BPbmx5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQbHVnaW4gXCIke3BsdWdpbklkfVwiIGhhcyBpc0Rlc2t0b3BPbmx5OiB0cnVlIGluIG1hbmlmZXN0Lmpzb24uIE1vYmlsZSBpbnRlZ3JhdGlvbiB0ZXN0cyBjYW5ub3QgcnVuIGZvciBkZXNrdG9wLW9ubHkgcGx1Z2lucy5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IG1haW5KcyA9IGpvaW4oZGlzdFBhdGgsIE1BSU5fSlMpO1xuICAgIGNvbnN0IGJ1aWxkU3RhdCA9IGF3YWl0IHN0YXQobWFpbkpzKTtcblxuICAgIGxvZyhgW2ludGVncmF0aW9uLXNldHVwXSBVc2luZyAke2Rpc3RQYXRofSAoJHtidWlsZFN0YXQubXRpbWUudG9JU09TdHJpbmcoKX0pLiBJZiBvdXRkYXRlZCwgcmVidWlsZC5gKTtcblxuICAgIHRlbXBWYXVsdCA9IG5ldyBUZW1wVmF1bHQoKTtcbiAgICBsb2coYFtpbnRlZ3JhdGlvbi1zZXR1cF0gQ3JlYXRlZCB0ZW1wIHZhdWx0OiAke3RlbXBWYXVsdC5wYXRofWApO1xuICAgIGNvbnN0IHBsdWdpbkRpciA9IGpvaW4odGVtcFZhdWx0LnBhdGgsIE9CU0lESUFOX0NPTkZJR19ESVIsIFBMVUdJTlNfRElSLCBwbHVnaW5JZCk7XG4gICAgYXdhaXQgbWtkaXIocGx1Z2luRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBhd2FpdCBjcChkaXN0UGF0aCwgcGx1Z2luRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBhd2FpdCB3cml0ZUZpbGUoam9pbih0ZW1wVmF1bHQucGF0aCwgT0JTSURJQU5fQ09ORklHX0RJUiwgQ09NTVVOSVRZX1BMVUdJTlNfSlNPTiksIEpTT04uc3RyaW5naWZ5KFtwbHVnaW5JZF0pKTtcblxuICAgIGxvZygnW2ludGVncmF0aW9uLXNldHVwXSBTeW5jaW5nIHZhdWx0IHRvIGRldmljZS4uLicpO1xuICAgIGF3YWl0IHRlbXBWYXVsdC5zeW5jVG9EZXZpY2UodHJhbnNwb3J0KTtcbiAgICBsb2coJ1tpbnRlZ3JhdGlvbi1zZXR1cF0gUmVnaXN0ZXJpbmcgdmF1bHQuLi4nKTtcbiAgICBhd2FpdCB0ZW1wVmF1bHQucmVnaXN0ZXIodHJhbnNwb3J0KTtcbiAgICBsb2coJ1tpbnRlZ3JhdGlvbi1zZXR1cF0gVmF1bHQgcmVnaXN0ZXJlZC4nKTtcblxuICAgIC8vIEVuYWJsZSB0aGUgcGx1Z2luIGFuZCB2ZXJpZnkgaXQgbG9hZGVkLiBPYnNpZGlhbidzIGVuYWJsZVBsdWdpbigpIHdyYXBzXG4gICAgLy8gTG9hZFBsdWdpbigpIGluIGEgdHJ5LWNhdGNoIHRoYXQgc3dhbGxvd3MgZXJyb3JzIGFuZCByZXR1cm5zIGZhbHNlLlxuICAgIC8vIFdlIG1vbmtleS1wYXRjaCBsb2FkUGx1Z2luKCkgdG8gY2FwdHVyZSB0aGUgZXJyb3IgYmVmb3JlIGl0J3Mgc3dhbGxvd2VkLlxuICAgIGxvZyhgW2ludGVncmF0aW9uLXNldHVwXSBFbmFibGluZyBwbHVnaW4gXCIke3BsdWdpbklkfVwiLi4uYCk7XG4gICAgY29uc3QgeyBlcnJvck1lc3NhZ2UgfSA9IGF3YWl0IGV2YWxJbk9ic2lkaWFuKHtcbiAgICAgIGFyZ3M6IHsgcGx1Z2luSWQgfSxcbiAgICAgIGZuOiBlbmFibGVQbHVnaW5XaXRoRXJyb3JDYXB0dXJlLFxuICAgICAgc2hvdWxkU2tpcFByZWZsaWdodENoZWNrczogdHJ1ZSxcbiAgICAgIHRyYW5zcG9ydCxcbiAgICAgIHZhdWx0UGF0aDogdGVtcFZhdWx0LnBhdGhcbiAgICB9KTtcblxuICAgIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUGx1Z2luIFwiJHtwbHVnaW5JZH1cIiBmYWlsZWQgdG8gbG9hZDogJHtlcnJvck1lc3NhZ2V9YCk7XG4gICAgfVxuXG4gICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXBdIFBsdWdpbiBcIiR7cGx1Z2luSWR9XCIgZW5hYmxlZCBzdWNjZXNzZnVsbHkuYCk7XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgbG9nKCdbaW50ZWdyYXRpb24tc2V0dXBdIFNldHVwIGZhaWxlZCwgY2xlYW5pbmcgdXAuLi4nKTtcbiAgICB0cnkge1xuICAgICAgaWYgKHRlbXBWYXVsdCkge1xuICAgICAgICBhd2FpdCB0ZW1wVmF1bHQuZGlzcG9zZSh0cmFuc3BvcnQpO1xuICAgICAgfVxuICAgICAgYXdhaXQgdHJhbnNwb3J0LmRpc3Bvc2U/LigpO1xuICAgIH0gY2F0Y2ggKGNsZWFudXBFcnJvcjogdW5rbm93bikge1xuICAgICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXBdIENsZWFudXAgZXJyb3IgKG5vbi1mYXRhbCk6ICR7U3RyaW5nKGNsZWFudXBFcnJvcil9YCk7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG5cbiAgcmV0dXJuIHsgdGVtcFZhdWx0LCB0cmFuc3BvcnQsIHRyYW5zcG9ydE9wdGlvbnMgfTtcbn1cblxuLyoqXG4gKiBGcmFtZXdvcmstYWdub3N0aWMgZ2xvYmFsIHRlYXJkb3duIGxvZ2ljLlxuICpcbiAqIERpc3Bvc2VzIG9mIHRoZSB0ZW1wb3JhcnkgdmF1bHQgYW5kIHRyYW5zcG9ydCBjcmVhdGVkIGR1cmluZyBzZXR1cC5cbiAqXG4gKiBAcGFyYW0gcmVzdWx0IC0gVGhlIHJlc3VsdCBmcm9tIHtAbGluayBjb3JlU2V0dXB9LiBXaGVuIGB1bmRlZmluZWRgLCBkb2VzIG5vdGhpbmcuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3JlVGVhcmRvd24ocmVzdWx0PzogQ29yZVNldHVwUmVzdWx0KTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHJlc3VsdD8udGVtcFZhdWx0LmRpc3Bvc2UocmVzdWx0LnRyYW5zcG9ydCk7XG4gIGF3YWl0IHJlc3VsdD8udHJhbnNwb3J0LmRpc3Bvc2U/LigpO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBwcm9qZWN0IHJvb3QgYnkgd2Fsa2luZyB1cCBmcm9tIGBwcm9jZXNzLmN3ZCgpYCBsb29raW5nIGZvciBgcGFja2FnZS5qc29uYC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgcHJvamVjdCByb290LlxuICovXG5mdW5jdGlvbiBmaW5kUHJvamVjdFJvb3QoKTogc3RyaW5nIHtcbiAgbGV0IGRpciA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb24gLS0gTG9vcCB0ZXJtaW5hdGVzIGF0IGZpbGVzeXN0ZW0gcm9vdC5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBpZiAoZXhpc3RzU3luYyhqb2luKGRpciwgJ3BhY2thZ2UuanNvbicpKSkge1xuICAgICAgcmV0dXJuIGRpcjtcbiAgICB9XG4gICAgY29uc3QgcGFyZW50ID0gam9pbihkaXIsICcuLicpO1xuICAgIGlmIChwYXJlbnQgPT09IGRpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBwcm9qZWN0IHJvb3QgKG5vIHBhY2thZ2UuanNvbiBmb3VuZCkuJyk7XG4gICAgfVxuICAgIGRpciA9IHBhcmVudDtcbiAgfVxufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBkaXN0IHBhdGggdG8gdXNlIGZvciBpbnRlZ3JhdGlvbiB0ZXN0cy5cbiAqXG4gKiBQaWNrcyB3aGljaGV2ZXIgb2YgYGRpc3QvZGV2YCBhbmQgYGRpc3QvYnVpbGRgIGhhcyBhIG5ld2VyIGBtYWluLmpzYC5cbiAqIElmIG9ubHkgb25lIGV4aXN0cywgdGhhdCBvbmUgaXMgdXNlZC4gVGhyb3dzIGlmIG5laXRoZXIgZXhpc3RzLlxuICpcbiAqIEBwYXJhbSBwcm9qZWN0Um9vdCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBwcm9qZWN0IHJvb3QuXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgY2hvc2VuIGRpc3QgZm9sZGVyLlxuICovXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlRGlzdFBhdGgocHJvamVjdFJvb3Q6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGRldlBhdGggPSBqb2luKHByb2plY3RSb290LCBESVNUX0RFVik7XG4gIGNvbnN0IGJ1aWxkUGF0aCA9IGpvaW4ocHJvamVjdFJvb3QsIERJU1RfQlVJTEQpO1xuICBjb25zdCBkZXZNYWluSnMgPSBqb2luKGRldlBhdGgsIE1BSU5fSlMpO1xuICBjb25zdCBidWlsZE1haW5KcyA9IGpvaW4oYnVpbGRQYXRoLCBNQUlOX0pTKTtcbiAgY29uc3QgZGV2U3RhdCA9IGV4aXN0c1N5bmMoZGV2TWFpbkpzKSA/IGF3YWl0IHN0YXQoZGV2TWFpbkpzKSA6IG51bGw7XG4gIGNvbnN0IGJ1aWxkU3RhdCA9IGV4aXN0c1N5bmMoYnVpbGRNYWluSnMpID8gYXdhaXQgc3RhdChidWlsZE1haW5KcykgOiBudWxsO1xuXG4gIGlmIChkZXZTdGF0ICYmIGJ1aWxkU3RhdCkge1xuICAgIHJldHVybiBkZXZTdGF0Lm10aW1lID4gYnVpbGRTdGF0Lm10aW1lID8gZGV2UGF0aCA6IGJ1aWxkUGF0aDtcbiAgfVxuXG4gIGlmIChkZXZTdGF0KSB7XG4gICAgcmV0dXJuIGRldlBhdGg7XG4gIH1cblxuICBpZiAoYnVpbGRTdGF0KSB7XG4gICAgcmV0dXJuIGJ1aWxkUGF0aDtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignTm8gYnVpbGQgZm91bmQuIFJ1biBgbnBtIHJ1biBidWlsZGAgb3IgYG5wbSBydW4gZGV2YCBmaXJzdC4nKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQVlBLFNBQVMsa0JBQWtCO0FBQzNCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxZQUFZO0FBQ3JCLFNBQVMsbUJBQW1CO0FBSzVCLFNBQVMsb0NBQW9DO0FBQzdDLFNBQVMsV0FBVztBQUNwQixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLGlCQUFpQjtBQUMxQixTQUFTLGtDQUFrQztBQUUzQyxNQUFNLFdBQVc7QUFDakIsTUFBTSxhQUFhO0FBQ25CLE1BQU0sVUFBVTtBQUNoQixNQUFNLHNCQUFzQjtBQUM1QixNQUFNLGNBQWM7QUFDcEIsTUFBTSx5QkFBeUI7QUFtQy9CLGVBQXNCLFVBQVUsUUFBb0Q7QUFDbEYsUUFBTSxjQUFjLGdCQUFnQjtBQUNwQyxRQUFNLGNBQWMsS0FBSyxhQUFhLE1BQU07QUFDNUMsTUFBSSxXQUFXLFdBQVcsR0FBRztBQUMzQixnQkFBWSxXQUFXO0FBQUEsRUFDekI7QUFFQSxRQUFNLG1CQUFtQixRQUFRO0FBQ2pDLE1BQUksMkNBQTJDO0FBQy9DLFFBQU0sWUFBWSxNQUFNLDJCQUEyQixnQkFBZ0I7QUFDbkUsTUFBSSwwQ0FBMEMsVUFBVSxZQUFZLElBQUksRUFBRTtBQUUxRSxNQUFJO0FBRUosTUFBSTtBQUNGLFFBQUkscUNBQXFDLFdBQVcsRUFBRTtBQUN0RCxVQUFNLFdBQVcsTUFBTSxnQkFBZ0IsV0FBVztBQUNsRCxVQUFNLGVBQWUsS0FBSyxNQUFNLE1BQU0sU0FBUyxLQUFLLFVBQVUsZUFBZSxHQUFHLE9BQU8sQ0FBQztBQUN4RixVQUFNLFdBQVcsYUFBYTtBQUU5QixRQUFJLFVBQVUsWUFBWSxhQUFhLGVBQWU7QUFDcEQsWUFBTSxJQUFJO0FBQUEsUUFDUixXQUFXLFFBQVE7QUFBQSxNQUNyQjtBQUFBLElBQ0Y7QUFFQSxVQUFNLFNBQVMsS0FBSyxVQUFVLE9BQU87QUFDckMsVUFBTSxZQUFZLE1BQU0sS0FBSyxNQUFNO0FBRW5DLFFBQUksNkJBQTZCLFFBQVEsS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDLDBCQUEwQjtBQUVyRyxnQkFBWSxJQUFJLFVBQVU7QUFDMUIsUUFBSSwyQ0FBMkMsVUFBVSxJQUFJLEVBQUU7QUFDL0QsVUFBTSxZQUFZLEtBQUssVUFBVSxNQUFNLHFCQUFxQixhQUFhLFFBQVE7QUFDakYsVUFBTSxNQUFNLFdBQVcsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUMxQyxVQUFNLEdBQUcsVUFBVSxXQUFXLEVBQUUsV0FBVyxLQUFLLENBQUM7QUFDakQsVUFBTSxVQUFVLEtBQUssVUFBVSxNQUFNLHFCQUFxQixzQkFBc0IsR0FBRyxLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUU3RyxRQUFJLGdEQUFnRDtBQUNwRCxVQUFNLFVBQVUsYUFBYSxTQUFTO0FBQ3RDLFFBQUksMENBQTBDO0FBQzlDLFVBQU0sVUFBVSxTQUFTLFNBQVM7QUFDbEMsUUFBSSx1Q0FBdUM7QUFLM0MsUUFBSSx3Q0FBd0MsUUFBUSxNQUFNO0FBQzFELFVBQU0sRUFBRSxhQUFhLElBQUksTUFBTSxlQUFlO0FBQUEsTUFDNUMsTUFBTSxFQUFFLFNBQVM7QUFBQSxNQUNqQixJQUFJO0FBQUEsTUFDSiwyQkFBMkI7QUFBQSxNQUMzQjtBQUFBLE1BQ0EsV0FBVyxVQUFVO0FBQUEsSUFDdkIsQ0FBQztBQUVELFFBQUksY0FBYztBQUNoQixZQUFNLElBQUksTUFBTSxXQUFXLFFBQVEscUJBQXFCLFlBQVksRUFBRTtBQUFBLElBQ3hFO0FBRUEsUUFBSSwrQkFBK0IsUUFBUSx5QkFBeUI7QUFBQSxFQUN0RSxTQUFTLE9BQWdCO0FBQ3ZCLFFBQUksa0RBQWtEO0FBQ3RELFFBQUk7QUFDRixVQUFJLFdBQVc7QUFDYixjQUFNLFVBQVUsUUFBUSxTQUFTO0FBQUEsTUFDbkM7QUFDQSxZQUFNLFVBQVUsVUFBVTtBQUFBLElBQzVCLFNBQVMsY0FBdUI7QUFDOUIsVUFBSSxrREFBa0QsT0FBTyxZQUFZLENBQUMsRUFBRTtBQUFBLElBQzlFO0FBQ0EsVUFBTTtBQUFBLEVBQ1I7QUFFQSxTQUFPLEVBQUUsV0FBVyxXQUFXLGlCQUFpQjtBQUNsRDtBQVNBLGVBQXNCLGFBQWEsUUFBeUM7QUFDMUUsUUFBTSxRQUFRLFVBQVUsUUFBUSxPQUFPLFNBQVM7QUFDaEQsUUFBTSxRQUFRLFVBQVUsVUFBVTtBQUNwQztBQU9BLFNBQVMsa0JBQTBCO0FBQ2pDLE1BQUksTUFBTSxRQUFRLElBQUk7QUFHdEIsU0FBTyxNQUFNO0FBQ1gsUUFBSSxXQUFXLEtBQUssS0FBSyxjQUFjLENBQUMsR0FBRztBQUN6QyxhQUFPO0FBQUEsSUFDVDtBQUNBLFVBQU0sU0FBUyxLQUFLLEtBQUssSUFBSTtBQUM3QixRQUFJLFdBQVcsS0FBSztBQUNsQixZQUFNLElBQUksTUFBTSxzREFBc0Q7QUFBQSxJQUN4RTtBQUNBLFVBQU07QUFBQSxFQUNSO0FBQ0Y7QUFXQSxlQUFlLGdCQUFnQixhQUFzQztBQUNuRSxRQUFNLFVBQVUsS0FBSyxhQUFhLFFBQVE7QUFDMUMsUUFBTSxZQUFZLEtBQUssYUFBYSxVQUFVO0FBQzlDLFFBQU0sWUFBWSxLQUFLLFNBQVMsT0FBTztBQUN2QyxRQUFNLGNBQWMsS0FBSyxXQUFXLE9BQU87QUFDM0MsUUFBTSxVQUFVLFdBQVcsU0FBUyxJQUFJLE1BQU0sS0FBSyxTQUFTLElBQUk7QUFDaEUsUUFBTSxZQUFZLFdBQVcsV0FBVyxJQUFJLE1BQU0sS0FBSyxXQUFXLElBQUk7QUFFdEUsTUFBSSxXQUFXLFdBQVc7QUFDeEIsV0FBTyxRQUFRLFFBQVEsVUFBVSxRQUFRLFVBQVU7QUFBQSxFQUNyRDtBQUVBLE1BQUksU0FBUztBQUNYLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxXQUFXO0FBQ2IsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLElBQUksTUFBTSw2REFBNkQ7QUFDL0U7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/dist/lib/esm/log.d.mts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file
|
|
3
3
|
*
|
|
4
|
-
* Internal logging helper that prepends
|
|
4
|
+
* Internal logging helper that prepends local-timezone timestamps to integration-setup messages.
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
7
|
* Logs a timestamped message to stderr via `console.warn`.
|
|
8
8
|
*
|
|
9
|
+
* Uses local timezone for readability.
|
|
10
|
+
*
|
|
9
11
|
* @param message - The message to log.
|
|
10
12
|
*/
|
|
11
13
|
export declare function log(message: string): void;
|
package/dist/lib/esm/log.mjs
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
|
+
const DATE_COMPONENT_PAD_LENGTH = 2;
|
|
2
|
+
const MILLISECOND_PAD_LENGTH = 3;
|
|
1
3
|
function log(message) {
|
|
2
|
-
const timestamp = (/* @__PURE__ */ new Date())
|
|
4
|
+
const timestamp = formatLocalTimestamp(/* @__PURE__ */ new Date());
|
|
3
5
|
console.warn(`[${timestamp}] ${message}`);
|
|
4
6
|
}
|
|
7
|
+
function formatLocalTimestamp(date) {
|
|
8
|
+
const year = String(date.getFullYear());
|
|
9
|
+
const month = String(date.getMonth() + 1).padStart(DATE_COMPONENT_PAD_LENGTH, "0");
|
|
10
|
+
const day = String(date.getDate()).padStart(DATE_COMPONENT_PAD_LENGTH, "0");
|
|
11
|
+
const hours = String(date.getHours()).padStart(DATE_COMPONENT_PAD_LENGTH, "0");
|
|
12
|
+
const minutes = String(date.getMinutes()).padStart(DATE_COMPONENT_PAD_LENGTH, "0");
|
|
13
|
+
const seconds = String(date.getSeconds()).padStart(DATE_COMPONENT_PAD_LENGTH, "0");
|
|
14
|
+
const milliseconds = String(date.getMilliseconds()).padStart(MILLISECOND_PAD_LENGTH, "0");
|
|
15
|
+
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`;
|
|
16
|
+
}
|
|
5
17
|
export {
|
|
6
18
|
log
|
|
7
19
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xvZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEludGVybmFsIGxvZ2dpbmcgaGVscGVyIHRoYXQgcHJlcGVuZHMgbG9jYWwtdGltZXpvbmUgdGltZXN0YW1wcyB0byBpbnRlZ3JhdGlvbi1zZXR1cCBtZXNzYWdlcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhpbiBsb2dnaW5nIHdyYXBwZXIsIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMuICovXG5cbmNvbnN0IERBVEVfQ09NUE9ORU5UX1BBRF9MRU5HVEggPSAyO1xuY29uc3QgTUlMTElTRUNPTkRfUEFEX0xFTkdUSCA9IDM7XG5cbi8qKlxuICogTG9ncyBhIHRpbWVzdGFtcGVkIG1lc3NhZ2UgdG8gc3RkZXJyIHZpYSBgY29uc29sZS53YXJuYC5cbiAqXG4gKiBVc2VzIGxvY2FsIHRpbWV6b25lIGZvciByZWFkYWJpbGl0eS5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvZyhtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3QgdGltZXN0YW1wID0gZm9ybWF0TG9jYWxUaW1lc3RhbXAobmV3IERhdGUoKSk7XG4gIGNvbnNvbGUud2FybihgWyR7dGltZXN0YW1wfV0gJHttZXNzYWdlfWApO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgYSBkYXRlIGFzIGEgbG9jYWwtdGltZXpvbmUgdGltZXN0YW1wIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRvIGZvcm1hdC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIGxpa2UgYDIwMjYtMDQtMjQgMTY6NDE6MzEuNjA5YC5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0TG9jYWxUaW1lc3RhbXAoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gIGNvbnN0IHllYXIgPSBTdHJpbmcoZGF0ZS5nZXRGdWxsWWVhcigpKTtcbiAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoREFURV9DT01QT05FTlRfUEFEX0xFTkdUSCwgJzAnKTtcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydChEQVRFX0NPTVBPTkVOVF9QQURfTEVOR1RILCAnMCcpO1xuICBjb25zdCBob3VycyA9IFN0cmluZyhkYXRlLmdldEhvdXJzKCkpLnBhZFN0YXJ0KERBVEVfQ09NUE9ORU5UX1BBRF9MRU5HVEgsICcwJyk7XG4gIGNvbnN0IG1pbnV0ZXMgPSBTdHJpbmcoZGF0ZS5nZXRNaW51dGVzKCkpLnBhZFN0YXJ0KERBVEVfQ09NUE9ORU5UX1BBRF9MRU5HVEgsICcwJyk7XG4gIGNvbnN0IHNlY29uZHMgPSBTdHJpbmcoZGF0ZS5nZXRTZWNvbmRzKCkpLnBhZFN0YXJ0KERBVEVfQ09NUE9ORU5UX1BBRF9MRU5HVEgsICcwJyk7XG4gIGNvbnN0IG1pbGxpc2Vjb25kcyA9IFN0cmluZyhkYXRlLmdldE1pbGxpc2Vjb25kcygpKS5wYWRTdGFydChNSUxMSVNFQ09ORF9QQURfTEVOR1RILCAnMCcpO1xuICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9ICR7aG91cnN9OiR7bWludXRlc306JHtzZWNvbmRzfS4ke21pbGxpc2Vjb25kc31gO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIkFBUUEsTUFBTSw0QkFBNEI7QUFDbEMsTUFBTSx5QkFBeUI7QUFTeEIsU0FBUyxJQUFJLFNBQXVCO0FBQ3pDLFFBQU0sWUFBWSxxQkFBcUIsb0JBQUksS0FBSyxDQUFDO0FBQ2pELFVBQVEsS0FBSyxJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUU7QUFDMUM7QUFRQSxTQUFTLHFCQUFxQixNQUFvQjtBQUNoRCxRQUFNLE9BQU8sT0FBTyxLQUFLLFlBQVksQ0FBQztBQUN0QyxRQUFNLFFBQVEsT0FBTyxLQUFLLFNBQVMsSUFBSSxDQUFDLEVBQUUsU0FBUywyQkFBMkIsR0FBRztBQUNqRixRQUFNLE1BQU0sT0FBTyxLQUFLLFFBQVEsQ0FBQyxFQUFFLFNBQVMsMkJBQTJCLEdBQUc7QUFDMUUsUUFBTSxRQUFRLE9BQU8sS0FBSyxTQUFTLENBQUMsRUFBRSxTQUFTLDJCQUEyQixHQUFHO0FBQzdFLFFBQU0sVUFBVSxPQUFPLEtBQUssV0FBVyxDQUFDLEVBQUUsU0FBUywyQkFBMkIsR0FBRztBQUNqRixRQUFNLFVBQVUsT0FBTyxLQUFLLFdBQVcsQ0FBQyxFQUFFLFNBQVMsMkJBQTJCLEdBQUc7QUFDakYsUUFBTSxlQUFlLE9BQU8sS0FBSyxnQkFBZ0IsQ0FBQyxFQUFFLFNBQVMsd0JBQXdCLEdBQUc7QUFDeEYsU0FBTyxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksR0FBRyxJQUFJLEtBQUssSUFBSSxPQUFPLElBQUksT0FBTyxJQUFJLFlBQVk7QUFDL0U7IiwKICAibmFtZXMiOiBbXQp9Cg==
|