@mnaoumov/obsidian-lib 10.12.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/worker-component/package.json +6 -0
- package/components/worker-pool-component/package.json +6 -0
- package/dist/lib/cjs/__merged.cjs +409 -292
- package/dist/lib/cjs/__merged.d.cts +17 -8
- package/dist/lib/cjs/anchored-suggest.cjs +1 -1
- package/dist/lib/cjs/app.cjs +2 -2
- package/dist/lib/cjs/async-with-notice.cjs +4 -4
- package/dist/lib/cjs/attachment-path.cjs +9 -9
- package/dist/lib/cjs/attachment-path.d.cts +3 -3
- package/dist/lib/cjs/attachment-unit-folder.cjs +2 -2
- package/dist/lib/cjs/backlink-index.cjs +5 -5
- package/dist/lib/cjs/backlink.cjs +7 -7
- package/dist/lib/cjs/bases-view-registrar.cjs +1 -1
- package/dist/lib/cjs/broken-link-candidates.cjs +1 -1
- package/dist/lib/cjs/bug-report.cjs +3 -3
- package/dist/lib/cjs/bulk-operation-progress.cjs +1 -1
- package/dist/lib/cjs/bulk-operation.cjs +2 -2
- package/dist/lib/cjs/callout.cjs +6 -6
- package/dist/lib/cjs/canvas.cjs +11 -9
- package/dist/lib/cjs/canvas.d.cts +13 -0
- package/dist/lib/cjs/case-insensitive-file-index.cjs +3 -3
- package/dist/lib/cjs/code-block-render-handoff.cjs +5 -5
- package/dist/lib/cjs/codemirror/editor-mode-extension.cjs +4 -4
- package/dist/lib/cjs/codemirror/incremental-parse-state-field.cjs +2 -2
- package/dist/lib/cjs/codemirror/index.cjs +7 -7
- package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +5 -5
- package/dist/lib/cjs/codemirror/markdown-editor-views.cjs +2 -2
- package/dist/lib/cjs/codemirror/settings-facet.cjs +1 -1
- package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +17 -17
- package/dist/lib/cjs/command-handlers/abstract-file-command-handler.d.cts +13 -13
- package/dist/lib/cjs/command-handlers/command-handler-component.cjs +2 -2
- package/dist/lib/cjs/command-handlers/command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +10 -10
- package/dist/lib/cjs/command-handlers/editor-command-handler.d.cts +7 -7
- package/dist/lib/cjs/command-handlers/file-command-handler.cjs +3 -3
- package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +3 -3
- package/dist/lib/cjs/command-handlers/global-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/index.cjs +15 -15
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +6 -6
- package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +1 -1
- package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/undo-bulk-operation-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +1 -1
- package/dist/lib/cjs/community-plugins.cjs +3 -3
- package/dist/lib/cjs/components/abort-signal-component.cjs +2 -2
- package/dist/lib/cjs/components/all-windows-event-component.cjs +5 -5
- package/dist/lib/cjs/components/all-windows-status-bar-item-component.cjs +3 -3
- package/dist/lib/cjs/components/async-error-handler-component.cjs +5 -5
- package/dist/lib/cjs/components/async-events-component.cjs +1 -1
- package/dist/lib/cjs/components/bulk-operation-commit-component.cjs +12 -12
- package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +2 -2
- package/dist/lib/cjs/components/component-ex.cjs +21 -11
- package/dist/lib/cjs/components/component-ex.d.cts +11 -0
- package/dist/lib/cjs/components/console-debug-component.cjs +2 -2
- package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +2 -2
- package/dist/lib/cjs/components/disposable-component.cjs +2 -2
- package/dist/lib/cjs/components/embed-extensions-component.cjs +1 -1
- package/dist/lib/cjs/components/embeddable-markdown-editor-component.cjs +8 -8
- package/dist/lib/cjs/components/file-explorer-root-menu-component.cjs +7 -7
- package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +2 -2
- package/dist/lib/cjs/components/incremental-file-index-component.cjs +4 -4
- package/dist/lib/cjs/components/index.cjs +46 -40
- package/dist/lib/cjs/components/index.d.cts +2 -0
- package/dist/lib/cjs/components/layout-ready-component.cjs +3 -3
- package/dist/lib/cjs/components/menu-event-registrar-component.cjs +2 -2
- package/dist/lib/cjs/components/monkey-around-component.cjs +3 -3
- package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +5 -5
- package/dist/lib/cjs/components/plugin-context-component.cjs +5 -5
- package/dist/lib/cjs/components/plugin-gate-component.cjs +68 -28
- package/dist/lib/cjs/components/plugin-gate-component.d.cts +36 -13
- package/dist/lib/cjs/components/plugin-notice-component.cjs +39 -33
- package/dist/lib/cjs/components/plugin-notice-component.d.cts +4 -3
- package/dist/lib/cjs/components/plugin-settings-component.cjs +113 -17
- package/dist/lib/cjs/components/plugin-settings-component.d.cts +35 -5
- package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +2 -2
- package/dist/lib/cjs/components/plugin-suggestion-component.cjs +8 -8
- package/dist/lib/cjs/components/pointer-position-component.cjs +2 -2
- package/dist/lib/cjs/components/reconfigurable-editor-extension-component.cjs +3 -3
- package/dist/lib/cjs/components/registry-component.cjs +2 -2
- package/dist/lib/cjs/components/release-notes-component.cjs +6 -6
- package/dist/lib/cjs/components/rename-delete-handler-component.cjs +25 -25
- package/dist/lib/cjs/components/rmdir-guard-component.cjs +2 -2
- package/dist/lib/cjs/components/settings-facet-component.cjs +1 -1
- package/dist/lib/cjs/components/settings-migration-component.cjs +5 -5
- package/dist/lib/cjs/components/shared-component-pool-component.cjs +6 -6
- package/dist/lib/cjs/components/style-sheet-component.cjs +3 -3
- package/dist/lib/cjs/components/syntax-highlighting-component.cjs +3 -3
- package/dist/lib/cjs/components/templates-language-component.cjs +1 -1
- package/dist/lib/cjs/components/worker-component.cjs +363 -0
- package/dist/lib/cjs/components/worker-component.d.cts +156 -0
- package/dist/lib/cjs/components/worker-pool-component.cjs +185 -0
- package/dist/lib/cjs/components/worker-pool-component.d.cts +102 -0
- package/dist/lib/cjs/components/workspace-layout-state-component.cjs +7 -7
- package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +5 -5
- package/dist/lib/cjs/constructors/index.cjs +1 -1
- package/dist/lib/cjs/data-handler.cjs +111 -4
- package/dist/lib/cjs/data-handler.d.cts +92 -1
- package/dist/lib/cjs/data-stores/data-store-locations.cjs +82 -24
- package/dist/lib/cjs/data-stores/data-store-locations.d.cts +15 -0
- package/dist/lib/cjs/data-stores/data-store-replica.cjs +33 -5
- package/dist/lib/cjs/data-stores/data-store-seeds.cjs +6 -6
- package/dist/lib/cjs/data-stores/data-store-seeds.d.cts +2 -2
- package/dist/lib/cjs/data-stores/data-store-transport.cjs +81 -8
- package/dist/lib/cjs/data-stores/data-store-transport.d.cts +30 -1
- package/dist/lib/cjs/data-stores/index.cjs +6 -6
- package/dist/lib/cjs/data-stores/local-data-store.cjs +74 -10
- package/dist/lib/cjs/data-stores/local-data-store.d.cts +58 -1
- package/dist/lib/cjs/data-stores/shared-data-store.cjs +76 -19
- package/dist/lib/cjs/data-stores/shared-data-store.d.cts +18 -1
- package/dist/lib/cjs/dataview-link.cjs +2 -2
- package/dist/lib/cjs/dataview.cjs +27 -7
- package/dist/lib/cjs/dataview.d.cts +14 -0
- package/dist/lib/cjs/debug.cjs +3 -3
- package/dist/lib/cjs/demo-vault-helper.cjs +34 -6
- package/dist/lib/cjs/demo-vault-helper.d.cts +6 -2
- package/dist/lib/cjs/desktop-bulk-operation-git.cjs +10 -10
- package/dist/lib/cjs/desktop-demo-vault-opener.cjs +13 -13
- package/dist/lib/cjs/desktop-git-runner.cjs +2 -2
- package/dist/lib/cjs/desktop-operating-system.cjs +1 -1
- package/dist/lib/cjs/desktop-request-url-stream.cjs +8 -14
- package/dist/lib/cjs/desktop-trusted-input.cjs +2 -2
- package/dist/lib/cjs/disposable.cjs +150 -0
- package/dist/lib/cjs/disposable.d.cts +39 -0
- package/dist/lib/cjs/editor-extension-registrar.cjs +1 -1
- package/dist/lib/cjs/editor-suggest-registrar.cjs +2 -2
- package/dist/lib/cjs/editor-suggest.cjs +1 -1
- package/dist/lib/cjs/editor.cjs +6 -6
- package/dist/lib/cjs/events.cjs +2 -2
- package/dist/lib/cjs/extensions-registrar.cjs +1 -1
- package/dist/lib/cjs/feature-request.cjs +1 -1
- package/dist/lib/cjs/file-change.cjs +10 -10
- package/dist/lib/cjs/file-explorer.cjs +2 -2
- package/dist/lib/cjs/file-manager.cjs +5 -5
- package/dist/lib/cjs/file-system.cjs +10 -10
- package/dist/lib/cjs/folder-note.cjs +4 -4
- package/dist/lib/cjs/frontmatter-formatting.cjs +7 -6
- package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +1 -1
- package/dist/lib/cjs/frontmatter.cjs +5 -5
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/hotkey.cjs +1 -1
- package/dist/lib/cjs/hover-link-source-registrar.cjs +1 -1
- package/dist/lib/cjs/html-element.cjs +2 -2
- package/dist/lib/cjs/i18n/custom-type-options.cjs +1 -1
- package/dist/lib/cjs/i18n/default-translations.cjs +1 -1
- package/dist/lib/cjs/i18n/i18n.cjs +7 -7
- package/dist/lib/cjs/i18n/index.cjs +4 -4
- package/dist/lib/cjs/i18n/locales/en.cjs +5 -1
- package/dist/lib/cjs/i18n/locales/en.d.cts +4 -0
- package/dist/lib/cjs/i18n/locales/index.cjs +2 -2
- package/dist/lib/cjs/i18n/locales/translations-map.cjs +1 -1
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +4 -0
- package/dist/lib/cjs/index.cjs +145 -127
- package/dist/lib/cjs/index.d.cts +6 -0
- package/dist/lib/cjs/inline-token-renderer.cjs +2 -2
- package/dist/lib/cjs/is-in-obsidian.cjs +1 -1
- package/dist/lib/cjs/library-styles.cjs +3 -3
- package/dist/lib/cjs/link-and-tag-input-suggest.cjs +2 -2
- package/dist/lib/cjs/link.cjs +76 -56
- package/dist/lib/cjs/link.d.cts +20 -14
- package/dist/lib/cjs/logger.cjs +4 -4
- package/dist/lib/cjs/loop.cjs +10 -16
- package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +17 -2
- package/dist/lib/cjs/markdown-code-block-processor-registrar.d.cts +7 -0
- package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -13
- package/dist/lib/cjs/markdown-post-processor-registrar.cjs +2 -2
- package/dist/lib/cjs/markdown-view.cjs +3 -3
- package/dist/lib/cjs/markdown.cjs +12 -12
- package/dist/lib/cjs/metadata-cache.cjs +23 -23
- package/dist/lib/cjs/metadata-cache.d.cts +5 -4
- package/dist/lib/cjs/misplaced-attachment.cjs +297 -0
- package/dist/lib/cjs/misplaced-attachment.d.cts +228 -0
- package/dist/lib/cjs/mobile-app-info.cjs +1 -1
- package/dist/lib/cjs/modals/alert.cjs +4 -4
- package/dist/lib/cjs/modals/code-block-builder.cjs +7 -7
- package/dist/lib/cjs/modals/confirm.cjs +4 -4
- package/dist/lib/cjs/modals/copy-text-manually.cjs +4 -4
- package/dist/lib/cjs/modals/index.cjs +12 -12
- package/dist/lib/cjs/modals/minimizable-modal.cjs +6 -6
- package/dist/lib/cjs/modals/modal-command-builder.cjs +3 -3
- package/dist/lib/cjs/modals/modal.cjs +3 -3
- package/dist/lib/cjs/modals/prompt.cjs +10 -10
- package/dist/lib/cjs/modals/prompt.d.cts +1 -1
- package/dist/lib/cjs/modals/review-bug-report-diagnostics.cjs +5 -5
- package/dist/lib/cjs/modals/select-item.cjs +6 -6
- package/dist/lib/cjs/modals/select-option.cjs +3 -3
- package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +1 -1
- package/dist/lib/cjs/note-priority.cjs +2 -2
- package/dist/lib/cjs/notebook-navigator.cjs +12 -2
- package/dist/lib/cjs/notebook-navigator.d.cts +6 -0
- package/dist/lib/cjs/obsidian-lib-state.cjs +1 -1
- package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +1 -1
- package/dist/lib/cjs/obsidian-settings.cjs +1 -1
- package/dist/lib/cjs/obsidian-word-characters.cjs +1 -1
- package/dist/lib/cjs/parse-link.cjs +14 -14
- package/dist/lib/cjs/path-compatibility.cjs +368 -0
- package/dist/lib/cjs/path-compatibility.d.cts +263 -0
- package/dist/lib/cjs/path-settings.cjs +3 -3
- package/dist/lib/cjs/pdf.cjs +2 -2
- package/dist/lib/cjs/plugin/index.cjs +16 -13
- package/dist/lib/cjs/plugin/index.d.cts +1 -0
- package/dist/lib/cjs/plugin/plugin-api.cjs +8 -8
- package/dist/lib/cjs/plugin/plugin-async-cleanup.cjs +6 -3
- package/dist/lib/cjs/plugin/plugin-async-cleanup.d.cts +5 -0
- package/dist/lib/cjs/plugin/plugin-context.cjs +10 -9
- package/dist/lib/cjs/plugin/plugin-event-source.cjs +1 -1
- package/dist/lib/cjs/plugin/plugin-event-source.d.cts +4 -4
- package/dist/lib/cjs/plugin/plugin-install-state.cjs +4 -4
- package/dist/lib/cjs/plugin/plugin-instance.cjs +14 -12
- package/dist/lib/cjs/plugin/plugin-instance.d.cts +7 -0
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -1
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +6 -4
- package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +15 -15
- package/dist/lib/cjs/plugin/plugin.cjs +118 -34
- package/dist/lib/cjs/plugin/plugin.d.cts +28 -5
- package/dist/lib/cjs/plugin/settings-migration-api.cjs +1 -1
- package/dist/lib/cjs/plugin/third-party-plugin.cjs +231 -0
- package/dist/lib/cjs/plugin/third-party-plugin.d.cts +244 -0
- package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +2 -2
- package/dist/lib/cjs/popovers/field-popover.cjs +4 -4
- package/dist/lib/cjs/popovers/index.cjs +3 -3
- package/dist/lib/cjs/popovers/popover-anchor.cjs +1 -1
- package/dist/lib/cjs/popovers/popover.cjs +5 -5
- package/dist/lib/cjs/queue.cjs +8 -8
- package/dist/lib/cjs/react/app-context.cjs +3 -3
- package/dist/lib/cjs/react/index.cjs +1 -1
- package/dist/lib/cjs/reference-definition.cjs +1 -1
- package/dist/lib/cjs/reference.cjs +3 -3
- package/dist/lib/cjs/release-asset.cjs +5 -5
- package/dist/lib/cjs/rendered-markdown.cjs +4 -4
- package/dist/lib/cjs/request-url.cjs +4 -4
- package/dist/lib/cjs/resource-lock.cjs +46 -42
- package/dist/lib/cjs/resource-lock.d.cts +8 -7
- package/dist/lib/cjs/resource-url.cjs +3 -3
- package/dist/lib/cjs/ribbon-icon-registrar.cjs +1 -1
- package/dist/lib/cjs/setting-components/checkbox-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +7 -7
- package/dist/lib/cjs/setting-components/date-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/date-time-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/email-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/file-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/folder-list-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/hotkey-component.cjs +5 -5
- package/dist/lib/cjs/setting-components/index.cjs +30 -30
- package/dist/lib/cjs/setting-components/list-component.cjs +5 -5
- package/dist/lib/cjs/setting-components/month-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/multiple-email-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/multiple-file-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/multiple-text-component.cjs +9 -6
- package/dist/lib/cjs/setting-components/multiple-text-component.d.cts +4 -1
- package/dist/lib/cjs/setting-components/number-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/password-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +3 -3
- package/dist/lib/cjs/setting-components/tag-list-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/telephone-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/text-based-component.cjs +1 -1
- package/dist/lib/cjs/setting-components/time-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +1 -1
- package/dist/lib/cjs/setting-components/typed-text-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/url-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/validator-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/week-component.cjs +4 -4
- package/dist/lib/cjs/setting-ex.cjs +26 -26
- package/dist/lib/cjs/setting-group-ex.cjs +2 -2
- package/dist/lib/cjs/settings-recovery.cjs +217 -0
- package/dist/lib/cjs/settings-recovery.d.cts +178 -0
- package/dist/lib/cjs/settings-tabs.cjs +5 -5
- package/dist/lib/cjs/status-bar-item-registrar.cjs +1 -1
- package/dist/lib/cjs/templater.cjs +14 -4
- package/dist/lib/cjs/templater.d.cts +6 -0
- package/dist/lib/cjs/transformers/duration-transformer.cjs +2 -2
- package/dist/lib/cjs/transformers/index.cjs +1 -1
- package/dist/lib/cjs/trusted-input.cjs +1 -1
- package/dist/lib/cjs/validation.cjs +4 -4
- package/dist/lib/cjs/vault-delete.cjs +6 -6
- package/dist/lib/cjs/vault-transaction.cjs +5 -5
- package/dist/lib/cjs/vault.cjs +12 -12
- package/dist/lib/cjs/view-registrar.cjs +1 -1
- package/dist/lib/cjs/virtual-file.cjs +16 -14
- package/dist/lib/cjs/virtual-file.d.cts +2 -1
- package/dist/lib/cjs/wasm.cjs +119 -0
- package/dist/lib/cjs/wasm.d.cts +54 -0
- package/dist/lib/cjs/worker-protocol.cjs +209 -0
- package/dist/lib/cjs/worker-protocol.d.cts +282 -0
- package/dist/lib/cjs/workspace.cjs +1 -1
- package/dist/lib/esm/__merged.d.mts +17 -8
- package/dist/lib/esm/__merged.mjs +133 -3
- package/dist/lib/esm/app.mjs +2 -2
- package/dist/lib/esm/attachment-path.d.mts +3 -3
- package/dist/lib/esm/attachment-path.mjs +2 -2
- package/dist/lib/esm/backlink-index.mjs +2 -2
- package/dist/lib/esm/canvas.d.mts +13 -0
- package/dist/lib/esm/canvas.mjs +6 -5
- package/dist/lib/esm/command-handlers/abstract-file-command-handler.d.mts +13 -13
- package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +14 -14
- package/dist/lib/esm/command-handlers/editor-command-handler.d.mts +7 -7
- package/dist/lib/esm/command-handlers/editor-command-handler.mjs +8 -8
- package/dist/lib/esm/components/component-ex.d.mts +11 -0
- package/dist/lib/esm/components/component-ex.mjs +19 -6
- package/dist/lib/esm/components/disposable-component.mjs +1 -1
- package/dist/lib/esm/components/index.d.mts +2 -0
- package/dist/lib/esm/components/index.mjs +5 -1
- package/dist/lib/esm/components/plugin-gate-component.d.mts +36 -13
- package/dist/lib/esm/components/plugin-gate-component.mjs +57 -14
- package/dist/lib/esm/components/plugin-notice-component.d.mts +4 -3
- package/dist/lib/esm/components/plugin-notice-component.mjs +30 -21
- package/dist/lib/esm/components/plugin-settings-component.d.mts +35 -5
- package/dist/lib/esm/components/plugin-settings-component.mjs +99 -3
- package/dist/lib/esm/components/rename-delete-handler-component.mjs +2 -2
- package/dist/lib/esm/components/worker-component.d.mts +156 -0
- package/dist/lib/esm/components/worker-component.mjs +279 -0
- package/dist/lib/esm/components/worker-pool-component.d.mts +102 -0
- package/dist/lib/esm/components/worker-pool-component.mjs +95 -0
- package/dist/lib/esm/components/workspace-layout-state-component.mjs +1 -1
- package/dist/lib/esm/data-handler.d.mts +92 -1
- package/dist/lib/esm/data-handler.mjs +112 -3
- package/dist/lib/esm/data-stores/data-store-locations.d.mts +15 -0
- package/dist/lib/esm/data-stores/data-store-locations.mjs +80 -22
- package/dist/lib/esm/data-stores/data-store-replica.mjs +33 -5
- package/dist/lib/esm/data-stores/data-store-seeds.d.mts +2 -2
- package/dist/lib/esm/data-stores/data-store-seeds.mjs +4 -4
- package/dist/lib/esm/data-stores/data-store-transport.d.mts +30 -1
- package/dist/lib/esm/data-stores/data-store-transport.mjs +78 -5
- package/dist/lib/esm/data-stores/local-data-store.d.mts +58 -1
- package/dist/lib/esm/data-stores/local-data-store.mjs +71 -9
- package/dist/lib/esm/data-stores/shared-data-store.d.mts +18 -1
- package/dist/lib/esm/data-stores/shared-data-store.mjs +72 -15
- package/dist/lib/esm/dataview.d.mts +14 -0
- package/dist/lib/esm/dataview.mjs +19 -1
- package/dist/lib/esm/demo-vault-helper.d.mts +6 -2
- package/dist/lib/esm/demo-vault-helper.mjs +29 -1
- package/dist/lib/esm/desktop-demo-vault-opener.mjs +1 -1
- package/dist/lib/esm/desktop-request-url-stream.mjs +4 -10
- package/dist/lib/esm/disposable.d.mts +39 -0
- package/dist/lib/esm/disposable.mjs +64 -0
- package/dist/lib/esm/file-system.mjs +2 -2
- package/dist/lib/esm/frontmatter-formatting.mjs +2 -1
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/i18n/locales/en.d.mts +4 -0
- package/dist/lib/esm/i18n/locales/en.mjs +5 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +4 -0
- package/dist/lib/esm/index.d.mts +6 -0
- package/dist/lib/esm/index.mjs +13 -1
- package/dist/lib/esm/link.d.mts +20 -14
- package/dist/lib/esm/link.mjs +57 -38
- package/dist/lib/esm/loop.mjs +2 -8
- package/dist/lib/esm/markdown-code-block-processor-registrar.d.mts +7 -0
- package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +16 -1
- package/dist/lib/esm/metadata-cache.d.mts +5 -4
- package/dist/lib/esm/metadata-cache.mjs +6 -6
- package/dist/lib/esm/misplaced-attachment.d.mts +228 -0
- package/dist/lib/esm/misplaced-attachment.mjs +212 -0
- package/dist/lib/esm/modals/prompt.d.mts +1 -1
- package/dist/lib/esm/modals/prompt.mjs +1 -1
- package/dist/lib/esm/notebook-navigator.d.mts +6 -0
- package/dist/lib/esm/notebook-navigator.mjs +11 -2
- package/dist/lib/esm/parse-link.mjs +4 -4
- package/dist/lib/esm/path-compatibility.d.mts +263 -0
- package/dist/lib/esm/path-compatibility.mjs +277 -0
- package/dist/lib/esm/plugin/index.d.mts +1 -0
- package/dist/lib/esm/plugin/index.mjs +4 -2
- package/dist/lib/esm/plugin/plugin-async-cleanup.d.mts +5 -0
- package/dist/lib/esm/plugin/plugin-async-cleanup.mjs +3 -1
- package/dist/lib/esm/plugin/plugin-context.mjs +2 -1
- package/dist/lib/esm/plugin/plugin-event-source.d.mts +4 -4
- package/dist/lib/esm/plugin/plugin-event-source.mjs +1 -1
- package/dist/lib/esm/plugin/plugin-instance.d.mts +7 -0
- package/dist/lib/esm/plugin/plugin-instance.mjs +2 -1
- package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +6 -4
- package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -1
- package/dist/lib/esm/plugin/plugin.d.mts +28 -5
- package/dist/lib/esm/plugin/plugin.mjs +103 -9
- package/dist/lib/esm/plugin/third-party-plugin.d.mts +244 -0
- package/dist/lib/esm/plugin/third-party-plugin.mjs +147 -0
- package/dist/lib/esm/release-asset.mjs +1 -1
- package/dist/lib/esm/resource-lock.d.mts +8 -7
- package/dist/lib/esm/resource-lock.mjs +31 -26
- package/dist/lib/esm/setting-components/multiple-text-component.d.mts +4 -1
- package/dist/lib/esm/setting-components/multiple-text-component.mjs +6 -3
- package/dist/lib/esm/settings-recovery.d.mts +178 -0
- package/dist/lib/esm/settings-recovery.mjs +125 -0
- package/dist/lib/esm/settings-tabs.mjs +2 -2
- package/dist/lib/esm/templater.d.mts +6 -0
- package/dist/lib/esm/templater.mjs +11 -2
- package/dist/lib/esm/vault.mjs +1 -1
- package/dist/lib/esm/virtual-file.d.mts +2 -1
- package/dist/lib/esm/virtual-file.mjs +7 -5
- package/dist/lib/esm/wasm.d.mts +54 -0
- package/dist/lib/esm/wasm.mjs +30 -0
- package/dist/lib/esm/worker-protocol.d.mts +282 -0
- package/dist/lib/esm/worker-protocol.mjs +113 -0
- package/package.json +9 -8
- package/plugin/third-party-plugin/package.json +6 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
(function () {
|
|
6
|
+
function ensureBrowserProcess() {
|
|
7
|
+
const browserProcess = {
|
|
8
|
+
browser: true,
|
|
9
|
+
cwd() {
|
|
10
|
+
return "/";
|
|
11
|
+
},
|
|
12
|
+
env: {},
|
|
13
|
+
platform: "android"
|
|
14
|
+
};
|
|
15
|
+
const existingProcess = globalThis.process;
|
|
16
|
+
if (!existingProcess) {
|
|
17
|
+
globalThis.process = browserProcess;
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (existingProcess.versions?.node) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const existingProcessRecord = existingProcess;
|
|
24
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
25
|
+
existingProcessRecord[key] ??= value;
|
|
26
|
+
}
|
|
27
|
+
existingProcessRecord["browser"] = true;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
ensureBrowserProcess();
|
|
31
|
+
})();
|
|
32
|
+
|
|
33
|
+
import { Platform } from "obsidian";
|
|
34
|
+
import {
|
|
35
|
+
getOsUnsafePathCharsRegExp,
|
|
36
|
+
hasWindowsTrailingChars,
|
|
37
|
+
isWindowsReservedName,
|
|
38
|
+
OBSIDIAN_UNSAFE_FILENAME_CHARS,
|
|
39
|
+
trimWindowsTrailingChars
|
|
40
|
+
} from "./validation.mjs";
|
|
41
|
+
var PathCompatibilityPlatform = /* @__PURE__ */ ((PathCompatibilityPlatform2) => {
|
|
42
|
+
PathCompatibilityPlatform2["Android"] = "Android";
|
|
43
|
+
PathCompatibilityPlatform2["Ios"] = "Ios";
|
|
44
|
+
PathCompatibilityPlatform2["Linux"] = "Linux";
|
|
45
|
+
PathCompatibilityPlatform2["MacOs"] = "MacOs";
|
|
46
|
+
PathCompatibilityPlatform2["Windows"] = "Windows";
|
|
47
|
+
return PathCompatibilityPlatform2;
|
|
48
|
+
})(PathCompatibilityPlatform || {});
|
|
49
|
+
var PathCompatibilityViolationType = /* @__PURE__ */ ((PathCompatibilityViolationType2) => {
|
|
50
|
+
PathCompatibilityViolationType2["ForbiddenCharacter"] = "ForbiddenCharacter";
|
|
51
|
+
PathCompatibilityViolationType2["NameTooLong"] = "NameTooLong";
|
|
52
|
+
PathCompatibilityViolationType2["ObsidianForbiddenCharacter"] = "ObsidianForbiddenCharacter";
|
|
53
|
+
PathCompatibilityViolationType2["PathTooLong"] = "PathTooLong";
|
|
54
|
+
PathCompatibilityViolationType2["ReservedName"] = "ReservedName";
|
|
55
|
+
PathCompatibilityViolationType2["TrailingCharacter"] = "TrailingCharacter";
|
|
56
|
+
PathCompatibilityViolationType2["UnicodeNotNormalized"] = "UnicodeNotNormalized";
|
|
57
|
+
return PathCompatibilityViolationType2;
|
|
58
|
+
})(PathCompatibilityViolationType || {});
|
|
59
|
+
const PATH_COMPATIBILITY_PLATFORMS = [
|
|
60
|
+
"Windows" /* Windows */,
|
|
61
|
+
"Android" /* Android */,
|
|
62
|
+
"Linux" /* Linux */,
|
|
63
|
+
"MacOs" /* MacOs */,
|
|
64
|
+
"Ios" /* Ios */
|
|
65
|
+
];
|
|
66
|
+
const PATH_COMPATIBILITY_PLATFORM_LABELS = {
|
|
67
|
+
["Android" /* Android */]: "Android",
|
|
68
|
+
["Ios" /* Ios */]: "iOS",
|
|
69
|
+
["Linux" /* Linux */]: "Linux",
|
|
70
|
+
["MacOs" /* MacOs */]: "macOS",
|
|
71
|
+
["Windows" /* Windows */]: "Windows"
|
|
72
|
+
};
|
|
73
|
+
const WINDOWS_MAX_FILE_PATH_LENGTH = 259;
|
|
74
|
+
const WINDOWS_MAX_FOLDER_PATH_LENGTH = 247;
|
|
75
|
+
const WINDOWS_MAX_NAME_LENGTH = 255;
|
|
76
|
+
const UNIX_MAX_NAME_BYTES = 255;
|
|
77
|
+
const LINUX_MAX_PATH_BYTES = 4096;
|
|
78
|
+
const DARWIN_MAX_PATH_BYTES = 1024;
|
|
79
|
+
const CONTROL_CHARS_REG_EXP = /[\u{0}-\u{1F}]/gu;
|
|
80
|
+
const PATH_COMPATIBILITY_PROFILES = {
|
|
81
|
+
["Android" /* Android */]: {
|
|
82
|
+
hasWindowsNamingRules: false,
|
|
83
|
+
maxFilePathLength: LINUX_MAX_PATH_BYTES,
|
|
84
|
+
maxFolderPathLength: LINUX_MAX_PATH_BYTES,
|
|
85
|
+
maxNameLength: UNIX_MAX_NAME_BYTES,
|
|
86
|
+
platform: "Android" /* Android */,
|
|
87
|
+
shouldMeasureInBytes: true
|
|
88
|
+
},
|
|
89
|
+
["Ios" /* Ios */]: {
|
|
90
|
+
hasWindowsNamingRules: false,
|
|
91
|
+
maxFilePathLength: DARWIN_MAX_PATH_BYTES,
|
|
92
|
+
maxFolderPathLength: DARWIN_MAX_PATH_BYTES,
|
|
93
|
+
maxNameLength: UNIX_MAX_NAME_BYTES,
|
|
94
|
+
platform: "Ios" /* Ios */,
|
|
95
|
+
shouldMeasureInBytes: true
|
|
96
|
+
},
|
|
97
|
+
["Linux" /* Linux */]: {
|
|
98
|
+
hasWindowsNamingRules: false,
|
|
99
|
+
maxFilePathLength: LINUX_MAX_PATH_BYTES,
|
|
100
|
+
maxFolderPathLength: LINUX_MAX_PATH_BYTES,
|
|
101
|
+
maxNameLength: UNIX_MAX_NAME_BYTES,
|
|
102
|
+
platform: "Linux" /* Linux */,
|
|
103
|
+
shouldMeasureInBytes: true
|
|
104
|
+
},
|
|
105
|
+
["MacOs" /* MacOs */]: {
|
|
106
|
+
hasWindowsNamingRules: false,
|
|
107
|
+
maxFilePathLength: DARWIN_MAX_PATH_BYTES,
|
|
108
|
+
maxFolderPathLength: DARWIN_MAX_PATH_BYTES,
|
|
109
|
+
maxNameLength: UNIX_MAX_NAME_BYTES,
|
|
110
|
+
platform: "MacOs" /* MacOs */,
|
|
111
|
+
shouldMeasureInBytes: true
|
|
112
|
+
},
|
|
113
|
+
["Windows" /* Windows */]: {
|
|
114
|
+
hasWindowsNamingRules: true,
|
|
115
|
+
maxFilePathLength: WINDOWS_MAX_FILE_PATH_LENGTH,
|
|
116
|
+
maxFolderPathLength: WINDOWS_MAX_FOLDER_PATH_LENGTH,
|
|
117
|
+
maxNameLength: WINDOWS_MAX_NAME_LENGTH,
|
|
118
|
+
platform: "Windows" /* Windows */,
|
|
119
|
+
shouldMeasureInBytes: false
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
function findPathCompatibilityViolations(params) {
|
|
123
|
+
const violations = [];
|
|
124
|
+
const name = getName(params.path);
|
|
125
|
+
const profiles = getProfiles(params.platforms);
|
|
126
|
+
const obsidianForbiddenCharacters = findCharacters(name, OBSIDIAN_UNSAFE_FILENAME_CHARS);
|
|
127
|
+
if (profiles.length > 0 && obsidianForbiddenCharacters.length > 0) {
|
|
128
|
+
violations.push({ characters: obsidianForbiddenCharacters, platform: null, type: "ObsidianForbiddenCharacter" /* ObsidianForbiddenCharacter */ });
|
|
129
|
+
}
|
|
130
|
+
for (const profile of profiles) {
|
|
131
|
+
const maxPathLength = params.isFolder ? profile.maxFolderPathLength : profile.maxFilePathLength;
|
|
132
|
+
const fullPathLength = params.maxVaultRootPathLength + 1 + measure(params.path, profile.shouldMeasureInBytes);
|
|
133
|
+
if (fullPathLength > maxPathLength) {
|
|
134
|
+
violations.push({
|
|
135
|
+
measurement: {
|
|
136
|
+
isInBytes: profile.shouldMeasureInBytes,
|
|
137
|
+
length: fullPathLength,
|
|
138
|
+
limit: maxPathLength,
|
|
139
|
+
vaultRootLength: params.maxVaultRootPathLength
|
|
140
|
+
},
|
|
141
|
+
platform: profile.platform,
|
|
142
|
+
type: "PathTooLong" /* PathTooLong */
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
const nameLength = measure(name, profile.shouldMeasureInBytes);
|
|
146
|
+
if (nameLength > profile.maxNameLength) {
|
|
147
|
+
violations.push({
|
|
148
|
+
measurement: { isInBytes: profile.shouldMeasureInBytes, length: nameLength, limit: profile.maxNameLength, vaultRootLength: null },
|
|
149
|
+
platform: profile.platform,
|
|
150
|
+
type: "NameTooLong" /* NameTooLong */
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
const platformForbiddenCharacters = findCharacters(name, getPlatformForbiddenCharactersRegExp(profile));
|
|
154
|
+
if (platformForbiddenCharacters.length > 0) {
|
|
155
|
+
violations.push({ characters: platformForbiddenCharacters, platform: profile.platform, type: "ForbiddenCharacter" /* ForbiddenCharacter */ });
|
|
156
|
+
}
|
|
157
|
+
if (!profile.hasWindowsNamingRules) {
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
if (isWindowsReservedName(name)) {
|
|
161
|
+
violations.push({ platform: profile.platform, type: "ReservedName" /* ReservedName */ });
|
|
162
|
+
}
|
|
163
|
+
if (hasWindowsTrailingChars(name)) {
|
|
164
|
+
violations.push({ platform: profile.platform, type: "TrailingCharacter" /* TrailingCharacter */ });
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return violations;
|
|
168
|
+
}
|
|
169
|
+
function getCurrentPathCompatibilityPlatform() {
|
|
170
|
+
if (Platform.isWin) {
|
|
171
|
+
return "Windows" /* Windows */;
|
|
172
|
+
}
|
|
173
|
+
if (Platform.isAndroidApp) {
|
|
174
|
+
return "Android" /* Android */;
|
|
175
|
+
}
|
|
176
|
+
if (Platform.isIosApp) {
|
|
177
|
+
return "Ios" /* Ios */;
|
|
178
|
+
}
|
|
179
|
+
if (Platform.isMacOS) {
|
|
180
|
+
return "MacOs" /* MacOs */;
|
|
181
|
+
}
|
|
182
|
+
return Platform.isLinux ? "Linux" /* Linux */ : null;
|
|
183
|
+
}
|
|
184
|
+
function getForbiddenCharacterReplacementValidationMessage(replacement) {
|
|
185
|
+
const regExps = [
|
|
186
|
+
getOsUnsafePathCharsRegExp(true, false),
|
|
187
|
+
getOsUnsafePathCharsRegExp(false, true),
|
|
188
|
+
getOsUnsafePathCharsRegExp(false, false),
|
|
189
|
+
OBSIDIAN_UNSAFE_FILENAME_CHARS,
|
|
190
|
+
CONTROL_CHARS_REG_EXP
|
|
191
|
+
];
|
|
192
|
+
for (const char of replacement) {
|
|
193
|
+
if (regExps.some((regExp) => char.replace(regExp, "") !== char)) {
|
|
194
|
+
return `The replacement must not contain "${char}": a file name cannot hold it on every platform.`;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return "";
|
|
198
|
+
}
|
|
199
|
+
function isUnicodeNormalized(name) {
|
|
200
|
+
return name === name.normalize("NFC");
|
|
201
|
+
}
|
|
202
|
+
function measure($string, shouldMeasureInBytes) {
|
|
203
|
+
return shouldMeasureInBytes ? new Blob([$string]).size : $string.length;
|
|
204
|
+
}
|
|
205
|
+
function repairName(params) {
|
|
206
|
+
const profiles = getProfiles(params.platforms);
|
|
207
|
+
if (profiles.length === 0) {
|
|
208
|
+
return buildName(params.basename, params.extension);
|
|
209
|
+
}
|
|
210
|
+
let basename = params.basename;
|
|
211
|
+
let extension = params.extension;
|
|
212
|
+
for (const profile of profiles) {
|
|
213
|
+
basename = replaceForbiddenCharacters(basename, profile, params.forbiddenCharacterReplacement);
|
|
214
|
+
extension = replaceForbiddenCharacters(extension, profile, params.forbiddenCharacterReplacement);
|
|
215
|
+
}
|
|
216
|
+
extension = trimTrailingDotsAndSpaces(extension, profiles);
|
|
217
|
+
basename = trimTrailingDotsAndSpaces(basename, profiles);
|
|
218
|
+
if (profiles.some((profile) => profile.hasWindowsNamingRules) && isWindowsReservedName(buildName(basename, extension))) {
|
|
219
|
+
basename += "_";
|
|
220
|
+
}
|
|
221
|
+
const codePoints = [...basename];
|
|
222
|
+
while (codePoints.length > 0) {
|
|
223
|
+
const candidate = trimTrailingDotsAndSpaces(codePoints.join(""), profiles);
|
|
224
|
+
if (candidate === "") {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
if (doesFitEveryProfile(candidate, extension, profiles, params)) {
|
|
228
|
+
return buildName(candidate, extension);
|
|
229
|
+
}
|
|
230
|
+
codePoints.pop();
|
|
231
|
+
}
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
function buildName(basename, extension) {
|
|
235
|
+
return extension === "" ? basename : `${basename}.${extension}`;
|
|
236
|
+
}
|
|
237
|
+
function doesFitEveryProfile(basename, extension, profiles, params) {
|
|
238
|
+
const name = buildName(basename, extension);
|
|
239
|
+
const path = params.parentPath === "" ? name : `${params.parentPath}/${name}`;
|
|
240
|
+
return profiles.every((profile) => {
|
|
241
|
+
const maxPathLength = params.isFolder ? profile.maxFolderPathLength : profile.maxFilePathLength;
|
|
242
|
+
const fullPathLength = params.maxVaultRootPathLength + 1 + measure(path, profile.shouldMeasureInBytes);
|
|
243
|
+
return measure(name, profile.shouldMeasureInBytes) <= profile.maxNameLength && fullPathLength <= maxPathLength;
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
function findCharacters(name, regExp) {
|
|
247
|
+
return [...new Set(name.match(regExp))];
|
|
248
|
+
}
|
|
249
|
+
function getName(path) {
|
|
250
|
+
const slashIndex = path.lastIndexOf("/");
|
|
251
|
+
return slashIndex === -1 ? path : path.slice(slashIndex + 1);
|
|
252
|
+
}
|
|
253
|
+
function getPlatformForbiddenCharactersRegExp(profile) {
|
|
254
|
+
return getOsUnsafePathCharsRegExp(profile.hasWindowsNamingRules, profile.platform === "Android" /* Android */);
|
|
255
|
+
}
|
|
256
|
+
function getProfiles(platforms) {
|
|
257
|
+
return platforms.map((platform) => PATH_COMPATIBILITY_PROFILES[platform]);
|
|
258
|
+
}
|
|
259
|
+
function replaceForbiddenCharacters($string, profile, replacement) {
|
|
260
|
+
return $string.replace(getPlatformForbiddenCharactersRegExp(profile), () => replacement).replace(OBSIDIAN_UNSAFE_FILENAME_CHARS, () => replacement);
|
|
261
|
+
}
|
|
262
|
+
function trimTrailingDotsAndSpaces($string, profiles) {
|
|
263
|
+
return profiles.some((profile) => profile.hasWindowsNamingRules) ? trimWindowsTrailingChars($string) : $string;
|
|
264
|
+
}
|
|
265
|
+
export {
|
|
266
|
+
PATH_COMPATIBILITY_PLATFORMS,
|
|
267
|
+
PATH_COMPATIBILITY_PLATFORM_LABELS,
|
|
268
|
+
PathCompatibilityPlatform,
|
|
269
|
+
PathCompatibilityViolationType,
|
|
270
|
+
findPathCompatibilityViolations,
|
|
271
|
+
getCurrentPathCompatibilityPlatform,
|
|
272
|
+
getForbiddenCharacterReplacementValidationMessage,
|
|
273
|
+
isUnicodeNormalized,
|
|
274
|
+
measure,
|
|
275
|
+
repairName
|
|
276
|
+
};
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYXRoLWNvbXBhdGliaWxpdHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFdoaWNoIG5hbWluZyBjb25zdHJhaW50cyBlYWNoIHBsYXRmb3JtIGltcG9zZXMsIHdoaWNoIG9mIHRoZW0gYSBnaXZlbiBwYXRoIHZpb2xhdGVzLCBhbmQgaG93IHRvIHJlcGFpciBhXG4gKiBuYW1lIHNvIGl0IHNhdGlzZmllcyBldmVyeSBlbmFibGVkIHBsYXRmb3JtIGF0IG9uY2UuXG4gKlxuICogUHVyZSBieSBkZXNpZ24g4oCUIG5vIGBBcHBgLCBubyB2YXVsdCwgbm8gSS9PIOKAlCBzbyB0aGUgd2hvbGUgY29ycmVjdG5lc3Mgc3VyZmFjZSAoYnl0ZSBjb3VudGluZywgZXh0ZW5zaW9uXG4gKiBwcmVzZXJ2YXRpb24sIHRydW5jYXRpb24gb3JkZXIsIHByb2ZpbGUgY29tcG9zaXRpb24pIGlzIHVuaXQtdGVzdGFibGUgd2l0aG91dCBhbiBPYnNpZGlhbiBpbnN0YW5jZS4gVGhlXG4gKiB2YXVsdCBwYXNzIHRoYXQgY29uc3VtZXMgaXQgbGl2ZXMgaW4gZWFjaCBwbHVnaW4gdGhhdCByZXBvcnRzIG9yIHJlcGFpcnMgcGF0aCBwcm9ibGVtcy5cbiAqXG4gKiBBIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHBsYXRmb3JtIHRoYXQgbWF0dGVycyBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIG9uZSBydW5uaW5nOiBlbmFibGluZyBzZXZlcmFsXG4gKiBwbGF0Zm9ybXMgY29tcG9zZXMgdGhlaXIgY29uc3RyYWludHMgYnkgaW50ZXJzZWN0aW9uLCBhbmQgYSBuYW1lIGhhcyB0byBzYXRpc2Z5IGFsbCBvZiB0aGVtLlxuICovXG5cbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBnZXRPc1Vuc2FmZVBhdGhDaGFyc1JlZ0V4cCxcbiAgaGFzV2luZG93c1RyYWlsaW5nQ2hhcnMsXG4gIGlzV2luZG93c1Jlc2VydmVkTmFtZSxcbiAgT0JTSURJQU5fVU5TQUZFX0ZJTEVOQU1FX0NIQVJTLFxuICB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnNcbn0gZnJvbSAnLi92YWxpZGF0aW9uLnRzJztcblxuLyoqXG4gKiBBIHBsYXRmb3JtIGEgdmF1bHQgbWF5IGJlIHN5bmNlZCB0bywgYW5kIHdob3NlIG5hbWluZyBydWxlcyBjYW4gdGhlcmVmb3JlIGJlIGVuZm9yY2VkLlxuICovXG5leHBvcnQgZW51bSBQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtIHtcbiAgQW5kcm9pZCA9ICdBbmRyb2lkJyxcbiAgSW9zID0gJ0lvcycsXG4gIExpbnV4ID0gJ0xpbnV4JyxcbiAgTWFjT3MgPSAnTWFjT3MnLFxuICBXaW5kb3dzID0gJ1dpbmRvd3MnXG59XG5cbi8qKlxuICogV2hhdCBhIHNpbmdsZSBwYXRoIG9yIG5hbWUgaXMgd3JvbmcgYWJvdXQsIG9uIG9uZSBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGVudW0gUGF0aENvbXBhdGliaWxpdHlWaW9sYXRpb25UeXBlIHtcbiAgRm9yYmlkZGVuQ2hhcmFjdGVyID0gJ0ZvcmJpZGRlbkNoYXJhY3RlcicsXG4gIE5hbWVUb29Mb25nID0gJ05hbWVUb29Mb25nJyxcblxuICAvKipcbiAgICogVGhlIG5hbWUgaG9sZHMgYSBjaGFyYWN0ZXIgT2JzaWRpYW4gbGlua3MgZG8gbm90IHdvcmsgd2l0aCAoYCNgLCBgXmAsIGBbYCwgYF1gLCBgfGApLiBPYnNpZGlhbidzIHJ1bGUsIG5vdFxuICAgKiBhIHBsYXRmb3JtJ3M6IHRoZSBmaWxlc3lzdGVtIHN0b3JlcyBzdWNoIGEgbmFtZSBmaW5lLCBzbyBuYW1pbmcgYSBwbGF0Zm9ybSBmb3IgaXQgd291bGQgYmUgZmFsc2UuXG4gICAqL1xuICBPYnNpZGlhbkZvcmJpZGRlbkNoYXJhY3RlciA9ICdPYnNpZGlhbkZvcmJpZGRlbkNoYXJhY3RlcicsXG4gIFBhdGhUb29Mb25nID0gJ1BhdGhUb29Mb25nJyxcbiAgUmVzZXJ2ZWROYW1lID0gJ1Jlc2VydmVkTmFtZScsXG4gIFRyYWlsaW5nQ2hhcmFjdGVyID0gJ1RyYWlsaW5nQ2hhcmFjdGVyJyxcblxuICAvKipcbiAgICogVGhlIG5hbWUgaXMgc3RvcmVkIG9uIGRpc2sgaW4gYSBmb3JtIG90aGVyIHRoYW4gVW5pY29kZSBORkMsIGUuZy4gYNC5YCBhcyBg0LhgIGZvbGxvd2VkIGJ5IGEgY29tYmluaW5nXG4gICAqIGJyZXZlLiBOb3QgYSBwbGF0Zm9ybSdzIHJ1bGUgYnV0IGEgc3luYyBoYXphcmQ6IHRvb2xzIG91dHNpZGUgT2JzaWRpYW4gc2VlIHRoZSB0d28gZm9ybXMgYXMgdHdvIG5hbWVzLlxuICAgKi9cbiAgVW5pY29kZU5vdE5vcm1hbGl6ZWQgPSAnVW5pY29kZU5vdE5vcm1hbGl6ZWQnXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbmRQYXRoQ29tcGF0aWJpbGl0eVZpb2xhdGlvbnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbmRQYXRoQ29tcGF0aWJpbGl0eVZpb2xhdGlvbnNQYXJhbXMge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcGF0aCBuYW1lcyBhIGZvbGRlciwgd2hpY2ggaGFzIGl0cyBvd24gcGF0aCBidWRnZXQuXG4gICAqL1xuICByZWFkb25seSBpc0ZvbGRlcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCB2YXVsdCByb290IHBhdGggdGhlIHZhdWx0IGlzIGV4cGVjdGVkIHRvIGxpdmUgdW5kZXIsIGluIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIFRoZSB2YXVsdCByb290IG9mIGEgcGxhdGZvcm0gdGhlIGNoZWNrIGlzIG5vdCBydW5uaW5nIG9uIGlzIHVua25vd2FibGUsIHNvIGl0IGlzIHN0YXRlZCByYXRoZXIgdGhhblxuICAgKiBndWVzc2VkIOKAlCBzZWUgdGhlIGBtYXhWYXVsdFJvb3RQYXRoTGVuZ3RoYCBzZXR0aW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4VmF1bHRSb290UGF0aExlbmd0aDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQtcmVsYXRpdmUgcGF0aCB0byBjaGVjay5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsYXRmb3JtcyB3aG9zZSBydWxlcyB0byBlbmZvcmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm1zOiByZWFkb25seSBQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtW107XG59XG5cbi8qKlxuICogQSBsZW5ndGggYSBwYXRoIG9yIG5hbWUgd2FzIG1lYXN1cmVkIGF0LCBhbmQgdGhlIGxpbWl0IGl0IGV4Y2VlZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0aENvbXBhdGliaWxpdHlNZWFzdXJlbWVudCB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIGJvdGggbnVtYmVycyBjb3VudCBVVEYtOCBieXRlcyByYXRoZXIgdGhhbiBVVEYtMTYgdW5pdHMuXG4gICAqL1xuICByZWFkb25seSBpc0luQnl0ZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtZWFzdXJlZCBsZW5ndGguXG4gICAqL1xuICByZWFkb25seSBsZW5ndGg6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGxhcmdlc3QgbGVuZ3RoIHRoZSBwbGF0Zm9ybSBhY2NlcHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgbGltaXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHZhdWx0IHJvb3QgbGVuZ3RoIGNvdW50ZWQgaW50byB7QGxpbmsgUGF0aENvbXBhdGliaWxpdHlNZWFzdXJlbWVudC5sZW5ndGh9LCBiZWZvcmUgdGhlIHNlcGFyYXRvclxuICAgKiBhZnRlciBpdC4gYG51bGxgIGZvciBhIG5hbWUsIHdoaWNoIGNhcnJpZXMgbm8gcm9vdC5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0Um9vdExlbmd0aDogbnVsbCB8IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgbmFtaW5nIHJ1bGVzIG9mIG9uZSBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXRoQ29tcGF0aWJpbGl0eVByb2ZpbGUge1xuICAvKipcbiAgICogV2hldGhlciB0aGlzIHBsYXRmb3JtIGFwcGxpZXMgV2luZG93cycgbmFtaW5nIHJ1bGVzOiBpdHMgZm9yYmlkZGVuIGNoYXJhY3RlcnMsIGl0cyByZXNlcnZlZCBkZXZpY2VcbiAgICogbmFtZXMsIGFuZCBpdHMgcmVqZWN0aW9uIG9mIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcy5cbiAgICpcbiAgICogT25lIGZsYWcgZm9yIHRocmVlIHJ1bGVzIGJlY2F1c2UgdGhleSBhcmUgb25lIGZpbGVzeXN0ZW0ncyBydWxlcywgYW5kIG5vIHBsYXRmb3JtIGFkb3B0cyBhIHN1YnNldC5cbiAgICovXG4gIHJlYWRvbmx5IGhhc1dpbmRvd3NOYW1pbmdSdWxlczogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxvbmdlc3QgYWJzb2x1dGUgcGF0aCBhIGZpbGUgbWF5IGhhdmUsIGluIHRoaXMgcHJvZmlsZSdzIHVuaXQuXG4gICAqL1xuICByZWFkb25seSBtYXhGaWxlUGF0aExlbmd0aDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9uZ2VzdCBhYnNvbHV0ZSBwYXRoIGEgZm9sZGVyIG1heSBoYXZlLCBpbiB0aGlzIHByb2ZpbGUncyB1bml0LlxuICAgKlxuICAgKiBCZWxvdyB7QGxpbmsgUGF0aENvbXBhdGliaWxpdHlQcm9maWxlLm1heEZpbGVQYXRoTGVuZ3RofSBvbiBXaW5kb3dzLCB3aGVyZSB0aGUgc2hvcnRlciBidWRnZXQgbGVhdmVzXG4gICAqIHJvb20gZm9yIGFuIGA4LjNgIG5hbWUgaW5zaWRlIHRoZSBmb2xkZXIuXG4gICAqL1xuICByZWFkb25seSBtYXhGb2xkZXJQYXRoTGVuZ3RoOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBsb25nZXN0IHNpbmdsZSBuYW1lIOKAlCBvbmUgcGF0aCBzZWdtZW50IOKAlCBpbiB0aGlzIHByb2ZpbGUncyB1bml0LlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TmFtZUxlbmd0aDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGxhdGZvcm0gdGhpcyBwcm9maWxlIGRlc2NyaWJlcy5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGxlbmd0aHMgY291bnQgVVRGLTggYnl0ZXMgKGV4dDQsIEFQRlMpIHJhdGhlciB0aGFuIFVURi0xNiB1bml0cyAoTlRGUykuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIHdob2xlIHJlYXNvbiB0aGUgMjU1IGxpbWl0IGlzIG5vdCBhIGNoYXJhY3RlciBjb3VudDogYSBuYW1lIG9mIDEyOCBDSksgY2hhcmFjdGVycyBpcyAzODRcbiAgICogYnl0ZXMgYW5kIGlzIHJlamVjdGVkIGJ5IGV4dDQgd2hpbGUgYmVpbmcgbm93aGVyZSBuZWFyIGFueSBsaW1pdCBXaW5kb3dzIGhhcy5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZE1lYXN1cmVJbkJ5dGVzOiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9uZSB0aGluZyB3cm9uZyB3aXRoIG9uZSBwYXRoLCBhbmQgdGhlIHBsYXRmb3JtIHRoYXQgb2JqZWN0cyB0byBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXRoQ29tcGF0aWJpbGl0eVZpb2xhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgb2ZmZW5kaW5nIGNoYXJhY3RlcnMsIGVhY2ggb25jZSwgaW4gdGhlIG9yZGVyIHRoZXkgZmlyc3QgYXBwZWFyIGluIHRoZSBuYW1lLlxuICAgKlxuICAgKiBTZXQgZm9yIHtAbGluayBQYXRoQ29tcGF0aWJpbGl0eVZpb2xhdGlvblR5cGUuRm9yYmlkZGVuQ2hhcmFjdGVyfSBhbmRcbiAgICoge0BsaW5rIFBhdGhDb21wYXRpYmlsaXR5VmlvbGF0aW9uVHlwZS5PYnNpZGlhbkZvcmJpZGRlbkNoYXJhY3Rlcn0sIHNvIHRoZSByZXBvcnQgY2FuIG5hbWUgdGhlbS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYXJhY3RlcnM/OiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogV2hhdCB3YXMgbWVhc3VyZWQgYW5kIHRoZSBsaW1pdCBpdCB3YXMgbWVhc3VyZWQgYWdhaW5zdC5cbiAgICpcbiAgICogU2V0IGZvciB7QGxpbmsgUGF0aENvbXBhdGliaWxpdHlWaW9sYXRpb25UeXBlLk5hbWVUb29Mb25nfSBhbmRcbiAgICoge0BsaW5rIFBhdGhDb21wYXRpYmlsaXR5VmlvbGF0aW9uVHlwZS5QYXRoVG9vTG9uZ30sIHNvIGEgcmVhZGVyIG9mIHRoZSByZXBvcnQgY2FuIHZlcmlmeSB0aGUgdmVyZGljdC5cbiAgICovXG4gIHJlYWRvbmx5IG1lYXN1cmVtZW50PzogUGF0aENvbXBhdGliaWxpdHlNZWFzdXJlbWVudDtcblxuICAvKipcbiAgICogVGhlIHBsYXRmb3JtIHdob3NlIHJ1bGVzIHRoZSBwYXRoIGJyZWFrcy4gQW5vdGhlciBlbmFibGVkIHBsYXRmb3JtIG1heSBhY2NlcHQgdGhlIHZlcnkgc2FtZSBwYXRoLlxuICAgKlxuICAgKiBgbnVsbGAgZm9yIGEgdmlvbGF0aW9uIG5vIHNpbmdsZSBwbGF0Zm9ybSBvd25zLCB3aGljaCBpc1xuICAgKiB7QGxpbmsgUGF0aENvbXBhdGliaWxpdHlWaW9sYXRpb25UeXBlLk9ic2lkaWFuRm9yYmlkZGVuQ2hhcmFjdGVyfSBhbmRcbiAgICoge0BsaW5rIFBhdGhDb21wYXRpYmlsaXR5VmlvbGF0aW9uVHlwZS5Vbmljb2RlTm90Tm9ybWFsaXplZH0uXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogbnVsbCB8IFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm07XG5cbiAgLyoqXG4gICAqIFdoYXQgaXMgd3JvbmcuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBQYXRoQ29tcGF0aWJpbGl0eVZpb2xhdGlvblR5cGU7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlcGFpck5hbWV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcGFpck5hbWVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgd2l0aG91dCBpdHMgZXh0ZW5zaW9uLiBGb3IgYSBmb2xkZXIsIHRoZSB3aG9sZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZW5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUncyBleHRlbnNpb24sIHdpdGhvdXQgdGhlIGxlYWRpbmcgZG90LiBFbXB0eSBmb3IgYSBmb2xkZXIgb3IgYW4gZXh0ZW5zaW9uLWxlc3MgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGV4dGVuc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGF0IGVhY2ggZm9yYmlkZGVuIGNoYXJhY3RlciBpcyByZXBsYWNlZCB3aXRoLiBFbXB0eSBkZWxldGVzIGl0LiBNdXN0IHBhc3NcbiAgICoge0BsaW5rIGdldEZvcmJpZGRlbkNoYXJhY3RlclJlcGxhY2VtZW50VmFsaWRhdGlvbk1lc3NhZ2V9LCBvciB0aGUgcmVwYWlyIHdvdWxkIHB1dCBiYWNrIHdoYXQgaXQgcmVtb3ZlZC5cbiAgICovXG4gIHJlYWRvbmx5IGZvcmJpZGRlbkNoYXJhY3RlclJlcGxhY2VtZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG5hbWUgYmVsb25ncyB0byBhIGZvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IGlzRm9sZGVyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRoZSBsb25nZXN0IHZhdWx0IHJvb3QgcGF0aCB0aGUgdmF1bHQgaXMgZXhwZWN0ZWQgdG8gbGl2ZSB1bmRlciwgaW4gY2hhcmFjdGVycy5cbiAgICovXG4gIHJlYWRvbmx5IG1heFZhdWx0Um9vdFBhdGhMZW5ndGg6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHBhcmVudCBmb2xkZXIuIEVtcHR5IGF0IHRoZSB2YXVsdCByb290LlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyZW50UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGxhdGZvcm1zIHdob3NlIHJ1bGVzIHRoZSByZXBhaXJlZCBuYW1lIG11c3Qgc2F0aXNmeS5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtczogcmVhZG9ubHkgUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybVtdO1xufVxuXG4vKipcbiAqIEV2ZXJ5IHBsYXRmb3JtLCBpbiB0aGUgb3JkZXIgdGhlIHNldHRpbmdzIHRhYiBhbmQgdGhlIGNvbnNpc3RlbmN5IHJlcG9ydCBsaXN0IHRoZW06IHRoZSBvbmVzIHdob3NlIGxpbWl0c1xuICogYWN0dWFsbHkgYmluZCBpbiBwcmFjdGljZSBmaXJzdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFBBVEhfQ09NUEFUSUJJTElUWV9QTEFURk9STVM6IHJlYWRvbmx5IFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm1bXSA9IFtcbiAgUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybS5XaW5kb3dzLFxuICBQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtLkFuZHJvaWQsXG4gIFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uTGludXgsXG4gIFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uTWFjT3MsXG4gIFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uSW9zXG5dO1xuXG4vKipcbiAqIEhvdyBlYWNoIHBsYXRmb3JtIGlzIG5hbWVkIGluIHRoZSBzZXR0aW5ncyB0YWIgYW5kIHRoZSBjb25zaXN0ZW5jeSByZXBvcnQuXG4gKlxuICogTm90IHRyYW5zbGF0ZWQ6IHRoZXNlIGFyZSBwcm9kdWN0IG5hbWVzLCBhbmQgYG1hY09TYCBpcyBzcGVsbGVkIGBtYWNPU2AgaW4gZXZlcnkgbGFuZ3VhZ2UuXG4gKi9cbmV4cG9ydCBjb25zdCBQQVRIX0NPTVBBVElCSUxJVFlfUExBVEZPUk1fTEFCRUxTOiBSZWNvcmQ8UGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybSwgc3RyaW5nPiA9IHtcbiAgW1BhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uQW5kcm9pZF06ICdBbmRyb2lkJyxcbiAgW1BhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uSW9zXTogJ2lPUycsXG4gIFtQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtLkxpbnV4XTogJ0xpbnV4JyxcbiAgW1BhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uTWFjT3NdOiAnbWFjT1MnLFxuICBbUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybS5XaW5kb3dzXTogJ1dpbmRvd3MnXG59O1xuXG4vKipcbiAqIGBNQVhfUEFUSGAgaXMgMjYwIGluY2x1ZGluZyB0aGUgdGVybWluYXRpbmcgTlVMLCBzbyAyNTkgdXNhYmxlIGNoYXJhY3RlcnMgZm9yIGEgZmlsZS5cbiAqL1xuY29uc3QgV0lORE9XU19NQVhfRklMRV9QQVRIX0xFTkdUSCA9IDI1OTtcblxuLyoqXG4gKiBBIGZvbGRlciBnZXRzIDEyIGZld2VyLCBsZWF2aW5nIHJvb20gZm9yIGEgYFxcYCBhbmQgYW4gOC4zIG5hbWUgaW5zaWRlIGl0LlxuICovXG5jb25zdCBXSU5ET1dTX01BWF9GT0xERVJfUEFUSF9MRU5HVEggPSAyNDc7XG5cbi8qKlxuICogTlRGUydzIHBlci1uYW1lIGNhcCwgaW4gVVRGLTE2IHVuaXRzLiBOZXZlciB0aGUgYmluZGluZyBjb25zdHJhaW50OiBhIHBhdGggdGhhdCBmaXRzIGluXG4gKiB7QGxpbmsgV0lORE9XU19NQVhfRklMRV9QQVRIX0xFTkdUSH0gY2hhcmFjdGVycyBjb250YWlucyBubyBsb25nZXIgbmFtZS5cbiAqL1xuY29uc3QgV0lORE9XU19NQVhfTkFNRV9MRU5HVEggPSAyNTU7XG5cbi8qKlxuICogRXh0NCAvIGYyZnMgLyBBUEZTIGFsbCBjYXAgYSBzaW5nbGUgbmFtZSBhdCAyNTUgQllURVMuIFRoaXMgaXMgdGhlIGxpbWl0IGEgY2hhcmFjdGVyIGNvdW50IGdldHMgd3JvbmcuXG4gKi9cbmNvbnN0IFVOSVhfTUFYX05BTUVfQllURVMgPSAyNTU7XG5cbi8qKlxuICogYFBBVEhfTUFYYCBvbiBMaW51eCBhbmQgQW5kcm9pZC4gU28gZmFyIGFib3ZlIGFueXRoaW5nIGEgdmF1bHQgcHJvZHVjZXMgdGhhdCBvbmx5IHRoZSBuYW1lIGxpbWl0IGJpbmRzLlxuICovXG5jb25zdCBMSU5VWF9NQVhfUEFUSF9CWVRFUyA9IDQwOTY7XG5cbi8qKlxuICogYFBBVEhfTUFYYCBvbiBtYWNPUyBhbmQgaU9TLlxuICovXG5jb25zdCBEQVJXSU5fTUFYX1BBVEhfQllURVMgPSAxMDI0O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleCAtLSBDb250cm9sIGNoYXJhY3RlcnMgYXJlIGV4YWN0bHkgd2hhdCB0aGlzIG1hdGNoZXMuXG5jb25zdCBDT05UUk9MX0NIQVJTX1JFR19FWFAgPSAvW1xcdXswfS1cXHV7MUZ9XS9ndTtcblxuY29uc3QgUEFUSF9DT01QQVRJQklMSVRZX1BST0ZJTEVTOiBSZWNvcmQ8UGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybSwgUGF0aENvbXBhdGliaWxpdHlQcm9maWxlPiA9IHtcbiAgW1BhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uQW5kcm9pZF06IHtcbiAgICBoYXNXaW5kb3dzTmFtaW5nUnVsZXM6IGZhbHNlLFxuICAgIG1heEZpbGVQYXRoTGVuZ3RoOiBMSU5VWF9NQVhfUEFUSF9CWVRFUyxcbiAgICBtYXhGb2xkZXJQYXRoTGVuZ3RoOiBMSU5VWF9NQVhfUEFUSF9CWVRFUyxcbiAgICBtYXhOYW1lTGVuZ3RoOiBVTklYX01BWF9OQU1FX0JZVEVTLFxuICAgIHBsYXRmb3JtOiBQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtLkFuZHJvaWQsXG4gICAgc2hvdWxkTWVhc3VyZUluQnl0ZXM6IHRydWVcbiAgfSxcblxuICBbUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybS5Jb3NdOiB7XG4gICAgaGFzV2luZG93c05hbWluZ1J1bGVzOiBmYWxzZSxcbiAgICBtYXhGaWxlUGF0aExlbmd0aDogREFSV0lOX01BWF9QQVRIX0JZVEVTLFxuICAgIG1heEZvbGRlclBhdGhMZW5ndGg6IERBUldJTl9NQVhfUEFUSF9CWVRFUyxcbiAgICBtYXhOYW1lTGVuZ3RoOiBVTklYX01BWF9OQU1FX0JZVEVTLFxuICAgIHBsYXRmb3JtOiBQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtLklvcyxcbiAgICBzaG91bGRNZWFzdXJlSW5CeXRlczogdHJ1ZVxuICB9LFxuXG4gIFtQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtLkxpbnV4XToge1xuICAgIGhhc1dpbmRvd3NOYW1pbmdSdWxlczogZmFsc2UsXG4gICAgbWF4RmlsZVBhdGhMZW5ndGg6IExJTlVYX01BWF9QQVRIX0JZVEVTLFxuICAgIG1heEZvbGRlclBhdGhMZW5ndGg6IExJTlVYX01BWF9QQVRIX0JZVEVTLFxuICAgIG1heE5hbWVMZW5ndGg6IFVOSVhfTUFYX05BTUVfQllURVMsXG4gICAgcGxhdGZvcm06IFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uTGludXgsXG4gICAgc2hvdWxkTWVhc3VyZUluQnl0ZXM6IHRydWVcbiAgfSxcblxuICBbUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybS5NYWNPc106IHtcbiAgICBoYXNXaW5kb3dzTmFtaW5nUnVsZXM6IGZhbHNlLFxuICAgIG1heEZpbGVQYXRoTGVuZ3RoOiBEQVJXSU5fTUFYX1BBVEhfQllURVMsXG4gICAgbWF4Rm9sZGVyUGF0aExlbmd0aDogREFSV0lOX01BWF9QQVRIX0JZVEVTLFxuICAgIG1heE5hbWVMZW5ndGg6IFVOSVhfTUFYX05BTUVfQllURVMsXG4gICAgcGxhdGZvcm06IFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uTWFjT3MsXG4gICAgc2hvdWxkTWVhc3VyZUluQnl0ZXM6IHRydWVcbiAgfSxcblxuICBbUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybS5XaW5kb3dzXToge1xuICAgIGhhc1dpbmRvd3NOYW1pbmdSdWxlczogdHJ1ZSxcbiAgICBtYXhGaWxlUGF0aExlbmd0aDogV0lORE9XU19NQVhfRklMRV9QQVRIX0xFTkdUSCxcbiAgICBtYXhGb2xkZXJQYXRoTGVuZ3RoOiBXSU5ET1dTX01BWF9GT0xERVJfUEFUSF9MRU5HVEgsXG4gICAgbWF4TmFtZUxlbmd0aDogV0lORE9XU19NQVhfTkFNRV9MRU5HVEgsXG4gICAgcGxhdGZvcm06IFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uV2luZG93cyxcbiAgICBzaG91bGRNZWFzdXJlSW5CeXRlczogZmFsc2VcbiAgfVxufTtcblxuLyoqXG4gKiBGaW5kcyBldmVyeXRoaW5nIHdyb25nIHdpdGggYSBwYXRoLCBhY3Jvc3MgZXZlcnkgZW5hYmxlZCBwbGF0Zm9ybS5cbiAqXG4gKiBSZWFkLW9ubHk6IHRoaXMgaXMgd2hhdCB0aGUgY29uc2lzdGVuY3kgcmVwb3J0IHJlbmRlcnMsIGFuZCBpdCBuZXZlciBwcm9wb3NlcyBhIHJlcGFpci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhdGggYW5kIHRoZSBwbGF0Zm9ybXMgdG8gY2hlY2sgaXQgYWdhaW5zdC5cbiAqIEByZXR1cm5zIFRoZSB2aW9sYXRpb25zLCBlbXB0eSB3aGVuIHRoZSBwYXRoIGlzIHZhbGlkIGV2ZXJ5d2hlcmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUGF0aENvbXBhdGliaWxpdHlWaW9sYXRpb25zKHBhcmFtczogRmluZFBhdGhDb21wYXRpYmlsaXR5VmlvbGF0aW9uc1BhcmFtcyk6IFBhdGhDb21wYXRpYmlsaXR5VmlvbGF0aW9uW10ge1xuICBjb25zdCB2aW9sYXRpb25zOiBQYXRoQ29tcGF0aWJpbGl0eVZpb2xhdGlvbltdID0gW107XG4gIGNvbnN0IG5hbWUgPSBnZXROYW1lKHBhcmFtcy5wYXRoKTtcbiAgY29uc3QgcHJvZmlsZXMgPSBnZXRQcm9maWxlcyhwYXJhbXMucGxhdGZvcm1zKTtcblxuICAvKlxuICAgKiBPbmNlLCB3aXRoIG5vIHBsYXRmb3JtOiBldmVyeSBwbGF0Zm9ybSBzdG9yZXMgc3VjaCBhIG5hbWUsIGFuZCBvbmx5IE9ic2lkaWFuJ3MgbGlua3MgcmVmdXNlIGl0LiBTdGlsbFxuICAgKiBnYXRlZCBvbiBhIHBsYXRmb3JtIGJlaW5nIGVuYWJsZWQsIGJlY2F1c2UgdGhhdCBpcyB3aGF0IHN3aXRjaGVzIHRoZSB3aG9sZSBjaGVjayBvbiwgYW5kIHRoZSByZXBhaXIgb25seVxuICAgKiByZXBsYWNlcyB0aGVzZSBjaGFyYWN0ZXJzIHVuZGVyIGEgcHJvZmlsZS5cbiAgICovXG4gIGNvbnN0IG9ic2lkaWFuRm9yYmlkZGVuQ2hhcmFjdGVycyA9IGZpbmRDaGFyYWN0ZXJzKG5hbWUsIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyk7XG5cbiAgaWYgKHByb2ZpbGVzLmxlbmd0aCA+IDAgJiYgb2JzaWRpYW5Gb3JiaWRkZW5DaGFyYWN0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICB2aW9sYXRpb25zLnB1c2goeyBjaGFyYWN0ZXJzOiBvYnNpZGlhbkZvcmJpZGRlbkNoYXJhY3RlcnMsIHBsYXRmb3JtOiBudWxsLCB0eXBlOiBQYXRoQ29tcGF0aWJpbGl0eVZpb2xhdGlvblR5cGUuT2JzaWRpYW5Gb3JiaWRkZW5DaGFyYWN0ZXIgfSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IHByb2ZpbGUgb2YgcHJvZmlsZXMpIHtcbiAgICBjb25zdCBtYXhQYXRoTGVuZ3RoID0gcGFyYW1zLmlzRm9sZGVyID8gcHJvZmlsZS5tYXhGb2xkZXJQYXRoTGVuZ3RoIDogcHJvZmlsZS5tYXhGaWxlUGF0aExlbmd0aDtcbiAgICBjb25zdCBmdWxsUGF0aExlbmd0aCA9IHBhcmFtcy5tYXhWYXVsdFJvb3RQYXRoTGVuZ3RoICsgMSArIG1lYXN1cmUocGFyYW1zLnBhdGgsIHByb2ZpbGUuc2hvdWxkTWVhc3VyZUluQnl0ZXMpO1xuXG4gICAgaWYgKGZ1bGxQYXRoTGVuZ3RoID4gbWF4UGF0aExlbmd0aCkge1xuICAgICAgdmlvbGF0aW9ucy5wdXNoKHtcbiAgICAgICAgbWVhc3VyZW1lbnQ6IHtcbiAgICAgICAgICBpc0luQnl0ZXM6IHByb2ZpbGUuc2hvdWxkTWVhc3VyZUluQnl0ZXMsXG4gICAgICAgICAgbGVuZ3RoOiBmdWxsUGF0aExlbmd0aCxcbiAgICAgICAgICBsaW1pdDogbWF4UGF0aExlbmd0aCxcbiAgICAgICAgICB2YXVsdFJvb3RMZW5ndGg6IHBhcmFtcy5tYXhWYXVsdFJvb3RQYXRoTGVuZ3RoXG4gICAgICAgIH0sXG4gICAgICAgIHBsYXRmb3JtOiBwcm9maWxlLnBsYXRmb3JtLFxuICAgICAgICB0eXBlOiBQYXRoQ29tcGF0aWJpbGl0eVZpb2xhdGlvblR5cGUuUGF0aFRvb0xvbmdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IG5hbWVMZW5ndGggPSBtZWFzdXJlKG5hbWUsIHByb2ZpbGUuc2hvdWxkTWVhc3VyZUluQnl0ZXMpO1xuXG4gICAgaWYgKG5hbWVMZW5ndGggPiBwcm9maWxlLm1heE5hbWVMZW5ndGgpIHtcbiAgICAgIHZpb2xhdGlvbnMucHVzaCh7XG4gICAgICAgIG1lYXN1cmVtZW50OiB7IGlzSW5CeXRlczogcHJvZmlsZS5zaG91bGRNZWFzdXJlSW5CeXRlcywgbGVuZ3RoOiBuYW1lTGVuZ3RoLCBsaW1pdDogcHJvZmlsZS5tYXhOYW1lTGVuZ3RoLCB2YXVsdFJvb3RMZW5ndGg6IG51bGwgfSxcbiAgICAgICAgcGxhdGZvcm06IHByb2ZpbGUucGxhdGZvcm0sXG4gICAgICAgIHR5cGU6IFBhdGhDb21wYXRpYmlsaXR5VmlvbGF0aW9uVHlwZS5OYW1lVG9vTG9uZ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcGxhdGZvcm1Gb3JiaWRkZW5DaGFyYWN0ZXJzID0gZmluZENoYXJhY3RlcnMobmFtZSwgZ2V0UGxhdGZvcm1Gb3JiaWRkZW5DaGFyYWN0ZXJzUmVnRXhwKHByb2ZpbGUpKTtcblxuICAgIGlmIChwbGF0Zm9ybUZvcmJpZGRlbkNoYXJhY3RlcnMubGVuZ3RoID4gMCkge1xuICAgICAgdmlvbGF0aW9ucy5wdXNoKHsgY2hhcmFjdGVyczogcGxhdGZvcm1Gb3JiaWRkZW5DaGFyYWN0ZXJzLCBwbGF0Zm9ybTogcHJvZmlsZS5wbGF0Zm9ybSwgdHlwZTogUGF0aENvbXBhdGliaWxpdHlWaW9sYXRpb25UeXBlLkZvcmJpZGRlbkNoYXJhY3RlciB9KTtcbiAgICB9XG5cbiAgICBpZiAoIXByb2ZpbGUuaGFzV2luZG93c05hbWluZ1J1bGVzKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNXaW5kb3dzUmVzZXJ2ZWROYW1lKG5hbWUpKSB7XG4gICAgICB2aW9sYXRpb25zLnB1c2goeyBwbGF0Zm9ybTogcHJvZmlsZS5wbGF0Zm9ybSwgdHlwZTogUGF0aENvbXBhdGliaWxpdHlWaW9sYXRpb25UeXBlLlJlc2VydmVkTmFtZSB9KTtcbiAgICB9XG5cbiAgICBpZiAoaGFzV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZSkpIHtcbiAgICAgIHZpb2xhdGlvbnMucHVzaCh7IHBsYXRmb3JtOiBwcm9maWxlLnBsYXRmb3JtLCB0eXBlOiBQYXRoQ29tcGF0aWJpbGl0eVZpb2xhdGlvblR5cGUuVHJhaWxpbmdDaGFyYWN0ZXIgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZpb2xhdGlvbnM7XG59XG5cbi8qKlxuICogVGhlIHBsYXRmb3JtIHRoZSBwbHVnaW4gaXMgcnVubmluZyBvbiwgb3IgYG51bGxgIG9uIGEgcGxhdGZvcm0gd2l0aCBubyBwcm9maWxlLlxuICpcbiAqIFVzZWQgb25seSB0byBzZWVkIHRoZSBzZXR0aW5ncyBkZWZhdWx0cywgc28gdGhhdCBhIGZyZXNoIGluc3RhbGwgcmVwb3J0cyBvbiB0aGUgdmF1bHQgaW4gZnJvbnQgb2YgaXRcbiAqIHdpdGhvdXQgdGhlIHVzZXIgY29uZmlndXJpbmcgYW55dGhpbmcgZmlyc3QuXG4gKlxuICogQHJldHVybnMgVGhlIGN1cnJlbnQgcGxhdGZvcm0sIG9yIGBudWxsYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtKCk6IG51bGwgfCBQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtIHtcbiAgaWYgKFBsYXRmb3JtLmlzV2luKSB7XG4gICAgcmV0dXJuIFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uV2luZG93cztcbiAgfVxuXG4gIGlmIChQbGF0Zm9ybS5pc0FuZHJvaWRBcHApIHtcbiAgICByZXR1cm4gUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybS5BbmRyb2lkO1xuICB9XG5cbiAgaWYgKFBsYXRmb3JtLmlzSW9zQXBwKSB7XG4gICAgcmV0dXJuIFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uSW9zO1xuICB9XG5cbiAgaWYgKFBsYXRmb3JtLmlzTWFjT1MpIHtcbiAgICByZXR1cm4gUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybS5NYWNPcztcbiAgfVxuXG4gIHJldHVybiBQbGF0Zm9ybS5pc0xpbnV4ID8gUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybS5MaW51eCA6IG51bGw7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSB0ZXh0IGEgZm9yYmlkZGVuIGNoYXJhY3RlciBpcyByZXBsYWNlZCB3aXRoLlxuICpcbiAqIEV2ZXJ5IHBsYXRmb3JtJ3Mgc2V0IGlzIGNoZWNrZWQsIG5vdCBvbmx5IHRoZSBlbmFibGVkIG9uZXM6IHRoZSB0b2dnbGVzIGNhbiBjaGFuZ2UgYWZ0ZXIgdGhlIHJlcGxhY2VtZW50XG4gKiBpcyBjaG9zZW4sIGFuZCBhIHJlcGxhY2VtZW50IG9uZSBwbGF0Zm9ybSByZWZ1c2VzIHdvdWxkIG1ha2UgdGhlIHJlcGFpciBvZiB0aGF0IHBsYXRmb3JtIHByb2R1Y2UgYSBuYW1lXG4gKiB0aGF0IGlzIHN0aWxsIGludmFsaWQgdGhlcmUuXG4gKlxuICogQHBhcmFtIHJlcGxhY2VtZW50IC0gVGhlIHJlcGxhY2VtZW50IHRleHQuIEVtcHR5IGlzIHZhbGlkIGFuZCBkZWxldGVzIHRoZSBjaGFyYWN0ZXIuXG4gKiBAcmV0dXJucyBBIG1lc3NhZ2UgbmFtaW5nIHRoZSBmaXJzdCByZWZ1c2VkIGNoYXJhY3Rlciwgb3IgYW4gZW1wdHkgc3RyaW5nIHdoZW4gdGhlIHJlcGxhY2VtZW50IGlzIHZhbGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9yYmlkZGVuQ2hhcmFjdGVyUmVwbGFjZW1lbnRWYWxpZGF0aW9uTWVzc2FnZShyZXBsYWNlbWVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcmVnRXhwcyA9IFtcbiAgICBnZXRPc1Vuc2FmZVBhdGhDaGFyc1JlZ0V4cCh0cnVlLCBmYWxzZSksXG4gICAgZ2V0T3NVbnNhZmVQYXRoQ2hhcnNSZWdFeHAoZmFsc2UsIHRydWUpLFxuICAgIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGZhbHNlLCBmYWxzZSksXG4gICAgT0JTSURJQU5fVU5TQUZFX0ZJTEVOQU1FX0NIQVJTLFxuICAgIENPTlRST0xfQ0hBUlNfUkVHX0VYUFxuICBdO1xuXG4gIC8vIEEgc3RyaW5nIGl0ZXJhdGVzIGJ5IGNvZGUgcG9pbnQsIHNvIGEgc3Vycm9nYXRlIHBhaXIgaXMgbmFtZWQgd2hvbGUsIGFzIHRoZSB1c2VyIHR5cGVkIGl0LlxuICBmb3IgKGNvbnN0IGNoYXIgb2YgcmVwbGFjZW1lbnQpIHtcbiAgICAvLyBgcmVwbGFjZWAgcmF0aGVyIHRoYW4gYHRlc3RgLCBmb3IgdGhlIHJlYXNvbiBnaXZlbiBhdCBgcmVwbGFjZUZvcmJpZGRlbkNoYXJhY3RlcnNgLlxuICAgIGlmIChyZWdFeHBzLnNvbWUoKHJlZ0V4cCkgPT4gY2hhci5yZXBsYWNlKHJlZ0V4cCwgJycpICE9PSBjaGFyKSkge1xuICAgICAgcmV0dXJuIGBUaGUgcmVwbGFjZW1lbnQgbXVzdCBub3QgY29udGFpbiBcIiR7Y2hhcn1cIjogYSBmaWxlIG5hbWUgY2Fubm90IGhvbGQgaXQgb24gZXZlcnkgcGxhdGZvcm0uYDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG5cbi8qKlxuICogV2hldGhlciBhIG5hbWUgaXMgaW4gVW5pY29kZSBORkMsIHRoZSBmb3JtIE9ic2lkaWFuIGdpdmVzIGV2ZXJ5IG5hbWUgaXQgY3JlYXRlcy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIGFzIGl0IGlzIHN0b3JlZCBvbiBkaXNrLlxuICogQHJldHVybnMgV2hldGhlciBpdCBpcyBORkMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1VuaWNvZGVOb3JtYWxpemVkKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gbmFtZSA9PT0gbmFtZS5ub3JtYWxpemUoJ05GQycpO1xufVxuXG4vKipcbiAqIE1lYXN1cmVzIGEgc3RyaW5nIHRoZSB3YXkgYSBmaWxlc3lzdGVtIGRvZXMuXG4gKlxuICogQHBhcmFtICRzdHJpbmcgLSBUaGUgc3RyaW5nIHRvIG1lYXN1cmUuXG4gKiBAcGFyYW0gc2hvdWxkTWVhc3VyZUluQnl0ZXMgLSBXaGV0aGVyIHRvIGNvdW50IFVURi04IGJ5dGVzIHJhdGhlciB0aGFuIFVURi0xNiB1bml0cy5cbiAqIEByZXR1cm5zIFRoZSBsZW5ndGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZWFzdXJlKCRzdHJpbmc6IHN0cmluZywgc2hvdWxkTWVhc3VyZUluQnl0ZXM6IGJvb2xlYW4pOiBudW1iZXIge1xuICByZXR1cm4gc2hvdWxkTWVhc3VyZUluQnl0ZXMgPyBuZXcgQmxvYihbJHN0cmluZ10pLnNpemUgOiAkc3RyaW5nLmxlbmd0aDtcbn1cblxuLyoqXG4gKiBSZXBhaXJzIGEgbmFtZSBzbyB0aGF0IGl0IHNhdGlzZmllcyBldmVyeSBlbmFibGVkIHBsYXRmb3JtLlxuICpcbiAqIFRoZSBvcmRlciBpcyBkZWxpYmVyYXRlOiBjaGFyYWN0ZXJzIGFyZSByZXBsYWNlZCBhbmQgYSByZXNlcnZlZCBuYW1lIGRlLXJlc2VydmVkIEJFRk9SRSBhbnl0aGluZyBpc1xuICogdHJ1bmNhdGVkLCBiZWNhdXNlIGJvdGggY2FuIGNoYW5nZSB0aGUgbGVuZ3RoLCBhbmQgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIGFyZSB0cmltbWVkIEFGVEVSIGV2ZXJ5IGN1dCxcbiAqIGJlY2F1c2UgYSBjdXQgY2FuIGV4cG9zZSBuZXcgb25lcy5cbiAqXG4gKiBUcnVuY2F0aW9uIG9ubHkgZXZlciBzaG9ydGVucyB0aGUgYmFzZW5hbWUg4oCUIGFuIGV4dGVuc2lvbiBpcyB3aGF0IHRlbGxzIE9ic2lkaWFuIGFuZCB0aGUgT1Mgd2hhdCB0aGUgZmlsZVxuICogaXMsIHNvIGEgdHJ1bmNhdGVkIG9uZSB0dXJucyBhIHdvcmtpbmcgYC5wbmdgIGludG8gYSBicm9rZW4gYC5wbmAuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBuYW1lIGFuZCB0aGUgcGxhdGZvcm1zIGl0IG11c3Qgc2F0aXNmeS5cbiAqIEByZXR1cm5zIFRoZSByZXBhaXJlZCBuYW1lLCB1bmNoYW5nZWQgd2hlbiBpdCB3YXMgYWxyZWFkeSB2YWxpZCwgb3IgYG51bGxgIHdoZW4gbm8gbmFtZSBzdXJ2aXZlcyB0aGVcbiAqIHJlcGFpciDigJQgd2hpY2ggaXMgd2hhdCB0aGUgcmVwb3J0IGNhbGxzIG91dCByYXRoZXIgdGhhbiBmYWlsaW5nIHNpbGVudGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwYWlyTmFtZShwYXJhbXM6IFJlcGFpck5hbWVQYXJhbXMpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgcHJvZmlsZXMgPSBnZXRQcm9maWxlcyhwYXJhbXMucGxhdGZvcm1zKTtcblxuICBpZiAocHJvZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGJ1aWxkTmFtZShwYXJhbXMuYmFzZW5hbWUsIHBhcmFtcy5leHRlbnNpb24pO1xuICB9XG5cbiAgbGV0IGJhc2VuYW1lID0gcGFyYW1zLmJhc2VuYW1lO1xuICBsZXQgZXh0ZW5zaW9uID0gcGFyYW1zLmV4dGVuc2lvbjtcblxuICBmb3IgKGNvbnN0IHByb2ZpbGUgb2YgcHJvZmlsZXMpIHtcbiAgICBiYXNlbmFtZSA9IHJlcGxhY2VGb3JiaWRkZW5DaGFyYWN0ZXJzKGJhc2VuYW1lLCBwcm9maWxlLCBwYXJhbXMuZm9yYmlkZGVuQ2hhcmFjdGVyUmVwbGFjZW1lbnQpO1xuICAgIGV4dGVuc2lvbiA9IHJlcGxhY2VGb3JiaWRkZW5DaGFyYWN0ZXJzKGV4dGVuc2lvbiwgcHJvZmlsZSwgcGFyYW1zLmZvcmJpZGRlbkNoYXJhY3RlclJlcGxhY2VtZW50KTtcbiAgfVxuXG4gIC8vIGBub3RlLm1kIGAgcGFyc2VzIGFzIGJhc2VuYW1lIGBub3RlYCArIGV4dGVuc2lvbiBgbWQgYCwgc28gdHJpbW1pbmcgb25seSB0aGUgYmFzZW5hbWUgd291bGQgbGVhdmUgdGhlXG4gIC8vIHRyYWlsaW5nIHNwYWNlIGV4YWN0bHkgd2hlcmUgV2luZG93cyByZWplY3RzIGl0IOKAlCBhdCB0aGUgZW5kIG9mIHRoZSBuYW1lLlxuICBleHRlbnNpb24gPSB0cmltVHJhaWxpbmdEb3RzQW5kU3BhY2VzKGV4dGVuc2lvbiwgcHJvZmlsZXMpO1xuXG4gIC8qXG4gICAqIFRyaW0gQkVGT1JFIHRoZSBkZS1yZXNlcnZpbmcgYmVsb3csIG5ldmVyIGFmdGVyLiBgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lYCB0cmltcyBmb3IgaXRzIG93biBhbnN3ZXIsIHNvXG4gICAqIGBDT04gYCBpcyByZXBvcnRlZCByZXNlcnZlZCBlaXRoZXIgd2F5IOKAlCBidXQgdGhlIHVuZGVyc2NvcmUgaXMgYXBwZW5kZWQgdG8gd2hhdGV2ZXIgaXMgaGVyZSwgYW5kIGFuXG4gICAqIHVudHJpbW1lZCBgQ09OIGAgd291bGQgZGUtcmVzZXJ2ZSB0byBgQ09OIF9gIGluc3RlYWQgb2YgYENPTl9gLlxuICAgKi9cbiAgYmFzZW5hbWUgPSB0cmltVHJhaWxpbmdEb3RzQW5kU3BhY2VzKGJhc2VuYW1lLCBwcm9maWxlcyk7XG5cbiAgLypcbiAgICogVGhlIFJFQlVJTFQgbmFtZSwgbmV2ZXIgdGhlIGJhcmUgYmFzZW5hbWU6IGBwYXJhbXMuYmFzZW5hbWVgIGhhcyBhbHJlYWR5IGhhZCBpdHMgZXh0ZW5zaW9uIHNwbGl0IG9mZixcbiAgICogYW5kIHRoZSBsaWJyYXJ5IGRyb3BzIG9uZSBleHRlbnNpb24gb2YgaXRzIG93biwgc28gcGFzc2luZyB0aGUgYmFzZW5hbWUgd291bGQgc3RyaXAgYSBzZWNvbmQgc2VnbWVudFxuICAgKiBhbmQgY2FsbCBgQ09OLnhgICsgYG1kYCByZXNlcnZlZCDigJQgd2hpY2ggaXMgbm90IHdoYXQgdGhlIHJlcG9ydCBzYXlzIGFib3V0IGBDT04ueC5tZGAuXG4gICAqL1xuICBpZiAocHJvZmlsZXMuc29tZSgocHJvZmlsZSkgPT4gcHJvZmlsZS5oYXNXaW5kb3dzTmFtaW5nUnVsZXMpICYmIGlzV2luZG93c1Jlc2VydmVkTmFtZShidWlsZE5hbWUoYmFzZW5hbWUsIGV4dGVuc2lvbikpKSB7XG4gICAgLy8gQSB0cmFpbGluZyB1bmRlcnNjb3JlIHJhdGhlciB0aGFuIGEgcHJlZml4OiBpdCBrZWVwcyB0aGUgbmFtZSBzb3J0aW5nIHdoZXJlIHRoZSB1c2VyIGV4cGVjdHMgaXQuXG4gICAgYmFzZW5hbWUgKz0gJ18nO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXNwcmVhZCAtLSBDb2RlIHBvaW50cyBhcmUgZXhhY3RseSB0aGUgdW5pdCB3YW50ZWQ6IGN1dHRpbmcgYnkgVVRGLTE2IHVuaXQgd291bGQgc3BsaXQgYSBzdXJyb2dhdGUgcGFpciBhbmQgbGVhdmUgaGFsZiBhbiBlbW9qaS5cbiAgY29uc3QgY29kZVBvaW50cyA9IFsuLi5iYXNlbmFtZV07XG5cbiAgd2hpbGUgKGNvZGVQb2ludHMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGNhbmRpZGF0ZSA9IHRyaW1UcmFpbGluZ0RvdHNBbmRTcGFjZXMoY29kZVBvaW50cy5qb2luKCcnKSwgcHJvZmlsZXMpO1xuXG4gICAgaWYgKGNhbmRpZGF0ZSA9PT0gJycpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChkb2VzRml0RXZlcnlQcm9maWxlKGNhbmRpZGF0ZSwgZXh0ZW5zaW9uLCBwcm9maWxlcywgcGFyYW1zKSkge1xuICAgICAgcmV0dXJuIGJ1aWxkTmFtZShjYW5kaWRhdGUsIGV4dGVuc2lvbik7XG4gICAgfVxuXG4gICAgY29kZVBvaW50cy5wb3AoKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBidWlsZE5hbWUoYmFzZW5hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZXh0ZW5zaW9uID09PSAnJyA/IGJhc2VuYW1lIDogYCR7YmFzZW5hbWV9LiR7ZXh0ZW5zaW9ufWA7XG59XG5cbmZ1bmN0aW9uIGRvZXNGaXRFdmVyeVByb2ZpbGUoYmFzZW5hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcsIHByb2ZpbGVzOiBQYXRoQ29tcGF0aWJpbGl0eVByb2ZpbGVbXSwgcGFyYW1zOiBSZXBhaXJOYW1lUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IG5hbWUgPSBidWlsZE5hbWUoYmFzZW5hbWUsIGV4dGVuc2lvbik7XG4gIGNvbnN0IHBhdGggPSBwYXJhbXMucGFyZW50UGF0aCA9PT0gJycgPyBuYW1lIDogYCR7cGFyYW1zLnBhcmVudFBhdGh9LyR7bmFtZX1gO1xuXG4gIHJldHVybiBwcm9maWxlcy5ldmVyeSgocHJvZmlsZSkgPT4ge1xuICAgIGNvbnN0IG1heFBhdGhMZW5ndGggPSBwYXJhbXMuaXNGb2xkZXIgPyBwcm9maWxlLm1heEZvbGRlclBhdGhMZW5ndGggOiBwcm9maWxlLm1heEZpbGVQYXRoTGVuZ3RoO1xuICAgIGNvbnN0IGZ1bGxQYXRoTGVuZ3RoID0gcGFyYW1zLm1heFZhdWx0Um9vdFBhdGhMZW5ndGggKyAxICsgbWVhc3VyZShwYXRoLCBwcm9maWxlLnNob3VsZE1lYXN1cmVJbkJ5dGVzKTtcblxuICAgIHJldHVybiBtZWFzdXJlKG5hbWUsIHByb2ZpbGUuc2hvdWxkTWVhc3VyZUluQnl0ZXMpIDw9IHByb2ZpbGUubWF4TmFtZUxlbmd0aCAmJiBmdWxsUGF0aExlbmd0aCA8PSBtYXhQYXRoTGVuZ3RoO1xuICB9KTtcbn1cblxuLypcbiAqIEVhY2ggY2hhcmFjdGVyIG9uY2UsIGluIG9yZGVyIG9mIGZpcnN0IGFwcGVhcmFuY2UuIGBtYXRjaGAgb24gYSBgZ2AtZmxhZ2dlZCByZWdleHAgcmV0dXJucyBldmVyeSBtYXRjaCBhbmRcbiAqIGlnbm9yZXMgYGxhc3RJbmRleGAsIHNvIHRoZSBzaGFyZWQgY29uc3RhbnRzIGFyZSBzYWZlIGhlcmUuXG4gKi9cbmZ1bmN0aW9uIGZpbmRDaGFyYWN0ZXJzKG5hbWU6IHN0cmluZywgcmVnRXhwOiBSZWdFeHApOiBzdHJpbmdbXSB7XG4gIHJldHVybiBbLi4ubmV3IFNldChuYW1lLm1hdGNoKHJlZ0V4cCkpXTtcbn1cblxuZnVuY3Rpb24gZ2V0TmFtZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzbGFzaEluZGV4ID0gcGF0aC5sYXN0SW5kZXhPZignLycpO1xuICByZXR1cm4gc2xhc2hJbmRleCA9PT0gLTEgPyBwYXRoIDogcGF0aC5zbGljZShzbGFzaEluZGV4ICsgMSk7XG59XG5cbi8qXG4gKiBCb3RoIGZsYWdzIGV4cGxpY2l0bHk6IHRoZSBsaWJyYXJ5IGRlZmF1bHRzIGFuIG9taXR0ZWQgb25lIHRvIHRoZSBwbGF0Zm9ybSBSVU5OSU5HIHRoZSBjaGVjaywgd2hpY2ggd291bGQgbWFrZVxuICogdGhlIEFuZHJvaWQgcHJvZmlsZSdzIHZlcmRpY3QgZGVwZW5kIG9uIHdoZXJlIHRoZSBjaGVjayBydW5zIHJhdGhlciB0aGFuIG9uIHRoZSBwcm9maWxlLiBBbmRyb2lkJ3Mgc2hhcmVkXG4gKiBzdG9yYWdlIHJlZnVzZXMgYCogPyA8ID4gXCJgIHRvbzogT2JzaWRpYW4gU3luYyBpdHNlbGYgc2tpcHMgc3VjaCBhIHJlbW90ZSBuYW1lIG9uIEFuZHJvaWQuXG4gKi9cbmZ1bmN0aW9uIGdldFBsYXRmb3JtRm9yYmlkZGVuQ2hhcmFjdGVyc1JlZ0V4cChwcm9maWxlOiBQYXRoQ29tcGF0aWJpbGl0eVByb2ZpbGUpOiBSZWdFeHAge1xuICByZXR1cm4gZ2V0T3NVbnNhZmVQYXRoQ2hhcnNSZWdFeHAocHJvZmlsZS5oYXNXaW5kb3dzTmFtaW5nUnVsZXMsIHByb2ZpbGUucGxhdGZvcm0gPT09IFBhdGhDb21wYXRpYmlsaXR5UGxhdGZvcm0uQW5kcm9pZCk7XG59XG5cbmZ1bmN0aW9uIGdldFByb2ZpbGVzKHBsYXRmb3JtczogcmVhZG9ubHkgUGF0aENvbXBhdGliaWxpdHlQbGF0Zm9ybVtdKTogUGF0aENvbXBhdGliaWxpdHlQcm9maWxlW10ge1xuICByZXR1cm4gcGxhdGZvcm1zLm1hcCgocGxhdGZvcm0pID0+IFBBVEhfQ09NUEFUSUJJTElUWV9QUk9GSUxFU1twbGF0Zm9ybV0pO1xufVxuXG4vKlxuICogYHJlcGxhY2VgIHJhdGhlciB0aGFuIGB0ZXN0YDogdGhlIGxpYnJhcnkncyByZWdleHBzIGNhcnJ5IHRoZSBgZ2AgZmxhZywgYW5kIGB0ZXN0YCBvbiBhIGBnYC1mbGFnZ2VkIHJlZ2V4cFxuICogYWR2YW5jZXMgYGxhc3RJbmRleGAsIHNvIGNvbnNlY3V0aXZlIGNhbGxzIG9uIHRoZSBzYW1lIGNvbnN0YW50IGFuc3dlciBkaWZmZXJlbnRseS5cbiAqL1xuZnVuY3Rpb24gcmVwbGFjZUZvcmJpZGRlbkNoYXJhY3RlcnMoJHN0cmluZzogc3RyaW5nLCBwcm9maWxlOiBQYXRoQ29tcGF0aWJpbGl0eVByb2ZpbGUsIHJlcGxhY2VtZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAvKlxuICAgKiBPbmUgcmVwbGFjZW1lbnQgcGVyIGZvcmJpZGRlbiBjaGFyYWN0ZXIgcmF0aGVyIHRoYW4gb25lIHBlciBydW46IGl0IGtlZXBzIHRoZSBuYW1lJ3MgdmlzdWFsIHN0cnVjdHVyZSxcbiAgICogd2hpY2ggaXMgd2hhdCBtYWtlcyB0aGUgcmVwYWlyZWQgbmFtZSBzdGlsbCByZWNvZ25pemFibGUgdG8gd2hvZXZlciB3cm90ZSBpdC4gTm90aGluZyBpcyBsb3N0IGVpdGhlciB3YXkg4oCUXG4gICAqIHRoZSBvcmlnaW5hbCBuYW1lIGlzIHByZXNlcnZlZCBpbiB0aGUgbm90ZSdzIGZyb250bWF0dGVyLiBBIHJlcGxhY2VyIEZVTkNUSU9OLCBzbyBhIGAkJmAgaW4gdGhlXG4gICAqIHJlcGxhY2VtZW50IGlzIG5vdCBleHBhbmRlZCBhcyBhIGJhY2tyZWZlcmVuY2UuXG4gICAqL1xuICByZXR1cm4gJHN0cmluZ1xuICAgIC5yZXBsYWNlKGdldFBsYXRmb3JtRm9yYmlkZGVuQ2hhcmFjdGVyc1JlZ0V4cChwcm9maWxlKSwgKCkgPT4gcmVwbGFjZW1lbnQpXG4gICAgLnJlcGxhY2UoT0JTSURJQU5fVU5TQUZFX0ZJTEVOQU1FX0NIQVJTLCAoKSA9PiByZXBsYWNlbWVudCk7XG59XG5cbi8qXG4gKiBUaGUgcHJvZmlsZSBndWFyZCBpcyB0aGUgcGx1Z2luJ3MsIG5vdCB0aGUgbGlicmFyeSdzOiB0aGUgbGlicmFyeSBhbnN3ZXJzIGZvciBXaW5kb3dzIHVuY29uZGl0aW9uYWxseSwgYW5kXG4gKiB0aGlzIGRlY2lkZXMgd2hldGhlciBXaW5kb3dzIGlzIG9uZSBvZiB0aGUgcGxhdGZvcm1zIHRoZSB2YXVsdCBoYXMgdG8gc2F0aXNmeS5cbiAqL1xuZnVuY3Rpb24gdHJpbVRyYWlsaW5nRG90c0FuZFNwYWNlcygkc3RyaW5nOiBzdHJpbmcsIHByb2ZpbGVzOiBQYXRoQ29tcGF0aWJpbGl0eVByb2ZpbGVbXSk6IHN0cmluZyB7XG4gIHJldHVybiBwcm9maWxlcy5zb21lKChwcm9maWxlKSA9PiBwcm9maWxlLmhhc1dpbmRvd3NOYW1pbmdSdWxlcykgPyB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMoJHN0cmluZykgOiAkc3RyaW5nO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNBLFNBQVMsZ0JBQWdCO0FBRXpCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBS0EsSUFBSyw0QkFBTCxrQkFBS0EsK0JBQUw7QUFDTCxFQUFBQSwyQkFBQSxhQUFVO0FBQ1YsRUFBQUEsMkJBQUEsU0FBTTtBQUNOLEVBQUFBLDJCQUFB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R0FBRztBQUN2QyxTQUFPLGVBQWUsS0FBSyxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDN0Q7QUFPQSxTQUFTLHFDQUFxQyxTQUEyQztBQUN2RixTQUFPLDJCQUEyQixRQUFRLHVCQUF1QixRQUFRLGFBQWEsdUJBQWlDO0FBQ3pIO0FBRUEsU0FBUyxZQUFZLFdBQTZFO0FBQ2hHLFNBQU8sVUFBVSxJQUFJLENBQUMsYUFBYSw0QkFBNEIsUUFBUSxDQUFDO0FBQzFFO0FBTUEsU0FBUywyQkFBMkIsU0FBaUIsU0FBbUMsYUFBNkI7QUFPbkgsU0FBTyxRQUNKLFFBQVEscUNBQXFDLE9BQU8sR0FBRyxNQUFNLFdBQVcsRUFDeEUsUUFBUSxnQ0FBZ0MsTUFBTSxXQUFXO0FBQzlEO0FBTUEsU0FBUywwQkFBMEIsU0FBaUIsVUFBOEM7QUFDaEcsU0FBTyxTQUFTLEtBQUssQ0FBQyxZQUFZLFFBQVEscUJBQXFCLElBQUkseUJBQXlCLE9BQU8sSUFBSTtBQUN6RzsiLCJuYW1lcyI6WyJQYXRoQ29tcGF0aWJpbGl0eVBsYXRmb3JtIiwiUGF0aENvbXBhdGliaWxpdHlWaW9sYXRpb25UeXBlIl19
|
|
@@ -9,3 +9,4 @@ export * as 'plugin-lifecycle-events' from './plugin-lifecycle-events.mjs';
|
|
|
9
9
|
export * as 'plugin-settings-tab' from './plugin-settings-tab.mjs';
|
|
10
10
|
export * as 'plugin' from './plugin.mjs';
|
|
11
11
|
export * as 'settings-migration-api' from './settings-migration-api.mjs';
|
|
12
|
+
export * as 'third-party-plugin' from './third-party-plugin.mjs';
|
|
@@ -13,6 +13,7 @@ import * as plugin_lifecycle_events from "./plugin-lifecycle-events.mjs";
|
|
|
13
13
|
import * as plugin_settings_tab from "./plugin-settings-tab.mjs";
|
|
14
14
|
import * as plugin from "./plugin.mjs";
|
|
15
15
|
import * as settings_migration_api from "./settings-migration-api.mjs";
|
|
16
|
+
import * as third_party_plugin from "./third-party-plugin.mjs";
|
|
16
17
|
export {
|
|
17
18
|
plugin,
|
|
18
19
|
plugin_api as "plugin-api",
|
|
@@ -23,6 +24,7 @@ export {
|
|
|
23
24
|
plugin_instance as "plugin-instance",
|
|
24
25
|
plugin_lifecycle_events as "plugin-lifecycle-events",
|
|
25
26
|
plugin_settings_tab as "plugin-settings-tab",
|
|
26
|
-
settings_migration_api as "settings-migration-api"
|
|
27
|
+
settings_migration_api as "settings-migration-api",
|
|
28
|
+
third_party_plugin as "third-party-plugin"
|
|
27
29
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbi9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdwbHVnaW4tYXBpJyBmcm9tICcuL3BsdWdpbi1hcGkudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1hc3luYy1jbGVhbnVwJyBmcm9tICcuL3BsdWdpbi1hc3luYy1jbGVhbnVwLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4tY29udGV4dCcgZnJvbSAnLi9wbHVnaW4tY29udGV4dC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWV2ZW50LXNvdXJjZScgZnJvbSAnLi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcbmV4cG9ydCAqIGFzICdwbHVnaW4taW5zdGFsbC1zdGF0ZScgZnJvbSAnLi9wbHVnaW4taW5zdGFsbC1zdGF0ZS50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWluc3RhbmNlJyBmcm9tICcuL3BsdWdpbi1pbnN0YW5jZS50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWxpZmVjeWNsZS1ldmVudHMnIGZyb20gJy4vcGx1Z2luLWxpZmVjeWNsZS1ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zZXR0aW5ncy10YWInIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLXRhYi50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luJyBmcm9tICcuL3BsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbWlncmF0aW9uLWFwaScgZnJvbSAnLi9zZXR0aW5ncy1taWdyYXRpb24tYXBpLnRzJztcbmV4cG9ydCAqIGFzICd0aGlyZC1wYXJ0eS1wbHVnaW4nIGZyb20gJy4vdGhpcmQtcGFydHktcGx1Z2luLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWUEsZ0JBQWtCO0FBQzlCLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMseUJBQTJCO0FBQ3ZDLFlBQVlDLDBCQUE0QjtBQUN4QyxZQUFZQyxxQkFBdUI7QUFDbkMsWUFBWUMsNkJBQStCO0FBQzNDLFlBQVlDLHlCQUEyQjtBQUN2QyxZQUFZLFlBQWM7QUFDMUIsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVlDLHdCQUEwQjsiLAogICJuYW1lcyI6IFsicGx1Z2luLWFwaSIsICJwbHVnaW4tYXN5bmMtY2xlYW51cCIsICJwbHVnaW4tY29udGV4dCIsICJwbHVnaW4tZXZlbnQtc291cmNlIiwgInBsdWdpbi1pbnN0YWxsLXN0YXRlIiwgInBsdWdpbi1pbnN0YW5jZSIsICJwbHVnaW4tbGlmZWN5Y2xlLWV2ZW50cyIsICJwbHVnaW4tc2V0dGluZ3MtdGFiIiwgInNldHRpbmdzLW1pZ3JhdGlvbi1hcGkiLCAidGhpcmQtcGFydHktcGx1Z2luIl0KfQo=
|
|
@@ -28,6 +28,11 @@ export declare const PLUGIN_ASYNC_CLEANUPS_STATE_KEY = "pluginAsyncCleanupsV1";
|
|
|
28
28
|
* How long a new plugin instance waits for the previous instance's cleanups by default.
|
|
29
29
|
*/
|
|
30
30
|
export declare const DEFAULT_PLUGIN_ASYNC_CLEANUP_TIMEOUT_IN_MILLISECONDS = 10000;
|
|
31
|
+
/**
|
|
32
|
+
* How long a new plugin instance waits for the previous instance's cleanups, by default, before it shows a notice that
|
|
33
|
+
* its load is paused. Shorter waits show nothing, so the usual few milliseconds never flash a notice.
|
|
34
|
+
*/
|
|
35
|
+
export declare const DEFAULT_PLUGIN_ASYNC_CLEANUP_NOTICE_DELAY_IN_MILLISECONDS = 500;
|
|
31
36
|
/**
|
|
32
37
|
* Parameters for {@link didPluginAsyncCleanupsSettle}.
|
|
33
38
|
*/
|
|
@@ -34,6 +34,7 @@ import { printError } from "@mnaoumov/typescript-lib/error";
|
|
|
34
34
|
import { getObsidianLibState } from "../obsidian-lib-state.mjs";
|
|
35
35
|
const PLUGIN_ASYNC_CLEANUPS_STATE_KEY = "pluginAsyncCleanupsV1";
|
|
36
36
|
const DEFAULT_PLUGIN_ASYNC_CLEANUP_TIMEOUT_IN_MILLISECONDS = 1e4;
|
|
37
|
+
const DEFAULT_PLUGIN_ASYNC_CLEANUP_NOTICE_DELAY_IN_MILLISECONDS = 500;
|
|
37
38
|
async function didPluginAsyncCleanupsSettle(params) {
|
|
38
39
|
const promise = getPendingCleanups().get(params.pluginId);
|
|
39
40
|
if (!promise) {
|
|
@@ -86,6 +87,7 @@ async function runCleanupSafely(params) {
|
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
export {
|
|
90
|
+
DEFAULT_PLUGIN_ASYNC_CLEANUP_NOTICE_DELAY_IN_MILLISECONDS,
|
|
89
91
|
DEFAULT_PLUGIN_ASYNC_CLEANUP_TIMEOUT_IN_MILLISECONDS,
|
|
90
92
|
PLUGIN_ASYNC_CLEANUPS_STATE_KEY,
|
|
91
93
|
didPluginAsyncCleanupsSettle,
|
|
@@ -93,4 +95,4 @@ export {
|
|
|
93
95
|
registerPluginAsyncCleanup,
|
|
94
96
|
trackPluginAsyncCleanup
|
|
95
97
|
};
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLWFzeW5jLWNsZWFudXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEFzeW5jIGNsZWFudXAgdGhhdCBvdXRsaXZlcyBhIHBsdWdpbiBpbnN0YW5jZSwgc28gdGhlIG5leHQgaW5zdGFuY2Ugb2YgdGhlIHNhbWUgcGx1Z2luIGNhbiBhd2FpdCBpdC5cbiAqXG4gKiBPYnNpZGlhbidzIGBvbnVubG9hZGAgaXMgc3luY2hyb25vdXMgYW5kIG5vdGhpbmcgYXdhaXRzIHdoYXQgaXQgc3RhcnRzLiBSZWFkIGZyb20gT2JzaWRpYW4gYDEuMTUuMWA6XG4gKiBgUGx1Z2lucy51bmxvYWRQbHVnaW5gIGNhbGxzIHRoZSBvbGQgaW5zdGFuY2UncyBgdW5sb2FkKClgIGFuZCByZXR1cm5zLCBhbmQgYGVuYWJsZVBsdWdpbmAgdGhlbiBjb25zdHJ1Y3RzIHRoZSBuZXdcbiAqIGluc3RhbmNlIGFuZCBhd2FpdHMgaXRzIGBsb2FkKClgLiBTbyBvbiBhIGRpc2FibGUgLyBlbmFibGUsIGEgcmVsb2FkIG9yIGFuIHVwZGF0ZSB3aGlsZSBlbmFibGVkLCB3b3JrIGxpa2UgY2xvc2luZ1xuICogYW4gSW5kZXhlZERCIGNvbm5lY3Rpb24gaXMgc3RpbGwgaW4gZmxpZ2h0IHdoZW4gdGhlIG5ldyBpbnN0YW5jZSBzdGFydHMsIGFuZCB0aGUgbmV3IGluc3RhbmNlIGNhbiBvcGVuIGEgZGF0YWJhc2VcbiAqIHRoZSBvbGQgb25lIHN0aWxsIGhvbGRzLlxuICpcbiAqIFRoZSByZWdpc3RyeSBoZXJlIGNsb3NlcyB0aGF0IGdhcCB3aXRob3V0IG93bmluZyB0aGUgcmVsb2FkIGxpZmVjeWNsZTogYSBjbGVhbnVwIHN0YXJ0cyB3aGVuIHRoZSBjb21wb25lbnQgaXQgaXNcbiAqIHJlZ2lzdGVyZWQgb24gdW5sb2FkcywgaXRzIHByb21pc2UgaXMga2VwdCByZWFsbS13aWRlIHVuZGVyIHRoZSBwbHVnaW4gaWQsIGFuZCB0aGUgbmV4dCBpbnN0YW5jZSBhd2FpdHMgaXQsIGJvdW5kZWRcbiAqIGJ5IGEgdGltZW91dCwgYmVmb3JlIGl0IHN0YXJ0cy4gYFBsdWdpbkJhc2VgIGRvZXMgYm90aCBoYWx2ZXMgaXRzZWxmLlxuICpcbiAqIFRoZSByZWdpc3RyeSBsaXZlcyBpbiB0aGUgcmVhbG0tZ2xvYmFsIHNoYXJlZC1zdGF0ZSBiYWcgdW5kZXIgdGhlIHZlcnNpb25lZCBrZXkgYHBsdWdpbkFzeW5jQ2xlYW51cHNWMWAsIGJlY2F1c2UgdGhlXG4gKiBvbGQgaW5zdGFuY2UgYW5kIHRoZSBuZXcgb25lIG1heSBidW5kbGUgZGlmZmVyZW50IGNvcGllcyBvZiB0aGlzIGxpYnJhcnkuIEl0IGlzIGEgd2lyZSBmb3JtYXQgYmV0d2VlbiB0aG9zZSBjb3BpZXM6XG4gKiBhIHBsYWluIGBNYXBgIGZyb20gcGx1Z2luIGlkIHRvIGEgYFByb21pc2U8dm9pZD5gIHRoYXQgbmV2ZXIgcmVqZWN0cy4gQSBjaGFuZ2Ugb2YgbWVhbmluZyBtb3ZlcyB0byBhIG5ldyBrZXkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJTdGF0ZSB9IGZyb20gJy4uL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5cbi8qKlxuICogVGhlIHNoYXJlZC1zdGF0ZSBrZXkgb2YgdGhlIHBlbmRpbmcgY2xlYW51cHMuIFZlcnNpb25lZCwgYmVjYXVzZSBpdCBpcyBhIHdpcmUgZm9ybWF0IGJldHdlZW4gY29waWVzIG9mIHRoaXMgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9BU1lOQ19DTEVBTlVQU19TVEFURV9LRVkgPSAncGx1Z2luQXN5bmNDbGVhbnVwc1YxJztcblxuLyoqXG4gKiBIb3cgbG9uZyBhIG5ldyBwbHVnaW4gaW5zdGFuY2Ugd2FpdHMgZm9yIHRoZSBwcmV2aW91cyBpbnN0YW5jZSdzIGNsZWFudXBzIGJ5IGRlZmF1bHQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BMVUdJTl9BU1lOQ19DTEVBTlVQX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gMTBfMDAwO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBkaWRQbHVnaW5Bc3luY0NsZWFudXBzU2V0dGxlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaWRQbHVnaW5Bc3luY0NsZWFudXBzU2V0dGxlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgcGx1Z2luIHdob3NlIHBlbmRpbmcgY2xlYW51cHMgdG8gYXdhaXQuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyB0byB3YWl0IGJlZm9yZSBnaXZpbmcgdXAuIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX1BMVUdJTl9BU1lOQ19DTEVBTlVQX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTfS5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBbiBhc3luYyBjbGVhbnVwLlxuICovXG5leHBvcnQgdHlwZSBQbHVnaW5Bc3luY0NsZWFudXAgPSAoKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZWdpc3RlclBsdWdpbkFzeW5jQ2xlYW51cH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJQbHVnaW5Bc3luY0NsZWFudXBQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGNsZWFudXAgdG8gcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xlYW51cDogUGx1Z2luQXN5bmNDbGVhbnVwO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHdob3NlIHVubG9hZCBzdGFydHMgdGhlIGNsZWFudXAuXG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnQ6IENvbXBvbmVudDtcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBwbHVnaW4gdGhlIGNsZWFudXAgYmVsb25ncyB0bywgd2hpY2ggdGhlIG5leHQgaW5zdGFuY2Ugd2FpdHMgdW5kZXIuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayB0cmFja1BsdWdpbkFzeW5jQ2xlYW51cH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2tQbHVnaW5Bc3luY0NsZWFudXBQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGNsZWFudXAgdG8gcnVuIG5vdy5cbiAgICovXG4gIHJlYWRvbmx5IGNsZWFudXA6IFBsdWdpbkFzeW5jQ2xlYW51cDtcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBwbHVnaW4gdGhlIGNsZWFudXAgYmVsb25ncyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBUcmFja2VkQ2xlYW51cEVudHJ5IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQtZGV2LXRvb2xraXQvcmVhZG9ubHktaW50ZXJmYWNlLW1lbWJlcnMgLS0gQXNzaWduZWQgb25jZSB0aGUgc2VsZi1yZW1vdmluZyBwcm9taXNlIGV4aXN0cy5cbiAgcHJvbWlzZT86IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogQXdhaXRzIGV2ZXJ5IGNsZWFudXAgc3RpbGwgaW4gZmxpZ2h0IGZvciB0aGUgcGx1Z2luLCBib3VuZGVkIGJ5IGEgdGltZW91dC5cbiAqXG4gKiBSZXNvbHZlcyBhdCBvbmNlIHdoZW4gbm90aGluZyBpcyBwZW5kaW5nLiBOZXZlciByZWplY3RzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiBldmVyeSBwZW5kaW5nIGNsZWFudXAgc2V0dGxlZCBpbiB0aW1lLCBgZmFsc2VgIGlmIHRoZSB0aW1lb3V0IHdhcyByZWFjaGVkIGZpcnN0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGlkUGx1Z2luQXN5bmNDbGVhbnVwc1NldHRsZShwYXJhbXM6IERpZFBsdWdpbkFzeW5jQ2xlYW51cHNTZXR0bGVQYXJhbXMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgcHJvbWlzZSA9IGdldFBlbmRpbmdDbGVhbnVwcygpLmdldChwYXJhbXMucGx1Z2luSWQpO1xuICBpZiAoIXByb21pc2UpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGxldCB0aW1lb3V0SWQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZTxmYWxzZT4oKHJlc29sdmUpID0+IHtcbiAgICB0aW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICB9LCBwYXJhbXMudGltZW91dEluTWlsbGlzZWNvbmRzID8/IERFRkFVTFRfUExVR0lOX0FTWU5DX0NMRUFOVVBfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMpO1xuICB9KTtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBQcm9taXNlLnJhY2UoW3Byb21pc2UudGhlbigoKSA9PiB0cnVlKSwgdGltZW91dFByb21pc2VdKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHBsdWdpbiBoYXMgY2xlYW51cHMgc3RpbGwgaW4gZmxpZ2h0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW5JZCAtIFRoZSBwbHVnaW4gaWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIGFueSBjbGVhbnVwIHJlZ2lzdGVyZWQgdW5kZXIgdGhlIGlkIGhhcyBub3Qgc2V0dGxlZCB5ZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNQZW5kaW5nUGx1Z2luQXN5bmNDbGVhbnVwcyhwbHVnaW5JZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRQZW5kaW5nQ2xlYW51cHMoKS5oYXMocGx1Z2luSWQpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyBhbiBhc3luYyBjbGVhbnVwIHRoYXQgc3RhcnRzIHdoZW4gdGhlIGNvbXBvbmVudCB1bmxvYWRzIGFuZCB0aGF0IHRoZSBuZXh0IGluc3RhbmNlIG9mIHRoZSBwbHVnaW4gYXdhaXRzLlxuICpcbiAqIFRoZSBjbGVhbnVwIHJ1bnMgZXhhY3RseSBvbmNlLCBvbiB0aGUgY29tcG9uZW50J3MgdW5sb2FkLiBSZWdpc3RlciBpdCBvbiB0aGUgY29tcG9uZW50IHdob3NlIGxpZmV0aW1lIG1hdGNoZXMgdGhlXG4gKiByZXNvdXJjZTogYSBgUGx1Z2luQmFzZWAgc3ViY2xhc3MgY2FsbHMgYHJlZ2lzdGVyQXN5bmNDbGVhbnVwYCBpbnN0ZWFkLCB3aGljaCBzY29wZXMgaXQgdG8gdGhlIGZlYXR1cmUgc3VyZmFjZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBsdWdpbkFzeW5jQ2xlYW51cChwYXJhbXM6IFJlZ2lzdGVyUGx1Z2luQXN5bmNDbGVhbnVwUGFyYW1zKTogdm9pZCB7XG4gIHBhcmFtcy5jb21wb25lbnQucmVnaXN0ZXIoKCkgPT4ge1xuICAgIHRyYWNrUGx1Z2luQXN5bmNDbGVhbnVwKHtcbiAgICAgIGNsZWFudXA6IHBhcmFtcy5jbGVhbnVwLFxuICAgICAgcGx1Z2luSWQ6IHBhcmFtcy5wbHVnaW5JZFxuICAgIH0pO1xuICB9KTtcbn1cblxuLyoqXG4gKiBSdW5zIGFuIGFzeW5jIGNsZWFudXAgbm93IGFuZCB0cmFja3MgaXQgdW5kZXIgdGhlIHBsdWdpbiBpZCB1bnRpbCBpdCBzZXR0bGVzLlxuICpcbiAqIEEgY2xlYW51cCB0aGF0IHRocm93cyBvciByZWplY3RzIGlzIHByaW50ZWQgYW5kIGNvdW50cyBhcyBzZXR0bGVkLCBzbyBhIGZhaWxpbmcgY2xlYW51cCBuZXZlciBzdG9wcyB0aGUgbmV4dFxuICogaW5zdGFuY2UgZnJvbSBsb2FkaW5nLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYWNrUGx1Z2luQXN5bmNDbGVhbnVwKHBhcmFtczogVHJhY2tQbHVnaW5Bc3luY0NsZWFudXBQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgcGVuZGluZ0NsZWFudXBzID0gZ2V0UGVuZGluZ0NsZWFudXBzKCk7XG4gIGNvbnN0IHByZXZpb3VzUHJvbWlzZSA9IHBlbmRpbmdDbGVhbnVwcy5nZXQocGFyYW1zLnBsdWdpbklkKTtcbiAgY29uc3QgY2xlYW51cFByb21pc2UgPSBydW5DbGVhbnVwU2FmZWx5KHBhcmFtcyk7XG4gIC8vIE5ldmVyIHJlamVjdHM6IGBydW5DbGVhbnVwU2FmZWx5YCBjYXRjaGVzLCBhbmQgc28gZGlkIHdoaWNoZXZlciBjYWxsIHRyYWNrZWQgYHByZXZpb3VzUHJvbWlzZWAuXG4gIGNvbnN0IGVudHJ5OiBUcmFja2VkQ2xlYW51cEVudHJ5ID0ge307XG4gIGVudHJ5LnByb21pc2UgPSAoYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFtwcmV2aW91c1Byb21pc2UsIGNsZWFudXBQcm9taXNlXSk7XG4gICAgLy8gQSBsYXRlciBjYWxsIG1heSBoYXZlIGNoYWluZWQgb250byB0aGlzIGVudHJ5IGFscmVhZHk7IG9ubHkgdGhlIGxhdGVzdCBlbnRyeSByZW1vdmVzIGl0c2VsZi5cbiAgICBpZiAocGVuZGluZ0NsZWFudXBzLmdldChwYXJhbXMucGx1Z2luSWQpID09PSBlbnRyeS5wcm9taXNlKSB7XG4gICAgICBwZW5kaW5nQ2xlYW51cHMuZGVsZXRlKHBhcmFtcy5wbHVnaW5JZCk7XG4gICAgfVxuICB9KSgpO1xuICBwZW5kaW5nQ2xlYW51cHMuc2V0KHBhcmFtcy5wbHVnaW5JZCwgZW50cnkucHJvbWlzZSk7XG59XG5cbmZ1bmN0aW9uIGdldFBlbmRpbmdDbGVhbnVwcygpOiBNYXA8c3RyaW5nLCBQcm9taXNlPHZvaWQ+PiB7XG4gIHJldHVybiBnZXRPYnNpZGlhbkxpYlN0YXRlKFBMVUdJTl9BU1lOQ19DTEVBTlVQU19TVEFURV9LRVksIG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPHZvaWQ+PigpKS52YWx1ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuQ2xlYW51cFNhZmVseShwYXJhbXM6IFRyYWNrUGx1Z2luQXN5bmNDbGVhbnVwUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgcGFyYW1zLmNsZWFudXAoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBwcmludEVycm9yKG5ldyBFcnJvcihgQXN5bmMgY2xlYW51cCBvZiBwbHVnaW4gJHtwYXJhbXMucGx1Z2luSWR9IGZhaWxlZGAsIHsgY2F1c2U6IGVycm9yIH0pKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQSxTQUFTLGtCQUFrQjtBQUUzQixTQUFTLDJCQUEyQjtBQUs3QixNQUFNLGtDQUFrQztBQUt4QyxNQUFNLHVEQUF1RDtBQXNFcEUsZUFBc0IsNkJBQTZCLFFBQThEO0FBQy9HLFFBQU0sVUFBVSxtQkFBbUIsRUFBRSxJQUFJLE9BQU8sUUFBUTtBQUN4RCxNQUFJLENBQUMsU0FBUztBQUNaLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSTtBQUNKLFFBQU0saUJBQWlCLElBQUksUUFBZSxDQUFDLFlBQVk7QUFDckQsZ0JBQVksT0FBTyxXQUFXLE1BQU07QUFDbEMsY0FBUSxLQUFLO0FBQUEsSUFDZixHQUFHLE9BQU8seUJBQXlCLG9EQUFvRDtBQUFBLEVBQ3pGLENBQUM7QUFFRCxNQUFJO0FBQ0YsV0FBTyxNQUFNLFFBQVEsS0FBSyxDQUFDLFFBQVEsS0FBSyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUM7QUFBQSxFQUN0RSxVQUFFO0FBQ0EsV0FBTyxhQUFhLFNBQVM7QUFBQSxFQUMvQjtBQUNGO0FBUU8sU0FBUyw4QkFBOEIsVUFBMkI7QUFDdkUsU0FBTyxtQkFBbUIsRUFBRSxJQUFJLFFBQVE7QUFDMUM7QUFVTyxTQUFTLDJCQUEyQixRQUFnRDtBQUN6RixTQUFPLFVBQVUsU0FBUyxNQUFNO0FBQzlCLDRCQUF3QjtBQUFBLE1BQ3RCLFNBQVMsT0FBTztBQUFBLE1BQ2hCLFVBQVUsT0FBTztBQUFBLElBQ25CLENBQUM7QUFBQSxFQUNILENBQUM7QUFDSDtBQVVPLFNBQVMsd0JBQXdCLFFBQTZDO0FBQ25GLFFBQU0sa0JBQWtCLG1CQUFtQjtBQUMzQyxRQUFNLGtCQUFrQixnQkFBZ0IsSUFBSSxPQUFPLFFBQVE7QUFDM0QsUUFBTSxpQkFBaUIsaUJBQWlCLE1BQU07QUFFOUMsUUFBTSxRQUE2QixDQUFDO0FBQ3BDLFFBQU0sV0FBVyxZQUEyQjtBQUMxQyxVQUFNLFFBQVEsSUFBSSxDQUFDLGlCQUFpQixjQUFjLENBQUM7QUFFbkQsUUFBSSxnQkFBZ0IsSUFBSSxPQUFPLFFBQVEsTUFBTSxNQUFNLFNBQVM7QUFDMUQsc0JBQWdCLE9BQU8sT0FBTyxRQUFRO0FBQUEsSUFDeEM7QUFBQSxFQUNGLEdBQUc7QUFDSCxrQkFBZ0IsSUFBSSxPQUFPLFVBQVUsTUFBTSxPQUFPO0FBQ3BEO0FBRUEsU0FBUyxxQkFBaUQ7QUFDeEQsU0FBTyxvQkFBb0IsaUNBQWlDLG9CQUFJLElBQTJCLENBQUMsRUFBRTtBQUNoRztBQUVBLGVBQWUsaUJBQWlCLFFBQXNEO0FBQ3BGLE1BQUk7QUFDRixVQUFNLE9BQU8sUUFBUTtBQUFBLEVBQ3ZCLFNBQVMsT0FBTztBQUNkLGVBQVcsSUFBSSxNQUFNLDJCQUEyQixPQUFPLFFBQVEsV0FBVyxFQUFFLE9BQU8sTUFBTSxDQUFDLENBQUM7QUFBQSxFQUM3RjtBQUNGOyIsIm5hbWVzIjpbXX0=
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLWFzeW5jLWNsZWFudXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEFzeW5jIGNsZWFudXAgdGhhdCBvdXRsaXZlcyBhIHBsdWdpbiBpbnN0YW5jZSwgc28gdGhlIG5leHQgaW5zdGFuY2Ugb2YgdGhlIHNhbWUgcGx1Z2luIGNhbiBhd2FpdCBpdC5cbiAqXG4gKiBPYnNpZGlhbidzIGBvbnVubG9hZGAgaXMgc3luY2hyb25vdXMgYW5kIG5vdGhpbmcgYXdhaXRzIHdoYXQgaXQgc3RhcnRzLiBSZWFkIGZyb20gT2JzaWRpYW4gYDEuMTUuMWA6XG4gKiBgUGx1Z2lucy51bmxvYWRQbHVnaW5gIGNhbGxzIHRoZSBvbGQgaW5zdGFuY2UncyBgdW5sb2FkKClgIGFuZCByZXR1cm5zLCBhbmQgYGVuYWJsZVBsdWdpbmAgdGhlbiBjb25zdHJ1Y3RzIHRoZSBuZXdcbiAqIGluc3RhbmNlIGFuZCBhd2FpdHMgaXRzIGBsb2FkKClgLiBTbyBvbiBhIGRpc2FibGUgLyBlbmFibGUsIGEgcmVsb2FkIG9yIGFuIHVwZGF0ZSB3aGlsZSBlbmFibGVkLCB3b3JrIGxpa2UgY2xvc2luZ1xuICogYW4gSW5kZXhlZERCIGNvbm5lY3Rpb24gaXMgc3RpbGwgaW4gZmxpZ2h0IHdoZW4gdGhlIG5ldyBpbnN0YW5jZSBzdGFydHMsIGFuZCB0aGUgbmV3IGluc3RhbmNlIGNhbiBvcGVuIGEgZGF0YWJhc2VcbiAqIHRoZSBvbGQgb25lIHN0aWxsIGhvbGRzLlxuICpcbiAqIFRoZSByZWdpc3RyeSBoZXJlIGNsb3NlcyB0aGF0IGdhcCB3aXRob3V0IG93bmluZyB0aGUgcmVsb2FkIGxpZmVjeWNsZTogYSBjbGVhbnVwIHN0YXJ0cyB3aGVuIHRoZSBjb21wb25lbnQgaXQgaXNcbiAqIHJlZ2lzdGVyZWQgb24gdW5sb2FkcywgaXRzIHByb21pc2UgaXMga2VwdCByZWFsbS13aWRlIHVuZGVyIHRoZSBwbHVnaW4gaWQsIGFuZCB0aGUgbmV4dCBpbnN0YW5jZSBhd2FpdHMgaXQsIGJvdW5kZWRcbiAqIGJ5IGEgdGltZW91dCwgYmVmb3JlIGl0IHN0YXJ0cy4gYFBsdWdpbkJhc2VgIGRvZXMgYm90aCBoYWx2ZXMgaXRzZWxmLlxuICpcbiAqIFRoZSByZWdpc3RyeSBsaXZlcyBpbiB0aGUgcmVhbG0tZ2xvYmFsIHNoYXJlZC1zdGF0ZSBiYWcgdW5kZXIgdGhlIHZlcnNpb25lZCBrZXkgYHBsdWdpbkFzeW5jQ2xlYW51cHNWMWAsIGJlY2F1c2UgdGhlXG4gKiBvbGQgaW5zdGFuY2UgYW5kIHRoZSBuZXcgb25lIG1heSBidW5kbGUgZGlmZmVyZW50IGNvcGllcyBvZiB0aGlzIGxpYnJhcnkuIEl0IGlzIGEgd2lyZSBmb3JtYXQgYmV0d2VlbiB0aG9zZSBjb3BpZXM6XG4gKiBhIHBsYWluIGBNYXBgIGZyb20gcGx1Z2luIGlkIHRvIGEgYFByb21pc2U8dm9pZD5gIHRoYXQgbmV2ZXIgcmVqZWN0cy4gQSBjaGFuZ2Ugb2YgbWVhbmluZyBtb3ZlcyB0byBhIG5ldyBrZXkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJTdGF0ZSB9IGZyb20gJy4uL29ic2lkaWFuLWxpYi1zdGF0ZS50cyc7XG5cbi8qKlxuICogVGhlIHNoYXJlZC1zdGF0ZSBrZXkgb2YgdGhlIHBlbmRpbmcgY2xlYW51cHMuIFZlcnNpb25lZCwgYmVjYXVzZSBpdCBpcyBhIHdpcmUgZm9ybWF0IGJldHdlZW4gY29waWVzIG9mIHRoaXMgbGlicmFyeS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9BU1lOQ19DTEVBTlVQU19TVEFURV9LRVkgPSAncGx1Z2luQXN5bmNDbGVhbnVwc1YxJztcblxuLyoqXG4gKiBIb3cgbG9uZyBhIG5ldyBwbHVnaW4gaW5zdGFuY2Ugd2FpdHMgZm9yIHRoZSBwcmV2aW91cyBpbnN0YW5jZSdzIGNsZWFudXBzIGJ5IGRlZmF1bHQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BMVUdJTl9BU1lOQ19DTEVBTlVQX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTID0gMTBfMDAwO1xuXG4vKipcbiAqIEhvdyBsb25nIGEgbmV3IHBsdWdpbiBpbnN0YW5jZSB3YWl0cyBmb3IgdGhlIHByZXZpb3VzIGluc3RhbmNlJ3MgY2xlYW51cHMsIGJ5IGRlZmF1bHQsIGJlZm9yZSBpdCBzaG93cyBhIG5vdGljZSB0aGF0XG4gKiBpdHMgbG9hZCBpcyBwYXVzZWQuIFNob3J0ZXIgd2FpdHMgc2hvdyBub3RoaW5nLCBzbyB0aGUgdXN1YWwgZmV3IG1pbGxpc2Vjb25kcyBuZXZlciBmbGFzaCBhIG5vdGljZS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUExVR0lOX0FTWU5DX0NMRUFOVVBfTk9USUNFX0RFTEFZX0lOX01JTExJU0VDT05EUyA9IDUwMDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZGlkUGx1Z2luQXN5bmNDbGVhbnVwc1NldHRsZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlkUGx1Z2luQXN5bmNDbGVhbnVwc1NldHRsZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIHBsdWdpbiB3aG9zZSBwZW5kaW5nIGNsZWFudXBzIHRvIGF3YWl0LlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogSG93IGxvbmcgdG8gd2FpdCBiZWZvcmUgZ2l2aW5nIHVwLiBEZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9QTFVHSU5fQVNZTkNfQ0xFQU5VUF9USU1FT1VUX0lOX01JTExJU0VDT05EU30uXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQW4gYXN5bmMgY2xlYW51cC5cbiAqL1xuZXhwb3J0IHR5cGUgUGx1Z2luQXN5bmNDbGVhbnVwID0gKCkgPT4gUHJvbWlzYWJsZTx2b2lkPjtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcmVnaXN0ZXJQbHVnaW5Bc3luY0NsZWFudXB9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyUGx1Z2luQXN5bmNDbGVhbnVwUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjbGVhbnVwIHRvIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGNsZWFudXA6IFBsdWdpbkFzeW5jQ2xlYW51cDtcblxuICAvKipcbiAgICogVGhlIGNvbXBvbmVudCB3aG9zZSB1bmxvYWQgc3RhcnRzIHRoZSBjbGVhbnVwLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50OiBDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgcGx1Z2luIHRoZSBjbGVhbnVwIGJlbG9uZ3MgdG8sIHdoaWNoIHRoZSBuZXh0IGluc3RhbmNlIHdhaXRzIHVuZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgdHJhY2tQbHVnaW5Bc3luY0NsZWFudXB9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYWNrUGx1Z2luQXN5bmNDbGVhbnVwUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBjbGVhbnVwIHRvIHJ1biBub3cuXG4gICAqL1xuICByZWFkb25seSBjbGVhbnVwOiBQbHVnaW5Bc3luY0NsZWFudXA7XG5cbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgcGx1Z2luIHRoZSBjbGVhbnVwIGJlbG9uZ3MgdG8uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVHJhY2tlZENsZWFudXBFbnRyeSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB0eXBlc2NyaXB0LWRldi10b29sa2l0L3JlYWRvbmx5LWludGVyZmFjZS1tZW1iZXJzIC0tIEFzc2lnbmVkIG9uY2UgdGhlIHNlbGYtcmVtb3ZpbmcgcHJvbWlzZSBleGlzdHMuXG4gIHByb21pc2U/OiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vKipcbiAqIEF3YWl0cyBldmVyeSBjbGVhbnVwIHN0aWxsIGluIGZsaWdodCBmb3IgdGhlIHBsdWdpbiwgYm91bmRlZCBieSBhIHRpbWVvdXQuXG4gKlxuICogUmVzb2x2ZXMgYXQgb25jZSB3aGVuIG5vdGhpbmcgaXMgcGVuZGluZy4gTmV2ZXIgcmVqZWN0cy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgZXZlcnkgcGVuZGluZyBjbGVhbnVwIHNldHRsZWQgaW4gdGltZSwgYGZhbHNlYCBpZiB0aGUgdGltZW91dCB3YXMgcmVhY2hlZCBmaXJzdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRpZFBsdWdpbkFzeW5jQ2xlYW51cHNTZXR0bGUocGFyYW1zOiBEaWRQbHVnaW5Bc3luY0NsZWFudXBzU2V0dGxlUGFyYW1zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHByb21pc2UgPSBnZXRQZW5kaW5nQ2xlYW51cHMoKS5nZXQocGFyYW1zLnBsdWdpbklkKTtcbiAgaWYgKCFwcm9taXNlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBsZXQgdGltZW91dElkOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHRpbWVvdXRQcm9taXNlID0gbmV3IFByb21pc2U8ZmFsc2U+KChyZXNvbHZlKSA9PiB7XG4gICAgdGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgfSwgcGFyYW1zLnRpbWVvdXRJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX1BMVUdJTl9BU1lOQ19DTEVBTlVQX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTKTtcbiAgfSk7XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5yYWNlKFtwcm9taXNlLnRoZW4oKCkgPT4gdHJ1ZSksIHRpbWVvdXRQcm9taXNlXSk7XG4gIH0gZmluYWxseSB7XG4gICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBwbHVnaW4gaGFzIGNsZWFudXBzIHN0aWxsIGluIGZsaWdodC5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luSWQgLSBUaGUgcGx1Z2luIGlkLlxuICogQHJldHVybnMgV2hldGhlciBhbnkgY2xlYW51cCByZWdpc3RlcmVkIHVuZGVyIHRoZSBpZCBoYXMgbm90IHNldHRsZWQgeWV0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzUGVuZGluZ1BsdWdpbkFzeW5jQ2xlYW51cHMocGx1Z2luSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0UGVuZGluZ0NsZWFudXBzKCkuaGFzKHBsdWdpbklkKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYW4gYXN5bmMgY2xlYW51cCB0aGF0IHN0YXJ0cyB3aGVuIHRoZSBjb21wb25lbnQgdW5sb2FkcyBhbmQgdGhhdCB0aGUgbmV4dCBpbnN0YW5jZSBvZiB0aGUgcGx1Z2luIGF3YWl0cy5cbiAqXG4gKiBUaGUgY2xlYW51cCBydW5zIGV4YWN0bHkgb25jZSwgb24gdGhlIGNvbXBvbmVudCdzIHVubG9hZC4gUmVnaXN0ZXIgaXQgb24gdGhlIGNvbXBvbmVudCB3aG9zZSBsaWZldGltZSBtYXRjaGVzIHRoZVxuICogcmVzb3VyY2U6IGEgYFBsdWdpbkJhc2VgIHN1YmNsYXNzIGNhbGxzIGByZWdpc3RlckFzeW5jQ2xlYW51cGAgaW5zdGVhZCwgd2hpY2ggc2NvcGVzIGl0IHRvIHRoZSBmZWF0dXJlIHN1cmZhY2UuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJQbHVnaW5Bc3luY0NsZWFudXAocGFyYW1zOiBSZWdpc3RlclBsdWdpbkFzeW5jQ2xlYW51cFBhcmFtcyk6IHZvaWQge1xuICBwYXJhbXMuY29tcG9uZW50LnJlZ2lzdGVyKCgpID0+IHtcbiAgICB0cmFja1BsdWdpbkFzeW5jQ2xlYW51cCh7XG4gICAgICBjbGVhbnVwOiBwYXJhbXMuY2xlYW51cCxcbiAgICAgIHBsdWdpbklkOiBwYXJhbXMucGx1Z2luSWRcbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogUnVucyBhbiBhc3luYyBjbGVhbnVwIG5vdyBhbmQgdHJhY2tzIGl0IHVuZGVyIHRoZSBwbHVnaW4gaWQgdW50aWwgaXQgc2V0dGxlcy5cbiAqXG4gKiBBIGNsZWFudXAgdGhhdCB0aHJvd3Mgb3IgcmVqZWN0cyBpcyBwcmludGVkIGFuZCBjb3VudHMgYXMgc2V0dGxlZCwgc28gYSBmYWlsaW5nIGNsZWFudXAgbmV2ZXIgc3RvcHMgdGhlIG5leHRcbiAqIGluc3RhbmNlIGZyb20gbG9hZGluZy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFja1BsdWdpbkFzeW5jQ2xlYW51cChwYXJhbXM6IFRyYWNrUGx1Z2luQXN5bmNDbGVhbnVwUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHBlbmRpbmdDbGVhbnVwcyA9IGdldFBlbmRpbmdDbGVhbnVwcygpO1xuICBjb25zdCBwcmV2aW91c1Byb21pc2UgPSBwZW5kaW5nQ2xlYW51cHMuZ2V0KHBhcmFtcy5wbHVnaW5JZCk7XG4gIGNvbnN0IGNsZWFudXBQcm9taXNlID0gcnVuQ2xlYW51cFNhZmVseShwYXJhbXMpO1xuICAvLyBOZXZlciByZWplY3RzOiBgcnVuQ2xlYW51cFNhZmVseWAgY2F0Y2hlcywgYW5kIHNvIGRpZCB3aGljaGV2ZXIgY2FsbCB0cmFja2VkIGBwcmV2aW91c1Byb21pc2VgLlxuICBjb25zdCBlbnRyeTogVHJhY2tlZENsZWFudXBFbnRyeSA9IHt9O1xuICBlbnRyeS5wcm9taXNlID0gKGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChbcHJldmlvdXNQcm9taXNlLCBjbGVhbnVwUHJvbWlzZV0pO1xuICAgIC8vIEEgbGF0ZXIgY2FsbCBtYXkgaGF2ZSBjaGFpbmVkIG9udG8gdGhpcyBlbnRyeSBhbHJlYWR5OyBvbmx5IHRoZSBsYXRlc3QgZW50cnkgcmVtb3ZlcyBpdHNlbGYuXG4gICAgaWYgKHBlbmRpbmdDbGVhbnVwcy5nZXQocGFyYW1zLnBsdWdpbklkKSA9PT0gZW50cnkucHJvbWlzZSkge1xuICAgICAgcGVuZGluZ0NsZWFudXBzLmRlbGV0ZShwYXJhbXMucGx1Z2luSWQpO1xuICAgIH1cbiAgfSkoKTtcbiAgcGVuZGluZ0NsZWFudXBzLnNldChwYXJhbXMucGx1Z2luSWQsIGVudHJ5LnByb21pc2UpO1xufVxuXG5mdW5jdGlvbiBnZXRQZW5kaW5nQ2xlYW51cHMoKTogTWFwPHN0cmluZywgUHJvbWlzZTx2b2lkPj4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5MaWJTdGF0ZShQTFVHSU5fQVNZTkNfQ0xFQU5VUFNfU1RBVEVfS0VZLCBuZXcgTWFwPHN0cmluZywgUHJvbWlzZTx2b2lkPj4oKSkudmFsdWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bkNsZWFudXBTYWZlbHkocGFyYW1zOiBUcmFja1BsdWdpbkFzeW5jQ2xlYW51cFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIGF3YWl0IHBhcmFtcy5jbGVhbnVwKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcHJpbnRFcnJvcihuZXcgRXJyb3IoYEFzeW5jIGNsZWFudXAgb2YgcGx1Z2luICR7cGFyYW1zLnBsdWdpbklkfSBmYWlsZWRgLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QkEsU0FBUyxrQkFBa0I7QUFFM0IsU0FBUywyQkFBMkI7QUFLN0IsTUFBTSxrQ0FBa0M7QUFLeEMsTUFBTSx1REFBdUQ7QUFNN0QsTUFBTSw0REFBNEQ7QUFzRXpFLGVBQXNCLDZCQUE2QixRQUE4RDtBQUMvRyxRQUFNLFVBQVUsbUJBQW1CLEVBQUUsSUFBSSxPQUFPLFFBQVE7QUFDeEQsTUFBSSxDQUFDLFNBQVM7QUFDWixXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUk7QUFDSixRQUFNLGlCQUFpQixJQUFJLFFBQWUsQ0FBQyxZQUFZO0FBQ3JELGdCQUFZLE9BQU8sV0FBVyxNQUFNO0FBQ2xDLGNBQVEsS0FBSztBQUFBLElBQ2YsR0FBRyxPQUFPLHlCQUF5QixvREFBb0Q7QUFBQSxFQUN6RixDQUFDO0FBRUQsTUFBSTtBQUNGLFdBQU8sTUFBTSxRQUFRLEtBQUssQ0FBQyxRQUFRLEtBQUssTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDO0FBQUEsRUFDdEUsVUFBRTtBQUNBLFdBQU8sYUFBYSxTQUFTO0FBQUEsRUFDL0I7QUFDRjtBQVFPLFNBQVMsOEJBQThCLFVBQTJCO0FBQ3ZFLFNBQU8sbUJBQW1CLEVBQUUsSUFBSSxRQUFRO0FBQzFDO0FBVU8sU0FBUywyQkFBMkIsUUFBZ0Q7QUFDekYsU0FBTyxVQUFVLFNBQVMsTUFBTTtBQUM5Qiw0QkFBd0I7QUFBQSxNQUN0QixTQUFTLE9BQU87QUFBQSxNQUNoQixVQUFVLE9BQU87QUFBQSxJQUNuQixDQUFDO0FBQUEsRUFDSCxDQUFDO0FBQ0g7QUFVTyxTQUFTLHdCQUF3QixRQUE2QztBQUNuRixRQUFNLGtCQUFrQixtQkFBbUI7QUFDM0MsUUFBTSxrQkFBa0IsZ0JBQWdCLElBQUksT0FBTyxRQUFRO0FBQzNELFFBQU0saUJBQWlCLGlCQUFpQixNQUFNO0FBRTlDLFFBQU0sUUFBNkIsQ0FBQztBQUNwQyxRQUFNLFdBQVcsWUFBMkI7QUFDMUMsVUFBTSxRQUFRLElBQUksQ0FBQyxpQkFBaUIsY0FBYyxDQUFDO0FBRW5ELFFBQUksZ0JBQWdCLElBQUksT0FBTyxRQUFRLE1BQU0sTUFBTSxTQUFTO0FBQzFELHNCQUFnQixPQUFPLE9BQU8sUUFBUTtBQUFBLElBQ3hDO0FBQUEsRUFDRixHQUFHO0FBQ0gsa0JBQWdCLElBQUksT0FBTyxVQUFVLE1BQU0sT0FBTztBQUNwRDtBQUVBLFNBQVMscUJBQWlEO0FBQ3hELFNBQU8sb0JBQW9CLGlDQUFpQyxvQkFBSSxJQUEyQixDQUFDLEVBQUU7QUFDaEc7QUFFQSxlQUFlLGlCQUFpQixRQUFzRDtBQUNwRixNQUFJO0FBQ0YsVUFBTSxPQUFPLFFBQVE7QUFBQSxFQUN2QixTQUFTLE9BQU87QUFDZCxlQUFXLElBQUksTUFBTSwyQkFBMkIsT0FBTyxRQUFRLFdBQVcsRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQUEsRUFDN0Y7QUFDRjsiLCJuYW1lcyI6W119
|
|
@@ -75,6 +75,7 @@ function initPluginContext(pluginId) {
|
|
|
75
75
|
showInitialDebugMessage(pluginId);
|
|
76
76
|
getSharedAbortController();
|
|
77
77
|
injectLibraryStyles({
|
|
78
|
+
// eslint-disable-next-line obsidianmd/prefer-active-doc -- The shared library styles belong to the main window; `activeDocument` would put them in whichever popout has focus.
|
|
78
79
|
doc: document,
|
|
79
80
|
libraryStyles: LIBRARY_STYLES,
|
|
80
81
|
libraryVersion: LIBRARY_VERSION
|
|
@@ -85,4 +86,4 @@ export {
|
|
|
85
86
|
initDebugController,
|
|
86
87
|
initPluginContext
|
|
87
88
|
};
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEluaXRpYWxpemVzIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgc2V0cyB1cCB0aGUgcGx1Z2luIElELlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVidWdDb250cm9sbGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnLWNvbnRyb2xsZXInO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldFNoYXJlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hYm9ydC1jb250cm9sbGVyJztcbmltcG9ydCB7IGdldERlYnVnQ29udHJvbGxlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9kZWJ1Zyc7XG5pbXBvcnQgeyBMaWJyYXJ5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2xpYnJhcnknO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBzaG93SW5pdGlhbERlYnVnTWVzc2FnZSB9IGZyb20gJy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi4vZ2VuZXJhdGVkLWR1cmluZy1idWlsZC50cyc7XG5pbXBvcnQgeyBpbmplY3RMaWJyYXJ5U3R5bGVzIH0gZnJvbSAnLi4vbGlicmFyeS1zdHlsZXMudHMnO1xuaW1wb3J0IHtcbiAgT0JTSURJQU5fTElCUkFSWV9OQU1FLFxuICBPYnNpZGlhbkxpYnJhcnlcbn0gZnJvbSAnLi4vbGlicmFyeS50cyc7XG5cbmludGVyZmFjZSBQbHVnaW5Db250ZXh0V2luZG93IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQtZGV2LXRvb2xraXQvcmVhZG9ubHktaW50ZXJmYWNlLW1lbWJlcnMgLS0gUGx1Z2luIGNvbnRleHQgc2V0dXAgaW5zdGFsbHMgb3IgcmVwbGFjZXMgdGhlIGRlYnVnIGNvbnRyb2xsZXIuXG4gIERFQlVHOiBEZWJ1Z0NvbnRyb2xsZXIgfCB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IERFQlVHX0dVSURFX1VSTCA9ICdodHRwczovL21uYW91bW92LmRldi9vYnNpZGlhbi1saWIvZ3VpZGVzL2RlYnVnZ2luZy8nO1xuXG4vKipcbiAqIFNldHMgdGhlIENTUyBjbGFzcyBvZiBhbiBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gc2V0IHRoZSBDU1MgY2xhc3Mgb2YuXG4gKiBAcGFyYW0gY3NzQ2xhc3NlcyAtIFRoZSBDU1MgY2xhc3NlcyB0byBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQbHVnaW5Dc3NDbGFzc2VzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjc3NDbGFzc2VzPzogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgY29uc3QgZXh0cmFDc3NDbGFzc2VzID0gdHlwZW9mIGNzc0NsYXNzZXMgPT09ICdzdHJpbmcnID8gW2Nzc0NsYXNzZXNdIDogY3NzQ2xhc3NlcyA/PyBbXTtcbiAgZWxlbWVudC5hZGRDbGFzcyhcbiAgICBDc3NDbGFzcy5MaWJyYXJ5TmFtZSxcbiAgICAvLyBUaGUgc2NvcGUgaXMgZW1wdHkgdW50aWwgdGhlIHBsdWdpbiBjb250ZXh0IGlzIGluaXRpYWxpemVkOyBza2lwIGl0IHNvIHdlIG5ldmVyIGFkZCBhbiBlbXB0eSBjbGFzcy5cbiAgICAuLi4oT2JzaWRpYW5MaWJyYXJ5LmNzc0NsYXNzU2NvcGUgPyBbT2JzaWRpYW5MaWJyYXJ5LmNzc0NsYXNzU2NvcGVdIDogW10pLFxuICAgIC4uLmV4dHJhQ3NzQ2xhc3Nlc1xuICApO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBkZWJ1ZyBjb250cm9sbGVyLlxuICpcbiAqIEBwYXJhbSB3aW4gLSBUaGUgd2luZG93IHRvIGluaXRpYWxpemUgdGhlIGRlYnVnIGNvbnRyb2xsZXIgZm9yLlxuICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdG8gcmVnaXN0ZXIgY2xlYW51cCBvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXREZWJ1Z0NvbnRyb2xsZXIod2luOiBXaW5kb3csIGNvbXBvbmVudDogQ29tcG9uZW50KTogdm9pZCB7XG4gIGNvbnN0IHBsdWdpbkNvbnRleHRXaW5kb3cgPSB3aW4gYXMgUGFydGlhbDxQbHVnaW5Db250ZXh0V2luZG93PjtcbiAgY29uc3Qgb2xkRGVidWcgPSBwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHO1xuICBjb25zdCBuZXdEZWJ1ZyA9IGdldERlYnVnQ29udHJvbGxlcigpO1xuICBwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHID0gbmV3RGVidWc7XG5cbiAgY29tcG9uZW50LnJlZ2lzdGVyKCgpID0+
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEluaXRpYWxpemVzIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgc2V0cyB1cCB0aGUgcGx1Z2luIElELlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVidWdDb250cm9sbGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnLWNvbnRyb2xsZXInO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldFNoYXJlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hYm9ydC1jb250cm9sbGVyJztcbmltcG9ydCB7IGdldERlYnVnQ29udHJvbGxlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9kZWJ1Zyc7XG5pbXBvcnQgeyBMaWJyYXJ5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2xpYnJhcnknO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBzaG93SW5pdGlhbERlYnVnTWVzc2FnZSB9IGZyb20gJy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi4vZ2VuZXJhdGVkLWR1cmluZy1idWlsZC50cyc7XG5pbXBvcnQgeyBpbmplY3RMaWJyYXJ5U3R5bGVzIH0gZnJvbSAnLi4vbGlicmFyeS1zdHlsZXMudHMnO1xuaW1wb3J0IHtcbiAgT0JTSURJQU5fTElCUkFSWV9OQU1FLFxuICBPYnNpZGlhbkxpYnJhcnlcbn0gZnJvbSAnLi4vbGlicmFyeS50cyc7XG5cbmludGVyZmFjZSBQbHVnaW5Db250ZXh0V2luZG93IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQtZGV2LXRvb2xraXQvcmVhZG9ubHktaW50ZXJmYWNlLW1lbWJlcnMgLS0gUGx1Z2luIGNvbnRleHQgc2V0dXAgaW5zdGFsbHMgb3IgcmVwbGFjZXMgdGhlIGRlYnVnIGNvbnRyb2xsZXIuXG4gIERFQlVHOiBEZWJ1Z0NvbnRyb2xsZXIgfCB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IERFQlVHX0dVSURFX1VSTCA9ICdodHRwczovL21uYW91bW92LmRldi9vYnNpZGlhbi1saWIvZ3VpZGVzL2RlYnVnZ2luZy8nO1xuXG4vKipcbiAqIFNldHMgdGhlIENTUyBjbGFzcyBvZiBhbiBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gc2V0IHRoZSBDU1MgY2xhc3Mgb2YuXG4gKiBAcGFyYW0gY3NzQ2xhc3NlcyAtIFRoZSBDU1MgY2xhc3NlcyB0byBzZXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQbHVnaW5Dc3NDbGFzc2VzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjc3NDbGFzc2VzPzogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcbiAgY29uc3QgZXh0cmFDc3NDbGFzc2VzID0gdHlwZW9mIGNzc0NsYXNzZXMgPT09ICdzdHJpbmcnID8gW2Nzc0NsYXNzZXNdIDogY3NzQ2xhc3NlcyA/PyBbXTtcbiAgZWxlbWVudC5hZGRDbGFzcyhcbiAgICBDc3NDbGFzcy5MaWJyYXJ5TmFtZSxcbiAgICAvLyBUaGUgc2NvcGUgaXMgZW1wdHkgdW50aWwgdGhlIHBsdWdpbiBjb250ZXh0IGlzIGluaXRpYWxpemVkOyBza2lwIGl0IHNvIHdlIG5ldmVyIGFkZCBhbiBlbXB0eSBjbGFzcy5cbiAgICAuLi4oT2JzaWRpYW5MaWJyYXJ5LmNzc0NsYXNzU2NvcGUgPyBbT2JzaWRpYW5MaWJyYXJ5LmNzc0NsYXNzU2NvcGVdIDogW10pLFxuICAgIC4uLmV4dHJhQ3NzQ2xhc3Nlc1xuICApO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBkZWJ1ZyBjb250cm9sbGVyLlxuICpcbiAqIEBwYXJhbSB3aW4gLSBUaGUgd2luZG93IHRvIGluaXRpYWxpemUgdGhlIGRlYnVnIGNvbnRyb2xsZXIgZm9yLlxuICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdG8gcmVnaXN0ZXIgY2xlYW51cCBvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXREZWJ1Z0NvbnRyb2xsZXIod2luOiBXaW5kb3csIGNvbXBvbmVudDogQ29tcG9uZW50KTogdm9pZCB7XG4gIGNvbnN0IHBsdWdpbkNvbnRleHRXaW5kb3cgPSB3aW4gYXMgUGFydGlhbDxQbHVnaW5Db250ZXh0V2luZG93PjtcbiAgY29uc3Qgb2xkRGVidWcgPSBwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHO1xuICBjb25zdCBuZXdEZWJ1ZyA9IGdldERlYnVnQ29udHJvbGxlcigpO1xuICBwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHID0gbmV3RGVidWc7XG5cbiAgY29tcG9uZW50LnJlZ2lzdGVyKCgpID0+IHtcbiAgICBpZiAocGx1Z2luQ29udGV4dFdpbmRvdy5ERUJVRyA9PT0gbmV3RGVidWcpIHtcbiAgICAgIHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUcgPSBvbGREZWJ1ZztcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemVzIHRoZSBwbHVnaW4gY29udGV4dC5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luSWQgLSBUaGUgcGx1Z2luIElELlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdFBsdWdpbkNvbnRleHQocGx1Z2luSWQ6IHN0cmluZyk6IHZvaWQge1xuICBPYnNpZGlhbkxpYnJhcnkuaW5pdCh7IGNzc0NsYXNzU2NvcGU6IHBsdWdpbklkIH0pO1xuICBMaWJyYXJ5LmluaXQoe1xuICAgIGRlYnVnR3VpZGVVcmw6IERFQlVHX0dVSURFX1VSTCxcbiAgICBkZWJ1Z05hbWVzcGFjZTogT0JTSURJQU5fTElCUkFSWV9OQU1FLFxuICAgIGRlYnVnUHJlZml4TmFtZXNwYWNlOiBgJHtwbHVnaW5JZH06YCxcbiAgICBzaG91bGRQcmludFN0YWNrVHJhY2U6IHRydWVcbiAgfSk7XG4gIHNob3dJbml0aWFsRGVidWdNZXNzYWdlKHBsdWdpbklkKTtcblxuICAvLyBOb3RoaW5nIGVsc2UgaW4gdGhlIGxpYnJhcnkgcmVhY2hlcyBmb3IgdGhlIHNoYXJlZCBhYm9ydCBjb250cm9sbGVyIC0tIG9ubHkgY29uc3VtZXIgcGx1Z2lucyBkby4gQ3JlYXRlXG4gIC8vIGl0IGhlcmUgc28gdGhlIGRldnRvb2xzIGNvbnNvbGUgcmVjaXBlIGluIHRoZSBkZWJ1Z2dpbmcgZ3VpZGUgYWx3YXlzIHJlc29sdmVzLCBpbnN0ZWFkIG9mIHRocm93aW5nIHVudGlsIHNvbWVcbiAgLy8gcGx1Z2luIGhhcHBlbnMgdG8gc3RhcnQgYW4gYWJvcnRhYmxlIG9wZXJhdGlvbi5cbiAgZ2V0U2hhcmVkQWJvcnRDb250cm9sbGVyKCk7XG5cbiAgaW5qZWN0TGlicmFyeVN0eWxlcyh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvcHJlZmVyLWFjdGl2ZS1kb2MgLS0gVGhlIHNoYXJlZCBsaWJyYXJ5IHN0eWxlcyBiZWxvbmcgdG8gdGhlIG1haW4gd2luZG93OyBgYWN0aXZlRG9jdW1lbnRgIHdvdWxkIHB1dCB0aGVtIGluIHdoaWNoZXZlciBwb3BvdXQgaGFzIGZvY3VzLlxuICAgIGRvYzogZG9jdW1lbnQsXG4gICAgbGlicmFyeVN0eWxlczogTElCUkFSWV9TVFlMRVMsXG4gICAgbGlicmFyeVZlcnNpb246IExJQlJBUllfVkVSU0lPTlxuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQSxTQUFTLGdDQUFnQztBQUN6QyxTQUFTLDBCQUEwQjtBQUNuQyxTQUFTLGVBQWU7QUFFeEIsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUywrQkFBK0I7QUFDeEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLDJCQUEyQjtBQUNwQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQU9QLE1BQU0sa0JBQWtCO0FBUWpCLFNBQVMsb0JBQW9CLFNBQXNCLFlBQXNDO0FBQzlGLFFBQU0sa0JBQWtCLE9BQU8sZUFBZSxXQUFXLENBQUMsVUFBVSxJQUFJLGNBQWMsQ0FBQztBQUN2RixVQUFRO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFFVCxHQUFJLGdCQUFnQixnQkFBZ0IsQ0FBQyxnQkFBZ0IsYUFBYSxJQUFJLENBQUM7QUFBQSxJQUN2RSxHQUFHO0FBQUEsRUFDTDtBQUNGO0FBUU8sU0FBUyxvQkFBb0IsS0FBYSxXQUE0QjtBQUMzRSxRQUFNLHNCQUFzQjtBQUM1QixRQUFNLFdBQVcsb0JBQW9CO0FBQ3JDLFFBQU0sV0FBVyxtQkFBbUI7QUFDcEMsc0JBQW9CLFFBQVE7QUFFNUIsWUFBVSxTQUFTLE1BQU07QUFDdkIsUUFBSSxvQkFBb0IsVUFBVSxVQUFVO0FBQzFDLDBCQUFvQixRQUFRO0FBQUEsSUFDOUI7QUFBQSxFQUNGLENBQUM7QUFDSDtBQU9PLFNBQVMsa0JBQWtCLFVBQXdCO0FBQ3hELGtCQUFnQixLQUFLLEVBQUUsZUFBZSxTQUFTLENBQUM7QUFDaEQsVUFBUSxLQUFLO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixnQkFBZ0I7QUFBQSxJQUNoQixzQkFBc0IsR0FBRyxRQUFRO0FBQUEsSUFDakMsdUJBQXVCO0FBQUEsRUFDekIsQ0FBQztBQUNELDBCQUF3QixRQUFRO0FBS2hDLDJCQUF5QjtBQUV6QixzQkFBb0I7QUFBQTtBQUFBLElBRWxCLEtBQUs7QUFBQSxJQUNMLGVBQWU7QUFBQSxJQUNmLGdCQUFnQjtBQUFBLEVBQ2xCLENBQUM7QUFDSDsiLCJuYW1lcyI6W119
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Contains the implementation of the plugin event source.
|
|
6
6
|
*/
|
|
7
|
-
import type { AsyncEventRef, AsyncEventSource } from '@mnaoumov/typescript-lib/async-events';
|
|
7
|
+
import type { AsyncEventRef, AsyncEventSource, CallbackArguments } from '@mnaoumov/typescript-lib/async-events';
|
|
8
8
|
import type { StringKeys } from '@mnaoumov/typescript-lib/type';
|
|
9
9
|
import type { Promisable } from 'type-fest';
|
|
10
10
|
import type { PluginBase } from './plugin.mjs';
|
|
@@ -45,7 +45,7 @@ export declare class PluginEventSourceImpl implements PluginEventSource {
|
|
|
45
45
|
* events.off('my-event', myListener);
|
|
46
46
|
* ```
|
|
47
47
|
*/
|
|
48
|
-
off<EventName extends StringKeys<PluginEventMap>, Arguments extends
|
|
48
|
+
off<EventName extends StringKeys<PluginEventMap>, Arguments extends CallbackArguments<PluginEventMap, EventName>>(name: EventName, callback: (...$arguments: Arguments) => Promisable<void>): void;
|
|
49
49
|
/**
|
|
50
50
|
* Remove an event listener by reference.
|
|
51
51
|
*
|
|
@@ -72,7 +72,7 @@ export declare class PluginEventSourceImpl implements PluginEventSource {
|
|
|
72
72
|
* });
|
|
73
73
|
* ```
|
|
74
74
|
*/
|
|
75
|
-
on<EventName extends StringKeys<PluginEventMap>, Arguments extends
|
|
75
|
+
on<EventName extends StringKeys<PluginEventMap>, Arguments extends CallbackArguments<PluginEventMap, EventName>>(name: EventName, callback: (...$arguments: Arguments) => Promisable<void>, thisArgument?: unknown): AsyncEventRef;
|
|
76
76
|
/**
|
|
77
77
|
* Add an event listener that will be triggered only once.
|
|
78
78
|
*
|
|
@@ -93,5 +93,5 @@ export declare class PluginEventSourceImpl implements PluginEventSource {
|
|
|
93
93
|
* });
|
|
94
94
|
* ```
|
|
95
95
|
*/
|
|
96
|
-
once<EventName extends StringKeys<PluginEventMap>, Arguments extends
|
|
96
|
+
once<EventName extends StringKeys<PluginEventMap>, Arguments extends CallbackArguments<PluginEventMap, EventName>>(name: EventName, callback: (...$arguments: Arguments) => Promisable<void>, thisArgument?: unknown): AsyncEventRef;
|
|
97
97
|
}
|
|
@@ -90,4 +90,4 @@ class PluginEventSourceImpl {
|
|
|
90
90
|
export {
|
|
91
91
|
PluginEventSourceImpl
|
|
92
92
|
};
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbi9wbHVnaW4tZXZlbnQtc291cmNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBwbHVnaW4gZXZlbnQgc291cmNlLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXN5bmNFdmVudFJlZixcbiAgQXN5bmNFdmVudFNvdXJjZSxcbiAgQ2FsbGJhY2tBcmd1bWVudHNcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLWV2ZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0cmluZ0tleXMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbkJhc2UgfSBmcm9tICcuL3BsdWdpbi50cyc7XG5cbi8qKlxuICogRXZlbnQgbWFwIGZvciBwbHVnaW4gZXZlbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkV2ZW50TWFwIHtcbiAgLyoqXG4gIEZpcmVkIHdoZW4gcGx1Z2luIHNldHRpbmdzIGFyZSBjaGFuZ2VkIGV4dGVybmFsbHkgKGUuZy4gc3luYywgbWFudWFsIGZpbGUgZWRpdCkuXG4gICAqL1xuICByZWFkb25seSBleHRlcm5hbFNldHRpbmdzQ2hhbmdlOiBbXTtcbn1cblxuLyoqXG4gKiBFdmVudCBzb3VyY2UgZm9yIHBsdWdpbiBldmVudHMuXG4gKi9cbmV4cG9ydCB0eXBlIFBsdWdpbkV2ZW50U291cmNlID0gQXN5bmNFdmVudFNvdXJjZTxQbHVnaW5FdmVudE1hcD47XG5cbi8qKlxuICogUGx1Z2luIGV2ZW50IHNvdXJjZSBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFBsdWdpbkV2ZW50U291cmNlSW1wbCBpbXBsZW1lbnRzIFBsdWdpbkV2ZW50U291cmNlIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgcGx1Z2luIGV2ZW50IHNvdXJjZS5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdG8gY3JlYXRlIHRoZSBldmVudCBzb3VyY2UgZm9yLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBwbHVnaW46IFBsdWdpbkJhc2UpIHt9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBldmVudCBsaXN0ZW5lci5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBFdmVudE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEB0eXBlUGFyYW0gQXJndW1lbnRzIC0gVGhlIGFyZ3VtZW50cyBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gcmVtb3ZlLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBldmVudHMub2ZmKCdteS1ldmVudCcsIG15TGlzdGVuZXIpO1xuICAgKiBgYGBcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkdW1teSBwYXJhbWV0ZXIgdG8gZ2V0IHR5cGUgaW5mZXJlbmNlLlxuICBwdWJsaWMgb2ZmPEV2ZW50TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8UGx1Z2luRXZlbnRNYXA+LCBBcmd1bWVudHMgZXh0ZW5kcyBDYWxsYmFja0FyZ3VtZW50czxQbHVnaW5FdmVudE1hcCwgRXZlbnROYW1lPj4oXG4gICAgbmFtZTogRXZlbnROYW1lLFxuICAgIGNhbGxiYWNrOiAoLi4uJGFyZ3VtZW50czogQXJndW1lbnRzKSA9PiBQcm9taXNhYmxlPHZvaWQ+XG4gICk6IHZvaWQge1xuICAgIHRoaXMucGx1Z2luLm9mZihuYW1lLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGV2ZW50IGxpc3RlbmVyIGJ5IHJlZmVyZW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50UmVmIC0gVGhlIHJlZmVyZW5jZSB0byByZW1vdmUuXG4gICAqL1xuICBwdWJsaWMgb2ZmcmVmKGV2ZW50UmVmOiBBc3luY0V2ZW50UmVmKTogdm9pZCB7XG4gICAgdGhpcy5wbHVnaW4ub2ZmcmVmKGV2ZW50UmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gZXZlbnQgbGlzdGVuZXIuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gRXZlbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAdHlwZVBhcmFtIEFyZ3VtZW50cyAtIFRoZSBhcmd1bWVudHMgb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKiBAcGFyYW0gdGhpc0FyZ3VtZW50IC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAcmVtYXJrcyBOb3QgcmVmYWN0b3JlZCB0byBwYXJhbWV0ZXItb2JqZWN0IHBhdHRlcm4sIHRvIGtlZXAgdGhlIHBhcml0eSB3aXRoIHtAbGluayBvYnNpZGlhbiNFdmVudHMjb259IChvciBvbmNlLCBjb3JyZXNwb25kaW5nbHkpLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBldmVudHMub24oJ215LWV2ZW50JywgYXN5bmMgKGFyZzEsIGFyZzIpID0+IHtcbiAgICogICAgIGF3YWl0IHNsZWVwKDEwMCk7XG4gICAqICAgICBjb25zb2xlLmxvZyhhcmcxLCBhcmcyKTtcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMgLS0gV2UgbmVlZCB0byB1c2UgdGhlIGR1bW15IHBhcmFtZXRlciB0byBnZXQgdHlwZSBpbmZlcmVuY2UuXG4gIHB1YmxpYyBvbjxFdmVudE5hbWUgZXh0ZW5kcyBTdHJpbmdLZXlzPFBsdWdpbkV2ZW50TWFwPiwgQXJndW1lbnRzIGV4dGVuZHMgQ2FsbGJhY2tBcmd1bWVudHM8UGx1Z2luRXZlbnRNYXAsIEV2ZW50TmFtZT4+KFxuICAgIG5hbWU6IEV2ZW50TmFtZSxcbiAgICBjYWxsYmFjazogKC4uLiRhcmd1bWVudHM6IEFyZ3VtZW50cykgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgICB0aGlzQXJndW1lbnQ/OiB1bmtub3duXG4gICk6IEFzeW5jRXZlbnRSZWYge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbi5vbihuYW1lLCBjYWxsYmFjaywgdGhpc0FyZ3VtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gZXZlbnQgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIHRyaWdnZXJlZCBvbmx5IG9uY2UuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gRXZlbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAdHlwZVBhcmFtIEFyZ3VtZW50cyAtIFRoZSBhcmd1bWVudHMgb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKiBAcGFyYW0gdGhpc0FyZ3VtZW50IC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAcmVtYXJrcyBOb3QgcmVmYWN0b3JlZCB0byBwYXJhbWV0ZXItb2JqZWN0IHBhdHRlcm4sIHRvIGtlZXAgdGhlIHBhcml0eSB3aXRoIHtAbGluayBvYnNpZGlhbiNFdmVudHMjb259IChvciBvbmNlLCBjb3JyZXNwb25kaW5nbHkpLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBldmVudHMub25jZSgnbXktZXZlbnQnLCBhc3luYyAoYXJnMSwgYXJnMikgPT4ge1xuICAgKiAgICAgYXdhaXQgc2xlZXAoMTAwKTtcbiAgICogICAgIGNvbnNvbGUubG9nKGFyZzEsIGFyZzIpO1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyAtLSBXZSBuZWVkIHRvIHVzZSB0aGUgZHVtbXkgcGFyYW1ldGVyIHRvIGdldCB0eXBlIGluZmVyZW5jZS5cbiAgcHVibGljIG9uY2U8RXZlbnROYW1lIGV4dGVuZHMgU3RyaW5nS2V5czxQbHVnaW5FdmVudE1hcD4sIEFyZ3VtZW50cyBleHRlbmRzIENhbGxiYWNrQXJndW1lbnRzPFBsdWdpbkV2ZW50TWFwLCBFdmVudE5hbWU+PihcbiAgICBuYW1lOiBFdmVudE5hbWUsXG4gICAgY2FsbGJhY2s6ICguLi4kYXJndW1lbnRzOiBBcmd1bWVudHMpID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZ3VtZW50PzogdW5rbm93blxuICApOiBBc3luY0V2ZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy5wbHVnaW4ub25jZShuYW1lLCBjYWxsYmFjaywgdGhpc0FyZ3VtZW50KTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFrQ08sTUFBTSxzQkFBbUQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNdkQsWUFBK0IsUUFBb0I7QUFBcEI7QUFBQSxFQUFxQjtBQUFBLEVBQXJCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBZ0IvQixJQUNMLE1BQ0EsVUFDTTtBQUNOLFNBQUssT0FBTyxJQUFJLE1BQU0sUUFBUTtBQUFBLEVBQ2hDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sT0FBTyxVQUErQjtBQUMzQyxTQUFLLE9BQU8sT0FBTyxRQUFRO0FBQUEsRUFDN0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXVCTyxHQUNMLE1BQ0EsVUFDQSxjQUNlO0FBQ2YsV0FBTyxLQUFLLE9BQU8sR0FBRyxNQUFNLFVBQVUsWUFBWTtBQUFBLEVBQ3BEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUF1Qk8sS0FDTCxNQUNBLFVBQ0EsY0FDZTtBQUNmLFdBQU8sS0FBSyxPQUFPLEtBQUssTUFBTSxVQUFVLFlBQVk7QUFBQSxFQUN0RDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -34,6 +34,13 @@
|
|
|
34
34
|
import type { App, Plugin } from 'obsidian';
|
|
35
35
|
import { Component } from 'obsidian';
|
|
36
36
|
import type { PluginNoticeComponent } from '../components/plugin-notice-component.mjs';
|
|
37
|
+
/**
|
|
38
|
+
* The event `app.plugins` triggers after every enable, disable, install, uninstall and manifest reload.
|
|
39
|
+
*
|
|
40
|
+
* Read from Obsidian `1.15.1`: `didChange` triggers it debounced by one macrotask, so several changes in one
|
|
41
|
+
* task arrive as one event, after `enablePlugin` / `disablePlugin` returned.
|
|
42
|
+
*/
|
|
43
|
+
export declare const PLUGINS_CHANGED_EVENT_NAME = "changed";
|
|
37
44
|
/**
|
|
38
45
|
* Whether another plugin's instance can be used right now, and if not, why.
|
|
39
46
|
*/
|