obsidian-integration-testing 4.1.6 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/lib/cjs/context-id.cjs +1 -1
  2. package/dist/lib/cjs/dismiss-trust-dialog.cjs +45 -0
  3. package/dist/lib/cjs/dismiss-trust-dialog.d.cts +36 -0
  4. package/dist/lib/cjs/enable-plugin.cjs +1 -1
  5. package/dist/lib/cjs/library.cjs +1 -1
  6. package/dist/lib/cjs/namespace-bootstrap.cjs +6 -2
  7. package/dist/lib/cjs/obsidian-config.cjs +15 -1
  8. package/dist/lib/cjs/obsidian-config.d.cts +11 -0
  9. package/dist/lib/cjs/obsidian-executable.cjs +95 -0
  10. package/dist/lib/cjs/obsidian-executable.d.cts +24 -0
  11. package/dist/lib/cjs/transport-desktop-cdp.cjs +42 -9
  12. package/dist/lib/cjs/transport-desktop-cdp.d.cts +23 -0
  13. package/dist/lib/cjs/transport-desktop-cli.cjs +43 -45
  14. package/dist/lib/cjs/transport-desktop-cli.d.cts +8 -3
  15. package/dist/lib/esm/context-id.mjs +1 -1
  16. package/dist/lib/esm/dismiss-trust-dialog.d.mts +36 -0
  17. package/dist/lib/esm/dismiss-trust-dialog.mjs +21 -0
  18. package/dist/lib/esm/enable-plugin.mjs +1 -1
  19. package/dist/lib/esm/library.mjs +1 -1
  20. package/dist/lib/esm/namespace-bootstrap.mjs +6 -2
  21. package/dist/lib/esm/obsidian-config.d.mts +11 -0
  22. package/dist/lib/esm/obsidian-config.mjs +14 -1
  23. package/dist/lib/esm/obsidian-executable.d.mts +24 -0
  24. package/dist/lib/esm/obsidian-executable.mjs +61 -0
  25. package/dist/lib/esm/transport-desktop-cdp.d.mts +23 -0
  26. package/dist/lib/esm/transport-desktop-cdp.mjs +42 -9
  27. package/dist/lib/esm/transport-desktop-cli.d.mts +8 -3
  28. package/dist/lib/esm/transport-desktop-cli.mjs +44 -46
  29. package/dist/obsidian-integration-testing-4.2.1.tgz +0 -0
  30. package/package.json +1 -1
  31. package/dist/obsidian-integration-testing-4.1.6.tgz +0 -0
@@ -80,4 +80,4 @@ class ContextId {
80
80
  0 && (module.exports = {
81
81
  ContextId
82
82
  });
83
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbnRleHQtaWQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUeXBlZCBjb250ZXh0IGlkZW50aWZpZXJzIGZvciBwZXJzaXN0aW5nIG5vbi1zZXJpYWxpemFibGUgdmFsdWVzXG4gKiBhY3Jvc3Mge0BsaW5rIGV2YWxJbk9ic2lkaWFufSBjYWxscy5cbiAqL1xuXG5pbXBvcnQgeyBldmFsSW5PYnNpZGlhbiB9IGZyb20gJy4vZXZhbC1pbi1vYnNpZGlhbi5janMnO1xuXG4vKipcbiAqIFdyYXBzIGEge0BsaW5rIENvbnRleHRPZn0gZXh0cmFjdGlvbiBpbnRvIGFuIG9iamVjdCB3aXRoIGEgYGNvbnRleHRgIHByb3BlcnR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRBcmdzPFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgY29udGV4dDogQ29udGV4dE9mPFRDb250ZXh0SWQ+O1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBjb250ZXh0IHR5cGUgZnJvbSBhIHtAbGluayBDb250ZXh0SWR9LlxuICovXG5leHBvcnQgdHlwZSBDb250ZXh0T2Y8VD4gPSBUIGV4dGVuZHMgQ29udGV4dElkPGluZmVyIENvbnRleHQ+ID8gQ29udGV4dCA6IG5ldmVyO1xuXG4vKipcbiAqIEEgdHlwZWQgY29udGV4dCBpZGVudGlmaWVyIGZvciBwZXJzaXN0aW5nIG5vbi1zZXJpYWxpemFibGUgdmFsdWVzXG4gKiBhY3Jvc3Mge0BsaW5rIGV2YWxJbk9ic2lkaWFufSBjYWxscy5cbiAqXG4gKiBUaGUgY29udGV4dCBpcyBhIHBlcnNpc3RlbnQgb2JqZWN0IHN0b3JlZCBvbiBgd2luZG93YCBpbiB0aGUgT2JzaWRpYW4gcHJvY2Vzcy5cbiAqIEFsbCBjYWxscyBzaGFyaW5nIHRoZSBzYW1lIGBDb250ZXh0SWRgIHNoYXJlIHRoZSBzYW1lIGNvbnRleHQgb2JqZWN0LFxuICogYWxsb3dpbmcgbm9uLXNlcmlhbGl6YWJsZSB2YWx1ZXMgKGUuZy4gYFRGaWxlYCwgYEVkaXRvcmApIHRvIHN1cnZpdmUgYWNyb3NzIGNhbGxzLlxuICpcbiAqIEltcGxlbWVudHMgYEFzeW5jRGlzcG9zYWJsZWAgZm9yIHVzZSB3aXRoIGBhd2FpdCB1c2luZ2AuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb250ZXh0SWQ8X0NvbnRleHQ+IGltcGxlbWVudHMgQXN5bmNEaXNwb3NhYmxlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGNvbnRleHQgaWQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgU0xJQ0VfU1RBUlQgPSAyO1xuICAgIHRoaXMuaWQgPSBgX19jdHhfJHtTdHJpbmcoTWF0aC5yYW5kb20oKSkuc2xpY2UoU0xJQ0VfU1RBUlQpfWA7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGlzIGNvbnRleHQgZnJvbSB0aGUgT2JzaWRpYW4gcHJvY2Vzcy5cbiAgICpcbiAgICogQHBhcmFtIHZhdWx0UGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBPYnNpZGlhbiB2YXVsdC4gRGVmYXVsdHMgdG8gYHByb2Nlc3MuY3dkKClgLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRpc3Bvc2UodmF1bHRQYXRoPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgZXZhbEluT2JzaWRpYW4oe1xuICAgICAgYXJnczogeyBpZDogdGhpcy5pZCB9LFxuICAgICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFNlcmlhbGl6ZWQgdmlhIHRvU3RyaW5nKCkgYW5kIGV4ZWN1dGVkIGluc2lkZSB0aGUgT2JzaWRpYW4gcHJvY2Vzcy4gQ292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cy4gKi9cbiAgICAgIGZuKHsgaWQgfSk6IHZvaWQge1xuICAgICAgICBpbnRlcmZhY2UgSW50ZWdyYXRpb25UZXN0aW5nQ29udGV4dHMge1xuICAgICAgICAgIGNvbnRleHRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgfVxuICAgICAgICBpbnRlcmZhY2UgSW50ZWdyYXRpb25UZXN0aW5nSG9sZGVyIHtcbiAgICAgICAgICBfX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nOiBJbnRlZ3JhdGlvblRlc3RpbmdDb250ZXh0cztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCAtLSBTZXJpYWxpemVkIGZ1bmN0aW9uIHJ1bnMgaW4gT2JzaWRpYW4gd2hlcmUgSmVzdCdzIGdsb2JhbCB0eXBlIGRvZXNuJ3QgYXBwbHkuXG4gICAgICAgIGNvbnN0IGhvbGRlciA9IHdpbmRvdyBhcyB1bmtub3duIGFzIFBhcnRpYWw8SW50ZWdyYXRpb25UZXN0aW5nSG9sZGVyPjtcbiAgICAgICAgaWYgKGhvbGRlci5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy5jb250ZXh0cykge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgLS0gTm8gb3RoZXIgd2F5LlxuICAgICAgICAgIGRlbGV0ZSBob2xkZXIuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZy5jb250ZXh0c1tpZF07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgICAgc2hvdWxkU2tpcFByZWZsaWdodENoZWNrczogdHJ1ZSxcbiAgICAgIC4uLih2YXVsdFBhdGggPT09IHVuZGVmaW5lZCA/IHt9IDogeyB2YXVsdFBhdGggfSlcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwb3NlcyB0aGlzIGNvbnRleHQgaWQuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbnRleHQgaWQgaXMgZGlzcG9zZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGlzcG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnRleHQgaWQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb250ZXh0IGlkLlxuICAgKi9cbiAgcHVibGljIHRvSlNPTigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29udGV4dCBpZC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29udGV4dCBpZC5cbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsOEJBQStCO0FBd0J4QixNQUFNLFVBQStDO0FBQUEsRUFDekM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtWLGNBQWM7QUFDbkIsVUFBTSxjQUFjO0FBQ3BCLFNBQUssS0FBSyxTQUFTLE9BQU8sS0FBSyxPQUFPLENBQUMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUFBLEVBQzdEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsTUFBYSxRQUFRLFdBQW1DO0FBQ3RELGNBQU0sd0NBQWU7QUFBQSxNQUNuQixNQUFNLEVBQUUsSUFBSSxLQUFLLEdBQUc7QUFBQTtBQUFBLE1BRXBCLEdBQUcsRUFBRSxHQUFHLEdBQVM7QUFTZixjQUFNLFNBQVM7QUFDZixZQUFJLE9BQU8sOEJBQThCLFVBQVU7QUFFakQsaUJBQU8sT0FBTyw2QkFBNkIsU0FBUyxFQUFFO0FBQUEsUUFDeEQ7QUFBQSxNQUNGO0FBQUE7QUFBQSxNQUVBLDJCQUEyQjtBQUFBLE1BQzNCLEdBQUksY0FBYyxTQUFZLENBQUMsSUFBSSxFQUFFLFVBQVU7QUFBQSxJQUNqRCxDQUFDO0FBQUEsRUFDSDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE9BQWMsT0FBTyxZQUFZLElBQW1CO0FBQ2xELFVBQU0sS0FBSyxRQUFRO0FBQUEsRUFDckI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxTQUFpQjtBQUN0QixXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sV0FBbUI7QUFDeEIsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
83
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbnRleHQtaWQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUeXBlZCBjb250ZXh0IGlkZW50aWZpZXJzIGZvciBwZXJzaXN0aW5nIG5vbi1zZXJpYWxpemFibGUgdmFsdWVzXG4gKiBhY3Jvc3Mge0BsaW5rIGV2YWxJbk9ic2lkaWFufSBjYWxscy5cbiAqL1xuXG5pbXBvcnQgeyBldmFsSW5PYnNpZGlhbiB9IGZyb20gJy4vZXZhbC1pbi1vYnNpZGlhbi5janMnO1xuXG4vKipcbiAqIFdyYXBzIGEge0BsaW5rIENvbnRleHRPZn0gZXh0cmFjdGlvbiBpbnRvIGFuIG9iamVjdCB3aXRoIGEgYGNvbnRleHRgIHByb3BlcnR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRBcmdzPFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgY29udGV4dDogQ29udGV4dE9mPFRDb250ZXh0SWQ+O1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBjb250ZXh0IHR5cGUgZnJvbSBhIHtAbGluayBDb250ZXh0SWR9LlxuICovXG5leHBvcnQgdHlwZSBDb250ZXh0T2Y8VD4gPSBUIGV4dGVuZHMgQ29udGV4dElkPGluZmVyIENvbnRleHQ+ID8gQ29udGV4dCA6IG5ldmVyO1xuXG4vKipcbiAqIEEgdHlwZWQgY29udGV4dCBpZGVudGlmaWVyIGZvciBwZXJzaXN0aW5nIG5vbi1zZXJpYWxpemFibGUgdmFsdWVzXG4gKiBhY3Jvc3Mge0BsaW5rIGV2YWxJbk9ic2lkaWFufSBjYWxscy5cbiAqXG4gKiBUaGUgY29udGV4dCBpcyBhIHBlcnNpc3RlbnQgb2JqZWN0IHN0b3JlZCBvbiBgd2luZG93YCBpbiB0aGUgT2JzaWRpYW4gcHJvY2Vzcy5cbiAqIEFsbCBjYWxscyBzaGFyaW5nIHRoZSBzYW1lIGBDb250ZXh0SWRgIHNoYXJlIHRoZSBzYW1lIGNvbnRleHQgb2JqZWN0LFxuICogYWxsb3dpbmcgbm9uLXNlcmlhbGl6YWJsZSB2YWx1ZXMgKGUuZy4gYFRGaWxlYCwgYEVkaXRvcmApIHRvIHN1cnZpdmUgYWNyb3NzIGNhbGxzLlxuICpcbiAqIEltcGxlbWVudHMgYEFzeW5jRGlzcG9zYWJsZWAgZm9yIHVzZSB3aXRoIGBhd2FpdCB1c2luZ2AuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb250ZXh0SWQ8X0NvbnRleHQ+IGltcGxlbWVudHMgQXN5bmNEaXNwb3NhYmxlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGNvbnRleHQgaWQuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgU0xJQ0VfU1RBUlQgPSAyO1xuICAgIHRoaXMuaWQgPSBgX19jdHhfJHtTdHJpbmcoTWF0aC5yYW5kb20oKSkuc2xpY2UoU0xJQ0VfU1RBUlQpfWA7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGlzIGNvbnRleHQgZnJvbSB0aGUgT2JzaWRpYW4gcHJvY2Vzcy5cbiAgICpcbiAgICogQHBhcmFtIHZhdWx0UGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBPYnNpZGlhbiB2YXVsdC4gRGVmYXVsdHMgdG8gYHByb2Nlc3MuY3dkKClgLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRpc3Bvc2UodmF1bHRQYXRoPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgZXZhbEluT2JzaWRpYW4oe1xuICAgICAgYXJnczogeyBpZDogdGhpcy5pZCB9LFxuICAgICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFNlcmlhbGl6ZWQgdmlhIHRvU3RyaW5nKCkgYW5kIGV4ZWN1dGVkIGluc2lkZSB0aGUgT2JzaWRpYW4gcHJvY2Vzcy4gQ292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cy4gKi9cbiAgICAgIGZuKHsgaWQgfSk6IHZvaWQge1xuICAgICAgICBpbnRlcmZhY2UgSW50ZWdyYXRpb25UZXN0aW5nQ29udGV4dHMge1xuICAgICAgICAgIGNvbnRleHRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgICAgfVxuICAgICAgICBpbnRlcmZhY2UgSW50ZWdyYXRpb25UZXN0aW5nSG9sZGVyIHtcbiAgICAgICAgICBfX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nOiBJbnRlZ3JhdGlvblRlc3RpbmdDb250ZXh0cztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCAtLSBBcHByb3ZlZCBkb3VibGUgY2FzdDogYF9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgIGlzIG91ciBpbnRlcm5hbCBXaW5kb3cgYXVnbWVudGF0aW9uLCBpbnRlbnRpb25hbGx5IGtlcHQgbG9jYWwgKG5vdCBkZWNsYXJlZCBnbG9iYWxseSkgdG8gYXZvaWQgbGVha2luZyBpbnRvIGNvbnN1bWVyIHR5cGVzLlxuICAgICAgICBjb25zdCBob2xkZXIgPSB3aW5kb3cgYXMgdW5rbm93biBhcyBQYXJ0aWFsPEludGVncmF0aW9uVGVzdGluZ0hvbGRlcj47XG4gICAgICAgIGlmIChob2xkZXIuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8uY29udGV4dHMpIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlIC0tIE5vIG90aGVyIHdheS5cbiAgICAgICAgICBkZWxldGUgaG9sZGVyLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmcuY29udGV4dHNbaWRdO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICAgIHNob3VsZFNraXBQcmVmbGlnaHRDaGVja3M6IHRydWUsXG4gICAgICAuLi4odmF1bHRQYXRoID09PSB1bmRlZmluZWQgPyB7fSA6IHsgdmF1bHRQYXRoIH0pXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcG9zZXMgdGhpcyBjb250ZXh0IGlkLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb250ZXh0IGlkIGlzIGRpc3Bvc2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb250ZXh0IGlkLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29udGV4dCBpZC5cbiAgICovXG4gIHB1YmxpYyB0b0pTT04oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnRleHQgaWQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnRleHQgaWQuXG4gICAqL1xuICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZDtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU9BLDhCQUErQjtBQXdCeEIsTUFBTSxVQUErQztBQUFBLEVBQ3pDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLVixjQUFjO0FBQ25CLFVBQU0sY0FBYztBQUNwQixTQUFLLEtBQUssU0FBUyxPQUFPLEtBQUssT0FBTyxDQUFDLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFBQSxFQUM3RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9BLE1BQWEsUUFBUSxXQUFtQztBQUN0RCxjQUFNLHdDQUFlO0FBQUEsTUFDbkIsTUFBTSxFQUFFLElBQUksS0FBSyxHQUFHO0FBQUE7QUFBQSxNQUVwQixHQUFHLEVBQUUsR0FBRyxHQUFTO0FBU2YsY0FBTSxTQUFTO0FBQ2YsWUFBSSxPQUFPLDhCQUE4QixVQUFVO0FBRWpELGlCQUFPLE9BQU8sNkJBQTZCLFNBQVMsRUFBRTtBQUFBLFFBQ3hEO0FBQUEsTUFDRjtBQUFBO0FBQUEsTUFFQSwyQkFBMkI7QUFBQSxNQUMzQixHQUFJLGNBQWMsU0FBWSxDQUFDLElBQUksRUFBRSxVQUFVO0FBQUEsSUFDakQsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxPQUFjLE9BQU8sWUFBWSxJQUFtQjtBQUNsRCxVQUFNLEtBQUssUUFBUTtBQUFBLEVBQ3JCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sU0FBaUI7QUFDdEIsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9PLFdBQW1CO0FBQ3hCLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var dismiss_trust_dialog_exports = {};
20
+ __export(dismiss_trust_dialog_exports, {
21
+ DISMISS_TRUST_DIALOG_EXPR: () => DISMISS_TRUST_DIALOG_EXPR
22
+ });
23
+ module.exports = __toCommonJS(dismiss_trust_dialog_exports);
24
+ const DISMISS_TRUST_DIALOG_EXPR = `(function() {
25
+ var modals = document.querySelectorAll('.modal-container');
26
+ for (var i = 0; i < modals.length; i++) {
27
+ var modal = modals[i];
28
+ if (!modal.textContent.includes('Do you trust the author')) { continue; }
29
+ try {
30
+ var appId = window.app && window.app.appId;
31
+ if (appId) { localStorage.setItem('enable-plugin-' + appId, 'true'); }
32
+ } catch (e) { /* localStorage may be unavailable in edge cases */ }
33
+ var closeBtn = modal.querySelector('.modal-close-button, .modal-header-button');
34
+ if (closeBtn) {
35
+ closeBtn.click();
36
+ return true;
37
+ }
38
+ }
39
+ return false;
40
+ })()`;
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ DISMISS_TRUST_DIALOG_EXPR
44
+ });
45
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Rpc21pc3MtdHJ1c3QtZGlhbG9nLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHJvdmlkZXMgdGhlIEphdmFTY3JpcHQgZXhwcmVzc2lvbiBldmFsdWF0ZWQgaW5zaWRlIE9ic2lkaWFuIHRvIGRpc21pc3MgdGhlXG4gKiBcIkRvIHlvdSB0cnVzdCB0aGUgYXV0aG9yIG9mIHRoaXMgdmF1bHQ/XCIgbW9kYWwgdGhhdCBhcHBlYXJzIHdoZW4gYSB2YXVsdFxuICogd2l0aCBjb21tdW5pdHkgcGx1Z2lucyBpcyBvcGVuZWQgd2l0aG91dCBhIHByaW9yIGBlbmFibGUtcGx1Z2luLTxpZD5gXG4gKiBlbnRyeSBpbiBgbG9jYWxTdG9yYWdlYC5cbiAqXG4gKiBTaGFyZWQgYmV0d2VlbiBkZXNrdG9wIHRyYW5zcG9ydHMgKENMSSArIENEUCkgYmVjYXVzZSB0aGUgbW9kYWwgbWFya3VwIGFuZFxuICogY2xvc2UgbWVjaGFuaXNtIGFyZSBpZGVudGljYWwgcmVnYXJkbGVzcyBvZiBob3cgdGhlIGV2YWwgaXMgZGVsaXZlcmVkLlxuICpcbiAqIENyb3NzLXZlcnNpb24gY29tcGF0aWJpbGl0eSAodmVyaWZpZWQgYWdhaW5zdCBPYnNpZGlhbiAxLjEyLjcgYW5kIDEuMTMuMCk6XG4gKlxuICogLSBgTW9kYWxgICh0aGUgYmFzZSBjbGFzcykgYWx3YXlzIGNyZWF0ZXMgYW4gWC1pY29uIGVsZW1lbnQgd2lyZWQgdG9cbiAqICAgYE1vZGFsLmNsb3NlKClgLiBUaGUgY2xhc3MgbmFtZSBjaGFuZ2VkIGFjcm9zcyB2ZXJzaW9uczpcbiAqICAgICAtIDEuMTIueCBhbmQgZWFybGllcjogYC5tb2RhbC1jbG9zZS1idXR0b25gXG4gKiAgICAgLSAxLjEzLjArOiAgICAgICAgICAgIGAubW9kYWwtaGVhZGVyLWJ1dHRvbmBcbiAqICAgQ2xpY2tpbmcgaXQgcmVtb3ZlcyB0aGUgY29udGFpbmVyIGZyb20gdGhlIERPTSB3aXRoIG5vIHNpZGUgZWZmZWN0cyBcdTIwMTRcbiAqICAgdGhlIG9ubHkgdW5pdmVyc2FsIGV4aXQuIFRoZSBkaWFsb2cncyBvd24gYWN0aW9uIGJ1dHRvbnMgYXJlIG5vdCBzYWZlIHRvXG4gKiAgIHJlbHkgb246IGluIDEuMTIuNyB0aGV5IGhhdmUgbm8gbWFya2VyIGNsYXNzZXMgYXQgYWxsIGFuZCB0aGUgY2FuY2VsXG4gKiAgIGJ1dHRvbiB3cml0ZXMgYGxvY2FsU3RvcmFnZSA9IFwiZmFsc2VcImAgKHBlcm1hbmVudGx5IGRpc2FibGluZyBwbHVnaW5zKS5cbiAqICAgSW4gMS4xMy4wIHRoZSBjYW5jZWwgYnV0dG9uIGhhcyBgLm1vZC1jYW5jZWxgIGFuZCB0aGUgYWN0aW9uIGJ1dHRvbiBoYXNcbiAqICAgbm8gbWFya2VyIGNsYXNzOyBjbGlja2luZyB0aGUgYWN0aW9uIGJ1dHRvbiBhc3luY2hyb25vdXNseSBvcGVucyB0aGVcbiAqICAgU2V0dGluZ3MgbW9kYWwgYXMgYSBzaWRlIGVmZmVjdC5cbiAqXG4gKiAtIFdlIGFsc28gd3JpdGUgYGVuYWJsZS1wbHVnaW4tPGFwcElkPmAgdG8gYFwidHJ1ZVwiYCBkaXJlY3RseS4gUGx1Z2lucyBhcmVcbiAqICAgbG9hZGVkIGxhemlseSBieSBgZXZhbFdyYXBwZXJgIC8gYGVuYWJsZVBsdWdpbldpdGhFcnJvckNhcHR1cmVgIG9uIHRoZVxuICogICBmaXJzdCBldmFsIHRoYXQgbmVlZHMgdGhlbSwgc28gd2UgZGVsaWJlcmF0ZWx5IGF2b2lkIGNhbGxpbmdcbiAqICAgYHNldEVuYWJsZSh0cnVlKWAgaGVyZSBcdTIwMTQgaXQgd291bGQgc3luY2hyb25vdXNseSB0cmlnZ2VyIHBsdWdpbiBsb2FkLFxuICogICBxdWV1aW5nIGV2ZXJ5IHN1YnNlcXVlbnQgZXZhbCAoaW5jbHVkaW5nIGBkZXN0cm95Q3VycmVudFdpbmRvd2ApIGJlaGluZFxuICogICBpdCBhbmQgcHVzaGluZyB0ZWFyZG93biBwYXN0IHRlc3QgaG9vayB0aW1lb3V0cy5cbiAqXG4gKiBSZXR1cm5zIHRoZSBzdHJpbmcgYCd0cnVlJ2AgaWYgYSBkaWFsb2cgd2FzIGZvdW5kIGFuZCBkaXNtaXNzZWQsIGAnZmFsc2UnYFxuICogb3RoZXJ3aXNlLiBUaGUgZXZhbHVhdG9yIHN0cmluZ2lmaWVzIHRoZSBib29sZWFuLlxuICovXG5cbmV4cG9ydCBjb25zdCBESVNNSVNTX1RSVVNUX0RJQUxPR19FWFBSID0gYChmdW5jdGlvbigpIHtcbiAgdmFyIG1vZGFscyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb2RhbC1jb250YWluZXInKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb2RhbHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgbW9kYWwgPSBtb2RhbHNbaV07XG4gICAgaWYgKCFtb2RhbC50ZXh0Q29udGVudC5pbmNsdWRlcygnRG8geW91IHRydXN0IHRoZSBhdXRob3InKSkgeyBjb250aW51ZTsgfVxuICAgIHRyeSB7XG4gICAgICB2YXIgYXBwSWQgPSB3aW5kb3cuYXBwICYmIHdpbmRvdy5hcHAuYXBwSWQ7XG4gICAgICBpZiAoYXBwSWQpIHsgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2VuYWJsZS1wbHVnaW4tJyArIGFwcElkLCAndHJ1ZScpOyB9XG4gICAgfSBjYXRjaCAoZSkgeyAvKiBsb2NhbFN0b3JhZ2UgbWF5IGJlIHVuYXZhaWxhYmxlIGluIGVkZ2UgY2FzZXMgKi8gfVxuICAgIHZhciBjbG9zZUJ0biA9IG1vZGFsLnF1ZXJ5U2VsZWN0b3IoJy5tb2RhbC1jbG9zZS1idXR0b24sIC5tb2RhbC1oZWFkZXItYnV0dG9uJyk7XG4gICAgaWYgKGNsb3NlQnRuKSB7XG4gICAgICBjbG9zZUJ0bi5jbGljaygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn0pKClgO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9DTyxNQUFNLDRCQUE0QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * Provides the JavaScript expression evaluated inside Obsidian to dismiss the
5
+ * "Do you trust the author of this vault?" modal that appears when a vault
6
+ * with community plugins is opened without a prior `enable-plugin-<id>`
7
+ * entry in `localStorage`.
8
+ *
9
+ * Shared between desktop transports (CLI + CDP) because the modal markup and
10
+ * close mechanism are identical regardless of how the eval is delivered.
11
+ *
12
+ * Cross-version compatibility (verified against Obsidian 1.12.7 and 1.13.0):
13
+ *
14
+ * - `Modal` (the base class) always creates an X-icon element wired to
15
+ * `Modal.close()`. The class name changed across versions:
16
+ * - 1.12.x and earlier: `.modal-close-button`
17
+ * - 1.13.0+: `.modal-header-button`
18
+ * Clicking it removes the container from the DOM with no side effects —
19
+ * the only universal exit. The dialog's own action buttons are not safe to
20
+ * rely on: in 1.12.7 they have no marker classes at all and the cancel
21
+ * button writes `localStorage = "false"` (permanently disabling plugins).
22
+ * In 1.13.0 the cancel button has `.mod-cancel` and the action button has
23
+ * no marker class; clicking the action button asynchronously opens the
24
+ * Settings modal as a side effect.
25
+ *
26
+ * - We also write `enable-plugin-<appId>` to `"true"` directly. Plugins are
27
+ * loaded lazily by `evalWrapper` / `enablePluginWithErrorCapture` on the
28
+ * first eval that needs them, so we deliberately avoid calling
29
+ * `setEnable(true)` here — it would synchronously trigger plugin load,
30
+ * queuing every subsequent eval (including `destroyCurrentWindow`) behind
31
+ * it and pushing teardown past test hook timeouts.
32
+ *
33
+ * Returns the string `'true'` if a dialog was found and dismissed, `'false'`
34
+ * otherwise. The evaluator stringifies the boolean.
35
+ */
36
+ export declare const DISMISS_TRUST_DIALOG_EXPR = "(function() {\n var modals = document.querySelectorAll('.modal-container');\n for (var i = 0; i < modals.length; i++) {\n var modal = modals[i];\n if (!modal.textContent.includes('Do you trust the author')) { continue; }\n try {\n var appId = window.app && window.app.appId;\n if (appId) { localStorage.setItem('enable-plugin-' + appId, 'true'); }\n } catch (e) { /* localStorage may be unavailable in edge cases */ }\n var closeBtn = modal.querySelector('.modal-close-button, .modal-header-button');\n if (closeBtn) {\n closeBtn.click();\n return true;\n }\n }\n return false;\n})()";
@@ -57,4 +57,4 @@ async function enablePluginWithErrorCapture({ app, pluginId }) {
57
57
  0 && (module.exports = {
58
58
  enablePluginWithErrorCapture
59
59
  });
60
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2VuYWJsZS1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgaGVscGVyIGZvciBlbmFibGluZyBhbiBPYnNpZGlhbiBwbHVnaW4gd2l0aCBlcnJvciBjYXB0dXJlLlxuICogVXNlZCBieSBib3RoIHRoZSBnbG9iYWwgc2V0dXAgYW5kIGludGVncmF0aW9uIHRlc3RzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIGNvZGUgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vbkFyZ3MgfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZW5hYmxlUGx1Z2luV2l0aEVycm9yQ2FwdHVyZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hYmxlUGx1Z2luUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgcGx1Z2luIHRvIGVuYWJsZS5cbiAgICovXG4gIHBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGVuYWJsaW5nIGEgcGx1Z2luIHdpdGggZXJyb3IgY2FwdHVyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmFibGVQbHVnaW5SZXN1bHQge1xuICAvKipcbiAgICogVGhlIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHBsdWdpbiBmYWlsZWQgdG8gbG9hZCwgb3IgYHVuZGVmaW5lZGAgaWYgaXQgbG9hZGVkIHN1Y2Nlc3NmdWxseS5cbiAgICovXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwbHVnaW4gaXMgaW4gdGhlIGVuYWJsZWQgc2V0IGFmdGVyIHRoZSBlbmFibGUgYXR0ZW1wdC5cbiAgICogQSBwbHVnaW4gY2FuIGJlIFwiZW5hYmxlZFwiIChjb25maWd1cmVkKSBidXQgbm90IFwibG9hZGVkXCIgKGZhaWxlZCB0byBpbml0aWFsaXplKS5cbiAgICovXG4gIGlzRW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcGx1Z2luIGluc3RhbmNlIGFjdHVhbGx5IGV4aXN0cyBpbiBgYXBwLnBsdWdpbnMucGx1Z2luc2AuXG4gICAqIFRoaXMgaXMgdGhlIGRlZmluaXRpdmUgY2hlY2sgXHUyMDE0IGEgcGx1Z2luIHRoYXQgaXMgZW5hYmxlZCBidXQgbm90IGxvYWRlZCBoYXMgZmFpbGVkLlxuICAgKi9cbiAgaXNMb2FkZWQ6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBJbnRlZ3JhdGlvblRlc3RpbmdIb2xkZXIge1xuICBfX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nOiBJbnRlZ3JhdGlvblRlc3RpbmdTZXJpYWxpemVFcnJvcjtcbn1cblxuaW50ZXJmYWNlIEludGVncmF0aW9uVGVzdGluZ1NlcmlhbGl6ZUVycm9yIHtcbiAgc2VyaWFsaXplRXJyb3IoZXJyb3I6IHVua25vd24pOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW5hYmxlcyBhIHBsdWdpbiBpbnNpZGUgT2JzaWRpYW4gYW5kIGNhcHR1cmVzIGFueSBsb2FkIGVycm9yLlxuICpcbiAqIE1vbmtleS1wYXRjaGVzIGBhcHAucGx1Z2lucy5sb2FkUGx1Z2luYCB0byBpbnRlcmNlcHQgZXJyb3JzIGJlZm9yZVxuICogT2JzaWRpYW4ncyBgZW5hYmxlUGx1Z2luYCB0cnktY2F0Y2ggc3dhbGxvd3MgdGhlbS4gVGhlIG9yaWdpbmFsIG1ldGhvZFxuICogaXMgYWx3YXlzIHJlc3RvcmVkIGluIGEgYGZpbmFsbHlgIGJsb2NrLlxuICpcbiAqIERlc2lnbmVkIHRvIGJlIHBhc3NlZCBhcyB0aGUgYGZuYCBhcmd1bWVudCB0byB7QGxpbmsgZXZhbEluT2JzaWRpYW59LlxuICpcbiAqIEBwYXJhbSBhcmdzIC0gVGhlIGNvbW1vbiBhcmdzIHBsdXMgdGhlIHBsdWdpbiBJRC5cbiAqIEBwYXJhbSBhcmdzLmFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gYXJncy5wbHVnaW5JZCAtIFRoZSBJRCBvZiB0aGUgcGx1Z2luIHRvIGVuYWJsZS5cbiAqIEByZXR1cm5zIFRoZSBlbmFibGUgcmVzdWx0IHdpdGggZXJyb3IgbWVzc2FnZSBhbmQgZW5hYmxlZCBzdGF0dXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbmFibGVQbHVnaW5XaXRoRXJyb3JDYXB0dXJlKHsgYXBwLCBwbHVnaW5JZCB9OiBDb21tb25BcmdzICYgRW5hYmxlUGx1Z2luUGFyYW1zKTogUHJvbWlzZTxFbmFibGVQbHVnaW5SZXN1bHQ+IHtcbiAgaWYgKCFhcHAucGx1Z2lucy5pc0VuYWJsZWQoKSkge1xuICAgIGF3YWl0IGFwcC5wbHVnaW5zLnNldEVuYWJsZSh0cnVlKTtcbiAgfVxuXG4gIGxldCBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAtLSBJbnRlbnRpb25hbCBtb25rZXktcGF0Y2g7IHJlc3RvcmVkIGluIGZpbmFsbHkuXG4gIGNvbnN0IG9yaWdMb2FkUGx1Z2luID0gYXBwLnBsdWdpbnMubG9hZFBsdWdpbjtcbiAgYXBwLnBsdWdpbnMubG9hZFBsdWdpbiA9IGFzeW5jIGZ1bmN0aW9uIGxvYWRQbHVnaW4oaWQ6IHN0cmluZywgaXNVc2VyRW5hYmxlZD86IGJvb2xlYW4pOiBQcm9taXNlPFBsdWdpbj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBvcmlnTG9hZFBsdWdpbi5jYWxsKHRoaXMsIGlkLCBpc1VzZXJFbmFibGVkKTtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCAtLSBTZXJpYWxpemVkIGZ1bmN0aW9uIHJ1bnMgaW4gT2JzaWRpYW4gd2hlcmUgSmVzdCdzIGdsb2JhbCB0eXBlIGRvZXNuJ3QgYXBwbHkuXG4gICAgICBjb25zdCBob2xkZXIgPSB3aW5kb3cgYXMgdW5rbm93biBhcyBQYXJ0aWFsPEludGVncmF0aW9uVGVzdGluZ0hvbGRlcj47XG4gICAgICBlcnJvck1lc3NhZ2UgPSBob2xkZXIuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZz8uc2VyaWFsaXplRXJyb3IoZXJyb3IpID8/IFN0cmluZyhlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBhcHAucGx1Z2lucy5lbmFibGVQbHVnaW5BbmRTYXZlKHBsdWdpbklkKTtcbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hdG9taWMtdXBkYXRlcyAtLSBJbnRlbnRpb25hbCByZXN0b3JlIG9mIG1vbmtleS1wYXRjaC5cbiAgICBhcHAucGx1Z2lucy5sb2FkUGx1Z2luID0gb3JpZ0xvYWRQbHVnaW47XG4gIH1cblxuICBjb25zdCBpc0xvYWRlZCA9IHBsdWdpbklkIGluIGFwcC5wbHVnaW5zLnBsdWdpbnM7XG5cbiAgaWYgKCFlcnJvck1lc3NhZ2UgJiYgIWlzTG9hZGVkKSB7XG4gICAgZXJyb3JNZXNzYWdlID0gYFBsdWdpbiBcIiR7cGx1Z2luSWR9XCIgaXMgaW4gdGhlIGVuYWJsZWQgc2V0IGJ1dCBub3QgbG9hZGVkLiBgXG4gICAgICArICdPYnNpZGlhbiBtYXkgaGF2ZSBjYXVnaHQgdGhlIGVycm9yIGJlZm9yZSB0aGUgbW9ua2V5LXBhdGNoLiAnXG4gICAgICArICdDaGVjayB0aGUgT2JzaWRpYW4gY29uc29sZSBmb3IgZGV0YWlscy4nO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlcnJvck1lc3NhZ2UsXG4gICAgaXNFbmFibGVkOiBhcHAucGx1Z2lucy5lbmFibGVkUGx1Z2lucy5oYXMocGx1Z2luSWQpLFxuICAgIGlzTG9hZGVkXG4gIH07XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBbUVBLGVBQXNCLDZCQUE2QixFQUFFLEtBQUssU0FBUyxHQUFpRTtBQUNsSSxNQUFJLENBQUMsSUFBSSxRQUFRLFVBQVUsR0FBRztBQUM1QixVQUFNLElBQUksUUFBUSxVQUFVLElBQUk7QUFBQSxFQUNsQztBQUVBLE1BQUk7QUFFSixRQUFNLGlCQUFpQixJQUFJLFFBQVE7QUFDbkMsTUFBSSxRQUFRLGFBQWEsZUFBZSxXQUFXLElBQVksZUFBMEM7QUFDdkcsUUFBSTtBQUNGLFlBQU0sU0FBUyxNQUFNLGVBQWUsS0FBSyxNQUFNLElBQUksYUFBYTtBQUNoRSxxQkFBZTtBQUNmLGFBQU87QUFBQSxJQUNULFNBQVMsT0FBTztBQUVkLFlBQU0sU0FBUztBQUNmLHFCQUFlLE9BQU8sOEJBQThCLGVBQWUsS0FBSyxLQUFLLE9BQU8sS0FBSztBQUN6RixZQUFNO0FBQUEsSUFDUjtBQUFBLEVBQ0Y7QUFFQSxNQUFJO0FBQ0YsVUFBTSxJQUFJLFFBQVEsb0JBQW9CLFFBQVE7QUFBQSxFQUNoRCxVQUFFO0FBRUEsUUFBSSxRQUFRLGFBQWE7QUFBQSxFQUMzQjtBQUVBLFFBQU0sV0FBVyxZQUFZLElBQUksUUFBUTtBQUV6QyxNQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVTtBQUM5QixtQkFBZSxXQUFXLFFBQVE7QUFBQSxFQUdwQztBQUVBLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQSxXQUFXLElBQUksUUFBUSxlQUFlLElBQUksUUFBUTtBQUFBLElBQ2xEO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
60
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2VuYWJsZS1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgaGVscGVyIGZvciBlbmFibGluZyBhbiBPYnNpZGlhbiBwbHVnaW4gd2l0aCBlcnJvciBjYXB0dXJlLlxuICogVXNlZCBieSBib3RoIHRoZSBnbG9iYWwgc2V0dXAgYW5kIGludGVncmF0aW9uIHRlc3RzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlZ3JhdGlvbi10aW1lIGNvZGUgY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0cywgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1vbkFyZ3MgfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZW5hYmxlUGx1Z2luV2l0aEVycm9yQ2FwdHVyZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hYmxlUGx1Z2luUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgcGx1Z2luIHRvIGVuYWJsZS5cbiAgICovXG4gIHBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGVuYWJsaW5nIGEgcGx1Z2luIHdpdGggZXJyb3IgY2FwdHVyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmFibGVQbHVnaW5SZXN1bHQge1xuICAvKipcbiAgICogVGhlIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHBsdWdpbiBmYWlsZWQgdG8gbG9hZCwgb3IgYHVuZGVmaW5lZGAgaWYgaXQgbG9hZGVkIHN1Y2Nlc3NmdWxseS5cbiAgICovXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBwbHVnaW4gaXMgaW4gdGhlIGVuYWJsZWQgc2V0IGFmdGVyIHRoZSBlbmFibGUgYXR0ZW1wdC5cbiAgICogQSBwbHVnaW4gY2FuIGJlIFwiZW5hYmxlZFwiIChjb25maWd1cmVkKSBidXQgbm90IFwibG9hZGVkXCIgKGZhaWxlZCB0byBpbml0aWFsaXplKS5cbiAgICovXG4gIGlzRW5hYmxlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcGx1Z2luIGluc3RhbmNlIGFjdHVhbGx5IGV4aXN0cyBpbiBgYXBwLnBsdWdpbnMucGx1Z2luc2AuXG4gICAqIFRoaXMgaXMgdGhlIGRlZmluaXRpdmUgY2hlY2sgXHUyMDE0IGEgcGx1Z2luIHRoYXQgaXMgZW5hYmxlZCBidXQgbm90IGxvYWRlZCBoYXMgZmFpbGVkLlxuICAgKi9cbiAgaXNMb2FkZWQ6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBJbnRlZ3JhdGlvblRlc3RpbmdIb2xkZXIge1xuICBfX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nOiBJbnRlZ3JhdGlvblRlc3RpbmdTZXJpYWxpemVFcnJvcjtcbn1cblxuaW50ZXJmYWNlIEludGVncmF0aW9uVGVzdGluZ1NlcmlhbGl6ZUVycm9yIHtcbiAgc2VyaWFsaXplRXJyb3IoZXJyb3I6IHVua25vd24pOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW5hYmxlcyBhIHBsdWdpbiBpbnNpZGUgT2JzaWRpYW4gYW5kIGNhcHR1cmVzIGFueSBsb2FkIGVycm9yLlxuICpcbiAqIE1vbmtleS1wYXRjaGVzIGBhcHAucGx1Z2lucy5sb2FkUGx1Z2luYCB0byBpbnRlcmNlcHQgZXJyb3JzIGJlZm9yZVxuICogT2JzaWRpYW4ncyBgZW5hYmxlUGx1Z2luYCB0cnktY2F0Y2ggc3dhbGxvd3MgdGhlbS4gVGhlIG9yaWdpbmFsIG1ldGhvZFxuICogaXMgYWx3YXlzIHJlc3RvcmVkIGluIGEgYGZpbmFsbHlgIGJsb2NrLlxuICpcbiAqIERlc2lnbmVkIHRvIGJlIHBhc3NlZCBhcyB0aGUgYGZuYCBhcmd1bWVudCB0byB7QGxpbmsgZXZhbEluT2JzaWRpYW59LlxuICpcbiAqIEBwYXJhbSBhcmdzIC0gVGhlIGNvbW1vbiBhcmdzIHBsdXMgdGhlIHBsdWdpbiBJRC5cbiAqIEBwYXJhbSBhcmdzLmFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gYXJncy5wbHVnaW5JZCAtIFRoZSBJRCBvZiB0aGUgcGx1Z2luIHRvIGVuYWJsZS5cbiAqIEByZXR1cm5zIFRoZSBlbmFibGUgcmVzdWx0IHdpdGggZXJyb3IgbWVzc2FnZSBhbmQgZW5hYmxlZCBzdGF0dXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbmFibGVQbHVnaW5XaXRoRXJyb3JDYXB0dXJlKHsgYXBwLCBwbHVnaW5JZCB9OiBDb21tb25BcmdzICYgRW5hYmxlUGx1Z2luUGFyYW1zKTogUHJvbWlzZTxFbmFibGVQbHVnaW5SZXN1bHQ+IHtcbiAgaWYgKCFhcHAucGx1Z2lucy5pc0VuYWJsZWQoKSkge1xuICAgIGF3YWl0IGFwcC5wbHVnaW5zLnNldEVuYWJsZSh0cnVlKTtcbiAgfVxuXG4gIGxldCBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCAtLSBJbnRlbnRpb25hbCBtb25rZXktcGF0Y2g7IHJlc3RvcmVkIGluIGZpbmFsbHkuXG4gIGNvbnN0IG9yaWdMb2FkUGx1Z2luID0gYXBwLnBsdWdpbnMubG9hZFBsdWdpbjtcbiAgYXBwLnBsdWdpbnMubG9hZFBsdWdpbiA9IGFzeW5jIGZ1bmN0aW9uIGxvYWRQbHVnaW4oaWQ6IHN0cmluZywgaXNVc2VyRW5hYmxlZD86IGJvb2xlYW4pOiBQcm9taXNlPFBsdWdpbj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBvcmlnTG9hZFBsdWdpbi5jYWxsKHRoaXMsIGlkLCBpc1VzZXJFbmFibGVkKTtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCAtLSBBcHByb3ZlZCBkb3VibGUgY2FzdDogYF9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgIGlzIG91ciBpbnRlcm5hbCBXaW5kb3cgYXVnbWVudGF0aW9uLCBpbnRlbnRpb25hbGx5IGtlcHQgbG9jYWwgKG5vdCBkZWNsYXJlZCBnbG9iYWxseSkgdG8gYXZvaWQgbGVha2luZyBpbnRvIGNvbnN1bWVyIHR5cGVzLlxuICAgICAgY29uc3QgaG9sZGVyID0gd2luZG93IGFzIHVua25vd24gYXMgUGFydGlhbDxJbnRlZ3JhdGlvblRlc3RpbmdIb2xkZXI+O1xuICAgICAgZXJyb3JNZXNzYWdlID0gaG9sZGVyLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmc/LnNlcmlhbGl6ZUVycm9yKGVycm9yKSA/PyBTdHJpbmcoZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgYXBwLnBsdWdpbnMuZW5hYmxlUGx1Z2luQW5kU2F2ZShwbHVnaW5JZCk7XG4gIH0gZmluYWxseSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXRvbWljLXVwZGF0ZXMgLS0gSW50ZW50aW9uYWwgcmVzdG9yZSBvZiBtb25rZXktcGF0Y2guXG4gICAgYXBwLnBsdWdpbnMubG9hZFBsdWdpbiA9IG9yaWdMb2FkUGx1Z2luO1xuICB9XG5cbiAgY29uc3QgaXNMb2FkZWQgPSBwbHVnaW5JZCBpbiBhcHAucGx1Z2lucy5wbHVnaW5zO1xuXG4gIGlmICghZXJyb3JNZXNzYWdlICYmICFpc0xvYWRlZCkge1xuICAgIGVycm9yTWVzc2FnZSA9IGBQbHVnaW4gXCIke3BsdWdpbklkfVwiIGlzIGluIHRoZSBlbmFibGVkIHNldCBidXQgbm90IGxvYWRlZC4gYFxuICAgICAgKyAnT2JzaWRpYW4gbWF5IGhhdmUgY2F1Z2h0IHRoZSBlcnJvciBiZWZvcmUgdGhlIG1vbmtleS1wYXRjaC4gJ1xuICAgICAgKyAnQ2hlY2sgdGhlIE9ic2lkaWFuIGNvbnNvbGUgZm9yIGRldGFpbHMuJztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZXJyb3JNZXNzYWdlLFxuICAgIGlzRW5hYmxlZDogYXBwLnBsdWdpbnMuZW5hYmxlZFBsdWdpbnMuaGFzKHBsdWdpbklkKSxcbiAgICBpc0xvYWRlZFxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1FQSxlQUFzQiw2QkFBNkIsRUFBRSxLQUFLLFNBQVMsR0FBaUU7QUFDbEksTUFBSSxDQUFDLElBQUksUUFBUSxVQUFVLEdBQUc7QUFDNUIsVUFBTSxJQUFJLFFBQVEsVUFBVSxJQUFJO0FBQUEsRUFDbEM7QUFFQSxNQUFJO0FBRUosUUFBTSxpQkFBaUIsSUFBSSxRQUFRO0FBQ25DLE1BQUksUUFBUSxhQUFhLGVBQWUsV0FBVyxJQUFZLGVBQTBDO0FBQ3ZHLFFBQUk7QUFDRixZQUFNLFNBQVMsTUFBTSxlQUFlLEtBQUssTUFBTSxJQUFJLGFBQWE7QUFDaEUscUJBQWU7QUFDZixhQUFPO0FBQUEsSUFDVCxTQUFTLE9BQU87QUFFZCxZQUFNLFNBQVM7QUFDZixxQkFBZSxPQUFPLDhCQUE4QixlQUFlLEtBQUssS0FBSyxPQUFPLEtBQUs7QUFDekYsWUFBTTtBQUFBLElBQ1I7QUFBQSxFQUNGO0FBRUEsTUFBSTtBQUNGLFVBQU0sSUFBSSxRQUFRLG9CQUFvQixRQUFRO0FBQUEsRUFDaEQsVUFBRTtBQUVBLFFBQUksUUFBUSxhQUFhO0FBQUEsRUFDM0I7QUFFQSxRQUFNLFdBQVcsWUFBWSxJQUFJLFFBQVE7QUFFekMsTUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7QUFDOUIsbUJBQWUsV0FBVyxRQUFRO0FBQUEsRUFHcEM7QUFFQSxTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0EsV0FBVyxJQUFJLFFBQVEsZUFBZSxJQUFJLFFBQVE7QUFBQSxJQUNsRDtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -21,7 +21,7 @@ __export(library_exports, {
21
21
  LIBRARY_VERSION: () => LIBRARY_VERSION
22
22
  });
23
23
  module.exports = __toCommonJS(library_exports);
24
- const LIBRARY_VERSION = false ? "dev" : "4.1.5";
24
+ const LIBRARY_VERSION = false ? "dev" : "4.2.0";
25
25
  // Annotate the CommonJS export names for ESM import in node:
26
26
  0 && (module.exports = {
27
27
  LIBRARY_VERSION
@@ -36,6 +36,7 @@ async function ensureNamespaceBootstrapped(transport, cwd) {
36
36
  await transport.evaluate(bootstrapExpr, { cwd });
37
37
  }
38
38
  function bootstrapNamespace(bootstrapParams) {
39
+ const DESTROY_DELAY_IN_MILLISECONDS = 50;
39
40
  const holder = window;
40
41
  const existingContexts = holder.__obsidianIntegrationTesting?.contexts ?? {};
41
42
  const existingObsidianModule = holder.__obsidianIntegrationTesting?.obsidianModule;
@@ -47,7 +48,10 @@ function bootstrapNamespace(bootstrapParams) {
47
48
  async destroyCurrentWindow() {
48
49
  await this.ensureLayoutReady();
49
50
  await sleep(0);
50
- window.electronWindow.destroy();
51
+ const electronWindow = window.electronWindow;
52
+ window.setTimeout(() => {
53
+ electronWindow.destroy();
54
+ }, DESTROY_DELAY_IN_MILLISECONDS);
51
55
  },
52
56
  async ensureLayoutReady() {
53
57
  await new Promise((resolve) => {
@@ -136,4 +140,4 @@ ${this.serializeError(error.cause, depth + 1)}`;
136
140
  0 && (module.exports = {
137
141
  ensureNamespaceBootstrapped
138
142
  });
139
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL25hbWVzcGFjZS1ib290c3RyYXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCb290c3RyYXBzIHRoZSBgd2luZG93Ll9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgIG5hbWVzcGFjZSBpbiB0aGVcbiAqIE9ic2lkaWFuIHByb2Nlc3MuIEV4dHJhY3RlZCB0byBpdHMgb3duIG1vZHVsZSB0byBhdm9pZCBkZXBlbmRlbmN5IGN5Y2xlc1xuICogYmV0d2VlbiBgZXZhbC1pbi1vYnNpZGlhbi50c2AgYW5kIHRoZSB0cmFuc3BvcnQgbW9kdWxlcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFBhcmFtcyB9IGZyb20gJy4vZ2VuZXJhdGUtZnVuY3Rpb24tY2FsbC5janMnO1xuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LmNqcyc7XG5cbmltcG9ydCB7IGdlbmVyYXRlRnVuY3Rpb25DYWxsIH0gZnJvbSAnLi9nZW5lcmF0ZS1mdW5jdGlvbi1jYWxsLmNqcyc7XG5pbXBvcnQgeyBMSUJSQVJZX1ZFUlNJT04gfSBmcm9tICcuL2xpYnJhcnkuY2pzJztcblxuaW50ZXJmYWNlIEJvb3RzdHJhcE5hbWVzcGFjZVBhcmFtcyB7XG4gIHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoZSBgd2luZG93Ll9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgIG5hbWVzcGFjZSBpcyBib290c3RyYXBwZWRcbiAqIGluIHRoZSBPYnNpZGlhbiBwcm9jZXNzIHdpdGggdGhlIGN1cnJlbnQgbGlicmFyeSB2ZXJzaW9uLlxuICpcbiAqIFBlcmZvcm1zIGEgbGlnaHR3ZWlnaHQgdmVyc2lvbiBjaGVjayB2aWEgdGhlIHRyYW5zcG9ydC4gSWYgdGhlIG5hbWVzcGFjZVxuICogZG9lc24ndCBleGlzdCBvciBoYXMgYSBkaWZmZXJlbnQgdmVyc2lvbiwgc2VuZHMgdGhlIGZ1bGwgYm9vdHN0cmFwIGV4cHJlc3Npb25cbiAqIHRvIHJlZ2lzdGVyIGFsbCBoZWxwZXIgZnVuY3Rpb25zLlxuICpcbiAqIEBwYXJhbSB0cmFuc3BvcnQgLSBUaGUgdHJhbnNwb3J0IHRvIHVzZSBmb3IgZXZhbHVhdGlvbi5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgd29ya2luZyBkaXJlY3RvcnkgKHZhdWx0IHBhdGgpLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlTmFtZXNwYWNlQm9vdHN0cmFwcGVkKHRyYW5zcG9ydDogT2JzaWRpYW5UcmFuc3BvcnQsIGN3ZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHZlcnNpb25Kc29uID0gSlNPTi5zdHJpbmdpZnkoTElCUkFSWV9WRVJTSU9OKTtcbiAgY29uc3QgY2hlY2tSZXN1bHQgPSBhd2FpdCB0cmFuc3BvcnQuZXZhbHVhdGUoXG4gICAgYEpTT04uc3RyaW5naWZ5KHdpbmRvdy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy52ZXJzaW9uID09PSAke3ZlcnNpb25Kc29ufSlgLFxuICAgIHsgY3dkIH1cbiAgKTtcblxuICBpZiAoY2hlY2tSZXN1bHQgPT09ICd0cnVlJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGJvb3RzdHJhcEV4cHIgPSBnZW5lcmF0ZUZ1bmN0aW9uQ2FsbChib290c3RyYXBOYW1lc3BhY2UsIHsgdmVyc2lvbjogTElCUkFSWV9WRVJTSU9OIH0pO1xuICBhd2FpdCB0cmFuc3BvcnQuZXZhbHVhdGUoYm9vdHN0cmFwRXhwciwgeyBjd2QgfSk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBTZXJpYWxpemVkIHZpYSB0b1N0cmluZygpIGFuZCBleGVjdXRlZCBpbnNpZGUgdGhlIE9ic2lkaWFuIHByb2Nlc3MsIG5vdCBpbiBOb2RlLiBDb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RzLiAqL1xuXG4vKipcbiAqIEJvb3RzdHJhcHMgdGhlIGB3aW5kb3cuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ2AgbmFtZXNwYWNlIHdpdGggYWxsXG4gKiBoZWxwZXIgZnVuY3Rpb25zLiBTZXJpYWxpemVkIHZpYSBgdG9TdHJpbmcoKWAgYW5kIHNlbnQgdG8gT2JzaWRpYW4gb25jZVxuICogcGVyIGxpYnJhcnkgdmVyc2lvbi5cbiAqXG4gKiBQcmVzZXJ2ZXMgYGNvbnRleHRzYCBhY3Jvc3MgdmVyc2lvbiB1cGdyYWRlcyBzbyBsaXZlIHtAbGluayBDb250ZXh0SWR9XG4gKiByZWZlcmVuY2VzIHN1cnZpdmUuXG4gKlxuICogTXVzdCBOT1QgcmVmZXJlbmNlIGFueSBvdXRlciBzY29wZSBcdTIwMTQgaXQgaXMgc2VyaWFsaXplZCB2aWEgYHRvU3RyaW5nKClgLlxuICpcbiAqIEBwYXJhbSBib290c3RyYXBQYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBpbmNsdWRpbmcgdGhlIGxpYnJhcnkgdmVyc2lvbi5cbiAqL1xuZnVuY3Rpb24gYm9vdHN0cmFwTmFtZXNwYWNlKGJvb3RzdHJhcFBhcmFtczogR2VuZXJhdGVGdW5jdGlvbkNhbGxQYXJhbXM8Qm9vdHN0cmFwTmFtZXNwYWNlUGFyYW1zPik6IHZvaWQge1xuICBpbnRlcmZhY2UgSW50ZWdyYXRpb25UZXN0aW5nSG9sZGVyIHtcbiAgICBfX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nOiBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2VTdGF0ZTtcbiAgfVxuXG4gIGludGVyZmFjZSBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2VTdGF0ZSB7XG4gICAgY29udGV4dHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgICBvYnNpZGlhbk1vZHVsZT86IHVua25vd247XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICB9XG5cbiAgaW50ZXJmYWNlIEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSBleHRlbmRzIEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZVN0YXRlIHtcbiAgICByZWFkb25seSBhcHA6IEFwcDtcbiAgICBkZXN0cm95Q3VycmVudFdpbmRvdygpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGVuc3VyZUxheW91dFJlYWR5KCk6IFByb21pc2U8dm9pZD47XG4gICAgZXZhbFdyYXBwZXIobnNQYXJhbXM6IEV2YWxXcmFwcGVyUGFyYW1zKTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIGdldE9ic2lkaWFuTW9kdWxlKCk6IFByb21pc2U8dW5rbm93bj47XG4gICAgaXBjU2VuZFN5bmMobnNQYXJhbXM6IElwY1NlbmRTeW5jUGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcbiAgICBwb2xsVmF1bHRCYXNlUGF0aCgpOiBQcm9taXNlPHN0cmluZz47XG4gICAgc2VyaWFsaXplRXJyb3IoZXJyb3I6IHVua25vd24sIGRlcHRoPzogbnVtYmVyKTogc3RyaW5nO1xuICAgIHNldExvY2FsU3RvcmFnZUl0ZW0obnNQYXJhbXM6IFNldExvY2FsU3RvcmFnZUl0ZW1QYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICB9XG5cbiAgaW50ZXJmYWNlIEV2YWxXcmFwcGVyUGFyYW1zIHtcbiAgICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb250ZXh0SWQ/OiBzdHJpbmc7XG4gICAgZm4oZm5BcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHVua25vd247XG4gIH1cblxuICBpbnRlcmZhY2UgRmlsZVN5c3RlbUFkYXB0ZXJMaWtlIHtcbiAgICBnZXRCYXNlUGF0aCgpOiBzdHJpbmc7XG4gIH1cblxuICBpbnRlcmZhY2UgSXBjU2VuZFN5bmNQYXJhbXMge1xuICAgIGFyZ3M6IHVua25vd25bXTtcbiAgICBjaGFubmVsOiBzdHJpbmc7XG4gIH1cblxuICBpbnRlcmZhY2UgU2V0TG9jYWxTdG9yYWdlSXRlbVBhcmFtcyB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCAtLSBTZXJpYWxpemVkIGZ1bmN0aW9uIHJ1bnMgaW4gT2JzaWRpYW4gd2hlcmUgSmVzdCdzIGdsb2JhbCB0eXBlIGRvZXNuJ3QgYXBwbHkuXG4gIGNvbnN0IGhvbGRlciA9IHdpbmRvdyBhcyB1bmtub3duIGFzIFBhcnRpYWw8SW50ZWdyYXRpb25UZXN0aW5nSG9sZGVyPjtcbiAgY29uc3QgZXhpc3RpbmdDb250ZXh0cyA9IGhvbGRlci5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy5jb250ZXh0cyA/PyB7fTtcbiAgY29uc3QgZXhpc3RpbmdPYnNpZGlhbk1vZHVsZSA9IGhvbGRlci5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy5vYnNpZGlhbk1vZHVsZTtcblxuICBjb25zdCBuczogSW50ZWdyYXRpb25UZXN0aW5nTmFtZXNwYWNlID0ge1xuICAgIGdldCBhcHAoKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWRlcHJlY2F0ZWQgLS0gYGFwcGAgZ2V0dGVyIHJlYWRzIGB3aW5kb3cuYXBwYCB3aGljaCBpcyBzZXQgYnkgT2JzaWRpYW4uXG4gICAgICByZXR1cm4gd2luZG93LmFwcDtcbiAgICB9LFxuXG4gICAgY29udGV4dHM6IGV4aXN0aW5nQ29udGV4dHMsXG5cbiAgICBhc3luYyBkZXN0cm95Q3VycmVudFdpbmRvdyh0aGlzOiBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGF3YWl0IHRoaXMuZW5zdXJlTGF5b3V0UmVhZHkoKTtcbiAgICAgIGF3YWl0IHNsZWVwKDApO1xuICAgICAgd2luZG93LmVsZWN0cm9uV2luZG93LmRlc3Ryb3koKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgZW5zdXJlTGF5b3V0UmVhZHkodGhpczogSW50ZWdyYXRpb25UZXN0aW5nTmFtZXNwYWNlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgICB0aGlzLmFwcC53b3Jrc3BhY2Uub25MYXlvdXRSZWFkeShyZXNvbHZlKTtcbiAgICAgIH0pO1xuICAgIH0sXG5cbiAgICBhc3luYyBldmFsV3JhcHBlcih0aGlzOiBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2UsIHBhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICBpZiAoIXRoaXMuYXBwLnBsdWdpbnMuaXNFbmFibGVkKCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hcHAucGx1Z2lucy5zZXRFbmFibGUodHJ1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBvYnNpZGlhbk1vZHVsZSA9IGF3YWl0IHRoaXMuZ2V0T2JzaWRpYW5Nb2R1bGUoKTtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBwYXJhbXMuY29udGV4dElkXG4gICAgICAgID8gKHRoaXMuY29udGV4dHNbcGFyYW1zLmNvbnRleHRJZF0gPz89IHt9KVxuICAgICAgICA6IHt9O1xuICAgICAgY29uc3QgZnVsbEFyZ3MgPSB7IC4uLnBhcmFtcy5hcmdzLCBhcHA6IHRoaXMuYXBwLCBjb250ZXh0LCBvYnNpZGlhbk1vZHVsZSB9O1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcGFyYW1zLmZuKGZ1bGxBcmdzKTtcbiAgICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgdHlwZTogJ3VuZGVmaW5lZCcgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgdmFsdWU6IHJlc3VsdCB9KTtcbiAgICAgIH0gY2F0Y2ggKGV2YWxFcnJvcikge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAnZXJyb3InLCB2YWx1ZTogdGhpcy5zZXJpYWxpemVFcnJvcihldmFsRXJyb3IpIH0pO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhc3luYyBnZXRPYnNpZGlhbk1vZHVsZSh0aGlzOiBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2UpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgIGlmICh0aGlzLm9ic2lkaWFuTW9kdWxlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9ic2lkaWFuTW9kdWxlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBTTElDRV9TVEFSVCA9IDI7XG4gICAgICBjb25zdCByYW5kb21TdWZmaXggPSBTdHJpbmcoTWF0aC5yYW5kb20oKSkuc2xpY2UoU0xJQ0VfU1RBUlQpO1xuICAgICAgY29uc3QgdGVtcE1vZHVsZU5hbWUgPSBgZ2V0LW9ic2lkaWFuLW1vZHVsZS0ke3JhbmRvbVN1ZmZpeH1gO1xuICAgICAgY29uc3QgZGlyID0gYCR7dGhpcy5hcHAudmF1bHQuY29uZmlnRGlyfS9wbHVnaW5zLyR7dGVtcE1vZHVsZU5hbWV9YDtcbiAgICAgIHRoaXMuYXBwLnBsdWdpbnMubWFuaWZlc3RzW3RlbXBNb2R1bGVOYW1lXSA9IHtcbiAgICAgICAgYXV0aG9yOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICBkaXIsXG4gICAgICAgIGlkOiB0ZW1wTW9kdWxlTmFtZSxcbiAgICAgICAgaXNEZXNrdG9wT25seTogZmFsc2UsXG4gICAgICAgIG1pbkFwcFZlcnNpb246ICcnLFxuICAgICAgICBuYW1lOiB0ZW1wTW9kdWxlTmFtZSxcbiAgICAgICAgdmVyc2lvbjogJydcbiAgICAgIH07XG4gICAgICBhd2FpdCB0aGlzLmFwcC52YXVsdC5hZGFwdGVyLm1rZGlyKGRpcik7XG5cbiAgICAgIGNvbnN0IHBsdWdpbkZuQm9keSA9ICdjb25zdCByPXJlcXVpcmUsZT1leHBvcnRzO2NvbnN0IG09cihcXCdvYnNpZGlhblxcJyk7d2luZG93Ll9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmcub2JzaWRpYW5Nb2R1bGU9bTtlLmRlZmF1bHQ9bS5QbHVnaW47JztcbiAgICAgIGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIud3JpdGUoYCR7ZGlyfS9tYWluLmpzYCwgcGx1Z2luRm5Cb2R5KTtcblxuICAgICAgYXdhaXQgdGhpcy5hcHAucGx1Z2lucy5sb2FkUGx1Z2luKHRlbXBNb2R1bGVOYW1lKTtcbiAgICAgIGF3YWl0IHRoaXMuYXBwLnBsdWdpbnMudW5pbnN0YWxsUGx1Z2luKHRlbXBNb2R1bGVOYW1lKTtcblxuICAgICAgaWYgKHRoaXMub2JzaWRpYW5Nb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JzaWRpYW5Nb2R1bGU7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgb2JzaWRpYW4gbW9kdWxlJyk7XG4gICAgfSxcblxuICAgIGFzeW5jIGlwY1NlbmRTeW5jKHRoaXM6IEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSwgcGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBhd2FpdCB0aGlzLmVuc3VyZUxheW91dFJlYWR5KCk7XG4gICAgICB3aW5kb3cuZWxlY3Ryb24uaXBjUmVuZGVyZXIuc2VuZFN5bmMocGFyYW1zLmNoYW5uZWwsIC4uLnBhcmFtcy5hcmdzKTtcbiAgICB9LFxuXG4gICAgb2JzaWRpYW5Nb2R1bGU6IGV4aXN0aW5nT2JzaWRpYW5Nb2R1bGUsXG5cbiAgICBhc3luYyBwb2xsVmF1bHRCYXNlUGF0aCh0aGlzOiBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2UpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgYXdhaXQgdGhpcy5lbnN1cmVMYXlvdXRSZWFkeSgpO1xuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXggLS0gRGF0YUFkYXB0ZXIgaXMgYWN0dWFsbHkgRmlsZVN5c3RlbUFkYXB0ZXIgYXQgcnVudGltZSBvbiBkZXNrdG9wLlxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KCh0aGlzLmFwcC52YXVsdC5hZGFwdGVyIGFzIHVua25vd24gYXMgRmlsZVN5c3RlbUFkYXB0ZXJMaWtlKS5nZXRCYXNlUGF0aCgpKTtcbiAgICB9LFxuXG4gICAgc2VyaWFsaXplRXJyb3IodGhpczogSW50ZWdyYXRpb25UZXN0aW5nTmFtZXNwYWNlLCBlcnJvcjogdW5rbm93biwgZGVwdGggPSAwKTogc3RyaW5nIHtcbiAgICAgIGNvbnN0IENBVVNFX0lOREVOVF9TSVpFID0gMjtcbiAgICAgIGNvbnN0IGluZGVudCA9ICcgJy5yZXBlYXQoZGVwdGggKiBDQVVTRV9JTkRFTlRfU0laRSk7XG5cbiAgICAgIGlmICghKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgICAgIHJldHVybiBgJHtpbmRlbnR9JHtTdHJpbmcoZXJyb3IpfWA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YWNrT3JNZXNzYWdlID0gZXJyb3Iuc3RhY2sgPz8gYCR7ZXJyb3IubmFtZX06ICR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgbGV0IHJlc3VsdCA9IHN0YWNrT3JNZXNzYWdlLnNwbGl0KCdcXG4nKS5tYXAoKGxpbmUpID0+IGAke2luZGVudH0ke2xpbmV9YCkuam9pbignXFxuJyk7XG5cbiAgICAgIGlmIChlcnJvci5jYXVzZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlc3VsdCArPSBgXFxuJHtpbmRlbnR9W2NhdXNlXTpgO1xuICAgICAgICByZXN1bHQgKz0gYFxcbiR7dGhpcy5zZXJpYWxpemVFcnJvcihlcnJvci5jYXVzZSwgZGVwdGggKyAxKX1gO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG5cbiAgICBhc3luYyBzZXRMb2NhbFN0b3JhZ2VJdGVtKHRoaXM6IEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSwgcGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBhd2FpdCB0aGlzLmVuc3VyZUxheW91dFJlYWR5KCk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShwYXJhbXMua2V5LCBwYXJhbXMudmFsdWUpO1xuICAgIH0sXG5cbiAgICB2ZXJzaW9uOiBib290c3RyYXBQYXJhbXMudmVyc2lvblxuICB9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCAtLSBTZXJpYWxpemVkIGZ1bmN0aW9uIHJ1bnMgaW4gT2JzaWRpYW4gd2hlcmUgSmVzdCdzIGdsb2JhbCB0eXBlIGRvZXNuJ3QgYXBwbHkuXG4gICh3aW5kb3cgYXMgdW5rbm93biBhcyBQYXJ0aWFsPEludGVncmF0aW9uVGVzdGluZ0hvbGRlcj4pLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmcgPSBucztcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQSxvQ0FBcUM7QUFDckMscUJBQWdDO0FBaUJoQyxlQUFzQiw0QkFBNEIsV0FBOEIsS0FBNEI7QUFDMUcsUUFBTSxjQUFjLEtBQUssVUFBVSw4QkFBZTtBQUNsRCxRQUFNLGNBQWMsTUFBTSxVQUFVO0FBQUEsSUFDbEMsbUVBQW1FLFdBQVc7QUFBQSxJQUM5RSxFQUFFLElBQUk7QUFBQSxFQUNSO0FBRUEsTUFBSSxnQkFBZ0IsUUFBUTtBQUMxQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLG9CQUFnQixvREFBcUIsb0JBQW9CLEVBQUUsU0FBUywrQkFBZ0IsQ0FBQztBQUMzRixRQUFNLFVBQVUsU0FBUyxlQUFlLEVBQUUsSUFBSSxDQUFDO0FBQ2pEO0FBZ0JBLFNBQVMsbUJBQW1CLGlCQUE2RTtBQTRDdkcsUUFBTSxTQUFTO0FBQ2YsUUFBTSxtQkFBbUIsT0FBTyw4QkFBOEIsWUFBWSxDQUFDO0FBQzNFLFFBQU0seUJBQXlCLE9BQU8sOEJBQThCO0FBRXBFLFFBQU0sS0FBa0M7QUFBQSxJQUN0QyxJQUFJLE1BQU07QUFFUixhQUFPLE9BQU87QUFBQSxJQUNoQjtBQUFBLElBRUEsVUFBVTtBQUFBLElBRVYsTUFBTSx1QkFBdUU7QUFDM0UsWUFBTSxLQUFLLGtCQUFrQjtBQUM3QixZQUFNLE1BQU0sQ0FBQztBQUNiLGFBQU8sZUFBZSxRQUFRO0FBQUEsSUFDaEM7QUFBQSxJQUVBLE1BQU0sb0JBQW9FO0FBQ3hFLFlBQU0sSUFBSSxRQUFjLENBQUMsWUFBWTtBQUNuQyxhQUFLLElBQUksVUFBVSxjQUFjLE9BQU87QUFBQSxNQUMxQyxDQUFDO0FBQUEsSUFDSDtBQUFBLElBRUEsTUFBTSxZQUErQyxRQUF5QjtBQUM1RSxVQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsVUFBVSxHQUFHO0FBQ2pDLGNBQU0sS0FBSyxJQUFJLFFBQVEsVUFBVSxJQUFJO0FBQUEsTUFDdkM7QUFDQSxZQUFNLGlCQUFpQixNQUFNLEtBQUssa0JBQWtCO0FBQ3BELFlBQU0sVUFBVSxPQUFPLFlBQ2xCLEtBQUssU0FBUyxPQUFPLFNBQVMsTUFBTSxDQUFDLElBQ3RDLENBQUM7QUFDTCxZQUFNLFdBQVcsRUFBRSxHQUFHLE9BQU8sTUFBTSxLQUFLLEtBQUssS0FBSyxTQUFTLGVBQWU7QUFDMUUsVUFBSTtBQUNGLGNBQU0sU0FBUyxNQUFNLE9BQU8sR0FBRyxRQUFRO0FBQ3ZDLFlBQUksV0FBVyxRQUFXO0FBQ3hCLGlCQUFPLEtBQUssVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQUEsUUFDN0M7QUFDQSxlQUFPLEtBQUssVUFBVSxFQUFFLE9BQU8sT0FBTyxDQUFDO0FBQUEsTUFDekMsU0FBUyxXQUFXO0FBQ2xCLGVBQU8sS0FBSyxVQUFVLEVBQUUsTUFBTSxTQUFTLE9BQU8sS0FBSyxlQUFlLFNBQVMsRUFBRSxDQUFDO0FBQUEsTUFDaEY7QUFBQSxJQUNGO0FBQUEsSUFFQSxNQUFNLG9CQUF1RTtBQUMzRSxVQUFJLEtBQUssZ0JBQWdCO0FBQ3ZCLGVBQU8sS0FBSztBQUFBLE1BQ2Q7QUFFQSxZQUFNLGNBQWM7QUFDcEIsWUFBTSxlQUFlLE9BQU8sS0FBSyxPQUFPLENBQUMsRUFBRSxNQUFNLFdBQVc7QUFDNUQsWUFBTSxpQkFBaUIsdUJBQXVCLFlBQVk7QUFDMUQsWUFBTSxNQUFNLEdBQUcsS0FBSyxJQUFJLE1BQU0sU0FBUyxZQUFZLGNBQWM7QUFDakUsV0FBSyxJQUFJLFFBQVEsVUFBVSxjQUFjLElBQUk7QUFBQSxRQUMzQyxRQUFRO0FBQUEsUUFDUixhQUFhO0FBQUEsUUFDYjtBQUFBLFFBQ0EsSUFBSTtBQUFBLFFBQ0osZUFBZTtBQUFBLFFBQ2YsZUFBZTtBQUFBLFFBQ2YsTUFBTTtBQUFBLFFBQ04sU0FBUztBQUFBLE1BQ1g7QUFDQSxZQUFNLEtBQUssSUFBSSxNQUFNLFFBQVEsTUFBTSxHQUFHO0FBRXRDLFlBQU0sZUFBZTtBQUNyQixZQUFNLEtBQUssSUFBSSxNQUFNLFFBQVEsTUFBTSxHQUFHLEdBQUcsWUFBWSxZQUFZO0FBRWpFLFlBQU0sS0FBSyxJQUFJLFFBQVEsV0FBVyxjQUFjO0FBQ2hELFlBQU0sS0FBSyxJQUFJLFFBQVEsZ0JBQWdCLGNBQWM7QUFFckQsVUFBSSxLQUFLLGdCQUFnQjtBQUN2QixlQUFPLEtBQUs7QUFBQSxNQUNkO0FBRUEsWUFBTSxJQUFJLE1BQU0sZ0NBQWdDO0FBQUEsSUFDbEQ7QUFBQSxJQUVBLE1BQU0sWUFBK0MsUUFBdUI7QUFDMUUsWUFBTSxLQUFLLGtCQUFrQjtBQUM3QixhQUFPLFNBQVMsWUFBWSxTQUFTLE9BQU8sU0FBUyxHQUFHLE9BQU8sSUFBSTtBQUFBLElBQ3JFO0FBQUEsSUFFQSxnQkFBZ0I7QUFBQSxJQUVoQixNQUFNLG9CQUFzRTtBQUMxRSxZQUFNLEtBQUssa0JBQWtCO0FBRzdCLGFBQU8sS0FBSyxVQUFXLEtBQUssSUFBSSxNQUFNLFFBQTZDLFlBQVksQ0FBQztBQUFBLElBQ2xHO0FBQUEsSUFFQSxlQUFrRCxPQUFnQixRQUFRLEdBQVc7QUFDbkYsWUFBTSxvQkFBb0I7QUFDMUIsWUFBTSxTQUFTLElBQUksT0FBTyxRQUFRLGlCQUFpQjtBQUVuRCxVQUFJLEVBQUUsaUJBQWlCLFFBQVE7QUFDN0IsZUFBTyxHQUFHLE1BQU0sR0FBRyxPQUFPLEtBQUssQ0FBQztBQUFBLE1BQ2xDO0FBRUEsWUFBTSxpQkFBaUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLEtBQUssTUFBTSxPQUFPO0FBQ3JFLFVBQUksU0FBUyxlQUFlLE1BQU0sSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxFQUFFLEtBQUssSUFBSTtBQUVuRixVQUFJLE1BQU0sVUFBVSxRQUFXO0FBQzdCLGtCQUFVO0FBQUEsRUFBSyxNQUFNO0FBQ3JCLGtCQUFVO0FBQUEsRUFBSyxLQUFLLGVBQWUsTUFBTSxPQUFPLFFBQVEsQ0FBQyxDQUFDO0FBQUEsTUFDNUQ7QUFFQSxhQUFPO0FBQUEsSUFDVDtBQUFBLElBRUEsTUFBTSxvQkFBdUQsUUFBdUI7QUFDbEYsWUFBTSxLQUFLLGtCQUFrQjtBQUM3QixtQkFBYSxRQUFRLE9BQU8sS0FBSyxPQUFPLEtBQUs7QUFBQSxJQUMvQztBQUFBLElBRUEsU0FBUyxnQkFBZ0I7QUFBQSxFQUMzQjtBQUdBLEVBQUMsT0FBd0QsK0JBQStCO0FBQzFGOyIsCiAgIm5hbWVzIjogW10KfQo=
143
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL25hbWVzcGFjZS1ib290c3RyYXAudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCb290c3RyYXBzIHRoZSBgd2luZG93Ll9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgIG5hbWVzcGFjZSBpbiB0aGVcbiAqIE9ic2lkaWFuIHByb2Nlc3MuIEV4dHJhY3RlZCB0byBpdHMgb3duIG1vZHVsZSB0byBhdm9pZCBkZXBlbmRlbmN5IGN5Y2xlc1xuICogYmV0d2VlbiBgZXZhbC1pbi1vYnNpZGlhbi50c2AgYW5kIHRoZSB0cmFuc3BvcnQgbW9kdWxlcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFBhcmFtcyB9IGZyb20gJy4vZ2VuZXJhdGUtZnVuY3Rpb24tY2FsbC5janMnO1xuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LmNqcyc7XG5cbmltcG9ydCB7IGdlbmVyYXRlRnVuY3Rpb25DYWxsIH0gZnJvbSAnLi9nZW5lcmF0ZS1mdW5jdGlvbi1jYWxsLmNqcyc7XG5pbXBvcnQgeyBMSUJSQVJZX1ZFUlNJT04gfSBmcm9tICcuL2xpYnJhcnkuY2pzJztcblxuaW50ZXJmYWNlIEJvb3RzdHJhcE5hbWVzcGFjZVBhcmFtcyB7XG4gIHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoZSBgd2luZG93Ll9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdgIG5hbWVzcGFjZSBpcyBib290c3RyYXBwZWRcbiAqIGluIHRoZSBPYnNpZGlhbiBwcm9jZXNzIHdpdGggdGhlIGN1cnJlbnQgbGlicmFyeSB2ZXJzaW9uLlxuICpcbiAqIFBlcmZvcm1zIGEgbGlnaHR3ZWlnaHQgdmVyc2lvbiBjaGVjayB2aWEgdGhlIHRyYW5zcG9ydC4gSWYgdGhlIG5hbWVzcGFjZVxuICogZG9lc24ndCBleGlzdCBvciBoYXMgYSBkaWZmZXJlbnQgdmVyc2lvbiwgc2VuZHMgdGhlIGZ1bGwgYm9vdHN0cmFwIGV4cHJlc3Npb25cbiAqIHRvIHJlZ2lzdGVyIGFsbCBoZWxwZXIgZnVuY3Rpb25zLlxuICpcbiAqIEBwYXJhbSB0cmFuc3BvcnQgLSBUaGUgdHJhbnNwb3J0IHRvIHVzZSBmb3IgZXZhbHVhdGlvbi5cbiAqIEBwYXJhbSBjd2QgLSBUaGUgd29ya2luZyBkaXJlY3RvcnkgKHZhdWx0IHBhdGgpLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlTmFtZXNwYWNlQm9vdHN0cmFwcGVkKHRyYW5zcG9ydDogT2JzaWRpYW5UcmFuc3BvcnQsIGN3ZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHZlcnNpb25Kc29uID0gSlNPTi5zdHJpbmdpZnkoTElCUkFSWV9WRVJTSU9OKTtcbiAgY29uc3QgY2hlY2tSZXN1bHQgPSBhd2FpdCB0cmFuc3BvcnQuZXZhbHVhdGUoXG4gICAgYEpTT04uc3RyaW5naWZ5KHdpbmRvdy5fX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nPy52ZXJzaW9uID09PSAke3ZlcnNpb25Kc29ufSlgLFxuICAgIHsgY3dkIH1cbiAgKTtcblxuICBpZiAoY2hlY2tSZXN1bHQgPT09ICd0cnVlJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGJvb3RzdHJhcEV4cHIgPSBnZW5lcmF0ZUZ1bmN0aW9uQ2FsbChib290c3RyYXBOYW1lc3BhY2UsIHsgdmVyc2lvbjogTElCUkFSWV9WRVJTSU9OIH0pO1xuICBhd2FpdCB0cmFuc3BvcnQuZXZhbHVhdGUoYm9vdHN0cmFwRXhwciwgeyBjd2QgfSk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBTZXJpYWxpemVkIHZpYSB0b1N0cmluZygpIGFuZCBleGVjdXRlZCBpbnNpZGUgdGhlIE9ic2lkaWFuIHByb2Nlc3MsIG5vdCBpbiBOb2RlLiBDb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RzLiAqL1xuXG4vKipcbiAqIEJvb3RzdHJhcHMgdGhlIGB3aW5kb3cuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ2AgbmFtZXNwYWNlIHdpdGggYWxsXG4gKiBoZWxwZXIgZnVuY3Rpb25zLiBTZXJpYWxpemVkIHZpYSBgdG9TdHJpbmcoKWAgYW5kIHNlbnQgdG8gT2JzaWRpYW4gb25jZVxuICogcGVyIGxpYnJhcnkgdmVyc2lvbi5cbiAqXG4gKiBQcmVzZXJ2ZXMgYGNvbnRleHRzYCBhY3Jvc3MgdmVyc2lvbiB1cGdyYWRlcyBzbyBsaXZlIHtAbGluayBDb250ZXh0SWR9XG4gKiByZWZlcmVuY2VzIHN1cnZpdmUuXG4gKlxuICogTXVzdCBOT1QgcmVmZXJlbmNlIGFueSBvdXRlciBzY29wZSBcdTIwMTQgaXQgaXMgc2VyaWFsaXplZCB2aWEgYHRvU3RyaW5nKClgLlxuICpcbiAqIEBwYXJhbSBib290c3RyYXBQYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBpbmNsdWRpbmcgdGhlIGxpYnJhcnkgdmVyc2lvbi5cbiAqL1xuZnVuY3Rpb24gYm9vdHN0cmFwTmFtZXNwYWNlKGJvb3RzdHJhcFBhcmFtczogR2VuZXJhdGVGdW5jdGlvbkNhbGxQYXJhbXM8Qm9vdHN0cmFwTmFtZXNwYWNlUGFyYW1zPik6IHZvaWQge1xuICBpbnRlcmZhY2UgSW50ZWdyYXRpb25UZXN0aW5nSG9sZGVyIHtcbiAgICBfX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nOiBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2VTdGF0ZTtcbiAgfVxuXG4gIGludGVyZmFjZSBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2VTdGF0ZSB7XG4gICAgY29udGV4dHM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgICBvYnNpZGlhbk1vZHVsZT86IHVua25vd247XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICB9XG5cbiAgaW50ZXJmYWNlIEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSBleHRlbmRzIEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZVN0YXRlIHtcbiAgICByZWFkb25seSBhcHA6IEFwcDtcbiAgICBkZXN0cm95Q3VycmVudFdpbmRvdygpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGVuc3VyZUxheW91dFJlYWR5KCk6IFByb21pc2U8dm9pZD47XG4gICAgZXZhbFdyYXBwZXIobnNQYXJhbXM6IEV2YWxXcmFwcGVyUGFyYW1zKTogUHJvbWlzZTxzdHJpbmc+O1xuICAgIGdldE9ic2lkaWFuTW9kdWxlKCk6IFByb21pc2U8dW5rbm93bj47XG4gICAgaXBjU2VuZFN5bmMobnNQYXJhbXM6IElwY1NlbmRTeW5jUGFyYW1zKTogUHJvbWlzZTx2b2lkPjtcbiAgICBwb2xsVmF1bHRCYXNlUGF0aCgpOiBQcm9taXNlPHN0cmluZz47XG4gICAgc2VyaWFsaXplRXJyb3IoZXJyb3I6IHVua25vd24sIGRlcHRoPzogbnVtYmVyKTogc3RyaW5nO1xuICAgIHNldExvY2FsU3RvcmFnZUl0ZW0obnNQYXJhbXM6IFNldExvY2FsU3RvcmFnZUl0ZW1QYXJhbXMpOiBQcm9taXNlPHZvaWQ+O1xuICB9XG5cbiAgaW50ZXJmYWNlIEV2YWxXcmFwcGVyUGFyYW1zIHtcbiAgICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBjb250ZXh0SWQ/OiBzdHJpbmc7XG4gICAgZm4oZm5BcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHVua25vd247XG4gIH1cblxuICBpbnRlcmZhY2UgRmlsZVN5c3RlbUFkYXB0ZXJMaWtlIHtcbiAgICBnZXRCYXNlUGF0aCgpOiBzdHJpbmc7XG4gIH1cblxuICBpbnRlcmZhY2UgSXBjU2VuZFN5bmNQYXJhbXMge1xuICAgIGFyZ3M6IHVua25vd25bXTtcbiAgICBjaGFubmVsOiBzdHJpbmc7XG4gIH1cblxuICBpbnRlcmZhY2UgU2V0TG9jYWxTdG9yYWdlSXRlbVBhcmFtcyB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxheSAoaW4gbXMpIGJlZm9yZSBpbnZva2luZyBgZWxlY3Ryb25XaW5kb3cuZGVzdHJveSgpYCBzbyB0aGUgZXZhbCB0aGF0XG4gICAqIHRyaWdnZXJlZCB0aGUgY2FsbCBoYXMgdGltZSB0byByZXR1cm4gaXRzIHJlc3VsdCB0byB0aGUgY2FsbGVyLiBXaXRob3V0XG4gICAqIGl0IHRoZSByZW5kZXJlciBkaWVzIGJlZm9yZSB0aGUgSVBDIHJlcGx5IHNoaXBzLCB0aGUgY2FsbGVyIHdhaXRzIGZvciB0aGVcbiAgICogZnVsbCBldmFsIHRpbWVvdXQsIGFuZCBzdGFsZSBgQnJvd3NlcldpbmRvd2AgZW50cmllcyBwaWxlIHVwLlxuICAgKi9cbiAgY29uc3QgREVTVFJPWV9ERUxBWV9JTl9NSUxMSVNFQ09ORFMgPSA1MDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXggLS0gQXBwcm92ZWQgZG91YmxlIGNhc3Q6IGBfX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nYCBpcyBvdXIgaW50ZXJuYWwgV2luZG93IGF1Z21lbnRhdGlvbiwgaW50ZW50aW9uYWxseSBrZXB0IGxvY2FsIChub3QgZGVjbGFyZWQgZ2xvYmFsbHkpIHRvIGF2b2lkIGxlYWtpbmcgaW50byBjb25zdW1lciB0eXBlcy5cbiAgY29uc3QgaG9sZGVyID0gd2luZG93IGFzIHVua25vd24gYXMgUGFydGlhbDxJbnRlZ3JhdGlvblRlc3RpbmdIb2xkZXI+O1xuICBjb25zdCBleGlzdGluZ0NvbnRleHRzID0gaG9sZGVyLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmc/LmNvbnRleHRzID8/IHt9O1xuICBjb25zdCBleGlzdGluZ09ic2lkaWFuTW9kdWxlID0gaG9sZGVyLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3Rpbmc/Lm9ic2lkaWFuTW9kdWxlO1xuXG4gIGNvbnN0IG5zOiBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2UgPSB7XG4gICAgZ2V0IGFwcCgpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZGVwcmVjYXRlZCAtLSBgYXBwYCBnZXR0ZXIgcmVhZHMgYHdpbmRvdy5hcHBgIHdoaWNoIGlzIHNldCBieSBPYnNpZGlhbi5cbiAgICAgIHJldHVybiB3aW5kb3cuYXBwO1xuICAgIH0sXG5cbiAgICBjb250ZXh0czogZXhpc3RpbmdDb250ZXh0cyxcblxuICAgIGFzeW5jIGRlc3Ryb3lDdXJyZW50V2luZG93KHRoaXM6IEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgYXdhaXQgdGhpcy5lbnN1cmVMYXlvdXRSZWFkeSgpO1xuICAgICAgYXdhaXQgc2xlZXAoMCk7XG4gICAgICBjb25zdCBlbGVjdHJvbldpbmRvdyA9IHdpbmRvdy5lbGVjdHJvbldpbmRvdztcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZWxlY3Ryb25XaW5kb3cuZGVzdHJveSgpO1xuICAgICAgfSwgREVTVFJPWV9ERUxBWV9JTl9NSUxMSVNFQ09ORFMpO1xuICAgIH0sXG5cbiAgICBhc3luYyBlbnN1cmVMYXlvdXRSZWFkeSh0aGlzOiBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KHJlc29sdmUpO1xuICAgICAgfSk7XG4gICAgfSxcblxuICAgIGFzeW5jIGV2YWxXcmFwcGVyKHRoaXM6IEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSwgcGFyYW1zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIGlmICghdGhpcy5hcHAucGx1Z2lucy5pc0VuYWJsZWQoKSkge1xuICAgICAgICBhd2FpdCB0aGlzLmFwcC5wbHVnaW5zLnNldEVuYWJsZSh0cnVlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9ic2lkaWFuTW9kdWxlID0gYXdhaXQgdGhpcy5nZXRPYnNpZGlhbk1vZHVsZSgpO1xuICAgICAgY29uc3QgY29udGV4dCA9IHBhcmFtcy5jb250ZXh0SWRcbiAgICAgICAgPyAodGhpcy5jb250ZXh0c1twYXJhbXMuY29udGV4dElkXSA/Pz0ge30pXG4gICAgICAgIDoge307XG4gICAgICBjb25zdCBmdWxsQXJncyA9IHsgLi4ucGFyYW1zLmFyZ3MsIGFwcDogdGhpcy5hcHAsIGNvbnRleHQsIG9ic2lkaWFuTW9kdWxlIH07XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXJhbXMuZm4oZnVsbEFyZ3MpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeyB0eXBlOiAndW5kZWZpbmVkJyB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeyB2YWx1ZTogcmVzdWx0IH0pO1xuICAgICAgfSBjYXRjaCAoZXZhbEVycm9yKSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IHR5cGU6ICdlcnJvcicsIHZhbHVlOiB0aGlzLnNlcmlhbGl6ZUVycm9yKGV2YWxFcnJvcikgfSk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIGFzeW5jIGdldE9ic2lkaWFuTW9kdWxlKHRoaXM6IEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgaWYgKHRoaXMub2JzaWRpYW5Nb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub2JzaWRpYW5Nb2R1bGU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IFNMSUNFX1NUQVJUID0gMjtcbiAgICAgIGNvbnN0IHJhbmRvbVN1ZmZpeCA9IFN0cmluZyhNYXRoLnJhbmRvbSgpKS5zbGljZShTTElDRV9TVEFSVCk7XG4gICAgICBjb25zdCB0ZW1wTW9kdWxlTmFtZSA9IGBnZXQtb2JzaWRpYW4tbW9kdWxlLSR7cmFuZG9tU3VmZml4fWA7XG4gICAgICBjb25zdCBkaXIgPSBgJHt0aGlzLmFwcC52YXVsdC5jb25maWdEaXJ9L3BsdWdpbnMvJHt0ZW1wTW9kdWxlTmFtZX1gO1xuICAgICAgdGhpcy5hcHAucGx1Z2lucy5tYW5pZmVzdHNbdGVtcE1vZHVsZU5hbWVdID0ge1xuICAgICAgICBhdXRob3I6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGRpcixcbiAgICAgICAgaWQ6IHRlbXBNb2R1bGVOYW1lLFxuICAgICAgICBpc0Rlc2t0b3BPbmx5OiBmYWxzZSxcbiAgICAgICAgbWluQXBwVmVyc2lvbjogJycsXG4gICAgICAgIG5hbWU6IHRlbXBNb2R1bGVOYW1lLFxuICAgICAgICB2ZXJzaW9uOiAnJ1xuICAgICAgfTtcbiAgICAgIGF3YWl0IHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIubWtkaXIoZGlyKTtcblxuICAgICAgY29uc3QgcGx1Z2luRm5Cb2R5ID0gJ2NvbnN0IHI9cmVxdWlyZSxlPWV4cG9ydHM7Y29uc3QgbT1yKFxcJ29ic2lkaWFuXFwnKTt3aW5kb3cuX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZy5vYnNpZGlhbk1vZHVsZT1tO2UuZGVmYXVsdD1tLlBsdWdpbjsnO1xuICAgICAgYXdhaXQgdGhpcy5hcHAudmF1bHQuYWRhcHRlci53cml0ZShgJHtkaXJ9L21haW4uanNgLCBwbHVnaW5GbkJvZHkpO1xuXG4gICAgICBhd2FpdCB0aGlzLmFwcC5wbHVnaW5zLmxvYWRQbHVnaW4odGVtcE1vZHVsZU5hbWUpO1xuICAgICAgYXdhaXQgdGhpcy5hcHAucGx1Z2lucy51bmluc3RhbGxQbHVnaW4odGVtcE1vZHVsZU5hbWUpO1xuXG4gICAgICBpZiAodGhpcy5vYnNpZGlhbk1vZHVsZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5vYnNpZGlhbk1vZHVsZTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBvYnNpZGlhbiBtb2R1bGUnKTtcbiAgICB9LFxuXG4gICAgYXN5bmMgaXBjU2VuZFN5bmModGhpczogSW50ZWdyYXRpb25UZXN0aW5nTmFtZXNwYWNlLCBwYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGF3YWl0IHRoaXMuZW5zdXJlTGF5b3V0UmVhZHkoKTtcbiAgICAgIHdpbmRvdy5lbGVjdHJvbi5pcGNSZW5kZXJlci5zZW5kU3luYyhwYXJhbXMuY2hhbm5lbCwgLi4ucGFyYW1zLmFyZ3MpO1xuICAgIH0sXG5cbiAgICBvYnNpZGlhbk1vZHVsZTogZXhpc3RpbmdPYnNpZGlhbk1vZHVsZSxcblxuICAgIGFzeW5jIHBvbGxWYXVsdEJhc2VQYXRoKHRoaXM6IEludGVncmF0aW9uVGVzdGluZ05hbWVzcGFjZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICBhd2FpdCB0aGlzLmVuc3VyZUxheW91dFJlYWR5KCk7XG5cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheCAtLSBEYXRhQWRhcHRlciBpcyBhY3R1YWxseSBGaWxlU3lzdGVtQWRhcHRlciBhdCBydW50aW1lIG9uIGRlc2t0b3AuXG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoKHRoaXMuYXBwLnZhdWx0LmFkYXB0ZXIgYXMgdW5rbm93biBhcyBGaWxlU3lzdGVtQWRhcHRlckxpa2UpLmdldEJhc2VQYXRoKCkpO1xuICAgIH0sXG5cbiAgICBzZXJpYWxpemVFcnJvcih0aGlzOiBJbnRlZ3JhdGlvblRlc3RpbmdOYW1lc3BhY2UsIGVycm9yOiB1bmtub3duLCBkZXB0aCA9IDApOiBzdHJpbmcge1xuICAgICAgY29uc3QgQ0FVU0VfSU5ERU5UX1NJWkUgPSAyO1xuICAgICAgY29uc3QgaW5kZW50ID0gJyAnLnJlcGVhdChkZXB0aCAqIENBVVNFX0lOREVOVF9TSVpFKTtcblxuICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICAgICAgcmV0dXJuIGAke2luZGVudH0ke1N0cmluZyhlcnJvcil9YDtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RhY2tPck1lc3NhZ2UgPSBlcnJvci5zdGFjayA/PyBgJHtlcnJvci5uYW1lfTogJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICBsZXQgcmVzdWx0ID0gc3RhY2tPck1lc3NhZ2Uuc3BsaXQoJ1xcbicpLm1hcCgobGluZSkgPT4gYCR7aW5kZW50fSR7bGluZX1gKS5qb2luKCdcXG4nKTtcblxuICAgICAgaWYgKGVycm9yLmNhdXNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0ICs9IGBcXG4ke2luZGVudH1bY2F1c2VdOmA7XG4gICAgICAgIHJlc3VsdCArPSBgXFxuJHt0aGlzLnNlcmlhbGl6ZUVycm9yKGVycm9yLmNhdXNlLCBkZXB0aCArIDEpfWA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcblxuICAgIGFzeW5jIHNldExvY2FsU3RvcmFnZUl0ZW0odGhpczogSW50ZWdyYXRpb25UZXN0aW5nTmFtZXNwYWNlLCBwYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGF3YWl0IHRoaXMuZW5zdXJlTGF5b3V0UmVhZHkoKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHBhcmFtcy5rZXksIHBhcmFtcy52YWx1ZSk7XG4gICAgfSxcblxuICAgIHZlcnNpb246IGJvb3RzdHJhcFBhcmFtcy52ZXJzaW9uXG4gIH07XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4IC0tIEFwcHJvdmVkIGRvdWJsZSBjYXN0OiBgX19vYnNpZGlhbkludGVncmF0aW9uVGVzdGluZ2AgaXMgb3VyIGludGVybmFsIFdpbmRvdyBhdWdtZW50YXRpb24sIGludGVudGlvbmFsbHkga2VwdCBsb2NhbCAobm90IGRlY2xhcmVkIGdsb2JhbGx5KSB0byBhdm9pZCBsZWFraW5nIGludG8gY29uc3VtZXIgdHlwZXMuXG4gICh3aW5kb3cgYXMgdW5rbm93biBhcyBQYXJ0aWFsPEludGVncmF0aW9uVGVzdGluZ0hvbGRlcj4pLl9fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmcgPSBucztcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFhQSxvQ0FBcUM7QUFDckMscUJBQWdDO0FBaUJoQyxlQUFzQiw0QkFBNEIsV0FBOEIsS0FBNEI7QUFDMUcsUUFBTSxjQUFjLEtBQUssVUFBVSw4QkFBZTtBQUNsRCxRQUFNLGNBQWMsTUFBTSxVQUFVO0FBQUEsSUFDbEMsbUVBQW1FLFdBQVc7QUFBQSxJQUM5RSxFQUFFLElBQUk7QUFBQSxFQUNSO0FBRUEsTUFBSSxnQkFBZ0IsUUFBUTtBQUMxQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLG9CQUFnQixvREFBcUIsb0JBQW9CLEVBQUUsU0FBUywrQkFBZ0IsQ0FBQztBQUMzRixRQUFNLFVBQVUsU0FBUyxlQUFlLEVBQUUsSUFBSSxDQUFDO0FBQ2pEO0FBZ0JBLFNBQVMsbUJBQW1CLGlCQUE2RTtBQWlEdkcsUUFBTSxnQ0FBZ0M7QUFHdEMsUUFBTSxTQUFTO0FBQ2YsUUFBTSxtQkFBbUIsT0FBTyw4QkFBOEIsWUFBWSxDQUFDO0FBQzNFLFFBQU0seUJBQXlCLE9BQU8sOEJBQThCO0FBRXBFLFFBQU0sS0FBa0M7QUFBQSxJQUN0QyxJQUFJLE1BQU07QUFFUixhQUFPLE9BQU87QUFBQSxJQUNoQjtBQUFBLElBRUEsVUFBVTtBQUFBLElBRVYsTUFBTSx1QkFBdUU7QUFDM0UsWUFBTSxLQUFLLGtCQUFrQjtBQUM3QixZQUFNLE1BQU0sQ0FBQztBQUNiLFlBQU0saUJBQWlCLE9BQU87QUFDOUIsYUFBTyxXQUFXLE1BQU07QUFDdEIsdUJBQWUsUUFBUTtBQUFBLE1BQ3pCLEdBQUcsNkJBQTZCO0FBQUEsSUFDbEM7QUFB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
@@ -29,6 +29,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  var obsidian_config_exports = {};
30
30
  __export(obsidian_config_exports, {
31
31
  enableCliInConfig: () => enableCliInConfig,
32
+ getAnyOpenVaultPath: () => getAnyOpenVaultPath,
32
33
  getAnyRegisteredVaultPath: () => getAnyRegisteredVaultPath,
33
34
  getRegisteredVaults: () => getRegisteredVaults,
34
35
  getVaultId: () => getVaultId,
@@ -49,6 +50,18 @@ function enableCliInConfig() {
49
50
  config.cli = true;
50
51
  writeObsidianJson(config);
51
52
  }
53
+ function getAnyOpenVaultPath() {
54
+ const config = readObsidianJson();
55
+ if (!config) {
56
+ return void 0;
57
+ }
58
+ for (const entry of Object.values(config.vaults)) {
59
+ if (entry.open === true) {
60
+ return entry.path;
61
+ }
62
+ }
63
+ return void 0;
64
+ }
52
65
  function getAnyRegisteredVaultPath() {
53
66
  const config = readObsidianJson();
54
67
  if (!config) {
@@ -160,6 +173,7 @@ function writeObsidianJson(config) {
160
173
  // Annotate the CommonJS export names for ESM import in node:
161
174
  0 && (module.exports = {
162
175
  enableCliInConfig,
176
+ getAnyOpenVaultPath,
163
177
  getAnyRegisteredVaultPath,
164
178
  getRegisteredVaults,
165
179
  getVaultId,
@@ -169,4 +183,4 @@ function writeObsidianJson(config) {
169
183
  registerVaultInConfig,
170
184
  removeVaultFromConfig
171
185
  });
172
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuLWNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlYWRzIGFuZCBxdWVyaWVzIE9ic2lkaWFuJ3MgbG9jYWwgY29uZmlndXJhdGlvbiAoYG9ic2lkaWFuLmpzb25gKS5cbiAqL1xuXG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCB7XG4gIHJlYWRGaWxlU3luYyxcbiAgd3JpdGVGaWxlU3luY1xufSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7XG4gIGpvaW4sXG4gIHJlc29sdmVcbn0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbi8qKlxuICogQSByZWdpc3RlcmVkIHZhdWx0IGVudHJ5IHJldHVybmVkIGJ5IHtAbGluayBnZXRSZWdpc3RlcmVkVmF1bHRzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlcmVkVmF1bHQge1xuICAvKipcbiAgICogVGhlIGhleCB2YXVsdCBJRCBmcm9tIGBvYnNpZGlhbi5qc29uYC5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHZhdWx0IGlzIGN1cnJlbnRseSBtYXJrZWQgYXMgb3Blbi5cbiAgICovXG4gIG9wZW46IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHRvcC1sZXZlbCBzdHJ1Y3R1cmUgb2YgT2JzaWRpYW4ncyBgb2JzaWRpYW4uanNvbmAgY29uZmlnIGZpbGUuXG4gKi9cbmludGVyZmFjZSBPYnNpZGlhbkpzb24ge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgQ0xJIGlzIGVuYWJsZWQgaW4gT2JzaWRpYW4gc2V0dGluZ3MuXG4gICAqL1xuICBjbGk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgdmF1bHQgSURzIHRvIHZhdWx0IGVudHJpZXMuXG4gICAqL1xuICB2YXVsdHM6IFJlY29yZDxzdHJpbmcsIE9ic2lkaWFuVmF1bHRFbnRyeT47XG59XG5cbi8qKlxuICogQSBzaW5nbGUgdmF1bHQgZW50cnkgaW4gYG9ic2lkaWFuLmpzb25gLlxuICovXG5pbnRlcmZhY2UgT2JzaWRpYW5WYXVsdEVudHJ5IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHZhdWx0IGlzIGN1cnJlbnRseSBvcGVuLlxuICAgKi9cbiAgb3Blbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCBvZiB0aGUgbGFzdCBhY2Nlc3MuXG4gICAqL1xuICB0czogbnVtYmVyO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgdGhlIENMSSBpbiBPYnNpZGlhbidzIGBvYnNpZGlhbi5qc29uYCBjb25maWcgZmlsZS5cbiAqXG4gKiBTZXRzIGBjbGk6IHRydWVgIHNvIHRoYXQgT2JzaWRpYW4gc3RhcnRzIGl0cyBDTEkgc2VydmVyIG9uIG5leHQgbGF1bmNoLlxuICogSWYgdGhlIGNvbmZpZyBmaWxlIGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZXMgaXQgd2l0aCBhbiBlbXB0eSB2YXVsdHMgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5hYmxlQ2xpSW5Db25maWcoKTogdm9pZCB7XG4gIGNvbnN0IGNvbmZpZyA9IHJlYWRPYnNpZGlhbkpzb24oKSA/PyB7IHZhdWx0czoge30gfTtcbiAgY29uZmlnLmNsaSA9IHRydWU7XG4gIHdyaXRlT2JzaWRpYW5Kc29uKGNvbmZpZyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcGF0aCBvZiBhbnkgdmF1bHQgdGhhdCBpcyBjdXJyZW50bHkgcmVnaXN0ZXJlZCBpbiBPYnNpZGlhbidzIHJlZ2lzdHJ5LlxuICpcbiAqIFRoaXMgaXMgdXNlZnVsIHdoZW4gYW4gYG9ic2lkaWFuIGV2YWxgIGNhbGwgbXVzdCBydW4gaW5zaWRlIGFuIGV4aXN0aW5nIHZhdWx0XG4gKiB3aW5kb3cgKGUuZy4sIHRvIGlzc3VlIElQQyBjb21tYW5kcyB0aGF0IHJlZ2lzdGVyIG9yIHJlbW92ZSBvdGhlciB2YXVsdHMpLlxuICpcbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIGEgcmVnaXN0ZXJlZCB2YXVsdCwgb3IgYHVuZGVmaW5lZGAgaWYgbm8gdmF1bHRzIGFyZSByZWdpc3RlcmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW55UmVnaXN0ZXJlZFZhdWx0UGF0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBjb25maWcgPSByZWFkT2JzaWRpYW5Kc29uKCk7XG4gIGlmICghY29uZmlnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGZpcnN0RW50cnkgPSBPYmplY3QudmFsdWVzKGNvbmZpZy52YXVsdHMpWzBdO1xuICByZXR1cm4gZmlyc3RFbnRyeT8ucGF0aDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFsbCByZWdpc3RlcmVkIHZhdWx0cyBmcm9tIE9ic2lkaWFuJ3MgYG9ic2lkaWFuLmpzb25gIHJlZ2lzdHJ5LlxuICpcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHJlZ2lzdGVyZWQgdmF1bHQgZW50cmllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZ2lzdGVyZWRWYXVsdHMoKTogUmVnaXN0ZXJlZFZhdWx0W10ge1xuICBjb25zdCBjb25maWcgPSByZWFkT2JzaWRpYW5Kc29uKCk7XG4gIGlmICghY29uZmlnKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGNvbmZpZy52YXVsdHMpLm1hcCgoW2lkLCBlbnRyeV0pID0+ICh7XG4gICAgaWQsXG4gICAgb3BlbjogZW50cnkub3BlbiA9PT0gdHJ1ZSxcbiAgICBwYXRoOiBlbnRyeS5wYXRoXG4gIH0pKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBoZXggdmF1bHQgSUQgZm9yIGEgZ2l2ZW4gdmF1bHQgcGF0aCBmcm9tIE9ic2lkaWFuJ3MgcmVnaXN0cnkuXG4gKlxuICogQHBhcmFtIHZhdWx0UGF0aCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSB2YXVsdCBmb2xkZXIuXG4gKiBAcmV0dXJucyBUaGUgdmF1bHQgSUQsIG9yIGB1bmRlZmluZWRgIGlmIHRoZSB2YXVsdCBpcyBub3QgcmVnaXN0ZXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZhdWx0SWQodmF1bHRQYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBjb25maWcgPSByZWFkT2JzaWRpYW5Kc29uKCk7XG4gIGlmICghY29uZmlnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRUYXJnZXQgPSBub3JtYWxpemVQYXRoKHZhdWx0UGF0aCk7XG5cbiAgZm9yIChjb25zdCBbaWQsIGVudHJ5XSBvZiBPYmplY3QuZW50cmllcyhjb25maWcudmF1bHRzKSkge1xuICAgIGlmIChub3JtYWxpemVQYXRoKGVudHJ5LnBhdGgpID09PSBub3JtYWxpemVkVGFyZ2V0KSB7XG4gICAgICByZXR1cm4gaWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgT2JzaWRpYW4gQ0xJIGlzIGVuYWJsZWQgaW4gT2JzaWRpYW4ncyBzZXR0aW5ncy5cbiAqXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIENMSSBpcyBlbmFibGVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2xpRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgY29uc3QgY29uZmlnID0gcmVhZE9ic2lkaWFuSnNvbigpO1xuICByZXR1cm4gY29uZmlnPy5jbGkgPT09IHRydWU7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB2YXVsdCBpcyBtYXJrZWQgYXMgb3BlbiBpbiBPYnNpZGlhbidzIHZhdWx0IHJlZ2lzdHJ5LlxuICpcbiAqIE5vdGU6IFRoaXMgY2hlY2tzIHRoZSBgb3BlbmAgZmxhZyBpbiBgb2JzaWRpYW4uanNvbmAsIHdoaWNoIGlzIHVwZGF0ZWRcbiAqIGFzeW5jaHJvbm91c2x5IGJ5IE9ic2lkaWFuLiBJdCBtYXkgbm90IHJlZmxlY3QgdGhlIGN1cnJlbnQgcnVudGltZSBzdGF0ZS5cbiAqXG4gKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlci5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmF1bHQgaXMgcmVnaXN0ZXJlZCBhbmQgbWFya2VkIGFzIG9wZW4sIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYXVsdE9wZW4odmF1bHRQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgY29uZmlnID0gcmVhZE9ic2lkaWFuSnNvbigpO1xuICBpZiAoIWNvbmZpZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRUYXJnZXQgPSBub3JtYWxpemVQYXRoKHZhdWx0UGF0aCk7XG5cbiAgZm9yIChjb25zdCBlbnRyeSBvZiBPYmplY3QudmFsdWVzKGNvbmZpZy52YXVsdHMpKSB7XG4gICAgaWYgKG5vcm1hbGl6ZVBhdGgoZW50cnkucGF0aCkgPT09IG5vcm1hbGl6ZWRUYXJnZXQpIHtcbiAgICAgIHJldHVybiBlbnRyeS5vcGVuID09PSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHZhdWx0IHBhdGggaXMgcmVnaXN0ZXJlZCBpbiBPYnNpZGlhbidzIHZhdWx0IHJlZ2lzdHJ5LlxuICpcbiAqIEBwYXJhbSB2YXVsdFBhdGggLSBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgdmF1bHQgZm9sZGVyLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB2YXVsdCBpcyByZWdpc3RlcmVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmF1bHRSZWdpc3RlcmVkKHZhdWx0UGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRWYXVsdElkKHZhdWx0UGF0aCkgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYSB2YXVsdCBkaXJlY3RseSBpbiBPYnNpZGlhbidzIGBvYnNpZGlhbi5qc29uYCBjb25maWcgZmlsZS5cbiAqXG4gKiBUaGlzIHdyaXRlcyBhIG5ldyB2YXVsdCBlbnRyeSB3aXRoIGEgcmFuZG9tIGhleCBJRC4gVXNlZCB3aGVuIG5vIGV4aXN0aW5nXG4gKiB2YXVsdCBpcyBhdmFpbGFibGUgdG8gc2VuZCBJUEMgY29tbWFuZHMgdGhyb3VnaCBcdTIwMTQgdGhlIHZhdWx0IGlzIHJlZ2lzdGVyZWRcbiAqIFwib2ZmbGluZVwiIHNvIE9ic2lkaWFuIHdpbGwgb3BlbiBpdCBvbiBuZXh0IGxhdW5jaC5cbiAqXG4gKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyVmF1bHRJbkNvbmZpZyh2YXVsdFBhdGg6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBjb25maWcgPSByZWFkT2JzaWRpYW5Kc29uKCkgPz8geyB2YXVsdHM6IHt9IH07XG4gIGNvbnN0IFZBVUxUX0lEX0JZVEVfTEVOR1RIID0gODtcbiAgY29uc3QgaWQgPSByYW5kb21CeXRlcyhWQVVMVF9JRF9CWVRFX0xFTkdUSCkudG9TdHJpbmcoJ2hleCcpO1xuICBjb25maWcudmF1bHRzW2lkXSA9IHsgcGF0aDogdmF1bHRQYXRoLCB0czogRGF0ZS5ub3coKSB9O1xuICBjb25maWcuY2xpID0gdHJ1ZTtcbiAgd3JpdGVPYnNpZGlhbkpzb24oY29uZmlnKTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGEgdmF1bHQgZW50cnkgZnJvbSBPYnNpZGlhbidzIGBvYnNpZGlhbi5qc29uYCBjb25maWcgZmlsZS5cbiAqXG4gKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlci5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmF1bHQgd2FzIGZvdW5kIGFuZCByZW1vdmVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVZhdWx0RnJvbUNvbmZpZyh2YXVsdFBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBjb25maWcgPSByZWFkT2JzaWRpYW5Kc29uKCk7XG4gIGlmICghY29uZmlnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgbm9ybWFsaXplZFRhcmdldCA9IG5vcm1hbGl6ZVBhdGgodmF1bHRQYXRoKTtcbiAgbGV0IHdhc0ZvdW5kID0gZmFsc2U7XG5cbiAgZm9yIChjb25zdCBbaWQsIGVudHJ5XSBvZiBPYmplY3QuZW50cmllcyhjb25maWcudmF1bHRzKSkge1xuICAgIGlmIChub3JtYWxpemVQYXRoKGVudHJ5LnBhdGgpID09PSBub3JtYWxpemVkVGFyZ2V0KSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlIC0tIFJlbW92aW5nIGEgdmF1bHQgZW50cnkgYnkgaXRzIGR5bmFtaWMga2V5LlxuICAgICAgZGVsZXRlIGNvbmZpZy52YXVsdHNbaWRdO1xuICAgICAgd2FzRm91bmQgPSB0cnVlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKHdhc0ZvdW5kKSB7XG4gICAgd3JpdGVPYnNpZGlhbkpzb24oY29uZmlnKTtcbiAgfVxuXG4gIHJldHVybiB3YXNGb3VuZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBwYXRoIHRvIE9ic2lkaWFuJ3MgY29uZmlnIGRpcmVjdG9yeS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgYG9ic2lkaWFuL2AgY29uZmlnIGRpcmVjdG9yeS5cbiAqL1xuZnVuY3Rpb24gZ2V0T2JzaWRpYW5Db25maWdEaXIoKTogc3RyaW5nIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicpIHtcbiAgICBjb25zdCBhcHBEYXRhID0gcHJvY2Vzcy5lbnZbJ0FQUERBVEEnXTtcbiAgICBpZiAoYXBwRGF0YSkge1xuICAgICAgcmV0dXJuIGpvaW4oYXBwRGF0YSwgJ29ic2lkaWFuJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICdkYXJ3aW4nKSB7XG4gICAgcmV0dXJuIGpvaW4oaG9tZWRpcigpLCAnTGlicmFyeScsICdBcHBsaWNhdGlvbiBTdXBwb3J0JywgJ29ic2lkaWFuJyk7XG4gIH1cblxuICByZXR1cm4gam9pbihwcm9jZXNzLmVudlsnWERHX0NPTkZJR19IT01FJ10gPz8gam9pbihob21lZGlyKCksICcuY29uZmlnJyksICdvYnNpZGlhbicpO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSB2YXVsdCBwYXRoIGZvciBjb21wYXJpc29uLlxuICogT24gV2luZG93cywgcGF0aHMgYXJlIGNhc2UtaW5zZW5zaXRpdmUgYW5kIHNlcGFyYXRvcnMgbWF5IHZhcnkuXG4gKlxuICogQHBhcmFtIHZhdWx0UGF0aCAtIFRoZSBwYXRoIHRvIG5vcm1hbGl6ZS5cbiAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIHBhdGguXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGgodmF1bHRQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmUodmF1bHRQYXRoKTtcbiAgcmV0dXJuIHByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyByZXNvbHZlZC50b0xvd2VyQ2FzZSgpIDogcmVzb2x2ZWQ7XG59XG5cbi8qKlxuICogUmVhZHMgYW5kIHBhcnNlcyBPYnNpZGlhbidzIGBvYnNpZGlhbi5qc29uYCBjb25maWcgZmlsZS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGNvbmZpZywgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIGZpbGUgZG9lc24ndCBleGlzdCBvciBjYW4ndCBiZSBwYXJzZWQuXG4gKi9cbmZ1bmN0aW9uIHJlYWRPYnNpZGlhbkpzb24oKTogT2JzaWRpYW5Kc29uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgY29uZmlnUGF0aCA9IGpvaW4oZ2V0T2JzaWRpYW5Db25maWdEaXIoKSwgJ29ic2lkaWFuLmpzb24nKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBjb250ZW50ID0gcmVhZEZpbGVTeW5jKGNvbmZpZ1BhdGgsICd1dGYtOCcpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGNvbnRlbnQpIGFzIE9ic2lkaWFuSnNvbjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgZ2l2ZW4gY29uZmlnIG9iamVjdCB0byBPYnNpZGlhbidzIGBvYnNpZGlhbi5qc29uYCBmaWxlLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBUaGUgY29uZmlnIHRvIHdyaXRlLlxuICovXG5mdW5jdGlvbiB3cml0ZU9ic2lkaWFuSnNvbihjb25maWc6IE9ic2lkaWFuSnNvbik6IHZvaWQge1xuICBjb25zdCBjb25maWdQYXRoID0gam9pbihnZXRPYnNpZGlhbkNvbmZpZ0RpcigpLCAnb2JzaWRpYW4uanNvbicpO1xuICB3cml0ZUZpbGVTeW5jKGNvbmZpZ1BhdGgsIEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xufVxuIl0sCiAg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
186
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuLWNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlYWRzIGFuZCBxdWVyaWVzIE9ic2lkaWFuJ3MgbG9jYWwgY29uZmlndXJhdGlvbiAoYG9ic2lkaWFuLmpzb25gKS5cbiAqL1xuXG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCB7XG4gIHJlYWRGaWxlU3luYyxcbiAgd3JpdGVGaWxlU3luY1xufSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7XG4gIGpvaW4sXG4gIHJlc29sdmVcbn0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbi8qKlxuICogQSByZWdpc3RlcmVkIHZhdWx0IGVudHJ5IHJldHVybmVkIGJ5IHtAbGluayBnZXRSZWdpc3RlcmVkVmF1bHRzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlcmVkVmF1bHQge1xuICAvKipcbiAgICogVGhlIGhleCB2YXVsdCBJRCBmcm9tIGBvYnNpZGlhbi5qc29uYC5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHZhdWx0IGlzIGN1cnJlbnRseSBtYXJrZWQgYXMgb3Blbi5cbiAgICovXG4gIG9wZW46IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHRvcC1sZXZlbCBzdHJ1Y3R1cmUgb2YgT2JzaWRpYW4ncyBgb2JzaWRpYW4uanNvbmAgY29uZmlnIGZpbGUuXG4gKi9cbmludGVyZmFjZSBPYnNpZGlhbkpzb24ge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgQ0xJIGlzIGVuYWJsZWQgaW4gT2JzaWRpYW4gc2V0dGluZ3MuXG4gICAqL1xuICBjbGk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgdmF1bHQgSURzIHRvIHZhdWx0IGVudHJpZXMuXG4gICAqL1xuICB2YXVsdHM6IFJlY29yZDxzdHJpbmcsIE9ic2lkaWFuVmF1bHRFbnRyeT47XG59XG5cbi8qKlxuICogQSBzaW5nbGUgdmF1bHQgZW50cnkgaW4gYG9ic2lkaWFuLmpzb25gLlxuICovXG5pbnRlcmZhY2UgT2JzaWRpYW5WYXVsdEVudHJ5IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHZhdWx0IGlzIGN1cnJlbnRseSBvcGVuLlxuICAgKi9cbiAgb3Blbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCBvZiB0aGUgbGFzdCBhY2Nlc3MuXG4gICAqL1xuICB0czogbnVtYmVyO1xufVxuXG4vKipcbiAqIEVuYWJsZXMgdGhlIENMSSBpbiBPYnNpZGlhbidzIGBvYnNpZGlhbi5qc29uYCBjb25maWcgZmlsZS5cbiAqXG4gKiBTZXRzIGBjbGk6IHRydWVgIHNvIHRoYXQgT2JzaWRpYW4gc3RhcnRzIGl0cyBDTEkgc2VydmVyIG9uIG5leHQgbGF1bmNoLlxuICogSWYgdGhlIGNvbmZpZyBmaWxlIGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZXMgaXQgd2l0aCBhbiBlbXB0eSB2YXVsdHMgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5hYmxlQ2xpSW5Db25maWcoKTogdm9pZCB7XG4gIGNvbnN0IGNvbmZpZyA9IHJlYWRPYnNpZGlhbkpzb24oKSA/PyB7IHZhdWx0czoge30gfTtcbiAgY29uZmlnLmNsaSA9IHRydWU7XG4gIHdyaXRlT2JzaWRpYW5Kc29uKGNvbmZpZyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYWJzb2x1dGUgcGF0aCBvZiBhbnkgY3VycmVudGx5LW9wZW4gdmF1bHQuXG4gKlxuICogUHJlZmVyIHRoaXMgb3ZlciB7QGxpbmsgZ2V0QW55UmVnaXN0ZXJlZFZhdWx0UGF0aH0gd2hlbiB0aGUgcGF0aCBpcyBnb2luZ1xuICogdG8gYmUgdXNlZCBhcyB0aGUgdGFyZ2V0IG9mIGFuIGBvYnNpZGlhbiBldmFsYCBjYWxsOiB0YXJnZXRpbmcgYSByZWdpc3RlcmVkXG4gKiBidXQgKipjbG9zZWQqKiB2YXVsdCBjYXVzZXMgT2JzaWRpYW4ncyBDTEkgaGFuZGxlciB0byBzcGF3biBhIGZyZXNoIHdpbmRvd1xuICogZm9yIGl0IChgcGUobywgZmFsc2UpYCBpbiBgbWFpbi5qc2ApLCBsZWF2aW5nIGEgc3RyYXkgd2luZG93IGJlaGluZC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCB0byBhbiBvcGVuIHZhdWx0LCBvciBgdW5kZWZpbmVkYCBpZiBub25lIGFyZSBvcGVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW55T3BlblZhdWx0UGF0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBjb25maWcgPSByZWFkT2JzaWRpYW5Kc29uKCk7XG4gIGlmICghY29uZmlnKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGZvciAoY29uc3QgZW50cnkgb2YgT2JqZWN0LnZhbHVlcyhjb25maWcudmF1bHRzKSkge1xuICAgIGlmIChlbnRyeS5vcGVuID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZW50cnkucGF0aDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwYXRoIG9mIGFueSB2YXVsdCB0aGF0IGlzIGN1cnJlbnRseSByZWdpc3RlcmVkIGluIE9ic2lkaWFuJ3MgcmVnaXN0cnkuXG4gKlxuICogVGhpcyBpcyB1c2VmdWwgd2hlbiBhbiBgb2JzaWRpYW4gZXZhbGAgY2FsbCBtdXN0IHJ1biBpbnNpZGUgYW4gZXhpc3RpbmcgdmF1bHRcbiAqIHdpbmRvdyAoZS5nLiwgdG8gaXNzdWUgSVBDIGNvbW1hbmRzIHRoYXQgcmVnaXN0ZXIgb3IgcmVtb3ZlIG90aGVyIHZhdWx0cykuXG4gKlxuICogQHJldHVybnMgVGhlIGFic29sdXRlIHBhdGggdG8gYSByZWdpc3RlcmVkIHZhdWx0LCBvciBgdW5kZWZpbmVkYCBpZiBubyB2YXVsdHMgYXJlIHJlZ2lzdGVyZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbnlSZWdpc3RlcmVkVmF1bHRQYXRoKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGNvbmZpZyA9IHJlYWRPYnNpZGlhbkpzb24oKTtcbiAgaWYgKCFjb25maWcpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgZmlyc3RFbnRyeSA9IE9iamVjdC52YWx1ZXMoY29uZmlnLnZhdWx0cylbMF07XG4gIHJldHVybiBmaXJzdEVudHJ5Py5wYXRoO1xufVxuXG4vKipcbiAqIFJldHVybnMgYWxsIHJlZ2lzdGVyZWQgdmF1bHRzIGZyb20gT2JzaWRpYW4ncyBgb2JzaWRpYW4uanNvbmAgcmVnaXN0cnkuXG4gKlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgcmVnaXN0ZXJlZCB2YXVsdCBlbnRyaWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVnaXN0ZXJlZFZhdWx0cygpOiBSZWdpc3RlcmVkVmF1bHRbXSB7XG4gIGNvbnN0IGNvbmZpZyA9IHJlYWRPYnNpZGlhbkpzb24oKTtcbiAgaWYgKCFjb25maWcpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoY29uZmlnLnZhdWx0cykubWFwKChbaWQsIGVudHJ5XSkgPT4gKHtcbiAgICBpZCxcbiAgICBvcGVuOiBlbnRyeS5vcGVuID09PSB0cnVlLFxuICAgIHBhdGg6IGVudHJ5LnBhdGhcbiAgfSkpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGhleCB2YXVsdCBJRCBmb3IgYSBnaXZlbiB2YXVsdCBwYXRoIGZyb20gT2JzaWRpYW4ncyByZWdpc3RyeS5cbiAqXG4gKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHZhdWx0IGZvbGRlci5cbiAqIEByZXR1cm5zIFRoZSB2YXVsdCBJRCwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIHZhdWx0IGlzIG5vdCByZWdpc3RlcmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmF1bHRJZCh2YXVsdFBhdGg6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGNvbmZpZyA9IHJlYWRPYnNpZGlhbkpzb24oKTtcbiAgaWYgKCFjb25maWcpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3Qgbm9ybWFsaXplZFRhcmdldCA9IG5vcm1hbGl6ZVBhdGgodmF1bHRQYXRoKTtcblxuICBmb3IgKGNvbnN0IFtpZCwgZW50cnldIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy52YXVsdHMpKSB7XG4gICAgaWYgKG5vcm1hbGl6ZVBhdGgoZW50cnkucGF0aCkgPT09IG5vcm1hbGl6ZWRUYXJnZXQpIHtcbiAgICAgIHJldHVybiBpZDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBPYnNpZGlhbiBDTEkgaXMgZW5hYmxlZCBpbiBPYnNpZGlhbidzIHNldHRpbmdzLlxuICpcbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgQ0xJIGlzIGVuYWJsZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDbGlFbmFibGVkKCk6IGJvb2xlYW4ge1xuICBjb25zdCBjb25maWcgPSByZWFkT2JzaWRpYW5Kc29uKCk7XG4gIHJldHVybiBjb25maWc/LmNsaSA9PT0gdHJ1ZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHZhdWx0IGlzIG1hcmtlZCBhcyBvcGVuIGluIE9ic2lkaWFuJ3MgdmF1bHQgcmVnaXN0cnkuXG4gKlxuICogTm90ZTogVGhpcyBjaGVja3MgdGhlIGBvcGVuYCBmbGFnIGluIGBvYnNpZGlhbi5qc29uYCwgd2hpY2ggaXMgdXBkYXRlZFxuICogYXN5bmNocm9ub3VzbHkgYnkgT2JzaWRpYW4uIEl0IG1heSBub3QgcmVmbGVjdCB0aGUgY3VycmVudCBydW50aW1lIHN0YXRlLlxuICpcbiAqIEBwYXJhbSB2YXVsdFBhdGggLSBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgdmF1bHQgZm9sZGVyLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB2YXVsdCBpcyByZWdpc3RlcmVkIGFuZCBtYXJrZWQgYXMgb3BlbiwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhdWx0T3Blbih2YXVsdFBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBjb25maWcgPSByZWFkT2JzaWRpYW5Kc29uKCk7XG4gIGlmICghY29uZmlnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgbm9ybWFsaXplZFRhcmdldCA9IG5vcm1hbGl6ZVBhdGgodmF1bHRQYXRoKTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIE9iamVjdC52YWx1ZXMoY29uZmlnLnZhdWx0cykpIHtcbiAgICBpZiAobm9ybWFsaXplUGF0aChlbnRyeS5wYXRoKSA9PT0gbm9ybWFsaXplZFRhcmdldCkge1xuICAgICAgcmV0dXJuIGVudHJ5Lm9wZW4gPT09IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgdmF1bHQgcGF0aCBpcyByZWdpc3RlcmVkIGluIE9ic2lkaWFuJ3MgdmF1bHQgcmVnaXN0cnkuXG4gKlxuICogQHBhcmFtIHZhdWx0UGF0aCAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSB2YXVsdCBmb2xkZXIuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhdWx0IGlzIHJlZ2lzdGVyZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYXVsdFJlZ2lzdGVyZWQodmF1bHRQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldFZhdWx0SWQodmF1bHRQYXRoKSAhPT0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhIHZhdWx0IGRpcmVjdGx5IGluIE9ic2lkaWFuJ3MgYG9ic2lkaWFuLmpzb25gIGNvbmZpZyBmaWxlLlxuICpcbiAqIFRoaXMgd3JpdGVzIGEgbmV3IHZhdWx0IGVudHJ5IHdpdGggYSByYW5kb20gaGV4IElELiBVc2VkIHdoZW4gbm8gZXhpc3RpbmdcbiAqIHZhdWx0IGlzIGF2YWlsYWJsZSB0byBzZW5kIElQQyBjb21tYW5kcyB0aHJvdWdoIFx1MjAxNCB0aGUgdmF1bHQgaXMgcmVnaXN0ZXJlZFxuICogXCJvZmZsaW5lXCIgc28gT2JzaWRpYW4gd2lsbCBvcGVuIGl0IG9uIG5leHQgbGF1bmNoLlxuICpcbiAqIEBwYXJhbSB2YXVsdFBhdGggLSBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgdmF1bHQgZm9sZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJWYXVsdEluQ29uZmlnKHZhdWx0UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGNvbmZpZyA9IHJlYWRPYnNpZGlhbkpzb24oKSA/PyB7IHZhdWx0czoge30gfTtcbiAgY29uc3QgVkFVTFRfSURfQllURV9MRU5HVEggPSA4O1xuICBjb25zdCBpZCA9IHJhbmRvbUJ5dGVzKFZBVUxUX0lEX0JZVEVfTEVOR1RIKS50b1N0cmluZygnaGV4Jyk7XG4gIGNvbmZpZy52YXVsdHNbaWRdID0geyBwYXRoOiB2YXVsdFBhdGgsIHRzOiBEYXRlLm5vdygpIH07XG4gIGNvbmZpZy5jbGkgPSB0cnVlO1xuICB3cml0ZU9ic2lkaWFuSnNvbihjb25maWcpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgYSB2YXVsdCBlbnRyeSBmcm9tIE9ic2lkaWFuJ3MgYG9ic2lkaWFuLmpzb25gIGNvbmZpZyBmaWxlLlxuICpcbiAqIEBwYXJhbSB2YXVsdFBhdGggLSBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgdmF1bHQgZm9sZGVyLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB2YXVsdCB3YXMgZm91bmQgYW5kIHJlbW92ZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVmF1bHRGcm9tQ29uZmlnKHZhdWx0UGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGNvbmZpZyA9IHJlYWRPYnNpZGlhbkpzb24oKTtcbiAgaWYgKCFjb25maWcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkVGFyZ2V0ID0gbm9ybWFsaXplUGF0aCh2YXVsdFBhdGgpO1xuICBsZXQgd2FzRm91bmQgPSBmYWxzZTtcblxuICBmb3IgKGNvbnN0IFtpZCwgZW50cnldIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy52YXVsdHMpKSB7XG4gICAgaWYgKG5vcm1hbGl6ZVBhdGgoZW50cnkucGF0aCkgPT09IG5vcm1hbGl6ZWRUYXJnZXQpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgLS0gUmVtb3ZpbmcgYSB2YXVsdCBlbnRyeSBieSBpdHMgZHluYW1pYyBrZXkuXG4gICAgICBkZWxldGUgY29uZmlnLnZhdWx0c1tpZF07XG4gICAgICB3YXNGb3VuZCA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAod2FzRm91bmQpIHtcbiAgICB3cml0ZU9ic2lkaWFuSnNvbihjb25maWcpO1xuICB9XG5cbiAgcmV0dXJuIHdhc0ZvdW5kO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBsYXRmb3JtLXNwZWNpZmljIHBhdGggdG8gT2JzaWRpYW4ncyBjb25maWcgZGlyZWN0b3J5LlxuICpcbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBgb2JzaWRpYW4vYCBjb25maWcgZGlyZWN0b3J5LlxuICovXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkNvbmZpZ0RpcigpOiBzdHJpbmcge1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJykge1xuICAgIGNvbnN0IGFwcERhdGEgPSBwcm9jZXNzLmVudlsnQVBQREFUQSddO1xuICAgIGlmIChhcHBEYXRhKSB7XG4gICAgICByZXR1cm4gam9pbihhcHBEYXRhLCAnb2JzaWRpYW4nKTtcbiAgICB9XG4gIH1cblxuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ2RhcndpbicpIHtcbiAgICByZXR1cm4gam9pbihob21lZGlyKCksICdMaWJyYXJ5JywgJ0FwcGxpY2F0aW9uIFN1cHBvcnQnLCAnb2JzaWRpYW4nKTtcbiAgfVxuXG4gIHJldHVybiBqb2luKHByb2Nlc3MuZW52WydYREdfQ09ORklHX0hPTUUnXSA/PyBqb2luKGhvbWVkaXIoKSwgJy5jb25maWcnKSwgJ29ic2lkaWFuJyk7XG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHZhdWx0IHBhdGggZm9yIGNvbXBhcmlzb24uXG4gKiBPbiBXaW5kb3dzLCBwYXRocyBhcmUgY2FzZS1pbnNlbnNpdGl2ZSBhbmQgc2VwYXJhdG9ycyBtYXkgdmFyeS5cbiAqXG4gKiBAcGFyYW0gdmF1bHRQYXRoIC0gVGhlIHBhdGggdG8gbm9ybWFsaXplLlxuICogQHJldHVybnMgVGhlIG5vcm1hbGl6ZWQgcGF0aC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplUGF0aCh2YXVsdFBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZSh2YXVsdFBhdGgpO1xuICByZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/IHJlc29sdmVkLnRvTG93ZXJDYXNlKCkgOiByZXNvbHZlZDtcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIE9ic2lkaWFuJ3MgYG9ic2lkaWFuLmpzb25gIGNvbmZpZyBmaWxlLlxuICpcbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgY29uZmlnLCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0IG9yIGNhbid0IGJlIHBhcnNlZC5cbiAqL1xuZnVuY3Rpb24gcmVhZE9ic2lkaWFuSnNvbigpOiBPYnNpZGlhbkpzb24gfCB1bmRlZmluZWQge1xuICBjb25zdCBjb25maWdQYXRoID0gam9pbihnZXRPYnNpZGlhbkNvbmZpZ0RpcigpLCAnb2JzaWRpYW4uanNvbicpO1xuICB0cnkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZVN5bmMoY29uZmlnUGF0aCwgJ3V0Zi04Jyk7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoY29udGVudCkgYXMgT2JzaWRpYW5Kc29uO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogV3JpdGVzIHRoZSBnaXZlbiBjb25maWcgb2JqZWN0IHRvIE9ic2lkaWFuJ3MgYG9ic2lkaWFuLmpzb25gIGZpbGUuXG4gKlxuICogQHBhcmFtIGNvbmZpZyAtIFRoZSBjb25maWcgdG8gd3JpdGUuXG4gKi9cbmZ1bmN0aW9uIHdyaXRlT2JzaWRpYW5Kc29uKGNvbmZpZzogT2JzaWRpYW5Kc29uKTogdm9pZCB7XG4gIGNvbnN0IGNvbmZpZ1BhdGggPSBqb2luKGdldE9ic2lkaWFuQ29uZmlnRGlyKCksICdvYnNpZGlhbi5qc29uJyk7XG4gIHdyaXRlRmlsZVN5bmMoY29uZmlnUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLHlCQUE0QjtBQUM1QixxQkFH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
@@ -27,6 +27,17 @@ export interface RegisteredVault {
27
27
  * If the config file doesn't exist, creates it with an empty vaults object.
28
28
  */
29
29
  export declare function enableCliInConfig(): void;
30
+ /**
31
+ * Returns the absolute path of any currently-open vault.
32
+ *
33
+ * Prefer this over {@link getAnyRegisteredVaultPath} when the path is going
34
+ * to be used as the target of an `obsidian eval` call: targeting a registered
35
+ * but **closed** vault causes Obsidian's CLI handler to spawn a fresh window
36
+ * for it (`pe(o, false)` in `main.js`), leaving a stray window behind.
37
+ *
38
+ * @returns The absolute path to an open vault, or `undefined` if none are open.
39
+ */
40
+ export declare function getAnyOpenVaultPath(): string | undefined;
30
41
  /**
31
42
  * Returns the path of any vault that is currently registered in Obsidian's registry.
32
43
  *
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var obsidian_executable_exports = {};
30
+ __export(obsidian_executable_exports, {
31
+ resolveObsidianExecutable: () => resolveObsidianExecutable
32
+ });
33
+ module.exports = __toCommonJS(obsidian_executable_exports);
34
+ var import_node_fs = require("node:fs");
35
+ var import_node_process = __toESM(require("node:process"), 1);
36
+ var import_exec = require("./exec.cjs");
37
+ async function resolveObsidianExecutable() {
38
+ if (import_node_process.default.platform === "win32") {
39
+ return await resolveOnWindows();
40
+ }
41
+ if (import_node_process.default.platform === "darwin") {
42
+ return resolveOnMacOs();
43
+ }
44
+ return await resolveOnLinux();
45
+ }
46
+ async function findInPath(lookupCommand, executableName) {
47
+ let output;
48
+ try {
49
+ output = await (0, import_exec.exec)(`${lookupCommand} ${executableName}`, { isQuiet: true });
50
+ } catch {
51
+ return void 0;
52
+ }
53
+ const firstPath = output.split(/\r?\n/).map((line) => line.trim()).find((line) => line.length > 0);
54
+ if (firstPath && (0, import_node_fs.existsSync)(firstPath)) {
55
+ return firstPath;
56
+ }
57
+ return void 0;
58
+ }
59
+ async function resolveOnLinux() {
60
+ const fromPath = await findInPath("which", "obsidian");
61
+ if (fromPath) {
62
+ return fromPath;
63
+ }
64
+ throw new Error(
65
+ "Unable to locate Obsidian executable. Install Obsidian and ensure `obsidian` is on PATH."
66
+ );
67
+ }
68
+ function resolveOnMacOs() {
69
+ const standardPath = "/Applications/Obsidian.app/Contents/MacOS/Obsidian";
70
+ if ((0, import_node_fs.existsSync)(standardPath)) {
71
+ return standardPath;
72
+ }
73
+ throw new Error(
74
+ `Unable to locate Obsidian executable at \`${standardPath}\`. Install Obsidian from https://obsidian.md/download.`
75
+ );
76
+ }
77
+ async function resolveOnWindows() {
78
+ const fromPath = await findInPath("where.exe", "Obsidian.exe");
79
+ if (fromPath) {
80
+ return fromPath;
81
+ }
82
+ const localAppData = import_node_process.default.env["LOCALAPPDATA"] ?? "";
83
+ const installerPath = `${localAppData}\\Programs\\Obsidian\\Obsidian.exe`;
84
+ if ((0, import_node_fs.existsSync)(installerPath)) {
85
+ return installerPath;
86
+ }
87
+ throw new Error(
88
+ `Unable to locate Obsidian executable. Install Obsidian (e.g. from https://obsidian.md/download or via \`scoop install obsidian\`) and ensure it is on PATH or installed to \`${installerPath}\`.`
89
+ );
90
+ }
91
+ // Annotate the CommonJS export names for ESM import in node:
92
+ 0 && (module.exports = {
93
+ resolveObsidianExecutable
94
+ });
95
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuLWV4ZWN1dGFibGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZXNvbHZlcyB0aGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUgaW5zdGFsbGVkIE9ic2lkaWFuIGV4ZWN1dGFibGUgb24gdGhlIGhvc3QgbWFjaGluZS5cbiAqXG4gKiBVc2VkIGJ5IGRlc2t0b3AgdHJhbnNwb3J0cyAoYENMSWAsIGBDRFBgKSB0byBhdXRvLWxhdW5jaCBPYnNpZGlhbiB3aGVuIGl0IGlzXG4gKiBub3QgYWxyZWFkeSBydW5uaW5nLiBTdXBwb3J0cyBpbnN0YWxsZXItYmFzZWQgaW5zdGFsbHMgKGUuZy5cbiAqIGAlTE9DQUxBUFBEQVRBJVxcUHJvZ3JhbXNcXE9ic2lkaWFuXFxPYnNpZGlhbi5leGVgIG9uIFdpbmRvd3MsXG4gKiBgL0FwcGxpY2F0aW9ucy9PYnNpZGlhbi5hcHBgIG9uIG1hY09TKSBhbmQgYFBBVEhgLWJhc2VkIGluc3RhbGxzIChlLmcuXG4gKiBgc2Nvb3BgIHNoaW1zIG9uIFdpbmRvd3MsIHBhY2thZ2UgbWFuYWdlciBpbnN0YWxscyBvbiBMaW51eCkuXG4gKlxuICogVGhlIHBhdGggaXMgdmVyaWZpZWQgdG8gZXhpc3Qgb24gZGlzayBiZWZvcmUgYmVpbmcgcmV0dXJuZWQuIElmIE9ic2lkaWFuXG4gKiBjYW5ub3QgYmUgbG9jYXRlZCwgYSBkZXNjcmlwdGl2ZSBgRXJyb3JgIGlzIHRocm93biBzbyB0aGUgY2FsbGVyIGNhbiBzdXJmYWNlXG4gKiBhbiBhY3Rpb25hYmxlIG1lc3NhZ2UgaW5zdGVhZCBvZiBzcGF3bmluZyBhIG5vbi1leGlzdGVudCBiaW5hcnkgKHdoaWNoIG9uXG4gKiBXaW5kb3dzIGNhdXNlcyBgc3RhcnRgIHRvIHNob3cgYSBgU2hlbGxFeGVjdXRlYCBkaWFsb2cgYm94IHJhdGhlciB0aGFuXG4gKiBmYWlsaW5nIHdpdGggYW4gZXhpdCBjb2RlKS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gSW50ZWdyYXRpb24tdGltZSBjb2RlIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyBleGVjIH0gZnJvbSAnLi9leGVjLmNqcyc7XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIE9ic2lkaWFuIGV4ZWN1dGFibGUgb24gdGhlIGhvc3QgbWFjaGluZS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgT2JzaWRpYW4gZXhlY3V0YWJsZS5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgT2JzaWRpYW4gY2Fubm90IGJlIGxvY2F0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNvbHZlT2JzaWRpYW5FeGVjdXRhYmxlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInKSB7XG4gICAgcmV0dXJuIGF3YWl0IHJlc29sdmVPbldpbmRvd3MoKTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnZGFyd2luJykge1xuICAgIHJldHVybiByZXNvbHZlT25NYWNPcygpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IHJlc29sdmVPbkxpbnV4KCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZpbmRJblBhdGgobG9va3VwQ29tbWFuZDogc3RyaW5nLCBleGVjdXRhYmxlTmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IG91dHB1dDogc3RyaW5nO1xuICB0cnkge1xuICAgIG91dHB1dCA9IGF3YWl0IGV4ZWMoYCR7bG9va3VwQ29tbWFuZH0gJHtleGVjdXRhYmxlTmFtZX1gLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBmaXJzdFBhdGggPSBvdXRwdXRcbiAgICAuc3BsaXQoL1xccj9cXG4vKVxuICAgIC5tYXAoKGxpbmUpID0+IGxpbmUudHJpbSgpKVxuICAgIC5maW5kKChsaW5lKSA9PiBsaW5lLmxlbmd0aCA+IDApO1xuXG4gIGlmIChmaXJzdFBhdGggJiYgZXhpc3RzU3luYyhmaXJzdFBhdGgpKSB7XG4gICAgcmV0dXJuIGZpcnN0UGF0aDtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVPbkxpbnV4KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGZyb21QYXRoID0gYXdhaXQgZmluZEluUGF0aCgnd2hpY2gnLCAnb2JzaWRpYW4nKTtcbiAgaWYgKGZyb21QYXRoKSB7XG4gICAgcmV0dXJuIGZyb21QYXRoO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdVbmFibGUgdG8gbG9jYXRlIE9ic2lkaWFuIGV4ZWN1dGFibGUuIEluc3RhbGwgT2JzaWRpYW4gYW5kIGVuc3VyZSBgb2JzaWRpYW5gIGlzIG9uIFBBVEguJ1xuICApO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlT25NYWNPcygpOiBzdHJpbmcge1xuICBjb25zdCBzdGFuZGFyZFBhdGggPSAnL0FwcGxpY2F0aW9ucy9PYnNpZGlhbi5hcHAvQ29udGVudHMvTWFjT1MvT2JzaWRpYW4nO1xuICBpZiAoZXhpc3RzU3luYyhzdGFuZGFyZFBhdGgpKSB7XG4gICAgcmV0dXJuIHN0YW5kYXJkUGF0aDtcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgVW5hYmxlIHRvIGxvY2F0ZSBPYnNpZGlhbiBleGVjdXRhYmxlIGF0IFxcYCR7c3RhbmRhcmRQYXRofVxcYC4gSW5zdGFsbCBPYnNpZGlhbiBmcm9tIGh0dHBzOi8vb2JzaWRpYW4ubWQvZG93bmxvYWQuYFxuICApO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZXNvbHZlT25XaW5kb3dzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGZyb21QYXRoID0gYXdhaXQgZmluZEluUGF0aCgnd2hlcmUuZXhlJywgJ09ic2lkaWFuLmV4ZScpO1xuICBpZiAoZnJvbVBhdGgpIHtcbiAgICByZXR1cm4gZnJvbVBhdGg7XG4gIH1cblxuICBjb25zdCBsb2NhbEFwcERhdGEgPSBwcm9jZXNzLmVudlsnTE9DQUxBUFBEQVRBJ10gPz8gJyc7XG4gIGNvbnN0IGluc3RhbGxlclBhdGggPSBgJHtsb2NhbEFwcERhdGF9XFxcXFByb2dyYW1zXFxcXE9ic2lkaWFuXFxcXE9ic2lkaWFuLmV4ZWA7XG4gIGlmIChleGlzdHNTeW5jKGluc3RhbGxlclBhdGgpKSB7XG4gICAgcmV0dXJuIGluc3RhbGxlclBhdGg7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYFVuYWJsZSB0byBsb2NhdGUgT2JzaWRpYW4gZXhlY3V0YWJsZS4gSW5zdGFsbCBPYnNpZGlhbiAoZS5nLiBmcm9tIGh0dHBzOi8vb2JzaWRpYW4ubWQvZG93bmxvYWQgb3IgdmlhIFxcYHNjb29wIGluc3RhbGwgb2JzaWRpYW5cXGApIGFuZCBlbnN1cmUgaXQgaXMgb24gUEFUSCBvciBpbnN0YWxsZWQgdG8gXFxgJHtpbnN0YWxsZXJQYXRofVxcYC5gXG4gICk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9CQSxxQkFBMkI7QUFDM0IsMEJBQW9CO0FBRXBCLGtCQUFxQjtBQVFyQixlQUFzQiw0QkFBNkM7QUFDakUsTUFBSSxvQkFBQUEsUUFBUSxhQUFhLFNBQVM7QUFDaEMsV0FBTyxNQUFNLGlCQUFpQjtBQUFBLEVBQ2hDO0FBRUEsTUFBSSxvQkFBQUEsUUFBUSxhQUFhLFVBQVU7QUFDakMsV0FBTyxlQUFlO0FBQUEsRUFDeEI7QUFFQSxTQUFPLE1BQU0sZUFBZTtBQUM5QjtBQUVBLGVBQWUsV0FBVyxlQUF1QixnQkFBcUQ7QUFDcEcsTUFBSTtBQUNKLE1BQUk7QUFDRixhQUFTLFVBQU0sa0JBQUssR0FBRyxhQUFhLElBQUksY0FBYyxJQUFJLEVBQUUsU0FBUyxLQUFLLENBQUM7QUFBQSxFQUM3RSxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFlBQVksT0FDZixNQUFNLE9BQU8sRUFDYixJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUN6QixLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQztBQUVqQyxNQUFJLGlCQUFhLDJCQUFXLFNBQVMsR0FBRztBQUN0QyxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU87QUFDVDtBQUVBLGVBQWUsaUJBQWtDO0FBQy9DLFFBQU0sV0FBVyxNQUFNLFdBQVcsU0FBUyxVQUFVO0FBQ3JELE1BQUksVUFBVTtBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxJQUFJO0FBQUEsSUFDUjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLFNBQVMsaUJBQXlCO0FBQ2hDLFFBQU0sZUFBZTtBQUNyQixVQUFJLDJCQUFXLFlBQVksR0FBRztBQUM1QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sSUFBSTtBQUFBLElBQ1IsNkNBQTZDLFlBQVk7QUFBQSxFQUMzRDtBQUNGO0FBRUEsZUFBZSxtQkFBb0M7QUFDakQsUUFBTSxXQUFXLE1BQU0sV0FBVyxhQUFhLGNBQWM7QUFDN0QsTUFBSSxVQUFVO0FBQ1osV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGVBQWUsb0JBQUFBLFFBQVEsSUFBSSxjQUFjLEtBQUs7QUFDcEQsUUFBTSxnQkFBZ0IsR0FBRyxZQUFZO0FBQ3JDLFVBQUksMkJBQVcsYUFBYSxHQUFHO0FBQzdCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxJQUFJO0FBQUEsSUFDUixnTEFBZ0wsYUFBYTtBQUFBLEVBQy9MO0FBQ0Y7IiwKICAibmFtZXMiOiBbInByb2Nlc3MiXQp9Cg==
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @file
3
+ *
4
+ * Resolves the absolute path of the installed Obsidian executable on the host machine.
5
+ *
6
+ * Used by desktop transports (`CLI`, `CDP`) to auto-launch Obsidian when it is
7
+ * not already running. Supports installer-based installs (e.g.
8
+ * `%LOCALAPPDATA%\Programs\Obsidian\Obsidian.exe` on Windows,
9
+ * `/Applications/Obsidian.app` on macOS) and `PATH`-based installs (e.g.
10
+ * `scoop` shims on Windows, package manager installs on Linux).
11
+ *
12
+ * The path is verified to exist on disk before being returned. If Obsidian
13
+ * cannot be located, a descriptive `Error` is thrown so the caller can surface
14
+ * an actionable message instead of spawning a non-existent binary (which on
15
+ * Windows causes `start` to show a `ShellExecute` dialog box rather than
16
+ * failing with an exit code).
17
+ */
18
+ /**
19
+ * Resolves the absolute path to the Obsidian executable on the host machine.
20
+ *
21
+ * @returns The absolute path to the Obsidian executable.
22
+ * @throws Error if Obsidian cannot be located.
23
+ */
24
+ export declare function resolveObsidianExecutable(): Promise<string>;