obsidian-integration-testing 13.0.0 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cjs/app-config.cjs +1 -1
- package/dist/lib/cjs/app-config.d.cts +25 -25
- package/dist/lib/cjs/connect-to-cdp.cjs +1 -1
- package/dist/lib/cjs/connect-to-cdp.d.cts +4 -4
- package/dist/lib/cjs/demo-vault-bootstrap.cjs +1 -1
- package/dist/lib/cjs/demo-vault-bootstrap.d.cts +10 -2
- package/dist/lib/cjs/device-settings.cjs +1 -1
- package/dist/lib/cjs/device-settings.d.cts +1 -1
- package/dist/lib/cjs/emulator-reaper.cjs +1 -1
- package/dist/lib/cjs/emulator-reaper.d.cts +2 -2
- package/dist/lib/cjs/enable-plugin.cjs +1 -1
- package/dist/lib/cjs/eval-in-obsidian.cjs +1 -1
- package/dist/lib/cjs/eval-in-obsidian.d.cts +12 -12
- package/dist/lib/cjs/generate-function-call.cjs +1 -1
- package/dist/lib/cjs/generate-function-call.d.cts +2 -2
- package/dist/lib/cjs/index.cjs +1 -1
- package/dist/lib/cjs/index.d.cts +4 -4
- package/dist/lib/cjs/jest/global-setup.cjs +1 -1
- package/dist/lib/cjs/jest/global-setup.d.cts +3 -3
- package/dist/lib/cjs/leftover-cleanup.cjs +1 -1
- package/dist/lib/cjs/leftover-cleanup.d.cts +2 -2
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/namespace-bootstrap.cjs +1 -1
- package/dist/lib/cjs/obsidian-instance.cjs +1 -1
- package/dist/lib/cjs/obsidian-instance.d.cts +3 -3
- package/dist/lib/cjs/open-obsidian-settings-tab.cjs +3 -3
- package/dist/lib/cjs/open-obsidian-settings-tab.d.cts +4 -4
- package/dist/lib/cjs/parent-liveness.cjs +1 -1
- package/dist/lib/cjs/parent-liveness.d.cts +1 -1
- package/dist/lib/cjs/poll-in-obsidian.cjs +1 -1
- package/dist/lib/cjs/poll-in-obsidian.d.cts +3 -3
- package/dist/lib/cjs/poll-until.cjs +1 -1
- package/dist/lib/cjs/poll-until.d.cts +4 -4
- package/dist/lib/cjs/process-capture.cjs +1 -1
- package/dist/lib/cjs/process-capture.d.cts +3 -3
- package/dist/lib/cjs/run-version-matrix.cjs +1 -1
- package/dist/lib/cjs/run-version-matrix.d.cts +1 -1
- package/dist/lib/cjs/setup-lock.cjs +1 -1
- package/dist/lib/cjs/setup-lock.d.cts +1 -1
- package/dist/lib/cjs/sharp-loader.cjs +1 -1
- package/dist/lib/cjs/sharp-loader.d.cts +6 -6
- package/dist/lib/cjs/temporary-vault.cjs +2 -3
- package/dist/lib/cjs/temporary-vault.d.cts +4 -4
- package/dist/lib/cjs/transport-appium.cjs +1 -1
- package/dist/lib/cjs/transport-factory.cjs +1 -1
- package/dist/lib/cjs/transport.cjs +1 -1
- package/dist/lib/cjs/transport.d.cts +10 -10
- package/dist/lib/cjs/version-matrix.cjs +1 -1
- package/dist/lib/cjs/version-matrix.d.cts +2 -2
- package/dist/lib/cjs/vitest/global-setup.cjs +1 -1
- package/dist/lib/cjs/vitest/global-setup.d.cts +3 -3
- package/dist/lib/esm/app-config.d.mts +25 -25
- package/dist/lib/esm/app-config.mjs +1 -1
- package/dist/lib/esm/connect-to-cdp.d.mts +4 -4
- package/dist/lib/esm/connect-to-cdp.mjs +1 -1
- package/dist/lib/esm/demo-vault-bootstrap.d.mts +10 -2
- package/dist/lib/esm/demo-vault-bootstrap.mjs +1 -1
- package/dist/lib/esm/device-settings.d.mts +1 -1
- package/dist/lib/esm/device-settings.mjs +1 -1
- package/dist/lib/esm/emulator-reaper.d.mts +2 -2
- package/dist/lib/esm/emulator-reaper.mjs +1 -1
- package/dist/lib/esm/enable-plugin.mjs +1 -1
- package/dist/lib/esm/eval-in-obsidian.d.mts +12 -12
- package/dist/lib/esm/eval-in-obsidian.mjs +1 -1
- package/dist/lib/esm/generate-function-call.d.mts +2 -2
- package/dist/lib/esm/generate-function-call.mjs +1 -1
- package/dist/lib/esm/index.d.mts +4 -4
- package/dist/lib/esm/index.mjs +1 -1
- package/dist/lib/esm/jest/global-setup.d.mts +3 -3
- package/dist/lib/esm/jest/global-setup.mjs +1 -1
- package/dist/lib/esm/leftover-cleanup.d.mts +2 -2
- package/dist/lib/esm/leftover-cleanup.mjs +1 -1
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/namespace-bootstrap.mjs +1 -1
- package/dist/lib/esm/obsidian-instance.d.mts +3 -3
- package/dist/lib/esm/obsidian-instance.mjs +1 -1
- package/dist/lib/esm/open-obsidian-settings-tab.d.mts +4 -4
- package/dist/lib/esm/open-obsidian-settings-tab.mjs +3 -3
- package/dist/lib/esm/parent-liveness.d.mts +1 -1
- package/dist/lib/esm/parent-liveness.mjs +1 -1
- package/dist/lib/esm/poll-in-obsidian.d.mts +3 -3
- package/dist/lib/esm/poll-in-obsidian.mjs +1 -1
- package/dist/lib/esm/poll-until.d.mts +4 -4
- package/dist/lib/esm/poll-until.mjs +1 -1
- package/dist/lib/esm/process-capture.d.mts +3 -3
- package/dist/lib/esm/process-capture.mjs +1 -1
- package/dist/lib/esm/run-version-matrix.d.mts +1 -1
- package/dist/lib/esm/run-version-matrix.mjs +1 -1
- package/dist/lib/esm/setup-lock.d.mts +1 -1
- package/dist/lib/esm/setup-lock.mjs +1 -1
- package/dist/lib/esm/sharp-loader.d.mts +6 -6
- package/dist/lib/esm/sharp-loader.mjs +1 -1
- package/dist/lib/esm/temporary-vault.d.mts +4 -4
- package/dist/lib/esm/temporary-vault.mjs +2 -3
- package/dist/lib/esm/transport-appium.mjs +1 -1
- package/dist/lib/esm/transport-factory.mjs +1 -1
- package/dist/lib/esm/transport.d.mts +10 -10
- package/dist/lib/esm/version-matrix.d.mts +2 -2
- package/dist/lib/esm/version-matrix.mjs +1 -1
- package/dist/lib/esm/vitest/global-setup.d.mts +3 -3
- package/dist/lib/esm/vitest/global-setup.mjs +1 -1
- package/package.json +1 -1
|
@@ -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_exports = {};
|
|
16
16
|
module.exports = __toCommonJS(transport_exports);
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3RyYW5zcG9ydC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIERlZmluZXMgdGhlIHRyYW5zcG9ydCBpbnRlcmZhY2UgZm9yIGNvbW11bmljYXRpbmcgd2l0aCBhIHJ1bm5pbmcgT2JzaWRpYW4gaW5zdGFuY2UuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDYXB0dXJlU2NyZWVuc2hvdFBhcmFtcyB9IGZyb20gJy4vY2FwdHVyZS1zY3JlZW5zaG90LmNqcyc7XG5cbi8qKlxuICogQW4gb3BhcXVlIGhhbmRsZSBpZGVudGlmeWluZyBhIGNvbnNvbGUtY2FwdHVyZSB3aW5kb3cgb3BlbmVkIGJ5XG4gKiB7QGxpbmsgT2JzaWRpYW5UcmFuc3BvcnQuYmVnaW5Db25zb2xlQ2FwdHVyZX0gYW5kIGNvbnN1bWVkIGJ5XG4gKiB7QGxpbmsgT2JzaWRpYW5UcmFuc3BvcnQucmVhZENvbnNvbGVDYXB0dXJlU2luY2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnNvbGVDYXB0dXJlSGFuZGxlIHtcbiAgLyoqXG4gICAqIEEgdW5pcXVlIG1hcmtlciB3cml0dGVuIGludG8gdGhlIHRhcmdldCdzIGxvZyBzdHJlYW0gYXQgY2FwdHVyZSBzdGFydCxcbiAgICogdXNlZCB0byBzbGljZSBvdXQgZXZlcnl0aGluZyBsb2dnZWQgYWZ0ZXIgdGhpcyBwb2ludC5cbiAgICovXG4gIHJlYWRvbmx5IG1hcmtlcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcGx1Z2dhYmxlIHRyYW5zcG9ydCB0aGF0IGV2YWx1YXRlcyBKYXZhU2NyaXB0IGV4cHJlc3Npb25zIGluc2lkZSBhIHJ1bm5pbmdcbiAqIE9ic2lkaWFuIGluc3RhbmNlIGFuZCBtYW5hZ2VzIHZhdWx0IGxpZmVjeWNsZS5cbiAqXG4gKiBJbXBsZW1lbnRhdGlvbnMgaGFuZGxlIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBkZXRhaWxzOlxuICogLSB7QGxpbmsgRGVza3RvcENkcFRyYW5zcG9ydH0gXHUyMDE0IERlc2t0b3AgT2JzaWRpYW4gdmlhIENocm9tZSBEZXZUb29scyBQcm90b2NvbFxuICogICAoYSBoYXJuZXNzLW93bmVkIGlzb2xhdGVkIGluc3RhbmNlIGJ5IGRlZmF1bHQsIG9yIGF0dGFjaCB0byBhIHJ1bm5pbmcgb25lKVxuICogLSB7QGxpbmsgQXBwaXVtVHJhbnNwb3J0fSBcdTIwMTQgTW9iaWxlIE9ic2lkaWFuIHZpYSBBcHBpdW0gV2ViVmlldyBKUyBpbmplY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNpZGlhblRyYW5zcG9ydCB7XG4gIC8qKlxuICAgKiBCZWdpbnMgY2FwdHVyaW5nIHRoZSB0YXJnZXQncyBuYXRpdmUgY29uc29sZS9lcnJvciBzdHJlYW0gc28gYSBsYXRlclxuICAgKiB7QGxpbmsgT2JzaWRpYW5UcmFuc3BvcnQucmVhZENvbnNvbGVDYXB0dXJlU2luY2V9IGNhbiByZXR1cm4gZXZlcnl0aGluZ1xuICAgKiBsb2dnZWQgc2luY2UgdGhpcyBjYWxsLlxuICAgKlxuICAgKiBVc2VkIHRvIHN1cmZhY2UgdGhlICpyZWFsKiBwbHVnaW4tbG9hZCBlcnJvciB3aGVuIE9ic2lkaWFuIHN3YWxsb3dzIGl0XG4gICAqIGJlZm9yZSB0aGUgaGFybmVzcydzIGBsb2FkUGx1Z2luYCBtb25rZXktcGF0Y2ggc2VlcyBpdCAodGhlIGVycm9yIHRoZW5cbiAgICogb25seSBleGlzdHMgaW4gdGhlIHJlbmRlcmVyL1dlYlZpZXcgY29uc29sZSkuIE9wdGlvbmFsIGFuZCBwbGF0Zm9ybS1zcGVjaWZpYzpcbiAgICogaW1wbGVtZW50ZWQgYnkge0BsaW5rIEFwcGl1bVRyYW5zcG9ydH0gKHRhaWxzIGBhZGIgbG9nY2F0YCk7IGFic2VudCBvblxuICAgKiB7QGxpbmsgRGVza3RvcENkcFRyYW5zcG9ydH0gKGRlc2t0b3AgZXJyb3JzIGFyZSBzdXJmYWNlZCBpbi1yZW5kZXJlciwgYW5kIGFcbiAgICogZGV2ZWxvcGVyIGNhbiBvcGVuIERldlRvb2xzIGRpcmVjdGx5KS5cbiAgICpcbiAgICogQHJldHVybnMgQW4gb3BhcXVlIGhhbmRsZSB0byBwYXNzIHRvIHtAbGluayBPYnNpZGlhblRyYW5zcG9ydC5yZWFkQ29uc29sZUNhcHR1cmVTaW5jZX0sIG9yIGB1bmRlZmluZWRgIHdoZW4gdW5zdXBwb3J0ZWQuXG4gICAqL1xuICBiZWdpbkNvbnNvbGVDYXB0dXJlPzogKCkgPT4gUHJvbWlzZTxDb25zb2xlQ2FwdHVyZUhhbmRsZSB8IHVuZGVmaW5lZD47XG5cbiAgLyoqXG4gICAqIENhcHR1cmVzIGEgUE5HIHNjcmVlbnNob3Qgb2YgdGhlIHJ1bm5pbmcgT2JzaWRpYW4gaW5zdGFuY2UuXG4gICAqXG4gICAqIE9wdGlvbmFsIGFuZCBwbGF0Zm9ybS1zcGVjaWZpYywgbGlrZSB0aGUgb3RoZXIgbWVtYmVycyBoZXJlLiBJbXBsZW1lbnRlZCBieVxuICAgKiB7QGxpbmsgRGVza3RvcENkcFRyYW5zcG9ydH0gKENEUCBgUGFnZS5jYXB0dXJlU2NyZWVuc2hvdGAsIG9wdGlvbmFsbHkgd2l0aFxuICAgKiB0aGUgdmlld3BvcnQgcGlubmVkIHRvIGFuIGV4YWN0IHNpemUpIGFuZCBieSB7QGxpbmsgQXBwaXVtVHJhbnNwb3J0fVxuICAgKiAoYHRha2VTY3JlZW5zaG90YCwgYWx3YXlzIHRoZSBkZXZpY2UncyBuYXRpdmUgZnJhbWVidWZmZXIgXHUyMDE0IHRoZSBzaXplIGtub2JzXG4gICAqIGFyZSBpZ25vcmVkLCBzbyBhIG1vYmlsZSBjYXB0dXJlIGlzIHNpemVkIGJ5IGNob29zaW5nIGFuIEFWRCB3aXRoIHRoZSB3YW50ZWRcbiAgICogc2NyZWVuIGdlb21ldHJ5KS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFdoaWNoIHdpbmRvdyB0byBjYXB0dXJlLCBhbmQgdGhlIGV4YWN0IHNpemUgdG8gY2FwdHVyZSBpdCBhdC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgcmF3IFBORyBieXRlcy5cbiAgICovXG4gIGNhcHR1cmVTY3JlZW5zaG90PzogKHBhcmFtczogQ2FwdHVyZVNjcmVlbnNob3RQYXJhbXMpID0+IFByb21pc2U8VWludDhBcnJheT47XG5cbiAgLyoqXG4gICAqIERpc3Bvc2VzIG9mIHRyYW5zcG9ydCByZXNvdXJjZXMgKGUuZy4gV2ViU29ja2V0IGNvbm5lY3Rpb25zLCBBcHBpdW0gc2Vzc2lvbnMpLlxuICAgKi9cbiAgZGlzcG9zZT86ICgpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFN5bmNocm9ub3VzIGRpc3Bvc2FsIGZvciB1c2UgaW4gYHByb2Nlc3Mub24oJ2V4aXQnKWAgaGFuZGxlcnMgd2hlcmVcbiAgICogYXN5bmMgd29yayBpcyBub3QgcG9zc2libGUuXG4gICAqXG4gICAqIEltcGxlbWVudGF0aW9ucyBzaG91bGQgcGVyZm9ybSBvbmx5IHN5bmNocm9ub3VzIGNsZWFudXAgaGVyZSAoZS5nLiBraWxsaW5nXG4gICAqIGNoaWxkIHByb2Nlc3NlcykuIEFzeW5jIG9wZXJhdGlvbnMgbGlrZSB1bnJlZ2lzdGVyaW5nIHZhdWx0cyBhcmUgc2tpcHBlZC5cbiAgICovXG4gIGRpc3Bvc2VTeW5jPzogKCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogRXZhbHVhdGVzIGEgSmF2YVNjcmlwdCBleHByZXNzaW9uIHN0cmluZyBpbnNpZGUgT2JzaWRpYW4gYW5kIHJldHVybnMgdGhlXG4gICAqIHJhdyBzdHJpbmcgcmVzdWx0LlxuICAgKlxuICAgKiBUaGUgdHJhbnNwb3J0IG5vcm1hbGl6ZXMgdGhlIG91dHB1dCBcdTIwMTQgc3RyaXBwaW5nIHRyYW5zcG9ydC1zcGVjaWZpYyBwcmVmaXhlc1xuICAgKiBhbmQgaGFuZGxpbmcgdHJhbnNwb3J0LXNwZWNpZmljIGVycm9ycyBcdTIwMTQgc28gY2FsbGVycyByZWNlaXZlIGEgY2xlYW4gcmVzdWx0XG4gICAqIHN0cmluZyAoZS5nLiBhIEpTT04gc3RyaW5nLCBvciBgKG5vIG91dHB1dClgKS5cbiAgICpcbiAgICogQHBhcmFtIGV4cHJlc3Npb24gLSBBIHNlbGYtY29udGFpbmVkIEphdmFTY3JpcHQgZXhwcmVzc2lvbiAodHlwaWNhbGx5IGFuIGFzeW5jIElJRkUpLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIEV2YWx1YXRpb24gb3B0aW9ucyBpbmNsdWRpbmcgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgKiBAcmV0dXJucyBUaGUgcmF3IHJlc3VsdCBzdHJpbmcgZnJvbSBPYnNpZGlhbi5cbiAgICovXG4gIGV2YWx1YXRlOiAoZXhwcmVzc2lvbjogc3RyaW5nLCBvcHRpb25zOiBUcmFuc3BvcnRFdmFsT3B0aW9ucykgPT4gUHJvbWlzZTxzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgdHJhbnNwb3J0IHRhcmdldHMgYSBtb2JpbGUgT2JzaWRpYW4gaW5zdGFuY2UuXG4gICAqXG4gICAqIFdoZW4gYHRydWVgLCBkZXNrdG9wLW9ubHkgcGx1Z2lucyAod2l0aCBgaXNEZXNrdG9wT25seTogdHJ1ZWAgaW4gbWFuaWZlc3QpXG4gICAqIHdpbGwgcmVmdXNlIHRvIHJ1biBpbnRlZ3JhdGlvbiB0ZXN0cy5cbiAgICovXG4gIGlzTW9iaWxlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSdW5zIHRyYW5zcG9ydC1zcGVjaWZpYyBwcmVmbGlnaHQgY2hlY2tzIGJlZm9yZSBldmFsdWF0aW9uLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgdGhlIENMSSB0cmFuc3BvcnQgdmVyaWZpZXMgdGhhdCB0aGUgdmF1bHQgaXMgcmVnaXN0ZXJlZCxcbiAgICogdGhlIENMSSBpcyBlbmFibGVkLCBhbmQgdGhlIENMSSBiaW5hcnkgaXMgaW4gUEFUSC5cbiAgICpcbiAgICogQHBhcmFtIHZhdWx0UGF0aCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICBwcmVmbGlnaHRDaGVjazogKHZhdWx0UGF0aDogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBQdXNoZXMgZmlsZXMgaW50byBhIHZhdWx0IGRpcmVjdG9yeSBvbiB0aGUgdGFyZ2V0IGRldmljZS5cbiAgICpcbiAgICogT24gZGVza3RvcCB0aGlzIGlzIGEgbm8tb3AgKGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSBsb2NhbCBmaWxlc3lzdGVtIGRpcmVjdGx5KS5cbiAgICogT24gbW9iaWxlIHRoaXMgdXNlcyB0aGUgZGV2aWNlJ3MgZmlsZSB0cmFuc2ZlciBtZWNoYW5pc20gKGUuZy4gQXBwaXVtIGBwdXNoRmlsZWApLlxuICAgKlxuICAgKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlci5cbiAgICogQHBhcmFtIGZpbGVzIC0gTWFwIG9mIHJlbGF0aXZlIGZpbGUgcGF0aHMgdG8gY29udGVudCBidWZmZXJzLlxuICAgKi9cbiAgcHVzaEZpbGVzPzogKHZhdWx0UGF0aDogc3RyaW5nLCBmaWxlczogUmVjb3JkPHN0cmluZywgVWludDhBcnJheT4pID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFJlYWRzIHRoZSBuYXRpdmUgY29uc29sZS9lcnJvciBvdXRwdXQgY2FwdHVyZWQgc2luY2UgdGhlIG1hdGNoaW5nXG4gICAqIHtAbGluayBPYnNpZGlhblRyYW5zcG9ydC5iZWdpbkNvbnNvbGVDYXB0dXJlfSBjYWxsLlxuICAgKlxuICAgKiBBIGJvdW5kZWQsIHBvc3QtaG9jLCBmYWlsdXJlLXBhdGgtb25seSBkdW1wIFx1MjAxNCBub3QgYSBsaXZlIG1vbml0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBoYW5kbGUgLSBUaGUgaGFuZGxlIHJldHVybmVkIGJ5IHtAbGluayBPYnNpZGlhblRyYW5zcG9ydC5iZWdpbkNvbnNvbGVDYXB0dXJlfSAob3IgYHVuZGVmaW5lZGAgd2hlbiBjYXB0dXJlIHdhcyB1bnN1cHBvcnRlZCkuXG4gICAqIEByZXR1cm5zIFRoZSBjYXB0dXJlZCBjb25zb2xlL2Vycm9yIHRleHQsIG9yIGB1bmRlZmluZWRgIHdoZW4gdW5zdXBwb3J0ZWQgb3Igbm90aGluZyByZWxldmFudCB3YXMgbG9nZ2VkLlxuICAgKi9cbiAgcmVhZENvbnNvbGVDYXB0dXJlU2luY2U/OiAoaGFuZGxlOiBDb25zb2xlQ2FwdHVyZUhhbmRsZSB8IHVuZGVmaW5lZCkgPT4gUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+O1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSB2YXVsdCBwYXRoIHNvIE9ic2lkaWFuIGNhbiB0YXJnZXQgaXQuXG4gICAqXG4gICAqIE9uIGRlc2t0b3A6IHVzZXMgRWxlY3Ryb24gSVBDIHRvIG9wZW4gdGhlIHZhdWx0IGFuZCBwb2xscyBmb3IgcmVhZGluZXNzLlxuICAgKiBPbiBtb2JpbGU6IHB1c2hlcyBvbmx5IGEgbWluaW1hbCBgLm9ic2lkaWFuYCBtYXJrZXIgc28gdGhlIGZvbGRlciBpcyByZWNvZ25pemVkIGFzIGEgdmF1bHQsXG4gICAqIHBvaW50cyB0aGUgYXBwJ3MgYGxvY2FsU3RvcmFnZWAgYXQgaXQsIGFuZCByZWxvYWRzLlxuICAgKlxuICAgKiBJdCBkb2VzICoqbm90KiogY2FycnkgdGhlIHZhdWx0J3MgY29udGVudHMgYWNyb3NzIG9uIGVpdGhlciBwbGF0Zm9ybSBcdTIwMTQgdGhhdCBpc1xuICAgKiB7QGxpbmsgT2JzaWRpYW5UcmFuc3BvcnQucHVzaEZpbGVzfScgam9iLCB3aGljaCBgVGVtcG9yYXJ5VmF1bHQucmVnaXN0ZXJgIHJ1bnMgZmlyc3QuIEEgY2FsbGVyXG4gICAqIGRyaXZpbmcgYSB0cmFuc3BvcnQgZGlyZWN0bHkgaGFzIHRvIHB1c2ggYmVmb3JlIHJlZ2lzdGVyaW5nLCBvciB0aGUgYXBwIG9wZW5zIGFuIGVtcHR5IHZhdWx0XG4gICAqIHdpdGggbm90aGluZyByYWlzZWQgdG8gc2F5IHNvLlxuICAgKlxuICAgKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlci5cbiAgICovXG4gIHJlZ2lzdGVyVmF1bHQ6ICh2YXVsdFBhdGg6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgYSB2YXVsdCBwYXRoIGZyb20gdGhlIHJ1bm5pbmcgT2JzaWRpYW4gaW5zdGFuY2UuXG4gICAqXG4gICAqIE9uIGRlc2t0b3A6IGNsb3NlcyB0aGUgdmF1bHQgd2luZG93IGFuZCByZW1vdmVzIGl0IGZyb20gdGhlIHJlZ2lzdHJ5LlxuICAgKiBPbiBtb2JpbGU6IHJlbW92ZXMgdmF1bHQgZmlsZXMgZnJvbSB0aGUgZGV2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlci5cbiAgICovXG4gIHVucmVnaXN0ZXJWYXVsdDogKHZhdWx0UGF0aDogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBPYnNpZGlhblRyYW5zcG9ydC5ldmFsdWF0ZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNwb3J0RXZhbE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHdvcmtpbmcgZGlyZWN0b3J5ICh2YXVsdCBwYXRoKSBmb3IgdGhlIGV2YWx1YXRpb24uXG4gICAqL1xuICByZWFkb25seSBjd2Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGltZW91dCBpbiBtaWxsaXNlY29uZHMgZm9yIHRoZSBldmFsdWF0aW9uIGNvbW1hbmQuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -40,7 +40,7 @@ export interface ObsidianTransport {
|
|
|
40
40
|
*
|
|
41
41
|
* @returns An opaque handle to pass to {@link ObsidianTransport.readConsoleCaptureSince}, or `undefined` when unsupported.
|
|
42
42
|
*/
|
|
43
|
-
beginConsoleCapture
|
|
43
|
+
beginConsoleCapture?: () => Promise<ConsoleCaptureHandle | undefined>;
|
|
44
44
|
/**
|
|
45
45
|
* Captures a PNG screenshot of the running Obsidian instance.
|
|
46
46
|
*
|
|
@@ -54,11 +54,11 @@ export interface ObsidianTransport {
|
|
|
54
54
|
* @param params - Which window to capture, and the exact size to capture it at.
|
|
55
55
|
* @returns A {@link Promise} that resolves to the raw PNG bytes.
|
|
56
56
|
*/
|
|
57
|
-
captureScreenshot
|
|
57
|
+
captureScreenshot?: (params: CaptureScreenshotParams) => Promise<Uint8Array>;
|
|
58
58
|
/**
|
|
59
59
|
* Disposes of transport resources (e.g. WebSocket connections, Appium sessions).
|
|
60
60
|
*/
|
|
61
|
-
dispose
|
|
61
|
+
dispose?: () => Promise<void>;
|
|
62
62
|
/**
|
|
63
63
|
* Synchronous disposal for use in `process.on('exit')` handlers where
|
|
64
64
|
* async work is not possible.
|
|
@@ -66,7 +66,7 @@ export interface ObsidianTransport {
|
|
|
66
66
|
* Implementations should perform only synchronous cleanup here (e.g. killing
|
|
67
67
|
* child processes). Async operations like unregistering vaults are skipped.
|
|
68
68
|
*/
|
|
69
|
-
disposeSync
|
|
69
|
+
disposeSync?: () => void;
|
|
70
70
|
/**
|
|
71
71
|
* Evaluates a JavaScript expression string inside Obsidian and returns the
|
|
72
72
|
* raw string result.
|
|
@@ -79,7 +79,7 @@ export interface ObsidianTransport {
|
|
|
79
79
|
* @param options - Evaluation options including the working directory.
|
|
80
80
|
* @returns The raw result string from Obsidian.
|
|
81
81
|
*/
|
|
82
|
-
evaluate(expression: string, options: TransportEvalOptions)
|
|
82
|
+
evaluate: (expression: string, options: TransportEvalOptions) => Promise<string>;
|
|
83
83
|
/**
|
|
84
84
|
* Whether this transport targets a mobile Obsidian instance.
|
|
85
85
|
*
|
|
@@ -95,7 +95,7 @@ export interface ObsidianTransport {
|
|
|
95
95
|
*
|
|
96
96
|
* @param vaultPath - The absolute path to the vault folder.
|
|
97
97
|
*/
|
|
98
|
-
preflightCheck(vaultPath: string)
|
|
98
|
+
preflightCheck: (vaultPath: string) => Promise<void>;
|
|
99
99
|
/**
|
|
100
100
|
* Pushes files into a vault directory on the target device.
|
|
101
101
|
*
|
|
@@ -105,7 +105,7 @@ export interface ObsidianTransport {
|
|
|
105
105
|
* @param vaultPath - The absolute path to the vault folder.
|
|
106
106
|
* @param files - Map of relative file paths to content buffers.
|
|
107
107
|
*/
|
|
108
|
-
pushFiles
|
|
108
|
+
pushFiles?: (vaultPath: string, files: Record<string, Uint8Array>) => Promise<void>;
|
|
109
109
|
/**
|
|
110
110
|
* Reads the native console/error output captured since the matching
|
|
111
111
|
* {@link ObsidianTransport.beginConsoleCapture} call.
|
|
@@ -115,7 +115,7 @@ export interface ObsidianTransport {
|
|
|
115
115
|
* @param handle - The handle returned by {@link ObsidianTransport.beginConsoleCapture} (or `undefined` when capture was unsupported).
|
|
116
116
|
* @returns The captured console/error text, or `undefined` when unsupported or nothing relevant was logged.
|
|
117
117
|
*/
|
|
118
|
-
readConsoleCaptureSince
|
|
118
|
+
readConsoleCaptureSince?: (handle: ConsoleCaptureHandle | undefined) => Promise<string | undefined>;
|
|
119
119
|
/**
|
|
120
120
|
* Registers a vault path so Obsidian can target it.
|
|
121
121
|
*
|
|
@@ -130,7 +130,7 @@ export interface ObsidianTransport {
|
|
|
130
130
|
*
|
|
131
131
|
* @param vaultPath - The absolute path to the vault folder.
|
|
132
132
|
*/
|
|
133
|
-
registerVault(vaultPath: string)
|
|
133
|
+
registerVault: (vaultPath: string) => Promise<void>;
|
|
134
134
|
/**
|
|
135
135
|
* Unregisters a vault path from the running Obsidian instance.
|
|
136
136
|
*
|
|
@@ -139,7 +139,7 @@ export interface ObsidianTransport {
|
|
|
139
139
|
*
|
|
140
140
|
* @param vaultPath - The absolute path to the vault folder.
|
|
141
141
|
*/
|
|
142
|
-
unregisterVault(vaultPath: string)
|
|
142
|
+
unregisterVault: (vaultPath: string) => Promise<void>;
|
|
143
143
|
}
|
|
144
144
|
/**
|
|
145
145
|
* Options for {@link ObsidianTransport.evaluate}.
|
|
@@ -172,4 +172,4 @@ function toReason(error) {
|
|
|
172
172
|
resolveVersionSpecs,
|
|
173
173
|
runVersionMatrixEntries
|
|
174
174
|
});
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZlcnNpb24tbWF0cml4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSBkZWNpc2lvbiBsYXllciBmb3IgcnVubmluZyBhIHN1aXRlIGFnYWluc3QgKipldmVyeSoqIHN1cHBvcnRlZCBPYnNpZGlhblxuICogdmVyc2lvbi5cbiAqXG4gKiBTdXBwb3J0IGlzIHRoZSByYW5nZSBgW2xhdGVzdCBwdWJsaWMsIGxhdGVzdCBjYXRhbHlzdF1gIGFuZCBib3RoIGVuZHMgbXVzdCBiZVxuICogdmVyaWZpZWQuIFRoZSB0d28gZW5kcyBhcmUgbW92aW5nIHRhcmdldHMsIGFuZCB0aGV5IHBlcmlvZGljYWxseVxuICogKipjb2luY2lkZSoqIFx1MjAxNCB3aGVuIHB1YmxpYyBjYXRjaGVzIHVwIHRvIGNhdGFseXN0LCBib3RoIHNwZWNpZmllcnMgcHJvdmlzaW9uXG4gKiB0aGUgc2FtZSBidWlsZCwgc28gcnVubmluZyB0aGUgc3VpdGVzIHR3aWNlIHJlLXJ1bnMgdGhlIHNhbWUgYnVpbGQgYW5kIGJ1eXNcbiAqIG5vdGhpbmcuIFdvcnNlLCBhIGNvbnN1bWVyIHRoYXQgcmFuIGJvdGggc3RpbGwgcmVwb3J0cyBcImdyZWVuIG9uIHB1YmxpYyBBTkRcbiAqIGNhdGFseXN0XCIsIGEgdHdvLWVuZCBjbGFpbSBpdCBuZXZlciB2ZXJpZmllZC5cbiAqXG4gKiBUaGUgZGVjaXNpb24gdGhlcmVmb3JlIGxpdmVzIGhlcmUgcmF0aGVyIHRoYW4gaW4gZXZlcnkgY29uc3VtaW5nIHJlcG86IGEgbGlzdFxuICogb2YgdmVyc2lvbiBzcGVjaWZpZXJzIGlzIHJlc29sdmVkIHRvIGNvbmNyZXRlIHZlcnNpb25zLCAqKmRlLWR1cGxpY2F0ZWQgb24gdGhlXG4gKiByZXNvbHZlZCB2ZXJzaW9uKiogKG5ldmVyIG9uIHRoZSBzcGVjaWZpZXIgc3RyaW5nLCBzbyBhbiBleHBsaWNpdCBgMS4xMy40YCBhbmRcbiAqIGBjYXRhbHlzdC1sYXRlc3RgIGNvbGxhcHNlIHdoZW4gY2F0YWx5c3QgKmlzKiAxLjEzLjQpLCBhbmQgdGhlIHN1aXRlcyBydW4gb25jZVxuICogcGVyIGRpc3RpbmN0IHZlcnNpb24uXG4gKlxuICogRXZlcnl0aGluZyBoZXJlIGlzIHB1cmUgYW5kIHVuaXQtdGVzdGVkOyB0aGUgbWFuaWZlc3QgZmV0Y2ggYW5kIHRoZSBsb2dnaW5nXG4gKiBsaXZlIGluIHRoZSBpbnRlZ3JhdGlvbi10aW1lIGBydW4tdmVyc2lvbi1tYXRyaXgudHNgIGdsdWUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBEZXNrdG9wUmVsZWFzZXNNYW5pZmVzdCB9IGZyb20gJy4vb2JzaWRpYW4tdmVyc2lvbi5janMnO1xuXG5pbXBvcnQge1xuICBDQVRBTFlTVF9MQVRFU1QsXG4gIHBhcnNlVmVyc2lvblNwZWMsXG4gIFBVQkxJQ19MQVRFU1QsXG4gIHJlc29sdmVWZXJzaW9uRnJvbU1hbmlmZXN0XG59IGZyb20gJy4vb2JzaWRpYW4tdmVyc2lvbi5janMnO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIHNwZWNpZmllcnMgYSBtYXRyaXggcnVuIGRlZmF1bHRzIHRvOiBib3RoIGVuZHMgb2YgdGhlIHN1cHBvcnRlZFxuICogcmFuZ2UuIFRoZXkgYXJlIGRlLWR1cGxpY2F0ZWQgb24gdGhlaXIgcmVzb2x2ZWQgdmVyc2lvbnMsIHNvIHdoZW4gcHVibGljXG4gKiBoYXMgY2F1Z2h0IHVwIHRvIGNhdGFseXN0IHRoaXMgeWllbGRzIGEgc2luZ2xlIHJ1bi5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfT0JTSURJQU5fVkVSU0lPTl9TUEVDUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbUFVCTElDX0xBVEVTVCwgQ0FUQUxZU1RfTEFURVNUXTtcblxuLyoqXG4gKiBBIHJlcXVlc3RlZCBzcGVjaWZpZXIgdGhhdCBjb3VsZCBub3QgYmUgcmVzb2x2ZWQgYW5kIHdhcyBkcm9wcGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERyb3BwZWRWZXJzaW9uU3BlYyB7XG4gIC8qKlxuICBXaHkgdGhlIHNwZWNpZmllciBjb3VsZCBub3QgYmUgcmVzb2x2ZWQuXG4gICAqL1xuICByZWFkb25seSByZWFzb246IHN0cmluZztcblxuICAvKipcbiAgVGhlIHNwZWNpZmllciBhcyByZXF1ZXN0ZWQuXG4gICAqL1xuICByZWFkb25seSBzcGVjOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZvcm1hdFZlcnNpb25NYXRyaXhQbGFufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRWZXJzaW9uTWF0cml4UGxhblBhcmFtcyB7XG4gIC8qKlxuICBUaGUgZGUtZHVwbGljYXRlZCBtYXRyaXggdGhhdCB3aWxsIGJlIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJpZXM6IHJlYWRvbmx5IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5W107XG5cbiAgLyoqXG4gIFRoZSBzcGVjaWZpZXJzIHRoYXQgcmVzb2x2ZWQsIGluIHJlcXVlc3RlZCBvcmRlci5cbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVkU3BlY3M6IHJlYWRvbmx5IFJlc29sdmVkVmVyc2lvblNwZWNbXTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZm9ybWF0VmVyc2lvbk1hdHJpeFJ1bkhlYWRlcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0VmVyc2lvbk1hdHJpeFJ1bkhlYWRlclBhcmFtcyB7XG4gIC8qKlxuICBUaGUgZW50cnkgYWJvdXQgdG8gcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnk6IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5O1xuXG4gIC8qKlxuICBUaGUgZW50cnkncyB6ZXJvLWJhc2VkIHBvc2l0aW9uIGluIHRoZSBtYXRyaXguXG4gICAqL1xuICByZWFkb25seSBpbmRleDogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgdG90YWwgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIG1hdHJpeC5cbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsOiBudW1iZXI7XG59XG5cbi8qKlxuICogT25lIGRpc3RpbmN0IE9ic2lkaWFuIHZlcnNpb24gdGhlIHN1aXRlcyB3aWxsIHJ1biBhZ2FpbnN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5IHtcbiAgLyoqXG4gICAqIEV2ZXJ5IHJlcXVlc3RlZCBzcGVjaWZpZXIgdGhhdCByZXNvbHZlZCB0byB7QGxpbmsgdmVyc2lvbn0sIGluIHJlcXVlc3RlZFxuICAgKiBvcmRlci4gTW9yZSB0aGFuIG9uZSBtZWFucyB0aGUgc3BlY2lmaWVycyBjb2luY2lkZWQgYW5kIHdlcmUgY29sbGFwc2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BlY3M6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcmVxdWVzdGVkIHNwZWNpZmllciBwYWlyZWQgd2l0aCB0aGUgY29uY3JldGUgdmVyc2lvbiBpdCByZXNvbHZlZCB0by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFZlcnNpb25TcGVjIHtcbiAgLyoqXG4gIFRoZSBzcGVjaWZpZXIgYXMgcmVxdWVzdGVkIChhbiBgeC55LnpgIHZlcnNpb24gb3IgYSBjaGFubmVsIGFsaWFzKS5cbiAgICovXG4gIHJlYWRvbmx5IHNwZWM6IHN0cmluZztcblxuICAvKipcbiAgVGhlIGNvbmNyZXRlIGB4LnkuemAgdmVyc2lvbiBpdCByZXNvbHZlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgb3V0Y29tZSBvZiB7QGxpbmsgcmVzb2x2ZVJlcXVlc3RlZFNwZWNzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlUmVxdWVzdGVkU3BlY3NSZXN1bHQge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgc3BlY2lmaWVycyBjYW1lIGZyb20ge0BsaW5rIERFRkFVTFRfT0JTSURJQU5fVkVSU0lPTl9TUEVDU31cbiAgICogcmF0aGVyIHRoYW4gYmVpbmcgZXhwbGljaXRseSByZXF1ZXN0ZWQuXG4gICAqL1xuICByZWFkb25seSBpc0RlZmF1bHQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gIFRoZSBzcGVjaWZpZXJzIHRvIHJlc29sdmUsIGluIG9yZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BlY3M6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZXNvbHZlVmVyc2lvblNwZWNzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlVmVyc2lvblNwZWNzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBkZXNrdG9wIHJlbGVhc2VzIG1hbmlmZXN0LCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIHJlcXVlc3RlZCBzcGVjaWZpZXIgaXNcbiAgICogYSBjaGFubmVsIGFsaWFzIChzbyBubyBmZXRjaCB3YXMgbmVlZGVkKS5cbiAgICovXG4gIHJlYWRvbmx5IG1hbmlmZXN0OiBEZXNrdG9wUmVsZWFzZXNNYW5pZmVzdCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciBhIHNwZWNpZmllciB0aGF0IGNhbm5vdCBiZSByZXNvbHZlZCBpcyBkcm9wcGVkIHdpdGggYSByZWNvcmRlZFxuICAgKiByZWFzb24gaW5zdGVhZCBvZiB0aHJvd2luZy4gU2V0IGZvciB0aGUgKipkZWZhdWx0Kiogc3BlY2lmaWVyIGxpc3Qgb25seTogYVxuICAgKiBtYW5pZmVzdCB0aGF0IHNoaXBzIG5vIGNhdGFseXN0IGVudHJ5IG11c3Qgbm90IGJyZWFrIGV2ZXJ5IGNvbnN1bWVyJ3MgZ2F0ZSxcbiAgICogd2hlcmVhcyBhbiBleHBsaWNpdGx5IHJlcXVlc3RlZCBzcGVjaWZpZXIgdGhhdCBjYW5ub3QgcmVzb2x2ZSBpcyBhIHJlYWxcbiAgICogZXJyb3IuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRUb2xlcmF0ZVVucmVzb2x2YWJsZVNwZWNzOiBib29sZWFuO1xuXG4gIC8qKlxuICBUaGUgcmVxdWVzdGVkIHNwZWNpZmllcnMsIGluIG9yZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BlY3M6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRoZSBvdXRjb21lIG9mIHtAbGluayByZXNvbHZlVmVyc2lvblNwZWNzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlVmVyc2lvblNwZWNzUmVzdWx0IHtcbiAgLyoqXG4gIFNwZWNpZmllcnMgZHJvcHBlZCBiZWNhdXNlIHRoZXkgY291bGQgbm90IGJlIHJlc29sdmVkICh0b2xlcmFudCBtb2RlIG9ubHkpLlxuICAgKi9cbiAgcmVhZG9ubHkgZHJvcHBlZFNwZWNzOiByZWFkb25seSBEcm9wcGVkVmVyc2lvblNwZWNbXTtcblxuICAvKipcbiAgVGhlIHNwZWNpZmllcnMgdGhhdCByZXNvbHZlZCwgaW4gcmVxdWVzdGVkIG9yZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb2x2ZWRTcGVjczogcmVhZG9ubHkgUmVzb2x2ZWRWZXJzaW9uU3BlY1tdO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBydW5WZXJzaW9uTWF0cml4RW50cmllc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuVmVyc2lvbk1hdHJpeEVudHJpZXNQYXJhbXMge1xuICAvKipcbiAgVGhlIGRlLWR1cGxpY2F0ZWQgbWF0cml4IHRvIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJpZXM6IHJlYWRvbmx5IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5W107XG5cbiAgLyoqXG4gIENhbGxlZCBqdXN0IGJlZm9yZSBlYWNoIGVudHJ5IHJ1bnMsIGZvciBwcm9ncmVzcyByZXBvcnRpbmcuXG4gICAqL1xuICBvbkVudHJ5U3RhcnQodGhpczogdm9pZCwgcGFyYW1zOiBGb3JtYXRWZXJzaW9uTWF0cml4UnVuSGVhZGVyUGFyYW1zKTogdm9pZDtcblxuICAvKipcbiAgUnVucyB0aGUgc3VpdGVzIGFnYWluc3QgYSBzaW5nbGUgZW50cnksIHRocm93aW5nIG9uIGZhaWx1cmUuXG4gICAqL1xuICBydW4odGhpczogdm9pZCwgZW50cnk6IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5KTogUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG59XG5cbi8qKlxuICogQ29sbGFwc2VzIHJlc29sdmVkIHNwZWNpZmllcnMgaW50byBvbmUgZW50cnkgcGVyICoqZGlzdGluY3QgcmVzb2x2ZWQgdmVyc2lvbioqLlxuICpcbiAqIERlLWR1cGxpY2F0aW9uIGlzIGtleWVkIG9uIHRoZSByZXNvbHZlZCB2ZXJzaW9uLCBub3QgdGhlIHNwZWNpZmllciBzdHJpbmcsIHNvXG4gKiBzcGVjaWZpZXJzIHRoYXQgbmFtZSB0aGUgc2FtZSBidWlsZCBjb2xsYXBzZSBob3dldmVyIHRoZXkgd2VyZSB3cml0dGVuLlxuICogRmlyc3Qtc2VlbiBvcmRlciBpcyBwcmVzZXJ2ZWQsIGFuZCBldmVyeSBzcGVjaWZpZXIgdGhhdCBsYW5kZWQgb24gYSB2ZXJzaW9uIGlzXG4gKiByZWNvcmRlZCBvbiBpdHMgZW50cnkuXG4gKlxuICogQHBhcmFtIHJlc29sdmVkU3BlY3MgLSBUaGUgcmVzb2x2ZWQgc3BlY2lmaWVycywgaW4gcmVxdWVzdGVkIG9yZGVyLlxuICogQHJldHVybnMgT25lIGVudHJ5IHBlciBkaXN0aW5jdCB2ZXJzaW9uLCBpbiBmaXJzdC1zZWVuIG9yZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRWZXJzaW9uTWF0cml4KHJlc29sdmVkU3BlY3M6IHJlYWRvbmx5IFJlc29sdmVkVmVyc2lvblNwZWNbXSk6IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5W10ge1xuICBjb25zdCBzcGVjc0J5VmVyc2lvbiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcblxuICBmb3IgKGNvbnN0IHsgc3BlYywgdmVyc2lvbiB9IG9mIHJlc29sdmVkU3BlY3MpIHtcbiAgICBjb25zdCBzcGVjcyA9IHNwZWNzQnlWZXJzaW9uLmdldCh2ZXJzaW9uKTtcbiAgICBpZiAoIXNwZWNzKSB7XG4gICAgICBzcGVjc0J5VmVyc2lvbi5zZXQodmVyc2lvbiwgW3NwZWNdKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoIXNwZWNzLmluY2x1ZGVzKHNwZWMpKSB7XG4gICAgICBzcGVjcy5wdXNoKHNwZWMpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBbLi4uc3BlY3NCeVZlcnNpb25dLm1hcCgoW3ZlcnNpb24sIHNwZWNzXSkgPT4gKHsgc3BlY3MsIHZlcnNpb24gfSkpO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgYW4gZW50cnkgZm9yIGxvZ3MgYW5kIGVycm9yIG1lc3NhZ2VzLlxuICpcbiAqIFNwZWNpZmllcnMgdGhhdCBtZXJlbHkgcmVwZWF0IHRoZSB2ZXJzaW9uIGFkZCBub3RoaW5nLCBzbyBhbiBleHBsaWNpdC1vbmx5XG4gKiBlbnRyeSBmb3JtYXRzIGFzIHRoZSBiYXJlIHZlcnNpb24gcmF0aGVyIHRoYW4gYDEuMTMuNCAoMS4xMy40KWAuXG4gKlxuICogQHBhcmFtIGVudHJ5IC0gVGhlIGVudHJ5IHRvIGZvcm1hdC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIGxpa2UgYDEuMTMuNCAocHVibGljLWxhdGVzdCwgY2F0YWx5c3QtbGF0ZXN0KWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRWZXJzaW9uTWF0cml4RW50cnkoZW50cnk6IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5KTogc3RyaW5nIHtcbiAgY29uc3QgeyBzcGVjcywgdmVyc2lvbiB9ID0gZW50cnk7XG4gIGNvbnN0IGFsaWFzU3BlY3MgPSBzcGVjcy5maWx0ZXIoKHNwZWMpID0+IHNwZWMgIT09IHZlcnNpb24pO1xuICBpZiAoYWxpYXNTcGVjcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdmVyc2lvbjtcbiAgfVxuICByZXR1cm4gYCR7dmVyc2lvbn0gKCR7YWxpYXNTcGVjcy5qb2luKCcsICcpfSlgO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgbGluZXMgYW5ub3VuY2luZyB3aGF0IHRoZSBtYXRyaXggcmVzb2x2ZWQgdG8gYW5kIGhvdyBtYW55IHJ1bnMgaXRcbiAqIHdpbGwgdGFrZS5cbiAqXG4gKiBUaGUgY29sbGFwc2UgbXVzdCBiZSAqKnN0YXRlZCoqLCBuZXZlciBpbmZlcnJlZDogYSByZWFkZXIgd2hvIHNlZXMgb25lIHJ1blxuICogd2hlcmUgdGhleSBleHBlY3RlZCB0d28gaGFzIHRvIGJlIHRvbGQgdGhlIHNlY29uZCBlbmQgd2FzIGFscmVhZHkgY292ZXJlZCxcbiAqIG5vdCBsZWZ0IHdvbmRlcmluZyB3aGV0aGVyIGl0IHdhcyBza2lwcGVkIGJ5IGFjY2lkZW50LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbWF0cml4IGFuZCB0aGUgc3BlY2lmaWVycyBpdCB3YXMgYnVpbHQgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBsaW5lcyB0byBsb2csIGluIG9yZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VmVyc2lvbk1hdHJpeFBsYW4ocGFyYW1zOiBGb3JtYXRWZXJzaW9uTWF0cml4UGxhblBhcmFtcyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgeyBlbnRyaWVzLCByZXNvbHZlZFNwZWNzIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgbGluZXMgPSByZXNvbHZlZFNwZWNzXG4gICAgLmZpbHRlcigoeyBzcGVjLCB2ZXJzaW9uIH0pID0+IHNwZWMgIT09IHZlcnNpb24pXG4gICAgLm1hcCgoeyBzcGVjLCB2ZXJzaW9uIH0pID0+IGAke3NwZWN9IC0+ICR7dmVyc2lvbn1gKTtcblxuICBjb25zdCBzcGVjaWZpZXJDb3VudCA9IHJlc29sdmVkU3BlY3MubGVuZ3RoO1xuICBjb25zdCB2ZXJzaW9uQ291bnQgPSBlbnRyaWVzLmxlbmd0aDtcbiAgY29uc3QgZm9ybWF0dGVkRW50cmllcyA9IGVudHJpZXMubWFwKChlbnRyeSkgPT4gZm9ybWF0VmVyc2lvbk1hdHJpeEVudHJ5KGVudHJ5KSkuam9pbignLCAnKTtcblxuICBsaW5lcy5wdXNoKFxuICAgIGAke1N0cmluZyhzcGVjaWZpZXJDb3VudCl9IHJlcXVlc3RlZCAke3BsdXJhbGl6ZShzcGVjaWZpZXJDb3VudCwgJ3NwZWNpZmllcicpfSBgXG4gICAgICArIGAke3Jlc29sdmVWZXJiKHNwZWNpZmllckNvdW50KX0gdG8gJHtTdHJpbmcodmVyc2lvbkNvdW50KX0gZGlzdGluY3QgJHtwbHVyYWxpemUodmVyc2lvbkNvdW50LCAndmVyc2lvbicpfTogYFxuICAgICAgKyBgJHtmb3JtYXR0ZWRFbnRyaWVzfS4gUnVubmluZyB0aGUgc3VpdGVzICR7Zm9ybWF0UnVuQ291bnQodmVyc2lvbkNvdW50KX0uYFxuICApO1xuXG4gIHJldHVybiBsaW5lcztcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHByb2dyZXNzIGxpbmUgYW5ub3VuY2luZyBhIHNpbmdsZSBlbnRyeSdzIHJ1bi5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGVudHJ5IGFuZCBpdHMgcG9zaXRpb24gaW4gdGhlIG1hdHJpeC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIGxpa2UgYFJ1biAxIG9mIDI6IDEuMTIuNyAocHVibGljLWxhdGVzdClgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VmVyc2lvbk1hdHJpeFJ1bkhlYWRlcihwYXJhbXM6IEZvcm1hdFZlcnNpb25NYXRyaXhSdW5IZWFkZXJQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7IGVudHJ5LCBpbmRleCwgdG90YWwgfSA9IHBhcmFtcztcbiAgcmV0dXJuIGBSdW4gJHtTdHJpbmcoaW5kZXggKyAxKX0gb2YgJHtTdHJpbmcodG90YWwpfTogJHtmb3JtYXRWZXJzaW9uTWF0cml4RW50cnkoZW50cnkpfWA7XG59XG5cbi8qKlxuICogUmVwb3J0cyB3aGV0aGVyIGFueSBzcGVjaWZpZXIgaXMgYSBjaGFubmVsIGFsaWFzLCBpLmUuIHdoZXRoZXIgdGhlIHJlbGVhc2VzXG4gKiBtYW5pZmVzdCBoYXMgdG8gYmUgZmV0Y2hlZCBhdCBhbGwuXG4gKlxuICogQHBhcmFtIHNwZWNzIC0gVGhlIHJlcXVlc3RlZCBzcGVjaWZpZXJzLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gYXQgbGVhc3Qgb25lIHNwZWNpZmllciByZXNvbHZlcyBhZ2FpbnN0IHRoZSBtYW5pZmVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0NoYW5uZWxTcGVjKHNwZWNzOiByZWFkb25seSBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gc3BlY3Muc29tZSgoc3BlYykgPT4gc3BlYyA9PT0gUFVCTElDX0xBVEVTVCB8fCBzcGVjID09PSBDQVRBTFlTVF9MQVRFU1QpO1xufVxuXG4vKipcbiAqIFNwbGl0cyBhIGNvbW1hLXNlcGFyYXRlZCBzcGVjaWZpZXIgbGlzdCwgc28gYSBjb25zdW1lciBjYW4gaGFuZCBhbiBlbnYgdmFyXG4gKiAoYE9CU0lESUFOX1ZFUlNJT049MS4xMi43LGNhdGFseXN0LWxhdGVzdGApIHN0cmFpZ2h0IHRocm91Z2guXG4gKlxuICogQHBhcmFtIHJhdyAtIFRoZSByYXcgY29tbWEtc2VwYXJhdGVkIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSB0cmltbWVkLCBub24tZW1wdHkgc3BlY2lmaWVycywgaW4gb3JkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVZlcnNpb25TcGVjTGlzdChyYXc6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIHJhdy5zcGxpdCgnLCcpLm1hcCgoc3BlYykgPT4gc3BlYy50cmltKCkpLmZpbHRlcigoc3BlYykgPT4gc3BlYyAhPT0gJycpO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIHJlcXVlc3RlZCB2ZXJzaW9uIHNwZWNpZmllcnMsIGZhbGxpbmcgYmFjayB0byB0aGUgZGVmYXVsdFxuICogYm90aC1lbmRzIGxpc3Qgd2hlbiBub25lIHdlcmUgZ2l2ZW4uXG4gKlxuICogQW4gZW1wdHkgc3RyaW5nIGlzIHRyZWF0ZWQgYXMgYWJzZW50LCBzbyBhIGNvbnN1bWVyIGNhbiBwYXNzIGFuIHVuc2V0XG4gKiBgcHJvY2Vzcy5lbnZbJ09CU0lESUFOX1ZFUlNJT04nXWAgd2l0aG91dCBndWFyZGluZyBpdC5cbiAqXG4gKiBAcGFyYW0gdmVyc2lvbnMgLSBBbiBhcnJheSBvZiBzcGVjaWZpZXJzLCBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcsIG9yIGB1bmRlZmluZWRgLlxuICogQHJldHVybnMgVGhlIHNwZWNpZmllcnMgdG8gcmVzb2x2ZSwgYW5kIHdoZXRoZXIgdGhleSBjYW1lIGZyb20gdGhlIGRlZmF1bHQgbGlzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVSZXF1ZXN0ZWRTcGVjcyh2ZXJzaW9uczogcmVhZG9ubHkgc3RyaW5nW10gfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBSZXNvbHZlUmVxdWVzdGVkU3BlY3NSZXN1bHQge1xuICBjb25zdCBzcGVjcyA9IHR5cGVvZiB2ZXJzaW9ucyA9PT0gJ3N0cmluZycgPyBwYXJzZVZlcnNpb25TcGVjTGlzdCh2ZXJzaW9ucykgOiBbLi4udmVyc2lvbnMgPz8gW11dO1xuICBpZiAoc3BlY3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHsgaXNEZWZhdWx0OiB0cnVlLCBzcGVjczogWy4uLkRFRkFVTFRfT0JTSURJQU5fVkVSU0lPTl9TUEVDU10gfTtcbiAgfVxuICByZXR1cm4geyBpc0RlZmF1bHQ6IGZhbHNlLCBzcGVjcyB9O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGVhY2ggcmVxdWVzdGVkIHNwZWNpZmllciB0byBhIGNvbmNyZXRlIHZlcnNpb24gYWdhaW5zdCBhXG4gKiBzaW5nbGUgbWFuaWZlc3QuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBzcGVjaWZpZXJzLCB0aGUgbWFuaWZlc3QsIGFuZCB0aGUgdG9sZXJhbmNlIG1vZGUuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgc3BlY2lmaWVycyBhbmQgYW55IHRoYXQgd2VyZSBkcm9wcGVkLlxuICogQHRocm93cyBFcnJvciBpZiBhIHNwZWNpZmllciBjYW5ub3QgYmUgcmVzb2x2ZWQgYW5kIHRvbGVyYW5jZSBpcyBvZmYsIG9yIGlmXG4gKiAgIHRvbGVyYW5jZSBpcyBvbiBidXQgbm90aGluZyByZXNvbHZlZCBhdCBhbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVmVyc2lvblNwZWNzKHBhcmFtczogUmVzb2x2ZVZlcnNpb25TcGVjc1BhcmFtcyk6IFJlc29sdmVWZXJzaW9uU3BlY3NSZXN1bHQge1xuICBjb25zdCB7IG1hbmlmZXN0LCBzaG91bGRUb2xlcmF0ZVVucmVzb2x2YWJsZVNwZWNzLCBzcGVjcyB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGRyb3BwZWRTcGVjczogRHJvcHBlZFZlcnNpb25TcGVjW10gPSBbXTtcbiAgY29uc3QgcmVzb2x2ZWRTcGVjczogUmVzb2x2ZWRWZXJzaW9uU3BlY1tdID0gW107XG5cbiAgZm9yIChjb25zdCBzcGVjIG9mIHNwZWNzKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlc29sdmVkU3BlY3MucHVzaCh7IHNwZWMsIHZlcnNpb246IHJlc29sdmVTcGVjKHNwZWMsIG1hbmlmZXN0KSB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFzaG91bGRUb2xlcmF0ZVVucmVzb2x2YWJsZVNwZWNzKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgZHJvcHBlZFNwZWNzLnB1c2goeyByZWFzb246IHRvUmVhc29uKGVycm9yKSwgc3BlYyB9KTtcbiAgICB9XG4gIH1cblxuICBpZiAocmVzb2x2ZWRTcGVjcy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTm8gT2JzaWRpYW4gdmVyc2lvbiBjb3VsZCBiZSByZXNvbHZlZCBmcm9tOiAke3NwZWNzLmpvaW4oJywgJyl9LiAke2Ryb3BwZWRTcGVjcy5tYXAoKHsgcmVhc29uLCBzcGVjIH0pID0+IGAke3NwZWN9OiAke3JlYXNvbn1gKS5qb2luKCc7ICcpfWBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHsgZHJvcHBlZFNwZWNzLCByZXNvbHZlZFNwZWNzIH07XG59XG5cbi8qKlxuICogUnVucyB0aGUgc3VpdGVzIG9uY2UgcGVyIG1hdHJpeCBlbnRyeSwgKiphbHdheXMgcnVubmluZyBldmVyeSBlbnRyeSoqIGJlZm9yZVxuICogcmVwb3J0aW5nLlxuICpcbiAqIEEgZmFpbGluZyBlbmQgbXVzdCBub3QgaGlkZSB0aGUgc3RhdGUgb2YgdGhlIG90aGVyOiBzdG9wcGluZyBhdCB0aGUgZmlyc3RcbiAqIGZhaWx1cmUgd291bGQgbGVhdmUgXCJjYXRhbHlzdCBicm9rZVwiIGFuZCBcImJvdGggZW5kcyBicm9rZVwiIGluZGlzdGluZ3Vpc2hhYmxlXG4gKiB3aXRob3V0IGEgc2Vjb25kIHJ1bi4gRXZlcnkgZW50cnkgdGhlcmVmb3JlIHJ1bnMsIGFuZCB0aGUgc3VtbWFyeSBuYW1lcyB3aGljaFxuICogY29uY3JldGUgdmVyc2lvbnMgZmFpbGVkIGFuZCB3aGljaCBwYXNzZWQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBtYXRyaXgsIHRoZSBwZXItZW50cnkgcnVubmVyLCBhbmQgdGhlIHByb2dyZXNzIHJlcG9ydGVyLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIGV2ZXJ5IGVudHJ5IGhhcyBydW4gc3VjY2Vzc2Z1bGx5LlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgbWF0cml4IGlzIGVtcHR5LCBvciBhbiB7QGxpbmsgQWdncmVnYXRlRXJyb3J9IG5hbWluZyBldmVyeVxuICogICB2ZXJzaW9uIHRoYXQgZmFpbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuVmVyc2lvbk1hdHJpeEVudHJpZXMocGFyYW1zOiBSdW5WZXJzaW9uTWF0cml4RW50cmllc1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IGVudHJpZXMsIG9uRW50cnlTdGFydCwgcnVuIH0gPSBwYXJhbXM7XG5cbiAgaWYgKGVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZWZ1c2luZyB0byBydW4gYW4gZW1wdHkgT2JzaWRpYW4gdmVyc2lvbiBtYXRyaXg6IG5vIHZlcnNpb24gd291bGQgYmUgdmVyaWZpZWQuJyk7XG4gIH1cblxuICBjb25zdCBlcnJvcnM6IHVua25vd25bXSA9IFtdO1xuICBjb25zdCBmYWlsZWRFbnRyaWVzOiBPYnNpZGlhblZlcnNpb25NYXRyaXhFbnRyeVtdID0gW107XG4gIGNvbnN0IHBhc3NlZEVudHJpZXM6IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IFtpbmRleCwgZW50cnldIG9mIGVudHJpZXMuZW50cmllcygpKSB7XG4gICAgb25FbnRyeVN0YXJ0KHsgZW50cnksIGluZGV4LCB0b3RhbDogZW50cmllcy5sZW5ndGggfSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHJ1bihlbnRyeSk7XG4gICAgICBwYXNzZWRFbnRyaWVzLnB1c2goZW50cnkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBlcnJvcnMucHVzaChlcnJvcik7XG4gICAgICBmYWlsZWRFbnRyaWVzLnB1c2goZW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChmYWlsZWRFbnRyaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhc3NlZENsYXVzZSA9IHBhc3NlZEVudHJpZXMubGVuZ3RoID09PSAwXG4gICAgPyAnJ1xuICAgIDogYCBQYXNzZWQ6ICR7cGFzc2VkRW50cmllcy5tYXAoKGVudHJ5KSA9PiBmb3JtYXRWZXJzaW9uTWF0cml4RW50cnkoZW50cnkpKS5qb2luKCcsICcpfS5gO1xuXG4gIHRocm93IG5ldyBBZ2dyZWdhdGVFcnJvcihcbiAgICBlcnJvcnMsXG4gICAgYE9ic2lkaWFuIHZlcnNpb24gbWF0cml4IGZhaWxlZCBvbiAke1N0cmluZyhmYWlsZWRFbnRyaWVzLmxlbmd0aCl9IG9mICR7U3RyaW5nKGVudHJpZXMubGVuZ3RoKX0gYFxuICAgICAgKyBgJHtwbHVyYWxpemUoZW50cmllcy5sZW5ndGgsICd2ZXJzaW9uJyl9OiBgXG4gICAgICArIGAke2ZhaWxlZEVudHJpZXMubWFwKChlbnRyeSkgPT4gZm9ybWF0VmVyc2lvbk1hdHJpeEVudHJ5KGVudHJ5KSkuam9pbignLCAnKX0uJHtwYXNzZWRDbGF1c2V9YFxuICApO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgYSBydW4gY291bnQgYXMgcHJvc2UsIHNvIHRoZSBzaW5nbGUtcnVuIGNhc2UgcmVhZHMgYXMgYSBkZWxpYmVyYXRlXG4gKiBkZWNpc2lvbiByYXRoZXIgdGhhbiBhIHN1c3BpY2lvdXMgYDFgLlxuICpcbiAqIEBwYXJhbSBjb3VudCAtIFRoZSBudW1iZXIgb2YgcnVucy5cbiAqIEByZXR1cm5zIGBvbmNlYCwgYHR3aWNlYCwgb3IgYE4gdGltZXNgLlxuICovXG5mdW5jdGlvbiBmb3JtYXRSdW5Db3VudChjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgVFdJQ0UgPSAyO1xuICBpZiAoY291bnQgPT09IDEpIHtcbiAgICByZXR1cm4gJ29uY2UnO1xuICB9XG4gIGlmIChjb3VudCA9PT0gVFdJQ0UpIHtcbiAgICByZXR1cm4gJ3R3aWNlJztcbiAgfVxuICByZXR1cm4gYCR7U3RyaW5nKGNvdW50KX0gdGltZXNgO1xufVxuXG4vKipcbiAqIFBsdXJhbGl6ZXMgYSBub3VuIGJ5IGNvdW50LlxuICpcbiAqIEBwYXJhbSBjb3VudCAtIFRoZSBjb3VudC5cbiAqIEBwYXJhbSBub3VuIC0gVGhlIHNpbmd1bGFyIG5vdW4uXG4gKiBAcmV0dXJucyBUaGUgbm91biwgc3VmZml4ZWQgd2l0aCBgc2AgdW5sZXNzIHRoZSBjb3VudCBpcyBleGFjdGx5IG9uZS5cbiAqL1xuZnVuY3Rpb24gcGx1cmFsaXplKGNvdW50OiBudW1iZXIsIG5vdW46IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBjb3VudCA9PT0gMSA/IG5vdW4gOiBgJHtub3VufXNgO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgc2luZ2xlIHNwZWNpZmllciBhZ2FpbnN0IGEgbWFuaWZlc3QuXG4gKlxuICogQHBhcmFtIHNwZWMgLSBUaGUgc3BlY2lmaWVyLlxuICogQHBhcmFtIG1hbmlmZXN0IC0gVGhlIG1hbmlmZXN0LCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vbmUgd2FzIGZldGNoZWQuXG4gKiBAcmV0dXJucyBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgc3BlY2lmaWVyIGlzIGludmFsaWQsIG9yIG5hbWVzIGEgY2hhbm5lbCB3aXRoIG5vIG1hbmlmZXN0XG4gKiAgIGVudHJ5LlxuICovXG5mdW5jdGlvbiByZXNvbHZlU3BlYyhzcGVjOiBzdHJpbmcsIG1hbmlmZXN0OiBEZXNrdG9wUmVsZWFzZXNNYW5pZmVzdCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlVmVyc2lvblNwZWMoc3BlYyk7XG4gIGlmIChwYXJzZWQua2luZCA9PT0gJ2V4cGxpY2l0Jykge1xuICAgIHJldHVybiBwYXJzZWQudmVyc2lvbjtcbiAgfVxuICBpZiAoIW1hbmlmZXN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVzb2x2ZSBcIiR7c3BlY31cIiB3aXRob3V0IHRoZSBkZXNrdG9wIHJlbGVhc2VzIG1hbmlmZXN0LmApO1xuICB9XG4gIHJldHVybiByZXNvbHZlVmVyc2lvbkZyb21NYW5pZmVzdChtYW5pZmVzdCwgcGFyc2VkLmNoYW5uZWwpO1xufVxuXG4vKipcbiAqIENob29zZXMgdGhlIHN1YmplY3QtdmVyYiBhZ3JlZW1lbnQgZm9yIHRoZSBzcGVjaWZpZXIgY291bnQuXG4gKlxuICogQHBhcmFtIGNvdW50IC0gVGhlIG51bWJlciBvZiBzcGVjaWZpZXJzLlxuICogQHJldHVybnMgYHJlc29sdmVzYCBvciBgcmVzb2x2ZWAuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVWZXJiKGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gY291bnQgPT09IDEgPyAncmVzb2x2ZXMnIDogJ3Jlc29sdmUnO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIGEgaHVtYW4tcmVhZGFibGUgcmVhc29uIGZyb20gYSB0aHJvd24gdmFsdWUuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIHRocm93biB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSByZWFzb24gdGV4dC5cbiAqL1xuZnVuY3Rpb24gdG9SZWFzb24oZXJyb3I6IHVua25vd24pOiBzdHJpbmcge1xuICAvKiB2OCBpZ25vcmUgbmV4dCAtLSBEZWZlbnNpdmU6IGV2ZXJ5IHRocm93IHNpdGUgcmVhY2hhYmxlIGZyb20gaGVyZSAocGFyc2VWZXJzaW9uU3BlYywgcmVzb2x2ZVZlcnNpb25Gcm9tTWFuaWZlc3QsIHRoZSBtaXNzaW5nLW1hbmlmZXN0IGd1YXJkKSB0aHJvd3MgYW4gRXJyb3IuICovXG4gIHJldHVybiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBeUJBLDhCQUtPO0FBT0EsTUFBTSxpQ0FBb0QsQ0FBQyx1Q0FBZSx1Q0FBZTtBQTBLekYsU0FBUyxtQkFBbUIsZUFBNkU7QUFDOUcsUUFBTSxpQkFBaUIsb0JBQUksSUFBc0I7QUFFakQsYUFBVyxFQUFFLE1BQU0sUUFBUSxLQUFLLGVBQWU7QUFDN0MsVUFBTSxRQUFRLGVBQWUsSUFBSSxPQUFPO0FBQ3hDLFFBQUksQ0FBQyxPQUFPO0FBQ1YscUJBQWUsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFD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
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZlcnNpb24tbWF0cml4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSBkZWNpc2lvbiBsYXllciBmb3IgcnVubmluZyBhIHN1aXRlIGFnYWluc3QgKipldmVyeSoqIHN1cHBvcnRlZCBPYnNpZGlhblxuICogdmVyc2lvbi5cbiAqXG4gKiBTdXBwb3J0IGlzIHRoZSByYW5nZSBgW2xhdGVzdCBwdWJsaWMsIGxhdGVzdCBjYXRhbHlzdF1gIGFuZCBib3RoIGVuZHMgbXVzdCBiZVxuICogdmVyaWZpZWQuIFRoZSB0d28gZW5kcyBhcmUgbW92aW5nIHRhcmdldHMsIGFuZCB0aGV5IHBlcmlvZGljYWxseVxuICogKipjb2luY2lkZSoqIFx1MjAxNCB3aGVuIHB1YmxpYyBjYXRjaGVzIHVwIHRvIGNhdGFseXN0LCBib3RoIHNwZWNpZmllcnMgcHJvdmlzaW9uXG4gKiB0aGUgc2FtZSBidWlsZCwgc28gcnVubmluZyB0aGUgc3VpdGVzIHR3aWNlIHJlLXJ1bnMgdGhlIHNhbWUgYnVpbGQgYW5kIGJ1eXNcbiAqIG5vdGhpbmcuIFdvcnNlLCBhIGNvbnN1bWVyIHRoYXQgcmFuIGJvdGggc3RpbGwgcmVwb3J0cyBcImdyZWVuIG9uIHB1YmxpYyBBTkRcbiAqIGNhdGFseXN0XCIsIGEgdHdvLWVuZCBjbGFpbSBpdCBuZXZlciB2ZXJpZmllZC5cbiAqXG4gKiBUaGUgZGVjaXNpb24gdGhlcmVmb3JlIGxpdmVzIGhlcmUgcmF0aGVyIHRoYW4gaW4gZXZlcnkgY29uc3VtaW5nIHJlcG86IGEgbGlzdFxuICogb2YgdmVyc2lvbiBzcGVjaWZpZXJzIGlzIHJlc29sdmVkIHRvIGNvbmNyZXRlIHZlcnNpb25zLCAqKmRlLWR1cGxpY2F0ZWQgb24gdGhlXG4gKiByZXNvbHZlZCB2ZXJzaW9uKiogKG5ldmVyIG9uIHRoZSBzcGVjaWZpZXIgc3RyaW5nLCBzbyBhbiBleHBsaWNpdCBgMS4xMy40YCBhbmRcbiAqIGBjYXRhbHlzdC1sYXRlc3RgIGNvbGxhcHNlIHdoZW4gY2F0YWx5c3QgKmlzKiAxLjEzLjQpLCBhbmQgdGhlIHN1aXRlcyBydW4gb25jZVxuICogcGVyIGRpc3RpbmN0IHZlcnNpb24uXG4gKlxuICogRXZlcnl0aGluZyBoZXJlIGlzIHB1cmUgYW5kIHVuaXQtdGVzdGVkOyB0aGUgbWFuaWZlc3QgZmV0Y2ggYW5kIHRoZSBsb2dnaW5nXG4gKiBsaXZlIGluIHRoZSBpbnRlZ3JhdGlvbi10aW1lIGBydW4tdmVyc2lvbi1tYXRyaXgudHNgIGdsdWUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBEZXNrdG9wUmVsZWFzZXNNYW5pZmVzdCB9IGZyb20gJy4vb2JzaWRpYW4tdmVyc2lvbi5janMnO1xuXG5pbXBvcnQge1xuICBDQVRBTFlTVF9MQVRFU1QsXG4gIHBhcnNlVmVyc2lvblNwZWMsXG4gIFBVQkxJQ19MQVRFU1QsXG4gIHJlc29sdmVWZXJzaW9uRnJvbU1hbmlmZXN0XG59IGZyb20gJy4vb2JzaWRpYW4tdmVyc2lvbi5janMnO1xuXG4vKipcbiAqIFRoZSB2ZXJzaW9uIHNwZWNpZmllcnMgYSBtYXRyaXggcnVuIGRlZmF1bHRzIHRvOiBib3RoIGVuZHMgb2YgdGhlIHN1cHBvcnRlZFxuICogcmFuZ2UuIFRoZXkgYXJlIGRlLWR1cGxpY2F0ZWQgb24gdGhlaXIgcmVzb2x2ZWQgdmVyc2lvbnMsIHNvIHdoZW4gcHVibGljXG4gKiBoYXMgY2F1Z2h0IHVwIHRvIGNhdGFseXN0IHRoaXMgeWllbGRzIGEgc2luZ2xlIHJ1bi5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfT0JTSURJQU5fVkVSU0lPTl9TUEVDUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbUFVCTElDX0xBVEVTVCwgQ0FUQUxZU1RfTEFURVNUXTtcblxuLyoqXG4gKiBBIHJlcXVlc3RlZCBzcGVjaWZpZXIgdGhhdCBjb3VsZCBub3QgYmUgcmVzb2x2ZWQgYW5kIHdhcyBkcm9wcGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERyb3BwZWRWZXJzaW9uU3BlYyB7XG4gIC8qKlxuICBXaHkgdGhlIHNwZWNpZmllciBjb3VsZCBub3QgYmUgcmVzb2x2ZWQuXG4gICAqL1xuICByZWFkb25seSByZWFzb246IHN0cmluZztcblxuICAvKipcbiAgVGhlIHNwZWNpZmllciBhcyByZXF1ZXN0ZWQuXG4gICAqL1xuICByZWFkb25seSBzcGVjOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZvcm1hdFZlcnNpb25NYXRyaXhQbGFufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRWZXJzaW9uTWF0cml4UGxhblBhcmFtcyB7XG4gIC8qKlxuICBUaGUgZGUtZHVwbGljYXRlZCBtYXRyaXggdGhhdCB3aWxsIGJlIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJpZXM6IHJlYWRvbmx5IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5W107XG5cbiAgLyoqXG4gIFRoZSBzcGVjaWZpZXJzIHRoYXQgcmVzb2x2ZWQsIGluIHJlcXVlc3RlZCBvcmRlci5cbiAgICovXG4gIHJlYWRvbmx5IHJlc29sdmVkU3BlY3M6IHJlYWRvbmx5IFJlc29sdmVkVmVyc2lvblNwZWNbXTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZm9ybWF0VmVyc2lvbk1hdHJpeFJ1bkhlYWRlcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0VmVyc2lvbk1hdHJpeFJ1bkhlYWRlclBhcmFtcyB7XG4gIC8qKlxuICBUaGUgZW50cnkgYWJvdXQgdG8gcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnk6IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5O1xuXG4gIC8qKlxuICBUaGUgZW50cnkncyB6ZXJvLWJhc2VkIHBvc2l0aW9uIGluIHRoZSBtYXRyaXguXG4gICAqL1xuICByZWFkb25seSBpbmRleDogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgdG90YWwgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIG1hdHJpeC5cbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsOiBudW1iZXI7XG59XG5cbi8qKlxuICogT25lIGRpc3RpbmN0IE9ic2lkaWFuIHZlcnNpb24gdGhlIHN1aXRlcyB3aWxsIHJ1biBhZ2FpbnN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5IHtcbiAgLyoqXG4gICAqIEV2ZXJ5IHJlcXVlc3RlZCBzcGVjaWZpZXIgdGhhdCByZXNvbHZlZCB0byB7QGxpbmsgdmVyc2lvbn0sIGluIHJlcXVlc3RlZFxuICAgKiBvcmRlci4gTW9yZSB0aGFuIG9uZSBtZWFucyB0aGUgc3BlY2lmaWVycyBjb2luY2lkZWQgYW5kIHdlcmUgY29sbGFwc2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BlY3M6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcmVxdWVzdGVkIHNwZWNpZmllciBwYWlyZWQgd2l0aCB0aGUgY29uY3JldGUgdmVyc2lvbiBpdCByZXNvbHZlZCB0by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlZFZlcnNpb25TcGVjIHtcbiAgLyoqXG4gIFRoZSBzcGVjaWZpZXIgYXMgcmVxdWVzdGVkIChhbiBgeC55LnpgIHZlcnNpb24gb3IgYSBjaGFubmVsIGFsaWFzKS5cbiAgICovXG4gIHJlYWRvbmx5IHNwZWM6IHN0cmluZztcblxuICAvKipcbiAgVGhlIGNvbmNyZXRlIGB4LnkuemAgdmVyc2lvbiBpdCByZXNvbHZlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgb3V0Y29tZSBvZiB7QGxpbmsgcmVzb2x2ZVJlcXVlc3RlZFNwZWNzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlUmVxdWVzdGVkU3BlY3NSZXN1bHQge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgc3BlY2lmaWVycyBjYW1lIGZyb20ge0BsaW5rIERFRkFVTFRfT0JTSURJQU5fVkVSU0lPTl9TUEVDU31cbiAgICogcmF0aGVyIHRoYW4gYmVpbmcgZXhwbGljaXRseSByZXF1ZXN0ZWQuXG4gICAqL1xuICByZWFkb25seSBpc0RlZmF1bHQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gIFRoZSBzcGVjaWZpZXJzIHRvIHJlc29sdmUsIGluIG9yZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BlY3M6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZXNvbHZlVmVyc2lvblNwZWNzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlVmVyc2lvblNwZWNzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBkZXNrdG9wIHJlbGVhc2VzIG1hbmlmZXN0LCBvciBgdW5kZWZpbmVkYCB3aGVuIG5vIHJlcXVlc3RlZCBzcGVjaWZpZXIgaXNcbiAgICogYSBjaGFubmVsIGFsaWFzIChzbyBubyBmZXRjaCB3YXMgbmVlZGVkKS5cbiAgICovXG4gIHJlYWRvbmx5IG1hbmlmZXN0OiBEZXNrdG9wUmVsZWFzZXNNYW5pZmVzdCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciBhIHNwZWNpZmllciB0aGF0IGNhbm5vdCBiZSByZXNvbHZlZCBpcyBkcm9wcGVkIHdpdGggYSByZWNvcmRlZFxuICAgKiByZWFzb24gaW5zdGVhZCBvZiB0aHJvd2luZy4gU2V0IGZvciB0aGUgKipkZWZhdWx0Kiogc3BlY2lmaWVyIGxpc3Qgb25seTogYVxuICAgKiBtYW5pZmVzdCB0aGF0IHNoaXBzIG5vIGNhdGFseXN0IGVudHJ5IG11c3Qgbm90IGJyZWFrIGV2ZXJ5IGNvbnN1bWVyJ3MgZ2F0ZSxcbiAgICogd2hlcmVhcyBhbiBleHBsaWNpdGx5IHJlcXVlc3RlZCBzcGVjaWZpZXIgdGhhdCBjYW5ub3QgcmVzb2x2ZSBpcyBhIHJlYWxcbiAgICogZXJyb3IuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRUb2xlcmF0ZVVucmVzb2x2YWJsZVNwZWNzOiBib29sZWFuO1xuXG4gIC8qKlxuICBUaGUgcmVxdWVzdGVkIHNwZWNpZmllcnMsIGluIG9yZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BlY3M6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRoZSBvdXRjb21lIG9mIHtAbGluayByZXNvbHZlVmVyc2lvblNwZWNzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvbHZlVmVyc2lvblNwZWNzUmVzdWx0IHtcbiAgLyoqXG4gIFNwZWNpZmllcnMgZHJvcHBlZCBiZWNhdXNlIHRoZXkgY291bGQgbm90IGJlIHJlc29sdmVkICh0b2xlcmFudCBtb2RlIG9ubHkpLlxuICAgKi9cbiAgcmVhZG9ubHkgZHJvcHBlZFNwZWNzOiByZWFkb25seSBEcm9wcGVkVmVyc2lvblNwZWNbXTtcblxuICAvKipcbiAgVGhlIHNwZWNpZmllcnMgdGhhdCByZXNvbHZlZCwgaW4gcmVxdWVzdGVkIG9yZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb2x2ZWRTcGVjczogcmVhZG9ubHkgUmVzb2x2ZWRWZXJzaW9uU3BlY1tdO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBydW5WZXJzaW9uTWF0cml4RW50cmllc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuVmVyc2lvbk1hdHJpeEVudHJpZXNQYXJhbXMge1xuICAvKipcbiAgVGhlIGRlLWR1cGxpY2F0ZWQgbWF0cml4IHRvIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJpZXM6IHJlYWRvbmx5IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5W107XG5cbiAgLyoqXG4gIENhbGxlZCBqdXN0IGJlZm9yZSBlYWNoIGVudHJ5IHJ1bnMsIGZvciBwcm9ncmVzcyByZXBvcnRpbmcuXG4gICAqL1xuICByZWFkb25seSBvbkVudHJ5U3RhcnQ6IChwYXJhbXM6IEZvcm1hdFZlcnNpb25NYXRyaXhSdW5IZWFkZXJQYXJhbXMpID0+IHZvaWQ7XG5cbiAgLyoqXG4gIFJ1bnMgdGhlIHN1aXRlcyBhZ2FpbnN0IGEgc2luZ2xlIGVudHJ5LCB0aHJvd2luZyBvbiBmYWlsdXJlLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVuOiAoZW50cnk6IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5KSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbn1cblxuLyoqXG4gKiBDb2xsYXBzZXMgcmVzb2x2ZWQgc3BlY2lmaWVycyBpbnRvIG9uZSBlbnRyeSBwZXIgKipkaXN0aW5jdCByZXNvbHZlZCB2ZXJzaW9uKiouXG4gKlxuICogRGUtZHVwbGljYXRpb24gaXMga2V5ZWQgb24gdGhlIHJlc29sdmVkIHZlcnNpb24sIG5vdCB0aGUgc3BlY2lmaWVyIHN0cmluZywgc29cbiAqIHNwZWNpZmllcnMgdGhhdCBuYW1lIHRoZSBzYW1lIGJ1aWxkIGNvbGxhcHNlIGhvd2V2ZXIgdGhleSB3ZXJlIHdyaXR0ZW4uXG4gKiBGaXJzdC1zZWVuIG9yZGVyIGlzIHByZXNlcnZlZCwgYW5kIGV2ZXJ5IHNwZWNpZmllciB0aGF0IGxhbmRlZCBvbiBhIHZlcnNpb24gaXNcbiAqIHJlY29yZGVkIG9uIGl0cyBlbnRyeS5cbiAqXG4gKiBAcGFyYW0gcmVzb2x2ZWRTcGVjcyAtIFRoZSByZXNvbHZlZCBzcGVjaWZpZXJzLCBpbiByZXF1ZXN0ZWQgb3JkZXIuXG4gKiBAcmV0dXJucyBPbmUgZW50cnkgcGVyIGRpc3RpbmN0IHZlcnNpb24sIGluIGZpcnN0LXNlZW4gb3JkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFZlcnNpb25NYXRyaXgocmVzb2x2ZWRTcGVjczogcmVhZG9ubHkgUmVzb2x2ZWRWZXJzaW9uU3BlY1tdKTogT2JzaWRpYW5WZXJzaW9uTWF0cml4RW50cnlbXSB7XG4gIGNvbnN0IHNwZWNzQnlWZXJzaW9uID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZ1tdPigpO1xuXG4gIGZvciAoY29uc3QgeyBzcGVjLCB2ZXJzaW9uIH0gb2YgcmVzb2x2ZWRTcGVjcykge1xuICAgIGNvbnN0IHNwZWNzID0gc3BlY3NCeVZlcnNpb24uZ2V0KHZlcnNpb24pO1xuICAgIGlmICghc3BlY3MpIHtcbiAgICAgIHNwZWNzQnlWZXJzaW9uLnNldCh2ZXJzaW9uLCBbc3BlY10pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmICghc3BlY3MuaW5jbHVkZXMoc3BlYykpIHtcbiAgICAgIHNwZWNzLnB1c2goc3BlYyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFsuLi5zcGVjc0J5VmVyc2lvbl0ubWFwKChbdmVyc2lvbiwgc3BlY3NdKSA9PiAoeyBzcGVjcywgdmVyc2lvbiB9KSk7XG59XG5cbi8qKlxuICogRm9ybWF0cyBhbiBlbnRyeSBmb3IgbG9ncyBhbmQgZXJyb3IgbWVzc2FnZXMuXG4gKlxuICogU3BlY2lmaWVycyB0aGF0IG1lcmVseSByZXBlYXQgdGhlIHZlcnNpb24gYWRkIG5vdGhpbmcsIHNvIGFuIGV4cGxpY2l0LW9ubHlcbiAqIGVudHJ5IGZvcm1hdHMgYXMgdGhlIGJhcmUgdmVyc2lvbiByYXRoZXIgdGhhbiBgMS4xMy40ICgxLjEzLjQpYC5cbiAqXG4gKiBAcGFyYW0gZW50cnkgLSBUaGUgZW50cnkgdG8gZm9ybWF0LlxuICogQHJldHVybnMgQSBzdHJpbmcgbGlrZSBgMS4xMy40IChwdWJsaWMtbGF0ZXN0LCBjYXRhbHlzdC1sYXRlc3QpYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFZlcnNpb25NYXRyaXhFbnRyeShlbnRyeTogT2JzaWRpYW5WZXJzaW9uTWF0cml4RW50cnkpOiBzdHJpbmcge1xuICBjb25zdCB7IHNwZWNzLCB2ZXJzaW9uIH0gPSBlbnRyeTtcbiAgY29uc3QgYWxpYXNTcGVjcyA9IHNwZWNzLmZpbHRlcigoc3BlYykgPT4gc3BlYyAhPT0gdmVyc2lvbik7XG4gIGlmIChhbGlhc1NwZWNzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB2ZXJzaW9uO1xuICB9XG4gIHJldHVybiBgJHt2ZXJzaW9ufSAoJHthbGlhc1NwZWNzLmpvaW4oJywgJyl9KWA7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBsaW5lcyBhbm5vdW5jaW5nIHdoYXQgdGhlIG1hdHJpeCByZXNvbHZlZCB0byBhbmQgaG93IG1hbnkgcnVucyBpdFxuICogd2lsbCB0YWtlLlxuICpcbiAqIFRoZSBjb2xsYXBzZSBtdXN0IGJlICoqc3RhdGVkKiosIG5ldmVyIGluZmVycmVkOiBhIHJlYWRlciB3aG8gc2VlcyBvbmUgcnVuXG4gKiB3aGVyZSB0aGV5IGV4cGVjdGVkIHR3byBoYXMgdG8gYmUgdG9sZCB0aGUgc2Vjb25kIGVuZCB3YXMgYWxyZWFkeSBjb3ZlcmVkLFxuICogbm90IGxlZnQgd29uZGVyaW5nIHdoZXRoZXIgaXQgd2FzIHNraXBwZWQgYnkgYWNjaWRlbnQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBtYXRyaXggYW5kIHRoZSBzcGVjaWZpZXJzIGl0IHdhcyBidWlsdCBmcm9tLlxuICogQHJldHVybnMgVGhlIGxpbmVzIHRvIGxvZywgaW4gb3JkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRWZXJzaW9uTWF0cml4UGxhbihwYXJhbXM6IEZvcm1hdFZlcnNpb25NYXRyaXhQbGFuUGFyYW1zKTogc3RyaW5nW10ge1xuICBjb25zdCB7IGVudHJpZXMsIHJlc29sdmVkU3BlY3MgfSA9IHBhcmFtcztcblxuICBjb25zdCBsaW5lcyA9IHJlc29sdmVkU3BlY3NcbiAgICAuZmlsdGVyKCh7IHNwZWMsIHZlcnNpb24gfSkgPT4gc3BlYyAhPT0gdmVyc2lvbilcbiAgICAubWFwKCh7IHNwZWMsIHZlcnNpb24gfSkgPT4gYCR7c3BlY30gLT4gJHt2ZXJzaW9ufWApO1xuXG4gIGNvbnN0IHNwZWNpZmllckNvdW50ID0gcmVzb2x2ZWRTcGVjcy5sZW5ndGg7XG4gIGNvbnN0IHZlcnNpb25Db3VudCA9IGVudHJpZXMubGVuZ3RoO1xuICBjb25zdCBmb3JtYXR0ZWRFbnRyaWVzID0gZW50cmllcy5tYXAoKGVudHJ5KSA9PiBmb3JtYXRWZXJzaW9uTWF0cml4RW50cnkoZW50cnkpKS5qb2luKCcsICcpO1xuXG4gIGxpbmVzLnB1c2goXG4gICAgYCR7U3RyaW5nKHNwZWNpZmllckNvdW50KX0gcmVxdWVzdGVkICR7cGx1cmFsaXplKHNwZWNpZmllckNvdW50LCAnc3BlY2lmaWVyJyl9IGBcbiAgICAgICsgYCR7cmVzb2x2ZVZlcmIoc3BlY2lmaWVyQ291bnQpfSB0byAke1N0cmluZyh2ZXJzaW9uQ291bnQpfSBkaXN0aW5jdCAke3BsdXJhbGl6ZSh2ZXJzaW9uQ291bnQsICd2ZXJzaW9uJyl9OiBgXG4gICAgICArIGAke2Zvcm1hdHRlZEVudHJpZXN9LiBSdW5uaW5nIHRoZSBzdWl0ZXMgJHtmb3JtYXRSdW5Db3VudCh2ZXJzaW9uQ291bnQpfS5gXG4gICk7XG5cbiAgcmV0dXJuIGxpbmVzO1xufVxuXG4vKipcbiAqIEJ1aWxkcyB0aGUgcHJvZ3Jlc3MgbGluZSBhbm5vdW5jaW5nIGEgc2luZ2xlIGVudHJ5J3MgcnVuLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZW50cnkgYW5kIGl0cyBwb3NpdGlvbiBpbiB0aGUgbWF0cml4LlxuICogQHJldHVybnMgQSBzdHJpbmcgbGlrZSBgUnVuIDEgb2YgMjogMS4xMi43IChwdWJsaWMtbGF0ZXN0KWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRWZXJzaW9uTWF0cml4UnVuSGVhZGVyKHBhcmFtczogRm9ybWF0VmVyc2lvbk1hdHJpeFJ1bkhlYWRlclBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgZW50cnksIGluZGV4LCB0b3RhbCB9ID0gcGFyYW1zO1xuICByZXR1cm4gYFJ1biAke1N0cmluZyhpbmRleCArIDEpfSBvZiAke1N0cmluZyh0b3RhbCl9OiAke2Zvcm1hdFZlcnNpb25NYXRyaXhFbnRyeShlbnRyeSl9YDtcbn1cblxuLyoqXG4gKiBSZXBvcnRzIHdoZXRoZXIgYW55IHNwZWNpZmllciBpcyBhIGNoYW5uZWwgYWxpYXMsIGkuZS4gd2hldGhlciB0aGUgcmVsZWFzZXNcbiAqIG1hbmlmZXN0IGhhcyB0byBiZSBmZXRjaGVkIGF0IGFsbC5cbiAqXG4gKiBAcGFyYW0gc3BlY3MgLSBUaGUgcmVxdWVzdGVkIHNwZWNpZmllcnMuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiBhdCBsZWFzdCBvbmUgc3BlY2lmaWVyIHJlc29sdmVzIGFnYWluc3QgdGhlIG1hbmlmZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzQ2hhbm5lbFNwZWMoc3BlY3M6IHJlYWRvbmx5IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gIHJldHVybiBzcGVjcy5zb21lKChzcGVjKSA9PiBzcGVjID09PSBQVUJMSUNfTEFURVNUIHx8IHNwZWMgPT09IENBVEFMWVNUX0xBVEVTVCk7XG59XG5cbi8qKlxuICogU3BsaXRzIGEgY29tbWEtc2VwYXJhdGVkIHNwZWNpZmllciBsaXN0LCBzbyBhIGNvbnN1bWVyIGNhbiBoYW5kIGFuIGVudiB2YXJcbiAqIChgT0JTSURJQU5fVkVSU0lPTj0xLjEyLjcsY2F0YWx5c3QtbGF0ZXN0YCkgc3RyYWlnaHQgdGhyb3VnaC5cbiAqXG4gKiBAcGFyYW0gcmF3IC0gVGhlIHJhdyBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHRyaW1tZWQsIG5vbi1lbXB0eSBzcGVjaWZpZXJzLCBpbiBvcmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVmVyc2lvblNwZWNMaXN0KHJhdzogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gcmF3LnNwbGl0KCcsJykubWFwKChzcGVjKSA9PiBzcGVjLnRyaW0oKSkuZmlsdGVyKChzcGVjKSA9PiBzcGVjICE9PSAnJyk7XG59XG5cbi8qKlxuICogTm9ybWFsaXplcyB0aGUgcmVxdWVzdGVkIHZlcnNpb24gc3BlY2lmaWVycywgZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0XG4gKiBib3RoLWVuZHMgbGlzdCB3aGVuIG5vbmUgd2VyZSBnaXZlbi5cbiAqXG4gKiBBbiBlbXB0eSBzdHJpbmcgaXMgdHJlYXRlZCBhcyBhYnNlbnQsIHNvIGEgY29uc3VtZXIgY2FuIHBhc3MgYW4gdW5zZXRcbiAqIGBwcm9jZXNzLmVudlsnT0JTSURJQU5fVkVSU0lPTiddYCB3aXRob3V0IGd1YXJkaW5nIGl0LlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9ucyAtIEFuIGFycmF5IG9mIHNwZWNpZmllcnMsIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZywgb3IgYHVuZGVmaW5lZGAuXG4gKiBAcmV0dXJucyBUaGUgc3BlY2lmaWVycyB0byByZXNvbHZlLCBhbmQgd2hldGhlciB0aGV5IGNhbWUgZnJvbSB0aGUgZGVmYXVsdCBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVJlcXVlc3RlZFNwZWNzKHZlcnNpb25zOiByZWFkb25seSBzdHJpbmdbXSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IFJlc29sdmVSZXF1ZXN0ZWRTcGVjc1Jlc3VsdCB7XG4gIGNvbnN0IHNwZWNzID0gdHlwZW9mIHZlcnNpb25zID09PSAnc3RyaW5nJyA/IHBhcnNlVmVyc2lvblNwZWNMaXN0KHZlcnNpb25zKSA6IFsuLi52ZXJzaW9ucyA/PyBbXV07XG4gIGlmIChzcGVjcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4geyBpc0RlZmF1bHQ6IHRydWUsIHNwZWNzOiBbLi4uREVGQVVMVF9PQlNJRElBTl9WRVJTSU9OX1NQRUNTXSB9O1xuICB9XG4gIHJldHVybiB7IGlzRGVmYXVsdDogZmFsc2UsIHNwZWNzIH07XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgZWFjaCByZXF1ZXN0ZWQgc3BlY2lmaWVyIHRvIGEgY29uY3JldGUgdmVyc2lvbiBhZ2FpbnN0IGFcbiAqIHNpbmdsZSBtYW5pZmVzdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHNwZWNpZmllcnMsIHRoZSBtYW5pZmVzdCwgYW5kIHRoZSB0b2xlcmFuY2UgbW9kZS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBzcGVjaWZpZXJzIGFuZCBhbnkgdGhhdCB3ZXJlIGRyb3BwZWQuXG4gKiBAdGhyb3dzIEVycm9yIGlmIGEgc3BlY2lmaWVyIGNhbm5vdCBiZSByZXNvbHZlZCBhbmQgdG9sZXJhbmNlIGlzIG9mZiwgb3IgaWZcbiAqICAgdG9sZXJhbmNlIGlzIG9uIGJ1dCBub3RoaW5nIHJlc29sdmVkIGF0IGFsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVWZXJzaW9uU3BlY3MocGFyYW1zOiBSZXNvbHZlVmVyc2lvblNwZWNzUGFyYW1zKTogUmVzb2x2ZVZlcnNpb25TcGVjc1Jlc3VsdCB7XG4gIGNvbnN0IHsgbWFuaWZlc3QsIHNob3VsZFRvbGVyYXRlVW5yZXNvbHZhYmxlU3BlY3MsIHNwZWNzIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgZHJvcHBlZFNwZWNzOiBEcm9wcGVkVmVyc2lvblNwZWNbXSA9IFtdO1xuICBjb25zdCByZXNvbHZlZFNwZWNzOiBSZXNvbHZlZFZlcnNpb25TcGVjW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHNwZWMgb2Ygc3BlY3MpIHtcbiAgICB0cnkge1xuICAgICAgcmVzb2x2ZWRTcGVjcy5wdXNoKHsgc3BlYywgdmVyc2lvbjogcmVzb2x2ZVNwZWMoc3BlYywgbWFuaWZlc3QpIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoIXNob3VsZFRvbGVyYXRlVW5yZXNvbHZhYmxlU3BlY3MpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBkcm9wcGVkU3BlY3MucHVzaCh7IHJlYXNvbjogdG9SZWFzb24oZXJyb3IpLCBzcGVjIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChyZXNvbHZlZFNwZWNzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBObyBPYnNpZGlhbiB2ZXJzaW9uIGNvdWxkIGJlIHJlc29sdmVkIGZyb206ICR7c3BlY3Muam9pbignLCAnKX0uICR7ZHJvcHBlZFNwZWNzLm1hcCgoeyByZWFzb24sIHNwZWMgfSkgPT4gYCR7c3BlY306ICR7cmVhc29ufWApLmpvaW4oJzsgJyl9YFxuICAgICk7XG4gIH1cblxuICByZXR1cm4geyBkcm9wcGVkU3BlY3MsIHJlc29sdmVkU3BlY3MgfTtcbn1cblxuLyoqXG4gKiBSdW5zIHRoZSBzdWl0ZXMgb25jZSBwZXIgbWF0cml4IGVudHJ5LCAqKmFsd2F5cyBydW5uaW5nIGV2ZXJ5IGVudHJ5KiogYmVmb3JlXG4gKiByZXBvcnRpbmcuXG4gKlxuICogQSBmYWlsaW5nIGVuZCBtdXN0IG5vdCBoaWRlIHRoZSBzdGF0ZSBvZiB0aGUgb3RoZXI6IHN0b3BwaW5nIGF0IHRoZSBmaXJzdFxuICogZmFpbHVyZSB3b3VsZCBsZWF2ZSBcImNhdGFseXN0IGJyb2tlXCIgYW5kIFwiYm90aCBlbmRzIGJyb2tlXCIgaW5kaXN0aW5ndWlzaGFibGVcbiAqIHdpdGhvdXQgYSBzZWNvbmQgcnVuLiBFdmVyeSBlbnRyeSB0aGVyZWZvcmUgcnVucywgYW5kIHRoZSBzdW1tYXJ5IG5hbWVzIHdoaWNoXG4gKiBjb25jcmV0ZSB2ZXJzaW9ucyBmYWlsZWQgYW5kIHdoaWNoIHBhc3NlZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIG1hdHJpeCwgdGhlIHBlci1lbnRyeSBydW5uZXIsIGFuZCB0aGUgcHJvZ3Jlc3MgcmVwb3J0ZXIuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgZXZlcnkgZW50cnkgaGFzIHJ1biBzdWNjZXNzZnVsbHkuXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBtYXRyaXggaXMgZW1wdHksIG9yIGFuIHtAbGluayBBZ2dyZWdhdGVFcnJvcn0gbmFtaW5nIGV2ZXJ5XG4gKiAgIHZlcnNpb24gdGhhdCBmYWlsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5WZXJzaW9uTWF0cml4RW50cmllcyhwYXJhbXM6IFJ1blZlcnNpb25NYXRyaXhFbnRyaWVzUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZW50cmllcywgb25FbnRyeVN0YXJ0LCBydW4gfSA9IHBhcmFtcztcblxuICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZnVzaW5nIHRvIHJ1biBhbiBlbXB0eSBPYnNpZGlhbiB2ZXJzaW9uIG1hdHJpeDogbm8gdmVyc2lvbiB3b3VsZCBiZSB2ZXJpZmllZC4nKTtcbiAgfVxuXG4gIGNvbnN0IGVycm9yczogdW5rbm93bltdID0gW107XG4gIGNvbnN0IGZhaWxlZEVudHJpZXM6IE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5W10gPSBbXTtcbiAgY29uc3QgcGFzc2VkRW50cmllczogT2JzaWRpYW5WZXJzaW9uTWF0cml4RW50cnlbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2luZGV4LCBlbnRyeV0gb2YgZW50cmllcy5lbnRyaWVzKCkpIHtcbiAgICBvbkVudHJ5U3RhcnQoeyBlbnRyeSwgaW5kZXgsIHRvdGFsOiBlbnRyaWVzLmxlbmd0aCB9KTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcnVuKGVudHJ5KTtcbiAgICAgIHBhc3NlZEVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgIGZhaWxlZEVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGZhaWxlZEVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGFzc2VkQ2xhdXNlID0gcGFzc2VkRW50cmllcy5sZW5ndGggPT09IDBcbiAgICA/ICcnXG4gICAgOiBgIFBhc3NlZDogJHtwYXNzZWRFbnRyaWVzLm1hcCgoZW50cnkpID0+IGZvcm1hdFZlcnNpb25NYXRyaXhFbnRyeShlbnRyeSkpLmpvaW4oJywgJyl9LmA7XG5cbiAgdGhyb3cgbmV3IEFnZ3JlZ2F0ZUVycm9yKFxuICAgIGVycm9ycyxcbiAgICBgT2JzaWRpYW4gdmVyc2lvbiBtYXRyaXggZmFpbGVkIG9uICR7U3RyaW5nKGZhaWxlZEVudHJpZXMubGVuZ3RoKX0gb2YgJHtTdHJpbmcoZW50cmllcy5sZW5ndGgpfSBgXG4gICAgICArIGAke3BsdXJhbGl6ZShlbnRyaWVzLmxlbmd0aCwgJ3ZlcnNpb24nKX06IGBcbiAgICAgICsgYCR7ZmFpbGVkRW50cmllcy5tYXAoKGVudHJ5KSA9PiBmb3JtYXRWZXJzaW9uTWF0cml4RW50cnkoZW50cnkpKS5qb2luKCcsICcpfS4ke3Bhc3NlZENsYXVzZX1gXG4gICk7XG59XG5cbi8qKlxuICogRm9ybWF0cyBhIHJ1biBjb3VudCBhcyBwcm9zZSwgc28gdGhlIHNpbmdsZS1ydW4gY2FzZSByZWFkcyBhcyBhIGRlbGliZXJhdGVcbiAqIGRlY2lzaW9uIHJhdGhlciB0aGFuIGEgc3VzcGljaW91cyBgMWAuXG4gKlxuICogQHBhcmFtIGNvdW50IC0gVGhlIG51bWJlciBvZiBydW5zLlxuICogQHJldHVybnMgYG9uY2VgLCBgdHdpY2VgLCBvciBgTiB0aW1lc2AuXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdFJ1bkNvdW50KGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBUV0lDRSA9IDI7XG4gIGlmIChjb3VudCA9PT0gMSkge1xuICAgIHJldHVybiAnb25jZSc7XG4gIH1cbiAgaWYgKGNvdW50ID09PSBUV0lDRSkge1xuICAgIHJldHVybiAndHdpY2UnO1xuICB9XG4gIHJldHVybiBgJHtTdHJpbmcoY291bnQpfSB0aW1lc2A7XG59XG5cbi8qKlxuICogUGx1cmFsaXplcyBhIG5vdW4gYnkgY291bnQuXG4gKlxuICogQHBhcmFtIGNvdW50IC0gVGhlIGNvdW50LlxuICogQHBhcmFtIG5vdW4gLSBUaGUgc2luZ3VsYXIgbm91bi5cbiAqIEByZXR1cm5zIFRoZSBub3VuLCBzdWZmaXhlZCB3aXRoIGBzYCB1bmxlc3MgdGhlIGNvdW50IGlzIGV4YWN0bHkgb25lLlxuICovXG5mdW5jdGlvbiBwbHVyYWxpemUoY291bnQ6IG51bWJlciwgbm91bjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNvdW50ID09PSAxID8gbm91biA6IGAke25vdW59c2A7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBzaW5nbGUgc3BlY2lmaWVyIGFnYWluc3QgYSBtYW5pZmVzdC5cbiAqXG4gKiBAcGFyYW0gc3BlYyAtIFRoZSBzcGVjaWZpZXIuXG4gKiBAcGFyYW0gbWFuaWZlc3QgLSBUaGUgbWFuaWZlc3QsIG9yIGB1bmRlZmluZWRgIHdoZW4gbm9uZSB3YXMgZmV0Y2hlZC5cbiAqIEByZXR1cm5zIFRoZSBjb25jcmV0ZSBgeC55LnpgIHZlcnNpb24uXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBzcGVjaWZpZXIgaXMgaW52YWxpZCwgb3IgbmFtZXMgYSBjaGFubmVsIHdpdGggbm8gbWFuaWZlc3RcbiAqICAgZW50cnkuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVTcGVjKHNwZWM6IHN0cmluZywgbWFuaWZlc3Q6IERlc2t0b3BSZWxlYXNlc01hbmlmZXN0IHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VWZXJzaW9uU3BlYyhzcGVjKTtcbiAgaWYgKHBhcnNlZC5raW5kID09PSAnZXhwbGljaXQnKSB7XG4gICAgcmV0dXJuIHBhcnNlZC52ZXJzaW9uO1xuICB9XG4gIGlmICghbWFuaWZlc3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlIFwiJHtzcGVjfVwiIHdpdGhvdXQgdGhlIGRlc2t0b3AgcmVsZWFzZXMgbWFuaWZlc3QuYCk7XG4gIH1cbiAgcmV0dXJuIHJlc29sdmVWZXJzaW9uRnJvbU1hbmlmZXN0KG1hbmlmZXN0LCBwYXJzZWQuY2hhbm5lbCk7XG59XG5cbi8qKlxuICogQ2hvb3NlcyB0aGUgc3ViamVjdC12ZXJiIGFncmVlbWVudCBmb3IgdGhlIHNwZWNpZmllciBjb3VudC5cbiAqXG4gKiBAcGFyYW0gY291bnQgLSBUaGUgbnVtYmVyIG9mIHNwZWNpZmllcnMuXG4gKiBAcmV0dXJucyBgcmVzb2x2ZXNgIG9yIGByZXNvbHZlYC5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZVZlcmIoY291bnQ6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBjb3VudCA9PT0gMSA/ICdyZXNvbHZlcycgOiAncmVzb2x2ZSc7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYSBodW1hbi1yZWFkYWJsZSByZWFzb24gZnJvbSBhIHRocm93biB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0gZXJyb3IgLSBUaGUgdGhyb3duIHZhbHVlLlxuICogQHJldHVybnMgVGhlIHJlYXNvbiB0ZXh0LlxuICovXG5mdW5jdGlvbiB0b1JlYXNvbihlcnJvcjogdW5rbm93bik6IHN0cmluZyB7XG4gIC8qIHY4IGlnbm9yZSBuZXh0IC0tIERlZmVuc2l2ZTogZXZlcnkgdGhyb3cgc2l0ZSByZWFjaGFibGUgZnJvbSBoZXJlIChwYXJzZVZlcnNpb25TcGVjLCByZXNvbHZlVmVyc2lvbkZyb21NYW5pZmVzdCwgdGhlIG1pc3NpbmctbWFuaWZlc3QgZ3VhcmQpIHRocm93cyBhbiBFcnJvci4gKi9cbiAgcmV0dXJuIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5QkEsOEJBS087QUFPQSxNQUFNLGlDQUFvRCxDQUFDLHVDQUFlLHVDQUFlO0FBMEt6RixTQUFTLG1CQUFtQixlQUE2RTtBQUM5RyxRQUFNLGlCQUFpQixvQkFBSSxJQUFzQjtBQUVqRCxhQUFXLEVBQUUsTUFBTSxRQUFRLEtBQUssZUFBZTtBQUM3QyxVQUFNLFFBQVEsZUFBZSxJQUFJLE9BQU87QUFDeEMsUUFBSSxDQUFDLE9BQU87QUFDVixxQkFBZSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUM7QUFDbEM7QUFBQSxJQUNGO0FBQ0EsUUFBSSxDQUFDLE1BQU0sU0FBUyxJQUFJLEdBQUc7QUFDekIsWUFBTSxLQUFLLElBQUk7QUFBQSxJQUNqQjtBQUFBLEVBQ0Y7QUFFQSxTQUFPLENBQUMsR0FBRyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFBRSxPQUFPLFFBQVEsRUFBRTtBQUMzRTtBQVdPLFNBQVMseUJBQXlCLE9BQTJDO0FBQ2xGLFFBQU0sRUFBRSxPQUFPLFFBQVEsSUFBSTtBQUMzQixRQUFNLGFBQWEsTUFBTSxPQUFPLENBQUMsU0FBUyxTQUFTLE9BQU87QUFDMUQsTUFBSSxXQUFXLFdBQVcsR0FBRztBQUMzQixXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU8sR0FBRyxPQUFPLEtBQUssV0FBVyxLQUFLLElBQUksQ0FBQztBQUM3QztBQWFPLFNBQVMsd0JBQXdCLFFBQWlEO0FBQ3ZGLFFBQU0sRUFBRSxTQUFTLGNBQWMsSUFBSTtBQUVuQyxRQUFNLFFBQVEsY0FDWCxPQUFPLENBQUMsRUFBRSxNQUFNLFFBQVEsTUFBTSxTQUFTLE9BQU8sRUFDOUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxRQUFRLE1BQU0sR0FBRyxJQUFJLE9BQU8sT0FBTyxFQUFFO0FBRXJELFFBQU0saUJBQWlCLGNBQWM7QUFDckMsUUFBTSxlQUFlLFFBQVE7QUFDN0IsUUFBTSxtQkFBbUIsUUFBUSxJQUFJLENBQUMsVUFBVSx5QkFBeUIsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJO0FBRTFGLFFBQU07QUFBQSxJQUNKLEdBQUcsT0FBTyxjQUFjLENBQUMsY0FBYyxVQUFVLGdCQUFnQixXQUFXLENBQUMsSUFDdEUsWUFBWSxjQUFjLENBQUMsT0FBTyxPQUFPLFlBQVksQ0FBQyxhQUFhLFVBQVUsY0FBYyxTQUFTLENBQUMsS0FDckcsZ0JBQWdCLHdCQUF3QixlQUFlLFlBQVksQ0FBQztBQUFBLEVBQzdFO0FBRUEsU0FBTztBQUNUO0FBUU8sU0FBUyw2QkFBNkIsUUFBb0Q7QUFDL0YsUUFBTSxFQUFFLE9BQU8sT0FBTyxNQUFNLElBQUk7QUFDaEMsU0FBTyxPQUFPLE9BQU8sUUFBUSxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssQ0FBQyxLQUFLLHlCQUF5QixLQUFLLENBQUM7QUFDekY7QUFTTyxTQUFTLGVBQWUsT0FBbUM7QUFDaEUsU0FBTyxNQUFNLEtBQUssQ0FBQyxTQUFTLFNBQVMseUNBQWlCLFNBQVMsdUNBQWU7QUFDaEY7QUFTTyxTQUFTLHFCQUFxQixLQUF1QjtBQUMxRCxTQUFPLElBQUksTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxTQUFTLEVBQUU7QUFDL0U7QUFZTyxTQUFTLHNCQUFzQixVQUErRTtBQUNuSCxRQUFNLFFBQVEsT0FBTyxhQUFhLFdBQVcscUJBQXFCLFFBQVEsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7QUFDaEcsTUFBSSxNQUFNLFdBQVcsR0FBRztBQUN0QixXQUFPLEVBQUUsV0FBVyxNQUFNLE9BQU8sQ0FBQyxHQUFHLDhCQUE4QixFQUFFO0FBQUEsRUFDdkU7QUFDQSxTQUFPLEVBQUUsV0FBVyxPQUFPLE1BQU07QUFDbkM7QUFXTyxTQUFTLG9CQUFvQixRQUE4RDtBQUNoRyxRQUFNLEVBQUUsVUFBVSxpQ0FBaUMsTUFBTSxJQUFJO0FBRTdELFFBQU0sZUFBcUMsQ0FBQztBQUM1QyxRQUFNLGdCQUF1QyxDQUFDO0FBRTlDLGFBQVcsUUFBUSxPQUFPO0FBQ3hCLFFBQUk7QUFDRixvQkFBYyxLQUFLLEVBQUUsTUFBTSxTQUFTLFlBQVksTUFBTSxRQUFRLEVBQUUsQ0FBQztBQUFBLElBQ25FLFNBQVMsT0FBTztBQUNkLFVBQUksQ0FBQyxpQ0FBaUM7QUFDcEMsY0FBTTtBQUFBLE1BQ1I7QUFDQSxtQkFBYSxLQUFLLEVBQUUsUUFBUSxTQUFTLEtBQUssR0FBRyxLQUFLLENBQUM7QUFBQSxJQUNyRDtBQUFBLEVBQ0Y7QUFFQSxNQUFJLGNBQWMsV0FBVyxHQUFHO0FBQzlCLFVBQU0sSUFBSTtBQUFBLE1BQ1IsK0NBQStDLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxhQUFhLElBQUksQ0FBQyxFQUFFLFFBQVEsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLE1BQU0sRUFBRSxFQUFFLEtBQUssSUFBSSxDQUFDO0FBQUEsSUFDN0k7QUFBQSxFQUNGO0FBRUEsU0FBTyxFQUFFLGNBQWMsY0FBYztBQUN2QztBQWdCQSxlQUFzQix3QkFBd0IsUUFBc0Q7QUFDbEcsUUFBTSxFQUFFLFNBQVMsY0FBYyxJQUFJLElBQUk7QUFFdkMsTUFBSSxRQUFRLFdBQVcsR0FBRztBQUN4QixVQUFNLElBQUksTUFBTSxpRkFBaUY7QUFBQSxFQUNuRztBQUVBLFFBQU0sU0FBb0IsQ0FBQztBQUMzQixRQUFNLGdCQUE4QyxDQUFDO0FBQ3JELFFBQU0sZ0JBQThDLENBQUM7QUFFckQsYUFBVyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsUUFBUSxHQUFHO0FBQzlDLGlCQUFhLEVBQUUsT0FBTyxPQUFPLE9BQU8sUUFBUSxPQUFPLENBQUM7QUFDcEQsUUFBSTtBQUNGLFlBQU0sSUFBSSxLQUFLO0FBQ2Ysb0JBQWMsS0FBSyxLQUFLO0FBQUEsSUFDMUIsU0FBUyxPQUFPO0FBQ2QsYUFBTyxLQUFLLEtBQUs7QUFDakIsb0JBQWMsS0FBSyxLQUFLO0FBQUEsSUFDMUI7QUFBQSxFQUNGO0FBRUEsTUFBSSxjQUFjLFdBQVcsR0FBRztBQUM5QjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLGVBQWUsY0FBYyxXQUFXLElBQzFDLEtBQ0EsWUFBWSxjQUFjLElBQUksQ0FBQyxVQUFVLHlCQUF5QixLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQztBQUV4RixRQUFNLElBQUk7QUFBQSxJQUNSO0FBQUEsSUFDQSxxQ0FBcUMsT0FBTyxjQUFjLE1BQU0sQ0FBQyxPQUFPLE9BQU8sUUFBUSxNQUFNLENBQUMsSUFDdkYsVUFBVSxRQUFRLFFBQVEsU0FBUyxDQUFDLEtBQ3BDLGNBQWMsSUFBSSxDQUFDLFVBQVUseUJBQXlCLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksWUFBWTtBQUFBLEVBQ2pHO0FBQ0Y7QUFTQSxTQUFTLGVBQWUsT0FBdUI7QUFDN0MsUUFBTSxRQUFRO0FBQ2QsTUFBSSxVQUFVLEdBQUc7QUFDZixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUksVUFBVSxPQUFPO0FBQ25CLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxHQUFHLE9BQU8sS0FBSyxDQUFDO0FBQ3pCO0FBU0EsU0FBUyxVQUFVLE9BQWUsTUFBc0I7QUFDdEQsU0FBTyxVQUFVLElBQUksT0FBTyxHQUFHLElBQUk7QUFDckM7QUFXQSxTQUFTLFlBQVksTUFBYyxVQUF1RDtBQUN4RixRQUFNLGFBQVMsMENBQWlCLElBQUk7QUFDcEMsTUFBSSxPQUFPLFNBQVMsWUFBWTtBQUM5QixXQUFPLE9BQU87QUFBQSxFQUNoQjtBQUNBLE1BQUksQ0FBQyxVQUFVO0FBQ2IsVUFBTSxJQUFJLE1BQU0sbUJBQW1CLElBQUksMENBQTBDO0FBQUEsRUFDbkY7QUFDQSxhQUFPLG9EQUEyQixVQUFVLE9BQU8sT0FBTztBQUM1RDtBQVFBLFNBQVMsWUFBWSxPQUF1QjtBQUMxQyxTQUFPLFVBQVUsSUFBSSxhQUFhO0FBQ3BDO0FBUUEsU0FBUyxTQUFTLE9BQXdCO0FBRXhDLFNBQU8saUJBQWlCLFFBQVEsTUFBTSxVQUFVLE9BQU8sS0FBSztBQUM5RDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -157,11 +157,11 @@ export interface RunVersionMatrixEntriesParams {
|
|
|
157
157
|
/**
|
|
158
158
|
Called just before each entry runs, for progress reporting.
|
|
159
159
|
*/
|
|
160
|
-
onEntryStart
|
|
160
|
+
readonly onEntryStart: (params: FormatVersionMatrixRunHeaderParams) => void;
|
|
161
161
|
/**
|
|
162
162
|
Runs the suites against a single entry, throwing on failure.
|
|
163
163
|
*/
|
|
164
|
-
run
|
|
164
|
+
readonly run: (entry: ObsidianVersionMatrixEntry) => Promise<void> | void;
|
|
165
165
|
}
|
|
166
166
|
/**
|
|
167
167
|
* Collapses resolved specifiers into one entry per **distinct resolved version**.
|
|
@@ -82,4 +82,4 @@ const teardown = defaultGlobalSetup.teardown;
|
|
|
82
82
|
setup,
|
|
83
83
|
teardown
|
|
84
84
|
});
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3ZpdGVzdC9nbG9iYWwtc2V0dXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWaXRlc3QgZ2xvYmFsIHNldHVwIGFuZCB0ZWFyZG93biBhZGFwdGVyLlxuICpcbiAqIERlbGVnYXRlcyB0byB0aGUgZnJhbWV3b3JrLWFnbm9zdGljIGNvcmUgYW5kIGJyaWRnZXMgY29udGV4dFxuICogdG8gdGVzdCB3b3JrZXJzIHZpYSBWaXRlc3QncyBgcHJvamVjdC5wcm92aWRlYCAvIGBpbmplY3RgLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIHNldHVwIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFRlc3RQcm9qZWN0IH0gZnJvbSAndml0ZXN0L25vZGUnO1xuXG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICd2aXRlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IENvcmVTZXR1cFJlc3VsdCB9IGZyb20gJy4uL2dsb2JhbC1zZXR1cC1jb3JlLmNqcyc7XG5pbXBvcnQgdHlwZSB7IFBvcHVsYXRlRmlsZXNQYXJhbXMgfSBmcm9tICcuLi90ZW1wb3JhcnktdmF1bHQuY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIH0gZnJvbSAnLi4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcblxuaW1wb3J0IHtcbiAgc2V0U2V0dXBFcnJvclJlc29sdmVyLFxuICBzZXRUcmFuc3BvcnRPcHRpb25zUmVzb2x2ZXIsXG4gIHNldFZhdWx0UGF0aFJlc29sdmVyXG59IGZyb20gJy4uL2NvbnRleHQtcHJvdmlkZXIuY2pzJztcbmltcG9ydCB7IGVycm9yVG9TdHJpbmcgfSBmcm9tICcuLi9lcnJvci10by1zdHJpbmcuY2pzJztcbmltcG9ydCB7XG4gIGNvcmVTZXR1cCxcbiAgY29yZVRlYXJkb3duXG59IGZyb20gJy4uL2dsb2JhbC1zZXR1cC1jb3JlLmNqcyc7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvblNldHVwRmFpbGVkRXJyb3IgfSBmcm9tICcuLi9pbnRlZ3JhdGlvbi1zZXR1cC1mYWlsZWQtZXJyb3IuY2pzJztcbmltcG9ydCB7IGxvZyB9IGZyb20gJy4uL2xvZy5janMnO1xuaW1wb3J0IHsgVGVtcG9yYXJ5VmF1bHQgfSBmcm9tICcuLi90ZW1wb3JhcnktdmF1bHQuY2pzJztcblxuc2V0U2V0dXBFcnJvclJlc29sdmVyKCgpID0+IGluamVjdCgnc2V0dXBFcnJvcicpKTtcbnNldFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcigoKSA9PiBpbmplY3QoJ29ic2lkaWFuVHJhbnNwb3J0JykpO1xuc2V0VmF1bHRQYXRoUmVzb2x2ZXIoKCkgPT4gaW5qZWN0KCd0ZW1wb3JhcnlWYXVsdFBhdGgnKSk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGNyZWF0ZVNldHVwfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTZXR1cE9wdGlvbnMge1xuICAvKipcbiAgICogQ29tbXVuaXR5LXBsdWdpbiBpZHMgdG8gZW5hYmxlIGluIHRoZSB2YXVsdCBpbiBhZGRpdGlvbiB0byB0aGUgcGx1Z2luLXVuZGVyLXRlc3QsXG4gICAqIGFmdGVyIGl0IGlzIGVuYWJsZWQgKHNlZSB7QGxpbmsgQ29yZVNldHVwT3B0aW9ucy5lbmFibGVDb21tdW5pdHlQbHVnaW5zfSkuIFNlZWQgZWFjaFxuICAgKiBwbHVnaW4ncyBidWlsdCBmaWxlcyB2aWEge0BsaW5rIENyZWF0ZVNldHVwT3B0aW9ucy5wb3B1bGF0ZX0gKGUuZy4gd2l0aCBgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZWApXG4gICAqIHNvIHRoZSBlbmFibGUgZmluZHMgdGhlbSBvbiBkaXNrLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQ29tbXVuaXR5UGx1Z2lucz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgYnVpbHQgcGx1Z2luIGluIHRoZSB0ZW1wIHZhdWx0LiBEZWZhdWx0c1xuICAgKiB0byBgdHJ1ZWAuIFNldCB0byBgZmFsc2VgIGZvciBhICoqbm9uLXBsdWdpbioqIGNvbnN1bWVyIHRoYXQgb25seSBuZWVkcyBhXG4gICAqIHJlZ2lzdGVyZWQsIGVtcHR5IHZhdWx0IHRvIGBldmFsSW5PYnNpZGlhbmAgYWdhaW5zdCBcdTIwMTQgdGhlIG93bmVkIGluc3RhbmNlIGlzXG4gICAqIHN0aWxsIGxhdW5jaGVkIGFuZCBpdHMgZW5kcG9pbnQgcHVibGlzaGVkIHRvIHdvcmtlcnMsIHNvIHJlLWV4cG9ydGluZ1xuICAgKiBgY3JlYXRlU2V0dXAoeyBpbnN0YWxsUGx1Z2luOiBmYWxzZSB9KWAgcmV1c2VzIHRoZSBzYW1lIGF0dGFjaCB3aXJpbmcgd2l0aCBub1xuICAgKiBwbHVnaW4gY29weS9lbmFibGUuIFNlZSB7QGxpbmsgQ29yZVNldHVwT3B0aW9ucy5pbnN0YWxsUGx1Z2lufS5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbGxQbHVnaW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGZpbGVzL2ZvbGRlcnMgdG8gd3JpdGUgaW50byB0aGUgdmF1bHQgYmVmb3JlIE9ic2lkaWFuIG9wZW5zIGl0IChzZWVcbiAgICoge0BsaW5rIENvcmVTZXR1cE9wdGlvbnMucG9wdWxhdGV9KS4gQSB0aHVuayBzbyBsYXJnZSBmaXh0dXJlcyBhcmUgYnVpbHQgbGF6aWx5LFxuICAgKiBvbmNlLCBpbiB0aGUgc2V0dXAgcHJvY2Vzcy5cbiAgICpcbiAgICogTWF5IHJldHVybiBhIHByb21pc2UsIHNvIHRoZSBtYXAgY2FuIGJlIGJ1aWx0IGJ5IHNvbWV0aGluZyB0aGF0IG5lZWRzIHRoZSBuZXR3b3JrIFx1MjAxNCBub3RhYmx5XG4gICAqIGBidWlsZERlbW9WYXVsdFBvcHVsYXRlQXN5bmNgLCB3aGljaCBpbnN0YWxscyBhIGRlbW8gdmF1bHQncyBtaXNzaW5nIGNvbW11bml0eSBwbHVnaW5zIGJlZm9yZVxuICAgKiByZWFkaW5nIHRoZW0uIEEgc3luY2hyb25vdXMgdGh1bmsgKGUuZy4gYGJ1aWxkRGVtb1ZhdWx0UG9wdWxhdGVgKSBpcyB1bmNoYW5nZWQuXG4gICAqL1xuICBwb3B1bGF0ZT8odGhpczogdm9pZCk6IFBvcHVsYXRlRmlsZXNQYXJhbXMgfCBQcm9taXNlPFBvcHVsYXRlRmlsZXNQYXJhbXM+O1xufVxuXG4vKipcbiAqIEEgVml0ZXN0IGBnbG9iYWxTZXR1cGAgbW9kdWxlJ3MgYHNldHVwYCAvIGB0ZWFyZG93bmAgcGFpci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXRlc3RHbG9iYWxTZXR1cCB7XG4gIHNldHVwKHRoaXM6IHZvaWQsIHByb2plY3Q6IFRlc3RQcm9qZWN0KTogUHJvbWlzZTx2b2lkPjtcbiAgdGVhcmRvd24odGhpczogdm9pZCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFZpdGVzdCBnbG9iYWwgc2V0dXAvdGVhcmRvd24gcGFpciwgb3B0aW9uYWxseSBwcmUtcG9wdWxhdGluZyB0aGUgdmF1bHRcbiAqIGJlZm9yZSBPYnNpZGlhbiBvcGVucyBpdCBcdTIwMTQgdXNlIHRoaXMgZm9yIGEgZGVkaWNhdGVkIGxhcmdlLXZhdWx0L3BlcmZvcm1hbmNlXG4gKiBwcm9qZWN0LiBUaGUgcGxhaW4ge0BsaW5rIHNldHVwfSAvIHtAbGluayB0ZWFyZG93bn0gZXhwb3J0cyBhcmUgdGhlIG5vLXBvcHVsYXRlXG4gKiBjYXNlIChgY3JlYXRlU2V0dXAoKWApLiBQYXNzIGB7IGluc3RhbGxQbHVnaW46IGZhbHNlIH1gIGZvciBhIG5vbi1wbHVnaW4gY29uc3VtZXJcbiAqIHRoYXQgb25seSBuZWVkcyBhIHJlZ2lzdGVyZWQsIGVtcHR5IHZhdWx0IChzZWUge0BsaW5rIENyZWF0ZVNldHVwT3B0aW9ucy5pbnN0YWxsUGx1Z2lufSkuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBTZXR1cCBvcHRpb25zLlxuICogQHJldHVybnMgVGhlIGBzZXR1cGAgYW5kIGB0ZWFyZG93bmAgZnVuY3Rpb25zIHRvIHJlLWV4cG9ydCBmcm9tIGEgYGdsb2JhbFNldHVwYCBtb2R1bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZXR1cChvcHRpb25zPzogQ3JlYXRlU2V0dXBPcHRpb25zKTogVml0ZXN0R2xvYmFsU2V0dXAge1xuICBsZXQgc2V0dXBSZXN1bHQ6IENvcmVTZXR1cFJlc3VsdCB8IHVuZGVmaW5lZDtcblxuICByZXR1cm4geyBzZXR1cCwgdGVhcmRvd24gfTtcblxuICBhc3luYyBmdW5jdGlvbiBzZXR1cChwcm9qZWN0OiBUZXN0UHJvamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVudmlyb25tZW50T3B0aW9ucyA9IHByb2plY3QuY29uZmlnLmVudmlyb25tZW50T3B0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0cmFuc3BvcnRPcHRpb25zID0gZW52aXJvbm1lbnRPcHRpb25zPy5bJ29ic2lkaWFuVHJhbnNwb3J0J10gYXMgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxhYmVsID0gdHJhbnNwb3J0T3B0aW9ucz8udHlwZSA/PyAnb2JzaWRpYW4tY2RwJztcblxuICAgIHRyeSB7XG4gICAgICBzZXR1cFJlc3VsdCA9IGF3YWl0IGNvcmVTZXR1cCh7XG4gICAgICAgIGVuYWJsZUNvbW11bml0eVBsdWdpbnM6IG9wdGlvbnM/LmVuYWJsZUNvbW11bml0eVBsdWdpbnMsXG4gICAgICAgIGluc3RhbGxQbHVnaW46IG9wdGlvbnM/Lmluc3RhbGxQbHVnaW4sXG4gICAgICAgIHBvcHVsYXRlOiBhd2FpdCBvcHRpb25zPy5wb3B1bGF0ZT8uKCksXG4gICAgICAgIHRyYW5zcG9ydE9wdGlvbnNcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAvLyBDYXRjaCBzZXR1cCBlcnJvcnMgc28gdGhhdCBvdGhlciBwcm9qZWN0cycgdGVzdHMgY2FuIHN0aWxsIHJ1bi4gRXZlcnkgdGVzdCBpbiBUSElTIHByb2plY3RcbiAgICAgIC8vIHRoZW4gZmFpbHMgd2l0aCB0aGUgc3RvcmVkIGVycm9yOiBgZ2V0T3JDcmVhdGVUcmFuc3BvcnRgIHJlYWRzIGl0IHRocm91Z2ggdGhlIHNldHVwLWVycm9yXG4gICAgICAvLyByZXNvbHZlciBhbmQgdGhyb3dzIGJlZm9yZSBpdCBjYW4gYnVpbGQgYSB0cmFuc3BvcnQuIFdpdGhvdXQgdGhhdCBhIHdvcmtlciBnZXRzIG5vIG9wdGlvbnNcbiAgICAgIC8vIGF0IGFsbCBhbmQgc2lsZW50bHkgcmVidWlsZHMgdGhlIG93bmVkIERFU0tUT1AgZGVmYXVsdCwgd2hhdGV2ZXIgcGxhdGZvcm0gdGhpcyBwcm9qZWN0IGFza2VkXG4gICAgICAvLyBmb3IgLS0gd2hpY2ggaXMgaG93IGFuIEFuZHJvaWQgcnVuIGNhbWUgdG8gcmVwb3J0IG5pbmUgYEZhaWxlZCB0byBwYXJzZSBVUkwgZnJvbSAvanNvbmBcbiAgICAgIC8vIGZhaWx1cmVzIHdoaWxlIHRoZSByZWFsIGNhdXNlIHNhdCBvbmNlLCBmYXIgYWJvdmUsIGluIHRoaXMgbG9nIChzZWUgQUdFTlRTLm1kIEw5KS5cbiAgICAgIGxvZyhgW2ludGVncmF0aW9uLXNldHVwOiR7bGFiZWx9XSBTZXR1cCBmYWlsZWQgKGV2ZXJ5IHRlc3QgaW4gdGhpcyBwcm9qZWN0IHdpbGwgZmFpbCB3aXRoIHRoaXMgZXJyb3IpOiAke2Vycm9yVG9TdHJpbmcoZXJyb3IpfWApO1xuICAgICAgcHJvamVjdC5wcm92aWRlKCdzZXR1cEVycm9yJywge1xuICAgICAgICBlcnJvck5hbWU6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5uYW1lIDogJ0Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogZXJyb3JUb1N0cmluZyhlcnJvciksXG4gICAgICAgIHRyYW5zcG9ydExhYmVsOiBsYWJlbFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvamVjdC5wcm92aWRlKCdvYnNpZGlhblRyYW5zcG9ydCcsIHNldHVwUmVzdWx0LnRyYW5zcG9ydE9wdGlvbnMpO1xuICAgIHByb2plY3QucHJvdmlkZSgndGVtcG9yYXJ5VmF1bHRQYXRoJywgc2V0dXBSZXN1bHQudGVtcG9yYXJ5VmF1bHQucGF0aCk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiB0ZWFyZG93bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBjb3JlVGVhcmRvd24oc2V0dXBSZXN1bHQpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgdGVtcG9yYXJ5IHZhdWx0IHByb3ZpZGVkIGJ5IHRoZSBnbG9iYWwgc2V0dXAuXG4gKlxuICogQHJldHVybnMgVGhlIHRlbXBvcmFyeSB2YXVsdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbXBvcmFyeVZhdWx0KCk6IFRlbXBvcmFyeVZhdWx0IHtcbiAgY29uc3QgdGVtcG9yYXJ5VmF1bHRQYXRoID0gaW5qZWN0KCd0ZW1wb3JhcnlWYXVsdFBhdGgnKTtcbiAgY29uc3Qgc2V0dXBFcnJvciA9IGluamVjdCgnc2V0dXBFcnJvcicpO1xuICBpZiAoc2V0dXBFcnJvcikge1xuICAgIHRocm93IG5ldyBJbnRlZ3JhdGlvblNldHVwRmFpbGVkRXJyb3Ioc2V0dXBFcnJvcik7XG4gIH1cbiAgcmV0dXJuIG5ldyBUZW1wb3JhcnlWYXVsdCh0ZW1wb3JhcnlWYXVsdFBhdGgpO1xufVxuXG5jb25zdCBkZWZhdWx0R2xvYmFsU2V0dXAgPSBjcmVhdGVTZXR1cCgpO1xuXG4vKipcbiAqIFZpdGVzdCBnbG9iYWwgc2V0dXAgZnVuY3Rpb24gKG5vIHByZS1wb3B1bGF0aW9uKS5cbiAqXG4gKiBDb3BpZXMgdGhlIGJ1aWx0IHBsdWdpbiBpbnRvIGEgdGVtcG9yYXJ5IHZhdWx0LCBlbmFibGVzIGl0IHZpYSBhIHJlbmRlcmVyIGV2YWxcbiAqIG92ZXIgdGhlIHRyYW5zcG9ydCwgYW5kIHByb3ZpZGVzIGB0ZW1wb3JhcnlWYXVsdFBhdGhgIHRvIHRlc3RzLlxuICpcbiAqIEBwYXJhbSBwcm9qZWN0IC0gVGhlIFZpdGVzdCBwcm9qZWN0LlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBzZXR1cCBjb21wbGV0ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXR1cCA9IGRlZmF1bHRHbG9iYWxTZXR1cC5zZXR1cDtcblxuLyoqXG4gKiBWaXRlc3QgZ2xvYmFsIHRlYXJkb3duIGZ1bmN0aW9uLlxuICpcbiAqIFJlbW92ZXMgdGhlIHRlbXBvcmFyeSB2YXVsdCBjcmVhdGVkIGR1cmluZyBzZXR1cC5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRlYXJkb3duIGNvbXBsZXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHRlYXJkb3duID0gZGVmYXVsdEdsb2JhbFNldHVwLnRlYXJkb3duO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBLG9CQUF1QjtBQU12Qiw4QkFJTztBQUNQLDZCQUE4QjtBQUM5QiwrQkFHTztBQUNQLDRDQUE0QztBQUM1QyxpQkFBb0I7QUFDcEIsNkJBQStCO0FBQUEsSUFFL0IsK0NBQXNCLFVBQU0sc0JBQU8sWUFBWSxDQUFDO0FBQUEsSUFDaEQscURBQTRCLFVBQU0sc0JBQU8sbUJBQW1CLENBQUM7QUFBQSxJQUM3RCw4Q0FBcUIsVUFBTSxzQkFBTyxvQkFBb0IsQ0FBQztBQXNEaEQsU0FBUyxZQUFZLFNBQWlEO0FBQzNFLE1BQUk7QUFFSixTQUFPLEVBQUUsT0FBQUEsUUFBTyxVQUFBQyxVQUFTO0FBRXpCLGlCQUFlRCxPQUFNLFNBQXFDO0FBQ3hELFVBQU0scUJBQXFCLFFBQVEsT0FBTztBQUMxQyxVQUFNLG1CQUFtQixxQkFBcUIsbUJBQW1CO0FBQ2pFLFVBQU0sUUFBUSxrQkFBa0IsUUFBUTtBQUV4QyxRQUFJO0FBQ0Ysb0JBQWMsVUFBTSxvQ0FBVTtBQUFBLFFBQzVCLHdCQUF3QixTQUFTO0FBQUEsUUFDakMsZUFBZSxTQUFTO0FBQUEsUUFDeEIsVUFBVSxNQUFNLFNBQVMsV0FBVztBQUFBLFFBQ3BDO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSCxTQUFTLE9BQWdCO0FBT3ZCLDBCQUFJLHNCQUFzQixLQUFLLDhFQUEwRSxzQ0FBYyxLQUFLLENBQUMsRUFBRTtBQUMvSCxjQUFRLFFBQVEsY0FBYztBQUFBLFFBQzVCLFdBQVcsaUJBQWlCLFFBQVEsTUFBTSxPQUFPO0FBQUEsUUFDakQsYUFBUyxzQ0FBYyxLQUFLO0FBQUEsUUFDNUIsZ0JBQWdCO0FBQUEsTUFDbEIsQ0FBQztBQUNEO0FBQUEsSUFDRjtBQUVBLFlBQVEsUUFBUSxxQkFBcUIsWUFBWSxnQkFBZ0I7QUFDakUsWUFBUSxRQUFRLHNCQUFzQixZQUFZLGVBQWUsSUFBSTtBQUFBLEVBQ3ZFO0FBRUEsaUJBQWVDLFlBQTBCO0FBQ3ZDLGNBQU0sdUNBQWEsV0FBVztBQUFBLEVBQ2hDO0FBQ0Y7QUFPTyxTQUFTLG9CQUFvQztBQUNsRCxRQUFNLHlCQUFxQixzQkFBTyxvQkFBb0I7QUFDdEQsUUFBTSxpQkFBYSxzQkFBTyxZQUFZO0FBQ3RDLE1BQUksWUFBWTtBQUNkLFVBQU0sSUFBSSxrRUFBNEIsVUFBVTtBQUFBLEVBQ2xEO0FBQ0EsU0FBTyxJQUFJLHNDQUFlLGtCQUFrQjtBQUM5QztBQUVBLE1BQU0scUJBQXFCLFlBQVk7QUFXaEMsTUFBTSxRQUFRLG1CQUFtQjtBQVNqQyxNQUFNLFdBQVcsbUJBQW1COyIsCiAgIm5hbWVzIjogWyJzZXR1cCIsICJ0ZWFyZG93biJdCn0K
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3ZpdGVzdC9nbG9iYWwtc2V0dXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWaXRlc3QgZ2xvYmFsIHNldHVwIGFuZCB0ZWFyZG93biBhZGFwdGVyLlxuICpcbiAqIERlbGVnYXRlcyB0byB0aGUgZnJhbWV3b3JrLWFnbm9zdGljIGNvcmUgYW5kIGJyaWRnZXMgY29udGV4dFxuICogdG8gdGVzdCB3b3JrZXJzIHZpYSBWaXRlc3QncyBgcHJvamVjdC5wcm92aWRlYCAvIGBpbmplY3RgLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIHNldHVwIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFRlc3RQcm9qZWN0IH0gZnJvbSAndml0ZXN0L25vZGUnO1xuXG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICd2aXRlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IENvcmVTZXR1cFJlc3VsdCB9IGZyb20gJy4uL2dsb2JhbC1zZXR1cC1jb3JlLmNqcyc7XG5pbXBvcnQgdHlwZSB7IFBvcHVsYXRlRmlsZXNQYXJhbXMgfSBmcm9tICcuLi90ZW1wb3JhcnktdmF1bHQuY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIH0gZnJvbSAnLi4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcblxuaW1wb3J0IHtcbiAgc2V0U2V0dXBFcnJvclJlc29sdmVyLFxuICBzZXRUcmFuc3BvcnRPcHRpb25zUmVzb2x2ZXIsXG4gIHNldFZhdWx0UGF0aFJlc29sdmVyXG59IGZyb20gJy4uL2NvbnRleHQtcHJvdmlkZXIuY2pzJztcbmltcG9ydCB7IGVycm9yVG9TdHJpbmcgfSBmcm9tICcuLi9lcnJvci10by1zdHJpbmcuY2pzJztcbmltcG9ydCB7XG4gIGNvcmVTZXR1cCxcbiAgY29yZVRlYXJkb3duXG59IGZyb20gJy4uL2dsb2JhbC1zZXR1cC1jb3JlLmNqcyc7XG5pbXBvcnQgeyBJbnRlZ3JhdGlvblNldHVwRmFpbGVkRXJyb3IgfSBmcm9tICcuLi9pbnRlZ3JhdGlvbi1zZXR1cC1mYWlsZWQtZXJyb3IuY2pzJztcbmltcG9ydCB7IGxvZyB9IGZyb20gJy4uL2xvZy5janMnO1xuaW1wb3J0IHsgVGVtcG9yYXJ5VmF1bHQgfSBmcm9tICcuLi90ZW1wb3JhcnktdmF1bHQuY2pzJztcblxuc2V0U2V0dXBFcnJvclJlc29sdmVyKCgpID0+IGluamVjdCgnc2V0dXBFcnJvcicpKTtcbnNldFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcigoKSA9PiBpbmplY3QoJ29ic2lkaWFuVHJhbnNwb3J0JykpO1xuc2V0VmF1bHRQYXRoUmVzb2x2ZXIoKCkgPT4gaW5qZWN0KCd0ZW1wb3JhcnlWYXVsdFBhdGgnKSk7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGNyZWF0ZVNldHVwfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTZXR1cE9wdGlvbnMge1xuICAvKipcbiAgICogQ29tbXVuaXR5LXBsdWdpbiBpZHMgdG8gZW5hYmxlIGluIHRoZSB2YXVsdCBpbiBhZGRpdGlvbiB0byB0aGUgcGx1Z2luLXVuZGVyLXRlc3QsXG4gICAqIGFmdGVyIGl0IGlzIGVuYWJsZWQgKHNlZSB7QGxpbmsgQ29yZVNldHVwT3B0aW9ucy5lbmFibGVDb21tdW5pdHlQbHVnaW5zfSkuIFNlZWQgZWFjaFxuICAgKiBwbHVnaW4ncyBidWlsdCBmaWxlcyB2aWEge0BsaW5rIENyZWF0ZVNldHVwT3B0aW9ucy5wb3B1bGF0ZX0gKGUuZy4gd2l0aCBgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZWApXG4gICAqIHNvIHRoZSBlbmFibGUgZmluZHMgdGhlbSBvbiBkaXNrLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQ29tbXVuaXR5UGx1Z2lucz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgYnVpbHQgcGx1Z2luIGluIHRoZSB0ZW1wIHZhdWx0LiBEZWZhdWx0c1xuICAgKiB0byBgdHJ1ZWAuIFNldCB0byBgZmFsc2VgIGZvciBhICoqbm9uLXBsdWdpbioqIGNvbnN1bWVyIHRoYXQgb25seSBuZWVkcyBhXG4gICAqIHJlZ2lzdGVyZWQsIGVtcHR5IHZhdWx0IHRvIGBldmFsSW5PYnNpZGlhbmAgYWdhaW5zdCBcdTIwMTQgdGhlIG93bmVkIGluc3RhbmNlIGlzXG4gICAqIHN0aWxsIGxhdW5jaGVkIGFuZCBpdHMgZW5kcG9pbnQgcHVibGlzaGVkIHRvIHdvcmtlcnMsIHNvIHJlLWV4cG9ydGluZ1xuICAgKiBgY3JlYXRlU2V0dXAoeyBpbnN0YWxsUGx1Z2luOiBmYWxzZSB9KWAgcmV1c2VzIHRoZSBzYW1lIGF0dGFjaCB3aXJpbmcgd2l0aCBub1xuICAgKiBwbHVnaW4gY29weS9lbmFibGUuIFNlZSB7QGxpbmsgQ29yZVNldHVwT3B0aW9ucy5pbnN0YWxsUGx1Z2lufS5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbGxQbHVnaW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGZpbGVzL2ZvbGRlcnMgdG8gd3JpdGUgaW50byB0aGUgdmF1bHQgYmVmb3JlIE9ic2lkaWFuIG9wZW5zIGl0IChzZWVcbiAgICoge0BsaW5rIENvcmVTZXR1cE9wdGlvbnMucG9wdWxhdGV9KS4gQSB0aHVuayBzbyBsYXJnZSBmaXh0dXJlcyBhcmUgYnVpbHQgbGF6aWx5LFxuICAgKiBvbmNlLCBpbiB0aGUgc2V0dXAgcHJvY2Vzcy5cbiAgICpcbiAgICogTWF5IHJldHVybiBhIHByb21pc2UsIHNvIHRoZSBtYXAgY2FuIGJlIGJ1aWx0IGJ5IHNvbWV0aGluZyB0aGF0IG5lZWRzIHRoZSBuZXR3b3JrIFx1MjAxNCBub3RhYmx5XG4gICAqIGBidWlsZERlbW9WYXVsdFBvcHVsYXRlQXN5bmNgLCB3aGljaCBpbnN0YWxscyBhIGRlbW8gdmF1bHQncyBtaXNzaW5nIGNvbW11bml0eSBwbHVnaW5zIGJlZm9yZVxuICAgKiByZWFkaW5nIHRoZW0uIEEgc3luY2hyb25vdXMgdGh1bmsgKGUuZy4gYGJ1aWxkRGVtb1ZhdWx0UG9wdWxhdGVgKSBpcyB1bmNoYW5nZWQuXG4gICAqL1xuICByZWFkb25seSBwb3B1bGF0ZT86ICh0aGlzOiB2b2lkKSA9PiBQb3B1bGF0ZUZpbGVzUGFyYW1zIHwgUHJvbWlzZTxQb3B1bGF0ZUZpbGVzUGFyYW1zPjtcbn1cblxuLyoqXG4gKiBBIFZpdGVzdCBgZ2xvYmFsU2V0dXBgIG1vZHVsZSdzIGBzZXR1cGAgLyBgdGVhcmRvd25gIHBhaXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVml0ZXN0R2xvYmFsU2V0dXAge1xuICBzZXR1cDogKHRoaXM6IHZvaWQsIHByb2plY3Q6IFRlc3RQcm9qZWN0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICB0ZWFyZG93bjogKHRoaXM6IHZvaWQpID0+IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFZpdGVzdCBnbG9iYWwgc2V0dXAvdGVhcmRvd24gcGFpciwgb3B0aW9uYWxseSBwcmUtcG9wdWxhdGluZyB0aGUgdmF1bHRcbiAqIGJlZm9yZSBPYnNpZGlhbiBvcGVucyBpdCBcdTIwMTQgdXNlIHRoaXMgZm9yIGEgZGVkaWNhdGVkIGxhcmdlLXZhdWx0L3BlcmZvcm1hbmNlXG4gKiBwcm9qZWN0LiBUaGUgcGxhaW4ge0BsaW5rIHNldHVwfSAvIHtAbGluayB0ZWFyZG93bn0gZXhwb3J0cyBhcmUgdGhlIG5vLXBvcHVsYXRlXG4gKiBjYXNlIChgY3JlYXRlU2V0dXAoKWApLiBQYXNzIGB7IGluc3RhbGxQbHVnaW46IGZhbHNlIH1gIGZvciBhIG5vbi1wbHVnaW4gY29uc3VtZXJcbiAqIHRoYXQgb25seSBuZWVkcyBhIHJlZ2lzdGVyZWQsIGVtcHR5IHZhdWx0IChzZWUge0BsaW5rIENyZWF0ZVNldHVwT3B0aW9ucy5pbnN0YWxsUGx1Z2lufSkuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBTZXR1cCBvcHRpb25zLlxuICogQHJldHVybnMgVGhlIGBzZXR1cGAgYW5kIGB0ZWFyZG93bmAgZnVuY3Rpb25zIHRvIHJlLWV4cG9ydCBmcm9tIGEgYGdsb2JhbFNldHVwYCBtb2R1bGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZXR1cChvcHRpb25zPzogQ3JlYXRlU2V0dXBPcHRpb25zKTogVml0ZXN0R2xvYmFsU2V0dXAge1xuICBsZXQgc2V0dXBSZXN1bHQ6IENvcmVTZXR1cFJlc3VsdCB8IHVuZGVmaW5lZDtcblxuICByZXR1cm4geyBzZXR1cCwgdGVhcmRvd24gfTtcblxuICBhc3luYyBmdW5jdGlvbiBzZXR1cChwcm9qZWN0OiBUZXN0UHJvamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVudmlyb25tZW50T3B0aW9ucyA9IHByb2plY3QuY29uZmlnLmVudmlyb25tZW50T3B0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0cmFuc3BvcnRPcHRpb25zID0gZW52aXJvbm1lbnRPcHRpb25zPy5bJ29ic2lkaWFuVHJhbnNwb3J0J10gYXMgT2JzaWRpYW5UcmFuc3BvcnRPcHRpb25zIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxhYmVsID0gdHJhbnNwb3J0T3B0aW9ucz8udHlwZSA/PyAnb2JzaWRpYW4tY2RwJztcblxuICAgIHRyeSB7XG4gICAgICBzZXR1cFJlc3VsdCA9IGF3YWl0IGNvcmVTZXR1cCh7XG4gICAgICAgIGVuYWJsZUNvbW11bml0eVBsdWdpbnM6IG9wdGlvbnM/LmVuYWJsZUNvbW11bml0eVBsdWdpbnMsXG4gICAgICAgIGluc3RhbGxQbHVnaW46IG9wdGlvbnM/Lmluc3RhbGxQbHVnaW4sXG4gICAgICAgIHBvcHVsYXRlOiBhd2FpdCBvcHRpb25zPy5wb3B1bGF0ZT8uKCksXG4gICAgICAgIHRyYW5zcG9ydE9wdGlvbnNcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAvLyBDYXRjaCBzZXR1cCBlcnJvcnMgc28gdGhhdCBvdGhlciBwcm9qZWN0cycgdGVzdHMgY2FuIHN0aWxsIHJ1bi4gRXZlcnkgdGVzdCBpbiBUSElTIHByb2plY3RcbiAgICAgIC8vIHRoZW4gZmFpbHMgd2l0aCB0aGUgc3RvcmVkIGVycm9yOiBgZ2V0T3JDcmVhdGVUcmFuc3BvcnRgIHJlYWRzIGl0IHRocm91Z2ggdGhlIHNldHVwLWVycm9yXG4gICAgICAvLyByZXNvbHZlciBhbmQgdGhyb3dzIGJlZm9yZSBpdCBjYW4gYnVpbGQgYSB0cmFuc3BvcnQuIFdpdGhvdXQgdGhhdCBhIHdvcmtlciBnZXRzIG5vIG9wdGlvbnNcbiAgICAgIC8vIGF0IGFsbCBhbmQgc2lsZW50bHkgcmVidWlsZHMgdGhlIG93bmVkIERFU0tUT1AgZGVmYXVsdCwgd2hhdGV2ZXIgcGxhdGZvcm0gdGhpcyBwcm9qZWN0IGFza2VkXG4gICAgICAvLyBmb3IgLS0gd2hpY2ggaXMgaG93IGFuIEFuZHJvaWQgcnVuIGNhbWUgdG8gcmVwb3J0IG5pbmUgYEZhaWxlZCB0byBwYXJzZSBVUkwgZnJvbSAvanNvbmBcbiAgICAgIC8vIGZhaWx1cmVzIHdoaWxlIHRoZSByZWFsIGNhdXNlIHNhdCBvbmNlLCBmYXIgYWJvdmUsIGluIHRoaXMgbG9nIChzZWUgQUdFTlRTLm1kIEw5KS5cbiAgICAgIGxvZyhgW2ludGVncmF0aW9uLXNldHVwOiR7bGFiZWx9XSBTZXR1cCBmYWlsZWQgKGV2ZXJ5IHRlc3QgaW4gdGhpcyBwcm9qZWN0IHdpbGwgZmFpbCB3aXRoIHRoaXMgZXJyb3IpOiAke2Vycm9yVG9TdHJpbmcoZXJyb3IpfWApO1xuICAgICAgcHJvamVjdC5wcm92aWRlKCdzZXR1cEVycm9yJywge1xuICAgICAgICBlcnJvck5hbWU6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5uYW1lIDogJ0Vycm9yJyxcbiAgICAgICAgbWVzc2FnZTogZXJyb3JUb1N0cmluZyhlcnJvciksXG4gICAgICAgIHRyYW5zcG9ydExhYmVsOiBsYWJlbFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvamVjdC5wcm92aWRlKCdvYnNpZGlhblRyYW5zcG9ydCcsIHNldHVwUmVzdWx0LnRyYW5zcG9ydE9wdGlvbnMpO1xuICAgIHByb2plY3QucHJvdmlkZSgndGVtcG9yYXJ5VmF1bHRQYXRoJywgc2V0dXBSZXN1bHQudGVtcG9yYXJ5VmF1bHQucGF0aCk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiB0ZWFyZG93bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBjb3JlVGVhcmRvd24oc2V0dXBSZXN1bHQpO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgdGVtcG9yYXJ5IHZhdWx0IHByb3ZpZGVkIGJ5IHRoZSBnbG9iYWwgc2V0dXAuXG4gKlxuICogQHJldHVybnMgVGhlIHRlbXBvcmFyeSB2YXVsdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbXBvcmFyeVZhdWx0KCk6IFRlbXBvcmFyeVZhdWx0IHtcbiAgY29uc3QgdGVtcG9yYXJ5VmF1bHRQYXRoID0gaW5qZWN0KCd0ZW1wb3JhcnlWYXVsdFBhdGgnKTtcbiAgY29uc3Qgc2V0dXBFcnJvciA9IGluamVjdCgnc2V0dXBFcnJvcicpO1xuICBpZiAoc2V0dXBFcnJvcikge1xuICAgIHRocm93IG5ldyBJbnRlZ3JhdGlvblNldHVwRmFpbGVkRXJyb3Ioc2V0dXBFcnJvcik7XG4gIH1cbiAgcmV0dXJuIG5ldyBUZW1wb3JhcnlWYXVsdCh0ZW1wb3JhcnlWYXVsdFBhdGgpO1xufVxuXG5jb25zdCBkZWZhdWx0R2xvYmFsU2V0dXAgPSBjcmVhdGVTZXR1cCgpO1xuXG4vKipcbiAqIFZpdGVzdCBnbG9iYWwgc2V0dXAgZnVuY3Rpb24gKG5vIHByZS1wb3B1bGF0aW9uKS5cbiAqXG4gKiBDb3BpZXMgdGhlIGJ1aWx0IHBsdWdpbiBpbnRvIGEgdGVtcG9yYXJ5IHZhdWx0LCBlbmFibGVzIGl0IHZpYSBhIHJlbmRlcmVyIGV2YWxcbiAqIG92ZXIgdGhlIHRyYW5zcG9ydCwgYW5kIHByb3ZpZGVzIGB0ZW1wb3JhcnlWYXVsdFBhdGhgIHRvIHRlc3RzLlxuICpcbiAqIEBwYXJhbSBwcm9qZWN0IC0gVGhlIFZpdGVzdCBwcm9qZWN0LlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBzZXR1cCBjb21wbGV0ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXR1cCA9IGRlZmF1bHRHbG9iYWxTZXR1cC5zZXR1cDtcblxuLyoqXG4gKiBWaXRlc3QgZ2xvYmFsIHRlYXJkb3duIGZ1bmN0aW9uLlxuICpcbiAqIFJlbW92ZXMgdGhlIHRlbXBvcmFyeSB2YXVsdCBjcmVhdGVkIGR1cmluZyBzZXR1cC5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRlYXJkb3duIGNvbXBsZXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IHRlYXJkb3duID0gZGVmYXVsdEdsb2JhbFNldHVwLnRlYXJkb3duO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWFBLG9CQUF1QjtBQU12Qiw4QkFJTztBQUNQLDZCQUE4QjtBQUM5QiwrQkFHTztBQUNQLDRDQUE0QztBQUM1QyxpQkFBb0I7QUFDcEIsNkJBQStCO0FBQUEsSUFFL0IsK0NBQXNCLFVBQU0sc0JBQU8sWUFBWSxDQUFDO0FBQUEsSUFDaEQscURBQTRCLFVBQU0sc0JBQU8sbUJBQW1CLENBQUM7QUFBQSxJQUM3RCw4Q0FBcUIsVUFBTSxzQkFBTyxvQkFBb0IsQ0FBQztBQXNEaEQsU0FBUyxZQUFZLFNBQWlEO0FBQzNFLE1BQUk7QUFFSixTQUFPLEVBQUUsT0FBQUEsUUFBTyxVQUFBQyxVQUFTO0FBRXpCLGlCQUFlRCxPQUFNLFNBQXFDO0FBQ3hELFVBQU0scUJBQXFCLFFBQVEsT0FBTztBQUMxQyxVQUFNLG1CQUFtQixxQkFBcUIsbUJBQW1CO0FBQ2pFLFVBQU0sUUFBUSxrQkFBa0IsUUFBUTtBQUV4QyxRQUFJO0FBQ0Ysb0JBQWMsVUFBTSxvQ0FBVTtBQUFBLFFBQzVCLHdCQUF3QixTQUFTO0FBQUEsUUFDakMsZUFBZSxTQUFTO0FBQUEsUUFDeEIsVUFBVSxNQUFNLFNBQVMsV0FBVztBQUFBLFFBQ3BDO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSCxTQUFTLE9BQWdCO0FBT3ZCLDBCQUFJLHNCQUFzQixLQUFLLDhFQUEwRSxzQ0FBYyxLQUFLLENBQUMsRUFBRTtBQUMvSCxjQUFRLFFBQVEsY0FBYztBQUFBLFFBQzVCLFdBQVcsaUJBQWlCLFFBQVEsTUFBTSxPQUFPO0FBQUEsUUFDakQsYUFBUyxzQ0FBYyxLQUFLO0FBQUEsUUFDNUIsZ0JBQWdCO0FBQUEsTUFDbEIsQ0FBQztBQUNEO0FBQUEsSUFDRjtBQUVBLFlBQVEsUUFBUSxxQkFBcUIsWUFBWSxnQkFBZ0I7QUFDakUsWUFBUSxRQUFRLHNCQUFzQixZQUFZLGVBQWUsSUFBSTtBQUFBLEVBQ3ZFO0FBRUEsaUJBQWVDLFlBQTBCO0FBQ3ZDLGNBQU0sdUNBQWEsV0FBVztBQUFBLEVBQ2hDO0FBQ0Y7QUFPTyxTQUFTLG9CQUFvQztBQUNsRCxRQUFNLHlCQUFxQixzQkFBTyxvQkFBb0I7QUFDdEQsUUFBTSxpQkFBYSxzQkFBTyxZQUFZO0FBQ3RDLE1BQUksWUFBWTtBQUNkLFVBQU0sSUFBSSxrRUFBNEIsVUFBVTtBQUFBLEVBQ2xEO0FBQ0EsU0FBTyxJQUFJLHNDQUFlLGtCQUFrQjtBQUM5QztBQUVBLE1BQU0scUJBQXFCLFlBQVk7QUFXaEMsTUFBTSxRQUFRLG1CQUFtQjtBQVNqQyxNQUFNLFdBQVcsbUJBQW1COyIsCiAgIm5hbWVzIjogWyJzZXR1cCIsICJ0ZWFyZG93biJdCn0K
|
|
@@ -38,14 +38,14 @@ export interface CreateSetupOptions {
|
|
|
38
38
|
* `buildDemoVaultPopulateAsync`, which installs a demo vault's missing community plugins before
|
|
39
39
|
* reading them. A synchronous thunk (e.g. `buildDemoVaultPopulate`) is unchanged.
|
|
40
40
|
*/
|
|
41
|
-
populate
|
|
41
|
+
readonly populate?: (this: void) => PopulateFilesParams | Promise<PopulateFilesParams>;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
44
|
* A Vitest `globalSetup` module's `setup` / `teardown` pair.
|
|
45
45
|
*/
|
|
46
46
|
export interface VitestGlobalSetup {
|
|
47
|
-
setup(this: void, project: TestProject)
|
|
48
|
-
teardown(this: void)
|
|
47
|
+
setup: (this: void, project: TestProject) => Promise<void>;
|
|
48
|
+
teardown: (this: void) => Promise<void>;
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Creates a Vitest global setup/teardown pair, optionally pre-populating the vault
|
|
@@ -48,28 +48,6 @@
|
|
|
48
48
|
* `Object.hasOwn` on it is the signal a restore needs.
|
|
49
49
|
*/
|
|
50
50
|
import type { ObsidianTransport } from './transport.mjs';
|
|
51
|
-
/**
|
|
52
|
-
* Parameters for {@link getAppConfig}, and the shared shape of the writers below.
|
|
53
|
-
*/
|
|
54
|
-
export interface AppConfigParams {
|
|
55
|
-
/**
|
|
56
|
-
* The vault config key, e.g. `settingsPopoutWindow`. Not narrowed to
|
|
57
|
-
* `obsidian-typings`' `ConfigItem`: that union omits keys Obsidian really
|
|
58
|
-
* reads, `settingsPopoutWindow` among them, which is the whole reason a
|
|
59
|
-
* consumer had to widen the setter by hand.
|
|
60
|
-
*/
|
|
61
|
-
readonly configKey: string;
|
|
62
|
-
/**
|
|
63
|
-
* Override the transport. When omitted, the transport the current test
|
|
64
|
-
* context is driving is used.
|
|
65
|
-
*/
|
|
66
|
-
readonly transport?: ObsidianTransport;
|
|
67
|
-
/**
|
|
68
|
-
* The vault whose Obsidian instance to read or write. When omitted, the
|
|
69
|
-
* current test context's vault is used.
|
|
70
|
-
*/
|
|
71
|
-
readonly vaultPath?: string;
|
|
72
|
-
}
|
|
73
51
|
/**
|
|
74
52
|
* What {@link setAppConfig} captured before it wrote, and all
|
|
75
53
|
* {@link restoreAppConfig} needs to put the key back exactly as it was —
|
|
@@ -101,10 +79,32 @@ export interface AppConfigRestore {
|
|
|
101
79
|
*/
|
|
102
80
|
readonly vaultPath?: string;
|
|
103
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Parameters for {@link getAppConfig}, and the shared shape of the writers below.
|
|
84
|
+
*/
|
|
85
|
+
export interface GetAppConfigParams {
|
|
86
|
+
/**
|
|
87
|
+
* The vault config key, e.g. `settingsPopoutWindow`. Not narrowed to
|
|
88
|
+
* `obsidian-typings`' `ConfigItem`: that union omits keys Obsidian really
|
|
89
|
+
* reads, `settingsPopoutWindow` among them, which is the whole reason a
|
|
90
|
+
* consumer had to widen the setter by hand.
|
|
91
|
+
*/
|
|
92
|
+
readonly configKey: string;
|
|
93
|
+
/**
|
|
94
|
+
* Override the transport. When omitted, the transport the current test
|
|
95
|
+
* context is driving is used.
|
|
96
|
+
*/
|
|
97
|
+
readonly transport?: ObsidianTransport;
|
|
98
|
+
/**
|
|
99
|
+
* The vault whose Obsidian instance to read or write. When omitted, the
|
|
100
|
+
* current test context's vault is used.
|
|
101
|
+
*/
|
|
102
|
+
readonly vaultPath?: string;
|
|
103
|
+
}
|
|
104
104
|
/**
|
|
105
105
|
* Parameters for {@link setAppConfig}.
|
|
106
106
|
*/
|
|
107
|
-
export interface SetAppConfigParams extends
|
|
107
|
+
export interface SetAppConfigParams extends GetAppConfigParams {
|
|
108
108
|
/**
|
|
109
109
|
* The value to write. `undefined` deletes the key, leaving Obsidian's own
|
|
110
110
|
* default in force.
|
|
@@ -120,7 +120,7 @@ export interface WithAppConfigParams<T> extends SetAppConfigParams {
|
|
|
120
120
|
/**
|
|
121
121
|
* The work to run while the key holds {@link SetAppConfigParams.value}.
|
|
122
122
|
*/
|
|
123
|
-
callback(this: void)
|
|
123
|
+
readonly callback: (this: void) => Promise<T>;
|
|
124
124
|
}
|
|
125
125
|
/**
|
|
126
126
|
* Reads a vault config key, resolving the transport and vault from the current
|
|
@@ -134,7 +134,7 @@ export interface WithAppConfigParams<T> extends SetAppConfigParams {
|
|
|
134
134
|
* @param params - The key to read, and transport / vault overrides.
|
|
135
135
|
* @returns A {@link Promise} resolving to the key's effective value.
|
|
136
136
|
*/
|
|
137
|
-
export declare function getAppConfig(params:
|
|
137
|
+
export declare function getAppConfig(params: GetAppConfigParams): Promise<unknown>;
|
|
138
138
|
/**
|
|
139
139
|
* Puts a key back exactly as {@link setAppConfig} found it — writing the captured
|
|
140
140
|
* value back, or **deleting** the key when the vault had never carried it.
|
|
@@ -107,4 +107,4 @@ export {
|
|
|
107
107
|
setAppConfig,
|
|
108
108
|
withAppConfig
|
|
109
109
|
};
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FwcC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOb2RlLXNpZGUgcmVhZC93cml0ZS9yZXN0b3JlIHNlYW0gZm9yIG9uZSBvZiBPYnNpZGlhbidzICoqdmF1bHQgY29uZmlnKioga2V5cyxcbiAqIGZvciB0aGUgZmV3IHRlc3RzIHRoYXQgbmVlZCBhIGRpZmZlcmVudCB2YWx1ZSB0aGFuIHRoZSBoYXJuZXNzJ3MgaGVhZGxlc3NcbiAqIGRlZmF1bHQuXG4gKlxuICogYGVuc3VyZUhlYWRsZXNzVmF1bHRDb25maWdgIHdyaXRlcyBgYWx3YXlzVXBkYXRlTGlua3M6IHRydWVgIGFuZFxuICogYHNldHRpbmdzUG9wb3V0V2luZG93OiBmYWxzZWAgaW50byBldmVyeSB2YXVsdCB0aGUgaGFybmVzcyBwcm92aXNpb25zLCBiZWZvcmVcbiAqIHRoYXQgdmF1bHQgaXMgZXZlciBvcGVuZWQsIGFuZCBuZWl0aGVyIGlzIGEga25vYiBhIGNvbnN1bWVyIGNvbmZpZ3VyZXMgXHUyMDE0IHNlZVxuICogdGhlIHByb2plY3QgYEFHRU5UUy5tZGAgKCoqTDQ4KiopLiBUaGF0IGlzIHJpZ2h0IGZvciBhbG1vc3QgZXZlcnkgdGVzdCwgYW5kXG4gKiB3cm9uZyBmb3IgdGhlIGZldyB3aG9zZSAqKnN1YmplY3QgaXMqKiB0aGUgc2Vjb25kIEVsZWN0cm9uIHdpbmRvdyB0aGUgcG9wb3V0XG4gKiBjcmVhdGVzOiBhIHRlc3QgdGhhdCB3YWl0cyBvbiBgYWN0aXZlV2luZG93ICE9PSB3aW5kb3dgLCBvciByZWFkc1xuICogYGFwcC5zZXR0aW5nLnBvcG91dGAsIG5ldmVyIG9ic2VydmVzIHRoZSB0aGluZyBpdCBhc3NlcnRzIGFuZCBzaW1wbHkgdGltZXMgb3V0LlxuICpcbiAqIFRob3NlIHRlc3RzIG9wdCBiYWNrIGluIHRocm91Z2ggaGVyZSByYXRoZXIgdGhhbiBieSBoYW5kLCB3aGljaCBidXlzIHRocmVlXG4gKiB0aGluZ3Mgb3ZlciBhbiBpbmxpbmUgYHNldENvbmZpZ2AgaW5zaWRlIGFuIGBldmFsSW5PYnNpZGlhbmAgY2xvc3VyZTpcbiAqXG4gKiAtICoqVGhlIHZhbHVlIGlzIHJlc3RvcmVkKiosIGluY2x1ZGluZyBkZWxldGluZyBhIGtleSB0aGF0IGhhZCBuZXZlciBiZWVuXG4gKiAgIHdyaXR0ZW4uIEFuIGlubGluZSBzZXR0ZXIgd3JpdGVzIGludG8gYSB2YXVsdCBzaGFyZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGVcbiAqICAgcnVuLCBzbyBldmVyeSBsYXRlciB0ZXN0IGluIHRoYXQgaW5zdGFuY2UgaW5oZXJpdHMgdGhlIGNoYW5nZSBcdTIwMTQgdGhlXG4gKiAgIGNyb3NzLXRlc3QgY29udGFtaW5hdGlvbiB0aGUgdW5jb25kaXRpb25hbCBkZWZhdWx0IGV4aXN0cyB0byBlbmQuXG4gKiAtICoqVGhlIGNhc3QgbGl2ZXMgaW4gb25lIHBsYWNlLioqIGBvYnNpZGlhbi10eXBpbmdzYCcgYENvbmZpZ0l0ZW1gIHVuaW9uIG9taXRzXG4gKiAgIGBzZXR0aW5nc1BvcG91dFdpbmRvd2AsIHNvIHRoZSBrZXkgY2Fubm90IGJlIHBhc3NlZCB0byBgZ2V0Q29uZmlnYCAvXG4gKiAgIGBzZXRDb25maWdgIHdpdGhvdXQgd2lkZW5pbmcgdGhlbTsgZXZlcnkgY29uc3VtZXIgdGhhdCB3cm90ZSB0aGUgc2V0dGVyXG4gKiAgIGlubGluZSByZXBlYXRlZCB0aGF0IGNhc3QuXG4gKiAtICoqUGVyLXRlc3QgZ3JhbnVsYXJpdHkuKiogQSBwYXJhbWV0ZXIgb24gdGhlIHByb3Zpc2lvbmluZyB3cml0ZSB3b3VsZCBiZVxuICogICBwZXItdmF1bHQsIGFuZCBhIHByb2plY3Qgd2hvc2UgdGVzdHMgc2hhcmUgb25lIHZhdWx0IFx1MjAxNCB0aGUgdXN1YWwgc2hhcGUgXHUyMDE0XG4gKiAgIGNhbm5vdCBoYXZlIGl0IGJvdGggd2F5cy5cbiAqXG4gKiBFdmVyeXRoaW5nIGhlcmUgcnVucyBvbiB0aGUgKipOb2RlKiogc2lkZS4gQW4gYGV2YWxJbk9ic2lkaWFuYCBjYWxsYmFjayBpc1xuICogc2VyaWFsaXplZCBpbnRvIHRoZSBkcml2ZW4gT2JzaWRpYW4gYW5kIGNhbiBpbXBvcnQgbm90aGluZywgc28gYSBoZWxwZXJcbiAqIGNhbGxhYmxlIGZyb20gaW5zaWRlIG9uZSBpcyBub3QgZXhwcmVzc2libGU7IGVhY2ggZnVuY3Rpb24gYmVsb3cgaXMgaXRzIG93blxuICogc2hvcnQgZXZhbCBpbnN0ZWFkLlxuICpcbiAqICMjIyBXaHkgcHJlc2VuY2UgaXMgcmVhZCBvZmYgYGFwcC52YXVsdC5jb25maWdgLCBub3QgZnJvbSBgZ2V0Q29uZmlnYFxuICpcbiAqIEJvdGggZmFjdHMgd2VyZSB2ZXJpZmllZCBpbiB0aGUgc2hpcHBlZCAxLjE0LjEgYnVuZGxlIHJhdGhlciB0aGFuIGFzc3VtZWQ6XG4gKlxuICogLSBgVmF1bHQuc2V0Q29uZmlnKGtleSwgdmFsdWUpYCAqKmRlbGV0ZXMqKiB0aGUga2V5IHdoZW4gYHZhbHVlYCBpc1xuICogICBgdW5kZWZpbmVkYCwgYW5kIGRvZXMgbm90aGluZyBhdCBhbGwgd2hlbiB0aGUgdmFsdWUgaXMgdW5jaGFuZ2VkIChubyBzYXZlLFxuICogICBubyBgY29uZmlnLWNoYW5nZWRgIGV2ZW50KS4gU28gYW4gZXhhY3QgcmVzdG9yZSBvZiBhIGtleSB0aGF0IHdhcyBuZXZlclxuICogICB3cml0dGVuIGlzIGV4cHJlc3NpYmxlLlxuICogLSBgVmF1bHQuZ2V0Q29uZmlnKGtleSlgIGZhbGxzIGJhY2sgdG8gT2JzaWRpYW4ncyBkZWZhdWx0cyB0YWJsZSB3aGVuIHRoZSBrZXlcbiAqICAgaXMgYWJzZW50LCBzbyBpdCBjYW5ub3QgdGVsbCAqdW5zZXQqIGZyb20gKnNldCB0byB0aGUgc2hpcHBlZCBkZWZhdWx0KiBcdTIwMTRcbiAqICAgcmVzdG9yaW5nIGZyb20gaXQgd291bGQgbGVhdmUgdGhlIGtleSB3cml0dGVuIHdoZXJlIGl0IGhhZCBub3QgYmVlbi5cbiAqICAgYGFwcC52YXVsdC5jb25maWdgIGhvbGRzIG9ubHkgdGhlIGtleXMgY2hhbmdlZCBmcm9tIHRoZWlyIGRlZmF1bHQsIHNvXG4gKiAgIGBPYmplY3QuaGFzT3duYCBvbiBpdCBpcyB0aGUgc2lnbmFsIGEgcmVzdG9yZSBuZWVkcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gSW50ZWdyYXRpb24tdGltZSBjb2RlIChkcml2ZXMgYSBsaXZlIE9ic2lkaWFuIHZpYSBldmFsSW5PYnNpZGlhbikgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRXZhbEluT2JzaWRpYW5QYXJhbXMsXG4gIEdlbmVyaWNPYmplY3Rcbn0gZnJvbSAnLi9ldmFsLWluLW9ic2lkaWFuLm1qcyc7XG5pbXBvcnQgdHlwZSB7IE9ic2lkaWFuVHJhbnNwb3J0IH0gZnJvbSAnLi90cmFuc3BvcnQubWpzJztcblxuaW1wb3J0IHsgZXZhbEluT2JzaWRpYW4gfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4ubWpzJztcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJy4vbm9ybWFsaXplLW9wdGlvbmFsLXByb3BlcnRpZXMubWpzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZ2V0QXBwQ29uZmlnfSwgYW5kIHRoZSBzaGFyZWQgc2hhcGUgb2YgdGhlIHdyaXRlcnMgYmVsb3cuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQ29uZmlnUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB2YXVsdCBjb25maWcga2V5LCBlLmcuIGBzZXR0aW5nc1BvcG91dFdpbmRvd2AuIE5vdCBuYXJyb3dlZCB0b1xuICAgKiBgb2JzaWRpYW4tdHlwaW5nc2AnIGBDb25maWdJdGVtYDogdGhhdCB1bmlvbiBvbWl0cyBrZXlzIE9ic2lkaWFuIHJlYWxseVxuICAgKiByZWFkcywgYHNldHRpbmdzUG9wb3V0V2luZG93YCBhbW9uZyB0aGVtLCB3aGljaCBpcyB0aGUgd2hvbGUgcmVhc29uIGFcbiAgICogY29uc3VtZXIgaGFkIHRvIHdpZGVuIHRoZSBzZXR0ZXIgYnkgaGFuZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZ0tleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZSB0aGUgdHJhbnNwb3J0LiBXaGVuIG9taXR0ZWQsIHRoZSB0cmFuc3BvcnQgdGhlIGN1cnJlbnQgdGVzdFxuICAgKiBjb250ZXh0IGlzIGRyaXZpbmcgaXMgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zcG9ydD86IE9ic2lkaWFuVHJhbnNwb3J0O1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgd2hvc2UgT2JzaWRpYW4gaW5zdGFuY2UgdG8gcmVhZCBvciB3cml0ZS4gV2hlbiBvbWl0dGVkLCB0aGVcbiAgICogY3VycmVudCB0ZXN0IGNvbnRleHQncyB2YXVsdCBpcyB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgdmF1bHRQYXRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdoYXQge0BsaW5rIHNldEFwcENvbmZpZ30gY2FwdHVyZWQgYmVmb3JlIGl0IHdyb3RlLCBhbmQgYWxsXG4gKiB7QGxpbmsgcmVzdG9yZUFwcENvbmZpZ30gbmVlZHMgdG8gcHV0IHRoZSBrZXkgYmFjayBleGFjdGx5IGFzIGl0IHdhcyBcdTIwMTRcbiAqIGluY2x1ZGluZyBwdXR0aW5nIGl0IGJhY2sgdG8gKmFic2VudCouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwQ29uZmlnUmVzdG9yZSB7XG4gIC8qKlxuICAgKiBUaGUga2V5IHRoYXQgd2FzIHdyaXR0ZW4uXG4gICAqL1xuICByZWFkb25seSBjb25maWdLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdmF1bHQncyBjb25maWcgY2FycmllZCB0aGUga2V5IGF0IGFsbCBiZWZvcmUgdGhlIHdyaXRlLiBgZmFsc2VgXG4gICAqIG1lYW5zIHRoZSB2YXVsdCB3YXMgcnVubmluZyBvbiBPYnNpZGlhbidzIG93biBkZWZhdWx0LCBhbmQgcmVzdG9yaW5nIGlzIGFcbiAgICogZGVsZXRlIHJhdGhlciB0aGFuIGEgd3JpdGUuXG4gICAqL1xuICByZWFkb25seSBpc1ByZXNlbnQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSB0cmFuc3BvcnQgdGhlIGNhcHR1cmUgd2FzIG1hZGUgYWdhaW5zdCwgc28gdGhlIHJlc3RvcmUgbGFuZHMgaW4gdGhlXG4gICAqIHNhbWUgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSB0cmFuc3BvcnQ/OiBPYnNpZGlhblRyYW5zcG9ydDtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIHRoZSBrZXkgaGVsZCwgb3IgYHVuZGVmaW5lZGAgd2hlbiB7QGxpbmsgaXNQcmVzZW50fSBpcyBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU6IHVua25vd247XG5cbiAgLyoqXG4gICAqIFRoZSB2YXVsdCB0aGUgY2FwdHVyZSB3YXMgbWFkZSBhZ2FpbnN0LCBzbyB0aGUgcmVzdG9yZSBsYW5kcyBpbiB0aGUgc2FtZVxuICAgKiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2V0QXBwQ29uZmlnfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXRBcHBDb25maWdQYXJhbXMgZXh0ZW5kcyBBcHBDb25maWdQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHdyaXRlLiBgdW5kZWZpbmVkYCBkZWxldGVzIHRoZSBrZXksIGxlYXZpbmcgT2JzaWRpYW4ncyBvd25cbiAgICogZGVmYXVsdCBpbiBmb3JjZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiB1bmtub3duO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayB3aXRoQXBwQ29uZmlnfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBXaGF0IHRoZSB3cmFwcGVkIHdvcmsgcmV0dXJucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXaXRoQXBwQ29uZmlnUGFyYW1zPFQ+IGV4dGVuZHMgU2V0QXBwQ29uZmlnUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB3b3JrIHRvIHJ1biB3aGlsZSB0aGUga2V5IGhvbGRzIHtAbGluayBTZXRBcHBDb25maWdQYXJhbXMudmFsdWV9LlxuICAgKi9cbiAgY2FsbGJhY2sodGhpczogdm9pZCk6IFByb21pc2U8VD47XG59XG5cbi8qKlxuICogV2hhdCBhIHdyaXRlIGNhcHR1cmVkIGFib3V0IHRoZSBrZXkncyBzdGF0ZSBiZWZvcmUgaXQgd3JvdGUuXG4gKi9cbmludGVyZmFjZSBDYXB0dXJlZFZhbHVlIHtcbiAgaXNQcmVzZW50OiBib29sZWFuO1xuICB2YWx1ZTogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBUaGUgc2VyaWFsaXplZCBwYXlsb2FkIG9mIGEgcmVhZC5cbiAqL1xuaW50ZXJmYWNlIFJlYWRJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3Qge1xuICBjb25maWdLZXk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgc2VyaWFsaXplZCBwYXlsb2FkIG9mIGEgcmVzdG9yZS5cbiAqL1xuaW50ZXJmYWNlIFJlc3RvcmVJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3Qge1xuICBjb25maWdLZXk6IHN0cmluZztcbiAgaXNQcmVzZW50OiBib29sZWFuO1xuICB2YWx1ZTogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBUaGUgc2VyaWFsaXplZCBwYXlsb2FkIG9mIGEgd3JpdGUuXG4gKi9cbmludGVyZmFjZSBXcml0ZUlucHV0IGV4dGVuZHMgR2VuZXJpY09iamVjdCB7XG4gIGNvbmZpZ0tleTogc3RyaW5nO1xuICB2YWx1ZTogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBSZWFkcyBhIHZhdWx0IGNvbmZpZyBrZXksIHJlc29sdmluZyB0aGUgdHJhbnNwb3J0IGFuZCB2YXVsdCBmcm9tIHRoZSBjdXJyZW50XG4gKiB0ZXN0IGNvbnRleHQuXG4gKlxuICogVGhpcyBpcyBPYnNpZGlhbidzIG93biBgVmF1bHQuZ2V0Q29uZmlnYCwgc28gYW4gYWJzZW50IGtleSByZWFkcyBiYWNrIGFzXG4gKiBPYnNpZGlhbidzICoqZGVmYXVsdCoqIGZvciBpdCByYXRoZXIgdGhhbiBhcyBgdW5kZWZpbmVkYCBcdTIwMTQgc2VlIHRoaXMgZmlsZSdzXG4gKiBoZWFkZXIuIFVzZSB7QGxpbmsgc2V0QXBwQ29uZmlnfSdzIHtAbGluayBBcHBDb25maWdSZXN0b3JlLmlzUHJlc2VudH0gd2hlbiB0aGVcbiAqIGRpZmZlcmVuY2UgbWF0dGVycy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGtleSB0byByZWFkLCBhbmQgdHJhbnNwb3J0IC8gdmF1bHQgb3ZlcnJpZGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBrZXkncyBlZmZlY3RpdmUgdmFsdWUuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbi1kZXYtdXRpbHMvcGFyYW1zLW9wdGlvbnMtbmFtZS1tYXRjaCAtLSBUZW1wb3Jhcnk6IGBBcHBDb25maWdQYXJhbXNgIGlzIHJlLWV4cG9ydGVkIGZyb20gYGluZGV4LnRzYCwgc28gcmVuYW1pbmcgaXQgdG8gYEdldEFwcENvbmZpZ1BhcmFtc2AgaXMgYSBicmVha2luZyBjaGFuZ2UgaGVsZCBmb3IgdGhlIG5leHQgbWFqb3IuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXBwQ29uZmlnKHBhcmFtczogQXBwQ29uZmlnUGFyYW1zKTogUHJvbWlzZTx1bmtub3duPiB7XG4gIGNvbnN0IHtcbiAgICBjb25maWdLZXksXG4gICAgdHJhbnNwb3J0LFxuICAgIHZhdWx0UGF0aFxuICB9ID0gcGFyYW1zO1xuXG4gIHJldHVybiBhd2FpdCBldmFsSW5PYnNpZGlhbihub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8RXZhbEluT2JzaWRpYW5QYXJhbXM8UmVhZElucHV0LCB1bmtub3duPj4oe1xuICAgIGNhbGxiYWNrKHsgYXBwLCBjb25maWdLZXk6IGtleSB9KTogdW5rbm93biB7XG4gICAgICBjb25zdCBnZXRDb25maWcgPSBhcHAudmF1bHQuZ2V0Q29uZmlnLmJpbmQoYXBwLnZhdWx0KSBhcyAoY29uZmlnS2V5OiBzdHJpbmcpID0+IHVua25vd247XG4gICAgICByZXR1cm4gZ2V0Q29uZmlnKGtleSk7XG4gICAgfSxcbiAgICBpbnB1dDogeyBjb25maWdLZXkgfSxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmF1bHRQYXRoXG4gIH0pKTtcbn1cblxuLyoqXG4gKiBQdXRzIGEga2V5IGJhY2sgZXhhY3RseSBhcyB7QGxpbmsgc2V0QXBwQ29uZmlnfSBmb3VuZCBpdCBcdTIwMTQgd3JpdGluZyB0aGUgY2FwdHVyZWRcbiAqIHZhbHVlIGJhY2ssIG9yICoqZGVsZXRpbmcqKiB0aGUga2V5IHdoZW4gdGhlIHZhdWx0IGhhZCBuZXZlciBjYXJyaWVkIGl0LlxuICpcbiAqIFRoZSBgYmVmb3JlQWxsYCAvIGBhZnRlckFsbGAgaGFsZiBvZiB0aGUgc2VhbS4gQSB0ZXN0IHRoYXQgc2NvcGVzIHRoZSBjaGFuZ2VcbiAqIHRvIG9uZSBjYWxsYmFjayB3YW50cyB7QGxpbmsgd2l0aEFwcENvbmZpZ30gaW5zdGVhZCwgd2hpY2ggY2Fubm90IGZvcmdldCB0aGVcbiAqIHJlc3RvcmUuXG4gKlxuICogQHBhcmFtIHJlc3RvcmUgLSBUaGUgdG9rZW4ge0BsaW5rIHNldEFwcENvbmZpZ30gcmV0dXJuZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGtleSBpcyBiYWNrIGFzIGl0IHdhcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3RvcmVBcHBDb25maWcocmVzdG9yZTogQXBwQ29uZmlnUmVzdG9yZSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgY29uZmlnS2V5LFxuICAgIGlzUHJlc2VudCxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmFsdWUsXG4gICAgdmF1bHRQYXRoXG4gIH0gPSByZXN0b3JlO1xuXG4gIGF3YWl0IGV2YWxJbk9ic2lkaWFuKG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFdmFsSW5PYnNpZGlhblBhcmFtczxSZXN0b3JlSW5wdXQsIHVuZGVmaW5lZD4+KHtcbiAgICBjYWxsYmFjayh7XG4gICAgICBhcHAsXG4gICAgICBjb25maWdLZXk6IGtleSxcbiAgICAgIGlzUHJlc2VudDogd2FzUHJlc2VudCxcbiAgICAgIHZhbHVlOiBwcmV2aW91c1ZhbHVlXG4gICAgfSk6IHVuZGVmaW5lZCB7XG4gICAgICBjb25zdCBzZXRDb25maWcgPSBhcHAudmF1bHQuc2V0Q29uZmlnLmJpbmQoYXBwLnZhdWx0KSBhcyAoY29uZmlnS2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xuXG4gICAgICAvLyBgdW5kZWZpbmVkYCBpcyBub3QgYSBuby1vcCBoZXJlOiBgc2V0Q29uZmlnYCBkZWxldGVzIHRoZSBrZXkgZm9yIGl0LFxuICAgICAgLy8gd2hpY2ggaXMgdGhlIG9ubHkgd2F5IHRvIHJlc3RvcmUgb25lIHRoZSB2YXVsdCBuZXZlciBjYXJyaWVkLlxuICAgICAgc2V0Q29uZmlnKGtleSwgd2FzUHJlc2VudCA/IHByZXZpb3VzVmFsdWUgOiB1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgIGNvbmZpZ0tleSxcbiAgICAgIGlzUHJlc2VudCxcbiAgICAgIHZhbHVlXG4gICAgfSxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmF1bHRQYXRoXG4gIH0pKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgYSB2YXVsdCBjb25maWcga2V5LCBjYXB0dXJpbmcgd2hhdCBpdCBoZWxkIGZpcnN0IHNvIHRoZSB3cml0ZSBjYW4gYmVcbiAqIHVuZG9uZSBleGFjdGx5LlxuICpcbiAqIE9ic2lkaWFuIHBlcnNpc3RzIHRoZSBjaGFuZ2UgKGByZXF1ZXN0U2F2ZUNvbmZpZ2ApIGFuZCBmaXJlcyBpdHNcbiAqIGBjb25maWctY2hhbmdlZGAgZXZlbnQsIGJvdGggb2Ygd2hpY2ggdGhlIGFwcCdzIG93biBzZXR0aW5ncyBVSSBkb2VzIHRvbyBcdTIwMTQgc29cbiAqIGFueXRoaW5nIGxpc3RlbmluZyByZWFjdHMgYXMgaXQgd291bGQgdG8gYSB1c2VyIGZsaXBwaW5nIHRoZSB0b2dnbGUuIEEgd3JpdGVcbiAqIG9mIHRoZSB2YWx1ZSB0aGUga2V5IGFscmVhZHkgaG9sZHMgaXMgYSBuby1vcCBpbiBPYnNpZGlhbiBpdHNlbGYsIGFuZCB0aGVcbiAqIHJldHVybmVkIHRva2VuIHN0aWxsIGRlc2NyaWJlcyB0aGUgc3RhdGUgdGhhdCBwcmVjZWRlZCBpdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGtleSwgdGhlIHZhbHVlLCBhbmQgdHJhbnNwb3J0IC8gdmF1bHQgb3ZlcnJpZGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSB7QGxpbmsgQXBwQ29uZmlnUmVzdG9yZX0gdG9rZW4gdG9cbiAqICAgaGFuZCB7QGxpbmsgcmVzdG9yZUFwcENvbmZpZ30uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRBcHBDb25maWcocGFyYW1zOiBTZXRBcHBDb25maWdQYXJhbXMpOiBQcm9taXNlPEFwcENvbmZpZ1Jlc3RvcmU+IHtcbiAgY29uc3Qge1xuICAgIGNvbmZpZ0tleSxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmFsdWUsXG4gICAgdmF1bHRQYXRoXG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgY2FwdHVyZWQgPSBhd2FpdCBldmFsSW5PYnNpZGlhbihub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8RXZhbEluT2JzaWRpYW5QYXJhbXM8V3JpdGVJbnB1dCwgQ2FwdHVyZWRWYWx1ZT4+KHtcbiAgICBjYWxsYmFjayh7XG4gICAgICBhcHAsXG4gICAgICBjb25maWdLZXk6IGtleSxcbiAgICAgIHZhbHVlOiBuZXdWYWx1ZVxuICAgIH0pOiBDYXB0dXJlZFZhbHVlIHtcbiAgICAgIC8vIGBjb25maWdgIGNhcnJpZXMgT05MWSB0aGUga2V5cyBjaGFuZ2VkIGZyb20gdGhlaXIgZGVmYXVsdCwgd2hpY2ggaXMgd2hhdFxuICAgICAgLy8gbWFrZXMgaXQgdGhlIHByZXNlbmNlIHNpZ25hbDsgYGdldENvbmZpZ2Agc3Vic3RpdHV0ZXMgdGhlIGRlZmF1bHQgYW5kIHNvXG4gICAgICAvLyBjYW5ub3QgdGVsbCBhbiB1bnNldCBrZXkgZnJvbSBvbmUgc2V0IHRvIHRoYXQgZGVmYXVsdC4gVGhlIHZhbHVlIGl0c2VsZlxuICAgICAgLy8gc3RpbGwgY29tZXMgZnJvbSBgZ2V0Q29uZmlnYCwgd2hpY2ggcmV0dXJucyB0aGUgc3RvcmVkIG9uZSB3aGVuZXZlclxuICAgICAgLy8gdGhlcmUgaXMgb25lIFx1MjAxNCBzbyB0aGUgcmVhZCBuZWVkcyBubyBjYXN0IG9mIHRoZSBjb25maWcgb2JqZWN0LlxuICAgICAgY29uc3QgaXNQcmVzZW50ID0gT2JqZWN0Lmhhc093bihhcHAudmF1bHQuY29uZmlnLCBrZXkpO1xuXG4gICAgICBjb25zdCBnZXRDb25maWcgPSBhcHAudmF1bHQuZ2V0Q29uZmlnLmJpbmQoYXBwLnZhdWx0KSBhcyAoY29uZmlnS2V5OiBzdHJpbmcpID0+IHVua25vd247XG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gaXNQcmVzZW50ID8gZ2V0Q29uZmlnKGtleSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IHNldENvbmZpZyA9IGFwcC52YXVsdC5zZXRDb25maWcuYmluZChhcHAudmF1bHQpIGFzIChjb25maWdLZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pID0+IHZvaWQ7XG4gICAgICBzZXRDb25maWcoa2V5LCBuZXdWYWx1ZSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlzUHJlc2VudCxcbiAgICAgICAgdmFsdWU6IHByZXZpb3VzVmFsdWVcbiAgICAgIH07XG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgY29uZmlnS2V5LFxuICAgICAgdmFsdWVcbiAgICB9LFxuICAgIHRyYW5zcG9ydCxcbiAgICB2YXVsdFBhdGhcbiAgfSkpO1xuXG4gIHJldHVybiBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8QXBwQ29uZmlnUmVzdG9yZT4oe1xuICAgIGNvbmZpZ0tleSxcbiAgICBpc1ByZXNlbnQ6IGNhcHR1cmVkLmlzUHJlc2VudCxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmFsdWU6IGNhcHR1cmVkLnZhbHVlLFxuICAgIHZhdWx0UGF0aFxuICB9KTtcbn1cblxuLyoqXG4gKiBSdW5zIHdvcmsgd2l0aCBhIHZhdWx0IGNvbmZpZyBrZXkgdGVtcG9yYXJpbHkgc2V0LCBhbmQgcHV0cyB0aGUga2V5IGJhY2tcbiAqIGFmdGVyd2FyZHMgXHUyMDE0IG9uIGEgdGhyb3cgYXMgbXVjaCBhcyBvbiBhIHJldHVybi5cbiAqXG4gKiBUaGUgc2hhcGUgYSBwb3BvdXQtc3ViamVjdCB0ZXN0IHdhbnRzOlxuICpcbiAqIGBgYHRzXG4gKiBhd2FpdCB3aXRoQXBwQ29uZmlnKHtcbiAqICAgYXN5bmMgY2FsbGJhY2soKSB7XG4gKiAgICAgYXdhaXQgZXZhbEluT2JzaWRpYW4oeyAuLi4gfSk7IC8vIHRoZSBzZXR0aW5ncyB3aW5kb3cgaXMgYSBwb3BvdXQgaW4gaGVyZVxuICogICB9LFxuICogICBjb25maWdLZXk6ICdzZXR0aW5nc1BvcG91dFdpbmRvdycsXG4gKiAgIHZhbHVlOiB0cnVlLFxuICogICB2YXVsdFBhdGhcbiAqIH0pO1xuICogYGBgXG4gKlxuICogVGhlIGNhbGxiYWNrIHJ1bnMgb24gdGhlICoqTm9kZSoqIHNpZGUsIHNvIGl0IGlzIGZyZWUgdG8gbWFrZSBzZXZlcmFsIGV2YWxzLFxuICogdGFrZSBhIHNjcmVlbnNob3QsIG9yIGFzc2VydCBiZXR3ZWVuIHRoZW0uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gV2hhdCB0aGUgd3JhcHBlZCB3b3JrIHJldHVybnMuXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGtleSwgdGhlIHZhbHVlIHRvIGhvbGQgaXQgYXQsIHRoZSB3b3JrLCBhbmQgdHJhbnNwb3J0IC9cbiAqICAgdmF1bHQgb3ZlcnJpZGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHdoYXRldmVyIHRoZSBjYWxsYmFjayByZXR1cm5lZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdpdGhBcHBDb25maWc8VD4ocGFyYW1zOiBXaXRoQXBwQ29uZmlnUGFyYW1zPFQ+KTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHtcbiAgICBjYWxsYmFjayxcbiAgICBjb25maWdLZXksXG4gICAgdHJhbnNwb3J0LFxuICAgIHZhbHVlLFxuICAgIHZhdWx0UGF0aFxuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHJlc3RvcmUgPSBhd2FpdCBzZXRBcHBDb25maWcobm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPFNldEFwcENvbmZpZ1BhcmFtcz4oe1xuICAgIGNvbmZpZ0tleSxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmFsdWUsXG4gICAgdmF1bHRQYXRoXG4gIH0pKTtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBjYWxsYmFjaygpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHJlc3RvcmVBcHBDb25maWcocmVzdG9yZSk7XG4gIH1cbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICJBQTBEQSxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLG1DQUFtQztBQW1JNUMsZUFBc0IsYUFBYSxRQUEyQztBQUM1RSxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosU0FBTyxNQUFNLGVBQWUsNEJBQXNFO0FBQUEsSUFDaEcsU0FBUyxFQUFFLEtBQUssV0FBVyxJQUFJLEdBQVk7QUFDekMsWUFBTSxZQUFZLElBQUksTUFBTSxVQUFVLEtBQUssSUFBSSxLQUFLO0FBQ3BELGFBQU8sVUFBVSxHQUFHO0FBQUEsSUFDdEI7QUFBQSxJQUNBLE9BQU8sRUFBRSxVQUFVO0FBQUEsSUFDbkI7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDLENBQUM7QUFDSjtBQWFBLGVBQXNCLGlCQUFpQixTQUEwQztBQUMvRSxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLGVBQWUsNEJBQTJFO0FBQUEsSUFDOUYsU0FBUztBQUFBLE1BQ1A7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLE9BQU87QUFBQSxJQUNULEdBQWM7QUFDWixZQUFNLFlBQVksSUFBSSxNQUFNLFVBQVUsS0FBSyxJQUFJLEtBQUs7QUFJcEQsZ0JBQVUsS0FBSyxhQUFhLGdCQUFnQixNQUFTO0FBQUEsSUFDdkQ7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUMsQ0FBQztBQUNKO0FBZ0JBLGVBQXNCLGFBQWEsUUFBdUQ7QUFDeEYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLFdBQVcsTUFBTSxlQUFlLDRCQUE2RTtBQUFBLElBQ2pILFNBQVM7QUFBQSxNQUNQO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxPQUFPO0FBQUEsSUFDVCxHQUFrQjtBQU1oQixZQUFNLFlBQVksT0FBTyxPQUFPLElBQUksTUFBTSxRQUFRLEdBQUc7QUFFckQsWUFBTSxZQUFZLElBQUksTUFBTSxVQUFVLEtBQUssSUFBSSxLQUFLO0FBQ3BELFlBQU0sZ0JBQWdCLFlBQVksVUFBVSxHQUFHLElBQUk7QUFFbkQsWUFBTSxZQUFZLElBQUksTUFBTSxVQUFVLEtBQUssSUFBSSxLQUFLO0FBQ3BELGdCQUFVLEtBQUssUUFBUTtBQUV2QixhQUFPO0FBQUEsUUFDTDtBQUFBLFFBQ0EsT0FBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsSUFDQSxPQUFPO0FBQUEsTUFDTDtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUMsQ0FBQztBQUVGLFNBQU8sNEJBQThDO0FBQUEsSUFDbkQ7QUFBQSxJQUNBLFdBQVcsU0FBUztBQUFBLElBQ3BCO0FBQUEsSUFDQSxPQUFPLFNBQVM7QUFBQSxJQUNoQjtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBMkJBLGVBQXNCLGNBQWlCLFFBQTRDO0FBQ2pGLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sVUFBVSxNQUFNLGFBQWEsNEJBQWdEO0FBQUEsSUFDakY7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUMsQ0FBQztBQUVGLE1BQUk7QUFDRixXQUFPLE1BQU0sU0FBUztBQUFBLEVBQ3hCLFVBQUU7QUFDQSxVQUFNLGlCQUFpQixPQUFPO0FBQUEsRUFDaEM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2FwcC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOb2RlLXNpZGUgcmVhZC93cml0ZS9yZXN0b3JlIHNlYW0gZm9yIG9uZSBvZiBPYnNpZGlhbidzICoqdmF1bHQgY29uZmlnKioga2V5cyxcbiAqIGZvciB0aGUgZmV3IHRlc3RzIHRoYXQgbmVlZCBhIGRpZmZlcmVudCB2YWx1ZSB0aGFuIHRoZSBoYXJuZXNzJ3MgaGVhZGxlc3NcbiAqIGRlZmF1bHQuXG4gKlxuICogYGVuc3VyZUhlYWRsZXNzVmF1bHRDb25maWdgIHdyaXRlcyBgYWx3YXlzVXBkYXRlTGlua3M6IHRydWVgIGFuZFxuICogYHNldHRpbmdzUG9wb3V0V2luZG93OiBmYWxzZWAgaW50byBldmVyeSB2YXVsdCB0aGUgaGFybmVzcyBwcm92aXNpb25zLCBiZWZvcmVcbiAqIHRoYXQgdmF1bHQgaXMgZXZlciBvcGVuZWQsIGFuZCBuZWl0aGVyIGlzIGEga25vYiBhIGNvbnN1bWVyIGNvbmZpZ3VyZXMgXHUyMDE0IHNlZVxuICogdGhlIHByb2plY3QgYEFHRU5UUy5tZGAgKCoqTDQ4KiopLiBUaGF0IGlzIHJpZ2h0IGZvciBhbG1vc3QgZXZlcnkgdGVzdCwgYW5kXG4gKiB3cm9uZyBmb3IgdGhlIGZldyB3aG9zZSAqKnN1YmplY3QgaXMqKiB0aGUgc2Vjb25kIEVsZWN0cm9uIHdpbmRvdyB0aGUgcG9wb3V0XG4gKiBjcmVhdGVzOiBhIHRlc3QgdGhhdCB3YWl0cyBvbiBgYWN0aXZlV2luZG93ICE9PSB3aW5kb3dgLCBvciByZWFkc1xuICogYGFwcC5zZXR0aW5nLnBvcG91dGAsIG5ldmVyIG9ic2VydmVzIHRoZSB0aGluZyBpdCBhc3NlcnRzIGFuZCBzaW1wbHkgdGltZXMgb3V0LlxuICpcbiAqIFRob3NlIHRlc3RzIG9wdCBiYWNrIGluIHRocm91Z2ggaGVyZSByYXRoZXIgdGhhbiBieSBoYW5kLCB3aGljaCBidXlzIHRocmVlXG4gKiB0aGluZ3Mgb3ZlciBhbiBpbmxpbmUgYHNldENvbmZpZ2AgaW5zaWRlIGFuIGBldmFsSW5PYnNpZGlhbmAgY2xvc3VyZTpcbiAqXG4gKiAtICoqVGhlIHZhbHVlIGlzIHJlc3RvcmVkKiosIGluY2x1ZGluZyBkZWxldGluZyBhIGtleSB0aGF0IGhhZCBuZXZlciBiZWVuXG4gKiAgIHdyaXR0ZW4uIEFuIGlubGluZSBzZXR0ZXIgd3JpdGVzIGludG8gYSB2YXVsdCBzaGFyZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGVcbiAqICAgcnVuLCBzbyBldmVyeSBsYXRlciB0ZXN0IGluIHRoYXQgaW5zdGFuY2UgaW5oZXJpdHMgdGhlIGNoYW5nZSBcdTIwMTQgdGhlXG4gKiAgIGNyb3NzLXRlc3QgY29udGFtaW5hdGlvbiB0aGUgdW5jb25kaXRpb25hbCBkZWZhdWx0IGV4aXN0cyB0byBlbmQuXG4gKiAtICoqVGhlIGNhc3QgbGl2ZXMgaW4gb25lIHBsYWNlLioqIGBvYnNpZGlhbi10eXBpbmdzYCcgYENvbmZpZ0l0ZW1gIHVuaW9uIG9taXRzXG4gKiAgIGBzZXR0aW5nc1BvcG91dFdpbmRvd2AsIHNvIHRoZSBrZXkgY2Fubm90IGJlIHBhc3NlZCB0byBgZ2V0Q29uZmlnYCAvXG4gKiAgIGBzZXRDb25maWdgIHdpdGhvdXQgd2lkZW5pbmcgdGhlbTsgZXZlcnkgY29uc3VtZXIgdGhhdCB3cm90ZSB0aGUgc2V0dGVyXG4gKiAgIGlubGluZSByZXBlYXRlZCB0aGF0IGNhc3QuXG4gKiAtICoqUGVyLXRlc3QgZ3JhbnVsYXJpdHkuKiogQSBwYXJhbWV0ZXIgb24gdGhlIHByb3Zpc2lvbmluZyB3cml0ZSB3b3VsZCBiZVxuICogICBwZXItdmF1bHQsIGFuZCBhIHByb2plY3Qgd2hvc2UgdGVzdHMgc2hhcmUgb25lIHZhdWx0IFx1MjAxNCB0aGUgdXN1YWwgc2hhcGUgXHUyMDE0XG4gKiAgIGNhbm5vdCBoYXZlIGl0IGJvdGggd2F5cy5cbiAqXG4gKiBFdmVyeXRoaW5nIGhlcmUgcnVucyBvbiB0aGUgKipOb2RlKiogc2lkZS4gQW4gYGV2YWxJbk9ic2lkaWFuYCBjYWxsYmFjayBpc1xuICogc2VyaWFsaXplZCBpbnRvIHRoZSBkcml2ZW4gT2JzaWRpYW4gYW5kIGNhbiBpbXBvcnQgbm90aGluZywgc28gYSBoZWxwZXJcbiAqIGNhbGxhYmxlIGZyb20gaW5zaWRlIG9uZSBpcyBub3QgZXhwcmVzc2libGU7IGVhY2ggZnVuY3Rpb24gYmVsb3cgaXMgaXRzIG93blxuICogc2hvcnQgZXZhbCBpbnN0ZWFkLlxuICpcbiAqICMjIyBXaHkgcHJlc2VuY2UgaXMgcmVhZCBvZmYgYGFwcC52YXVsdC5jb25maWdgLCBub3QgZnJvbSBgZ2V0Q29uZmlnYFxuICpcbiAqIEJvdGggZmFjdHMgd2VyZSB2ZXJpZmllZCBpbiB0aGUgc2hpcHBlZCAxLjE0LjEgYnVuZGxlIHJhdGhlciB0aGFuIGFzc3VtZWQ6XG4gKlxuICogLSBgVmF1bHQuc2V0Q29uZmlnKGtleSwgdmFsdWUpYCAqKmRlbGV0ZXMqKiB0aGUga2V5IHdoZW4gYHZhbHVlYCBpc1xuICogICBgdW5kZWZpbmVkYCwgYW5kIGRvZXMgbm90aGluZyBhdCBhbGwgd2hlbiB0aGUgdmFsdWUgaXMgdW5jaGFuZ2VkIChubyBzYXZlLFxuICogICBubyBgY29uZmlnLWNoYW5nZWRgIGV2ZW50KS4gU28gYW4gZXhhY3QgcmVzdG9yZSBvZiBhIGtleSB0aGF0IHdhcyBuZXZlclxuICogICB3cml0dGVuIGlzIGV4cHJlc3NpYmxlLlxuICogLSBgVmF1bHQuZ2V0Q29uZmlnKGtleSlgIGZhbGxzIGJhY2sgdG8gT2JzaWRpYW4ncyBkZWZhdWx0cyB0YWJsZSB3aGVuIHRoZSBrZXlcbiAqICAgaXMgYWJzZW50LCBzbyBpdCBjYW5ub3QgdGVsbCAqdW5zZXQqIGZyb20gKnNldCB0byB0aGUgc2hpcHBlZCBkZWZhdWx0KiBcdTIwMTRcbiAqICAgcmVzdG9yaW5nIGZyb20gaXQgd291bGQgbGVhdmUgdGhlIGtleSB3cml0dGVuIHdoZXJlIGl0IGhhZCBub3QgYmVlbi5cbiAqICAgYGFwcC52YXVsdC5jb25maWdgIGhvbGRzIG9ubHkgdGhlIGtleXMgY2hhbmdlZCBmcm9tIHRoZWlyIGRlZmF1bHQsIHNvXG4gKiAgIGBPYmplY3QuaGFzT3duYCBvbiBpdCBpcyB0aGUgc2lnbmFsIGEgcmVzdG9yZSBuZWVkcy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gSW50ZWdyYXRpb24tdGltZSBjb2RlIChkcml2ZXMgYSBsaXZlIE9ic2lkaWFuIHZpYSBldmFsSW5PYnNpZGlhbikgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRXZhbEluT2JzaWRpYW5QYXJhbXMsXG4gIEdlbmVyaWNPYmplY3Rcbn0gZnJvbSAnLi9ldmFsLWluLW9ic2lkaWFuLm1qcyc7XG5pbXBvcnQgdHlwZSB7IE9ic2lkaWFuVHJhbnNwb3J0IH0gZnJvbSAnLi90cmFuc3BvcnQubWpzJztcblxuaW1wb3J0IHsgZXZhbEluT2JzaWRpYW4gfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4ubWpzJztcbmltcG9ydCB7IG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllcyB9IGZyb20gJy4vbm9ybWFsaXplLW9wdGlvbmFsLXByb3BlcnRpZXMubWpzJztcblxuLyoqXG4gKiBXaGF0IHtAbGluayBzZXRBcHBDb25maWd9IGNhcHR1cmVkIGJlZm9yZSBpdCB3cm90ZSwgYW5kIGFsbFxuICoge0BsaW5rIHJlc3RvcmVBcHBDb25maWd9IG5lZWRzIHRvIHB1dCB0aGUga2V5IGJhY2sgZXhhY3RseSBhcyBpdCB3YXMgXHUyMDE0XG4gKiBpbmNsdWRpbmcgcHV0dGluZyBpdCBiYWNrIHRvICphYnNlbnQqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcENvbmZpZ1Jlc3RvcmUge1xuICAvKipcbiAgICogVGhlIGtleSB0aGF0IHdhcyB3cml0dGVuLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlnS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHZhdWx0J3MgY29uZmlnIGNhcnJpZWQgdGhlIGtleSBhdCBhbGwgYmVmb3JlIHRoZSB3cml0ZS4gYGZhbHNlYFxuICAgKiBtZWFucyB0aGUgdmF1bHQgd2FzIHJ1bm5pbmcgb24gT2JzaWRpYW4ncyBvd24gZGVmYXVsdCwgYW5kIHJlc3RvcmluZyBpcyBhXG4gICAqIGRlbGV0ZSByYXRoZXIgdGhhbiBhIHdyaXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNQcmVzZW50OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgdHJhbnNwb3J0IHRoZSBjYXB0dXJlIHdhcyBtYWRlIGFnYWluc3QsIHNvIHRoZSByZXN0b3JlIGxhbmRzIGluIHRoZVxuICAgKiBzYW1lIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNwb3J0PzogT2JzaWRpYW5UcmFuc3BvcnQ7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0aGUga2V5IGhlbGQsIG9yIGB1bmRlZmluZWRgIHdoZW4ge0BsaW5rIGlzUHJlc2VudH0gaXMgYGZhbHNlYC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgdGhlIGNhcHR1cmUgd2FzIG1hZGUgYWdhaW5zdCwgc28gdGhlIHJlc3RvcmUgbGFuZHMgaW4gdGhlIHNhbWVcbiAgICogaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSB2YXVsdFBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGdldEFwcENvbmZpZ30sIGFuZCB0aGUgc2hhcmVkIHNoYXBlIG9mIHRoZSB3cml0ZXJzIGJlbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcENvbmZpZ1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgY29uZmlnIGtleSwgZS5nLiBgc2V0dGluZ3NQb3BvdXRXaW5kb3dgLiBOb3QgbmFycm93ZWQgdG9cbiAgICogYG9ic2lkaWFuLXR5cGluZ3NgJyBgQ29uZmlnSXRlbWA6IHRoYXQgdW5pb24gb21pdHMga2V5cyBPYnNpZGlhbiByZWFsbHlcbiAgICogcmVhZHMsIGBzZXR0aW5nc1BvcG91dFdpbmRvd2AgYW1vbmcgdGhlbSwgd2hpY2ggaXMgdGhlIHdob2xlIHJlYXNvbiBhXG4gICAqIGNvbnN1bWVyIGhhZCB0byB3aWRlbiB0aGUgc2V0dGVyIGJ5IGhhbmQuXG4gICAqL1xuICByZWFkb25seSBjb25maWdLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIHRyYW5zcG9ydC4gV2hlbiBvbWl0dGVkLCB0aGUgdHJhbnNwb3J0IHRoZSBjdXJyZW50IHRlc3RcbiAgICogY29udGV4dCBpcyBkcml2aW5nIGlzIHVzZWQuXG4gICAqL1xuICByZWFkb25seSB0cmFuc3BvcnQ/OiBPYnNpZGlhblRyYW5zcG9ydDtcblxuICAvKipcbiAgICogVGhlIHZhdWx0IHdob3NlIE9ic2lkaWFuIGluc3RhbmNlIHRvIHJlYWQgb3Igd3JpdGUuIFdoZW4gb21pdHRlZCwgdGhlXG4gICAqIGN1cnJlbnQgdGVzdCBjb250ZXh0J3MgdmF1bHQgaXMgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2V0QXBwQ29uZmlnfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXRBcHBDb25maWdQYXJhbXMgZXh0ZW5kcyBHZXRBcHBDb25maWdQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHZhbHVlIHRvIHdyaXRlLiBgdW5kZWZpbmVkYCBkZWxldGVzIHRoZSBrZXksIGxlYXZpbmcgT2JzaWRpYW4ncyBvd25cbiAgICogZGVmYXVsdCBpbiBmb3JjZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiB1bmtub3duO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayB3aXRoQXBwQ29uZmlnfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBXaGF0IHRoZSB3cmFwcGVkIHdvcmsgcmV0dXJucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXaXRoQXBwQ29uZmlnUGFyYW1zPFQ+IGV4dGVuZHMgU2V0QXBwQ29uZmlnUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSB3b3JrIHRvIHJ1biB3aGlsZSB0aGUga2V5IGhvbGRzIHtAbGluayBTZXRBcHBDb25maWdQYXJhbXMudmFsdWV9LlxuICAgKi9cbiAgcmVhZG9ubHkgY2FsbGJhY2s6ICh0aGlzOiB2b2lkKSA9PiBQcm9taXNlPFQ+O1xufVxuXG4vKipcbiAqIFdoYXQgYSB3cml0ZSBjYXB0dXJlZCBhYm91dCB0aGUga2V5J3Mgc3RhdGUgYmVmb3JlIGl0IHdyb3RlLlxuICovXG5pbnRlcmZhY2UgQ2FwdHVyZWRWYWx1ZSB7XG4gIGlzUHJlc2VudDogYm9vbGVhbjtcbiAgdmFsdWU6IHVua25vd247XG59XG5cbi8qKlxuICogVGhlIHNlcmlhbGl6ZWQgcGF5bG9hZCBvZiBhIHJlYWQuXG4gKi9cbmludGVyZmFjZSBSZWFkSW5wdXQgZXh0ZW5kcyBHZW5lcmljT2JqZWN0IHtcbiAgY29uZmlnS2V5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHNlcmlhbGl6ZWQgcGF5bG9hZCBvZiBhIHJlc3RvcmUuXG4gKi9cbmludGVyZmFjZSBSZXN0b3JlSW5wdXQgZXh0ZW5kcyBHZW5lcmljT2JqZWN0IHtcbiAgY29uZmlnS2V5OiBzdHJpbmc7XG4gIGlzUHJlc2VudDogYm9vbGVhbjtcbiAgdmFsdWU6IHVua25vd247XG59XG5cbi8qKlxuICogVGhlIHNlcmlhbGl6ZWQgcGF5bG9hZCBvZiBhIHdyaXRlLlxuICovXG5pbnRlcmZhY2UgV3JpdGVJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3Qge1xuICBjb25maWdLZXk6IHN0cmluZztcbiAgdmFsdWU6IHVua25vd247XG59XG5cbi8qKlxuICogUmVhZHMgYSB2YXVsdCBjb25maWcga2V5LCByZXNvbHZpbmcgdGhlIHRyYW5zcG9ydCBhbmQgdmF1bHQgZnJvbSB0aGUgY3VycmVudFxuICogdGVzdCBjb250ZXh0LlxuICpcbiAqIFRoaXMgaXMgT2JzaWRpYW4ncyBvd24gYFZhdWx0LmdldENvbmZpZ2AsIHNvIGFuIGFic2VudCBrZXkgcmVhZHMgYmFjayBhc1xuICogT2JzaWRpYW4ncyAqKmRlZmF1bHQqKiBmb3IgaXQgcmF0aGVyIHRoYW4gYXMgYHVuZGVmaW5lZGAgXHUyMDE0IHNlZSB0aGlzIGZpbGUnc1xuICogaGVhZGVyLiBVc2Uge0BsaW5rIHNldEFwcENvbmZpZ30ncyB7QGxpbmsgQXBwQ29uZmlnUmVzdG9yZS5pc1ByZXNlbnR9IHdoZW4gdGhlXG4gKiBkaWZmZXJlbmNlIG1hdHRlcnMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBrZXkgdG8gcmVhZCwgYW5kIHRyYW5zcG9ydCAvIHZhdWx0IG92ZXJyaWRlcy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUga2V5J3MgZWZmZWN0aXZlIHZhbHVlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXBwQ29uZmlnKHBhcmFtczogR2V0QXBwQ29uZmlnUGFyYW1zKTogUHJvbWlzZTx1bmtub3duPiB7XG4gIGNvbnN0IHtcbiAgICBjb25maWdLZXksXG4gICAgdHJhbnNwb3J0LFxuICAgIHZhdWx0UGF0aFxuICB9ID0gcGFyYW1zO1xuXG4gIHJldHVybiBhd2FpdCBldmFsSW5PYnNpZGlhbihub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8RXZhbEluT2JzaWRpYW5QYXJhbXM8UmVhZElucHV0LCB1bmtub3duPj4oe1xuICAgIGNhbGxiYWNrKHsgYXBwLCBjb25maWdLZXk6IGtleSB9KTogdW5rbm93biB7XG4gICAgICBjb25zdCBnZXRDb25maWcgPSBhcHAudmF1bHQuZ2V0Q29uZmlnLmJpbmQoYXBwLnZhdWx0KSBhcyAoY29uZmlnS2V5OiBzdHJpbmcpID0+IHVua25vd247XG4gICAgICByZXR1cm4gZ2V0Q29uZmlnKGtleSk7XG4gICAgfSxcbiAgICBpbnB1dDogeyBjb25maWdLZXkgfSxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmF1bHRQYXRoXG4gIH0pKTtcbn1cblxuLyoqXG4gKiBQdXRzIGEga2V5IGJhY2sgZXhhY3RseSBhcyB7QGxpbmsgc2V0QXBwQ29uZmlnfSBmb3VuZCBpdCBcdTIwMTQgd3JpdGluZyB0aGUgY2FwdHVyZWRcbiAqIHZhbHVlIGJhY2ssIG9yICoqZGVsZXRpbmcqKiB0aGUga2V5IHdoZW4gdGhlIHZhdWx0IGhhZCBuZXZlciBjYXJyaWVkIGl0LlxuICpcbiAqIFRoZSBgYmVmb3JlQWxsYCAvIGBhZnRlckFsbGAgaGFsZiBvZiB0aGUgc2VhbS4gQSB0ZXN0IHRoYXQgc2NvcGVzIHRoZSBjaGFuZ2VcbiAqIHRvIG9uZSBjYWxsYmFjayB3YW50cyB7QGxpbmsgd2l0aEFwcENvbmZpZ30gaW5zdGVhZCwgd2hpY2ggY2Fubm90IGZvcmdldCB0aGVcbiAqIHJlc3RvcmUuXG4gKlxuICogQHBhcmFtIHJlc3RvcmUgLSBUaGUgdG9rZW4ge0BsaW5rIHNldEFwcENvbmZpZ30gcmV0dXJuZWQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgdGhlIGtleSBpcyBiYWNrIGFzIGl0IHdhcy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc3RvcmVBcHBDb25maWcocmVzdG9yZTogQXBwQ29uZmlnUmVzdG9yZSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgY29uZmlnS2V5LFxuICAgIGlzUHJlc2VudCxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmFsdWUsXG4gICAgdmF1bHRQYXRoXG4gIH0gPSByZXN0b3JlO1xuXG4gIGF3YWl0IGV2YWxJbk9ic2lkaWFuKG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxFdmFsSW5PYnNpZGlhblBhcmFtczxSZXN0b3JlSW5wdXQsIHVuZGVmaW5lZD4+KHtcbiAgICBjYWxsYmFjayh7XG4gICAgICBhcHAsXG4gICAgICBjb25maWdLZXk6IGtleSxcbiAgICAgIGlzUHJlc2VudDogd2FzUHJlc2VudCxcbiAgICAgIHZhbHVlOiBwcmV2aW91c1ZhbHVlXG4gICAgfSk6IHVuZGVmaW5lZCB7XG4gICAgICBjb25zdCBzZXRDb25maWcgPSBhcHAudmF1bHQuc2V0Q29uZmlnLmJpbmQoYXBwLnZhdWx0KSBhcyAoY29uZmlnS2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSA9PiB2b2lkO1xuXG4gICAgICAvLyBgdW5kZWZpbmVkYCBpcyBub3QgYSBuby1vcCBoZXJlOiBgc2V0Q29uZmlnYCBkZWxldGVzIHRoZSBrZXkgZm9yIGl0LFxuICAgICAgLy8gd2hpY2ggaXMgdGhlIG9ubHkgd2F5IHRvIHJlc3RvcmUgb25lIHRoZSB2YXVsdCBuZXZlciBjYXJyaWVkLlxuICAgICAgc2V0Q29uZmlnKGtleSwgd2FzUHJlc2VudCA/IHByZXZpb3VzVmFsdWUgOiB1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgIGNvbmZpZ0tleSxcbiAgICAgIGlzUHJlc2VudCxcbiAgICAgIHZhbHVlXG4gICAgfSxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmF1bHRQYXRoXG4gIH0pKTtcbn1cblxuLyoqXG4gKiBXcml0ZXMgYSB2YXVsdCBjb25maWcga2V5LCBjYXB0dXJpbmcgd2hhdCBpdCBoZWxkIGZpcnN0IHNvIHRoZSB3cml0ZSBjYW4gYmVcbiAqIHVuZG9uZSBleGFjdGx5LlxuICpcbiAqIE9ic2lkaWFuIHBlcnNpc3RzIHRoZSBjaGFuZ2UgKGByZXF1ZXN0U2F2ZUNvbmZpZ2ApIGFuZCBmaXJlcyBpdHNcbiAqIGBjb25maWctY2hhbmdlZGAgZXZlbnQsIGJvdGggb2Ygd2hpY2ggdGhlIGFwcCdzIG93biBzZXR0aW5ncyBVSSBkb2VzIHRvbyBcdTIwMTQgc29cbiAqIGFueXRoaW5nIGxpc3RlbmluZyByZWFjdHMgYXMgaXQgd291bGQgdG8gYSB1c2VyIGZsaXBwaW5nIHRoZSB0b2dnbGUuIEEgd3JpdGVcbiAqIG9mIHRoZSB2YWx1ZSB0aGUga2V5IGFscmVhZHkgaG9sZHMgaXMgYSBuby1vcCBpbiBPYnNpZGlhbiBpdHNlbGYsIGFuZCB0aGVcbiAqIHJldHVybmVkIHRva2VuIHN0aWxsIGRlc2NyaWJlcyB0aGUgc3RhdGUgdGhhdCBwcmVjZWRlZCBpdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGtleSwgdGhlIHZhbHVlLCBhbmQgdHJhbnNwb3J0IC8gdmF1bHQgb3ZlcnJpZGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSB7QGxpbmsgQXBwQ29uZmlnUmVzdG9yZX0gdG9rZW4gdG9cbiAqICAgaGFuZCB7QGxpbmsgcmVzdG9yZUFwcENvbmZpZ30uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRBcHBDb25maWcocGFyYW1zOiBTZXRBcHBDb25maWdQYXJhbXMpOiBQcm9taXNlPEFwcENvbmZpZ1Jlc3RvcmU+IHtcbiAgY29uc3Qge1xuICAgIGNvbmZpZ0tleSxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmFsdWUsXG4gICAgdmF1bHRQYXRoXG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgY2FwdHVyZWQgPSBhd2FpdCBldmFsSW5PYnNpZGlhbihub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8RXZhbEluT2JzaWRpYW5QYXJhbXM8V3JpdGVJbnB1dCwgQ2FwdHVyZWRWYWx1ZT4+KHtcbiAgICBjYWxsYmFjayh7XG4gICAgICBhcHAsXG4gICAgICBjb25maWdLZXk6IGtleSxcbiAgICAgIHZhbHVlOiBuZXdWYWx1ZVxuICAgIH0pOiBDYXB0dXJlZFZhbHVlIHtcbiAgICAgIC8vIGBjb25maWdgIGNhcnJpZXMgT05MWSB0aGUga2V5cyBjaGFuZ2VkIGZyb20gdGhlaXIgZGVmYXVsdCwgd2hpY2ggaXMgd2hhdFxuICAgICAgLy8gbWFrZXMgaXQgdGhlIHByZXNlbmNlIHNpZ25hbDsgYGdldENvbmZpZ2Agc3Vic3RpdHV0ZXMgdGhlIGRlZmF1bHQgYW5kIHNvXG4gICAgICAvLyBjYW5ub3QgdGVsbCBhbiB1bnNldCBrZXkgZnJvbSBvbmUgc2V0IHRvIHRoYXQgZGVmYXVsdC4gVGhlIHZhbHVlIGl0c2VsZlxuICAgICAgLy8gc3RpbGwgY29tZXMgZnJvbSBgZ2V0Q29uZmlnYCwgd2hpY2ggcmV0dXJucyB0aGUgc3RvcmVkIG9uZSB3aGVuZXZlclxuICAgICAgLy8gdGhlcmUgaXMgb25lIFx1MjAxNCBzbyB0aGUgcmVhZCBuZWVkcyBubyBjYXN0IG9mIHRoZSBjb25maWcgb2JqZWN0LlxuICAgICAgY29uc3QgaXNQcmVzZW50ID0gT2JqZWN0Lmhhc093bihhcHAudmF1bHQuY29uZmlnLCBrZXkpO1xuXG4gICAgICBjb25zdCBnZXRDb25maWcgPSBhcHAudmF1bHQuZ2V0Q29uZmlnLmJpbmQoYXBwLnZhdWx0KSBhcyAoY29uZmlnS2V5OiBzdHJpbmcpID0+IHVua25vd247XG4gICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gaXNQcmVzZW50ID8gZ2V0Q29uZmlnKGtleSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IHNldENvbmZpZyA9IGFwcC52YXVsdC5zZXRDb25maWcuYmluZChhcHAudmF1bHQpIGFzIChjb25maWdLZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pID0+IHZvaWQ7XG4gICAgICBzZXRDb25maWcoa2V5LCBuZXdWYWx1ZSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlzUHJlc2VudCxcbiAgICAgICAgdmFsdWU6IHByZXZpb3VzVmFsdWVcbiAgICAgIH07XG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgY29uZmlnS2V5LFxuICAgICAgdmFsdWVcbiAgICB9LFxuICAgIHRyYW5zcG9ydCxcbiAgICB2YXVsdFBhdGhcbiAgfSkpO1xuXG4gIHJldHVybiBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8QXBwQ29uZmlnUmVzdG9yZT4oe1xuICAgIGNvbmZpZ0tleSxcbiAgICBpc1ByZXNlbnQ6IGNhcHR1cmVkLmlzUHJlc2VudCxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmFsdWU6IGNhcHR1cmVkLnZhbHVlLFxuICAgIHZhdWx0UGF0aFxuICB9KTtcbn1cblxuLyoqXG4gKiBSdW5zIHdvcmsgd2l0aCBhIHZhdWx0IGNvbmZpZyBrZXkgdGVtcG9yYXJpbHkgc2V0LCBhbmQgcHV0cyB0aGUga2V5IGJhY2tcbiAqIGFmdGVyd2FyZHMgXHUyMDE0IG9uIGEgdGhyb3cgYXMgbXVjaCBhcyBvbiBhIHJldHVybi5cbiAqXG4gKiBUaGUgc2hhcGUgYSBwb3BvdXQtc3ViamVjdCB0ZXN0IHdhbnRzOlxuICpcbiAqIGBgYHRzXG4gKiBhd2FpdCB3aXRoQXBwQ29uZmlnKHtcbiAqICAgYXN5bmMgY2FsbGJhY2soKSB7XG4gKiAgICAgYXdhaXQgZXZhbEluT2JzaWRpYW4oeyAuLi4gfSk7IC8vIHRoZSBzZXR0aW5ncyB3aW5kb3cgaXMgYSBwb3BvdXQgaW4gaGVyZVxuICogICB9LFxuICogICBjb25maWdLZXk6ICdzZXR0aW5nc1BvcG91dFdpbmRvdycsXG4gKiAgIHZhbHVlOiB0cnVlLFxuICogICB2YXVsdFBhdGhcbiAqIH0pO1xuICogYGBgXG4gKlxuICogVGhlIGNhbGxiYWNrIHJ1bnMgb24gdGhlICoqTm9kZSoqIHNpZGUsIHNvIGl0IGlzIGZyZWUgdG8gbWFrZSBzZXZlcmFsIGV2YWxzLFxuICogdGFrZSBhIHNjcmVlbnNob3QsIG9yIGFzc2VydCBiZXR3ZWVuIHRoZW0uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gV2hhdCB0aGUgd3JhcHBlZCB3b3JrIHJldHVybnMuXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGtleSwgdGhlIHZhbHVlIHRvIGhvbGQgaXQgYXQsIHRoZSB3b3JrLCBhbmQgdHJhbnNwb3J0IC9cbiAqICAgdmF1bHQgb3ZlcnJpZGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHdoYXRldmVyIHRoZSBjYWxsYmFjayByZXR1cm5lZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdpdGhBcHBDb25maWc8VD4ocGFyYW1zOiBXaXRoQXBwQ29uZmlnUGFyYW1zPFQ+KTogUHJvbWlzZTxUPiB7XG4gIGNvbnN0IHtcbiAgICBjYWxsYmFjayxcbiAgICBjb25maWdLZXksXG4gICAgdHJhbnNwb3J0LFxuICAgIHZhbHVlLFxuICAgIHZhdWx0UGF0aFxuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHJlc3RvcmUgPSBhd2FpdCBzZXRBcHBDb25maWcobm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPFNldEFwcENvbmZpZ1BhcmFtcz4oe1xuICAgIGNvbmZpZ0tleSxcbiAgICB0cmFuc3BvcnQsXG4gICAgdmFsdWUsXG4gICAgdmF1bHRQYXRoXG4gIH0pKTtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBjYWxsYmFjaygpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHJlc3RvcmVBcHBDb25maWcocmVzdG9yZSk7XG4gIH1cbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICJBQTBEQSxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLG1DQUFtQztBQWtJNUMsZUFBc0IsYUFBYSxRQUE4QztBQUMvRSxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBRUosU0FBTyxNQUFNLGVBQWUsNEJBQXNFO0FBQUEsSUFDaEcsU0FBUyxFQUFFLEtBQUssV0FBVyxJQUFJLEdBQVk7QUFDekMsWUFBTSxZQUFZLElBQUksTUFBTSxVQUFVLEtBQUssSUFBSSxLQUFLO0FBQ3BELGFBQU8sVUFBVSxHQUFHO0FBQUEsSUFDdEI7QUFBQSxJQUNBLE9BQU8sRUFBRSxVQUFVO0FBQUEsSUFDbkI7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDLENBQUM7QUFDSjtBQWFBLGVBQXNCLGlCQUFpQixTQUEwQztBQUMvRSxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLGVBQWUsNEJBQTJFO0FBQUEsSUFDOUYsU0FBUztBQUFBLE1BQ1A7QUFBQSxNQUNBLFdBQVc7QUFBQSxNQUNYLFdBQVc7QUFBQSxNQUNYLE9BQU87QUFBQSxJQUNULEdBQWM7QUFDWixZQUFNLFlBQVksSUFBSSxNQUFNLFVBQVUsS0FBSyxJQUFJLEtBQUs7QUFJcEQsZ0JBQVUsS0FBSyxhQUFhLGdCQUFnQixNQUFTO0FBQUEsSUFDdkQ7QUFBQSxJQUNBLE9BQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUMsQ0FBQztBQUNKO0FBZ0JBLGVBQXNCLGFBQWEsUUFBdUQ7QUFDeEYsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLFdBQVcsTUFBTSxlQUFlLDRCQUE2RTtBQUFBLElBQ2pILFNBQVM7QUFBQSxNQUNQO0FBQUEsTUFDQSxXQUFXO0FBQUEsTUFDWCxPQUFPO0FBQUEsSUFDVCxHQUFrQjtBQU1oQixZQUFNLFlBQVksT0FBTyxPQUFPLElBQUksTUFBTSxRQUFRLEdBQUc7QUFFckQsWUFBTSxZQUFZLElBQUksTUFBTSxVQUFVLEtBQUssSUFBSSxLQUFLO0FBQ3BELFlBQU0sZ0JBQWdCLFlBQVksVUFBVSxHQUFHLElBQUk7QUFFbkQsWUFBTSxZQUFZLElBQUksTUFBTSxVQUFVLEtBQUssSUFBSSxLQUFLO0FBQ3BELGdCQUFVLEtBQUssUUFBUTtBQUV2QixhQUFPO0FBQUEsUUFDTDtBQUFBLFFBQ0EsT0FBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsSUFDQSxPQUFPO0FBQUEsTUFDTDtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUMsQ0FBQztBQUVGLFNBQU8sNEJBQThDO0FBQUEsSUFDbkQ7QUFBQSxJQUNBLFdBQVcsU0FBUztBQUFBLElBQ3BCO0FBQUEsSUFDQSxPQUFPLFNBQVM7QUFBQSxJQUNoQjtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBMkJBLGVBQXNCLGNBQWlCLFFBQTRDO0FBQ2pGLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sVUFBVSxNQUFNLGFBQWEsNEJBQWdEO0FBQUEsSUFDakY7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUMsQ0FBQztBQUVGLE1BQUk7QUFDRixXQUFPLE1BQU0sU0FBUztBQUFBLEVBQ3hCLFVBQUU7QUFDQSxVQUFNLGlCQUFpQixPQUFPO0FBQUEsRUFDaEM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -48,7 +48,7 @@ export interface CdpConnection extends AsyncDisposable {
|
|
|
48
48
|
* @param params - The exact size to capture at. Omit to capture the window at its natural size.
|
|
49
49
|
* @returns A {@link Promise} that resolves to the raw PNG bytes.
|
|
50
50
|
*/
|
|
51
|
-
captureScreenshot(params?: Except<CaptureScreenshotParams, 'cwd'>)
|
|
51
|
+
captureScreenshot: (params?: Except<CaptureScreenshotParams, 'cwd'>) => Promise<Uint8Array>;
|
|
52
52
|
/**
|
|
53
53
|
* The base CDP URL, e.g. `http://localhost:51888`.
|
|
54
54
|
*/
|
|
@@ -71,7 +71,7 @@ export interface CdpConnection extends AsyncDisposable {
|
|
|
71
71
|
*
|
|
72
72
|
* @returns A {@link Promise} that resolves once disposal completes.
|
|
73
73
|
*/
|
|
74
|
-
dispose()
|
|
74
|
+
dispose: () => Promise<void>;
|
|
75
75
|
/**
|
|
76
76
|
* The runtime Electron compatibility verdict for an owned instance, read live
|
|
77
77
|
* after boot: whether the Electron version it is actually running is new enough
|
|
@@ -91,7 +91,7 @@ export interface CdpConnection extends AsyncDisposable {
|
|
|
91
91
|
* @param params - The evaluation parameters (`callback`, optional `input`/`contextId`).
|
|
92
92
|
* @returns A {@link Promise} that resolves to the return value of `callback`.
|
|
93
93
|
*/
|
|
94
|
-
evalInObsidian<Input extends GenericObject, Result, TContextId extends ContextId<unknown> | undefined = undefined>(params: Except<EvalInObsidianParams<Input, Result, TContextId>, 'transport' | 'vaultPath'>)
|
|
94
|
+
evalInObsidian: <Input extends GenericObject, Result, TContextId extends ContextId<unknown> | undefined = undefined>(params: Except<EvalInObsidianParams<Input, Result, TContextId>, 'transport' | 'vaultPath'>) => Promise<Result>;
|
|
95
95
|
/**
|
|
96
96
|
* Evaluates a raw JavaScript expression inside Obsidian and returns the
|
|
97
97
|
* normalized string result (e.g. `'5'`, a JSON string, or `'(no output)'`).
|
|
@@ -99,7 +99,7 @@ export interface CdpConnection extends AsyncDisposable {
|
|
|
99
99
|
* @param expression - A self-contained JavaScript expression.
|
|
100
100
|
* @returns A {@link Promise} that resolves to the raw result string.
|
|
101
101
|
*/
|
|
102
|
-
invoke(expression: string)
|
|
102
|
+
invoke: (expression: string) => Promise<string>;
|
|
103
103
|
/**
|
|
104
104
|
* The CDP port the instance is reachable on (the free port chosen for an
|
|
105
105
|
* owned instance, or the attached {@link ConnectToCdpOptions.port}).
|