@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,282 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.mts" />
|
|
2
|
+
/// <reference lib="dom" />
|
|
3
|
+
/// <reference lib="dom.iterable" />
|
|
4
|
+
/**
|
|
5
|
+
* @file
|
|
6
|
+
*
|
|
7
|
+
* The message protocol between `WorkerComponent` on the main thread and {@link exposeWorkerApi} inside a worker.
|
|
8
|
+
*
|
|
9
|
+
* This module imports nothing, so a worker entry point bundled by `@mnaoumov/obsidian-dev-toolkit`'s `workers` feature
|
|
10
|
+
* can import it: a worker has no `obsidian` module and no Node builtins. Its message shapes are a wire format between
|
|
11
|
+
* the plugin's main bundle and its worker bundle, which may come from different copies of this library, so fields are
|
|
12
|
+
* only ever added and a change of meaning moves to a new {@link WORKER_PROTOCOL} value.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The tag every message of this protocol carries. Messages without it are ignored on both sides, so a worker can
|
|
16
|
+
* exchange its own messages too.
|
|
17
|
+
*/
|
|
18
|
+
export declare const WORKER_PROTOCOL = "obsidian-lib-worker-v1";
|
|
19
|
+
/**
|
|
20
|
+
* An error reduced to plain data, because an `Error` loses its class across the worker boundary.
|
|
21
|
+
*/
|
|
22
|
+
export interface SerializedWorkerError {
|
|
23
|
+
/**
|
|
24
|
+
* The error message.
|
|
25
|
+
*/
|
|
26
|
+
readonly message: string;
|
|
27
|
+
/**
|
|
28
|
+
* The error name.
|
|
29
|
+
*/
|
|
30
|
+
readonly name: string;
|
|
31
|
+
/**
|
|
32
|
+
* The stack in the worker, when there was one.
|
|
33
|
+
*/
|
|
34
|
+
readonly stack?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A result marked to transfer some of its objects rather than copy them. Build it with {@link withTransfer}.
|
|
38
|
+
*
|
|
39
|
+
* @typeParam TValue - The value type.
|
|
40
|
+
*/
|
|
41
|
+
export interface TransferredValue<TValue> {
|
|
42
|
+
/**
|
|
43
|
+
* The marker that identifies the wrapper structurally, so a wrapper built by another copy of this library is
|
|
44
|
+
* recognized too.
|
|
45
|
+
*/
|
|
46
|
+
readonly __obsidianLibTransferredValue: true;
|
|
47
|
+
/**
|
|
48
|
+
* The objects to transfer.
|
|
49
|
+
*/
|
|
50
|
+
readonly transfer: readonly Transferable[];
|
|
51
|
+
/**
|
|
52
|
+
* The value.
|
|
53
|
+
*/
|
|
54
|
+
readonly value: TValue;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* A value split from its transfer list, ready to post.
|
|
58
|
+
*/
|
|
59
|
+
export interface UnwrappedTransferredValue {
|
|
60
|
+
/**
|
|
61
|
+
* The objects to transfer.
|
|
62
|
+
*/
|
|
63
|
+
readonly transfer: Transferable[];
|
|
64
|
+
/**
|
|
65
|
+
* The value to post.
|
|
66
|
+
*/
|
|
67
|
+
readonly value: unknown;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* An API a worker exposes: an object whose every member is a function.
|
|
71
|
+
*
|
|
72
|
+
* @typeParam TApi - The API type.
|
|
73
|
+
*/
|
|
74
|
+
export type WorkerApi<TApi> = {
|
|
75
|
+
readonly [TMethod in keyof TApi]: (...parameters: never[]) => unknown;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* The handlers implementing a {@link WorkerApi}, with the {@link WorkerCallContext} as `this`.
|
|
79
|
+
*
|
|
80
|
+
* Each handler takes the method's arguments and returns its result, or a promise of it, or the result wrapped by
|
|
81
|
+
* {@link withTransfer} to transfer buffers back instead of copying them. Declare the handlers as methods or `function`
|
|
82
|
+
* expressions, not arrow functions, when they need `this`.
|
|
83
|
+
*
|
|
84
|
+
* @typeParam TApi - The API type.
|
|
85
|
+
*/
|
|
86
|
+
export type WorkerApiHandlers<TApi extends WorkerApi<TApi>> = {
|
|
87
|
+
readonly [TMethod in keyof TApi]: (this: WorkerCallContext, ...parameters: Parameters<TApi[TMethod]>) => WorkerHandlerResult<Awaited<ReturnType<TApi[TMethod]>>>;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* The context of one call, passed to a handler as `this`.
|
|
91
|
+
*/
|
|
92
|
+
export interface WorkerCallContext {
|
|
93
|
+
/**
|
|
94
|
+
* Aborted when the caller cancels the call. A long handler checks it between steps; nothing interrupts a synchronous
|
|
95
|
+
* loop, so a job that cannot check it is stopped only by terminating the worker.
|
|
96
|
+
*/
|
|
97
|
+
readonly abortSignal: AbortSignal;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* A call from the main thread.
|
|
101
|
+
*/
|
|
102
|
+
export interface WorkerCallMessage {
|
|
103
|
+
/**
|
|
104
|
+
* The method's arguments.
|
|
105
|
+
*/
|
|
106
|
+
readonly arguments: readonly unknown[];
|
|
107
|
+
/**
|
|
108
|
+
* The call id, unique per `WorkerComponent`.
|
|
109
|
+
*/
|
|
110
|
+
readonly id: number;
|
|
111
|
+
/**
|
|
112
|
+
* The message kind.
|
|
113
|
+
*/
|
|
114
|
+
readonly kind: 'call';
|
|
115
|
+
/**
|
|
116
|
+
* The method name.
|
|
117
|
+
*/
|
|
118
|
+
readonly method: string;
|
|
119
|
+
/**
|
|
120
|
+
* The protocol tag.
|
|
121
|
+
*/
|
|
122
|
+
readonly protocol: typeof WORKER_PROTOCOL;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* A cancellation of a call from the main thread.
|
|
126
|
+
*/
|
|
127
|
+
export interface WorkerCancelMessage {
|
|
128
|
+
/**
|
|
129
|
+
* The id of the call to cancel.
|
|
130
|
+
*/
|
|
131
|
+
readonly id: number;
|
|
132
|
+
/**
|
|
133
|
+
* The message kind.
|
|
134
|
+
*/
|
|
135
|
+
readonly kind: 'cancel';
|
|
136
|
+
/**
|
|
137
|
+
* The protocol tag.
|
|
138
|
+
*/
|
|
139
|
+
readonly protocol: typeof WORKER_PROTOCOL;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* A failed call, answered by the worker.
|
|
143
|
+
*/
|
|
144
|
+
export interface WorkerErrorMessage {
|
|
145
|
+
/**
|
|
146
|
+
* The error, reduced to plain data.
|
|
147
|
+
*/
|
|
148
|
+
readonly error: SerializedWorkerError;
|
|
149
|
+
/**
|
|
150
|
+
* The id of the call.
|
|
151
|
+
*/
|
|
152
|
+
readonly id: number;
|
|
153
|
+
/**
|
|
154
|
+
* The message kind.
|
|
155
|
+
*/
|
|
156
|
+
readonly kind: 'error';
|
|
157
|
+
/**
|
|
158
|
+
* The protocol tag.
|
|
159
|
+
*/
|
|
160
|
+
readonly protocol: typeof WORKER_PROTOCOL;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* What a handler may return.
|
|
164
|
+
*
|
|
165
|
+
* @typeParam TResult - The method's result type.
|
|
166
|
+
*/
|
|
167
|
+
export type WorkerHandlerResult<TResult> = Promise<TransferredValue<TResult> | TResult> | TransferredValue<TResult> | TResult;
|
|
168
|
+
/**
|
|
169
|
+
* The port a worker talks through: the worker's global scope, or a test double.
|
|
170
|
+
*/
|
|
171
|
+
export interface WorkerMessagePort {
|
|
172
|
+
/**
|
|
173
|
+
* Subscribes to messages.
|
|
174
|
+
*
|
|
175
|
+
* @param type - Always `message`.
|
|
176
|
+
* @param listener - The listener.
|
|
177
|
+
*/
|
|
178
|
+
readonly addEventListener: (type: 'message', listener: ($event: MessageEvent<unknown>) => void) => void;
|
|
179
|
+
/**
|
|
180
|
+
* Posts a message.
|
|
181
|
+
*
|
|
182
|
+
* @param message - The message.
|
|
183
|
+
* @param transfer - The objects to transfer.
|
|
184
|
+
*/
|
|
185
|
+
readonly postMessage: (message: unknown, transfer: Transferable[]) => void;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Any message sent to the worker.
|
|
189
|
+
*/
|
|
190
|
+
export type WorkerRequestMessage = WorkerCallMessage | WorkerCancelMessage;
|
|
191
|
+
/**
|
|
192
|
+
* Any message sent by the worker.
|
|
193
|
+
*/
|
|
194
|
+
export type WorkerResponseMessage = WorkerErrorMessage | WorkerResultMessage;
|
|
195
|
+
/**
|
|
196
|
+
* A successful call, answered by the worker.
|
|
197
|
+
*/
|
|
198
|
+
export interface WorkerResultMessage {
|
|
199
|
+
/**
|
|
200
|
+
* The id of the call.
|
|
201
|
+
*/
|
|
202
|
+
readonly id: number;
|
|
203
|
+
/**
|
|
204
|
+
* The message kind.
|
|
205
|
+
*/
|
|
206
|
+
readonly kind: 'result';
|
|
207
|
+
/**
|
|
208
|
+
* The protocol tag.
|
|
209
|
+
*/
|
|
210
|
+
readonly protocol: typeof WORKER_PROTOCOL;
|
|
211
|
+
/**
|
|
212
|
+
* The result.
|
|
213
|
+
*/
|
|
214
|
+
readonly value: unknown;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Exposes handlers to the main thread. Call it once, at the top level of a worker entry point.
|
|
218
|
+
*
|
|
219
|
+
* A handler that throws or rejects answers with a {@link SerializedWorkerError}, which the caller receives as a
|
|
220
|
+
* `WorkerCallError`. An unknown method answers with an error too, so a caller never waits for nothing.
|
|
221
|
+
*
|
|
222
|
+
* @typeParam TApi - The API type.
|
|
223
|
+
* @param handlers - The handlers.
|
|
224
|
+
* @param port - The port to talk through. Defaults to the worker's global scope.
|
|
225
|
+
*/
|
|
226
|
+
export declare function exposeWorkerApi<TApi extends WorkerApi<TApi>>(handlers: WorkerApiHandlers<TApi>, port?: WorkerMessagePort): void;
|
|
227
|
+
/**
|
|
228
|
+
* Calls one handler by name, as the worker does. `WorkerComponent` uses it for its main-thread fallback, so both paths
|
|
229
|
+
* behave alike.
|
|
230
|
+
*
|
|
231
|
+
* @param handlers - The handlers.
|
|
232
|
+
* @param method - The method name.
|
|
233
|
+
* @param callArguments - The arguments.
|
|
234
|
+
* @param context - The call context.
|
|
235
|
+
* @returns The result, or a {@link TransferredValue} wrapping it.
|
|
236
|
+
*/
|
|
237
|
+
export declare function invokeWorkerHandler(handlers: object, method: string, callArguments: readonly unknown[], context: WorkerCallContext): Promise<unknown>;
|
|
238
|
+
/**
|
|
239
|
+
* Tells whether a value is a {@link TransferredValue}.
|
|
240
|
+
*
|
|
241
|
+
* @param value - The value.
|
|
242
|
+
* @returns Whether it is one.
|
|
243
|
+
*/
|
|
244
|
+
export declare function isTransferredValue(value: unknown): value is TransferredValue<unknown>;
|
|
245
|
+
/**
|
|
246
|
+
* Tells whether a message is a request of this protocol.
|
|
247
|
+
*
|
|
248
|
+
* @param message - The message.
|
|
249
|
+
* @returns Whether it is one.
|
|
250
|
+
*/
|
|
251
|
+
export declare function isWorkerRequestMessage(message: unknown): message is WorkerRequestMessage;
|
|
252
|
+
/**
|
|
253
|
+
* Tells whether a message is a response of this protocol.
|
|
254
|
+
*
|
|
255
|
+
* @param message - The message.
|
|
256
|
+
* @returns Whether it is one.
|
|
257
|
+
*/
|
|
258
|
+
export declare function isWorkerResponseMessage(message: unknown): message is WorkerResponseMessage;
|
|
259
|
+
/**
|
|
260
|
+
* Reduces a thrown value to plain data.
|
|
261
|
+
*
|
|
262
|
+
* @param error - The thrown value.
|
|
263
|
+
* @returns The serialized error.
|
|
264
|
+
*/
|
|
265
|
+
export declare function serializeWorkerError(error: unknown): SerializedWorkerError;
|
|
266
|
+
/**
|
|
267
|
+
* Splits a result into the value to post and the objects to transfer.
|
|
268
|
+
*
|
|
269
|
+
* @param result - A result, possibly wrapped by {@link withTransfer}.
|
|
270
|
+
* @returns The value and its transfer list.
|
|
271
|
+
*/
|
|
272
|
+
export declare function unwrapTransferredValue(result: unknown): UnwrappedTransferredValue;
|
|
273
|
+
/**
|
|
274
|
+
* Marks a result to transfer some of its objects (an `ArrayBuffer`, a `MessagePort`, an `OffscreenCanvas`...) instead
|
|
275
|
+
* of copying them. A transferred object is unusable on the sending side afterwards.
|
|
276
|
+
*
|
|
277
|
+
* @typeParam TValue - The value type.
|
|
278
|
+
* @param value - The value.
|
|
279
|
+
* @param transfer - The objects inside it to transfer.
|
|
280
|
+
* @returns The wrapped value.
|
|
281
|
+
*/
|
|
282
|
+
export declare function withTransfer<TValue>(value: TValue, transfer: readonly Transferable[]): TransferredValue<TValue>;
|
|
@@ -0,0 +1,113 @@
|
|
|
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
|
+
|
|
6
|
+
const WORKER_PROTOCOL = "obsidian-lib-worker-v1";
|
|
7
|
+
function exposeWorkerApi(handlers, port) {
|
|
8
|
+
const messagePort = port ?? getWorkerGlobalScope();
|
|
9
|
+
const abortControllers = /* @__PURE__ */ new Map();
|
|
10
|
+
messagePort.addEventListener("message", ($event) => {
|
|
11
|
+
const message = $event.data;
|
|
12
|
+
if (!isWorkerRequestMessage(message)) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (message.kind === "cancel") {
|
|
16
|
+
abortControllers.get(message.id)?.abort(new Error("The call was cancelled"));
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const abortController = new AbortController();
|
|
20
|
+
abortControllers.set(message.id, abortController);
|
|
21
|
+
void answerCall(message, abortController.signal);
|
|
22
|
+
});
|
|
23
|
+
async function answerCall(message, abortSignal) {
|
|
24
|
+
let response;
|
|
25
|
+
try {
|
|
26
|
+
const value = await invokeWorkerHandler(handlers, message.method, message.arguments, { abortSignal });
|
|
27
|
+
response = { id: message.id, kind: "result", protocol: WORKER_PROTOCOL, value };
|
|
28
|
+
} catch (error) {
|
|
29
|
+
response = { error: serializeWorkerError(error), id: message.id, kind: "error", protocol: WORKER_PROTOCOL };
|
|
30
|
+
}
|
|
31
|
+
abortControllers.delete(message.id);
|
|
32
|
+
postResponse(messagePort, response);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function invokeWorkerHandler(handlers, method, callArguments, context) {
|
|
36
|
+
const handler = Object.hasOwn(handlers, method) ? handlers[method] : void 0;
|
|
37
|
+
if (typeof handler !== "function") {
|
|
38
|
+
throw new TypeError(`The worker exposes no method named '${method}'`);
|
|
39
|
+
}
|
|
40
|
+
return await handler.apply(context, [...callArguments]);
|
|
41
|
+
}
|
|
42
|
+
function isTransferredValue(value) {
|
|
43
|
+
return typeof value === "object" && value !== null && value.__obsidianLibTransferredValue === true;
|
|
44
|
+
}
|
|
45
|
+
function isWorkerRequestMessage(message) {
|
|
46
|
+
if (!hasProtocol(message)) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
const candidate = message;
|
|
50
|
+
if (typeof candidate.id !== "number") {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (candidate.kind === "cancel") {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
return candidate.kind === "call" && typeof candidate.method === "string" && Array.isArray(candidate.arguments);
|
|
57
|
+
}
|
|
58
|
+
function isWorkerResponseMessage(message) {
|
|
59
|
+
if (!hasProtocol(message)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
const candidate = message;
|
|
63
|
+
if (typeof candidate.id !== "number") {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
if (candidate.kind === "result") {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
return candidate.kind === "error" && typeof candidate.error === "object";
|
|
70
|
+
}
|
|
71
|
+
function serializeWorkerError(error) {
|
|
72
|
+
if (!(error instanceof Error)) {
|
|
73
|
+
return { message: String(error), name: "Error" };
|
|
74
|
+
}
|
|
75
|
+
return error.stack === void 0 ? { message: error.message, name: error.name } : { message: error.message, name: error.name, stack: error.stack };
|
|
76
|
+
}
|
|
77
|
+
function unwrapTransferredValue(result) {
|
|
78
|
+
return isTransferredValue(result) ? { transfer: [...result.transfer], value: result.value } : { transfer: [], value: result };
|
|
79
|
+
}
|
|
80
|
+
function withTransfer(value, transfer) {
|
|
81
|
+
return { __obsidianLibTransferredValue: true, transfer, value };
|
|
82
|
+
}
|
|
83
|
+
function getWorkerGlobalScope() {
|
|
84
|
+
const scope = globalThis;
|
|
85
|
+
return scope;
|
|
86
|
+
}
|
|
87
|
+
function hasProtocol(message) {
|
|
88
|
+
return typeof message === "object" && message !== null && message.protocol === WORKER_PROTOCOL;
|
|
89
|
+
}
|
|
90
|
+
function postResponse(port, response) {
|
|
91
|
+
if (response.kind === "error") {
|
|
92
|
+
port.postMessage(response, []);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const { transfer, value } = unwrapTransferredValue(response.value);
|
|
96
|
+
try {
|
|
97
|
+
port.postMessage({ ...response, value }, transfer);
|
|
98
|
+
} catch (error) {
|
|
99
|
+
port.postMessage({ error: serializeWorkerError(error), id: response.id, kind: "error", protocol: WORKER_PROTOCOL }, []);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
WORKER_PROTOCOL,
|
|
104
|
+
exposeWorkerApi,
|
|
105
|
+
invokeWorkerHandler,
|
|
106
|
+
isTransferredValue,
|
|
107
|
+
isWorkerRequestMessage,
|
|
108
|
+
isWorkerResponseMessage,
|
|
109
|
+
serializeWorkerError,
|
|
110
|
+
unwrapTransferredValue,
|
|
111
|
+
withTransfer
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3dvcmtlci1wcm90b2NvbC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBtZXNzYWdlIHByb3RvY29sIGJldHdlZW4gYFdvcmtlckNvbXBvbmVudGAgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB7QGxpbmsgZXhwb3NlV29ya2VyQXBpfSBpbnNpZGUgYSB3b3JrZXIuXG4gKlxuICogVGhpcyBtb2R1bGUgaW1wb3J0cyBub3RoaW5nLCBzbyBhIHdvcmtlciBlbnRyeSBwb2ludCBidW5kbGVkIGJ5IGBAbW5hb3Vtb3Yvb2JzaWRpYW4tZGV2LXRvb2xraXRgJ3MgYHdvcmtlcnNgIGZlYXR1cmVcbiAqIGNhbiBpbXBvcnQgaXQ6IGEgd29ya2VyIGhhcyBubyBgb2JzaWRpYW5gIG1vZHVsZSBhbmQgbm8gTm9kZSBidWlsdGlucy4gSXRzIG1lc3NhZ2Ugc2hhcGVzIGFyZSBhIHdpcmUgZm9ybWF0IGJldHdlZW5cbiAqIHRoZSBwbHVnaW4ncyBtYWluIGJ1bmRsZSBhbmQgaXRzIHdvcmtlciBidW5kbGUsIHdoaWNoIG1heSBjb21lIGZyb20gZGlmZmVyZW50IGNvcGllcyBvZiB0aGlzIGxpYnJhcnksIHNvIGZpZWxkcyBhcmVcbiAqIG9ubHkgZXZlciBhZGRlZCBhbmQgYSBjaGFuZ2Ugb2YgbWVhbmluZyBtb3ZlcyB0byBhIG5ldyB7QGxpbmsgV09SS0VSX1BST1RPQ09MfSB2YWx1ZS5cbiAqL1xuXG4vKipcbiAqIFRoZSB0YWcgZXZlcnkgbWVzc2FnZSBvZiB0aGlzIHByb3RvY29sIGNhcnJpZXMuIE1lc3NhZ2VzIHdpdGhvdXQgaXQgYXJlIGlnbm9yZWQgb24gYm90aCBzaWRlcywgc28gYSB3b3JrZXIgY2FuXG4gKiBleGNoYW5nZSBpdHMgb3duIG1lc3NhZ2VzIHRvby5cbiAqL1xuZXhwb3J0IGNvbnN0IFdPUktFUl9QUk9UT0NPTCA9ICdvYnNpZGlhbi1saWItd29ya2VyLXYxJztcblxuLyoqXG4gKiBBbiBlcnJvciByZWR1Y2VkIHRvIHBsYWluIGRhdGEsIGJlY2F1c2UgYW4gYEVycm9yYCBsb3NlcyBpdHMgY2xhc3MgYWNyb3NzIHRoZSB3b3JrZXIgYm91bmRhcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZFdvcmtlckVycm9yIHtcbiAgLyoqXG4gICAqIFRoZSBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZXJyb3IgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YWNrIGluIHRoZSB3b3JrZXIsIHdoZW4gdGhlcmUgd2FzIG9uZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcmVzdWx0IG1hcmtlZCB0byB0cmFuc2ZlciBzb21lIG9mIGl0cyBvYmplY3RzIHJhdGhlciB0aGFuIGNvcHkgdGhlbS4gQnVpbGQgaXQgd2l0aCB7QGxpbmsgd2l0aFRyYW5zZmVyfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFRWYWx1ZSAtIFRoZSB2YWx1ZSB0eXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZmVycmVkVmFsdWU8VFZhbHVlPiB7XG4gIC8qKlxuICAgKiBUaGUgbWFya2VyIHRoYXQgaWRlbnRpZmllcyB0aGUgd3JhcHBlciBzdHJ1Y3R1cmFsbHksIHNvIGEgd3JhcHBlciBidWlsdCBieSBhbm90aGVyIGNvcHkgb2YgdGhpcyBsaWJyYXJ5IGlzXG4gICAqIHJlY29nbml6ZWQgdG9vLlxuICAgKi9cbiAgcmVhZG9ubHkgX19vYnNpZGlhbkxpYlRyYW5zZmVycmVkVmFsdWU6IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBvYmplY3RzIHRvIHRyYW5zZmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmZXI6IHJlYWRvbmx5IFRyYW5zZmVyYWJsZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogVFZhbHVlO1xufVxuXG4vKipcbiAqIEEgdmFsdWUgc3BsaXQgZnJvbSBpdHMgdHJhbnNmZXIgbGlzdCwgcmVhZHkgdG8gcG9zdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbndyYXBwZWRUcmFuc2ZlcnJlZFZhbHVlIHtcbiAgLyoqXG4gICAqIFRoZSBvYmplY3RzIHRvIHRyYW5zZmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNmZXI6IFRyYW5zZmVyYWJsZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gcG9zdC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEFuIEFQSSBhIHdvcmtlciBleHBvc2VzOiBhbiBvYmplY3Qgd2hvc2UgZXZlcnkgbWVtYmVyIGlzIGEgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBUQXBpIC0gVGhlIEFQSSB0eXBlLlxuICovXG5leHBvcnQgdHlwZSBXb3JrZXJBcGk8VEFwaT4gPSB7IHJlYWRvbmx5IFtUTWV0aG9kIGluIGtleW9mIFRBcGldOiAoLi4ucGFyYW1ldGVyczogbmV2ZXJbXSkgPT4gdW5rbm93biB9O1xuXG4vKipcbiAqIFRoZSBoYW5kbGVycyBpbXBsZW1lbnRpbmcgYSB7QGxpbmsgV29ya2VyQXBpfSwgd2l0aCB0aGUge0BsaW5rIFdvcmtlckNhbGxDb250ZXh0fSBhcyBgdGhpc2AuXG4gKlxuICogRWFjaCBoYW5kbGVyIHRha2VzIHRoZSBtZXRob2QncyBhcmd1bWVudHMgYW5kIHJldHVybnMgaXRzIHJlc3VsdCwgb3IgYSBwcm9taXNlIG9mIGl0LCBvciB0aGUgcmVzdWx0IHdyYXBwZWQgYnlcbiAqIHtAbGluayB3aXRoVHJhbnNmZXJ9IHRvIHRyYW5zZmVyIGJ1ZmZlcnMgYmFjayBpbnN0ZWFkIG9mIGNvcHlpbmcgdGhlbS4gRGVjbGFyZSB0aGUgaGFuZGxlcnMgYXMgbWV0aG9kcyBvciBgZnVuY3Rpb25gXG4gKiBleHByZXNzaW9ucywgbm90IGFycm93IGZ1bmN0aW9ucywgd2hlbiB0aGV5IG5lZWQgYHRoaXNgLlxuICpcbiAqIEB0eXBlUGFyYW0gVEFwaSAtIFRoZSBBUEkgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgV29ya2VyQXBpSGFuZGxlcnM8VEFwaSBleHRlbmRzIFdvcmtlckFwaTxUQXBpPj4gPSB7XG4gIHJlYWRvbmx5IFtUTWV0aG9kIGluIGtleW9mIFRBcGldOiAoXG4gICAgdGhpczogV29ya2VyQ2FsbENvbnRleHQsXG4gICAgLi4ucGFyYW1ldGVyczogUGFyYW1ldGVyczxUQXBpW1RNZXRob2RdPlxuICApID0+IFdvcmtlckhhbmRsZXJSZXN1bHQ8QXdhaXRlZDxSZXR1cm5UeXBlPFRBcGlbVE1ldGhvZF0+Pj47XG59O1xuXG4vKipcbiAqIFRoZSBjb250ZXh0IG9mIG9uZSBjYWxsLCBwYXNzZWQgdG8gYSBoYW5kbGVyIGFzIGB0aGlzYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZXJDYWxsQ29udGV4dCB7XG4gIC8qKlxuICAgKiBBYm9ydGVkIHdoZW4gdGhlIGNhbGxlciBjYW5jZWxzIHRoZSBjYWxsLiBBIGxvbmcgaGFuZGxlciBjaGVja3MgaXQgYmV0d2VlbiBzdGVwczsgbm90aGluZyBpbnRlcnJ1cHRzIGEgc3luY2hyb25vdXNcbiAgICogbG9vcCwgc28gYSBqb2IgdGhhdCBjYW5ub3QgY2hlY2sgaXQgaXMgc3RvcHBlZCBvbmx5IGJ5IHRlcm1pbmF0aW5nIHRoZSB3b3JrZXIuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWw7XG59XG5cbi8qKlxuICogQSBjYWxsIGZyb20gdGhlIG1haW4gdGhyZWFkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtlckNhbGxNZXNzYWdlIHtcbiAgLyoqXG4gICAqIFRoZSBtZXRob2QncyBhcmd1bWVudHMuXG4gICAqL1xuICByZWFkb25seSBhcmd1bWVudHM6IHJlYWRvbmx5IHVua25vd25bXTtcblxuICAvKipcbiAgICogVGhlIGNhbGwgaWQsIHVuaXF1ZSBwZXIgYFdvcmtlckNvbXBvbmVudGAuXG4gICAqL1xuICByZWFkb25seSBpZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSBraW5kLlxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogJ2NhbGwnO1xuXG4gIC8qKlxuICAgKiBUaGUgbWV0aG9kIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3RvY29sIHRhZy5cbiAgICovXG4gIHJlYWRvbmx5IHByb3RvY29sOiB0eXBlb2YgV09SS0VSX1BST1RPQ09MO1xufVxuXG4vKipcbiAqIEEgY2FuY2VsbGF0aW9uIG9mIGEgY2FsbCBmcm9tIHRoZSBtYWluIHRocmVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZXJDYW5jZWxNZXNzYWdlIHtcbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgY2FsbCB0byBjYW5jZWwuXG4gICAqL1xuICByZWFkb25seSBpZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSBraW5kLlxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogJ2NhbmNlbCc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm90b2NvbCB0YWcuXG4gICAqL1xuICByZWFkb25seSBwcm90b2NvbDogdHlwZW9mIFdPUktFUl9QUk9UT0NPTDtcbn1cblxuLyoqXG4gKiBBIGZhaWxlZCBjYWxsLCBhbnN3ZXJlZCBieSB0aGUgd29ya2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtlckVycm9yTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBUaGUgZXJyb3IsIHJlZHVjZWQgdG8gcGxhaW4gZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGVycm9yOiBTZXJpYWxpemVkV29ya2VyRXJyb3I7XG5cbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgY2FsbC5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIGtpbmQuXG4gICAqL1xuICByZWFkb25seSBraW5kOiAnZXJyb3InO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvdG9jb2wgdGFnLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdG9jb2w6IHR5cGVvZiBXT1JLRVJfUFJPVE9DT0w7XG59XG5cbi8qKlxuICogV2hhdCBhIGhhbmRsZXIgbWF5IHJldHVybi5cbiAqXG4gKiBAdHlwZVBhcmFtIFRSZXN1bHQgLSBUaGUgbWV0aG9kJ3MgcmVzdWx0IHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIFdvcmtlckhhbmRsZXJSZXN1bHQ8VFJlc3VsdD4gPSBQcm9taXNlPFRyYW5zZmVycmVkVmFsdWU8VFJlc3VsdD4gfCBUUmVzdWx0PiB8IFRyYW5zZmVycmVkVmFsdWU8VFJlc3VsdD4gfCBUUmVzdWx0O1xuXG4vKipcbiAqIFRoZSBwb3J0IGEgd29ya2VyIHRhbGtzIHRocm91Z2g6IHRoZSB3b3JrZXIncyBnbG9iYWwgc2NvcGUsIG9yIGEgdGVzdCBkb3VibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2VyTWVzc2FnZVBvcnQge1xuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byBtZXNzYWdlcy5cbiAgICpcbiAgICogQHBhcmFtIHR5cGUgLSBBbHdheXMgYG1lc3NhZ2VgLlxuICAgKiBAcGFyYW0gbGlzdGVuZXIgLSBUaGUgbGlzdGVuZXIuXG4gICAqL1xuICByZWFkb25seSBhZGRFdmVudExpc3RlbmVyOiAodHlwZTogJ21lc3NhZ2UnLCBsaXN0ZW5lcjogKCRldmVudDogTWVzc2FnZUV2ZW50PHVua25vd24+KSA9PiB2b2lkKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBQb3N0cyBhIG1lc3NhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB0cmFuc2ZlciAtIFRoZSBvYmplY3RzIHRvIHRyYW5zZmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9zdE1lc3NhZ2U6IChtZXNzYWdlOiB1bmtub3duLCB0cmFuc2ZlcjogVHJhbnNmZXJhYmxlW10pID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQW55IG1lc3NhZ2Ugc2VudCB0byB0aGUgd29ya2VyLlxuICovXG5leHBvcnQgdHlwZSBXb3JrZXJSZXF1ZXN0TWVzc2FnZSA9IFdvcmtlckNhbGxNZXNzYWdlIHwgV29ya2VyQ2FuY2VsTWVzc2FnZTtcblxuLyoqXG4gKiBBbnkgbWVzc2FnZSBzZW50IGJ5IHRoZSB3b3JrZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFdvcmtlclJlc3BvbnNlTWVzc2FnZSA9IFdvcmtlckVycm9yTWVzc2FnZSB8IFdvcmtlclJlc3VsdE1lc3NhZ2U7XG5cbi8qKlxuICogQSBzdWNjZXNzZnVsIGNhbGwsIGFuc3dlcmVkIGJ5IHRoZSB3b3JrZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2VyUmVzdWx0TWVzc2FnZSB7XG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIGNhbGwuXG4gICAqL1xuICByZWFkb25seSBpZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSBraW5kLlxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogJ3Jlc3VsdCc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm90b2NvbCB0YWcuXG4gICAqL1xuICByZWFkb25seSBwcm90b2NvbDogdHlwZW9mIFdPUktFUl9QUk9UT0NPTDtcblxuICAvKipcbiAgICogVGhlIHJlc3VsdC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiB1bmtub3duO1xufVxuXG5pbnRlcmZhY2UgUHJvdG9jb2xUYWdnZWRNZXNzYWdlIHtcbiAgcmVhZG9ubHkgcHJvdG9jb2w/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIEV4cG9zZXMgaGFuZGxlcnMgdG8gdGhlIG1haW4gdGhyZWFkLiBDYWxsIGl0IG9uY2UsIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSB3b3JrZXIgZW50cnkgcG9pbnQuXG4gKlxuICogQSBoYW5kbGVyIHRoYXQgdGhyb3dzIG9yIHJlamVjdHMgYW5zd2VycyB3aXRoIGEge0BsaW5rIFNlcmlhbGl6ZWRXb3JrZXJFcnJvcn0sIHdoaWNoIHRoZSBjYWxsZXIgcmVjZWl2ZXMgYXMgYVxuICogYFdvcmtlckNhbGxFcnJvcmAuIEFuIHVua25vd24gbWV0aG9kIGFuc3dlcnMgd2l0aCBhbiBlcnJvciB0b28sIHNvIGEgY2FsbGVyIG5ldmVyIHdhaXRzIGZvciBub3RoaW5nLlxuICpcbiAqIEB0eXBlUGFyYW0gVEFwaSAtIFRoZSBBUEkgdHlwZS5cbiAqIEBwYXJhbSBoYW5kbGVycyAtIFRoZSBoYW5kbGVycy5cbiAqIEBwYXJhbSBwb3J0IC0gVGhlIHBvcnQgdG8gdGFsayB0aHJvdWdoLiBEZWZhdWx0cyB0byB0aGUgd29ya2VyJ3MgZ2xvYmFsIHNjb3BlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwb3NlV29ya2VyQXBpPFRBcGkgZXh0ZW5kcyBXb3JrZXJBcGk8VEFwaT4+KGhhbmRsZXJzOiBXb3JrZXJBcGlIYW5kbGVyczxUQXBpPiwgcG9ydD86IFdvcmtlck1lc3NhZ2VQb3J0KTogdm9pZCB7XG4gIGNvbnN0IG1lc3NhZ2VQb3J0ID0gcG9ydCA/PyBnZXRXb3JrZXJHbG9iYWxTY29wZSgpO1xuICBjb25zdCBhYm9ydENvbnRyb2xsZXJzID0gbmV3IE1hcDxudW1iZXIsIEFib3J0Q29udHJvbGxlcj4oKTtcblxuICBtZXNzYWdlUG9ydC5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKCRldmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSAkZXZlbnQuZGF0YTtcbiAgICBpZiAoIWlzV29ya2VyUmVxdWVzdE1lc3NhZ2UobWVzc2FnZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobWVzc2FnZS5raW5kID09PSAnY2FuY2VsJykge1xuICAgICAgYWJvcnRDb250cm9sbGVycy5nZXQobWVzc2FnZS5pZCk/LmFib3J0KG5ldyBFcnJvcignVGhlIGNhbGwgd2FzIGNhbmNlbGxlZCcpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgYWJvcnRDb250cm9sbGVycy5zZXQobWVzc2FnZS5pZCwgYWJvcnRDb250cm9sbGVyKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdm9pZCAtLSBgYW5zd2VyQ2FsbGAgbmV2ZXIgcmVqZWN0czogaXQgYW5zd2VycyBldmVyeSBmYWlsdXJlIGFzIGEgbWVzc2FnZS5cbiAgICB2b2lkIGFuc3dlckNhbGwobWVzc2FnZSwgYWJvcnRDb250cm9sbGVyLnNpZ25hbCk7XG4gIH0pO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIGFuc3dlckNhbGwobWVzc2FnZTogV29ya2VyQ2FsbE1lc3NhZ2UsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCByZXNwb25zZTogV29ya2VyUmVzcG9uc2VNZXNzYWdlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IGludm9rZVdvcmtlckhhbmRsZXIoaGFuZGxlcnMsIG1lc3NhZ2UubWV0aG9kLCBtZXNzYWdlLmFyZ3VtZW50cywgeyBhYm9ydFNpZ25hbCB9KTtcbiAgICAgIHJlc3BvbnNlID0geyBpZDogbWVzc2FnZS5pZCwga2luZDogJ3Jlc3VsdCcsIHByb3RvY29sOiBXT1JLRVJfUFJPVE9DT0wsIHZhbHVlIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJlc3BvbnNlID0geyBlcnJvcjogc2VyaWFsaXplV29ya2VyRXJyb3IoZXJyb3IpLCBpZDogbWVzc2FnZS5pZCwga2luZDogJ2Vycm9yJywgcHJvdG9jb2w6IFdPUktFUl9QUk9UT0NPTCB9O1xuICAgIH1cbiAgICBhYm9ydENvbnRyb2xsZXJzLmRlbGV0ZShtZXNzYWdlLmlkKTtcbiAgICBwb3N0UmVzcG9uc2UobWVzc2FnZVBvcnQsIHJlc3BvbnNlKTtcbiAgfVxufVxuXG4vKipcbiAqIENhbGxzIG9uZSBoYW5kbGVyIGJ5IG5hbWUsIGFzIHRoZSB3b3JrZXIgZG9lcy4gYFdvcmtlckNvbXBvbmVudGAgdXNlcyBpdCBmb3IgaXRzIG1haW4tdGhyZWFkIGZhbGxiYWNrLCBzbyBib3RoIHBhdGhzXG4gKiBiZWhhdmUgYWxpa2UuXG4gKlxuICogQHBhcmFtIGhhbmRsZXJzIC0gVGhlIGhhbmRsZXJzLlxuICogQHBhcmFtIG1ldGhvZCAtIFRoZSBtZXRob2QgbmFtZS5cbiAqIEBwYXJhbSBjYWxsQXJndW1lbnRzIC0gVGhlIGFyZ3VtZW50cy5cbiAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNhbGwgY29udGV4dC5cbiAqIEByZXR1cm5zIFRoZSByZXN1bHQsIG9yIGEge0BsaW5rIFRyYW5zZmVycmVkVmFsdWV9IHdyYXBwaW5nIGl0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW52b2tlV29ya2VySGFuZGxlcihcbiAgaGFuZGxlcnM6IG9iamVjdCxcbiAgbWV0aG9kOiBzdHJpbmcsXG4gIGNhbGxBcmd1bWVudHM6IHJlYWRvbmx5IHVua25vd25bXSxcbiAgY29udGV4dDogV29ya2VyQ2FsbENvbnRleHRcbik6IFByb21pc2U8dW5rbm93bj4ge1xuICBjb25zdCBoYW5kbGVyID0gT2JqZWN0Lmhhc093bihoYW5kbGVycywgbWV0aG9kKSA/IChoYW5kbGVycyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbWV0aG9kXSA6IHVuZGVmaW5lZDtcbiAgaWYgKHR5cGVvZiBoYW5kbGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgVGhlIHdvcmtlciBleHBvc2VzIG5vIG1ldGhvZCBuYW1lZCAnJHttZXRob2R9J2ApO1xuICB9XG4gIHJldHVybiBhd2FpdCAoaGFuZGxlciBhcyAodGhpczogV29ya2VyQ2FsbENvbnRleHQsIC4uLmhhbmRsZXJBcmd1bWVudHM6IHVua25vd25bXSkgPT4gdW5rbm93bikuYXBwbHkoY29udGV4dCwgWy4uLmNhbGxBcmd1bWVudHNdKTtcbn1cblxuLyoqXG4gKiBUZWxscyB3aGV0aGVyIGEgdmFsdWUgaXMgYSB7QGxpbmsgVHJhbnNmZXJyZWRWYWx1ZX0uXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlLlxuICogQHJldHVybnMgV2hldGhlciBpdCBpcyBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RyYW5zZmVycmVkVmFsdWUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBUcmFuc2ZlcnJlZFZhbHVlPHVua25vd24+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgKHZhbHVlIGFzIFBhcnRpYWw8VHJhbnNmZXJyZWRWYWx1ZTx1bmtub3duPj4pLl9fb2JzaWRpYW5MaWJUcmFuc2ZlcnJlZFZhbHVlID09PSB0cnVlO1xufVxuXG4vKipcbiAqIFRlbGxzIHdoZXRoZXIgYSBtZXNzYWdlIGlzIGEgcmVxdWVzdCBvZiB0aGlzIHByb3RvY29sLlxuICpcbiAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UuXG4gKiBAcmV0dXJucyBXaGV0aGVyIGl0IGlzIG9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzV29ya2VyUmVxdWVzdE1lc3NhZ2UobWVzc2FnZTogdW5rbm93bik6IG1lc3NhZ2UgaXMgV29ya2VyUmVxdWVzdE1lc3NhZ2Uge1xuICBpZiAoIWhhc1Byb3RvY29sKG1lc3NhZ2UpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGNhbmRpZGF0ZSA9IG1lc3NhZ2UgYXMgUGFydGlhbDxXb3JrZXJDYWxsTWVzc2FnZT4gfCBQYXJ0aWFsPFdvcmtlckNhbmNlbE1lc3NhZ2U+O1xuICBpZiAodHlwZW9mIGNhbmRpZGF0ZS5pZCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGNhbmRpZGF0ZS5raW5kID09PSAnY2FuY2VsJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBjYW5kaWRhdGUua2luZCA9PT0gJ2NhbGwnICYmIHR5cGVvZiBjYW5kaWRhdGUubWV0aG9kID09PSAnc3RyaW5nJyAmJiBBcnJheS5pc0FycmF5KGNhbmRpZGF0ZS5hcmd1bWVudHMpO1xufVxuXG4vKipcbiAqIFRlbGxzIHdoZXRoZXIgYSBtZXNzYWdlIGlzIGEgcmVzcG9uc2Ugb2YgdGhpcyBwcm90b2NvbC5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlLlxuICogQHJldHVybnMgV2hldGhlciBpdCBpcyBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1dvcmtlclJlc3BvbnNlTWVzc2FnZShtZXNzYWdlOiB1bmtub3duKTogbWVzc2FnZSBpcyBXb3JrZXJSZXNwb25zZU1lc3NhZ2Uge1xuICBpZiAoIWhhc1Byb3RvY29sKG1lc3NhZ2UpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNvbnN0IGNhbmRpZGF0ZSA9IG1lc3NhZ2UgYXMgUGFydGlhbDxXb3JrZXJFcnJvck1lc3NhZ2U+IHwgUGFydGlhbDxXb3JrZXJSZXN1bHRNZXNzYWdlPjtcbiAgaWYgKHR5cGVvZiBjYW5kaWRhdGUuaWQgIT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChjYW5kaWRhdGUua2luZCA9PT0gJ3Jlc3VsdCcpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gY2FuZGlkYXRlLmtpbmQgPT09ICdlcnJvcicgJiYgdHlwZW9mIGNhbmRpZGF0ZS5lcnJvciA9PT0gJ29iamVjdCc7XG59XG5cbi8qKlxuICogUmVkdWNlcyBhIHRocm93biB2YWx1ZSB0byBwbGFpbiBkYXRhLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSB0aHJvd24gdmFsdWUuXG4gKiBAcmV0dXJucyBUaGUgc2VyaWFsaXplZCBlcnJvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVdvcmtlckVycm9yKGVycm9yOiB1bmtub3duKTogU2VyaWFsaXplZFdvcmtlckVycm9yIHtcbiAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikpIHtcbiAgICByZXR1cm4geyBtZXNzYWdlOiBTdHJpbmcoZXJyb3IpLCBuYW1lOiAnRXJyb3InIH07XG4gIH1cbiAgcmV0dXJuIGVycm9yLnN0YWNrID09PSB1bmRlZmluZWRcbiAgICA/IHsgbWVzc2FnZTogZXJyb3IubWVzc2FnZSwgbmFtZTogZXJyb3IubmFtZSB9XG4gICAgOiB7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIG5hbWU6IGVycm9yLm5hbWUsIHN0YWNrOiBlcnJvci5zdGFjayB9O1xufVxuXG4vKipcbiAqIFNwbGl0cyBhIHJlc3VsdCBpbnRvIHRoZSB2YWx1ZSB0byBwb3N0IGFuZCB0aGUgb2JqZWN0cyB0byB0cmFuc2Zlci5cbiAqXG4gKiBAcGFyYW0gcmVzdWx0IC0gQSByZXN1bHQsIHBvc3NpYmx5IHdyYXBwZWQgYnkge0BsaW5rIHdpdGhUcmFuc2Zlcn0uXG4gKiBAcmV0dXJucyBUaGUgdmFsdWUgYW5kIGl0cyB0cmFuc2ZlciBsaXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdW53cmFwVHJhbnNmZXJyZWRWYWx1ZShyZXN1bHQ6IHVua25vd24pOiBVbndyYXBwZWRUcmFuc2ZlcnJlZFZhbHVlIHtcbiAgcmV0dXJuIGlzVHJhbnNmZXJyZWRWYWx1ZShyZXN1bHQpXG4gICAgPyB7IHRyYW5zZmVyOiBbLi4ucmVzdWx0LnRyYW5zZmVyXSwgdmFsdWU6IHJlc3VsdC52YWx1ZSB9XG4gICAgOiB7IHRyYW5zZmVyOiBbXSwgdmFsdWU6IHJlc3VsdCB9O1xufVxuXG4vKipcbiAqIE1hcmtzIGEgcmVzdWx0IHRvIHRyYW5zZmVyIHNvbWUgb2YgaXRzIG9iamVjdHMgKGFuIGBBcnJheUJ1ZmZlcmAsIGEgYE1lc3NhZ2VQb3J0YCwgYW4gYE9mZnNjcmVlbkNhbnZhc2AuLi4pIGluc3RlYWRcbiAqIG9mIGNvcHlpbmcgdGhlbS4gQSB0cmFuc2ZlcnJlZCBvYmplY3QgaXMgdW51c2FibGUgb24gdGhlIHNlbmRpbmcgc2lkZSBhZnRlcndhcmRzLlxuICpcbiAqIEB0eXBlUGFyYW0gVFZhbHVlIC0gVGhlIHZhbHVlIHR5cGUuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUuXG4gKiBAcGFyYW0gdHJhbnNmZXIgLSBUaGUgb2JqZWN0cyBpbnNpZGUgaXQgdG8gdHJhbnNmZXIuXG4gKiBAcmV0dXJucyBUaGUgd3JhcHBlZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhUcmFuc2ZlcjxUVmFsdWU+KHZhbHVlOiBUVmFsdWUsIHRyYW5zZmVyOiByZWFkb25seSBUcmFuc2ZlcmFibGVbXSk6IFRyYW5zZmVycmVkVmFsdWU8VFZhbHVlPiB7XG4gIHJldHVybiB7IF9fb2JzaWRpYW5MaWJUcmFuc2ZlcnJlZFZhbHVlOiB0cnVlLCB0cmFuc2ZlciwgdmFsdWUgfTtcbn1cblxuZnVuY3Rpb24gZ2V0V29ya2VyR2xvYmFsU2NvcGUoKTogV29ya2VyTWVzc2FnZVBvcnQge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1nbG9iYWwtdGhpcyAtLSBBIHdvcmtlciBoYXMgbm8gYHdpbmRvd2A6IGl0cyBnbG9iYWwgc2NvcGUgaXMgdGhlIHBvcnQuXG4gIGNvbnN0IHNjb3BlOiB1bmtub3duID0gZ2xvYmFsVGhpcztcbiAgcmV0dXJuIHNjb3BlIGFzIFdvcmtlck1lc3NhZ2VQb3J0O1xufVxuXG5mdW5jdGlvbiBoYXNQcm90b2NvbChtZXNzYWdlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgbWVzc2FnZSA9PT0gJ29iamVjdCcgJiYgbWVzc2FnZSAhPT0gbnVsbCAmJiAobWVzc2FnZSBhcyBQcm90b2NvbFRhZ2dlZE1lc3NhZ2UpLnByb3RvY29sID09PSBXT1JLRVJfUFJPVE9DT0w7XG59XG5cbmZ1bmN0aW9uIHBvc3RSZXNwb25zZShwb3J0OiBXb3JrZXJNZXNzYWdlUG9ydCwgcmVzcG9uc2U6IFdvcmtlclJlc3BvbnNlTWVzc2FnZSk6IHZvaWQge1xuICBpZiAocmVzcG9uc2Uua2luZCA9PT0gJ2Vycm9yJykge1xuICAgIHBvcnQucG9zdE1lc3NhZ2UocmVzcG9uc2UsIFtdKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgeyB0cmFuc2ZlciwgdmFsdWUgfSA9IHVud3JhcFRyYW5zZmVycmVkVmFsdWUocmVzcG9uc2UudmFsdWUpO1xuICB0cnkge1xuICAgIHBvcnQucG9zdE1lc3NhZ2UoeyAuLi5yZXNwb25zZSwgdmFsdWUgfSwgdHJhbnNmZXIpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIEEgcmVzdWx0IHRoYXQgY2Fubm90IGJlIGNsb25lZCAoYSBmdW5jdGlvbiwgYSBET00gbm9kZSkgc3RpbGwgYW5zd2Vycywgc28gdGhlIGNhbGxlciBpcyBuZXZlciBsZWZ0IHdhaXRpbmcuXG4gICAgcG9ydC5wb3N0TWVzc2FnZSh7IGVycm9yOiBzZXJpYWxpemVXb3JrZXJFcnJvcihlcnJvciksIGlkOiByZXNwb25zZS5pZCwga2luZDogJ2Vycm9yJywgcHJvdG9jb2w6IFdPUktFUl9QUk9UT0NPTCB9LCBbXSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBZU8sTUFBTSxrQkFBa0I7QUFzUHhCLFNBQVMsZ0JBQThDLFVBQW1DLE1BQWdDO0FBQy9ILFFBQU0sY0FBYyxRQUFRLHFCQUFxQjtBQUNqRCxRQUFNLG1CQUFtQixvQkFBSSxJQUE2QjtBQUUxRCxjQUFZLGlCQUFpQixXQUFXLENBQUMsV0FBaUI7QUFDeEQsVUFBTSxVQUFVLE9BQU87QUFDdkIsUUFBSSxDQUFDLHVCQUF1QixPQUFPLEdBQUc7QUFDcEM7QUFBQSxJQUNGO0FBRUEsUUFBSSxRQUFRLFNBQVMsVUFBVTtBQUM3Qix1QkFBaUIsSUFBSSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksTUFBTSx3QkFBd0IsQ0FBQztBQUMzRTtBQUFBLElBQ0Y7QUFFQSxVQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtBQUM1QyxxQkFBaUIsSUFBSSxRQUFRLElBQUksZUFBZTtBQUVoRCxTQUFLLFdBQVcsU0FBUyxnQkFBZ0IsTUFBTTtBQUFBLEVBQ2pELENBQUM7QUFFRCxpQkFBZSxXQUFXLFNBQTRCLGFBQXlDO0FBQzdGLFFBQUk7QUFDSixRQUFJO0FBQ0YsWUFBTSxRQUFRLE1BQU0sb0JBQW9CLFVBQVUsUUFBUSxRQUFRLFFBQVEsV0FBVyxFQUFFLFlBQVksQ0FBQztBQUNwRyxpQkFBVyxFQUFFLElBQUksUUFBUSxJQUFJLE1BQU0sVUFBVSxVQUFVLGlCQUFpQixNQUFNO0FBQUEsSUFDaEYsU0FBUyxPQUFPO0FBQ2QsaUJBQVcsRUFBRSxPQUFPLHFCQUFxQixLQUFLLEdBQUcsSUFBSSxRQUFRLElBQUksTUFBTSxTQUFTLFVBQVUsZ0JBQWdCO0FBQUEsSUFDNUc7QUFDQSxxQkFBaUIsT0FBTyxRQUFRLEVBQUU7QUFDbEMsaUJBQWEsYUFBYSxRQUFRO0FBQUEsRUFDcEM7QUFDRjtBQVlBLGVBQXNCLG9CQUNwQixVQUNBLFFBQ0EsZUFDQSxTQUNrQjtBQUNsQixRQUFNLFVBQVUsT0FBTyxPQUFPLFVBQVUsTUFBTSxJQUFLLFNBQXFDLE1BQU0sSUFBSTtBQUNsRyxNQUFJLE9BQU8sWUFBWSxZQUFZO0FBQ2pDLFVBQU0sSUFBSSxVQUFVLHVDQUF1QyxNQUFNLEdBQUc7QUFBQSxFQUN0RTtBQUNBLFNBQU8sTUFBTyxRQUFpRixNQUFNLFNBQVMsQ0FBQyxHQUFHLGFBQWEsQ0FBQztBQUNsSTtBQVFPLFNBQVMsbUJBQW1CLE9BQW9EO0FBQ3JGLFNBQU8sT0FBTyxVQUFVLFlBQVksVUFBVSxRQUFTLE1BQTZDLGtDQUFrQztBQUN4STtBQVFPLFNBQVMsdUJBQXVCLFNBQW1EO0FBQ3hGLE1BQUksQ0FBQyxZQUFZLE9BQU8sR0FBRztBQUN6QixXQUFPO0FBQUEsRUFDVDtBQUNBLFFBQU0sWUFBWTtBQUNsQixNQUFJLE9BQU8sVUFBVSxPQUFPLFVBQVU7QUFDcEMsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLFVBQVUsU0FBUyxVQUFVO0FBQy9CLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxVQUFVLFNBQVMsVUFBVSxPQUFPLFVBQVUsV0FBVyxZQUFZLE1BQU0sUUFBUSxVQUFVLFNBQVM7QUFDL0c7QUFRTyxTQUFTLHdCQUF3QixTQUFvRDtBQUMxRixNQUFJLENBQUMsWUFBWSxPQUFPLEdBQUc7QUFDekIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxRQUFNLFlBQVk7QUFDbEIsTUFBSSxPQUFPLFVBQVUsT0FBTyxVQUFVO0FBQ3BDLFdBQU87QUFBQSxFQUNUO0FBQ0EsTUFBSSxVQUFVLFNBQVMsVUFBVTtBQUMvQixXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU8sVUFBVSxTQUFTLFdBQVcsT0FBTyxVQUFVLFVBQVU7QUFDbEU7QUFRTyxTQUFTLHFCQUFxQixPQUF1QztBQUMxRSxNQUFJLEVBQUUsaUJBQWlCLFFBQVE7QUFDN0IsV0FBTyxFQUFFLFNBQVMsT0FBTyxLQUFLLEdBQUcsTUFBTSxRQUFRO0FBQUEsRUFDakQ7QUFDQSxTQUFPLE1BQU0sVUFBVSxTQUNuQixFQUFFLFNBQVMsTUFBTSxTQUFTLE1BQU0sTUFBTSxLQUFLLElBQzNDLEVBQUUsU0FBUyxNQUFNLFNBQVMsTUFBTSxNQUFNLE1BQU0sT0FBTyxNQUFNLE1BQU07QUFDckU7QUFRTyxTQUFTLHVCQUF1QixRQUE0QztBQUNqRixTQUFPLG1CQUFtQixNQUFNLElBQzVCLEVBQUUsVUFBVSxDQUFDLEdBQUcsT0FBTyxRQUFRLEdBQUcsT0FBTyxPQUFPLE1BQU0sSUFDdEQsRUFBRSxVQUFVLENBQUMsR0FBRyxPQUFPLE9BQU87QUFDcEM7QUFXTyxTQUFTLGFBQXFCLE9BQWUsVUFBNkQ7QUFDL0csU0FBTyxFQUFFLCtCQUErQixNQUFNLFVBQVUsTUFBTTtBQUNoRTtBQUVBLFNBQVMsdUJBQTBDO0FBRWpELFFBQU0sUUFBaUI7QUFDdkIsU0FBTztBQUNUO0FBRUEsU0FBUyxZQUFZLFNBQTJCO0FBQzlDLFNBQU8sT0FBTyxZQUFZLFlBQVksWUFBWSxRQUFTLFFBQWtDLGFBQWE7QUFDNUc7QUFFQSxTQUFTLGFBQWEsTUFBeUIsVUFBdUM7QUFDcEYsTUFBSSxTQUFTLFNBQVMsU0FBUztBQUM3QixTQUFLLFlBQVksVUFBVSxDQUFDLENBQUM7QUFDN0I7QUFBQSxFQUNGO0FBQ0EsUUFBTSxFQUFFLFVBQVUsTUFBTSxJQUFJLHVCQUF1QixTQUFTLEtBQUs7QUFDakUsTUFBSTtBQUNGLFNBQUssWUFBWSxFQUFFLEdBQUcsVUFBVSxNQUFNLEdBQUcsUUFBUTtBQUFBLEVBQ25ELFNBQVMsT0FBTztBQUVkLFNBQUssWUFBWSxFQUFFLE9BQU8scUJBQXFCLEtBQUssR0FBRyxJQUFJLFNBQVMsSUFBSSxNQUFNLFNBQVMsVUFBVSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFBQSxFQUN4SDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnaoumov/obsidian-lib",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.0",
|
|
4
4
|
"description": "Runtime library for Obsidian plugin development: plugin base classes, components, settings, modals, vault and metadata helpers.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"obsidian",
|
|
@@ -347,11 +347,13 @@
|
|
|
347
347
|
"test": "jiti scripts/test.ts",
|
|
348
348
|
"test:coverage": "jiti scripts/test-coverage.ts",
|
|
349
349
|
"test:integration": "jiti scripts/test-integration.ts integration-tests obsidian-integration-tests",
|
|
350
|
+
"test:integration:android": "jiti scripts/test-integration.ts obsidian-integration-tests:android",
|
|
350
351
|
"test:mutation": "jiti scripts/test-mutation.ts",
|
|
351
352
|
"test:watch": "jiti scripts/test-watch.ts",
|
|
352
353
|
"version": "jiti scripts/version.ts"
|
|
353
354
|
},
|
|
354
355
|
"overrides": {
|
|
356
|
+
"@mnaoumov/typescript-lib": "$@mnaoumov/typescript-lib",
|
|
355
357
|
"@puppeteer/browsers": "^3.2.2",
|
|
356
358
|
"@vitest/coverage-v8": "$@vitest/coverage-v8",
|
|
357
359
|
"deepmerge-ts": "^8.0.2",
|
|
@@ -363,13 +365,12 @@
|
|
|
363
365
|
"katex": "^0.18.2",
|
|
364
366
|
"markdown-it@>=15.0.0": "^15.0.3",
|
|
365
367
|
"moment": "^2.31.0",
|
|
366
|
-
"re2js": "^2.9.1",
|
|
367
368
|
"smol-toml": "^1.8.0",
|
|
368
369
|
"typescript": "$typescript"
|
|
369
370
|
},
|
|
370
371
|
"dependencies": {
|
|
371
372
|
"@mnaoumov/obsidian-dataview": "^1.0.0",
|
|
372
|
-
"@mnaoumov/typescript-lib": "^
|
|
373
|
+
"@mnaoumov/typescript-lib": "^4.0.0",
|
|
373
374
|
"@standard-schema/spec": "^1.1.0",
|
|
374
375
|
"@types/react": "^19.3.0",
|
|
375
376
|
"compare-versions": "^6.1.1",
|
|
@@ -391,10 +392,10 @@
|
|
|
391
392
|
"@commitlint/cli": "^21.2.2",
|
|
392
393
|
"@commitlint/config-conventional": "^21.2.2",
|
|
393
394
|
"@lezer/common": "1.5.2",
|
|
394
|
-
"@mnaoumov/obsidian-dev-toolkit": "^
|
|
395
|
-
"@mnaoumov/typescript-dev-toolkit": "^
|
|
395
|
+
"@mnaoumov/obsidian-dev-toolkit": "^10.0.0",
|
|
396
|
+
"@mnaoumov/typescript-dev-toolkit": "^7.0.3",
|
|
396
397
|
"@mnaoumov/typescript-test-toolkit": "^1.0.3",
|
|
397
|
-
"@obsidian-typings/obsidian-public-latest": "^6.
|
|
398
|
+
"@obsidian-typings/obsidian-public-latest": "^6.60.0",
|
|
398
399
|
"@resvg/resvg-js": "^2.6.2",
|
|
399
400
|
"@stryker-mutator/core": "^10.1.1",
|
|
400
401
|
"@stryker-mutator/vitest-runner": "^10.1.1",
|
|
@@ -412,7 +413,7 @@
|
|
|
412
413
|
"esbuild": "^0.28.2",
|
|
413
414
|
"eslint": "^10.11.0",
|
|
414
415
|
"eslint-plugin-jsdoc": "^64.5.4",
|
|
415
|
-
"eslint-plugin-obsidianmd": "^0.
|
|
416
|
+
"eslint-plugin-obsidianmd": "^0.5.1",
|
|
416
417
|
"eslint-plugin-tsdoc": "^0.5.3",
|
|
417
418
|
"fake-indexeddb": "^6.2.6",
|
|
418
419
|
"fflate": "^0.8.3",
|
|
@@ -423,7 +424,7 @@
|
|
|
423
424
|
"nano-staged": "^1.0.2",
|
|
424
425
|
"obsidian": "^1.14.4",
|
|
425
426
|
"obsidian-integration-testing": "^17.7.4",
|
|
426
|
-
"obsidian-test-mocks": "^
|
|
427
|
+
"obsidian-test-mocks": "^8.0.0",
|
|
427
428
|
"prismjs": "^1.30.0",
|
|
428
429
|
"sass": "^1.104.1",
|
|
429
430
|
"satori": "^0.33.5",
|