@mnaoumov/obsidian-lib 10.11.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/README.md +26 -0
- package/components/all-windows-status-bar-item-component/package.json +6 -0
- package/components/shared-component-pool-component/package.json +6 -0
- package/components/worker-component/package.json +6 -0
- package/components/worker-pool-component/package.json +6 -0
- package/components/workspace-layout-state-component/package.json +6 -0
- package/dist/lib/cjs/__merged.cjs +477 -285
- package/dist/lib/cjs/__merged.d.cts +26 -10
- 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-diagnostics.cjs +222 -0
- package/dist/lib/cjs/bug-report-diagnostics.d.cts +186 -0
- package/dist/lib/cjs/bug-report.cjs +38 -12
- package/dist/lib/cjs/bug-report.d.cts +65 -0
- 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 +95 -4
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +34 -2
- 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 +245 -0
- package/dist/lib/cjs/components/all-windows-status-bar-item-component.d.cts +146 -0
- 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 +21 -4
- package/dist/lib/cjs/components/embed-extensions-component.d.cts +8 -0
- package/dist/lib/cjs/components/embeddable-markdown-editor-component.cjs +24 -10
- package/dist/lib/cjs/components/embeddable-markdown-editor-component.d.cts +9 -0
- 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 +54 -39
- package/dist/lib/cjs/components/index.d.cts +5 -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 +69 -36
- 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 +119 -18
- 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 +368 -0
- package/dist/lib/cjs/components/shared-component-pool-component.d.cts +129 -0
- 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 +495 -0
- package/dist/lib/cjs/components/workspace-layout-state-component.d.cts +239 -0
- 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/css-class.cjs +5 -1
- package/dist/lib/cjs/css-class.d.cts +16 -0
- package/dist/lib/cjs/data-handler.cjs +264 -6
- package/dist/lib/cjs/data-handler.d.cts +219 -2
- 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 +4 -14
- package/dist/lib/cjs/desktop-git-runner.d.cts +8 -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 +2 -2
- package/dist/lib/cjs/git-rename-history.cjs +1 -1
- package/dist/lib/cjs/git-rename-history.d.cts +2 -2
- 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 +27 -1
- package/dist/lib/cjs/i18n/locales/en.d.cts +26 -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 +26 -0
- package/dist/lib/cjs/index.cjs +147 -126
- package/dist/lib/cjs/index.d.cts +7 -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 +191 -3
- package/dist/lib/cjs/markdown-view.d.cts +48 -1
- 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 +181 -0
- package/dist/lib/cjs/modals/copy-text-manually.d.cts +38 -0
- package/dist/lib/cjs/modals/index.cjs +17 -11
- package/dist/lib/cjs/modals/index.d.cts +2 -0
- 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 +202 -0
- package/dist/lib/cjs/modals/review-bug-report-diagnostics.d.cts +30 -0
- 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 +18 -12
- package/dist/lib/cjs/plugin/index.d.cts +2 -0
- package/dist/lib/cjs/plugin/plugin-api.cjs +21 -12
- package/dist/lib/cjs/plugin/plugin-api.d.cts +5 -1
- 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 +49 -4
- package/dist/lib/cjs/plugin/plugin-install-state.d.cts +30 -0
- package/dist/lib/cjs/plugin/plugin-instance.cjs +450 -0
- package/dist/lib/cjs/plugin/plugin-instance.d.cts +258 -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 +133 -34
- package/dist/lib/cjs/plugin/plugin.d.cts +35 -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 +26 -10
- package/dist/lib/esm/__merged.mjs +215 -5
- 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/bug-report-diagnostics.d.mts +186 -0
- package/dist/lib/esm/bug-report-diagnostics.mjs +127 -0
- package/dist/lib/esm/bug-report.d.mts +65 -0
- package/dist/lib/esm/bug-report.mjs +33 -10
- 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/command-handlers/open-bug-report-command-handler.d.mts +34 -2
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +99 -3
- package/dist/lib/esm/components/all-windows-status-bar-item-component.d.mts +146 -0
- package/dist/lib/esm/components/all-windows-status-bar-item-component.mjs +154 -0
- 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/embed-extensions-component.d.mts +8 -0
- package/dist/lib/esm/components/embed-extensions-component.mjs +20 -3
- package/dist/lib/esm/components/embeddable-markdown-editor-component.d.mts +9 -0
- package/dist/lib/esm/components/embeddable-markdown-editor-component.mjs +16 -2
- package/dist/lib/esm/components/index.d.mts +5 -0
- package/dist/lib/esm/components/index.mjs +12 -2
- package/dist/lib/esm/components/plugin-gate-component.d.mts +36 -13
- package/dist/lib/esm/components/plugin-gate-component.mjs +61 -26
- 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 +105 -4
- package/dist/lib/esm/components/rename-delete-handler-component.mjs +2 -2
- package/dist/lib/esm/components/shared-component-pool-component.d.mts +129 -0
- package/dist/lib/esm/components/shared-component-pool-component.mjs +280 -0
- 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.d.mts +239 -0
- package/dist/lib/esm/components/workspace-layout-state-component.mjs +404 -0
- package/dist/lib/esm/css-class.d.mts +16 -0
- package/dist/lib/esm/css-class.mjs +5 -1
- package/dist/lib/esm/data-handler.d.mts +219 -2
- package/dist/lib/esm/data-handler.mjs +262 -5
- 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-git-runner.d.mts +8 -2
- package/dist/lib/esm/desktop-git-runner.mjs +3 -3
- 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 +2 -2
- package/dist/lib/esm/git-rename-history.d.mts +2 -2
- package/dist/lib/esm/git-rename-history.mjs +1 -1
- package/dist/lib/esm/i18n/locales/en.d.mts +26 -0
- package/dist/lib/esm/i18n/locales/en.mjs +27 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +26 -0
- package/dist/lib/esm/index.d.mts +7 -0
- package/dist/lib/esm/index.mjs +15 -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/markdown-view.d.mts +48 -1
- package/dist/lib/esm/markdown-view.mjs +192 -2
- 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/copy-text-manually.d.mts +38 -0
- package/dist/lib/esm/modals/copy-text-manually.mjs +99 -0
- package/dist/lib/esm/modals/index.d.mts +2 -0
- package/dist/lib/esm/modals/index.mjs +5 -1
- package/dist/lib/esm/modals/prompt.d.mts +1 -1
- package/dist/lib/esm/modals/prompt.mjs +1 -1
- package/dist/lib/esm/modals/review-bug-report-diagnostics.d.mts +30 -0
- package/dist/lib/esm/modals/review-bug-report-diagnostics.mjs +120 -0
- 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 +2 -0
- package/dist/lib/esm/plugin/index.mjs +6 -2
- package/dist/lib/esm/plugin/plugin-api.d.mts +5 -1
- package/dist/lib/esm/plugin/plugin-api.mjs +13 -4
- 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-install-state.d.mts +30 -0
- package/dist/lib/esm/plugin/plugin-install-state.mjs +44 -1
- package/dist/lib/esm/plugin/plugin-instance.d.mts +258 -0
- package/dist/lib/esm/plugin/plugin-instance.mjs +367 -0
- 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 +35 -5
- package/dist/lib/esm/plugin/plugin.mjs +118 -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/dist/styles.css +16 -1
- package/modals/copy-text-manually/package.json +6 -0
- package/modals/review-bug-report-diagnostics/package.json +6 -0
- package/package.json +10 -8
- package/plugin/plugin-instance/package.json +6 -0
- package/plugin/third-party-plugin/package.json +6 -0
|
@@ -117,9 +117,9 @@ __export(typed_text_component_exports, {
|
|
|
117
117
|
TypedTextComponent: () => TypedTextComponent
|
|
118
118
|
});
|
|
119
119
|
module.exports = __toCommonJS(typed_text_component_exports);
|
|
120
|
-
var import_obsidian = require(
|
|
121
|
-
var import_css_class = require(
|
|
122
|
-
var import_plugin_context = require(
|
|
120
|
+
var import_obsidian = require("obsidian");
|
|
121
|
+
var import_css_class = require("../css-class.cjs");
|
|
122
|
+
var import_plugin_context = require("../plugin/plugin-context.cjs");
|
|
123
123
|
class TypedTextComponent extends import_obsidian.ValueComponent {
|
|
124
124
|
/**
|
|
125
125
|
* An input element of the component.
|
|
@@ -90,8 +90,8 @@ __export(url_component_exports, {
|
|
|
90
90
|
UrlComponent: () => UrlComponent
|
|
91
91
|
});
|
|
92
92
|
module.exports = __toCommonJS(url_component_exports);
|
|
93
|
-
var import_css_class = require(
|
|
94
|
-
var import_typed_text_component = require(
|
|
93
|
+
var import_css_class = require("../css-class.cjs");
|
|
94
|
+
var import_typed_text_component = require("./typed-text-component.cjs");
|
|
95
95
|
class UrlComponent extends import_typed_text_component.TypedTextComponent {
|
|
96
96
|
/**
|
|
97
97
|
* Creates a new Url component.
|
|
@@ -117,10 +117,10 @@ __export(validator_component_exports, {
|
|
|
117
117
|
getValidatorComponent: () => getValidatorComponent
|
|
118
118
|
});
|
|
119
119
|
module.exports = __toCommonJS(validator_component_exports);
|
|
120
|
-
var import_obsidian = require(
|
|
121
|
-
var import_css_class = require(
|
|
122
|
-
var import_plugin_context = require(
|
|
123
|
-
var import_setting_component_wrapper = require(
|
|
120
|
+
var import_obsidian = require("obsidian");
|
|
121
|
+
var import_css_class = require("../css-class.cjs");
|
|
122
|
+
var import_plugin_context = require("../plugin/plugin-context.cjs");
|
|
123
|
+
var import_setting_component_wrapper = require("./setting-component-wrapper.cjs");
|
|
124
124
|
class OverlayValidatorComponent {
|
|
125
125
|
constructor(element) {
|
|
126
126
|
this.element = element;
|
|
@@ -117,10 +117,10 @@ __export(week_component_exports, {
|
|
|
117
117
|
WeekComponent: () => WeekComponent
|
|
118
118
|
});
|
|
119
119
|
module.exports = __toCommonJS(week_component_exports);
|
|
120
|
-
var import_object_utils = require(
|
|
121
|
-
var import_obsidian = require(
|
|
122
|
-
var import_css_class = require(
|
|
123
|
-
var import_typed_range_text_component = require(
|
|
120
|
+
var import_object_utils = require("@mnaoumov/typescript-lib/object-utils");
|
|
121
|
+
var import_obsidian = require("obsidian");
|
|
122
|
+
var import_css_class = require("../css-class.cjs");
|
|
123
|
+
var import_typed_range_text_component = require("./typed-range-text-component.cjs");
|
|
124
124
|
const moment = (0, import_object_utils.extractDefaultExportInterop)(import_obsidian.moment);
|
|
125
125
|
const DATE_FORMAT = "YYYY-[W]WW";
|
|
126
126
|
class WeekComponent extends import_typed_range_text_component.TypedRangeTextComponent {
|
|
@@ -118,32 +118,32 @@ __export(setting_ex_exports, {
|
|
|
118
118
|
adoptSettingEx: () => adoptSettingEx
|
|
119
119
|
});
|
|
120
120
|
module.exports = __toCommonJS(setting_ex_exports);
|
|
121
|
-
var import_object_utils = require(
|
|
122
|
-
var import_obsidian = require(
|
|
123
|
-
var import_checkbox_component = require(
|
|
124
|
-
var import_code_highlighter_component = require(
|
|
125
|
-
var import_date_component = require(
|
|
126
|
-
var import_date_time_component = require(
|
|
127
|
-
var import_email_component = require(
|
|
128
|
-
var import_file_component = require(
|
|
129
|
-
var import_folder_list_component = require(
|
|
130
|
-
var import_hotkey_component = require(
|
|
131
|
-
var import_list_component = require(
|
|
132
|
-
var import_month_component = require(
|
|
133
|
-
var import_multiple_dropdown_component = require(
|
|
134
|
-
var import_multiple_email_component = require(
|
|
135
|
-
var import_multiple_file_component = require(
|
|
136
|
-
var import_multiple_text_component = require(
|
|
137
|
-
var import_number_component = require(
|
|
138
|
-
var import_password_component = require(
|
|
139
|
-
var import_tag_list_component = require(
|
|
140
|
-
var import_telephone_component = require(
|
|
141
|
-
var import_time_component = require(
|
|
142
|
-
var import_tri_state_checkbox_component = require(
|
|
143
|
-
var import_typed_dropdown_component = require(
|
|
144
|
-
var import_typed_multiple_dropdown_component = require(
|
|
145
|
-
var import_url_component = require(
|
|
146
|
-
var import_week_component = require(
|
|
121
|
+
var import_object_utils = require("@mnaoumov/typescript-lib/object-utils");
|
|
122
|
+
var import_obsidian = require("obsidian");
|
|
123
|
+
var import_checkbox_component = require("./setting-components/checkbox-component.cjs");
|
|
124
|
+
var import_code_highlighter_component = require("./setting-components/code-highlighter-component.cjs");
|
|
125
|
+
var import_date_component = require("./setting-components/date-component.cjs");
|
|
126
|
+
var import_date_time_component = require("./setting-components/date-time-component.cjs");
|
|
127
|
+
var import_email_component = require("./setting-components/email-component.cjs");
|
|
128
|
+
var import_file_component = require("./setting-components/file-component.cjs");
|
|
129
|
+
var import_folder_list_component = require("./setting-components/folder-list-component.cjs");
|
|
130
|
+
var import_hotkey_component = require("./setting-components/hotkey-component.cjs");
|
|
131
|
+
var import_list_component = require("./setting-components/list-component.cjs");
|
|
132
|
+
var import_month_component = require("./setting-components/month-component.cjs");
|
|
133
|
+
var import_multiple_dropdown_component = require("./setting-components/multiple-dropdown-component.cjs");
|
|
134
|
+
var import_multiple_email_component = require("./setting-components/multiple-email-component.cjs");
|
|
135
|
+
var import_multiple_file_component = require("./setting-components/multiple-file-component.cjs");
|
|
136
|
+
var import_multiple_text_component = require("./setting-components/multiple-text-component.cjs");
|
|
137
|
+
var import_number_component = require("./setting-components/number-component.cjs");
|
|
138
|
+
var import_password_component = require("./setting-components/password-component.cjs");
|
|
139
|
+
var import_tag_list_component = require("./setting-components/tag-list-component.cjs");
|
|
140
|
+
var import_telephone_component = require("./setting-components/telephone-component.cjs");
|
|
141
|
+
var import_time_component = require("./setting-components/time-component.cjs");
|
|
142
|
+
var import_tri_state_checkbox_component = require("./setting-components/tri-state-checkbox-component.cjs");
|
|
143
|
+
var import_typed_dropdown_component = require("./setting-components/typed-dropdown-component.cjs");
|
|
144
|
+
var import_typed_multiple_dropdown_component = require("./setting-components/typed-multiple-dropdown-component.cjs");
|
|
145
|
+
var import_url_component = require("./setting-components/url-component.cjs");
|
|
146
|
+
var import_week_component = require("./setting-components/week-component.cjs");
|
|
147
147
|
class SettingEx extends import_obsidian.Setting {
|
|
148
148
|
/**
|
|
149
149
|
* Adds a {@link CheckboxComponent} to the setting.
|
|
@@ -117,8 +117,8 @@ __export(setting_group_ex_exports, {
|
|
|
117
117
|
SettingGroupEx: () => SettingGroupEx
|
|
118
118
|
});
|
|
119
119
|
module.exports = __toCommonJS(setting_group_ex_exports);
|
|
120
|
-
var import_obsidian = require(
|
|
121
|
-
var import_setting_ex = require(
|
|
120
|
+
var import_obsidian = require("obsidian");
|
|
121
|
+
var import_setting_ex = require("./setting-ex.cjs");
|
|
122
122
|
class SettingGroupEx extends import_obsidian.SettingGroup {
|
|
123
123
|
/**
|
|
124
124
|
* Creates a new setting group.
|
|
@@ -0,0 +1,217 @@
|
|
|
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 patchObsidianRequire() {
|
|
6
|
+
const originalRequire = require;
|
|
7
|
+
if (!originalRequire || originalRequire.__isPatched) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
require = Object.assign(
|
|
11
|
+
(id) => requirePatched(id),
|
|
12
|
+
originalRequire,
|
|
13
|
+
{
|
|
14
|
+
__isPatched: true
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
function extractDefault($module) {
|
|
18
|
+
return $module && $module.__esModule && "default" in $module ? $module.default : $module;
|
|
19
|
+
}
|
|
20
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
21
|
+
"@codemirror/autocomplete",
|
|
22
|
+
"@codemirror/collab",
|
|
23
|
+
"@codemirror/commands",
|
|
24
|
+
"@codemirror/language",
|
|
25
|
+
"@codemirror/lint",
|
|
26
|
+
"@codemirror/search",
|
|
27
|
+
"@codemirror/state",
|
|
28
|
+
"@codemirror/text",
|
|
29
|
+
"@codemirror/view",
|
|
30
|
+
"@lezer/common",
|
|
31
|
+
"@lezer/highlight",
|
|
32
|
+
"@lezer/lr",
|
|
33
|
+
"obsidian"
|
|
34
|
+
]);
|
|
35
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
36
|
+
"@codemirror/closebrackets",
|
|
37
|
+
"@codemirror/comment",
|
|
38
|
+
"@codemirror/fold",
|
|
39
|
+
"@codemirror/gutter",
|
|
40
|
+
"@codemirror/highlight",
|
|
41
|
+
"@codemirror/history",
|
|
42
|
+
"@codemirror/matchbrackets",
|
|
43
|
+
"@codemirror/panel",
|
|
44
|
+
"@codemirror/rangeset",
|
|
45
|
+
"@codemirror/rectangular-selection",
|
|
46
|
+
"@codemirror/stream-parser",
|
|
47
|
+
"@codemirror/tooltip"
|
|
48
|
+
]);
|
|
49
|
+
function requirePatched(id) {
|
|
50
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
51
|
+
return originalRequire?.(id);
|
|
52
|
+
}
|
|
53
|
+
const app = globalThis.app;
|
|
54
|
+
if (app?.isMobile) {
|
|
55
|
+
if (id === "process" || id === "node:process") {
|
|
56
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
57
|
+
return process;
|
|
58
|
+
}
|
|
59
|
+
} else {
|
|
60
|
+
const $module = originalRequire?.(id);
|
|
61
|
+
if ($module) {
|
|
62
|
+
return extractDefault($module);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
66
|
+
return {};
|
|
67
|
+
}
|
|
68
|
+
})();
|
|
69
|
+
|
|
70
|
+
"use strict";
|
|
71
|
+
var __defProp = Object.defineProperty;
|
|
72
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
73
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
74
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
75
|
+
var __export = (target, all) => {
|
|
76
|
+
for (var name in all)
|
|
77
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
78
|
+
};
|
|
79
|
+
var __copyProps = (to, from, except, desc) => {
|
|
80
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
81
|
+
for (let key of __getOwnPropNames(from))
|
|
82
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
83
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
84
|
+
}
|
|
85
|
+
return to;
|
|
86
|
+
};
|
|
87
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
88
|
+
var settings_recovery_exports = {};
|
|
89
|
+
__export(settings_recovery_exports, {
|
|
90
|
+
DEFAULT_MAX_SETTINGS_RECOVERY_COPIES: () => DEFAULT_MAX_SETTINGS_RECOVERY_COPIES,
|
|
91
|
+
LocalSettingsRecoveryStore: () => LocalSettingsRecoveryStore,
|
|
92
|
+
SETTINGS_RECOVERY_STORE_ID: () => SETTINGS_RECOVERY_STORE_ID,
|
|
93
|
+
SettingsRecoveryReason: () => SettingsRecoveryReason,
|
|
94
|
+
isSettingsRecoveryCopy: () => isSettingsRecoveryCopy
|
|
95
|
+
});
|
|
96
|
+
module.exports = __toCommonJS(settings_recovery_exports);
|
|
97
|
+
var import_local_data_store = require("./data-stores/local-data-store.cjs");
|
|
98
|
+
const DEFAULT_MAX_SETTINGS_RECOVERY_COPIES = 5;
|
|
99
|
+
const SETTINGS_RECOVERY_STORE_ID = "settings-recovery-v1";
|
|
100
|
+
var SettingsRecoveryReason = /* @__PURE__ */ ((SettingsRecoveryReason2) => {
|
|
101
|
+
SettingsRecoveryReason2["InvalidJson"] = "invalid-json";
|
|
102
|
+
SettingsRecoveryReason2["LossyRewrite"] = "lossy-rewrite";
|
|
103
|
+
return SettingsRecoveryReason2;
|
|
104
|
+
})(SettingsRecoveryReason || {});
|
|
105
|
+
class LocalSettingsRecoveryStore {
|
|
106
|
+
factory;
|
|
107
|
+
maxCopies;
|
|
108
|
+
now;
|
|
109
|
+
pluginId;
|
|
110
|
+
vaultId;
|
|
111
|
+
/**
|
|
112
|
+
* Creates a new store.
|
|
113
|
+
*
|
|
114
|
+
* @param params - The constructor parameters.
|
|
115
|
+
*/
|
|
116
|
+
constructor(params) {
|
|
117
|
+
const maxCopies = params.maxCopies ?? DEFAULT_MAX_SETTINGS_RECOVERY_COPIES;
|
|
118
|
+
if (!Number.isSafeInteger(maxCopies) || maxCopies < 1) {
|
|
119
|
+
throw new RangeError(`maxCopies must be a positive integer, got ${String(maxCopies)}.`);
|
|
120
|
+
}
|
|
121
|
+
this.factory = params.factory;
|
|
122
|
+
this.maxCopies = maxCopies;
|
|
123
|
+
this.now = params.now ?? Date.now;
|
|
124
|
+
this.pluginId = params.pluginId;
|
|
125
|
+
this.vaultId = params.app.appId;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Keeps a copy, dropping the oldest ones beyond the limit in the same transaction.
|
|
129
|
+
*
|
|
130
|
+
* @param params - What to keep.
|
|
131
|
+
* @returns The kept copy, or the already kept one with the same raw text.
|
|
132
|
+
*/
|
|
133
|
+
// eslint-disable-next-line typescript-dev-toolkit/params-options-name-match -- Implements SettingsRecoveryStore.keep, whose params type it shares.
|
|
134
|
+
async keep(params) {
|
|
135
|
+
return await this.withStore(async (store) => {
|
|
136
|
+
const copies = readCopies(await store.entries());
|
|
137
|
+
const duplicate = copies.find((copy2) => copy2.rawText === params.rawText);
|
|
138
|
+
if (duplicate) {
|
|
139
|
+
return duplicate;
|
|
140
|
+
}
|
|
141
|
+
const keptAt = this.now();
|
|
142
|
+
const copy = {
|
|
143
|
+
id: createCopyId(keptAt, copies),
|
|
144
|
+
keptAt,
|
|
145
|
+
path: params.path,
|
|
146
|
+
rawText: params.rawText,
|
|
147
|
+
reason: params.reason
|
|
148
|
+
};
|
|
149
|
+
const removedKeys = copies.slice(this.maxCopies - 1).map((oldCopy) => oldCopy.id);
|
|
150
|
+
await store.commit({ entries: [[copy.id, copy]], removedKeys });
|
|
151
|
+
return copy;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Lists the kept copies.
|
|
156
|
+
*
|
|
157
|
+
* @returns The copies, newest first.
|
|
158
|
+
*/
|
|
159
|
+
async list() {
|
|
160
|
+
return await this.withStore(async (store) => readCopies(await store.entries()));
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Removes a kept copy.
|
|
164
|
+
*
|
|
165
|
+
* @param id - The copy's id.
|
|
166
|
+
* @returns A promise that resolves when the copy is removed.
|
|
167
|
+
*/
|
|
168
|
+
async remove(id) {
|
|
169
|
+
await this.withStore(async (store) => {
|
|
170
|
+
await store.delete(id);
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
async withStore(action) {
|
|
174
|
+
const store = await import_local_data_store.LocalDataStore.open({
|
|
175
|
+
...this.factory && { factory: this.factory },
|
|
176
|
+
pluginId: this.pluginId,
|
|
177
|
+
storeId: SETTINGS_RECOVERY_STORE_ID,
|
|
178
|
+
vaultId: this.vaultId
|
|
179
|
+
});
|
|
180
|
+
try {
|
|
181
|
+
return await action(store);
|
|
182
|
+
} finally {
|
|
183
|
+
store.close();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function isSettingsRecoveryCopy(value) {
|
|
188
|
+
if (typeof value !== "object" || value === null) {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
const record = value;
|
|
192
|
+
return typeof record.id === "string" && typeof record.keptAt === "number" && typeof record.path === "string" && typeof record.rawText === "string" && (record.reason === "invalid-json" /* InvalidJson */ || record.reason === "lossy-rewrite" /* LossyRewrite */);
|
|
193
|
+
}
|
|
194
|
+
function compareNewestFirst(a, b) {
|
|
195
|
+
return b.keptAt - a.keptAt || b.id.localeCompare(a.id);
|
|
196
|
+
}
|
|
197
|
+
function createCopyId(keptAt, copies) {
|
|
198
|
+
const ids = new Set(copies.map((copy) => copy.id));
|
|
199
|
+
const base = new Date(keptAt).toISOString();
|
|
200
|
+
let id = base;
|
|
201
|
+
for (let suffix = 1; ids.has(id); suffix++) {
|
|
202
|
+
id = `${base}-${String(suffix)}`;
|
|
203
|
+
}
|
|
204
|
+
return id;
|
|
205
|
+
}
|
|
206
|
+
function readCopies(entries) {
|
|
207
|
+
return entries.map(([, value]) => value).filter(isSettingsRecoveryCopy).sort(compareNewestFirst);
|
|
208
|
+
}
|
|
209
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
210
|
+
0 && (module.exports = {
|
|
211
|
+
DEFAULT_MAX_SETTINGS_RECOVERY_COPIES,
|
|
212
|
+
LocalSettingsRecoveryStore,
|
|
213
|
+
SETTINGS_RECOVERY_STORE_ID,
|
|
214
|
+
SettingsRecoveryReason,
|
|
215
|
+
isSettingsRecoveryCopy
|
|
216
|
+
});
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXR0aW5ncy1yZWNvdmVyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogRGV2aWNlLWxvY2FsIHJlY292ZXJ5IGNvcGllcyBvZiBhIHBsdWdpbidzIGBkYXRhLmpzb25gLCBrZXB0IEJFRk9SRSBhbnl0aGluZyBjb3VsZCBsb3NlIHdoYXQgdGhlIGZpbGUgaGVsZC5cbiAqXG4gKiBUd28gY2FzZXMgbG9zZSBhIHVzZXIncyBzZXR0aW5ncyBmb3IgZ29vZCB3aXRob3V0IG9uZS4gQSBgZGF0YS5qc29uYCB0aGF0IGRvZXMgbm90IHBhcnNlICh0cnVuY2F0ZWQgYnkgYSBzeW5jIHRvb2wsXG4gKiBhIGNyYXNoIG1pZC13cml0ZSwgYSBoYW5kIGVkaXQpIHJlYWRzIGFzIG1pc3NpbmcsIGJlY2F1c2UgT2JzaWRpYW4ncyBgVmF1bHQucmVhZEpzb25gIHN3YWxsb3dzIHRoZSBwYXJzZSBlcnJvclxuICogKHJlYWQgZnJvbSBgMS4xNS4xYCk7IGFuZCBhIHJlY29yZCB0aGF0IHBhcnNlcyBidXQgaG9sZHMgdmFsdWVzIHRoZSBwbHVnaW4gZHJvcHMgb3IgcmV3cml0ZXMgKGFuIHVua25vd24ga2V5IGZyb20gYVxuICogbmV3ZXIgcGx1Z2luIHZlcnNpb24sIGEgbGVnYWN5IG1pZ3JhdGlvbikgaXMgbm9ybWFsaXplZCBhbmQgc2F2ZWQgYmFjayBvdmVyIHRoZSBmaWxlIG9uIHRoZSBpbml0aWFsIGxvYWQuIEEgY29weSBvZlxuICogdGhlIHJhdyB0ZXh0IGlzIGtlcHQgZmlyc3QsIGluIGEge0BsaW5rIExvY2FsRGF0YVN0b3JlfSwgc28gbm8gc3luYyB0b29sIGNhcnJpZXMgaXQgdG8gb3RoZXIgZGV2aWNlcyBhbmQgbm90aGluZyBpc1xuICogYWRkZWQgdG8gdGhlIHZhdWx0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBMb2NhbERhdGFTdG9yZSB9IGZyb20gJy4vZGF0YS1zdG9yZXMvbG9jYWwtZGF0YS1zdG9yZS50cyc7XG5cbi8qKlxuICogSG93IG1hbnkgcmVjb3ZlcnkgY29waWVzIGEge0BsaW5rIExvY2FsU2V0dGluZ3NSZWNvdmVyeVN0b3JlfSBrZWVwcyBwZXIgcGx1Z2luIGJ5IGRlZmF1bHQuIFRoZSBvbGRlc3QgaXMgZHJvcHBlZFxuICogZmlyc3QuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9TRVRUSU5HU19SRUNPVkVSWV9DT1BJRVMgPSA1O1xuXG4vKipcbiAqIFRoZSB7QGxpbmsgTG9jYWxEYXRhU3RvcmV9IHN0b3JlIGlkIHRoZSByZWNvdmVyeSBjb3BpZXMgbGl2ZSB1bmRlci4gVGhlIGAtdjFgIG5hbWVzIHRoZSByZWNvcmQgc2hhcGUgYmVsb3cuXG4gKi9cbmV4cG9ydCBjb25zdCBTRVRUSU5HU19SRUNPVkVSWV9TVE9SRV9JRCA9ICdzZXR0aW5ncy1yZWNvdmVyeS12MSc7XG5cbi8qKlxuICogV2h5IGEgcmVjb3ZlcnkgY29weSB3YXMga2VwdC5cbiAqL1xuZXhwb3J0IGVudW0gU2V0dGluZ3NSZWNvdmVyeVJlYXNvbiB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSBkaWQgbm90IHBhcnNlIGFzIEpTT04sIHNvIGl0IGNvdWxkIG5vdCBiZSBsb2FkZWQgYXQgYWxsLlxuICAgKi9cbiAgSW52YWxpZEpzb24gPSAnaW52YWxpZC1qc29uJyxcblxuICAvKipcbiAgICogVGhlIGZpbGUgcGFyc2VkLCBidXQgc2F2aW5nIHRoZSBub3JtYWxpemVkIHNldHRpbmdzIHdvdWxkIGhhdmUgZHJvcHBlZCBvciBjaGFuZ2VkIGEgc3RvcmVkIHZhbHVlLlxuICAgKi9cbiAgTG9zc3lSZXdyaXRlID0gJ2xvc3N5LXJld3JpdGUnXG59XG5cbi8qKlxuICogQ29uc3RydWN0b3IgcGFyYW1ldGVycyBmb3Ige0BsaW5rIExvY2FsU2V0dGluZ3NSZWNvdmVyeVN0b3JlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbFNldHRpbmdzUmVjb3ZlcnlTdG9yZUNvbnN0cnVjdG9yUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHA7IGl0cyBkZXZpY2UtbG9jYWwgYGFwcElkYCBzY29wZXMgdGhlIHN0b3JlIHRvIHRoaXMgdmF1bHQuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogSW5kZXhlZERCIGltcGxlbWVudGF0aW9uLCBpbmplY3RhYmxlIGZvciB0ZXN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGZhY3Rvcnk/OiBJREJGYWN0b3J5O1xuXG4gIC8qKlxuICAgKiBIb3cgbWFueSBjb3BpZXMgdG8ga2VlcC4gRGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfTUFYX1NFVFRJTkdTX1JFQ09WRVJZX0NPUElFU30uXG4gICAqL1xuICByZWFkb25seSBtYXhDb3BpZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjbG9jaywgaW5qZWN0YWJsZSBmb3IgdGVzdHMuIERlZmF1bHRzIHRvIHtAbGluayBEYXRlLm5vd30uXG4gICAqL1xuICByZWFkb25seSBub3c/OiAoKSA9PiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBgbWFuaWZlc3QuaWRgIG9mIHRoZSBwbHVnaW4uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9uZSBrZXB0IGNvcHkgb2YgYSBwbHVnaW4ncyBgZGF0YS5qc29uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXR0aW5nc1JlY292ZXJ5Q29weSB7XG4gIC8qKlxuICAgKiBUaGUgY29weSdzIGlkLCB1bmlxdWUgd2l0aGluIHRoZSBwbHVnaW4ncyBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIGNvcHkgd2FzIGtlcHQsIGluIG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgVW5peCBlcG9jaC5cbiAgICovXG4gIHJlYWRvbmx5IGtlcHRBdDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgZmlsZSB0aGUgY29weSB3YXMgdGFrZW4gZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZpbGUncyByYXcgdGV4dCwgYnl0ZSBmb3IgYnl0ZSBhcyBpdCB3YXMgcmVhZC5cbiAgICovXG4gIHJlYWRvbmx5IHJhd1RleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogV2h5IHRoZSBjb3B5IHdhcyBrZXB0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVhc29uOiBTZXR0aW5nc1JlY292ZXJ5UmVhc29uO1xufVxuXG4vKipcbiAqIFdoZXJlIHJlY292ZXJ5IGNvcGllcyBvZiBhIHBsdWdpbidzIGBkYXRhLmpzb25gIGFyZSBrZXB0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHRpbmdzUmVjb3ZlcnlTdG9yZSB7XG4gIC8qKlxuICAgKiBLZWVwcyBhIGNvcHkuIEEgY29weSB3aG9zZSByYXcgdGV4dCBpcyBhbHJlYWR5IGtlcHQgaXMgbm90IGR1cGxpY2F0ZWQ7IHRoZSBleGlzdGluZyBvbmUgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBXaGF0IHRvIGtlZXAuXG4gICAqIEByZXR1cm5zIFRoZSBrZXB0IGNvcHkuXG4gICAqL1xuICByZWFkb25seSBrZWVwOiAocGFyYW1zOiBTZXR0aW5nc1JlY292ZXJ5U3RvcmVLZWVwUGFyYW1zKSA9PiBQcm9taXNlPFNldHRpbmdzUmVjb3ZlcnlDb3B5PjtcblxuICAvKipcbiAgICogTGlzdHMgdGhlIGtlcHQgY29waWVzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgY29waWVzLCBuZXdlc3QgZmlyc3QuXG4gICAqL1xuICByZWFkb25seSBsaXN0OiAoKSA9PiBQcm9taXNlPFNldHRpbmdzUmVjb3ZlcnlDb3B5W10+O1xuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEga2VwdCBjb3B5LiBSZW1vdmluZyBhbiBpZCB0aGF0IGlzIG5vdCBrZXB0IGRvZXMgbm90aGluZy5cbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIGNvcHkncyBpZC5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29weSBpcyByZW1vdmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlOiAoaWQ6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgU2V0dGluZ3NSZWNvdmVyeVN0b3JlLmtlZXB9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHRpbmdzUmVjb3ZlcnlTdG9yZUtlZXBQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGZpbGUgdGhlIGNvcHkgd2FzIHRha2VuIGZyb20uXG4gICAqL1xuICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlJ3MgcmF3IHRleHQsIGJ5dGUgZm9yIGJ5dGUgYXMgaXQgd2FzIHJlYWQuXG4gICAqL1xuICByZWFkb25seSByYXdUZXh0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoeSB0aGUgY29weSBpcyBrZXB0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVhc29uOiBTZXR0aW5nc1JlY292ZXJ5UmVhc29uO1xufVxuXG4vKipcbiAqIEEge0BsaW5rIFNldHRpbmdzUmVjb3ZlcnlTdG9yZX0gaW4gYSBkZXZpY2UtbG9jYWwge0BsaW5rIExvY2FsRGF0YVN0b3JlfSwga2VlcGluZyB0aGUgbmV3ZXN0IGZldyBjb3BpZXMuXG4gKlxuICogSXQgb3BlbnMgaXRzIGRhdGFiYXNlIHBlciBjYWxsIGFuZCBjbG9zZXMgaXQgYWdhaW46IGNvcGllcyBhcmUga2VwdCBhbmQgcmVhZCByYXJlbHkgKGEgbG9hZCB0aGF0IGZvdW5kIGEgZGFtYWdlZFxuICogZmlsZSwgYSBsb3NzeSBmaXJzdCBzYXZlLCB0aGUgdXNlciBhc2tpbmcgZm9yIHRoZSBsaXN0KSwgc28gaG9sZGluZyBhIGNvbm5lY3Rpb24gZm9yIHRoZSBwbHVnaW4ncyBsaWZldGltZSB3b3VsZFxuICogb25seSBhZGQgYSByZXNvdXJjZSB0byB0aWUgdG8gYW4gdW5sb2FkLlxuICovXG5leHBvcnQgY2xhc3MgTG9jYWxTZXR0aW5nc1JlY292ZXJ5U3RvcmUgaW1wbGVtZW50cyBTZXR0aW5nc1JlY292ZXJ5U3RvcmUge1xuICBwcml2YXRlIHJlYWRvbmx5IGZhY3Rvcnk6IElEQkZhY3RvcnkgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4Q29waWVzOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm93OiAoKSA9PiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB2YXVsdElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgc3RvcmUuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgY29uc3RydWN0b3IgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IExvY2FsU2V0dGluZ3NSZWNvdmVyeVN0b3JlQ29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICBjb25zdCBtYXhDb3BpZXMgPSBwYXJhbXMubWF4Q29waWVzID8/IERFRkFVTFRfTUFYX1NFVFRJTkdTX1JFQ09WRVJZX0NPUElFUztcbiAgICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKG1heENvcGllcykgfHwgbWF4Q29waWVzIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoYG1heENvcGllcyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgZ290ICR7U3RyaW5nKG1heENvcGllcyl9LmApO1xuICAgIH1cbiAgICB0aGlzLmZhY3RvcnkgPSBwYXJhbXMuZmFjdG9yeTtcbiAgICB0aGlzLm1heENvcGllcyA9IG1heENvcGllcztcbiAgICB0aGlzLm5vdyA9IHBhcmFtcy5ub3cgPz8gRGF0ZS5ub3c7XG4gICAgdGhpcy5wbHVnaW5JZCA9IHBhcmFtcy5wbHVnaW5JZDtcbiAgICB0aGlzLnZhdWx0SWQgPSBwYXJhbXMuYXBwLmFwcElkO1xuICB9XG5cbiAgLyoqXG4gICAqIEtlZXBzIGEgY29weSwgZHJvcHBpbmcgdGhlIG9sZGVzdCBvbmVzIGJleW9uZCB0aGUgbGltaXQgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBXaGF0IHRvIGtlZXAuXG4gICAqIEByZXR1cm5zIFRoZSBrZXB0IGNvcHksIG9yIHRoZSBhbHJlYWR5IGtlcHQgb25lIHdpdGggdGhlIHNhbWUgcmF3IHRleHQuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9wYXJhbXMtb3B0aW9ucy1uYW1lLW1hdGNoIC0tIEltcGxlbWVudHMgU2V0dGluZ3NSZWNvdmVyeVN0b3JlLmtlZXAsIHdob3NlIHBhcmFtcyB0eXBlIGl0IHNoYXJlcy5cbiAgcHVibGljIGFzeW5jIGtlZXAocGFyYW1zOiBTZXR0aW5nc1JlY292ZXJ5U3RvcmVLZWVwUGFyYW1zKTogUHJvbWlzZTxTZXR0aW5nc1JlY292ZXJ5Q29weT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLndpdGhTdG9yZShhc3luYyAoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IGNvcGllcyA9IHJlYWRDb3BpZXMoYXdhaXQgc3RvcmUuZW50cmllcygpKTtcbiAgICAgIGNvbnN0IGR1cGxpY2F0ZSA9IGNvcGllcy5maW5kKChjb3B5KSA9PiBjb3B5LnJhd1RleHQgPT09IHBhcmFtcy5yYXdUZXh0KTtcbiAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgcmV0dXJuIGR1cGxpY2F0ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qga2VwdEF0ID0gdGhpcy5ub3coKTtcbiAgICAgIGNvbnN0IGNvcHk6IFNldHRpbmdzUmVjb3ZlcnlDb3B5ID0ge1xuICAgICAgICBpZDogY3JlYXRlQ29weUlkKGtlcHRBdCwgY29waWVzKSxcbiAgICAgICAga2VwdEF0LFxuICAgICAgICBwYXRoOiBwYXJhbXMucGF0aCxcbiAgICAgICAgcmF3VGV4dDogcGFyYW1zLnJhd1RleHQsXG4gICAgICAgIHJlYXNvbjogcGFyYW1zLnJlYXNvblxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlbW92ZWRLZXlzID0gY29waWVzLnNsaWNlKHRoaXMubWF4Q29waWVzIC0gMSkubWFwKChvbGRDb3B5KSA9PiBvbGRDb3B5LmlkKTtcbiAgICAgIGF3YWl0IHN0b3JlLmNvbW1pdCh7IGVudHJpZXM6IFtbY29weS5pZCwgY29weV1dLCByZW1vdmVkS2V5cyB9KTtcbiAgICAgIHJldHVybiBjb3B5O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RzIHRoZSBrZXB0IGNvcGllcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGNvcGllcywgbmV3ZXN0IGZpcnN0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxpc3QoKTogUHJvbWlzZTxTZXR0aW5nc1JlY292ZXJ5Q29weVtdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMud2l0aFN0b3JlKGFzeW5jIChzdG9yZSkgPT4gcmVhZENvcGllcyhhd2FpdCBzdG9yZS5lbnRyaWVzKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEga2VwdCBjb3B5LlxuICAgKlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgY29weSdzIGlkLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb3B5IGlzIHJlbW92ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVtb3ZlKGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLndpdGhTdG9yZShhc3luYyAoc3RvcmUpID0+IHtcbiAgICAgIGF3YWl0IHN0b3JlLmRlbGV0ZShpZCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHdpdGhTdG9yZTxUPihhY3Rpb246IChzdG9yZTogTG9jYWxEYXRhU3RvcmUpID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBzdG9yZSA9IGF3YWl0IExvY2FsRGF0YVN0b3JlLm9wZW4oe1xuICAgICAgLi4uKHRoaXMuZmFjdG9yeSAmJiB7IGZhY3Rvcnk6IHRoaXMuZmFjdG9yeSB9KSxcbiAgICAgIHBsdWdpbklkOiB0aGlzLnBsdWdpbklkLFxuICAgICAgc3RvcmVJZDogU0VUVElOR1NfUkVDT1ZFUllfU1RPUkVfSUQsXG4gICAgICB2YXVsdElkOiB0aGlzLnZhdWx0SWRcbiAgICB9KTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGFjdGlvbihzdG9yZSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHN0b3JlLmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB2YWx1ZSBpcyBhIHtAbGluayBTZXR0aW5nc1JlY292ZXJ5Q29weX0uIEEgcmVjb3JkIG9mIGFub3RoZXIgc2hhcGUgKGEgbGF0ZXIgdmVyc2lvbidzLCBvciBhIGRhbWFnZWRcbiAqIG9uZSkgaXMgaWdub3JlZCByYXRoZXIgdGhhbiB0cnVzdGVkLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHZhbHVlIGlzIGEgcmVjb3ZlcnkgY29weS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2V0dGluZ3NSZWNvdmVyeUNvcHkodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTZXR0aW5nc1JlY292ZXJ5Q29weSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IHJlY29yZCA9IHZhbHVlIGFzIFBhcnRpYWw8UmVjb3JkPGtleW9mIFNldHRpbmdzUmVjb3ZlcnlDb3B5LCB1bmtub3duPj47XG4gIHJldHVybiB0eXBlb2YgcmVjb3JkLmlkID09PSAnc3RyaW5nJ1xuICAgICYmIHR5cGVvZiByZWNvcmQua2VwdEF0ID09PSAnbnVtYmVyJ1xuICAgICYmIHR5cGVvZiByZWNvcmQucGF0aCA9PT0gJ3N0cmluZydcbiAgICAmJiB0eXBlb2YgcmVjb3JkLnJhd1RleHQgPT09ICdzdHJpbmcnXG4gICAgJiYgKHJlY29yZC5yZWFzb24gPT09IFNldHRpbmdzUmVjb3ZlcnlSZWFzb24uSW52YWxpZEpzb24gfHwgcmVjb3JkLnJlYXNvbiA9PT0gU2V0dGluZ3NSZWNvdmVyeVJlYXNvbi5Mb3NzeVJld3JpdGUpO1xufVxuXG5mdW5jdGlvbiBjb21wYXJlTmV3ZXN0Rmlyc3QoYTogU2V0dGluZ3NSZWNvdmVyeUNvcHksIGI6IFNldHRpbmdzUmVjb3ZlcnlDb3B5KTogbnVtYmVyIHtcbiAgcmV0dXJuIGIua2VwdEF0IC0gYS5rZXB0QXQgfHwgYi5pZC5sb2NhbGVDb21wYXJlKGEuaWQpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDb3B5SWQoa2VwdEF0OiBudW1iZXIsIGNvcGllczogcmVhZG9ubHkgU2V0dGluZ3NSZWNvdmVyeUNvcHlbXSk6IHN0cmluZyB7XG4gIGNvbnN0IGlkcyA9IG5ldyBTZXQoY29waWVzLm1hcCgoY29weSkgPT4gY29weS5pZCkpO1xuICBjb25zdCBiYXNlID0gbmV3IERhdGUoa2VwdEF0KS50b0lTT1N0cmluZygpO1xuICBsZXQgaWQgPSBiYXNlO1xuICBmb3IgKGxldCBzdWZmaXggPSAxOyBpZHMuaGFzKGlkKTsgc3VmZml4KyspIHtcbiAgICBpZCA9IGAke2Jhc2V9LSR7U3RyaW5nKHN1ZmZpeCl9YDtcbiAgfVxuICByZXR1cm4gaWQ7XG59XG5cbmZ1bmN0aW9uIHJlYWRDb3BpZXMoZW50cmllczogcmVhZG9ubHkgKHJlYWRvbmx5IFtzdHJpbmcsIHVua25vd25dKVtdKTogU2V0dGluZ3NSZWNvdmVyeUNvcHlbXSB7XG4gIHJldHVybiBlbnRyaWVzXG4gICAgLm1hcCgoWywgdmFsdWVdKSA9PiB2YWx1ZSlcbiAgICAuZmlsdGVyKGlzU2V0dGluZ3NSZWNvdmVyeUNvcHkpXG4gICAgLnNvcnQoY29tcGFyZU5ld2VzdEZpcnN0KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUEsOEJBQStCO0FBTXhCLE1BQU0sdUNBQXVDO0FBSzdDLE1BQU0sNkJBQTZCO0FBS25DLElBQUsseUJBQUwsa0JBQUtBLDRCQUFMO0FBSUwsRUFBQUEsd0JBQUEsaUJBQWM7QUFLZCxFQUFBQSx3QkFBQSxrQkFBZTtBQVRMLFNBQUFBO0FBQUEsR0FBQTtBQStITCxNQUFNLDJCQUE0RDtBQUFBLEVBQ3REO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9WLFlBQVksUUFBcUQ7QUFDdEUsVUFBTSxZQUFZLE9BQU8sYUFBYTtBQUN0QyxRQUFJLENBQUMsT0FBTyxjQUFjLFNBQVMsS0FBSyxZQUFZLEdBQUc7QUFDckQsWUFBTSxJQUFJLFdBQVcsNkNBQTZDLE9BQU8sU0FBUyxDQUFDLEdBQUc7QUFBQSxJQUN4RjtBQUNBLFNBQUssVUFBVSxPQUFPO0FBQ3RCLFNBQUssWUFBWTtBQUNqQixTQUFLLE1BQU0sT0FBTyxPQUFPLEtBQUs7QUFDOUIsU0FBSyxXQUFXLE9BQU87QUFDdkIsU0FBSyxVQUFVLE9BQU8sSUFBSTtBQUFBLEVBQzVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNBLE1BQWEsS0FBSyxRQUF3RTtBQUN4RixXQUFPLE1BQU0sS0FBSyxVQUFVLE9BQU8sVUFBVTtBQUMzQyxZQUFNLFNBQVMs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
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/// <reference lib="dom" />
|
|
3
|
+
/**
|
|
4
|
+
* @file
|
|
5
|
+
*
|
|
6
|
+
* Device-local recovery copies of a plugin's `data.json`, kept BEFORE anything could lose what the file held.
|
|
7
|
+
*
|
|
8
|
+
* Two cases lose a user's settings for good without one. A `data.json` that does not parse (truncated by a sync tool,
|
|
9
|
+
* a crash mid-write, a hand edit) reads as missing, because Obsidian's `Vault.readJson` swallows the parse error
|
|
10
|
+
* (read from `1.15.1`); and a record that parses but holds values the plugin drops or rewrites (an unknown key from a
|
|
11
|
+
* newer plugin version, a legacy migration) is normalized and saved back over the file on the initial load. A copy of
|
|
12
|
+
* the raw text is kept first, in a {@link LocalDataStore}, so no sync tool carries it to other devices and nothing is
|
|
13
|
+
* added to the vault.
|
|
14
|
+
*/
|
|
15
|
+
import type { App } from 'obsidian' with { 'resolution-mode': 'import' };
|
|
16
|
+
/**
|
|
17
|
+
* How many recovery copies a {@link LocalSettingsRecoveryStore} keeps per plugin by default. The oldest is dropped
|
|
18
|
+
* first.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_MAX_SETTINGS_RECOVERY_COPIES = 5;
|
|
21
|
+
/**
|
|
22
|
+
* The {@link LocalDataStore} store id the recovery copies live under. The `-v1` names the record shape below.
|
|
23
|
+
*/
|
|
24
|
+
export declare const SETTINGS_RECOVERY_STORE_ID = "settings-recovery-v1";
|
|
25
|
+
/**
|
|
26
|
+
* Why a recovery copy was kept.
|
|
27
|
+
*/
|
|
28
|
+
export declare enum SettingsRecoveryReason {
|
|
29
|
+
/**
|
|
30
|
+
* The file did not parse as JSON, so it could not be loaded at all.
|
|
31
|
+
*/
|
|
32
|
+
InvalidJson = "invalid-json",
|
|
33
|
+
/**
|
|
34
|
+
* The file parsed, but saving the normalized settings would have dropped or changed a stored value.
|
|
35
|
+
*/
|
|
36
|
+
LossyRewrite = "lossy-rewrite"
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Constructor parameters for {@link LocalSettingsRecoveryStore}.
|
|
40
|
+
*/
|
|
41
|
+
export interface LocalSettingsRecoveryStoreConstructorParams {
|
|
42
|
+
/**
|
|
43
|
+
* The Obsidian app; its device-local `appId` scopes the store to this vault.
|
|
44
|
+
*/
|
|
45
|
+
readonly app: App;
|
|
46
|
+
/**
|
|
47
|
+
* IndexedDB implementation, injectable for tests.
|
|
48
|
+
*/
|
|
49
|
+
readonly factory?: IDBFactory;
|
|
50
|
+
/**
|
|
51
|
+
* How many copies to keep. Defaults to {@link DEFAULT_MAX_SETTINGS_RECOVERY_COPIES}.
|
|
52
|
+
*/
|
|
53
|
+
readonly maxCopies?: number;
|
|
54
|
+
/**
|
|
55
|
+
* The clock, injectable for tests. Defaults to {@link Date.now}.
|
|
56
|
+
*/
|
|
57
|
+
readonly now?: () => number;
|
|
58
|
+
/**
|
|
59
|
+
* The `manifest.id` of the plugin.
|
|
60
|
+
*/
|
|
61
|
+
readonly pluginId: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* One kept copy of a plugin's `data.json`.
|
|
65
|
+
*/
|
|
66
|
+
export interface SettingsRecoveryCopy {
|
|
67
|
+
/**
|
|
68
|
+
* The copy's id, unique within the plugin's store.
|
|
69
|
+
*/
|
|
70
|
+
readonly id: string;
|
|
71
|
+
/**
|
|
72
|
+
* When the copy was kept, in milliseconds since the Unix epoch.
|
|
73
|
+
*/
|
|
74
|
+
readonly keptAt: number;
|
|
75
|
+
/**
|
|
76
|
+
* The vault-relative path of the file the copy was taken from.
|
|
77
|
+
*/
|
|
78
|
+
readonly path: string;
|
|
79
|
+
/**
|
|
80
|
+
* The file's raw text, byte for byte as it was read.
|
|
81
|
+
*/
|
|
82
|
+
readonly rawText: string;
|
|
83
|
+
/**
|
|
84
|
+
* Why the copy was kept.
|
|
85
|
+
*/
|
|
86
|
+
readonly reason: SettingsRecoveryReason;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Where recovery copies of a plugin's `data.json` are kept.
|
|
90
|
+
*/
|
|
91
|
+
export interface SettingsRecoveryStore {
|
|
92
|
+
/**
|
|
93
|
+
* Keeps a copy. A copy whose raw text is already kept is not duplicated; the existing one is returned.
|
|
94
|
+
*
|
|
95
|
+
* @param params - What to keep.
|
|
96
|
+
* @returns The kept copy.
|
|
97
|
+
*/
|
|
98
|
+
readonly keep: (params: SettingsRecoveryStoreKeepParams) => Promise<SettingsRecoveryCopy>;
|
|
99
|
+
/**
|
|
100
|
+
* Lists the kept copies.
|
|
101
|
+
*
|
|
102
|
+
* @returns The copies, newest first.
|
|
103
|
+
*/
|
|
104
|
+
readonly list: () => Promise<SettingsRecoveryCopy[]>;
|
|
105
|
+
/**
|
|
106
|
+
* Removes a kept copy. Removing an id that is not kept does nothing.
|
|
107
|
+
*
|
|
108
|
+
* @param id - The copy's id.
|
|
109
|
+
* @returns A promise that resolves when the copy is removed.
|
|
110
|
+
*/
|
|
111
|
+
readonly remove: (id: string) => Promise<void>;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Parameters for {@link SettingsRecoveryStore.keep}.
|
|
115
|
+
*/
|
|
116
|
+
export interface SettingsRecoveryStoreKeepParams {
|
|
117
|
+
/**
|
|
118
|
+
* The vault-relative path of the file the copy was taken from.
|
|
119
|
+
*/
|
|
120
|
+
readonly path: string;
|
|
121
|
+
/**
|
|
122
|
+
* The file's raw text, byte for byte as it was read.
|
|
123
|
+
*/
|
|
124
|
+
readonly rawText: string;
|
|
125
|
+
/**
|
|
126
|
+
* Why the copy is kept.
|
|
127
|
+
*/
|
|
128
|
+
readonly reason: SettingsRecoveryReason;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* A {@link SettingsRecoveryStore} in a device-local {@link LocalDataStore}, keeping the newest few copies.
|
|
132
|
+
*
|
|
133
|
+
* It opens its database per call and closes it again: copies are kept and read rarely (a load that found a damaged
|
|
134
|
+
* file, a lossy first save, the user asking for the list), so holding a connection for the plugin's lifetime would
|
|
135
|
+
* only add a resource to tie to an unload.
|
|
136
|
+
*/
|
|
137
|
+
export declare class LocalSettingsRecoveryStore implements SettingsRecoveryStore {
|
|
138
|
+
private readonly factory;
|
|
139
|
+
private readonly maxCopies;
|
|
140
|
+
private readonly now;
|
|
141
|
+
private readonly pluginId;
|
|
142
|
+
private readonly vaultId;
|
|
143
|
+
/**
|
|
144
|
+
* Creates a new store.
|
|
145
|
+
*
|
|
146
|
+
* @param params - The constructor parameters.
|
|
147
|
+
*/
|
|
148
|
+
constructor(params: LocalSettingsRecoveryStoreConstructorParams);
|
|
149
|
+
/**
|
|
150
|
+
* Keeps a copy, dropping the oldest ones beyond the limit in the same transaction.
|
|
151
|
+
*
|
|
152
|
+
* @param params - What to keep.
|
|
153
|
+
* @returns The kept copy, or the already kept one with the same raw text.
|
|
154
|
+
*/
|
|
155
|
+
keep(params: SettingsRecoveryStoreKeepParams): Promise<SettingsRecoveryCopy>;
|
|
156
|
+
/**
|
|
157
|
+
* Lists the kept copies.
|
|
158
|
+
*
|
|
159
|
+
* @returns The copies, newest first.
|
|
160
|
+
*/
|
|
161
|
+
list(): Promise<SettingsRecoveryCopy[]>;
|
|
162
|
+
/**
|
|
163
|
+
* Removes a kept copy.
|
|
164
|
+
*
|
|
165
|
+
* @param id - The copy's id.
|
|
166
|
+
* @returns A promise that resolves when the copy is removed.
|
|
167
|
+
*/
|
|
168
|
+
remove(id: string): Promise<void>;
|
|
169
|
+
private withStore;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Checks whether a value is a {@link SettingsRecoveryCopy}. A record of another shape (a later version's, or a damaged
|
|
173
|
+
* one) is ignored rather than trusted.
|
|
174
|
+
*
|
|
175
|
+
* @param value - The value to check.
|
|
176
|
+
* @returns Whether the value is a recovery copy.
|
|
177
|
+
*/
|
|
178
|
+
export declare function isSettingsRecoveryCopy(value: unknown): value is SettingsRecoveryCopy;
|
|
@@ -117,9 +117,9 @@ __export(settings_tabs_exports, {
|
|
|
117
117
|
SettingsTabs: () => SettingsTabs
|
|
118
118
|
});
|
|
119
119
|
module.exports = __toCommonJS(settings_tabs_exports);
|
|
120
|
-
var import_obsidian = require(
|
|
121
|
-
var import_css_class = require(
|
|
122
|
-
var import_plugin_context = require(
|
|
120
|
+
var import_obsidian = require("obsidian");
|
|
121
|
+
var import_css_class = require("./css-class.cjs");
|
|
122
|
+
var import_plugin_context = require("./plugin/plugin-context.cjs");
|
|
123
123
|
class SettingsTabs {
|
|
124
124
|
/**
|
|
125
125
|
* The panel the selected tab renders into.
|
|
@@ -215,7 +215,7 @@ class SettingsTabs {
|
|
|
215
215
|
return this;
|
|
216
216
|
}
|
|
217
217
|
findEntry(tabId) {
|
|
218
|
-
return this.entries.find((entry) => entry.tab.id === tabId);
|
|
218
|
+
return this.entries.find((entry) => entry.tab.id === tabId) ?? null;
|
|
219
219
|
}
|
|
220
220
|
onKeyDown(event_) {
|
|
221
221
|
const count = this.entries.length;
|
|
@@ -255,4 +255,4 @@ class SettingsTabs {
|
|
|
255
255
|
0 && (module.exports = {
|
|
256
256
|
SettingsTabs
|
|
257
257
|
});
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXR0aW5ncy10YWJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUYWJiZWQgc2VjdGlvbnMgaW5zaWRlIGEgcGx1Z2luJ3Mgc2V0dGluZ3MuXG4gKi9cblxuaW1wb3J0IHsgc2V0SWNvbiB9IGZyb20gJ29ic2lkaWFuJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgaW5pdFBsdWdpbkNvbnRleHRgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBpbml0UGx1Z2luQ29udGV4dCB9IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG4vKipcbiAqIEEgdGFiIG9mIHtAbGluayBTZXR0aW5nc1RhYnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHRpbmdzVGFiIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIGFuIE9ic2lkaWFuIGljb24gc2hvd24gYmVmb3JlIHRoZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSB0YWIsIHVuaXF1ZSBhbW9uZyB0aGUgdGFicy5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIHNob3duIG9uIHRoZSB0YWIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSB0YWIncyBzZXR0aW5ncyBpbnRvIHRoZSBwYW5lbCwgd2hpY2ggaXMgZW1wdHkgZWFjaCB0aW1lIHRoZSB0YWIgaXMgc2VsZWN0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250YWluZXJFbCAtIFRoZSBwYW5lbC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbmRlcjogKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkgPT4gdm9pZDtcbn1cblxuaW50ZXJmYWNlIFNldHRpbmdzVGFiRW50cnkge1xuICByZWFkb25seSBidXR0b25FbDogSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIHJlYWRvbmx5IHRhYjogU2V0dGluZ3NUYWI7XG59XG5cbi8qKlxuICogVGFiYmVkIHNlY3Rpb25zIGluc2lkZSBhIHBsdWdpbidzIHNldHRpbmdzOiBhIHJvdyBvZiB0YWIgYnV0dG9ucyBhbmQgb25lIHBhbmVsLCB3aGljaCByZW5kZXJzIG9ubHkgdGhlIHNlbGVjdGVkIHRhYi5cbiAqIFRoZSBhcnJvdyBrZXlzLCBIb21lIGFuZCBFbmQgbW92ZSBiZXR3ZWVuIHRhYnMsIGFzIGluIHRoZSBXQUktQVJJQSB0YWJzIHBhdHRlcm4uXG4gKlxuICogYGBgdHNcbiAqIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5KCk6IHZvaWQge1xuICogICB0aGlzLmNvbnRhaW5lckVsLmVtcHR5KCk7XG4gKiAgIG5ldyBTZXR0aW5nc1RhYnModGhpcy5jb250YWluZXJFbClcbiAqICAgICAuYWRkVGFiKHsgaWQ6ICdnZW5lcmFsJywgbmFtZTogJ0dlbmVyYWwnLCByZW5kZXI6IChlbCkgPT4gdGhpcy5yZW5kZXJHZW5lcmFsKGVsKSB9KVxuICogICAgIC5hZGRUYWIoeyBpZDogJ2FkdmFuY2VkJywgbmFtZTogJ0FkdmFuY2VkJywgcmVuZGVyOiAoZWwpID0+IHRoaXMucmVuZGVyQWR2YW5jZWQoZWwpIH0pXG4gKiAgICAgLnNlbGVjdFRhYih0aGlzLmxhc3RUYWJJZClcbiAqICAgICAub25UYWJDaGFuZ2UoKHRhYklkKSA9PiB7XG4gKiAgICAgICB0aGlzLmxhc3RUYWJJZCA9IHRhYklkO1xuICogICAgIH0pO1xuICogfVxuICogYGBgXG4gKlxuICogSW4gb3JkZXIgdG8gYWRkIHRoZSBzdHlsZXMgZm9yIHRoZSBjb21wb25lbnQsIHVzZSB7QGxpbmsgaW5pdFBsdWdpbkNvbnRleHR9IGluIHlvdXIgcGx1Z2luJ3MgYG9ubG9hZCgpYCBmdW5jdGlvbi5cbiAqXG4gKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNvcHkgc3R5bGVzIGZyb20ge0BsaW5rIGh0dHBzOi8vdW5wa2cuY29tL0BtbmFvdW1vdi9vYnNpZGlhbi1saWIvZGlzdC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNldHRpbmdzVGFicyB7XG4gIC8qKlxuICAgKiBUaGUgcGFuZWwgdGhlIHNlbGVjdGVkIHRhYiByZW5kZXJzIGludG8uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGFuZWxFbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSByb3cgb2YgdGFiIGJ1dHRvbnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFiQmFyRWw6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgY2hhbmdlQ2FsbGJhY2s/OiAodGFiSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRyaWVzOiBTZXR0aW5nc1RhYkVudHJ5W10gPSBbXTtcbiAgcHJpdmF0ZSBzZWxlY3RlZFRhYklkOiBudWxsIHwgc3RyaW5nID0gbnVsbDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBuZXcgc2V0dGluZ3MgdGFicy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lckVsIC0gVGhlIGNvbnRhaW5lciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuICAgIGFkZFBsdWdpbkNzc0NsYXNzZXMoY29udGFpbmVyRWwsIENzc0NsYXNzLlNldHRpbmdzVGFicyk7XG4gICAgdGhpcy50YWJCYXJFbCA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdih7IGF0dHI6IHsgcm9sZTogJ3RhYmxpc3QnIH0sIGNsczogJ3NldHRpbmdzLXRhYnMtYmFyJyB9KTtcbiAgICB0aGlzLnRhYkJhckVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLm9uS2V5RG93bi5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnBhbmVsRWwgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoeyBhdHRyOiB7IHJvbGU6ICd0YWJwYW5lbCcgfSwgY2xzOiAnc2V0dGluZ3MtdGFicy1wYW5lbCcgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRhYi4gVGhlIGZpcnN0IHRhYiBhZGRlZCBpcyBzZWxlY3RlZC5cbiAgICpcbiAgICogQHBhcmFtIHRhYiAtIFRoZSB0YWIuXG4gICAqIEByZXR1cm5zIFRoZSB0YWJzLlxuICAgKiBAdGhyb3dzIElmIGEgdGFiIHdpdGggdGhlIHNhbWUgaWQgd2FzIGFscmVhZHkgYWRkZWQuXG4gICAqL1xuICBwdWJsaWMgYWRkVGFiKHRhYjogU2V0dGluZ3NUYWIpOiB0aGlzIHtcbiAgICBpZiAodGhpcy5maW5kRW50cnkodGFiLmlkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBIHNldHRpbmdzIHRhYiB3aXRoIHRoZSBpZCAke3RhYi5pZH0gd2FzIGFscmVhZHkgYWRkZWQuYCk7XG4gICAgfVxuICAgIGNvbnN0IGJ1dHRvbkVsID0gdGhpcy50YWJCYXJFbC5jcmVhdGVFbCgnYnV0dG9uJywgeyBhdHRyOiB7ICdhcmlhLXNlbGVjdGVkJzogJ2ZhbHNlJywgJ3JvbGUnOiAndGFiJywgJ3RhYmluZGV4JzogJy0xJyB9LCBjbHM6ICdzZXR0aW5ncy10YWJzLWJ1dHRvbicgfSk7XG4gICAgaWYgKHRhYi5pY29uKSB7XG4gICAgICBzZXRJY29uKGJ1dHRvbkVsLmNyZWF0ZVNwYW4oeyBjbHM6ICdzZXR0aW5ncy10YWJzLWljb24nIH0pLCB0YWIuaWNvbik7XG4gICAgfVxuICAgIGJ1dHRvbkVsLmNyZWF0ZVNwYW4oeyB0ZXh0OiB0YWIubmFtZSB9KTtcbiAgICBidXR0b25FbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0VGFiKHRhYi5pZCk7XG4gICAgfSk7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goeyBidXR0b25FbCwgdGFiIH0pO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkVGFiSWQgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuc2VsZWN0VGFiKHRhYi5pZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGlkIG9mIHRoZSBzZWxlY3RlZCB0YWIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpZCwgb3IgYG51bGxgIGJlZm9yZSBhbnkgdGFiIGlzIGFkZGVkLlxuICAgKi9cbiAgcHVibGljIGdldFNlbGVjdGVkVGFiSWQoKTogbnVsbCB8IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWJJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGFub3RoZXIgdGFiLlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2ssIGdpdmVuIHRoZSBpZCBvZiB0aGUgc2VsZWN0ZWQgdGFiLlxuICAgKiBAcmV0dXJucyBUaGUgdGFicy5cbiAgICovXG4gIHB1YmxpYyBvblRhYkNoYW5nZShjYWxsYmFjazogKHRhYklkOiBzdHJpbmcpID0+IHZvaWQpOiB0aGlzIHtcbiAgICB0aGlzLmNoYW5nZUNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhIHRhYiBhbmQgcmVuZGVycyBpdCBpbnRvIHRoZSBwYW5lbC4gQW4gdW5rbm93biBpZCwgc3VjaCBhcyBhIHN0b3JlZCBpZCB3aG9zZSB0YWIgd2FzIHNpbmNlIHJlbW92ZWQsIGxlYXZlc1xuICAgKiB0aGUgc2VsZWN0aW9uIGFzIGl0IGlzLlxuICAgKlxuICAgKiBAcGFyYW0gdGFiSWQgLSBUaGUgaWQgb2YgdGhlIHRhYi5cbiAgICogQHJldHVybnMgVGhlIHRhYnMuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0VGFiKHRhYklkOiBudWxsIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgY29uc3QgZW50cnkgPSB0aGlzLmZpbmRFbnRyeSh0YWJJZCk7XG4gICAgaWYgKCFlbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGNvbnN0IHsgdGFiIH0gPSBlbnRyeTtcbiAgICBjb25zdCBpc0NoYW5nZSA9IHRoaXMuc2VsZWN0ZWRUYWJJZCAhPT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkVGFiSWQgIT09IHRhYi5pZDtcbiAgICB0aGlzLnNlbGVjdGVkVGFiSWQgPSB0YWIuaWQ7XG4gICAgZm9yIChjb25zdCB7IGJ1dHRvbkVsLCB0YWI6IGNhbmRpZGF0ZSB9IG9mIHRoaXMuZW50cmllcykge1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGNhbmRpZGF0ZSA9PT0gdGFiO1xuICAgICAgYnV0dG9uRWwudG9nZ2xlQ2xhc3MoQ3NzQ2xhc3MuSXNBY3RpdmUsIGlzU2VsZWN0ZWQpO1xuICAgICAgYnV0dG9uRWwuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgU3RyaW5nKGlzU2VsZWN0ZWQpKTtcbiAgICAgIGJ1dHRvbkVsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCBpc1NlbGVjdGVkID8gJzAnIDogJy0xJyk7XG4gICAgfVxuICAgIHRoaXMucGFuZWxFbC5lbXB0eSgpO1xuICAgIHRhYi5yZW5kZXIodGhpcy5wYW5lbEVsKTtcbiAgICBpZiAoaXNDaGFuZ2UpIHtcbiAgICAgIHRoaXMuY2hhbmdlQ2FsbGJhY2s/Lih0YWIuaWQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgZmluZEVudHJ5KHRhYklkOiBudWxsIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogU2V0dGluZ3NUYWJFbnRyeSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZW50cmllcy5maW5kKChlbnRyeSkgPT4gZW50cnkudGFiLmlkID09PSB0YWJJZCk7XG4gIH1cblxuICBwcml2YXRlIG9uS2V5RG93bihldmVudF86IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuZW50cmllcy5sZW5ndGg7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmVudHJpZXMuZmluZEluZGV4KChlbnRyeSkgPT4gZW50cnkudGFiLmlkID09PSB0aGlzLnNlbGVjdGVkVGFiSWQpO1xuICAgIGxldCBuZXh0SW5kZXg6IG51bWJlcjtcbiAgICBzd2l0Y2ggKGV2ZW50Xy5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgbmV4dEluZGV4ID0gKGluZGV4IC0gMSArIGNvdW50KSAlIGNvdW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOiB7XG4gICAgICAgIG5leHRJbmRleCA9IChpbmRleCArIDEpICUgY291bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRW5kJzoge1xuICAgICAgICBuZXh0SW5kZXggPSBjb3VudCAtIDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnSG9tZSc6IHtcbiAgICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV4dEVudHJ5ID0gdGhpcy5lbnRyaWVzW25leHRJbmRleF07XG4gICAgaWYgKCFuZXh0RW50cnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXZlbnRfLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5zZWxlY3RUYWIobmV4dEVudHJ5LnRhYi5p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
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXR0aW5ncy10YWJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUYWJiZWQgc2VjdGlvbnMgaW5zaWRlIGEgcGx1Z2luJ3Mgc2V0dGluZ3MuXG4gKi9cblxuaW1wb3J0IHsgc2V0SWNvbiB9IGZyb20gJ29ic2lkaWFuJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAtLSBXZSBuZWVkIHRvIGltcG9ydCBgaW5pdFBsdWdpbkNvbnRleHRgIHRvIHVzZSBpdCBpbiB0aGUgdHNkb2NzLlxuaW1wb3J0IHR5cGUgeyBpbml0UGx1Z2luQ29udGV4dCB9IGZyb20gJy4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMnO1xuXG4vKipcbiAqIEEgdGFiIG9mIHtAbGluayBTZXR0aW5nc1RhYnN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHRpbmdzVGFiIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIGFuIE9ic2lkaWFuIGljb24gc2hvd24gYmVmb3JlIHRoZSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSB0YWIsIHVuaXF1ZSBhbW9uZyB0aGUgdGFicy5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIHNob3duIG9uIHRoZSB0YWIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSB0YWIncyBzZXR0aW5ncyBpbnRvIHRoZSBwYW5lbCwgd2hpY2ggaXMgZW1wdHkgZWFjaCB0aW1lIHRoZSB0YWIgaXMgc2VsZWN0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSBjb250YWluZXJFbCAtIFRoZSBwYW5lbC5cbiAgICovXG4gIHJlYWRvbmx5IHJlbmRlcjogKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkgPT4gdm9pZDtcbn1cblxuaW50ZXJmYWNlIFNldHRpbmdzVGFiRW50cnkge1xuICByZWFkb25seSBidXR0b25FbDogSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gIHJlYWRvbmx5IHRhYjogU2V0dGluZ3NUYWI7XG59XG5cbi8qKlxuICogVGFiYmVkIHNlY3Rpb25zIGluc2lkZSBhIHBsdWdpbidzIHNldHRpbmdzOiBhIHJvdyBvZiB0YWIgYnV0dG9ucyBhbmQgb25lIHBhbmVsLCB3aGljaCByZW5kZXJzIG9ubHkgdGhlIHNlbGVjdGVkIHRhYi5cbiAqIFRoZSBhcnJvdyBrZXlzLCBIb21lIGFuZCBFbmQgbW92ZSBiZXR3ZWVuIHRhYnMsIGFzIGluIHRoZSBXQUktQVJJQSB0YWJzIHBhdHRlcm4uXG4gKlxuICogYGBgdHNcbiAqIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5KCk6IHZvaWQge1xuICogICB0aGlzLmNvbnRhaW5lckVsLmVtcHR5KCk7XG4gKiAgIG5ldyBTZXR0aW5nc1RhYnModGhpcy5jb250YWluZXJFbClcbiAqICAgICAuYWRkVGFiKHsgaWQ6ICdnZW5lcmFsJywgbmFtZTogJ0dlbmVyYWwnLCByZW5kZXI6IChlbCkgPT4gdGhpcy5yZW5kZXJHZW5lcmFsKGVsKSB9KVxuICogICAgIC5hZGRUYWIoeyBpZDogJ2FkdmFuY2VkJywgbmFtZTogJ0FkdmFuY2VkJywgcmVuZGVyOiAoZWwpID0+IHRoaXMucmVuZGVyQWR2YW5jZWQoZWwpIH0pXG4gKiAgICAgLnNlbGVjdFRhYih0aGlzLmxhc3RUYWJJZClcbiAqICAgICAub25UYWJDaGFuZ2UoKHRhYklkKSA9PiB7XG4gKiAgICAgICB0aGlzLmxhc3RUYWJJZCA9IHRhYklkO1xuICogICAgIH0pO1xuICogfVxuICogYGBgXG4gKlxuICogSW4gb3JkZXIgdG8gYWRkIHRoZSBzdHlsZXMgZm9yIHRoZSBjb21wb25lbnQsIHVzZSB7QGxpbmsgaW5pdFBsdWdpbkNvbnRleHR9IGluIHlvdXIgcGx1Z2luJ3MgYG9ubG9hZCgpYCBmdW5jdGlvbi5cbiAqXG4gKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGNvcHkgc3R5bGVzIGZyb20ge0BsaW5rIGh0dHBzOi8vdW5wa2cuY29tL0BtbmFvdW1vdi9vYnNpZGlhbi1saWIvZGlzdC9zdHlsZXMuY3NzfS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNldHRpbmdzVGFicyB7XG4gIC8qKlxuICAgKiBUaGUgcGFuZWwgdGhlIHNlbGVjdGVkIHRhYiByZW5kZXJzIGludG8uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGFuZWxFbDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSByb3cgb2YgdGFiIGJ1dHRvbnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFiQmFyRWw6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgY2hhbmdlQ2FsbGJhY2s/OiAodGFiSWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRyaWVzOiBTZXR0aW5nc1RhYkVudHJ5W10gPSBbXTtcbiAgcHJpdmF0ZSBzZWxlY3RlZFRhYklkOiBudWxsIHwgc3RyaW5nID0gbnVsbDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBuZXcgc2V0dGluZ3MgdGFicy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRhaW5lckVsIC0gVGhlIGNvbnRhaW5lciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNvbnRhaW5lckVsOiBIVE1MRWxlbWVudCkge1xuICAgIGFkZFBsdWdpbkNzc0NsYXNzZXMoY29udGFpbmVyRWwsIENzc0NsYXNzLlNldHRpbmdzVGFicyk7XG4gICAgdGhpcy50YWJCYXJFbCA9IGNvbnRhaW5lckVsLmNyZWF0ZURpdih7IGF0dHI6IHsgcm9sZTogJ3RhYmxpc3QnIH0sIGNsczogJ3NldHRpbmdzLXRhYnMtYmFyJyB9KTtcbiAgICB0aGlzLnRhYkJhckVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLm9uS2V5RG93bi5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnBhbmVsRWwgPSBjb250YWluZXJFbC5jcmVhdGVEaXYoeyBhdHRyOiB7IHJvbGU6ICd0YWJwYW5lbCcgfSwgY2xzOiAnc2V0dGluZ3MtdGFicy1wYW5lbCcgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHRhYi4gVGhlIGZpcnN0IHRhYiBhZGRlZCBpcyBzZWxlY3RlZC5cbiAgICpcbiAgICogQHBhcmFtIHRhYiAtIFRoZSB0YWIuXG4gICAqIEByZXR1cm5zIFRoZSB0YWJzLlxuICAgKiBAdGhyb3dzIElmIGEgdGFiIHdpdGggdGhlIHNhbWUgaWQgd2FzIGFscmVhZHkgYWRkZWQuXG4gICAqL1xuICBwdWJsaWMgYWRkVGFiKHRhYjogU2V0dGluZ3NUYWIpOiB0aGlzIHtcbiAgICBpZiAodGhpcy5maW5kRW50cnkodGFiLmlkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBIHNldHRpbmdzIHRhYiB3aXRoIHRoZSBpZCAke3RhYi5pZH0gd2FzIGFscmVhZHkgYWRkZWQuYCk7XG4gICAgfVxuICAgIGNvbnN0IGJ1dHRvbkVsID0gdGhpcy50YWJCYXJFbC5jcmVhdGVFbCgnYnV0dG9uJywgeyBhdHRyOiB7ICdhcmlhLXNlbGVjdGVkJzogJ2ZhbHNlJywgJ3JvbGUnOiAndGFiJywgJ3RhYmluZGV4JzogJy0xJyB9LCBjbHM6ICdzZXR0aW5ncy10YWJzLWJ1dHRvbicgfSk7XG4gICAgaWYgKHRhYi5pY29uKSB7XG4gICAgICBzZXRJY29uKGJ1dHRvbkVsLmNyZWF0ZVNwYW4oeyBjbHM6ICdzZXR0aW5ncy10YWJzLWljb24nIH0pLCB0YWIuaWNvbik7XG4gICAgfVxuICAgIGJ1dHRvbkVsLmNyZWF0ZVNwYW4oeyB0ZXh0OiB0YWIubmFtZSB9KTtcbiAgICBidXR0b25FbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0VGFiKHRhYi5pZCk7XG4gICAgfSk7XG4gICAgdGhpcy5lbnRyaWVzLnB1c2goeyBidXR0b25FbCwgdGFiIH0pO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkVGFiSWQgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuc2VsZWN0VGFiKHRhYi5pZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGlkIG9mIHRoZSBzZWxlY3RlZCB0YWIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpZCwgb3IgYG51bGxgIGJlZm9yZSBhbnkgdGFiIGlzIGFkZGVkLlxuICAgKi9cbiAgcHVibGljIGdldFNlbGVjdGVkVGFiSWQoKTogbnVsbCB8IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWJJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjYWxsYmFjayB0byBiZSBjYWxsZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGFub3RoZXIgdGFiLlxuICAgKlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2ssIGdpdmVuIHRoZSBpZCBvZiB0aGUgc2VsZWN0ZWQgdGFiLlxuICAgKiBAcmV0dXJucyBUaGUgdGFicy5cbiAgICovXG4gIHB1YmxpYyBvblRhYkNoYW5nZShjYWxsYmFjazogKHRhYklkOiBzdHJpbmcpID0+IHZvaWQpOiB0aGlzIHtcbiAgICB0aGlzLmNoYW5nZUNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhIHRhYiBhbmQgcmVuZGVycyBpdCBpbnRvIHRoZSBwYW5lbC4gQW4gdW5rbm93biBpZCwgc3VjaCBhcyBhIHN0b3JlZCBpZCB3aG9zZSB0YWIgd2FzIHNpbmNlIHJlbW92ZWQsIGxlYXZlc1xuICAgKiB0aGUgc2VsZWN0aW9uIGFzIGl0IGlzLlxuICAgKlxuICAgKiBAcGFyYW0gdGFiSWQgLSBUaGUgaWQgb2YgdGhlIHRhYi5cbiAgICogQHJldHVybnMgVGhlIHRhYnMuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0VGFiKHRhYklkOiBudWxsIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogdGhpcyB7XG4gICAgY29uc3QgZW50cnkgPSB0aGlzLmZpbmRFbnRyeSh0YWJJZCk7XG4gICAgaWYgKCFlbnRyeSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICAgIGNvbnN0IHsgdGFiIH0gPSBlbnRyeTtcbiAgICBjb25zdCBpc0NoYW5nZSA9IHRoaXMuc2VsZWN0ZWRUYWJJZCAhPT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkVGFiSWQgIT09IHRhYi5pZDtcbiAgICB0aGlzLnNlbGVjdGVkVGFiSWQgPSB0YWIuaWQ7XG4gICAgZm9yIChjb25zdCB7IGJ1dHRvbkVsLCB0YWI6IGNhbmRpZGF0ZSB9IG9mIHRoaXMuZW50cmllcykge1xuICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGNhbmRpZGF0ZSA9PT0gdGFiO1xuICAgICAgYnV0dG9uRWwudG9nZ2xlQ2xhc3MoQ3NzQ2xhc3MuSXNBY3RpdmUsIGlzU2VsZWN0ZWQpO1xuICAgICAgYnV0dG9uRWwuc2V0QXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJywgU3RyaW5nKGlzU2VsZWN0ZWQpKTtcbiAgICAgIGJ1dHRvbkVsLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCBpc1NlbGVjdGVkID8gJzAnIDogJy0xJyk7XG4gICAgfVxuICAgIHRoaXMucGFuZWxFbC5lbXB0eSgpO1xuICAgIHRhYi5yZW5kZXIodGhpcy5wYW5lbEVsKTtcbiAgICBpZiAoaXNDaGFuZ2UpIHtcbiAgICAgIHRoaXMuY2hhbmdlQ2FsbGJhY2s/Lih0YWIuaWQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgZmluZEVudHJ5KHRhYklkOiBudWxsIHwgc3RyaW5nIHwgdW5kZWZpbmVkKTogbnVsbCB8IFNldHRpbmdzVGFiRW50cnkge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXMuZmluZCgoZW50cnkpID0+IGVudHJ5LnRhYi5pZCA9PT0gdGFiSWQpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIG9uS2V5RG93bihldmVudF86IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuZW50cmllcy5sZW5ndGg7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmVudHJpZXMuZmluZEluZGV4KChlbnRyeSkgPT4gZW50cnkudGFiLmlkID09PSB0aGlzLnNlbGVjdGVkVGFiSWQpO1xuICAgIGxldCBuZXh0SW5kZXg6IG51bWJlcjtcbiAgICBzd2l0Y2ggKGV2ZW50Xy5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgbmV4dEluZGV4ID0gKGluZGV4IC0gMSArIGNvdW50KSAlIGNvdW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOiB7XG4gICAgICAgIG5leHRJbmRleCA9IChpbmRleCArIDEpICUgY291bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnRW5kJzoge1xuICAgICAgICBuZXh0SW5kZXggPSBjb3VudCAtIDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnSG9tZSc6IHtcbiAgICAgICAgbmV4dEluZGV4ID0gMDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV4dEVudHJ5ID0gdGhpcy5lbnRyaWVzW25leHRJbmRleF07XG4gICAgaWYgKCFuZXh0RW50cnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXZlbnRfLnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5zZWxlY3RUYWIobmV4dEVudHJ5LnRh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
|
|
@@ -117,7 +117,7 @@ __export(status_bar_item_registrar_exports, {
|
|
|
117
117
|
PluginStatusBarItemRegistrar: () => PluginStatusBarItemRegistrar
|
|
118
118
|
});
|
|
119
119
|
module.exports = __toCommonJS(status_bar_item_registrar_exports);
|
|
120
|
-
var import_obsidian = require(
|
|
120
|
+
var import_obsidian = require("obsidian");
|
|
121
121
|
class PluginStatusBarItemRegistrar {
|
|
122
122
|
/**
|
|
123
123
|
* Creates a new instance of the {@link PluginStatusBarItemRegistrar} class.
|