@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
|
@@ -125,15 +125,19 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
125
125
|
var bug_report_exports = {};
|
|
126
126
|
__export(bug_report_exports, {
|
|
127
127
|
BUG_REPORT_ISSUE_FORM_TEMPLATE: () => BUG_REPORT_ISSUE_FORM_TEMPLATE,
|
|
128
|
+
BUG_REPORT_PASTE_INSTRUCTIONS: () => BUG_REPORT_PASTE_INSTRUCTIONS,
|
|
128
129
|
BugReportIssueFormFieldId: () => BugReportIssueFormFieldId,
|
|
130
|
+
DEFAULT_BUG_REPORT_MAX_URL_LENGTH: () => DEFAULT_BUG_REPORT_MAX_URL_LENGTH,
|
|
131
|
+
buildBugReportIssueFormLink: () => buildBugReportIssueFormLink,
|
|
129
132
|
formatBugReportEnvironment: () => formatBugReportEnvironment,
|
|
130
133
|
getBugReportEnvironment: () => getBugReportEnvironment,
|
|
131
134
|
getBugReportIssueFormUrl: () => getBugReportIssueFormUrl,
|
|
132
135
|
getGitHubIssueFormUrl: () => getGitHubIssueFormUrl
|
|
133
136
|
});
|
|
134
137
|
module.exports = __toCommonJS(bug_report_exports);
|
|
135
|
-
var import_obsidian = require(
|
|
136
|
-
var
|
|
138
|
+
var import_obsidian = require("obsidian");
|
|
139
|
+
var import_bug_report_diagnostics = require("./bug-report-diagnostics.cjs");
|
|
140
|
+
var import_mobile_app_info = require("./mobile-app-info.cjs");
|
|
137
141
|
var BugReportIssueFormFieldId = /* @__PURE__ */ ((BugReportIssueFormFieldId2) => {
|
|
138
142
|
BugReportIssueFormFieldId2["Environment"] = "environment";
|
|
139
143
|
BugReportIssueFormFieldId2["ObsidianVersion"] = "obsidian-version";
|
|
@@ -142,7 +146,31 @@ var BugReportIssueFormFieldId = /* @__PURE__ */ ((BugReportIssueFormFieldId2) =>
|
|
|
142
146
|
return BugReportIssueFormFieldId2;
|
|
143
147
|
})(BugReportIssueFormFieldId || {});
|
|
144
148
|
const BUG_REPORT_ISSUE_FORM_TEMPLATE = "bug_report.yml";
|
|
149
|
+
const DEFAULT_BUG_REPORT_MAX_URL_LENGTH = 6e3;
|
|
150
|
+
const BUG_REPORT_PASTE_INSTRUCTIONS = "The full environment and diagnostics were copied to your clipboard because they are too long for a link. Replace this text by pasting them here.";
|
|
145
151
|
const UNKNOWN = "unknown";
|
|
152
|
+
function buildBugReportIssueFormLink(params) {
|
|
153
|
+
const { environment } = params;
|
|
154
|
+
const diagnosticsMarkdown = (0, import_bug_report_diagnostics.formatBugReportDiagnostics)(params.diagnostics ?? []);
|
|
155
|
+
const environmentText = diagnosticsMarkdown === "" ? formatBugReportEnvironment(environment) : `${formatBugReportEnvironment(environment)}
|
|
156
|
+
|
|
157
|
+
${diagnosticsMarkdown}`;
|
|
158
|
+
function buildUrl(environmentFieldValue) {
|
|
159
|
+
return getGitHubIssueFormUrl({
|
|
160
|
+
fields: {
|
|
161
|
+
["environment" /* Environment */]: environmentFieldValue,
|
|
162
|
+
["obsidian-version" /* ObsidianVersion */]: environment.obsidianVersion,
|
|
163
|
+
["operating-system" /* OperatingSystem */]: environment.operatingSystem,
|
|
164
|
+
["plugin-version" /* PluginVersion */]: environment.plugin.version ?? UNKNOWN
|
|
165
|
+
},
|
|
166
|
+
gitHubRepo: params.gitHubRepo,
|
|
167
|
+
template: BUG_REPORT_ISSUE_FORM_TEMPLATE,
|
|
168
|
+
...params.title !== void 0 && { title: params.title }
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
const fullUrl = buildUrl(environmentText);
|
|
172
|
+
return fullUrl.length <= (params.maxUrlLength ?? DEFAULT_BUG_REPORT_MAX_URL_LENGTH) ? { clipboardText: null, url: fullUrl } : { clipboardText: environmentText, url: buildUrl(BUG_REPORT_PASTE_INSTRUCTIONS) };
|
|
173
|
+
}
|
|
146
174
|
function formatBugReportEnvironment(environment) {
|
|
147
175
|
const enabledPlugins = environment.enabledPlugins.length === 0 ? "none" : environment.enabledPlugins.map((pluginInfo) => formatPluginInfo(pluginInfo)).join(", ");
|
|
148
176
|
return `- Plugin: ${formatPluginInfo(environment.plugin)}
|
|
@@ -167,17 +195,12 @@ async function getBugReportEnvironment(params) {
|
|
|
167
195
|
}
|
|
168
196
|
async function getBugReportIssueFormUrl(params) {
|
|
169
197
|
const environment = await getBugReportEnvironment(params);
|
|
170
|
-
return
|
|
171
|
-
|
|
172
|
-
["environment" /* Environment */]: formatBugReportEnvironment(environment),
|
|
173
|
-
["obsidian-version" /* ObsidianVersion */]: environment.obsidianVersion,
|
|
174
|
-
["operating-system" /* OperatingSystem */]: environment.operatingSystem,
|
|
175
|
-
["plugin-version" /* PluginVersion */]: environment.plugin.version ?? UNKNOWN
|
|
176
|
-
},
|
|
198
|
+
return buildBugReportIssueFormLink({
|
|
199
|
+
environment,
|
|
177
200
|
gitHubRepo: params.gitHubRepo,
|
|
178
|
-
|
|
201
|
+
maxUrlLength: Infinity,
|
|
179
202
|
...params.title !== void 0 && { title: params.title }
|
|
180
|
-
});
|
|
203
|
+
}).url;
|
|
181
204
|
}
|
|
182
205
|
function getGitHubIssueFormUrl(params) {
|
|
183
206
|
const searchParams = new URLSearchParams({ template: params.template });
|
|
@@ -234,10 +257,13 @@ function getPluginInfo(app, pluginId) {
|
|
|
234
257
|
// Annotate the CommonJS export names for ESM import in node:
|
|
235
258
|
0 && (module.exports = {
|
|
236
259
|
BUG_REPORT_ISSUE_FORM_TEMPLATE,
|
|
260
|
+
BUG_REPORT_PASTE_INSTRUCTIONS,
|
|
237
261
|
BugReportIssueFormFieldId,
|
|
262
|
+
DEFAULT_BUG_REPORT_MAX_URL_LENGTH,
|
|
263
|
+
buildBugReportIssueFormLink,
|
|
238
264
|
formatBugReportEnvironment,
|
|
239
265
|
getBugReportEnvironment,
|
|
240
266
|
getBugReportIssueFormUrl,
|
|
241
267
|
getGitHubIssueFormUrl
|
|
242
268
|
});
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWctcmVwb3J0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBIZWxwZXJzIGZvciBhIHBsdWdpbidzIGJ1ZyByZXBvcnRzOiB0aGUgZW52aXJvbm1lbnQgYSByZXBvcnQgbmVlZHMsIGFuZCBhIGxpbmsgdG8gYSBHaXRIdWIgaXNzdWUgZm9ybVxuICogcHJlZmlsbGVkIHdpdGggaXQuXG4gKlxuICogQ3Jvc3MtcGxhdGZvcm0tbG9hZGFibGU6IHRoZSBkZXNrdG9wIG9wZXJhdGluZy1zeXN0ZW0gbG9va3VwIHJlYWRzIGBub2RlOm9zYCwgc28gaXQgaXMgaW1wb3J0ZWRcbiAqIGR5bmFtaWNhbGx5LCBvbiBkZXNrdG9wIG9ubHkuXG4gKlxuICogVGhlIGRlc2t0b3AgaW5zdGFsbGVyIHZlcnNpb24gaXMgYFBsYXRmb3JtLmJ1aWxkYCwgd2hpY2ggbm8gcHVibGljIHR5cGluZyBkZWNsYXJlczogT2JzaWRpYW4ncyBkZXNrdG9wXG4gKiBzdGFydHVwIHNldHMgaXQgZnJvbSBFbGVjdHJvbidzIGBhcHAuZ2V0VmVyc2lvbigpYCAocmVhZCBmcm9tIE9ic2lkaWFuIGAxLjE1LjBgKSwgc28gaXQgaXMgcmVhZFxuICogc3RydWN0dXJhbGx5IGhlcmUsIGFuZCByZWFkcyBhcyBgdW5rbm93bmAgaWYgYSBsYXRlciB2ZXJzaW9uIGRyb3BzIGl0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBhcGlWZXJzaW9uLFxuICBQbGF0Zm9ybVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldE1vYmlsZUFwcEluZm8gfSBmcm9tICcuL21vYmlsZS1hcHAtaW5mby50cyc7XG5cbi8qKlxuICogVGhlIGlkcyBvZiB0aGUgYnVnLXJlcG9ydCBpc3N1ZSBmb3JtJ3MgZmllbGRzIHRoYXQge0BsaW5rIGdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybH0gcHJlZmlsbHMuIEdpdEh1YlxuICogcHJlZmlsbHMgYSBmaWVsZCBmcm9tIGEgcXVlcnkgcGFyYW1ldGVyIG5hbWVkIGFmdGVyIHRoZSBmaWVsZCdzIGBpZGAsIHNvIGEgZm9ybSBtdXN0IGdpdmUgaXRzIGZpZWxkc1xuICogdGhlc2UgaWRzIGZvciB0aGVtIHRvIGJlIGZpbGxlZC5cbiAqL1xuZXhwb3J0IGVudW0gQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZCB7XG4gIC8qKlxuICAgKiBUaGUgd2hvbGUgZW52aXJvbm1lbnQsIGFzIHtAbGluayBmb3JtYXRCdWdSZXBvcnRFbnZpcm9ubWVudH0gcmVuZGVycyBpdC5cbiAgICovXG4gIEVudmlyb25tZW50ID0gJ2Vudmlyb25tZW50JyxcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIHZlcnNpb24uXG4gICAqL1xuICBPYnNpZGlhblZlcnNpb24gPSAnb2JzaWRpYW4tdmVyc2lvbicsXG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtLlxuICAgKi9cbiAgT3BlcmF0aW5nU3lzdGVtID0gJ29wZXJhdGluZy1zeXN0ZW0nLFxuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3J0aW5nIHBsdWdpbidzIHZlcnNpb24uXG4gICAqL1xuICBQbHVnaW5WZXJzaW9uID0gJ3BsdWdpbi12ZXJzaW9uJ1xufVxuXG4vKipcbiAqIFRoZSBmaWxlIG5hbWUgb2YgdGhlIGJ1Zy1yZXBvcnQgaXNzdWUgZm9ybSwgdW5kZXIgYC5naXRodWIvSVNTVUVfVEVNUExBVEVgLlxuICovXG5leHBvcnQgY29uc3QgQlVHX1JFUE9SVF9JU1NVRV9GT1JNX1RFTVBMQVRFID0gJ2J1Z19yZXBvcnQueW1sJztcblxuLyoqXG4gKiBUaGUgZW52aXJvbm1lbnQgYSBidWcgcmVwb3J0IG5lZWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Z1JlcG9ydEVudmlyb25tZW50IHtcbiAgLyoqXG4gICAqIFRoZSBvdGhlciBsb2FkZWQgcGx1Z2lucywgc29ydGVkIGJ5IGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZFBsdWdpbnM6IHJlYWRvbmx5IEJ1Z1JlcG9ydFBsdWdpbkluZm9bXTtcblxuICAvKipcbiAgICogVGhlIGluc3RhbGxlZCBhcHAncyB2ZXJzaW9uLCB3aGljaCBjYW4gbGFnIGJlaGluZCB7QGxpbmsgb2JzaWRpYW5WZXJzaW9ufS5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbGxlclZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSBvYnNpZGlhblZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBuYW1lIGFuZCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW5nU3lzdGVtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbGF0Zm9ybTogYEFuZHJvaWRgLCBgaU9TYCwgYG1hY09TYCwgYFdpbmRvd3NgLCBgTGludXhgIG9yIGB1bmtub3duYC5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXBvcnRpbmcgcGx1Z2luLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luOiBCdWdSZXBvcnRQbHVnaW5JbmZvO1xufVxuXG4vKipcbiAqIEEgcGx1Z2luLCBhcyBhIGJ1ZyByZXBvcnQgbmFtZXMgaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVnUmVwb3J0UGx1Z2luSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgaWQuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgaW5zdGFsbGVkIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIGl0cyBtYW5pZmVzdCBpcyBub3Qga25vd24uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRCdWdSZXBvcnRFbnZpcm9ubWVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QnVnUmVwb3J0RW52aXJvbm1lbnRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIHJlcG9ydGluZyBwbHVnaW4uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRCdWdSZXBvcnRJc3N1ZUZvcm1Vcmx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybFBhcmFtcyBleHRlbmRzIEdldEJ1Z1JlcG9ydEVudmlyb25tZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4ncyBHaXRIdWIgcmVwb3NpdG9yeSwgYXMgYG93bmVyL25hbWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0SHViUmVwbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaXNzdWUncyB0aXRsZS4gTGVhdmUgaXQgb3V0IHRvIGtlZXAgdGhlIGZvcm0ncyBvd24gZGVmYXVsdCB0aXRsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRHaXRIdWJJc3N1ZUZvcm1Vcmx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEdpdEh1Yklzc3VlRm9ybVVybFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIHRvIHByZWZpbGwsIGtleWVkIGJ5IGZpZWxkIGBpZGAuXG4gICAqL1xuICByZWFkb25seSBmaWVsZHM/OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiByZXBvc2l0b3J5LCBhcyBgb3duZXIvbmFtZWAuXG4gICAqL1xuICByZWFkb25seSBnaXRIdWJSZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtJ3MgZmlsZSBuYW1lLCB1bmRlciBgLmdpdGh1Yi9JU1NVRV9URU1QTEFURWAuXG4gICAqL1xuICByZWFkb25seSB0ZW1wbGF0ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaXNzdWUncyB0aXRsZS4gTGVhdmUgaXQgb3V0IHRvIGtlZXAgdGhlIGZvcm0ncyBvd24gZGVmYXVsdCB0aXRsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXBwQW5kT3BlcmF0aW5nU3lzdGVtIHtcbiAgcmVhZG9ubHkgaW5zdGFsbGVyVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBvcGVyYXRpbmdTeXN0ZW06IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBsYXRmb3JtV2l0aEJ1aWxkIHtcbiAgcmVhZG9ubHkgYnVpbGQ/OiB1bmtub3duO1xufVxuXG5jb25zdCBVTktOT1dOID0gJ3Vua25vd24nO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBidWcgcmVwb3J0J3MgZW52aXJvbm1lbnQgYXMgYSBNYXJrZG93biBsaXN0LlxuICpcbiAqIEBwYXJhbSBlbnZpcm9ubWVudCAtIFRoZSBlbnZpcm9ubWVudC5cbiAqIEByZXR1cm5zIFRoZSBNYXJrZG93bi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEJ1Z1JlcG9ydEVudmlyb25tZW50KGVudmlyb25tZW50OiBCdWdSZXBvcnRFbnZpcm9ubWVudCk6IHN0cmluZyB7XG4gIGNvbnN0IGVuYWJsZWRQbHVnaW5zID0gZW52aXJvbm1lbnQuZW5hYmxlZFBsdWdpbnMubGVuZ3RoID09PSAwXG4gICAgPyAnbm9uZSdcbiAgICA6IGVudmlyb25tZW50LmVuYWJsZWRQbHVnaW5zLm1hcCgocGx1Z2luSW5mbykgPT4gZm9ybWF0UGx1Z2luSW5mbyhwbHVnaW5JbmZvKSkuam9pbignLCAnKTtcblxuICByZXR1cm4gYC0gUGx1Z2luOiAke2Zvcm1hdFBsdWdpbkluZm8oZW52aXJvbm1lbnQucGx1Z2luKX1cXG5gXG4gICAgKyBgLSBPYnNpZGlhbjogJHtlbnZpcm9ubWVudC5vYnNpZGlhblZlcnNpb259IChpbnN0YWxsZXIgJHtlbnZpcm9ubWVudC5pbnN0YWxsZXJWZXJzaW9ufSlcXG5gXG4gICAgKyBgLSBQbGF0Zm9ybTogJHtlbnZpcm9ubWVudC5wbGF0Zm9ybX1cXG5gXG4gICAgKyBgLSBPcGVyYXRpbmcgc3lzdGVtOiAke2Vudmlyb25tZW50Lm9wZXJhdGluZ1N5c3RlbX1cXG5gXG4gICAgKyBgLSBPdGhlciBlbmFibGVkIHBsdWdpbnM6ICR7ZW5hYmxlZFBsdWdpbnN9YDtcbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBlbnZpcm9ubWVudCBhIGJ1ZyByZXBvcnQgbmVlZHM6IHRoZSBwbHVnaW4ncyB2ZXJzaW9uLCB0aGUgb3RoZXIgZW5hYmxlZCBwbHVnaW5zLCB0aGVcbiAqIE9ic2lkaWFuIGFuZCBpbnN0YWxsZXIgdmVyc2lvbnMsIHRoZSBwbGF0Zm9ybSBhbmQgdGhlIG9wZXJhdGluZyBzeXN0ZW0uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QnVnUmVwb3J0RW52aXJvbm1lbnQocGFyYW1zOiBHZXRCdWdSZXBvcnRFbnZpcm9ubWVudFBhcmFtcyk6IFByb21pc2U8QnVnUmVwb3J0RW52aXJvbm1lbnQ+IHtcbiAgY29uc3QgeyBhcHAsIHBsdWdpbklkIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHsgaW5zdGFsbGVyVmVyc2lvbiwgb3BlcmF0aW5nU3lzdGVtIH0gPSBhd2FpdCBnZXRBcHBBbmRPcGVyYXRpbmdTeXN0ZW0oKTtcblxuICByZXR1cm4ge1xuICAgIC8vIFRoZSBsb2FkZWQgcGx1Z2lucywgYXMgT2JzaWRpYW4ncyBTaG93IGRlYnVnIGluZm8gbGlzdHMgdGhlbTogYGVuYWJsZWRQbHVnaW5zYCBhbHNvIGhvbGRzIGFuIGlkXG4gICAgLy8gd2hvc2UgZm9sZGVyIHdhcyBkZWxldGVkLCBvciB3aG9zZSBsb2FkIGZhaWxlZC5cbiAgICBlbmFibGVkUGx1Z2luczogT2JqZWN0LmtleXMoYXBwLnBsdWdpbnMucGx1Z2lucylcbiAgICAgIC5maWx0ZXIoKGlkKSA9PiBpZCAhPT0gcGx1Z2luSWQpXG4gICAgICAuc29ydCgpXG4gICAgICAubWFwKChpZCkgPT4gZ2V0UGx1Z2luSW5mbyhhcHAsIGlkKSksXG4gICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICBvYnNpZGlhblZlcnNpb246IGFwaVZlcnNpb24sXG4gICAgb3BlcmF0aW5nU3lzdGVtLFxuICAgIHBsYXRmb3JtOiBnZXRQbGF0Zm9ybU5hbWUoKSxcbiAgICBwbHVnaW46IGdldFBsdWdpbkluZm8oYXBwLCBwbHVnaW5JZClcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXRzIGEgbGluayB0byBhIHBsdWdpbidzIGJ1Zy1yZXBvcnQgaXNzdWUgZm9ybSAoe0BsaW5rIEJVR19SRVBPUlRfSVNTVUVfRk9STV9URU1QTEFURX0pLCBwcmVmaWxsZWQgd2l0aFxuICogdGhlIGVudmlyb25tZW50LCBpbiB0aGUgZmllbGRzIHtAbGluayBCdWdSZXBvcnRJc3N1ZUZvcm1GaWVsZElkfSBuYW1lcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgbGluay5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybChwYXJhbXM6IEdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybFBhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGVudmlyb25tZW50ID0gYXdhaXQgZ2V0QnVnUmVwb3J0RW52aXJvbm1lbnQocGFyYW1zKTtcblxuICByZXR1cm4gZ2V0R2l0SHViSXNzdWVGb3JtVXJsKHtcbiAgICBmaWVsZHM6IHtcbiAgICAgIFtCdWdSZXBvcnRJc3N1ZUZvcm1GaWVsZElkLkVudmlyb25tZW50XTogZm9ybWF0QnVnUmVwb3J0RW52aXJvbm1lbnQoZW52aXJvbm1lbnQpLFxuICAgICAgW0J1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQuT2JzaWRpYW5WZXJzaW9uXTogZW52aXJvbm1lbnQub2JzaWRpYW5WZXJzaW9uLFxuICAgICAgW0J1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQuT3BlcmF0aW5nU3lzdGVtXTogZW52aXJvbm1lbnQub3BlcmF0aW5nU3lzdGVtLFxuICAgICAgW0J1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQuUGx1Z2luVmVyc2lvbl06IGVudmlyb25tZW50LnBsdWdpbi52ZXJzaW9uID8/IFVOS05PV05cbiAgICB9LFxuICAgIGdpdEh1YlJlcG86IHBhcmFtcy5naXRIdWJSZXBvLFxuICAgIHRlbXBsYXRlOiBCVUdfUkVQT1JUX0lTU1VFX0ZPUk1fVEVNUExBVEUsXG4gICAgLi4ucGFyYW1zLnRpdGxlICE9PSB1bmRlZmluZWQgJiYgeyB0aXRsZTogcGFyYW1zLnRpdGxlIH1cbiAgfSk7XG59XG5cbi8qKlxuICogR2V0cyBhIGxpbmsgdGhhdCBvcGVucyBhIEdpdEh1YiBpc3N1ZSBmb3JtIHdpdGggZmllbGRzIHByZWZpbGxlZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgbGluay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdpdEh1Yklzc3VlRm9ybVVybChwYXJhbXM6IEdldEdpdEh1Yklzc3VlRm9ybVVybFBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyB0ZW1wbGF0ZTogcGFyYW1zLnRlbXBsYXRlIH0pO1xuICBpZiAocGFyYW1zLnRpdGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBzZWFyY2hQYXJhbXMuc2V0KCd0aXRsZScsIHBhcmFtcy50aXRsZSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IFtmaWVsZElkLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYW1zLmZpZWxkcyA/PyB7fSkpIHtcbiAgICBzZWFyY2hQYXJhbXMuc2V0KGZpZWxkSWQsIHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBgaHR0cHM6Ly9naXRodWIuY29tLyR7cGFyYW1zLmdpdEh1YlJlcG99L2lzc3Vlcy9uZXc/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRQbHVnaW5JbmZvKHBsdWdpbkluZm86IEJ1Z1JlcG9ydFBsdWdpbkluZm8pOiBzdHJpbmcge1xuICByZXR1cm4gYFxcYCR7cGx1Z2luSW5mby5pZH1cXGAgJHtwbHVnaW5JbmZvLnZlcnNpb24gPz8gVU5LTk9XTn1gO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBcHBBbmRPcGVyYXRpbmdTeXN0ZW0oKTogUHJvbWlzZTxBcHBBbmRPcGVyYXRpbmdTeXN0ZW0+IHtcbiAgaWYgKFBsYXRmb3JtLmlzTW9iaWxlQXBwKSB7XG4gICAgY29uc3QgbW9iaWxlQXBwSW5mbyA9IGF3YWl0IGdldE1vYmlsZUFwcEluZm8oKTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zdGFsbGVyVmVyc2lvbjogbW9iaWxlQXBwSW5mbz8uaW5zdGFsbGVyVmVyc2lvbiA/PyBVTktOT1dOLFxuICAgICAgb3BlcmF0aW5nU3lzdGVtOiBtb2JpbGVBcHBJbmZvPy5vcGVyYXRpbmdTeXN0ZW0gPz8gVU5LTk9XTlxuICAgIH07XG4gIH1cblxuICBpZiAoIVBsYXRmb3JtLmlzRGVza3RvcEFwcCkge1xuICAgIHJldHVybiB7IGluc3RhbGxlclZlcnNpb246IFVOS05PV04sIG9wZXJhdGluZ1N5c3RlbTogVU5LTk9XTiB9O1xuICB9XG5cbiAgLy8gQ29uZGl0aW9uYWwgaW1wb3J0IG9mIHRoZSBkZXNrdG9wLW9ubHkgbG9va3VwLCB3aGljaCByZWFkcyBgbm9kZTpvc2A7IHRoaXMgYnJhbmNoIHJ1bnMgb25seSBvbiBkZXNrdG9wLlxuICBjb25zdCB7IGdldERlc2t0b3BPcGVyYXRpbmdTeXN0ZW0gfSA9IGF3YWl0IGltcG9ydCgnLi9kZXNrdG9wLW9wZXJhdGluZy1zeXN0ZW0udHMnKTtcbiAgY29uc3QgYnVpbGQgPSAoUGxhdGZvcm0gYXMgUGxhdGZvcm1XaXRoQnVpbGQpLmJ1aWxkO1xuICByZXR1cm4ge1xuICAgIGluc3RhbGxlclZlcnNpb246IHR5cGVvZiBidWlsZCA9PT0gJ3N0cmluZycgPyBidWlsZCA6IFVOS05PV04sXG4gICAgb3BlcmF0aW5nU3lzdGVtOiBnZXREZXNrdG9wT3BlcmF0aW5nU3lzdGVtKClcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UGxhdGZvcm1OYW1lKCk6IHN0cmluZyB7XG4gIGlmIChQbGF0Zm9ybS5pc0FuZHJvaWRBcHApIHtcbiAgICByZXR1cm4gJ0FuZHJvaWQnO1xuICB9XG4gIGlmIChQbGF0Zm9ybS5pc0lvc0FwcCkge1xuICAgIHJldHVybiAnaU9TJztcbiAgfVxuICBpZiAoUGxhdGZvcm0uaXNNYWNPUykge1xuICAgIHJldHVybiAnbWFjT1MnO1xuICB9XG4gIGlmIChQbGF0Zm9ybS5pc1dpbikge1xuICAgIHJldHVybiAnV2luZG93cyc7XG4gIH1cbiAgcmV0dXJuIFBsYXRmb3JtLmlzTGludXggPyAnTGludXgnIDogVU5LTk9XTjtcbn1cblxuZnVuY3Rpb24gZ2V0UGx1Z2luSW5mbyhhcHA6IEFwcCwgcGx1Z2luSWQ6IHN0cmluZyk6IEJ1Z1JlcG9ydFBsdWdpbkluZm8ge1xuICByZXR1cm4ge1xuICAgIGlkOiBwbHVnaW5JZCxcbiAgICB2ZXJzaW9uOiBhcHAucGx1Z2lucy5tYW5pZmVzdHNbcGx1Z2luSWRdPy52ZXJzaW9uID8/IG51bGxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idWctcmVwb3J0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBIZWxwZXJzIGZvciBhIHBsdWdpbidzIGJ1ZyByZXBvcnRzOiB0aGUgZW52aXJvbm1lbnQgYSByZXBvcnQgbmVlZHMsIGFuZCBhIGxpbmsgdG8gYSBHaXRIdWIgaXNzdWUgZm9ybVxuICogcHJlZmlsbGVkIHdpdGggaXQuXG4gKlxuICogQ3Jvc3MtcGxhdGZvcm0tbG9hZGFibGU6IHRoZSBkZXNrdG9wIG9wZXJhdGluZy1zeXN0ZW0gbG9va3VwIHJlYWRzIGBub2RlOm9zYCwgc28gaXQgaXMgaW1wb3J0ZWRcbiAqIGR5bmFtaWNhbGx5LCBvbiBkZXNrdG9wIG9ubHkuXG4gKlxuICogVGhlIGRlc2t0b3AgaW5zdGFsbGVyIHZlcnNpb24gaXMgYFBsYXRmb3JtLmJ1aWxkYCwgd2hpY2ggbm8gcHVibGljIHR5cGluZyBkZWNsYXJlczogT2JzaWRpYW4ncyBkZXNrdG9wXG4gKiBzdGFydHVwIHNldHMgaXQgZnJvbSBFbGVjdHJvbidzIGBhcHAuZ2V0VmVyc2lvbigpYCAocmVhZCBmcm9tIE9ic2lkaWFuIGAxLjE1LjBgKSwgc28gaXQgaXMgcmVhZFxuICogc3RydWN0dXJhbGx5IGhlcmUsIGFuZCByZWFkcyBhcyBgdW5rbm93bmAgaWYgYSBsYXRlciB2ZXJzaW9uIGRyb3BzIGl0LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQge1xuICBhcGlWZXJzaW9uLFxuICBQbGF0Zm9ybVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgQnVnUmVwb3J0RGlhZ25vc3RpY1NlY3Rpb24gfSBmcm9tICcuL2J1Zy1yZXBvcnQtZGlhZ25vc3RpY3MudHMnO1xuXG5pbXBvcnQgeyBmb3JtYXRCdWdSZXBvcnREaWFnbm9zdGljcyB9IGZyb20gJy4vYnVnLXJlcG9ydC1kaWFnbm9zdGljcy50cyc7XG5pbXBvcnQgeyBnZXRNb2JpbGVBcHBJbmZvIH0gZnJvbSAnLi9tb2JpbGUtYXBwLWluZm8udHMnO1xuXG4vKipcbiAqIFRoZSBpZHMgb2YgdGhlIGJ1Zy1yZXBvcnQgaXNzdWUgZm9ybSdzIGZpZWxkcyB0aGF0IHtAbGluayBnZXRCdWdSZXBvcnRJc3N1ZUZvcm1Vcmx9IHByZWZpbGxzLiBHaXRIdWJcbiAqIHByZWZpbGxzIGEgZmllbGQgZnJvbSBhIHF1ZXJ5IHBhcmFtZXRlciBuYW1lZCBhZnRlciB0aGUgZmllbGQncyBgaWRgLCBzbyBhIGZvcm0gbXVzdCBnaXZlIGl0cyBmaWVsZHNcbiAqIHRoZXNlIGlkcyBmb3IgdGhlbSB0byBiZSBmaWxsZWQuXG4gKi9cbmV4cG9ydCBlbnVtIEJ1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQge1xuICAvKipcbiAgICogVGhlIHdob2xlIGVudmlyb25tZW50LCBhcyB7QGxpbmsgZm9ybWF0QnVnUmVwb3J0RW52aXJvbm1lbnR9IHJlbmRlcnMgaXQuXG4gICAqL1xuICBFbnZpcm9ubWVudCA9ICdlbnZpcm9ubWVudCcsXG5cbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiB2ZXJzaW9uLlxuICAgKi9cbiAgT2JzaWRpYW5WZXJzaW9uID0gJ29ic2lkaWFuLXZlcnNpb24nLFxuXG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW5nIHN5c3RlbS5cbiAgICovXG4gIE9wZXJhdGluZ1N5c3RlbSA9ICdvcGVyYXRpbmctc3lzdGVtJyxcblxuICAvKipcbiAgICogVGhlIHJlcG9ydGluZyBwbHVnaW4ncyB2ZXJzaW9uLlxuICAgKi9cbiAgUGx1Z2luVmVyc2lvbiA9ICdwbHVnaW4tdmVyc2lvbidcbn1cblxuLyoqXG4gKiBUaGUgZmlsZSBuYW1lIG9mIHRoZSBidWctcmVwb3J0IGlzc3VlIGZvcm0sIHVuZGVyIGAuZ2l0aHViL0lTU1VFX1RFTVBMQVRFYC5cbiAqL1xuZXhwb3J0IGNvbnN0IEJVR19SRVBPUlRfSVNTVUVfRk9STV9URU1QTEFURSA9ICdidWdfcmVwb3J0LnltbCc7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgYnVkZ2V0LCBpbiBjaGFyYWN0ZXJzIG9mIHRoZSBlbmNvZGVkIFVSTCwgb2YgYSBwcmVmaWxsZWQgYnVnLXJlcG9ydCBsaW5rLlxuICpcbiAqIE1lYXN1cmVkIGFnYWluc3QgYGdpdGh1Yi5jb21gIG9uIDIwMjYtMTEtMDcsIHNpZ25lZCBvdXQ6IGFuIGlzc3VlLWZvcm0gVVJMIHVwIHRvIGFib3V0IDYsNTQwIGNoYXJhY3RlcnNcbiAqIHdhcyBhbnN3ZXJlZCB3aXRoIHRoZSB1c3VhbCByZWRpcmVjdCB0byB0aGUgZm9ybSwgYWJvdXQgOCwwODggd2l0aCBhIDUwMiwgYW5kIDgsMjg4IGFuZCBtb3JlIHdpdGggYSA0MTQuXG4gKiA2LDAwMCBsZWF2ZXMgcm9vbSBmb3IgYSBsb25nZXIgcmVwb3NpdG9yeSBuYW1lIGFuZCBmb3IgYSBzaWduZWQtaW4gc2Vzc2lvbidzIG93biBsaW1pdHMuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0JVR19SRVBPUlRfTUFYX1VSTF9MRU5HVEggPSA2MDAwO1xuXG4vKipcbiAqIEEgbGluayB0byBhIGJ1Zy1yZXBvcnQgaXNzdWUgZm9ybSwgYXMge0BsaW5rIGJ1aWxkQnVnUmVwb3J0SXNzdWVGb3JtTGlua30gYnVpbGRzIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Z1JlcG9ydElzc3VlRm9ybUxpbmsge1xuICAvKipcbiAgICogVGhlIHRleHQgdGhlIHVzZXIgbXVzdCBwYXN0ZSBpbnRvIHRoZSBmb3JtJ3MgZW52aXJvbm1lbnQgZmllbGQsIHdoZW4gdGhlIGZ1bGwgcmVwb3J0IGRpZCBub3QgZml0IHRoZVxuICAgKiBVUkwgYnVkZ2V0OyBgbnVsbGAgd2hlbiB0aGUgVVJMIGNhcnJpZXMgdGhlIHdob2xlIHJlcG9ydC5cbiAgICovXG4gIHJlYWRvbmx5IGNsaXBib2FyZFRleHQ6IG51bGwgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsaW5rLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGJ1aWxkQnVnUmVwb3J0SXNzdWVGb3JtTGlua30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRCdWdSZXBvcnRJc3N1ZUZvcm1MaW5rUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBkaWFnbm9zdGljcyB0aGUgdXNlciBhZ3JlZWQgdG8gaW5jbHVkZSwgYXBwZW5kZWQgdG8gdGhlIGVudmlyb25tZW50IGZpZWxkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlhZ25vc3RpY3M/OiByZWFkb25seSBCdWdSZXBvcnREaWFnbm9zdGljU2VjdGlvbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQsIGZyb20ge0BsaW5rIGdldEJ1Z1JlcG9ydEVudmlyb25tZW50fS5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50OiBCdWdSZXBvcnRFbnZpcm9ubWVudDtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbidzIEdpdEh1YiByZXBvc2l0b3J5LCBhcyBgb3duZXIvbmFtZWAuXG4gICAqL1xuICByZWFkb25seSBnaXRIdWJSZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtb3N0IGNoYXJhY3RlcnMgdGhlIGVuY29kZWQgVVJMIG1heSBoYXZlIGJlZm9yZSB0aGUgcmVwb3J0IG1vdmVzIHRvIHRoZSBjbGlwYm9hcmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHtAbGluayBERUZBVUxUX0JVR19SRVBPUlRfTUFYX1VSTF9MRU5HVEh9XG4gICAqL1xuICByZWFkb25seSBtYXhVcmxMZW5ndGg/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBpc3N1ZSdzIHRpdGxlLiBMZWF2ZSBpdCBvdXQgdG8ga2VlcCB0aGUgZm9ybSdzIG93biBkZWZhdWx0IHRpdGxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHRleHQgdGhlIGVudmlyb25tZW50IGZpZWxkIGhvbGRzIHdoZW4gdGhlIHJlcG9ydCBtb3ZlZCB0byB0aGUgY2xpcGJvYXJkLlxuICovXG5leHBvcnQgY29uc3QgQlVHX1JFUE9SVF9QQVNURV9JTlNUUlVDVElPTlMgPSAnVGhlIGZ1bGwgZW52aXJvbm1lbnQgYW5kIGRpYWdub3N0aWNzIHdlcmUgY29waWVkIHRvIHlvdXIgY2xpcGJvYXJkIGJlY2F1c2UgdGhleSBhcmUgdG9vIGxvbmcgZm9yIGEgbGluay4gUmVwbGFjZSB0aGlzIHRleHQgYnkgcGFzdGluZyB0aGVtIGhlcmUuJztcblxuLyoqXG4gKiBUaGUgZW52aXJvbm1lbnQgYSBidWcgcmVwb3J0IG5lZWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Z1JlcG9ydEVudmlyb25tZW50IHtcbiAgLyoqXG4gICAqIFRoZSBvdGhlciBsb2FkZWQgcGx1Z2lucywgc29ydGVkIGJ5IGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZFBsdWdpbnM6IHJlYWRvbmx5IEJ1Z1JlcG9ydFBsdWdpbkluZm9bXTtcblxuICAvKipcbiAgICogVGhlIGluc3RhbGxlZCBhcHAncyB2ZXJzaW9uLCB3aGljaCBjYW4gbGFnIGJlaGluZCB7QGxpbmsgb2JzaWRpYW5WZXJzaW9ufS5cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbGxlclZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSBvYnNpZGlhblZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBuYW1lIGFuZCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW5nU3lzdGVtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbGF0Zm9ybTogYEFuZHJvaWRgLCBgaU9TYCwgYG1hY09TYCwgYFdpbmRvd3NgLCBgTGludXhgIG9yIGB1bmtub3duYC5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXBvcnRpbmcgcGx1Z2luLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luOiBCdWdSZXBvcnRQbHVnaW5JbmZvO1xufVxuXG4vKipcbiAqIEEgcGx1Z2luLCBhcyBhIGJ1ZyByZXBvcnQgbmFtZXMgaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVnUmVwb3J0UGx1Z2luSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgaWQuXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgaW5zdGFsbGVkIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIGl0cyBtYW5pZmVzdCBpcyBub3Qga25vd24uXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRCdWdSZXBvcnRFbnZpcm9ubWVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QnVnUmVwb3J0RW52aXJvbm1lbnRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgaWQgb2YgdGhlIHJlcG9ydGluZyBwbHVnaW4uXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRCdWdSZXBvcnRJc3N1ZUZvcm1Vcmx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEJ1Z1JlcG9ydElzc3VlRm9ybVVybFBhcmFtcyBleHRlbmRzIEdldEJ1Z1JlcG9ydEVudmlyb25tZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4ncyBHaXRIdWIgcmVwb3NpdG9yeSwgYXMgYG93bmVyL25hbWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0SHViUmVwbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaXNzdWUncyB0aXRsZS4gTGVhdmUgaXQgb3V0IHRvIGtlZXAgdGhlIGZvcm0ncyBvd24gZGVmYXVsdCB0aXRsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBnZXRHaXRIdWJJc3N1ZUZvcm1Vcmx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldEdpdEh1Yklzc3VlRm9ybVVybFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWVzIHRvIHByZWZpbGwsIGtleWVkIGJ5IGZpZWxkIGBpZGAuXG4gICAqL1xuICByZWFkb25seSBmaWVsZHM/OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiByZXBvc2l0b3J5LCBhcyBgb3duZXIvbmFtZWAuXG4gICAqL1xuICByZWFkb25seSBnaXRIdWJSZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtJ3MgZmlsZSBuYW1lLCB1bmRlciBgLmdpdGh1Yi9JU1NVRV9URU1QTEFURWAuXG4gICAqL1xuICByZWFkb25seSB0ZW1wbGF0ZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaXNzdWUncyB0aXRsZS4gTGVhdmUgaXQgb3V0IHRvIGtlZXAgdGhlIGZvcm0ncyBvd24gZGVmYXVsdCB0aXRsZS5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXBwQW5kT3BlcmF0aW5nU3lzdGVtIHtcbiAgcmVhZG9ubHkgaW5zdGFsbGVyVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBvcGVyYXRpbmdTeXN0ZW06IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFBsYXRmb3JtV2l0aEJ1aWxkIHtcbiAgcmVhZG9ubHkgYnVpbGQ/OiB1bmtub3duO1xufVxuXG5jb25zdCBVTktOT1dOID0gJ3Vua25vd24nO1xuXG4vKipcbiAqIEJ1aWxkcyBhIGxpbmsgdG8gYSBwbHVnaW4ncyBidWctcmVwb3J0IGlzc3VlIGZvcm0sIHByZWZpbGxlZCB3aXRoIHRoZSBlbnZpcm9ubWVudCBhbmQgdGhlIGdpdmVuXG4gKiBkaWFnbm9zdGljcy4gV2hlbiB0aGUgZW5jb2RlZCBsaW5rIHdvdWxkIGJlIGxvbmdlciB0aGFuXG4gKiB7QGxpbmsgQnVpbGRCdWdSZXBvcnRJc3N1ZUZvcm1MaW5rUGFyYW1zLm1heFVybExlbmd0aH0sIHRoZSBlbnZpcm9ubWVudCBmaWVsZCBnZXRzXG4gKiB7QGxpbmsgQlVHX1JFUE9SVF9QQVNURV9JTlNUUlVDVElPTlN9IGluc3RlYWQsIGFuZCB0aGUgZnVsbCB0ZXh0IGlzIHJldHVybmVkIGFzXG4gKiB7QGxpbmsgQnVnUmVwb3J0SXNzdWVGb3JtTGluay5jbGlwYm9hcmRUZXh0fSBmb3IgdGhlIGNhbGxlciB0byBjb3B5LiBOb3RoaW5nIGlzIGN1dC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgbGluaywgYW5kIHRoZSB0ZXh0IHRvIHBhc3RlIHdoZW4gaXQgZGlkIG5vdCBmaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEJ1Z1JlcG9ydElzc3VlRm9ybUxpbmsocGFyYW1zOiBCdWlsZEJ1Z1JlcG9ydElzc3VlRm9ybUxpbmtQYXJhbXMpOiBCdWdSZXBvcnRJc3N1ZUZvcm1MaW5rIHtcbiAgY29uc3QgeyBlbnZpcm9ubWVudCB9ID0gcGFyYW1zO1xuICBjb25zdCBkaWFnbm9zdGljc01hcmtkb3duID0gZm9ybWF0QnVnUmVwb3J0RGlhZ25vc3RpY3MocGFyYW1zLmRpYWdub3N0aWNzID8/IFtdKTtcbiAgY29uc3QgZW52aXJvbm1lbnRUZXh0ID0gZGlhZ25vc3RpY3NNYXJrZG93biA9PT0gJydcbiAgICA/IGZvcm1hdEJ1Z1JlcG9ydEVudmlyb25tZW50KGVudmlyb25tZW50KVxuICAgIDogYCR7Zm9ybWF0QnVnUmVwb3J0RW52aXJvbm1lbnQoZW52aXJvbm1lbnQpfVxcblxcbiR7ZGlhZ25vc3RpY3NNYXJrZG93bn1gO1xuXG4gIGZ1bmN0aW9uIGJ1aWxkVXJsKGVudmlyb25tZW50RmllbGRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0R2l0SHViSXNzdWVGb3JtVXJsKHtcbiAgICAgIGZpZWxkczoge1xuICAgICAgICBbQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZC5FbnZpcm9ubWVudF06IGVudmlyb25tZW50RmllbGRWYWx1ZSxcbiAgICAgICAgW0J1Z1JlcG9ydElzc3VlRm9ybUZpZWxkSWQuT2JzaWRpYW5WZXJzaW9uXTogZW52aXJvbm1lbnQub2JzaWRpYW5WZXJzaW9uLFxuICAgICAgICBbQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZC5PcGVyYXRpbmdTeXN0ZW1dOiBlbnZpcm9ubWVudC5vcGVyYXRpbmdTeXN0ZW0sXG4gICAgICAgIFtCdWdSZXBvcnRJc3N1ZUZvcm1GaWVsZElkLlBsdWdpblZlcnNpb25dOiBlbnZpcm9ubWVudC5wbHVnaW4udmVyc2lvbiA/PyBVTktOT1dOXG4gICAgICB9LFxuICAgICAgZ2l0SHViUmVwbzogcGFyYW1zLmdpdEh1YlJlcG8sXG4gICAgICB0ZW1wbGF0ZTogQlVHX1JFUE9SVF9JU1NVRV9GT1JNX1RFTVBMQVRFLFxuICAgICAgLi4ucGFyYW1zLnRpdGxlICE9PSB1bmRlZmluZWQgJiYgeyB0aXRsZTogcGFyYW1zLnRpdGxlIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGZ1bGxVcmwgPSBidWlsZFVybChlbnZpcm9ubWVudFRleHQpO1xuICByZXR1cm4gZnVsbFVybC5sZW5ndGggPD0gKHBhcmFtcy5tYXhVcmxMZW5ndGggPz8gREVGQVVMVF9CVUdfUkVQT1JUX01BWF9VUkxfTEVOR1RIKSA/IHsgY2xpcGJvYXJkVGV4dDogbnVsbCwgdXJsOiBmdWxsVXJsIH0gOiB7IGNsaXBib2FyZFRleHQ6IGVudmlyb25tZW50VGV4dCwgdXJsOiBidWlsZFVybChCVUdfUkVQT1JUX1BBU1RFX0lOU1RSVUNUSU9OUykgfTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGEgYnVnIHJlcG9ydCdzIGVudmlyb25tZW50IGFzIGEgTWFya2Rvd24gbGlzdC5cbiAqXG4gKiBAcGFyYW0gZW52aXJvbm1lbnQgLSBUaGUgZW52aXJvbm1lbnQuXG4gKiBAcmV0dXJucyBUaGUgTWFya2Rvd24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRCdWdSZXBvcnRFbnZpcm9ubWVudChlbnZpcm9ubWVudDogQnVnUmVwb3J0RW52aXJvbm1lbnQpOiBzdHJpbmcge1xuICBjb25zdCBlbmFibGVkUGx1Z2lucyA9IGVudmlyb25tZW50LmVuYWJsZWRQbHVnaW5zLmxlbmd0aCA9PT0gMFxuICAgID8gJ25vbmUnXG4gICAgOiBlbnZpcm9ubWVudC5lbmFibGVkUGx1Z2lucy5tYXAoKHBsdWdpbkluZm8pID0+IGZvcm1hdFBsdWdpbkluZm8ocGx1Z2luSW5mbykpLmpvaW4oJywgJyk7XG5cbiAgcmV0dXJuIGAtIFBsdWdpbjogJHtmb3JtYXRQbHVnaW5JbmZvKGVudmlyb25tZW50LnBsdWdpbil9XFxuYFxuICAgICsgYC0gT2JzaWRpYW46ICR7ZW52aXJvbm1lbnQub2JzaWRpYW5WZXJzaW9ufSAoaW5zdGFsbGVyICR7ZW52aXJvbm1lbnQuaW5zdGFsbGVyVmVyc2lvbn0pXFxuYFxuICAgICsgYC0gUGxhdGZvcm06ICR7ZW52aXJvbm1lbnQucGxhdGZvcm19XFxuYFxuICAgICsgYC0gT3BlcmF0aW5nIHN5c3RlbTogJHtlbnZpcm9ubWVudC5vcGVyYXRpbmdTeXN0ZW19XFxuYFxuICAgICsgYC0gT3RoZXIgZW5hYmxlZCBwbHVnaW5zOiAke2VuYWJsZWRQbHVnaW5zfWA7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgZW52aXJvbm1lbnQgYSBidWcgcmVwb3J0IG5lZWRzOiB0aGUgcGx1Z2luJ3MgdmVyc2lvbiwgdGhlIG90aGVyIGVuYWJsZWQgcGx1Z2lucywgdGhlXG4gKiBPYnNpZGlhbiBhbmQgaW5zdGFsbGVyIHZlcnNpb25zLCB0aGUgcGxhdGZvcm0gYW5kIHRoZSBvcGVyYXRpbmcgc3lzdGVtLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJ1Z1JlcG9ydEVudmlyb25tZW50KHBhcmFtczogR2V0QnVnUmVwb3J0RW52aXJvbm1lbnRQYXJhbXMpOiBQcm9taXNlPEJ1Z1JlcG9ydEVudmlyb25tZW50PiB7XG4gIGNvbnN0IHsgYXBwLCBwbHVnaW5JZCB9ID0gcGFyYW1zO1xuICBjb25zdCB7IGluc3RhbGxlclZlcnNpb24sIG9wZXJhdGluZ1N5c3RlbSB9ID0gYXdhaXQgZ2V0QXBwQW5kT3BlcmF0aW5nU3lzdGVtKCk7XG5cbiAgcmV0dXJuIHtcbiAgICAvLyBUaGUgbG9hZGVkIHBsdWdpbnMsIGFzIE9ic2lkaWFuJ3MgU2hvdyBkZWJ1ZyBpbmZvIGxpc3RzIHRoZW06IGBlbmFibGVkUGx1Z2luc2AgYWxzbyBob2xkcyBhbiBpZFxuICAgIC8vIHdob3NlIGZvbGRlciB3YXMgZGVsZXRlZCwgb3Igd2hvc2UgbG9hZCBmYWlsZWQuXG4gICAgZW5hYmxlZFBsdWdpbnM6IE9iamVjdC5rZXlzKGFwcC5wbHVnaW5zLnBsdWdpbnMpXG4gICAgICAuZmlsdGVyKChpZCkgPT4gaWQgIT09IHBsdWdpbklkKVxuICAgICAgLnNvcnQoKVxuICAgICAgLm1hcCgoaWQpID0+IGdldFBsdWdpbkluZm8oYXBwLCBpZCkpLFxuICAgIGluc3RhbGxlclZlcnNpb24sXG4gICAgb2JzaWRpYW5WZXJzaW9uOiBhcGlWZXJzaW9uLFxuICAgIG9wZXJhdGluZ1N5c3RlbSxcbiAgICBwbGF0Zm9ybTogZ2V0UGxhdGZvcm1OYW1lKCksXG4gICAgcGx1Z2luOiBnZXRQbHVnaW5JbmZvKGFwcCwgcGx1Z2luSWQpXG4gIH07XG59XG5cbi8qKlxuICogR2V0cyBhIGxpbmsgdG8gYSBwbHVnaW4ncyBidWctcmVwb3J0IGlzc3VlIGZvcm0gKHtAbGluayBCVUdfUkVQT1JUX0lTU1VFX0ZPUk1fVEVNUExBVEV9KSwgcHJlZmlsbGVkIHdpdGhcbiAqIHRoZSBlbnZpcm9ubWVudCwgaW4gdGhlIGZpZWxkcyB7QGxpbmsgQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZH0gbmFtZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIGxpbmsuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCdWdSZXBvcnRJc3N1ZUZvcm1VcmwocGFyYW1zOiBHZXRCdWdSZXBvcnRJc3N1ZUZvcm1VcmxQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBlbnZpcm9ubWVudCA9IGF3YWl0IGdldEJ1Z1JlcG9ydEVudmlyb25tZW50KHBhcmFtcyk7XG5cbiAgcmV0dXJuIGJ1aWxkQnVnUmVwb3J0SXNzdWVGb3JtTGluayh7XG4gICAgZW52aXJvbm1lbnQsXG4gICAgZ2l0SHViUmVwbzogcGFyYW1zLmdpdEh1YlJlcG8sXG4gICAgbWF4VXJsTGVuZ3RoOiBJbmZpbml0eSxcbiAgICAuLi5wYXJhbXMudGl0bGUgIT09IHVuZGVmaW5lZCAmJiB7IHRpdGxlOiBwYXJhbXMudGl0bGUgfVxuICB9KS51cmw7XG59XG5cbi8qKlxuICogR2V0cyBhIGxpbmsgdGhhdCBvcGVucyBhIEdpdEh1YiBpc3N1ZSBmb3JtIHdpdGggZmllbGRzIHByZWZpbGxlZC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgbGluay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdpdEh1Yklzc3VlRm9ybVVybChwYXJhbXM6IEdldEdpdEh1Yklzc3VlRm9ybVVybFBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyB0ZW1wbGF0ZTogcGFyYW1zLnRlbXBsYXRlIH0pO1xuICBpZiAocGFyYW1zLnRpdGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICBzZWFyY2hQYXJhbXMuc2V0KCd0aXRsZScsIHBhcmFtcy50aXRsZSk7XG4gIH1cblxuICBmb3IgKGNvbnN0IFtmaWVsZElkLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGFyYW1zLmZpZWxkcyA/PyB7fSkpIHtcbiAgICBzZWFyY2hQYXJhbXMuc2V0KGZpZWxkSWQsIHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiBgaHR0cHM6Ly9naXRodWIuY29tLyR7cGFyYW1zLmdpdEh1YlJlcG99L2lzc3Vlcy9uZXc/JHtzZWFyY2hQYXJhbXMudG9TdHJpbmcoKX1gO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRQbHVnaW5JbmZvKHBsdWdpbkluZm86IEJ1Z1JlcG9ydFBsdWdpbkluZm8pOiBzdHJpbmcge1xuICByZXR1cm4gYFxcYCR7cGx1Z2luSW5mby5pZH1cXGAgJHtwbHVnaW5JbmZvLnZlcnNpb24gPz8gVU5LTk9XTn1gO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRBcHBBbmRPcGVyYXRpbmdTeXN0ZW0oKTogUHJvbWlzZTxBcHBBbmRPcGVyYXRpbmdTeXN0ZW0+IHtcbiAgaWYgKFBsYXRmb3JtLmlzTW9iaWxlQXBwKSB7XG4gICAgY29uc3QgbW9iaWxlQXBwSW5mbyA9IGF3YWl0IGdldE1vYmlsZUFwcEluZm8oKTtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zdGFsbGVyVmVyc2lvbjogbW9iaWxlQXBwSW5mbz8uaW5zdGFsbGVyVmVyc2lvbiA/PyBVTktOT1dOLFxuICAgICAgb3BlcmF0aW5nU3lzdGVtOiBtb2JpbGVBcHBJbmZvPy5vcGVyYXRpbmdTeXN0ZW0gPz8gVU5LTk9XTlxuICAgIH07XG4gIH1cblxuICBpZiAoIVBsYXRmb3JtLmlzRGVza3RvcEFwcCkge1xuICAgIHJldHVybiB7IGluc3RhbGxlclZlcnNpb246IFVOS05PV04sIG9wZXJhdGluZ1N5c3RlbTogVU5LTk9XTiB9O1xuICB9XG5cbiAgLy8gQ29uZGl0aW9uYWwgaW1wb3J0IG9mIHRoZSBkZXNrdG9wLW9ubHkgbG9va3VwLCB3aGljaCByZWFkcyBgbm9kZTpvc2A7IHRoaXMgYnJhbmNoIHJ1bnMgb25seSBvbiBkZXNrdG9wLlxuICBjb25zdCB7IGdldERlc2t0b3BPcGVyYXRpbmdTeXN0ZW0gfSA9IGF3YWl0IGltcG9ydCgnLi9kZXNrdG9wLW9wZXJhdGluZy1zeXN0ZW0udHMnKTtcbiAgY29uc3QgYnVpbGQgPSAoUGxhdGZvcm0gYXMgUGxhdGZvcm1XaXRoQnVpbGQpLmJ1aWxkO1xuICByZXR1cm4ge1xuICAgIGluc3RhbGxlclZlcnNpb246IHR5cGVvZiBidWlsZCA9PT0gJ3N0cmluZycgPyBidWlsZCA6IFVOS05PV04sXG4gICAgb3BlcmF0aW5nU3lzdGVtOiBnZXREZXNrdG9wT3BlcmF0aW5nU3lzdGVtKClcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0UGxhdGZvcm1OYW1lKCk6IHN0cmluZyB7XG4gIGlmIChQbGF0Zm9ybS5pc0FuZHJvaWRBcHApIHtcbiAgICByZXR1cm4gJ0FuZHJvaWQnO1xuICB9XG4gIGlmIChQbGF0Zm9ybS5pc0lvc0FwcCkge1xuICAgIHJldHVybiAnaU9TJztcbiAgfVxuICBpZiAoUGxhdGZvcm0uaXNNYWNPUykge1xuICAgIHJldHVybiAnbWFjT1MnO1xuICB9XG4gIGlmIChQbGF0Zm9ybS5pc1dpbikge1xuICAgIHJldHVybiAnV2luZG93cyc7XG4gIH1cbiAgcmV0dXJuIFBsYXRmb3JtLmlzTGludXggPyAnTGludXgnIDogVU5LTk9XTjtcbn1cblxuZnVuY3Rpb24gZ2V0UGx1Z2luSW5mbyhhcHA6IEFwcCwgcGx1Z2luSWQ6IHN0cmluZyk6IEJ1Z1JlcG9ydFBsdWdpbkluZm8ge1xuICByZXR1cm4ge1xuICAgIGlkOiBwbHVnaW5JZCxcbiAgICB2ZXJzaW9uOiBhcHAucGx1Z2lucy5tYW5pZmVzdHNbcGx1Z2luSWRdPy52ZXJzaW9uID8/IG51bGxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFBQSxJQUNkLEdBQUcsT0FBTyxVQUFVLFVBQWEsRUFBRSxPQUFPLE9BQU8sTUFBTTtBQUFBLEVBQ3pELENBQUMsRUFBRTtBQUNMO0FBUU8sU0FBUyxzQkFBc0IsUUFBNkM7QUFDakYsUUFBTSxlQUFlLElBQUksZ0JBQWdCLEVBQUUsVUFBVSxPQUFPLFNBQVMsQ0FBQztBQUN0RSxNQUFJLE9BQU8sVUFBVSxRQUFXO0FBQzlCLGlCQUFhLElBQUksU0FBUyxPQUFPLEtBQUs7QUFBQSxFQUN4QztBQUVBLGFBQVcsQ0FBQyxTQUFTLEtBQUssS0FBSyxPQUFPLFFBQVEsT0FBTyxVQUFVLENBQUMsQ0FBQyxHQUFHO0FBQ2xFLGlCQUFhLElBQUksU0FBUyxLQUFLO0FBQUEsRUFDakM7QUFFQSxTQUFPLHNCQUFzQixPQUFPLFVBQVUsZUFBZSxhQUFhLFNBQVMsQ0FBQztBQUN0RjtBQUVBLFNBQVMsaUJBQWlCLFlBQXlDO0FBQ2pFLFNBQU8sS0FBSyxXQUFXLEVBQUUsTUFBTSxXQUFXLFdBQVcsT0FBTztBQUM5RDtBQUVBLGVBQWUsMkJBQTJEO0FBQ3hFLE1BQUkseUJBQVMsYUFBYTtBQUN4QixVQUFNLGdCQUFnQixVQUFNLHlDQUFpQjtBQUM3QyxXQUFPO0FBQUEsTUFDTCxrQkFBa0IsZUFBZSxvQkFBb0I7QUFBQSxNQUNyRCxpQkFBaUIsZUFBZSxtQkFBbUI7QUFBQSxJQUNyRDtBQUFBLEVBQ0Y7QUFFQSxNQUFJLENBQUMseUJBQVMsY0FBYztBQUMxQixXQUFPLEVBQUUsa0JBQWtCLFNBQVMsaUJBQWlCLFFBQVE7QUFBQSxFQUMvRDtBQUdBLFFBQU0sRUFBRSwwQkFBMEIsSUFBSSxNQUFNLE9BQU8sK0JBQStCO0FBQ2xGLFFBQU0sUUFBUyx5QkFBK0I7QUFDOUMsU0FBTztBQUFBLElBQ0wsa0JBQWtCLE9BQU8sVUFBVSxXQUFXLFFBQVE7QUFBQSxJQUN0RCxpQkFBaUIsMEJBQTBCO0FBQUEsRUFDN0M7QUFDRjtBQUVBLFNBQVMsa0JBQTBCO0FBQ2pDLE1BQUkseUJBQVMsY0FBYztBQUN6QixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUkseUJBQVMsVUFBVTtBQUNyQixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUkseUJBQVMsU0FBUztBQUNwQixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUkseUJBQVMsT0FBTztBQUNsQixXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU8seUJBQVMsVUFBVSxVQUFVO0FBQ3RDO0FBRUEsU0FBUyxjQUFjLEtBQVUsVUFBdUM7QUFDdEUsU0FBTztBQUFBLElBQ0wsSUFBSTtBQUFBLElBQ0osU0FBUyxJQUFJLFFBQVEsVUFBVSxRQUFRLEdBQUcsV0FBVztBQUFBLEVBQ3ZEO0FBQ0Y7IiwibmFtZXMiOlsiQnVnUmVwb3J0SXNzdWVGb3JtRmllbGRJZCJdfQ==
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* structurally here, and reads as `unknown` if a later version drops it.
|
|
14
14
|
*/
|
|
15
15
|
import type { App } from 'obsidian' with { 'resolution-mode': 'import' };
|
|
16
|
+
import type { BugReportDiagnosticSection } from './bug-report-diagnostics.cjs';
|
|
16
17
|
/**
|
|
17
18
|
* The ids of the bug-report issue form's fields that {@link getBugReportIssueFormUrl} prefills. GitHub
|
|
18
19
|
* prefills a field from a query parameter named after the field's `id`, so a form must give its fields
|
|
@@ -40,6 +41,59 @@ export declare enum BugReportIssueFormFieldId {
|
|
|
40
41
|
* The file name of the bug-report issue form, under `.github/ISSUE_TEMPLATE`.
|
|
41
42
|
*/
|
|
42
43
|
export declare const BUG_REPORT_ISSUE_FORM_TEMPLATE = "bug_report.yml";
|
|
44
|
+
/**
|
|
45
|
+
* The default budget, in characters of the encoded URL, of a prefilled bug-report link.
|
|
46
|
+
*
|
|
47
|
+
* Measured against `github.com` on 2026-11-07, signed out: an issue-form URL up to about 6,540 characters
|
|
48
|
+
* was answered with the usual redirect to the form, about 8,088 with a 502, and 8,288 and more with a 414.
|
|
49
|
+
* 6,000 leaves room for a longer repository name and for a signed-in session's own limits.
|
|
50
|
+
*/
|
|
51
|
+
export declare const DEFAULT_BUG_REPORT_MAX_URL_LENGTH = 6000;
|
|
52
|
+
/**
|
|
53
|
+
* A link to a bug-report issue form, as {@link buildBugReportIssueFormLink} builds it.
|
|
54
|
+
*/
|
|
55
|
+
export interface BugReportIssueFormLink {
|
|
56
|
+
/**
|
|
57
|
+
* The text the user must paste into the form's environment field, when the full report did not fit the
|
|
58
|
+
* URL budget; `null` when the URL carries the whole report.
|
|
59
|
+
*/
|
|
60
|
+
readonly clipboardText: null | string;
|
|
61
|
+
/**
|
|
62
|
+
* The link.
|
|
63
|
+
*/
|
|
64
|
+
readonly url: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Parameters for {@link buildBugReportIssueFormLink}.
|
|
68
|
+
*/
|
|
69
|
+
export interface BuildBugReportIssueFormLinkParams {
|
|
70
|
+
/**
|
|
71
|
+
* The diagnostics the user agreed to include, appended to the environment field.
|
|
72
|
+
*/
|
|
73
|
+
readonly diagnostics?: readonly BugReportDiagnosticSection[];
|
|
74
|
+
/**
|
|
75
|
+
* The environment, from {@link getBugReportEnvironment}.
|
|
76
|
+
*/
|
|
77
|
+
readonly environment: BugReportEnvironment;
|
|
78
|
+
/**
|
|
79
|
+
* The plugin's GitHub repository, as `owner/name`.
|
|
80
|
+
*/
|
|
81
|
+
readonly gitHubRepo: string;
|
|
82
|
+
/**
|
|
83
|
+
* The most characters the encoded URL may have before the report moves to the clipboard.
|
|
84
|
+
*
|
|
85
|
+
* @default {@link DEFAULT_BUG_REPORT_MAX_URL_LENGTH}
|
|
86
|
+
*/
|
|
87
|
+
readonly maxUrlLength?: number;
|
|
88
|
+
/**
|
|
89
|
+
* The issue's title. Leave it out to keep the form's own default title.
|
|
90
|
+
*/
|
|
91
|
+
readonly title?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The text the environment field holds when the report moved to the clipboard.
|
|
95
|
+
*/
|
|
96
|
+
export declare const BUG_REPORT_PASTE_INSTRUCTIONS = "The full environment and diagnostics were copied to your clipboard because they are too long for a link. Replace this text by pasting them here.";
|
|
43
97
|
/**
|
|
44
98
|
* The environment a bug report needs.
|
|
45
99
|
*/
|
|
@@ -129,6 +183,17 @@ export interface GetGitHubIssueFormUrlParams {
|
|
|
129
183
|
*/
|
|
130
184
|
readonly title?: string;
|
|
131
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Builds a link to a plugin's bug-report issue form, prefilled with the environment and the given
|
|
188
|
+
* diagnostics. When the encoded link would be longer than
|
|
189
|
+
* {@link BuildBugReportIssueFormLinkParams.maxUrlLength}, the environment field gets
|
|
190
|
+
* {@link BUG_REPORT_PASTE_INSTRUCTIONS} instead, and the full text is returned as
|
|
191
|
+
* {@link BugReportIssueFormLink.clipboardText} for the caller to copy. Nothing is cut.
|
|
192
|
+
*
|
|
193
|
+
* @param params - The parameters.
|
|
194
|
+
* @returns The link, and the text to paste when it did not fit.
|
|
195
|
+
*/
|
|
196
|
+
export declare function buildBugReportIssueFormLink(params: BuildBugReportIssueFormLinkParams): BugReportIssueFormLink;
|
|
132
197
|
/**
|
|
133
198
|
* Renders a bug report's environment as a Markdown list.
|
|
134
199
|
*
|
|
@@ -93,7 +93,7 @@ __export(bulk_operation_progress_exports, {
|
|
|
93
93
|
reportBulkOperationProgress: () => reportBulkOperationProgress
|
|
94
94
|
});
|
|
95
95
|
module.exports = __toCommonJS(bulk_operation_progress_exports);
|
|
96
|
-
var import_obsidian_lib_state = require(
|
|
96
|
+
var import_obsidian_lib_state = require("./obsidian-lib-state.cjs");
|
|
97
97
|
const BULK_OPERATION_PROGRESS_STATE_KEY = "bulkOperationProgressV1";
|
|
98
98
|
const BULK_OPERATION_HOLD_INTERVAL_IN_MILLISECONDS = 1e4;
|
|
99
99
|
async function holdBulkOperationWhile(promise) {
|
|
@@ -128,8 +128,8 @@ __export(bulk_operation_exports, {
|
|
|
128
128
|
parseOperationNumber: () => parseOperationNumber
|
|
129
129
|
});
|
|
130
130
|
module.exports = __toCommonJS(bulk_operation_exports);
|
|
131
|
-
var import_reg_exp = require(
|
|
132
|
-
var import_type_guards = require(
|
|
131
|
+
var import_reg_exp = require("@mnaoumov/typescript-lib/reg-exp");
|
|
132
|
+
var import_type_guards = require("@mnaoumov/typescript-lib/type-guards");
|
|
133
133
|
const BULK_OPERATION_LOCK_FILE_NAME = "obsidian-bulk-operation.json";
|
|
134
134
|
const BULK_OPERATION_LOCK_STALE_AFTER_IN_MILLISECONDS = 12e4;
|
|
135
135
|
const OPERATION_TRAILER_KEY = "Obsidian-Bulk-Operation";
|
package/dist/lib/cjs/callout.cjs
CHANGED
|
@@ -119,12 +119,12 @@ __export(callout_exports, {
|
|
|
119
119
|
wrapForCallout: () => wrapForCallout
|
|
120
120
|
});
|
|
121
121
|
module.exports = __toCommonJS(callout_exports);
|
|
122
|
-
var import_object_utils = require(
|
|
123
|
-
var import_type_guards = require(
|
|
124
|
-
var import_value_provider = require(
|
|
125
|
-
var import_dataview = require(
|
|
126
|
-
var import_i18n = require(
|
|
127
|
-
var import_queue = require(
|
|
122
|
+
var import_object_utils = require("@mnaoumov/typescript-lib/object-utils");
|
|
123
|
+
var import_type_guards = require("@mnaoumov/typescript-lib/type-guards");
|
|
124
|
+
var import_value_provider = require("@mnaoumov/typescript-lib/value-provider");
|
|
125
|
+
var import_dataview = require("./dataview.cjs");
|
|
126
|
+
var import_i18n = require("./i18n/i18n.cjs");
|
|
127
|
+
var import_queue = require("./queue.cjs");
|
|
128
128
|
var CalloutMode = /* @__PURE__ */ ((CalloutMode2) => {
|
|
129
129
|
CalloutMode2[CalloutMode2["Default"] = 0] = "Default";
|
|
130
130
|
CalloutMode2[CalloutMode2["FoldableCollapsed"] = 1] = "FoldableCollapsed";
|
package/dist/lib/cjs/canvas.cjs
CHANGED
|
@@ -114,17 +114,18 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
114
114
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
115
115
|
var canvas_exports = {};
|
|
116
116
|
__export(canvas_exports, {
|
|
117
|
-
getCanvasReferences: () => getCanvasReferences
|
|
117
|
+
getCanvasReferences: () => getCanvasReferences,
|
|
118
|
+
getCanvasReferencesFromContent: () => getCanvasReferencesFromContent
|
|
118
119
|
});
|
|
119
120
|
module.exports = __toCommonJS(canvas_exports);
|
|
120
|
-
var import_type_guards = require(
|
|
121
|
-
var import_metadata_cache = require(
|
|
122
|
-
var import_vault = require(
|
|
121
|
+
var import_type_guards = require("@mnaoumov/typescript-lib/type-guards");
|
|
122
|
+
var import_metadata_cache = require("./metadata-cache.cjs");
|
|
123
|
+
var import_vault = require("./vault.cjs");
|
|
123
124
|
async function getCanvasReferences(app, pathOrFile) {
|
|
124
125
|
const content = await (0, import_vault.readSafe)(app, pathOrFile);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
126
|
+
return content === null ? [] : await getCanvasReferencesFromContent(app, content);
|
|
127
|
+
}
|
|
128
|
+
async function getCanvasReferencesFromContent(app, content) {
|
|
128
129
|
let partialCanvasData;
|
|
129
130
|
try {
|
|
130
131
|
partialCanvasData = JSON.parse(content);
|
|
@@ -192,6 +193,7 @@ function contributeMultiValueFrontmatterLinks(metadata) {
|
|
|
192
193
|
}
|
|
193
194
|
// Annotate the CommonJS export names for ESM import in node:
|
|
194
195
|
0 && (module.exports = {
|
|
195
|
-
getCanvasReferences
|
|
196
|
+
getCanvasReferences,
|
|
197
|
+
getCanvasReferencesFromContent
|
|
196
198
|
});
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jYW52YXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgdXRpbGl0eSBmdW5jdGlvbiBmb3IgZXh0cmFjdGluZyByZWZlcmVuY2VzIGZyb20gYSBjYW52YXMgKGAuY2FudmFzYCkgZmlsZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQ2FudmFzRGF0YSB9IGZyb20gJ29ic2lkaWFuL2NhbnZhcy5kLnRzJztcblxuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB0eXBlIHsgQ2FjaGVkTWV0YWRhdGFFeCB9IGZyb20gJy4vbWV0YWRhdGEtY2FjaGUudHMnO1xuaW1wb3J0IHR5cGUge1xuICBDYW52YXNGaWxlTm9kZVJlZmVyZW5jZSxcbiAgQ2FudmFzUmVmZXJlbmNlLFxuICBDYW52YXNUZXh0Tm9kZVJlZmVyZW5jZVxufSBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5cbmltcG9ydCB7XG4gIGdldFJlZmVyZW5jZXMsXG4gIHBhcnNlTWV0YWRhdGFcbn0gZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5pbXBvcnQgeyByZWFkU2FmZSB9IGZyb20gJy4vdmF1bHQudHMnO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBvdXRnb2luZyByZWZlcmVuY2VzIG9mIGEgY2FudmFzIChgLmNhbnZhc2ApIGZpbGUuXG4gKlxuICogT2JzaWRpYW4gZG9lcyBub3QgaW5kZXggY2FudmFzIGxpbmtzIGludG8gdGhlIHBlci1maWxlIG1ldGFkYXRhIGNhY2hlLCBzbyBhIGNhbnZhcyBmaWxlJ3NcbiAqIHtAbGluayBodHRwczovL2RvY3Mub2JzaWRpYW4ubWQvUmVmZXJlbmNlL1R5cGVTY3JpcHQrQVBJL0NhY2hlZE1ldGFkYXRhIHwgQ2FjaGVkTWV0YWRhdGF9IGlzIGVtcHR5IGFuZCB0aGVcbiAqIHVzdWFsIGNhY2hlLWJhc2VkIHJlYWRlcnMgcmV0dXJuIG5vdGhpbmcgZm9yIGl0LiBUaGlzIGhlbHBlciByZWFkcyB0aGUgY2FudmFzIEpTT04gZGlyZWN0bHkgYW5kIHJldHVybnNcbiAqIGJvdGggaXRzIGZpbGUtbm9kZSBsaW5rcyBhbmQgaXRzIHRleHQtbm9kZSBlbWJlZHMgYXMge0BsaW5rIENhbnZhc1JlZmVyZW5jZX1zLlxuICpcbiAqIFRoZSByZXR1cm5lZCByZWZlcmVuY2VzIGNhcnJ5IHRoZSBgbm9kZUluZGV4YC9gdHlwZWAgKGFuZCwgZm9yIHRleHQgbm9kZXMsIHRoZSBgb3JpZ2luYWxSZWZlcmVuY2VgKSB0aGF0XG4gKiB0aGUgY2FudmFzLWF3YXJlIHdyaXRlIHBhdGggbmVlZHMsIHNvIGEgY29uc3VtZXIgY2FuIG1vdmUgYSBjYW52YXMtcmVmZXJlbmNlZCBhdHRhY2htZW50IGFuZCByZXdyaXRlIHRoZVxuICogY2FudmFzIGJ5IGNvbXBvc2luZyBgcmVmZXJlbmNlVG9GaWxlQ2hhbmdlYCAoZnJvbSBgLi9yZWZlcmVuY2UudHNgKSB3aXRoIGBhcHBseUZpbGVDaGFuZ2VzYCAoZnJvbVxuICogYC4vZmlsZS1jaGFuZ2UudHNgKS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIGNhbnZhcyBmaWxlIChvciBpdHMgcGF0aCkgdG8gZXh0cmFjdCByZWZlcmVuY2VzIGZyb20uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjYW52YXMgcmVmZXJlbmNlcywgb3IgYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUgZmlsZSBpc1xuICogbWlzc2luZyBvciBpdHMgY29udGVudCBpcyBub3QgdmFsaWQgY2FudmFzIEpTT04uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDYW52YXNSZWZlcmVuY2VzKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTxDYW52YXNSZWZlcmVuY2VbXT4ge1xuICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZFNhZmUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgaWYgKGNvbnRlbnQgPT09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBsZXQgcGFydGlhbENhbnZhc0RhdGE6IG51bGwgfCBQYXJ0aWFsPENhbnZhc0RhdGE+O1xuICB0cnkge1xuICAgIHBhcnRpYWxDYW52YXNEYXRhID0gSlNPTi5wYXJzZShjb250ZW50KSBhcyBudWxsIHwgUGFydGlhbDxDYW52YXNEYXRhPjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgY2FudmFzRGF0YSA9IHBhcnRpYWxDYW52YXNEYXRhPy5ub2Rlc1xuICAgID8gcGFydGlhbENhbnZhc0RhdGEgYXMgQ2FudmFzRGF0YVxuICAgIDoge1xuICAgICAgZWRnZXM6IFtdLFxuICAgICAgbm9kZXM6IFtdXG4gICAgfTtcblxuICBjb25zdCByZWZlcmVuY2VzOiBDYW52YXNSZWZlcmVuY2VbXSA9IFtdO1xuICBjb25zdCBoYXNGcm9udG1hdHRlck1hcmtkb3duTGlua3NQbHVnaW4gPSAhIWFwcC5wbHVnaW5zLmdldFBsdWdpbignZnJvbnRtYXR0ZXItbWFya2Rvd24tbGlua3MnKTtcblxuICBmb3IgKGNvbnN0IFtub2RlSW5kZXgsIG5vZGVdIG9mIGNhbnZhc0RhdGEubm9kZXMuZW50cmllcygpKSB7XG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ZpbGUnOiB7XG4gICAgICAgIGNvbnN0IGNhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlOiBDYW52YXNGaWxlTm9kZVJlZmVyZW5jZSA9IHtcbiAgICAgICAgICBpc0NhbnZhczogdHJ1ZSxcbiAgICAgICAgICBrZXk6IGBub2Rlcy4ke1N0cmluZyhub2RlSW5kZXgpfS5maWxlYCxcbiAgICAgICAgICBsaW5rOiBub2RlLmZpbGUsXG4gICAgICAgICAgbm9kZUluZGV4LFxuICAgICAgICAgIG9yaWdpbmFsOiBub2RlLmZpbGUsXG4gICAgICAgICAgdHlwZTogJ2ZpbGUnXG4gICAgICAgIH07XG4gICAgICAgIHJlZmVyZW5jZXMucHVzaChjYW52YXNGaWxlTm9kZVJlZmVyZW5jZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAndGV4dCc6IHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBwYXJzZU1ldGFkYXRhKGFwcCwgbm9kZS50ZXh0LCB7IHNob3VsZFBhcnNlTXVsdGlWYWx1ZUZyb250bWF0dGVyTGlua3M6IGhhc0Zyb250bWF0dGVyTWFya2Rvd25MaW5rc1BsdWdpbiB9KTtcbiAgICAgICAgaWYgKGhhc0Zyb250bWF0dGVyTWFya2Rvd25MaW5rc1BsdWdpbikge1xuICAgICAgICAgIGNvbnRyaWJ1dGVNdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rcyhtZXRhZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGV4dFJlZmVyZW5jZXMgPSBnZXRSZWZlcmVuY2VzKHsgY2FjaGU6IG1ldGFkYXRhIH0pO1xuICAgICAgICBmb3IgKGNvbnN0IFtyZWZlcmVuY2VJbmRleCwgcmVmZXJlbmNlXSBvZiB0ZXh0UmVmZXJlbmNlcy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICBjb25zdCBjYW52YXNUZXh0Tm9kZVJlZmVyZW5jZTogQ2FudmFzVGV4dE5vZGVSZWZlcmVuY2UgPSB7XG4gICAgICAgICAgICBpc0NhbnZhczogdHJ1ZSxcbiAgICAgICAgICAgIGtleTogYG5vZGVzLiR7U3RyaW5nKG5vZGVJbmRleCl9LnRleHQuJHtTdHJpbmcocmVmZXJlbmNlSW5kZXgpfWAsXG4gICAgICAgICAgICBsaW5rOiByZWZlcmVuY2UubGluayxcbiAgICAgICAgICAgIG5vZGVJbmRleCxcbiAgICAgICAgICAgIG9yaWdpbmFsOiByZWZlcmVuY2Uub3JpZ2luYWwsXG4gICAgICAgICAgICBvcmlnaW5hbFJlZmVyZW5jZTogcmVmZXJlbmNlLFxuICAgICAgICAgICAgdHlwZTogJ3RleHQnXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZWZlcmVuY2VzLnB1c2goY2FudmFzVGV4dE5vZGVSZWZlcmVuY2UpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVmZXJlbmNlcztcbn1cblxuLyoqXG4gKiBNYWtlcyB0aGUgb25lIGNoYW5nZSB0byBhIGNhbnZhcyB0ZXh0IG5vZGUncyBtZXRhZGF0YSB0aGF0IHRoZSBgRnJvbnRtYXR0ZXIgTWFya2Rvd24gTGlua3NgIHBsdWdpbiBtYWtlcyB0byBhXG4gKiBub3RlJ3MgY2FjaGUsIHNvIGEgdGV4dCBub2RlIHJlYWRzIGl0cyBsaW5rcyBhcyBhIG5vdGUgd2l0aCB0aGUgc2FtZSB0ZXh0IHdvdWxkLlxuICpcbiAqIE9ic2lkaWFuIGl0c2VsZiByZWFkcyBhIHByb3BlcnR5IHdob3NlIFdIT0xFIHZhbHVlIGlzIG9uZSBpbnRlcm5hbCBsaW5rLCBtYXJrZG93biBsaW5rcyBpbmNsdWRlZCwgc28gdGhlIHBsdWdpblxuICogY29udHJpYnV0ZXMgb25seSB0aGUgbGlua3MgZW1iZWRkZWQgaW4gYSBtdWx0aS1saW5rIHZhbHVlIChgW0FdKGEubWQpLCBbQl0oYi5tZClgKSBhbmQgcmVwbGFjZXMgd2hhdGV2ZXIgT2JzaWRpYW5cbiAqIHJlY29yZGVkIHVuZGVyIHRoZSBzYW1lIGtleS4gQSB0ZXh0IG5vZGUgaXMgcGFyc2VkIG91dHNpZGUgdGhlIG1ldGFkYXRhIGNhY2hlLCB3aGVyZSB0aGUgcGx1Z2luIG5ldmVyIHNlZXMgaXQsXG4gKiBzbyB0aGUgc2FtZSBzdGVwIGlzIHJlcGVhdGVkIGhlcmUuXG4gKlxuICogQHBhcmFtIG1ldGFkYXRhIC0gVGhlIHRleHQgbm9kZSdzIG1ldGFkYXRhLCBwYXJzZWQgd2l0aCBtdWx0aS12YWx1ZSBmcm9udG1hdHRlciBsaW5rcywgc29cbiAqIGBtdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rc2AgaXMgYWx3YXlzIHNldC5cbiAqL1xuZnVuY3Rpb24gY29udHJpYnV0ZU11bHRpVmFsdWVGcm9udG1hdHRlckxpbmtzKG1ldGFkYXRhOiBDYWNoZWRNZXRhZGF0YUV4KTogdm9pZCB7XG4gIGNvbnN0IGNvbnRyaWJ1dGVkTGlua3MgPSBlbnN1cmVOb25OdWxsYWJsZShtZXRhZGF0YS5tdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rcyk7XG4gIGlmIChjb250cmlidXRlZExpbmtzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGNvbnRyaWJ1dGVkS2V5cyA9IG5ldyBTZXQoY29udHJpYnV0ZWRMaW5rcy5tYXAoKGxpbmspID0+IGxpbmsua2V5KSk7XG4gIC8vIEEgY29udHJpYnV0ZWQgbGluayBtZWFucyB0aGUgbm90ZSBoYXMgYSBmcm9udG1hdHRlciByZWNvcmQsIGFuZCBPYnNpZGlhbiBhc3NpZ25zIGBmcm9udG1hdHRlckxpbmtzYCBiZXNpZGUgaXQuXG4gIC8qIHY4IGlnbm9yZSBuZXh0IC0tIE5ldmVyIG51bGxpc2ggd2hlbiBhIGxpbmsgd2FzIGNvbnRyaWJ1dGVkOyB0aGUgYD8/IFtdYCBpcyBkZWZlbnNpdmUuICovXG4gIGNvbnN0IG5hdGl2ZUxpbmtzID0gbWV0YWRhdGEuZnJvbnRtYXR0ZXJMaW5rcyA/PyBbXTtcbiAgbWV0YWRhdGEuZnJvbnRtYXR0ZXJMaW5rcyA9IFtcbiAgICAuLi5uYXRpdmVMaW5rcy5maWx0ZXIoKGxpbmspID0+ICFjb250cmlidXRlZEtleXMuaGFzKGxpbmsua2V5KSksXG4gICAgLi4uY29udHJpYnV0ZWRMaW5rc1xuICBdO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7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
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jYW52YXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIGEgdXRpbGl0eSBmdW5jdGlvbiBmb3IgZXh0cmFjdGluZyByZWZlcmVuY2VzIGZyb20gYSBjYW52YXMgKGAuY2FudmFzYCkgZmlsZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQ2FudmFzRGF0YSB9IGZyb20gJ29ic2lkaWFuL2NhbnZhcy5kLnRzJztcblxuaW1wb3J0IHsgZW5zdXJlTm9uTnVsbGFibGUgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZS1ndWFyZHMnO1xuXG5pbXBvcnQgdHlwZSB7IFBhdGhPckZpbGUgfSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB0eXBlIHsgQ2FjaGVkTWV0YWRhdGFFeCB9IGZyb20gJy4vbWV0YWRhdGEtY2FjaGUudHMnO1xuaW1wb3J0IHR5cGUge1xuICBDYW52YXNGaWxlTm9kZVJlZmVyZW5jZSxcbiAgQ2FudmFzUmVmZXJlbmNlLFxuICBDYW52YXNUZXh0Tm9kZVJlZmVyZW5jZVxufSBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5cbmltcG9ydCB7XG4gIGdldFJlZmVyZW5jZXMsXG4gIHBhcnNlTWV0YWRhdGFcbn0gZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5pbXBvcnQgeyByZWFkU2FmZSB9IGZyb20gJy4vdmF1bHQudHMnO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBvdXRnb2luZyByZWZlcmVuY2VzIG9mIGEgY2FudmFzIChgLmNhbnZhc2ApIGZpbGUuXG4gKlxuICogT2JzaWRpYW4gZG9lcyBub3QgaW5kZXggY2FudmFzIGxpbmtzIGludG8gdGhlIHBlci1maWxlIG1ldGFkYXRhIGNhY2hlLCBzbyBhIGNhbnZhcyBmaWxlJ3NcbiAqIHtAbGluayBodHRwczovL2RvY3Mub2JzaWRpYW4ubWQvUmVmZXJlbmNlL1R5cGVTY3JpcHQrQVBJL0NhY2hlZE1ldGFkYXRhIHwgQ2FjaGVkTWV0YWRhdGF9IGlzIGVtcHR5IGFuZCB0aGVcbiAqIHVzdWFsIGNhY2hlLWJhc2VkIHJlYWRlcnMgcmV0dXJuIG5vdGhpbmcgZm9yIGl0LiBUaGlzIGhlbHBlciByZWFkcyB0aGUgY2FudmFzIEpTT04gZGlyZWN0bHkgYW5kIHJldHVybnNcbiAqIGJvdGggaXRzIGZpbGUtbm9kZSBsaW5rcyBhbmQgaXRzIHRleHQtbm9kZSBlbWJlZHMgYXMge0BsaW5rIENhbnZhc1JlZmVyZW5jZX1zLlxuICpcbiAqIFRoZSByZXR1cm5lZCByZWZlcmVuY2VzIGNhcnJ5IHRoZSBgbm9kZUluZGV4YC9gdHlwZWAgKGFuZCwgZm9yIHRleHQgbm9kZXMsIHRoZSBgb3JpZ2luYWxSZWZlcmVuY2VgKSB0aGF0XG4gKiB0aGUgY2FudmFzLWF3YXJlIHdyaXRlIHBhdGggbmVlZHMsIHNvIGEgY29uc3VtZXIgY2FuIG1vdmUgYSBjYW52YXMtcmVmZXJlbmNlZCBhdHRhY2htZW50IGFuZCByZXdyaXRlIHRoZVxuICogY2FudmFzIGJ5IGNvbXBvc2luZyBgcmVmZXJlbmNlVG9GaWxlQ2hhbmdlYCAoZnJvbSBgLi9yZWZlcmVuY2UudHNgKSB3aXRoIGBhcHBseUZpbGVDaGFuZ2VzYCAoZnJvbVxuICogYC4vZmlsZS1jaGFuZ2UudHNgKS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIGNhbnZhcyBmaWxlIChvciBpdHMgcGF0aCkgdG8gZXh0cmFjdCByZWZlcmVuY2VzIGZyb20uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjYW52YXMgcmVmZXJlbmNlcywgb3IgYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUgZmlsZSBpc1xuICogbWlzc2luZyBvciBpdHMgY29udGVudCBpcyBub3QgdmFsaWQgY2FudmFzIEpTT04uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDYW52YXNSZWZlcmVuY2VzKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTxDYW52YXNSZWZlcmVuY2VbXT4ge1xuICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZFNhZmUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgcmV0dXJuIGNvbnRlbnQgPT09IG51bGwgPyBbXSA6IGF3YWl0IGdldENhbnZhc1JlZmVyZW5jZXNGcm9tQ29udGVudChhcHAsIGNvbnRlbnQpO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBvdXRnb2luZyByZWZlcmVuY2VzIG9mIGEgY2FudmFzIGZyb20gaXRzIEpTT04gY29udGVudC5cbiAqXG4gKiBUaGlzIGlzIHtAbGluayBnZXRDYW52YXNSZWZlcmVuY2VzfSB3aXRob3V0IHRoZSByZWFkOiB1c2UgaXQgd2hlbiB0aGUgY29udGVudCBpcyBhbHJlYWR5IGluIGhhbmQsIGZvciBleGFtcGxlXG4gKiBpbnNpZGUgYW4gYGFwcGx5RmlsZUNoYW5nZXNgIGNoYW5nZXMgcHJvdmlkZXIsIHNvIHRoZSByZWZlcmVuY2VzIGRlc2NyaWJlIGV4YWN0bHkgdGhlIGNvbnRlbnQgdGhlIGNoYW5nZXMgd2lsbCBiZVxuICogYXBwbGllZCB0by5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIGNhbnZhcyBKU09OIGNvbnRlbnQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBjYW52YXMgcmVmZXJlbmNlcywgb3IgYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGUgY29udGVudCBpcyBub3QgdmFsaWRcbiAqIGNhbnZhcyBKU09OLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q2FudmFzUmVmZXJlbmNlc0Zyb21Db250ZW50KGFwcDogQXBwLCBjb250ZW50OiBzdHJpbmcpOiBQcm9taXNlPENhbnZhc1JlZmVyZW5jZVtdPiB7XG4gIGxldCBwYXJ0aWFsQ2FudmFzRGF0YTogbnVsbCB8IFBhcnRpYWw8Q2FudmFzRGF0YT47XG4gIHRyeSB7XG4gICAgcGFydGlhbENhbnZhc0RhdGEgPSBKU09OLnBhcnNlKGNvbnRlbnQpIGFzIG51bGwgfCBQYXJ0aWFsPENhbnZhc0RhdGE+O1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBjYW52YXNEYXRhID0gcGFydGlhbENhbnZhc0RhdGE/Lm5vZGVzXG4gICAgPyBwYXJ0aWFsQ2FudmFzRGF0YSBhcyBDYW52YXNEYXRhXG4gICAgOiB7XG4gICAgICBlZGdlczogW10sXG4gICAgICBub2RlczogW11cbiAgICB9O1xuXG4gIGNvbnN0IHJlZmVyZW5jZXM6IENhbnZhc1JlZmVyZW5jZVtdID0gW107XG4gIGNvbnN0IGhhc0Zyb250bWF0dGVyTWFya2Rvd25MaW5rc1BsdWdpbiA9ICEhYXBwLnBsdWdpbnMuZ2V0UGx1Z2luKCdmcm9udG1hdHRlci1tYXJrZG93bi1saW5rcycpO1xuXG4gIGZvciAoY29uc3QgW25vZGVJbmRleCwgbm9kZV0gb2YgY2FudmFzRGF0YS5ub2Rlcy5lbnRyaWVzKCkpIHtcbiAgICBzd2l0Y2ggKG5vZGUudHlwZSkge1xuICAgICAgY2FzZSAnZmlsZSc6IHtcbiAgICAgICAgY29uc3QgY2FudmFzRmlsZU5vZGVSZWZlcmVuY2U6IENhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlID0ge1xuICAgICAgICAgIGlzQ2FudmFzOiB0cnVlLFxuICAgICAgICAgIGtleTogYG5vZGVzLiR7U3RyaW5nKG5vZGVJbmRleCl9LmZpbGVgLFxuICAgICAgICAgIGxpbms6IG5vZGUuZmlsZSxcbiAgICAgICAgICBub2RlSW5kZXgsXG4gICAgICAgICAgb3JpZ2luYWw6IG5vZGUuZmlsZSxcbiAgICAgICAgICB0eXBlOiAnZmlsZSdcbiAgICAgICAgfTtcbiAgICAgICAgcmVmZXJlbmNlcy5wdXNoKGNhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICd0ZXh0Jzoge1xuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IHBhcnNlTWV0YWRhdGEoYXBwLCBub2RlLnRleHQsIHsgc2hvdWxkUGFyc2VNdWx0aVZhbHVlRnJvbnRtYXR0ZXJMaW5rczogaGFzRnJvbnRtYXR0ZXJNYXJrZG93bkxpbmtzUGx1Z2luIH0pO1xuICAgICAgICBpZiAoaGFzRnJvbnRtYXR0ZXJNYXJrZG93bkxpbmtzUGx1Z2luKSB7XG4gICAgICAgICAgY29udHJpYnV0ZU11bHRpVmFsdWVGcm9udG1hdHRlckxpbmtzKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0UmVmZXJlbmNlcyA9IGdldFJlZmVyZW5jZXMoeyBjYWNoZTogbWV0YWRhdGEgfSk7XG4gICAgICAgIGZvciAoY29uc3QgW3JlZmVyZW5jZUluZGV4LCByZWZlcmVuY2VdIG9mIHRleHRSZWZlcmVuY2VzLmVudHJpZXMoKSkge1xuICAgICAgICAgIGNvbnN0IGNhbnZhc1RleHROb2RlUmVmZXJlbmNlOiBDYW52YXNUZXh0Tm9kZVJlZmVyZW5jZSA9IHtcbiAgICAgICAgICAgIGlzQ2FudmFzOiB0cnVlLFxuICAgICAgICAgICAga2V5OiBgbm9kZXMuJHtTdHJpbmcobm9kZUluZGV4KX0udGV4dC4ke1N0cmluZyhyZWZlcmVuY2VJbmRleCl9YCxcbiAgICAgICAgICAgIGxpbms6IHJlZmVyZW5jZS5saW5rLFxuICAgICAgICAgICAgbm9kZUluZGV4LFxuICAgICAgICAgICAgb3JpZ2luYWw6IHJlZmVyZW5jZS5vcmlnaW5hbCxcbiAgICAgICAgICAgIG9yaWdpbmFsUmVmZXJlbmNlOiByZWZlcmVuY2UsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCdcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJlZmVyZW5jZXMucHVzaChjYW52YXNUZXh0Tm9kZVJlZmVyZW5jZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZWZlcmVuY2VzO1xufVxuXG4vKipcbiAqIE1ha2VzIHRoZSBvbmUgY2hhbmdlIHRvIGEgY2FudmFzIHRleHQgbm9kZSdzIG1ldGFkYXRhIHRoYXQgdGhlIGBGcm9udG1hdHRlciBNYXJrZG93biBMaW5rc2AgcGx1Z2luIG1ha2VzIHRvIGFcbiAqIG5vdGUncyBjYWNoZSwgc28gYSB0ZXh0IG5vZGUgcmVhZHMgaXRzIGxpbmtzIGFzIGEgbm90ZSB3aXRoIHRoZSBzYW1lIHRleHQgd291bGQuXG4gKlxuICogT2JzaWRpYW4gaXRzZWxmIHJlYWRzIGEgcHJvcGVydHkgd2hvc2UgV0hPTEUgdmFsdWUgaXMgb25lIGludGVybmFsIGxpbmssIG1hcmtkb3duIGxpbmtzIGluY2x1ZGVkLCBzbyB0aGUgcGx1Z2luXG4gKiBjb250cmlidXRlcyBvbmx5IHRoZSBsaW5rcyBlbWJlZGRlZCBpbiBhIG11bHRpLWxpbmsgdmFsdWUgKGBbQV0oYS5tZCksIFtCXShiLm1kKWApIGFuZCByZXBsYWNlcyB3aGF0ZXZlciBPYnNpZGlhblxuICogcmVjb3JkZWQgdW5kZXIgdGhlIHNhbWUga2V5LiBBIHRleHQgbm9kZSBpcyBwYXJzZWQgb3V0c2lkZSB0aGUgbWV0YWRhdGEgY2FjaGUsIHdoZXJlIHRoZSBwbHVnaW4gbmV2ZXIgc2VlcyBpdCxcbiAqIHNvIHRoZSBzYW1lIHN0ZXAgaXMgcmVwZWF0ZWQgaGVyZS5cbiAqXG4gKiBAcGFyYW0gbWV0YWRhdGEgLSBUaGUgdGV4dCBub2RlJ3MgbWV0YWRhdGEsIHBhcnNlZCB3aXRoIG11bHRpLXZhbHVlIGZyb250bWF0dGVyIGxpbmtzLCBzb1xuICogYG11bHRpVmFsdWVGcm9udG1hdHRlckxpbmtzYCBpcyBhbHdheXMgc2V0LlxuICovXG5mdW5jdGlvbiBjb250cmlidXRlTXVsdGlWYWx1ZUZyb250bWF0dGVyTGlua3MobWV0YWRhdGE6IENhY2hlZE1ldGFkYXRhRXgpOiB2b2lkIHtcbiAgY29uc3QgY29udHJpYnV0ZWRMaW5rcyA9IGVuc3VyZU5vbk51bGxhYmxlKG1ldGFkYXRhLm11bHRpVmFsdWVGcm9udG1hdHRlckxpbmtzKTtcbiAgaWYgKGNvbnRyaWJ1dGVkTGlua3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29udHJpYnV0ZWRLZXlzID0gbmV3IFNldChjb250cmlidXRlZExpbmtzLm1hcCgobGluaykgPT4gbGluay5rZXkpKTtcbiAgLy8gQSBjb250cmlidXRlZCBsaW5rIG1lYW5zIHRoZSBub3RlIGhhcyBhIGZyb250bWF0dGVyIHJlY29yZCwgYW5kIE9ic2lkaWFuIGFzc2lnbnMgYGZyb250bWF0dGVyTGlua3NgIGJlc2lkZSBpdC5cbiAgLyogdjggaWdub3JlIG5leHQgLS0gTmV2ZXIgbnVsbGlzaCB3aGVuIGEgbGluayB3YXMgY29udHJpYnV0ZWQ7IHRoZSBgPz8gW11gIGlzIGRlZmVuc2l2ZS4gKi9cbiAgY29uc3QgbmF0aXZlTGlua3MgPSBtZXRhZGF0YS5mcm9udG1hdHRlckxpbmtzID8/IFtdO1xuICBtZXRhZGF0YS5mcm9udG1hdHRlckxpbmtzID0gW1xuICAgIC4uLm5hdGl2ZUxpbmtzLmZpbHRlcigobGluaykgPT4gIWNvbnRyaWJ1dGVkS2V5cy5oYXMobGluay5rZXkpKSxcbiAgICAuLi5jb250cmlidXRlZExpbmtzXG4gIF07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBLHlCQUFrQztBQVVsQyw0QkFHTztBQUNQLG1CQUF5QjtBQW9CekIsZUFBc0Isb0JB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
|
|
@@ -26,3 +26,16 @@ import type { CanvasReference } from './reference.cjs';
|
|
|
26
26
|
* missing or its content is not valid canvas JSON.
|
|
27
27
|
*/
|
|
28
28
|
export declare function getCanvasReferences(app: App, pathOrFile: PathOrFile): Promise<CanvasReference[]>;
|
|
29
|
+
/**
|
|
30
|
+
* Extracts the outgoing references of a canvas from its JSON content.
|
|
31
|
+
*
|
|
32
|
+
* This is {@link getCanvasReferences} without the read: use it when the content is already in hand, for example
|
|
33
|
+
* inside an `applyFileChanges` changes provider, so the references describe exactly the content the changes will be
|
|
34
|
+
* applied to.
|
|
35
|
+
*
|
|
36
|
+
* @param app - The Obsidian app instance.
|
|
37
|
+
* @param content - The canvas JSON content.
|
|
38
|
+
* @returns A {@link Promise} that resolves to the canvas references, or an empty array when the content is not valid
|
|
39
|
+
* canvas JSON.
|
|
40
|
+
*/
|
|
41
|
+
export declare function getCanvasReferencesFromContent(app: App, content: string): Promise<CanvasReference[]>;
|
|
@@ -120,9 +120,9 @@ __export(case_insensitive_file_index_exports, {
|
|
|
120
120
|
unsetCaseInsensitiveFileIndex: () => unsetCaseInsensitiveFileIndex
|
|
121
121
|
});
|
|
122
122
|
module.exports = __toCommonJS(case_insensitive_file_index_exports);
|
|
123
|
-
var import_array = require(
|
|
124
|
-
var import_obsidian = require(
|
|
125
|
-
var import_obsidian_lib_state = require(
|
|
123
|
+
var import_array = require("@mnaoumov/typescript-lib/array");
|
|
124
|
+
var import_obsidian = require("obsidian");
|
|
125
|
+
var import_obsidian_lib_state = require("./obsidian-lib-state.cjs");
|
|
126
126
|
const STATE_KEY = "caseInsensitiveFileIndex";
|
|
127
127
|
class CaseInsensitiveFileIndex {
|
|
128
128
|
/**
|
|
@@ -121,11 +121,11 @@ __export(code_block_render_handoff_exports, {
|
|
|
121
121
|
restoreCodeBlockFocus: () => restoreCodeBlockFocus
|
|
122
122
|
});
|
|
123
123
|
module.exports = __toCommonJS(code_block_render_handoff_exports);
|
|
124
|
-
var import_async = require(
|
|
125
|
-
var import_reg_exp = require(
|
|
126
|
-
var import_string = require(
|
|
127
|
-
var import_code_block_reg_exp = require(
|
|
128
|
-
var import_obsidian_lib_state = require(
|
|
124
|
+
var import_async = require("@mnaoumov/typescript-lib/async");
|
|
125
|
+
var import_reg_exp = require("@mnaoumov/typescript-lib/reg-exp");
|
|
126
|
+
var import_string = require("@mnaoumov/typescript-lib/string");
|
|
127
|
+
var import_code_block_reg_exp = require("./code-block-reg-exp.cjs");
|
|
128
|
+
var import_obsidian_lib_state = require("./obsidian-lib-state.cjs");
|
|
129
129
|
const CODE_BLOCK_RENDER_HANDOFF_LIFETIME_IN_MILLISECONDS = 1e4;
|
|
130
130
|
const HANDOFF_STATE_KEY = "codeBlockRenderHandoffV1";
|
|
131
131
|
const MAX_FRAMES_TO_WAIT_FOR_CONNECTION = 60;
|
|
@@ -119,10 +119,10 @@ __export(editor_mode_extension_exports, {
|
|
|
119
119
|
isLivePreview: () => isLivePreview
|
|
120
120
|
});
|
|
121
121
|
module.exports = __toCommonJS(editor_mode_extension_exports);
|
|
122
|
-
var import_state = require(
|
|
123
|
-
var import_view = require(
|
|
124
|
-
var import_object_utils = require(
|
|
125
|
-
var import_obsidian = require(
|
|
122
|
+
var import_state = require("@codemirror/state");
|
|
123
|
+
var import_view = require("@codemirror/view");
|
|
124
|
+
var import_object_utils = require("@mnaoumov/typescript-lib/object-utils");
|
|
125
|
+
var import_obsidian = require("obsidian");
|
|
126
126
|
const editorLivePreviewStateField = (0, import_object_utils.castTo)(import_obsidian.editorLivePreviewField);
|
|
127
127
|
function createLivePreviewOnlyExtension(extension) {
|
|
128
128
|
return createModeScopedExtension(extension, true);
|
|
@@ -117,8 +117,8 @@ __export(incremental_parse_state_field_exports, {
|
|
|
117
117
|
createIncrementalParseStateField: () => createIncrementalParseStateField
|
|
118
118
|
});
|
|
119
119
|
module.exports = __toCommonJS(incremental_parse_state_field_exports);
|
|
120
|
-
var import_state = require(
|
|
121
|
-
var import_common = require(
|
|
120
|
+
var import_state = require("@codemirror/state");
|
|
121
|
+
var import_common = require("@lezer/common");
|
|
122
122
|
function createIncrementalParseStateField(parser) {
|
|
123
123
|
return import_state.StateField.define({
|
|
124
124
|
create(state) {
|
|
@@ -106,13 +106,13 @@ __export(codemirror_exports, {
|
|
|
106
106
|
"state-field-spec": () => state_field_spec
|
|
107
107
|
});
|
|
108
108
|
module.exports = __toCommonJS(codemirror_exports);
|
|
109
|
-
var editor_mode_extension = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require(
|
|
110
|
-
var incremental_parse_state_field = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require(
|
|
111
|
-
var inline_token_widgets = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require(
|
|
112
|
-
var markdown_editor_views = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require(
|
|
113
|
-
var range_set = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require(
|
|
114
|
-
var settings_facet = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require(
|
|
115
|
-
var state_field_spec = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require(
|
|
109
|
+
var editor_mode_extension = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require("./editor-mode-extension.cjs")), 1);
|
|
110
|
+
var incremental_parse_state_field = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require("./incremental-parse-state-field.cjs")), 1);
|
|
111
|
+
var inline_token_widgets = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require("./inline-token-widgets.cjs")), 1);
|
|
112
|
+
var markdown_editor_views = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require("./markdown-editor-views.cjs")), 1);
|
|
113
|
+
var range_set = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require("./range-set.cjs")), 1);
|
|
114
|
+
var settings_facet = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require("./settings-facet.cjs")), 1);
|
|
115
|
+
var state_field_spec = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require("./state-field-spec.cjs")), 1);
|
|
116
116
|
// Annotate the CommonJS export names for ESM import in node:
|
|
117
117
|
0 && (module.exports = {
|
|
118
118
|
"editor-mode-extension": null,
|
|
@@ -119,11 +119,11 @@ __export(inline_token_widgets_exports, {
|
|
|
119
119
|
toGlobalRegExp: () => toGlobalRegExp
|
|
120
120
|
});
|
|
121
121
|
module.exports = __toCommonJS(inline_token_widgets_exports);
|
|
122
|
-
var import_view = require(
|
|
123
|
-
var import_object_utils = require(
|
|
124
|
-
var import_obsidian = require(
|
|
125
|
-
var import_css_class = require(
|
|
126
|
-
var import_editor_mode_extension = require(
|
|
122
|
+
var import_view = require("@codemirror/view");
|
|
123
|
+
var import_object_utils = require("@mnaoumov/typescript-lib/object-utils");
|
|
124
|
+
var import_obsidian = require("obsidian");
|
|
125
|
+
var import_css_class = require("../css-class.cjs");
|
|
126
|
+
var import_editor_mode_extension = require("./editor-mode-extension.cjs");
|
|
127
127
|
const editorInfoStateField = (0, import_object_utils.castTo)(import_obsidian.editorInfoField);
|
|
128
128
|
class InlineTokenWidget extends import_view.WidgetType {
|
|
129
129
|
configVersion;
|
|
@@ -118,8 +118,8 @@ __export(markdown_editor_views_exports, {
|
|
|
118
118
|
getAllMarkdownEditorViews: () => getAllMarkdownEditorViews
|
|
119
119
|
});
|
|
120
120
|
module.exports = __toCommonJS(markdown_editor_views_exports);
|
|
121
|
-
var import_implementations = require(
|
|
122
|
-
var import_obsidian = require(
|
|
121
|
+
var import_implementations = require("@obsidian-typings/obsidian-public-latest/implementations");
|
|
122
|
+
var import_obsidian = require("obsidian");
|
|
123
123
|
function dispatchToAllMarkdownEditorViews(app, ...specs) {
|
|
124
124
|
for (const editorView of getAllMarkdownEditorViews(app)) {
|
|
125
125
|
editorView.dispatch(...specs);
|
|
@@ -117,7 +117,7 @@ __export(settings_facet_exports, {
|
|
|
117
117
|
createSettingsFacet: () => createSettingsFacet
|
|
118
118
|
});
|
|
119
119
|
module.exports = __toCommonJS(settings_facet_exports);
|
|
120
|
-
var import_state = require(
|
|
120
|
+
var import_state = require("@codemirror/state");
|
|
121
121
|
function createSettingsFacet(defaultValue) {
|
|
122
122
|
return import_state.Facet.define({
|
|
123
123
|
combine(values) {
|