@mnaoumov/obsidian-lib 10.12.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/worker-component/package.json +6 -0
- package/components/worker-pool-component/package.json +6 -0
- package/dist/lib/cjs/__merged.cjs +409 -292
- package/dist/lib/cjs/__merged.d.cts +17 -8
- package/dist/lib/cjs/anchored-suggest.cjs +1 -1
- package/dist/lib/cjs/app.cjs +2 -2
- package/dist/lib/cjs/async-with-notice.cjs +4 -4
- package/dist/lib/cjs/attachment-path.cjs +9 -9
- package/dist/lib/cjs/attachment-path.d.cts +3 -3
- package/dist/lib/cjs/attachment-unit-folder.cjs +2 -2
- package/dist/lib/cjs/backlink-index.cjs +5 -5
- package/dist/lib/cjs/backlink.cjs +7 -7
- package/dist/lib/cjs/bases-view-registrar.cjs +1 -1
- package/dist/lib/cjs/broken-link-candidates.cjs +1 -1
- package/dist/lib/cjs/bug-report.cjs +3 -3
- package/dist/lib/cjs/bulk-operation-progress.cjs +1 -1
- package/dist/lib/cjs/bulk-operation.cjs +2 -2
- package/dist/lib/cjs/callout.cjs +6 -6
- package/dist/lib/cjs/canvas.cjs +11 -9
- package/dist/lib/cjs/canvas.d.cts +13 -0
- package/dist/lib/cjs/case-insensitive-file-index.cjs +3 -3
- package/dist/lib/cjs/code-block-render-handoff.cjs +5 -5
- package/dist/lib/cjs/codemirror/editor-mode-extension.cjs +4 -4
- package/dist/lib/cjs/codemirror/incremental-parse-state-field.cjs +2 -2
- package/dist/lib/cjs/codemirror/index.cjs +7 -7
- package/dist/lib/cjs/codemirror/inline-token-widgets.cjs +5 -5
- package/dist/lib/cjs/codemirror/markdown-editor-views.cjs +2 -2
- package/dist/lib/cjs/codemirror/settings-facet.cjs +1 -1
- package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +17 -17
- package/dist/lib/cjs/command-handlers/abstract-file-command-handler.d.cts +13 -13
- package/dist/lib/cjs/command-handlers/command-handler-component.cjs +2 -2
- package/dist/lib/cjs/command-handlers/command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +10 -10
- package/dist/lib/cjs/command-handlers/editor-command-handler.d.cts +7 -7
- package/dist/lib/cjs/command-handlers/file-command-handler.cjs +3 -3
- package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +3 -3
- package/dist/lib/cjs/command-handlers/global-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/index.cjs +15 -15
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +6 -6
- package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +1 -1
- package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/undo-bulk-operation-command-handler.cjs +2 -2
- package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +1 -1
- package/dist/lib/cjs/community-plugins.cjs +3 -3
- package/dist/lib/cjs/components/abort-signal-component.cjs +2 -2
- package/dist/lib/cjs/components/all-windows-event-component.cjs +5 -5
- package/dist/lib/cjs/components/all-windows-status-bar-item-component.cjs +3 -3
- package/dist/lib/cjs/components/async-error-handler-component.cjs +5 -5
- package/dist/lib/cjs/components/async-events-component.cjs +1 -1
- package/dist/lib/cjs/components/bulk-operation-commit-component.cjs +12 -12
- package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +2 -2
- package/dist/lib/cjs/components/component-ex.cjs +21 -11
- package/dist/lib/cjs/components/component-ex.d.cts +11 -0
- package/dist/lib/cjs/components/console-debug-component.cjs +2 -2
- package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +2 -2
- package/dist/lib/cjs/components/disposable-component.cjs +2 -2
- package/dist/lib/cjs/components/embed-extensions-component.cjs +1 -1
- package/dist/lib/cjs/components/embeddable-markdown-editor-component.cjs +8 -8
- package/dist/lib/cjs/components/file-explorer-root-menu-component.cjs +7 -7
- package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +2 -2
- package/dist/lib/cjs/components/incremental-file-index-component.cjs +4 -4
- package/dist/lib/cjs/components/index.cjs +46 -40
- package/dist/lib/cjs/components/index.d.cts +2 -0
- package/dist/lib/cjs/components/layout-ready-component.cjs +3 -3
- package/dist/lib/cjs/components/menu-event-registrar-component.cjs +2 -2
- package/dist/lib/cjs/components/monkey-around-component.cjs +3 -3
- package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +5 -5
- package/dist/lib/cjs/components/plugin-context-component.cjs +5 -5
- package/dist/lib/cjs/components/plugin-gate-component.cjs +68 -28
- package/dist/lib/cjs/components/plugin-gate-component.d.cts +36 -13
- package/dist/lib/cjs/components/plugin-notice-component.cjs +39 -33
- package/dist/lib/cjs/components/plugin-notice-component.d.cts +4 -3
- package/dist/lib/cjs/components/plugin-settings-component.cjs +113 -17
- package/dist/lib/cjs/components/plugin-settings-component.d.cts +35 -5
- package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +2 -2
- package/dist/lib/cjs/components/plugin-suggestion-component.cjs +8 -8
- package/dist/lib/cjs/components/pointer-position-component.cjs +2 -2
- package/dist/lib/cjs/components/reconfigurable-editor-extension-component.cjs +3 -3
- package/dist/lib/cjs/components/registry-component.cjs +2 -2
- package/dist/lib/cjs/components/release-notes-component.cjs +6 -6
- package/dist/lib/cjs/components/rename-delete-handler-component.cjs +25 -25
- package/dist/lib/cjs/components/rmdir-guard-component.cjs +2 -2
- package/dist/lib/cjs/components/settings-facet-component.cjs +1 -1
- package/dist/lib/cjs/components/settings-migration-component.cjs +5 -5
- package/dist/lib/cjs/components/shared-component-pool-component.cjs +6 -6
- package/dist/lib/cjs/components/style-sheet-component.cjs +3 -3
- package/dist/lib/cjs/components/syntax-highlighting-component.cjs +3 -3
- package/dist/lib/cjs/components/templates-language-component.cjs +1 -1
- package/dist/lib/cjs/components/worker-component.cjs +363 -0
- package/dist/lib/cjs/components/worker-component.d.cts +156 -0
- package/dist/lib/cjs/components/worker-pool-component.cjs +185 -0
- package/dist/lib/cjs/components/worker-pool-component.d.cts +102 -0
- package/dist/lib/cjs/components/workspace-layout-state-component.cjs +7 -7
- package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +5 -5
- package/dist/lib/cjs/constructors/index.cjs +1 -1
- package/dist/lib/cjs/data-handler.cjs +111 -4
- package/dist/lib/cjs/data-handler.d.cts +92 -1
- package/dist/lib/cjs/data-stores/data-store-locations.cjs +82 -24
- package/dist/lib/cjs/data-stores/data-store-locations.d.cts +15 -0
- package/dist/lib/cjs/data-stores/data-store-replica.cjs +33 -5
- package/dist/lib/cjs/data-stores/data-store-seeds.cjs +6 -6
- package/dist/lib/cjs/data-stores/data-store-seeds.d.cts +2 -2
- package/dist/lib/cjs/data-stores/data-store-transport.cjs +81 -8
- package/dist/lib/cjs/data-stores/data-store-transport.d.cts +30 -1
- package/dist/lib/cjs/data-stores/index.cjs +6 -6
- package/dist/lib/cjs/data-stores/local-data-store.cjs +74 -10
- package/dist/lib/cjs/data-stores/local-data-store.d.cts +58 -1
- package/dist/lib/cjs/data-stores/shared-data-store.cjs +76 -19
- package/dist/lib/cjs/data-stores/shared-data-store.d.cts +18 -1
- package/dist/lib/cjs/dataview-link.cjs +2 -2
- package/dist/lib/cjs/dataview.cjs +27 -7
- package/dist/lib/cjs/dataview.d.cts +14 -0
- package/dist/lib/cjs/debug.cjs +3 -3
- package/dist/lib/cjs/demo-vault-helper.cjs +34 -6
- package/dist/lib/cjs/demo-vault-helper.d.cts +6 -2
- package/dist/lib/cjs/desktop-bulk-operation-git.cjs +10 -10
- package/dist/lib/cjs/desktop-demo-vault-opener.cjs +13 -13
- package/dist/lib/cjs/desktop-git-runner.cjs +2 -2
- package/dist/lib/cjs/desktop-operating-system.cjs +1 -1
- package/dist/lib/cjs/desktop-request-url-stream.cjs +8 -14
- package/dist/lib/cjs/desktop-trusted-input.cjs +2 -2
- package/dist/lib/cjs/disposable.cjs +150 -0
- package/dist/lib/cjs/disposable.d.cts +39 -0
- package/dist/lib/cjs/editor-extension-registrar.cjs +1 -1
- package/dist/lib/cjs/editor-suggest-registrar.cjs +2 -2
- package/dist/lib/cjs/editor-suggest.cjs +1 -1
- package/dist/lib/cjs/editor.cjs +6 -6
- package/dist/lib/cjs/events.cjs +2 -2
- package/dist/lib/cjs/extensions-registrar.cjs +1 -1
- package/dist/lib/cjs/feature-request.cjs +1 -1
- package/dist/lib/cjs/file-change.cjs +10 -10
- package/dist/lib/cjs/file-explorer.cjs +2 -2
- package/dist/lib/cjs/file-manager.cjs +5 -5
- package/dist/lib/cjs/file-system.cjs +10 -10
- package/dist/lib/cjs/folder-note.cjs +4 -4
- package/dist/lib/cjs/frontmatter-formatting.cjs +7 -6
- package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +1 -1
- package/dist/lib/cjs/frontmatter.cjs +5 -5
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/hotkey.cjs +1 -1
- package/dist/lib/cjs/hover-link-source-registrar.cjs +1 -1
- package/dist/lib/cjs/html-element.cjs +2 -2
- package/dist/lib/cjs/i18n/custom-type-options.cjs +1 -1
- package/dist/lib/cjs/i18n/default-translations.cjs +1 -1
- package/dist/lib/cjs/i18n/i18n.cjs +7 -7
- package/dist/lib/cjs/i18n/index.cjs +4 -4
- package/dist/lib/cjs/i18n/locales/en.cjs +5 -1
- package/dist/lib/cjs/i18n/locales/en.d.cts +4 -0
- package/dist/lib/cjs/i18n/locales/index.cjs +2 -2
- package/dist/lib/cjs/i18n/locales/translations-map.cjs +1 -1
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +4 -0
- package/dist/lib/cjs/index.cjs +145 -127
- package/dist/lib/cjs/index.d.cts +6 -0
- package/dist/lib/cjs/inline-token-renderer.cjs +2 -2
- package/dist/lib/cjs/is-in-obsidian.cjs +1 -1
- package/dist/lib/cjs/library-styles.cjs +3 -3
- package/dist/lib/cjs/link-and-tag-input-suggest.cjs +2 -2
- package/dist/lib/cjs/link.cjs +76 -56
- package/dist/lib/cjs/link.d.cts +20 -14
- package/dist/lib/cjs/logger.cjs +4 -4
- package/dist/lib/cjs/loop.cjs +10 -16
- package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +17 -2
- package/dist/lib/cjs/markdown-code-block-processor-registrar.d.cts +7 -0
- package/dist/lib/cjs/markdown-code-block-processor.cjs +13 -13
- package/dist/lib/cjs/markdown-post-processor-registrar.cjs +2 -2
- package/dist/lib/cjs/markdown-view.cjs +3 -3
- package/dist/lib/cjs/markdown.cjs +12 -12
- package/dist/lib/cjs/metadata-cache.cjs +23 -23
- package/dist/lib/cjs/metadata-cache.d.cts +5 -4
- package/dist/lib/cjs/misplaced-attachment.cjs +297 -0
- package/dist/lib/cjs/misplaced-attachment.d.cts +228 -0
- package/dist/lib/cjs/mobile-app-info.cjs +1 -1
- package/dist/lib/cjs/modals/alert.cjs +4 -4
- package/dist/lib/cjs/modals/code-block-builder.cjs +7 -7
- package/dist/lib/cjs/modals/confirm.cjs +4 -4
- package/dist/lib/cjs/modals/copy-text-manually.cjs +4 -4
- package/dist/lib/cjs/modals/index.cjs +12 -12
- package/dist/lib/cjs/modals/minimizable-modal.cjs +6 -6
- package/dist/lib/cjs/modals/modal-command-builder.cjs +3 -3
- package/dist/lib/cjs/modals/modal.cjs +3 -3
- package/dist/lib/cjs/modals/prompt.cjs +10 -10
- package/dist/lib/cjs/modals/prompt.d.cts +1 -1
- package/dist/lib/cjs/modals/review-bug-report-diagnostics.cjs +5 -5
- package/dist/lib/cjs/modals/select-item.cjs +6 -6
- package/dist/lib/cjs/modals/select-option.cjs +3 -3
- package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +1 -1
- package/dist/lib/cjs/note-priority.cjs +2 -2
- package/dist/lib/cjs/notebook-navigator.cjs +12 -2
- package/dist/lib/cjs/notebook-navigator.d.cts +6 -0
- package/dist/lib/cjs/obsidian-lib-state.cjs +1 -1
- package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +1 -1
- package/dist/lib/cjs/obsidian-settings.cjs +1 -1
- package/dist/lib/cjs/obsidian-word-characters.cjs +1 -1
- package/dist/lib/cjs/parse-link.cjs +14 -14
- package/dist/lib/cjs/path-compatibility.cjs +368 -0
- package/dist/lib/cjs/path-compatibility.d.cts +263 -0
- package/dist/lib/cjs/path-settings.cjs +3 -3
- package/dist/lib/cjs/pdf.cjs +2 -2
- package/dist/lib/cjs/plugin/index.cjs +16 -13
- package/dist/lib/cjs/plugin/index.d.cts +1 -0
- package/dist/lib/cjs/plugin/plugin-api.cjs +8 -8
- package/dist/lib/cjs/plugin/plugin-async-cleanup.cjs +6 -3
- package/dist/lib/cjs/plugin/plugin-async-cleanup.d.cts +5 -0
- package/dist/lib/cjs/plugin/plugin-context.cjs +10 -9
- package/dist/lib/cjs/plugin/plugin-event-source.cjs +1 -1
- package/dist/lib/cjs/plugin/plugin-event-source.d.cts +4 -4
- package/dist/lib/cjs/plugin/plugin-install-state.cjs +4 -4
- package/dist/lib/cjs/plugin/plugin-instance.cjs +14 -12
- package/dist/lib/cjs/plugin/plugin-instance.d.cts +7 -0
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -1
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +6 -4
- package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +15 -15
- package/dist/lib/cjs/plugin/plugin.cjs +118 -34
- package/dist/lib/cjs/plugin/plugin.d.cts +28 -5
- package/dist/lib/cjs/plugin/settings-migration-api.cjs +1 -1
- package/dist/lib/cjs/plugin/third-party-plugin.cjs +231 -0
- package/dist/lib/cjs/plugin/third-party-plugin.d.cts +244 -0
- package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +2 -2
- package/dist/lib/cjs/popovers/field-popover.cjs +4 -4
- package/dist/lib/cjs/popovers/index.cjs +3 -3
- package/dist/lib/cjs/popovers/popover-anchor.cjs +1 -1
- package/dist/lib/cjs/popovers/popover.cjs +5 -5
- package/dist/lib/cjs/queue.cjs +8 -8
- package/dist/lib/cjs/react/app-context.cjs +3 -3
- package/dist/lib/cjs/react/index.cjs +1 -1
- package/dist/lib/cjs/reference-definition.cjs +1 -1
- package/dist/lib/cjs/reference.cjs +3 -3
- package/dist/lib/cjs/release-asset.cjs +5 -5
- package/dist/lib/cjs/rendered-markdown.cjs +4 -4
- package/dist/lib/cjs/request-url.cjs +4 -4
- package/dist/lib/cjs/resource-lock.cjs +46 -42
- package/dist/lib/cjs/resource-lock.d.cts +8 -7
- package/dist/lib/cjs/resource-url.cjs +3 -3
- package/dist/lib/cjs/ribbon-icon-registrar.cjs +1 -1
- package/dist/lib/cjs/setting-components/checkbox-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +7 -7
- package/dist/lib/cjs/setting-components/date-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/date-time-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/email-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/file-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/folder-list-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/hotkey-component.cjs +5 -5
- package/dist/lib/cjs/setting-components/index.cjs +30 -30
- package/dist/lib/cjs/setting-components/list-component.cjs +5 -5
- package/dist/lib/cjs/setting-components/month-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/multiple-email-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/multiple-file-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/multiple-text-component.cjs +9 -6
- package/dist/lib/cjs/setting-components/multiple-text-component.d.cts +4 -1
- package/dist/lib/cjs/setting-components/number-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/password-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +3 -3
- package/dist/lib/cjs/setting-components/tag-list-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/telephone-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/text-based-component.cjs +1 -1
- package/dist/lib/cjs/setting-components/time-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +1 -1
- package/dist/lib/cjs/setting-components/typed-text-component.cjs +3 -3
- package/dist/lib/cjs/setting-components/url-component.cjs +2 -2
- package/dist/lib/cjs/setting-components/validator-component.cjs +4 -4
- package/dist/lib/cjs/setting-components/week-component.cjs +4 -4
- package/dist/lib/cjs/setting-ex.cjs +26 -26
- package/dist/lib/cjs/setting-group-ex.cjs +2 -2
- package/dist/lib/cjs/settings-recovery.cjs +217 -0
- package/dist/lib/cjs/settings-recovery.d.cts +178 -0
- package/dist/lib/cjs/settings-tabs.cjs +5 -5
- package/dist/lib/cjs/status-bar-item-registrar.cjs +1 -1
- package/dist/lib/cjs/templater.cjs +14 -4
- package/dist/lib/cjs/templater.d.cts +6 -0
- package/dist/lib/cjs/transformers/duration-transformer.cjs +2 -2
- package/dist/lib/cjs/transformers/index.cjs +1 -1
- package/dist/lib/cjs/trusted-input.cjs +1 -1
- package/dist/lib/cjs/validation.cjs +4 -4
- package/dist/lib/cjs/vault-delete.cjs +6 -6
- package/dist/lib/cjs/vault-transaction.cjs +5 -5
- package/dist/lib/cjs/vault.cjs +12 -12
- package/dist/lib/cjs/view-registrar.cjs +1 -1
- package/dist/lib/cjs/virtual-file.cjs +16 -14
- package/dist/lib/cjs/virtual-file.d.cts +2 -1
- package/dist/lib/cjs/wasm.cjs +119 -0
- package/dist/lib/cjs/wasm.d.cts +54 -0
- package/dist/lib/cjs/worker-protocol.cjs +209 -0
- package/dist/lib/cjs/worker-protocol.d.cts +282 -0
- package/dist/lib/cjs/workspace.cjs +1 -1
- package/dist/lib/esm/__merged.d.mts +17 -8
- package/dist/lib/esm/__merged.mjs +133 -3
- package/dist/lib/esm/app.mjs +2 -2
- package/dist/lib/esm/attachment-path.d.mts +3 -3
- package/dist/lib/esm/attachment-path.mjs +2 -2
- package/dist/lib/esm/backlink-index.mjs +2 -2
- package/dist/lib/esm/canvas.d.mts +13 -0
- package/dist/lib/esm/canvas.mjs +6 -5
- package/dist/lib/esm/command-handlers/abstract-file-command-handler.d.mts +13 -13
- package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +14 -14
- package/dist/lib/esm/command-handlers/editor-command-handler.d.mts +7 -7
- package/dist/lib/esm/command-handlers/editor-command-handler.mjs +8 -8
- package/dist/lib/esm/components/component-ex.d.mts +11 -0
- package/dist/lib/esm/components/component-ex.mjs +19 -6
- package/dist/lib/esm/components/disposable-component.mjs +1 -1
- package/dist/lib/esm/components/index.d.mts +2 -0
- package/dist/lib/esm/components/index.mjs +5 -1
- package/dist/lib/esm/components/plugin-gate-component.d.mts +36 -13
- package/dist/lib/esm/components/plugin-gate-component.mjs +57 -14
- package/dist/lib/esm/components/plugin-notice-component.d.mts +4 -3
- package/dist/lib/esm/components/plugin-notice-component.mjs +30 -21
- package/dist/lib/esm/components/plugin-settings-component.d.mts +35 -5
- package/dist/lib/esm/components/plugin-settings-component.mjs +99 -3
- package/dist/lib/esm/components/rename-delete-handler-component.mjs +2 -2
- package/dist/lib/esm/components/worker-component.d.mts +156 -0
- package/dist/lib/esm/components/worker-component.mjs +279 -0
- package/dist/lib/esm/components/worker-pool-component.d.mts +102 -0
- package/dist/lib/esm/components/worker-pool-component.mjs +95 -0
- package/dist/lib/esm/components/workspace-layout-state-component.mjs +1 -1
- package/dist/lib/esm/data-handler.d.mts +92 -1
- package/dist/lib/esm/data-handler.mjs +112 -3
- package/dist/lib/esm/data-stores/data-store-locations.d.mts +15 -0
- package/dist/lib/esm/data-stores/data-store-locations.mjs +80 -22
- package/dist/lib/esm/data-stores/data-store-replica.mjs +33 -5
- package/dist/lib/esm/data-stores/data-store-seeds.d.mts +2 -2
- package/dist/lib/esm/data-stores/data-store-seeds.mjs +4 -4
- package/dist/lib/esm/data-stores/data-store-transport.d.mts +30 -1
- package/dist/lib/esm/data-stores/data-store-transport.mjs +78 -5
- package/dist/lib/esm/data-stores/local-data-store.d.mts +58 -1
- package/dist/lib/esm/data-stores/local-data-store.mjs +71 -9
- package/dist/lib/esm/data-stores/shared-data-store.d.mts +18 -1
- package/dist/lib/esm/data-stores/shared-data-store.mjs +72 -15
- package/dist/lib/esm/dataview.d.mts +14 -0
- package/dist/lib/esm/dataview.mjs +19 -1
- package/dist/lib/esm/demo-vault-helper.d.mts +6 -2
- package/dist/lib/esm/demo-vault-helper.mjs +29 -1
- package/dist/lib/esm/desktop-demo-vault-opener.mjs +1 -1
- package/dist/lib/esm/desktop-request-url-stream.mjs +4 -10
- package/dist/lib/esm/disposable.d.mts +39 -0
- package/dist/lib/esm/disposable.mjs +64 -0
- package/dist/lib/esm/file-system.mjs +2 -2
- package/dist/lib/esm/frontmatter-formatting.mjs +2 -1
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/i18n/locales/en.d.mts +4 -0
- package/dist/lib/esm/i18n/locales/en.mjs +5 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +4 -0
- package/dist/lib/esm/index.d.mts +6 -0
- package/dist/lib/esm/index.mjs +13 -1
- package/dist/lib/esm/link.d.mts +20 -14
- package/dist/lib/esm/link.mjs +57 -38
- package/dist/lib/esm/loop.mjs +2 -8
- package/dist/lib/esm/markdown-code-block-processor-registrar.d.mts +7 -0
- package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +16 -1
- package/dist/lib/esm/metadata-cache.d.mts +5 -4
- package/dist/lib/esm/metadata-cache.mjs +6 -6
- package/dist/lib/esm/misplaced-attachment.d.mts +228 -0
- package/dist/lib/esm/misplaced-attachment.mjs +212 -0
- package/dist/lib/esm/modals/prompt.d.mts +1 -1
- package/dist/lib/esm/modals/prompt.mjs +1 -1
- package/dist/lib/esm/notebook-navigator.d.mts +6 -0
- package/dist/lib/esm/notebook-navigator.mjs +11 -2
- package/dist/lib/esm/parse-link.mjs +4 -4
- package/dist/lib/esm/path-compatibility.d.mts +263 -0
- package/dist/lib/esm/path-compatibility.mjs +277 -0
- package/dist/lib/esm/plugin/index.d.mts +1 -0
- package/dist/lib/esm/plugin/index.mjs +4 -2
- package/dist/lib/esm/plugin/plugin-async-cleanup.d.mts +5 -0
- package/dist/lib/esm/plugin/plugin-async-cleanup.mjs +3 -1
- package/dist/lib/esm/plugin/plugin-context.mjs +2 -1
- package/dist/lib/esm/plugin/plugin-event-source.d.mts +4 -4
- package/dist/lib/esm/plugin/plugin-event-source.mjs +1 -1
- package/dist/lib/esm/plugin/plugin-instance.d.mts +7 -0
- package/dist/lib/esm/plugin/plugin-instance.mjs +2 -1
- package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +6 -4
- package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -1
- package/dist/lib/esm/plugin/plugin.d.mts +28 -5
- package/dist/lib/esm/plugin/plugin.mjs +103 -9
- package/dist/lib/esm/plugin/third-party-plugin.d.mts +244 -0
- package/dist/lib/esm/plugin/third-party-plugin.mjs +147 -0
- package/dist/lib/esm/release-asset.mjs +1 -1
- package/dist/lib/esm/resource-lock.d.mts +8 -7
- package/dist/lib/esm/resource-lock.mjs +31 -26
- package/dist/lib/esm/setting-components/multiple-text-component.d.mts +4 -1
- package/dist/lib/esm/setting-components/multiple-text-component.mjs +6 -3
- package/dist/lib/esm/settings-recovery.d.mts +178 -0
- package/dist/lib/esm/settings-recovery.mjs +125 -0
- package/dist/lib/esm/settings-tabs.mjs +2 -2
- package/dist/lib/esm/templater.d.mts +6 -0
- package/dist/lib/esm/templater.mjs +11 -2
- package/dist/lib/esm/vault.mjs +1 -1
- package/dist/lib/esm/virtual-file.d.mts +2 -1
- package/dist/lib/esm/virtual-file.mjs +7 -5
- package/dist/lib/esm/wasm.d.mts +54 -0
- package/dist/lib/esm/wasm.mjs +30 -0
- package/dist/lib/esm/worker-protocol.d.mts +282 -0
- package/dist/lib/esm/worker-protocol.mjs +113 -0
- package/package.json +9 -8
- package/plugin/third-party-plugin/package.json +6 -0
|
@@ -5,6 +5,33 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Record-based device-local persistence, isolated by vault, plugin and store.
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Why a {@link LocalDataStore} connection stopped accepting operations.
|
|
10
|
+
*/
|
|
11
|
+
export declare enum LocalDataStoreCloseReason {
|
|
12
|
+
/**
|
|
13
|
+
* The browser closed the connection on its own, for example because the database was deleted or the storage was
|
|
14
|
+
* cleared.
|
|
15
|
+
*/
|
|
16
|
+
ClosedByBrowser = "closedByBrowser",
|
|
17
|
+
/**
|
|
18
|
+
* The owner called {@link LocalDataStore.close}, usually because it unloaded.
|
|
19
|
+
*/
|
|
20
|
+
ClosedByOwner = "closedByOwner",
|
|
21
|
+
/**
|
|
22
|
+
* Another connection asked for a newer schema version, so this one closed to let it upgrade.
|
|
23
|
+
*/
|
|
24
|
+
VersionChange = "versionChange"
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Options of a {@link LocalDataStoreClosedError}.
|
|
28
|
+
*/
|
|
29
|
+
export interface LocalDataStoreClosedErrorConstructorOptions {
|
|
30
|
+
/**
|
|
31
|
+
* The IndexedDB error the closed-store error replaces.
|
|
32
|
+
*/
|
|
33
|
+
readonly cause?: unknown;
|
|
34
|
+
}
|
|
8
35
|
/**
|
|
9
36
|
* Atomic mutations of a local record store.
|
|
10
37
|
*/
|
|
@@ -54,6 +81,14 @@ export interface LocalDataStoreOpenParams {
|
|
|
54
81
|
*/
|
|
55
82
|
export declare class LocalDataStore {
|
|
56
83
|
private readonly database;
|
|
84
|
+
/**
|
|
85
|
+
* Whether the connection is closed or closing, so no further operation can run.
|
|
86
|
+
*
|
|
87
|
+
* @returns `true` once {@link LocalDataStore.close} was called, or the browser or a schema upgrade closed the
|
|
88
|
+
* connection.
|
|
89
|
+
*/
|
|
90
|
+
get isClosed(): boolean;
|
|
91
|
+
private closeReason;
|
|
57
92
|
private constructor();
|
|
58
93
|
/**
|
|
59
94
|
* Opens an isolated database. Writes resolve only once their transaction commits.
|
|
@@ -69,7 +104,8 @@ export declare class LocalDataStore {
|
|
|
69
104
|
*/
|
|
70
105
|
clear(): Promise<void>;
|
|
71
106
|
/**
|
|
72
|
-
* Closes this connection without deleting its records.
|
|
107
|
+
* Closes this connection without deleting its records. Every later operation rejects with
|
|
108
|
+
* {@link LocalDataStoreClosedError}. Closing twice is harmless.
|
|
73
109
|
*/
|
|
74
110
|
close(): void;
|
|
75
111
|
/**
|
|
@@ -123,5 +159,26 @@ export declare class LocalDataStore {
|
|
|
123
159
|
* @returns A promise that resolves after commit.
|
|
124
160
|
*/
|
|
125
161
|
set(key: string, value: unknown): Promise<void>;
|
|
162
|
+
private markClosed;
|
|
126
163
|
private run;
|
|
164
|
+
private toClosedError;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Thrown by every operation of a {@link LocalDataStore} whose connection is closed or closing.
|
|
168
|
+
*
|
|
169
|
+
* It replaces IndexedDB's raw `InvalidStateError` ("The database connection is closing"), which names neither the
|
|
170
|
+
* store nor the cause. The usual cause is work that outlived its owner: a debounced or scheduled save that runs after
|
|
171
|
+
* the plugin unloaded and closed its store.
|
|
172
|
+
*/
|
|
173
|
+
export declare class LocalDataStoreClosedError extends Error {
|
|
174
|
+
readonly databaseName: string;
|
|
175
|
+
readonly reason: LocalDataStoreCloseReason;
|
|
176
|
+
/**
|
|
177
|
+
* Creates a {@link LocalDataStoreClosedError}.
|
|
178
|
+
*
|
|
179
|
+
* @param databaseName - The IndexedDB database name of the store.
|
|
180
|
+
* @param reason - Why the connection closed.
|
|
181
|
+
* @param options - The IndexedDB error this one replaces, as its `cause`.
|
|
182
|
+
*/
|
|
183
|
+
constructor(databaseName: string, reason: LocalDataStoreCloseReason, options?: LocalDataStoreClosedErrorConstructorOptions);
|
|
127
184
|
}
|
|
@@ -3,11 +3,34 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
var LocalDataStoreCloseReason = /* @__PURE__ */ ((LocalDataStoreCloseReason2) => {
|
|
7
|
+
LocalDataStoreCloseReason2["ClosedByBrowser"] = "closedByBrowser";
|
|
8
|
+
LocalDataStoreCloseReason2["ClosedByOwner"] = "closedByOwner";
|
|
9
|
+
LocalDataStoreCloseReason2["VersionChange"] = "versionChange";
|
|
10
|
+
return LocalDataStoreCloseReason2;
|
|
11
|
+
})(LocalDataStoreCloseReason || {});
|
|
6
12
|
class LocalDataStore {
|
|
7
13
|
constructor(database) {
|
|
8
14
|
this.database = database;
|
|
15
|
+
database.onversionchange = () => {
|
|
16
|
+
this.markClosed("versionChange" /* VersionChange */);
|
|
17
|
+
database.close();
|
|
18
|
+
};
|
|
19
|
+
database.addEventListener("close", () => {
|
|
20
|
+
this.markClosed("closedByBrowser" /* ClosedByBrowser */);
|
|
21
|
+
});
|
|
9
22
|
}
|
|
10
23
|
database;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the connection is closed or closing, so no further operation can run.
|
|
26
|
+
*
|
|
27
|
+
* @returns `true` once {@link LocalDataStore.close} was called, or the browser or a schema upgrade closed the
|
|
28
|
+
* connection.
|
|
29
|
+
*/
|
|
30
|
+
get isClosed() {
|
|
31
|
+
return this.closeReason !== null;
|
|
32
|
+
}
|
|
33
|
+
closeReason = null;
|
|
11
34
|
/**
|
|
12
35
|
* Opens an isolated database. Writes resolve only once their transaction commits.
|
|
13
36
|
*
|
|
@@ -25,11 +48,7 @@ class LocalDataStore {
|
|
|
25
48
|
reject(new Error("Could not open local data store", { cause: request.error }));
|
|
26
49
|
});
|
|
27
50
|
request.onsuccess = () => {
|
|
28
|
-
|
|
29
|
-
database.onversionchange = () => {
|
|
30
|
-
database.close();
|
|
31
|
-
};
|
|
32
|
-
resolve(new LocalDataStore(database));
|
|
51
|
+
resolve(new LocalDataStore(request.result));
|
|
33
52
|
};
|
|
34
53
|
});
|
|
35
54
|
}
|
|
@@ -42,9 +61,11 @@ class LocalDataStore {
|
|
|
42
61
|
await this.run("readwrite", (store) => store.clear());
|
|
43
62
|
}
|
|
44
63
|
/**
|
|
45
|
-
* Closes this connection without deleting its records.
|
|
64
|
+
* Closes this connection without deleting its records. Every later operation rejects with
|
|
65
|
+
* {@link LocalDataStoreClosedError}. Closing twice is harmless.
|
|
46
66
|
*/
|
|
47
67
|
close() {
|
|
68
|
+
this.markClosed("closedByOwner" /* ClosedByOwner */);
|
|
48
69
|
this.database.close();
|
|
49
70
|
}
|
|
50
71
|
/**
|
|
@@ -146,9 +167,22 @@ class LocalDataStore {
|
|
|
146
167
|
async set(key, value) {
|
|
147
168
|
await this.run("readwrite", (store) => store.put(value, key));
|
|
148
169
|
}
|
|
170
|
+
markClosed(reason) {
|
|
171
|
+
this.closeReason ??= reason;
|
|
172
|
+
}
|
|
173
|
+
// eslint-disable-next-line typescript-dev-toolkit/no-undefined-return-type -- Mirrors IndexedDB: a missing record reads as `undefined`, which a stored `null` must stay distinct from.
|
|
149
174
|
async run(mode, action) {
|
|
150
175
|
return await new Promise((resolve, reject) => {
|
|
151
|
-
|
|
176
|
+
let transaction;
|
|
177
|
+
try {
|
|
178
|
+
if (this.closeReason !== null) {
|
|
179
|
+
throw new LocalDataStoreClosedError(this.database.name, this.closeReason);
|
|
180
|
+
}
|
|
181
|
+
transaction = this.database.transaction("records", mode);
|
|
182
|
+
} catch (error) {
|
|
183
|
+
reject(this.toClosedError(error));
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
152
186
|
let request;
|
|
153
187
|
try {
|
|
154
188
|
request = action(transaction.objectStore("records"));
|
|
@@ -165,8 +199,36 @@ class LocalDataStore {
|
|
|
165
199
|
});
|
|
166
200
|
});
|
|
167
201
|
}
|
|
202
|
+
toClosedError(error) {
|
|
203
|
+
if (error instanceof LocalDataStoreClosedError) {
|
|
204
|
+
return error;
|
|
205
|
+
}
|
|
206
|
+
if (error instanceof Error && error.name === "InvalidStateError") {
|
|
207
|
+
return new LocalDataStoreClosedError(this.database.name, this.closeReason ?? "closedByBrowser" /* ClosedByBrowser */, { cause: error });
|
|
208
|
+
}
|
|
209
|
+
return error instanceof Error ? error : new Error("Local data-store transaction failed", { cause: error });
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
class LocalDataStoreClosedError extends Error {
|
|
213
|
+
/**
|
|
214
|
+
* Creates a {@link LocalDataStoreClosedError}.
|
|
215
|
+
*
|
|
216
|
+
* @param databaseName - The IndexedDB database name of the store.
|
|
217
|
+
* @param reason - Why the connection closed.
|
|
218
|
+
* @param options - The IndexedDB error this one replaces, as its `cause`.
|
|
219
|
+
*/
|
|
220
|
+
constructor(databaseName, reason, options) {
|
|
221
|
+
super(`The local data store "${databaseName}" is closed (${reason}), so the operation was not run.`, options);
|
|
222
|
+
this.databaseName = databaseName;
|
|
223
|
+
this.reason = reason;
|
|
224
|
+
this.name = "LocalDataStoreClosedError";
|
|
225
|
+
}
|
|
226
|
+
databaseName;
|
|
227
|
+
reason;
|
|
168
228
|
}
|
|
169
229
|
export {
|
|
170
|
-
LocalDataStore
|
|
230
|
+
LocalDataStore,
|
|
231
|
+
LocalDataStoreCloseReason,
|
|
232
|
+
LocalDataStoreClosedError
|
|
171
233
|
};
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RhdGEtc3RvcmVzL2xvY2FsLWRhdGEtc3RvcmUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIGVzbGludC1kaXNhYmxlIG4vbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvbm9kZS1idWlsdGlucyAtLSBUaGVzZSBhcmUgT2JzaWRpYW4gcmVuZGVyZXIgV2ViIEFQSXMsIG5vdCBOb2RlIGJ1aWx0aW5zLiAqL1xuLyoqXG4gKiBAZmlsZVxuICpcbiAqIFJlY29yZC1iYXNlZCBkZXZpY2UtbG9jYWwgcGVyc2lzdGVuY2UsIGlzb2xhdGVkIGJ5IHZhdWx0LCBwbHVnaW4gYW5kIHN0b3JlLlxuICovXG5cbi8qKlxuICogQXRvbWljIG11dGF0aW9ucyBvZiBhIGxvY2FsIHJlY29yZCBzdG9yZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbERhdGFTdG9yZUNvbW1pdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBLZXkvdmFsdWUgcGFpcnMgdG8gd3JpdGUuXG4gICAqL1xuICByZWFkb25seSBlbnRyaWVzOiByZWFkb25seSAocmVhZG9ubHkgW3N0cmluZywgdW5rbm93bl0pW107XG4gIC8qKlxuICAgKiBLZXlzIHJlbW92ZWQgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gYXMgdGhlIHdyaXRlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYFtdYFxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZlZEtleXM/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIERlbGV0ZXMgZXZlcnkgcmVjb3JkIG9mIHRoaXMgc3RvcmUgZmlyc3QsIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uIGFzIHRoZSB3cml0ZXMuXG4gICAqXG4gICAqIEVpdGhlciB0aGUgc3RvcmUgaXMgcmVwbGFjZWQgYnkgYGVudHJpZXNgIGFzIGEgd2hvbGUsIG9yLCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBmYWlscywgZXZlcnkgcHJldmlvdXMgcmVjb3JkIHN1cnZpdmVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRDbGVhcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Igb3BlbmluZyBhIGxvY2FsIHN0b3JlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsRGF0YVN0b3JlT3BlblBhcmFtcyB7XG4gIC8qKlxuICAgKiBJbmRleGVkREIgaW1wbGVtZW50YXRpb24sIGluamVjdGFibGUgZm9yIHRlc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFjdG9yeT86IElEQkZhY3Rvcnk7XG4gIC8qKlxuICAgKiBQbHVnaW4gbWFuaWZlc3QgaWQuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuICAvKipcbiAgICogU3RvcmUgbmFtZSBhbmQgc2NoZW1hIHZlcnNpb24gY2hvc2VuIGJ5IHRoZSBjb25zdW1lci5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFN0YWJsZSwgZGV2aWNlLWxvY2FsIHZhdWx0IGlkZW50aXR5OyBuZXZlciB0aGUgdmF1bHQgZGlzcGxheSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgdmF1bHRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbG9jYWwgc3RvcmUgaG9sZHMgc3RydWN0dXJlZC1jbG9uZWFibGUgdmFsdWVzOyBpdCBuZXZlciB3cml0ZXMgdG8gdGhlIHZhdWx0LlxuICovXG5leHBvcnQgY2xhc3MgTG9jYWxEYXRhU3RvcmUge1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGF0YWJhc2U6IElEQkRhdGFiYXNlKSB7fVxuXG4gIC8qKlxuICAgKiBPcGVucyBhbiBpc29sYXRlZCBkYXRhYmFzZS4gV3JpdGVzIHJlc29sdmUgb25seSBvbmNlIHRoZWlyIHRyYW5zYWN0aW9uIGNvbW1pdHMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBTdG9yZSBpZGVudGl0eSBhbmQgb3B0aW9uYWwgSW5kZXhlZERCIGltcGxlbWVudGF0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgY29ubmVjdGVkIHN0b3JlOyBjbG9zZSBpdCB3aGVuIGl0cyBvd25lciB1bmxvYWRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBvcGVuKHBhcmFtczogTG9jYWxEYXRhU3RvcmVPcGVuUGFyYW1zKTogUHJvbWlzZTxMb2NhbERhdGFTdG9yZT4ge1xuICAgIGNvbnN0IG5hbWUgPSBgb2JzaWRpYW4tbGliOiR7SlNPTi5zdHJpbmdpZnkoW3BhcmFtcy52YXVsdElkLCBwYXJhbXMucGx1Z2luSWQsIHBhcmFtcy5zdG9yZUlkXSl9YDtcbiAgICBjb25zdCByZXF1ZXN0ID0gKHBhcmFtcy5mYWN0b3J5ID8/IGluZGV4ZWREQikub3BlbihuYW1lLCAxKTtcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHJlcXVlc3QucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCdyZWNvcmRzJyk7XG4gICAgICB9O1xuICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsICgpOiB2b2lkID0+IHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQ291bGQgbm90IG9wZW4gbG9jYWwgZGF0YSBzdG9yZScsIHsgY2F1c2U6IHJlcXVlc3QuZXJyb3IgfSkpO1xuICAgICAgfSk7XG4gICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgZGF0YWJhc2UgPSByZXF1ZXN0LnJlc3VsdDtcbiAgICAgICAgZGF0YWJhc2Uub252ZXJzaW9uY2hhbmdlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIGRhdGFiYXNlLmNsb3NlKCk7XG4gICAgICAgIH07XG4gICAgICAgIHJlc29sdmUobmV3IExvY2FsRGF0YVN0b3JlKGRhdGFiYXNlKSk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgZXZlcnkgcmVjb3JkIGluIHRoaXMgc3RvcmUgb25seS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgY29tbWl0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsZWFyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucnVuKCdyZWFkd3JpdGUnLCAoc3RvcmUpID0+IHN0b3JlLmNsZWFyKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGlzIGNvbm5lY3Rpb24gd2l0aG91dCBkZWxldGluZyBpdHMgcmVjb3Jkcy5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFiYXNlLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29tbWl0cyBzZXZlcmFsIHJlY29yZCBjaGFuZ2VzIGF0b21pY2FsbHkgd2l0aG91dCBzZXJpYWxpemluZyB0aGUgcmVzdCBvZiB0aGUgZGF0YWJhc2UuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBXcml0ZXMgYW5kIGRlbGV0aW9ucyBpbiBvbmUgdHJhbnNhY3Rpb24sIG9wdGlvbmFsbHkgYWZ0ZXIgY2xlYXJpbmcgdGhlIHN0b3JlLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBvbmx5IGFmdGVyIGFsbCBjaGFuZ2VzIGNvbW1pdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjb21taXQocGFyYW1zOiBMb2NhbERhdGFTdG9yZUNvbW1pdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucnVuKCdyZWFkd3JpdGUnLCAoc3RvcmUpID0+IHtcbiAgICAgIGlmIChwYXJhbXMuc2hvdWxkQ2xlYXIpIHtcbiAgICAgICAgc3RvcmUuY2xlYXIoKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIHBhcmFtcy5yZW1vdmVkS2V5cyA/PyBbXSkge1xuICAgICAgICBzdG9yZS5kZWxldGUoa2V5KTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHBhcmFtcy5lbnRyaWVzKSB7XG4gICAgICAgIHN0b3JlLnB1dCh2YWx1ZSwga2V5KTtcbiAgICAgIH1cbiAgICAgIC8vIE5vIHJlcXVlc3QgdG8gcmVzb2x2ZSB3aXRoOiBhIGNsb3NpbmcgYHN0b3JlLmNvdW50KClgIHdvdWxkIHdhbGsgZXZlcnkgcmVjb3JkIG9mIHRoZSBzdG9yZSBvbiBlYWNoIGNvbW1pdC5cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgcmVjb3JkLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gUmVjb3JkIGtleS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgY29tbWl0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlbGV0ZShrZXk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucnVuKCdyZWFkd3JpdGUnLCAoc3RvcmUpID0+IHN0b3JlLmRlbGV0ZShrZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhbGwgcmVjb3JkcyBpbiBrZXkgb3JkZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIERldGFjaGVkIGtleS92YWx1ZSBwYWlycy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBlbnRyaWVzKCk6IFByb21pc2U8W3N0cmluZywgdW5rbm93bl1bXT4ge1xuICAgIGNvbnN0IHJlY29yZHM6IFtzdHJpbmcsIHVua25vd25dW10gPSBbXTtcbiAgICAvLyBUd28gYnVsayByZWFkcyBpbiBvbmUgdHJhbnNhY3Rpb24gc2VlIHRoZSBzYW1lIHNuYXBzaG90IGluIHRoZSBzYW1lIGtleSBvcmRlciwgc28gdGhleSBwYWlyIHVwIGJ5IGluZGV4LlxuICAgIC8vIEEgY3Vyc29yIGRpc3BhdGNoZXMgb25lIGV2ZW50IHBlciByZWNvcmQgaW5zdGVhZDsgYXQgOTAsMDAwIHJlY29yZHMgaW4gT2JzaWRpYW4gaXQgdG9vayAxLjUgdG8gMiB0aW1lcyBhcyBsb25nLlxuICAgIGF3YWl0IHRoaXMucnVuKCdyZWFkb25seScsIChzdG9yZSkgPT4ge1xuICAgICAgY29uc3Qga2V5c1JlcXVlc3QgPSBzdG9yZS5nZXRBbGxLZXlzKCk7XG4gICAgICBjb25zdCB2YWx1ZXNSZXF1ZXN0ID0gc3RvcmUuZ2V0QWxsKCk7XG4gICAgICB2YWx1ZXNSZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3Qga2V5cyA9IGtleXNSZXF1ZXN0LnJlc3VsdDtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdmFsdWVzUmVxdWVzdC5yZXN1bHQ7XG4gICAgICAgIGZvciAoY29uc3QgW2luZGV4LCBrZXldIG9mIGtleXMuZW50cmllcygpKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdMb2NhbCBkYXRhLXN0b3JlIGtleSBpcyBub3QgYSBzdHJpbmcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVjb3Jkcy5wdXNoKFtrZXksIHZhbHVlc1tpbmRleF1dKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiB2YWx1ZXNSZXF1ZXN0O1xuICAgIH0pO1xuICAgIHJldHVybiByZWNvcmRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZXMgYSBzaGFyZWQtc3RvcmUgb3BlcmF0aW9uIGFjcm9zcyBjb25uZWN0aW9ucywgd2luZG93cyBhbmQgYnVuZGxlZCBsaWJyYXJ5IGNvcGllcy5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUIC0gQ2FsbGJhY2sgcmVzdWx0LlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBXb3JrIHBlcmZvcm1lZCB3aGlsZSBob2xkaW5nIHRoaXMgZGF0YWJhc2UncyBXZWIgTG9jay5cbiAgICogQHJldHVybnMgVGhlIGNhbGxiYWNrIHJlc3VsdCBhZnRlciByZWxlYXNpbmcgdGhlIGxvY2suXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZXhjbHVzaXZlPFQ+KGNhbGxiYWNrOiAoKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIGF3YWl0IHdpbmRvdy5uYXZpZ2F0b3IubG9ja3MucmVxdWVzdCh0aGlzLmRhdGFiYXNlLm5hbWUsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhIHJlY29yZC5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFJlY29yZCBrZXkuXG4gICAqIEByZXR1cm5zIEl0cyB2YWx1ZSwgb3IgYHVuZGVmaW5lZGAgd2hlbiBhYnNlbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0KGtleTogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnVuPHVua25vd24+KCdyZWFkb25seScsIChzdG9yZSkgPT4gc3RvcmUuZ2V0KGtleSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGEgcmVjb3JkIG9uY2UsIGF0b21pY2FsbHkgYWNyb3NzIGNvbm5lY3Rpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gUmVjb3JkIGtleS5cbiAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdXNlZCBvbmx5IHdoZW4gdGhlIGtleSBpcyBhYnNlbnQuXG4gICAqIEByZXR1cm5zIFRoZSBleGlzdGluZyBvciBuZXdseSBjb21taXR0ZWQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0T3JDcmVhdGUoa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucnVuPHVua25vd24+KCdyZWFkd3JpdGUnLCAoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBzdG9yZS5nZXQoa2V5KTtcbiAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAocmVxdWVzdC5yZXN1bHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHN0b3JlLnB1dCh2YWx1ZSwga2V5KTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH0pLnRoZW4oKGV4aXN0aW5nKSA9PiBleGlzdGluZyA9PT0gdW5kZWZpbmVkID8gdmFsdWUgOiBleGlzdGluZyk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIGEgc3RydWN0dXJlZC1jbG9uZWFibGUgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBSZWNvcmQga2V5LlxuICAgKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0byBwZXJzaXN0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBhZnRlciBjb21taXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucnVuKCdyZWFkd3JpdGUnLCAoc3RvcmUpID0+IHN0b3JlLnB1dCh2YWx1ZSwga2V5KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJ1bjxUPihtb2RlOiBJREJUcmFuc2FjdGlvbk1vZGUsIGFjdGlvbjogKHN0b3JlOiBJREJPYmplY3RTdG9yZSkgPT4gSURCUmVxdWVzdDxUPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24oJ3JlY29yZHMnLCBtb2RlKTtcbiAgICAgIGxldCByZXF1ZXN0OiBJREJSZXF1ZXN0PFQ+IHwgdW5kZWZpbmVkO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmVxdWVzdCA9IGFjdGlvbih0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgncmVjb3JkcycpKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRyYW5zYWN0aW9uLmFib3J0KCk7XG4gICAgICAgIHJlamVjdChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoJ0xvY2FsIGRhdGEtc3RvcmUgdHJhbnNhY3Rpb24gZmFpbGVkJywgeyBjYXVzZTogZXJyb3IgfSkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAvLyBBbiBhY3Rpb24gdGhhdCBpc3N1ZWQgbm8gcmVxdWVzdCBvZiBpdHMgb3duIHJlc29sdmVzIHdpdGggYHVuZGVmaW5lZGAgb25jZSBpdHMgd3JpdGVzIGNvbW1pdC5cbiAgICAgICAgcmVzb2x2ZShyZXF1ZXN0Py5yZXN1bHQpO1xuICAgICAgfTtcbiAgICAgIHRyYW5zYWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgKCk6IHZvaWQgPT4ge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKCdMb2NhbCBkYXRhLXN0b3JlIHRyYW5zYWN0aW9uIGFib3J0ZWQnLCB7IGNhdXNlOiB0cmFuc2FjdGlvbi5lcnJvciB9KSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG4vKiBlc2xpbnQtZW5hYmxlIG4vbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvbm9kZS1idWlsdGlucyAtLSBUaGVzZSBhcmUgT2JzaWRpYW4gcmVuZGVyZXIgV2ViIEFQSXMsIG5vdCBOb2RlIGJ1aWx0aW5zLiAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUF3RE8sTUFBTSxlQUFlO0FBQUEsRUFDbEIsWUFBNkIsVUFBdUI7QUFBdkI7QUFBQSxFQUF3QjtBQUFBLEVBQXhCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRckMsYUFBb0IsS0FB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
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2RhdGEtc3RvcmVzL2xvY2FsLWRhdGEtc3RvcmUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZWNvcmQtYmFzZWQgZGV2aWNlLWxvY2FsIHBlcnNpc3RlbmNlLCBpc29sYXRlZCBieSB2YXVsdCwgcGx1Z2luIGFuZCBzdG9yZS5cbiAqL1xuXG4vKipcbiAqIFdoeSBhIHtAbGluayBMb2NhbERhdGFTdG9yZX0gY29ubmVjdGlvbiBzdG9wcGVkIGFjY2VwdGluZyBvcGVyYXRpb25zLlxuICovXG5leHBvcnQgZW51bSBMb2NhbERhdGFTdG9yZUNsb3NlUmVhc29uIHtcbiAgLyoqXG4gICAqIFRoZSBicm93c2VyIGNsb3NlZCB0aGUgY29ubmVjdGlvbiBvbiBpdHMgb3duLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHRoZSBkYXRhYmFzZSB3YXMgZGVsZXRlZCBvciB0aGUgc3RvcmFnZSB3YXNcbiAgICogY2xlYXJlZC5cbiAgICovXG4gIENsb3NlZEJ5QnJvd3NlciA9ICdjbG9zZWRCeUJyb3dzZXInLFxuICAvKipcbiAgICogVGhlIG93bmVyIGNhbGxlZCB7QGxpbmsgTG9jYWxEYXRhU3RvcmUuY2xvc2V9LCB1c3VhbGx5IGJlY2F1c2UgaXQgdW5sb2FkZWQuXG4gICAqL1xuICBDbG9zZWRCeU93bmVyID0gJ2Nsb3NlZEJ5T3duZXInLFxuICAvKipcbiAgICogQW5vdGhlciBjb25uZWN0aW9uIGFza2VkIGZvciBhIG5ld2VyIHNjaGVtYSB2ZXJzaW9uLCBzbyB0aGlzIG9uZSBjbG9zZWQgdG8gbGV0IGl0IHVwZ3JhZGUuXG4gICAqL1xuICBWZXJzaW9uQ2hhbmdlID0gJ3ZlcnNpb25DaGFuZ2UnXG59XG5cbi8qKlxuICogT3B0aW9ucyBvZiBhIHtAbGluayBMb2NhbERhdGFTdG9yZUNsb3NlZEVycm9yfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbERhdGFTdG9yZUNsb3NlZEVycm9yQ29uc3RydWN0b3JPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJbmRleGVkREIgZXJyb3IgdGhlIGNsb3NlZC1zdG9yZSBlcnJvciByZXBsYWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGNhdXNlPzogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBBdG9taWMgbXV0YXRpb25zIG9mIGEgbG9jYWwgcmVjb3JkIHN0b3JlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsRGF0YVN0b3JlQ29tbWl0UGFyYW1zIHtcbiAgLyoqXG4gICAqIEtleS92YWx1ZSBwYWlycyB0byB3cml0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGVudHJpZXM6IHJlYWRvbmx5IChyZWFkb25seSBbc3RyaW5nLCB1bmtub3duXSlbXTtcbiAgLyoqXG4gICAqIEtleXMgcmVtb3ZlZCBpbiB0aGUgc2FtZSB0cmFuc2FjdGlvbiBhcyB0aGUgd3JpdGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgW11gXG4gICAqL1xuICByZWFkb25seSByZW1vdmVkS2V5cz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKipcbiAgICogRGVsZXRlcyBldmVyeSByZWNvcmQgb2YgdGhpcyBzdG9yZSBmaXJzdCwgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gYXMgdGhlIHdyaXRlcy5cbiAgICpcbiAgICogRWl0aGVyIHRoZSBzdG9yZSBpcyByZXBsYWNlZCBieSBgZW50cmllc2AgYXMgYSB3aG9sZSwgb3IsIHdoZW4gdGhlIHRyYW5zYWN0aW9uIGZhaWxzLCBldmVyeSBwcmV2aW91cyByZWNvcmQgc3Vydml2ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZENsZWFyPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBvcGVuaW5nIGEgbG9jYWwgc3RvcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxEYXRhU3RvcmVPcGVuUGFyYW1zIHtcbiAgLyoqXG4gICAqIEluZGV4ZWREQiBpbXBsZW1lbnRhdGlvbiwgaW5qZWN0YWJsZSBmb3IgdGVzdHMuXG4gICAqL1xuICByZWFkb25seSBmYWN0b3J5PzogSURCRmFjdG9yeTtcbiAgLyoqXG4gICAqIFBsdWdpbiBtYW5pZmVzdCBpZC5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdG9yZSBuYW1lIGFuZCBzY2hlbWEgdmVyc2lvbiBjaG9zZW4gYnkgdGhlIGNvbnN1bWVyLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmVJZDogc3RyaW5nO1xuICAvKipcbiAgICogU3RhYmxlLCBkZXZpY2UtbG9jYWwgdmF1bHQgaWRlbnRpdHk7IG5ldmVyIHRoZSB2YXVsdCBkaXNwbGF5IG5hbWUuXG4gICAqL1xuICByZWFkb25seSB2YXVsdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBsb2NhbCBzdG9yZSBob2xkcyBzdHJ1Y3R1cmVkLWNsb25lYWJsZSB2YWx1ZXM7IGl0IG5ldmVyIHdyaXRlcyB0byB0aGUgdmF1bHQuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2NhbERhdGFTdG9yZSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZCBvciBjbG9zaW5nLCBzbyBubyBmdXJ0aGVyIG9wZXJhdGlvbiBjYW4gcnVuLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgb25jZSB7QGxpbmsgTG9jYWxEYXRhU3RvcmUuY2xvc2V9IHdhcyBjYWxsZWQsIG9yIHRoZSBicm93c2VyIG9yIGEgc2NoZW1hIHVwZ3JhZGUgY2xvc2VkIHRoZVxuICAgKiAgIGNvbm5lY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzQ2xvc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNsb3NlUmVhc29uICE9PSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVJlYXNvbjogTG9jYWxEYXRhU3RvcmVDbG9zZVJlYXNvbiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkYXRhYmFzZTogSURCRGF0YWJhc2UpIHtcbiAgICBkYXRhYmFzZS5vbnZlcnNpb25jaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLm1hcmtDbG9zZWQoTG9jYWxEYXRhU3RvcmVDbG9zZVJlYXNvbi5WZXJzaW9uQ2hhbmdlKTtcbiAgICAgIGRhdGFiYXNlLmNsb3NlKCk7XG4gICAgfTtcbiAgICAvLyBGaXJlZCBvbmx5IHdoZW4gdGhlIGJyb3dzZXIgY2xvc2VzIHRoZSBjb25uZWN0aW9uIGFibm9ybWFsbHksIG5ldmVyIGFmdGVyIGBjbG9zZSgpYC5cbiAgICBkYXRhYmFzZS5hZGRFdmVudExpc3RlbmVyKCdjbG9zZScsICgpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMubWFya0Nsb3NlZChMb2NhbERhdGFTdG9yZUNsb3NlUmVhc29uLkNsb3NlZEJ5QnJvd3Nlcik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYW4gaXNvbGF0ZWQgZGF0YWJhc2UuIFdyaXRlcyByZXNvbHZlIG9ubHkgb25jZSB0aGVpciB0cmFuc2FjdGlvbiBjb21taXRzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gU3RvcmUgaWRlbnRpdHkgYW5kIG9wdGlvbmFsIEluZGV4ZWREQiBpbXBsZW1lbnRhdGlvbi5cbiAgICogQHJldHVybnMgVGhlIGNvbm5lY3RlZCBzdG9yZTsgY2xvc2UgaXQgd2hlbiBpdHMgb3duZXIgdW5sb2Fkcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgb3BlbihwYXJhbXM6IExvY2FsRGF0YVN0b3JlT3BlblBhcmFtcyk6IFByb21pc2U8TG9jYWxEYXRhU3RvcmU+IHtcbiAgICBjb25zdCBuYW1lID0gYG9ic2lkaWFuLWxpYjoke0pTT04uc3RyaW5naWZ5KFtwYXJhbXMudmF1bHRJZCwgcGFyYW1zLnBsdWdpbklkLCBwYXJhbXMuc3RvcmVJZF0pfWA7XG4gICAgY29uc3QgcmVxdWVzdCA9IChwYXJhbXMuZmFjdG9yeSA/PyBpbmRleGVkREIpLm9wZW4obmFtZSwgMSk7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICByZXF1ZXN0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgncmVjb3JkcycpO1xuICAgICAgfTtcbiAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCAoKTogdm9pZCA9PiB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0NvdWxkIG5vdCBvcGVuIGxvY2FsIGRhdGEgc3RvcmUnLCB7IGNhdXNlOiByZXF1ZXN0LmVycm9yIH0pKTtcbiAgICAgIH0pO1xuICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHJlc29sdmUobmV3IExvY2FsRGF0YVN0b3JlKHJlcXVlc3QucmVzdWx0KSk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgZXZlcnkgcmVjb3JkIGluIHRoaXMgc3RvcmUgb25seS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgY29tbWl0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsZWFyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucnVuKCdyZWFkd3JpdGUnLCAoc3RvcmUpID0+IHN0b3JlLmNsZWFyKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGlzIGNvbm5lY3Rpb24gd2l0aG91dCBkZWxldGluZyBpdHMgcmVjb3Jkcy4gRXZlcnkgbGF0ZXIgb3BlcmF0aW9uIHJlamVjdHMgd2l0aFxuICAgKiB7QGxpbmsgTG9jYWxEYXRhU3RvcmVDbG9zZWRFcnJvcn0uIENsb3NpbmcgdHdpY2UgaXMgaGFybWxlc3MuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5tYXJrQ2xvc2VkKExvY2FsRGF0YVN0b3JlQ2xvc2VSZWFzb24uQ2xvc2VkQnlPd25lcik7XG4gICAgdGhpcy5kYXRhYmFzZS5jbG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbW1pdHMgc2V2ZXJhbCByZWNvcmQgY2hhbmdlcyBhdG9taWNhbGx5IHdpdGhvdXQgc2VyaWFsaXppbmcgdGhlIHJlc3Qgb2YgdGhlIGRhdGFiYXNlLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gV3JpdGVzIGFuZCBkZWxldGlvbnMgaW4gb25lIHRyYW5zYWN0aW9uLCBvcHRpb25hbGx5IGFmdGVyIGNsZWFyaW5nIHRoZSBzdG9yZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgb25seSBhZnRlciBhbGwgY2hhbmdlcyBjb21taXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY29tbWl0KHBhcmFtczogTG9jYWxEYXRhU3RvcmVDb21taXRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJ1bigncmVhZHdyaXRlJywgKHN0b3JlKSA9PiB7XG4gICAgICBpZiAocGFyYW1zLnNob3VsZENsZWFyKSB7XG4gICAgICAgIHN0b3JlLmNsZWFyKCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBwYXJhbXMucmVtb3ZlZEtleXMgPz8gW10pIHtcbiAgICAgICAgc3RvcmUuZGVsZXRlKGtleSk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBwYXJhbXMuZW50cmllcykge1xuICAgICAgICBzdG9yZS5wdXQodmFsdWUsIGtleSk7XG4gICAgICB9XG4gICAgICAvLyBObyByZXF1ZXN0IHRvIHJlc29sdmUgd2l0aDogYSBjbG9zaW5nIGBzdG9yZS5jb3VudCgpYCB3b3VsZCB3YWxrIGV2ZXJ5IHJlY29yZCBvZiB0aGUgc3RvcmUgb24gZWFjaCBjb21taXQuXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhIHJlY29yZC5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFJlY29yZCBrZXkuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIGNvbW1pdC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWxldGUoa2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJ1bigncmVhZHdyaXRlJywgKHN0b3JlKSA9PiBzdG9yZS5kZWxldGUoa2V5KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYWxsIHJlY29yZHMgaW4ga2V5IG9yZGVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBEZXRhY2hlZCBrZXkvdmFsdWUgcGFpcnMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZW50cmllcygpOiBQcm9taXNlPFtzdHJpbmcsIHVua25vd25dW10+IHtcbiAgICBjb25zdCByZWNvcmRzOiBbc3RyaW5nLCB1bmtub3duXVtdID0gW107XG4gICAgLy8gVHdvIGJ1bGsgcmVhZHMgaW4gb25lIHRyYW5zYWN0aW9uIHNlZSB0aGUgc2FtZSBzbmFwc2hvdCBpbiB0aGUgc2FtZSBrZXkgb3JkZXIsIHNvIHRoZXkgcGFpciB1cCBieSBpbmRleC5cbiAgICAvLyBBIGN1cnNvciBkaXNwYXRjaGVzIG9uZSBldmVudCBwZXIgcmVjb3JkIGluc3RlYWQ7IGF0IDkwLDAwMCByZWNvcmRzIGluIE9ic2lkaWFuIGl0IHRvb2sgMS41IHRvIDIgdGltZXMgYXMgbG9uZy5cbiAgICBhd2FpdCB0aGlzLnJ1bigncmVhZG9ubHknLCAoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IGtleXNSZXF1ZXN0ID0gc3RvcmUuZ2V0QWxsS2V5cygpO1xuICAgICAgY29uc3QgdmFsdWVzUmVxdWVzdCA9IHN0b3JlLmdldEFsbCgpO1xuICAgICAgdmFsdWVzUmVxdWVzdC5vbnN1Y2Nlc3MgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBrZXlzUmVxdWVzdC5yZXN1bHQ7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHZhbHVlc1JlcXVlc3QucmVzdWx0O1xuICAgICAgICBmb3IgKGNvbnN0IFtpbmRleCwga2V5XSBvZiBrZXlzLmVudHJpZXMoKSkge1xuICAgICAgICAgIGlmICh0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTG9jYWwgZGF0YS1zdG9yZSBrZXkgaXMgbm90IGEgc3RyaW5nJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlY29yZHMucHVzaChba2V5LCB2YWx1ZXNbaW5kZXhdXSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gdmFsdWVzUmVxdWVzdDtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVjb3JkcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIGEgc2hhcmVkLXN0b3JlIG9wZXJhdGlvbiBhY3Jvc3MgY29ubmVjdGlvbnMsIHdpbmRvd3MgYW5kIGJ1bmRsZWQgbGlicmFyeSBjb3BpZXMuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVCAtIENhbGxiYWNrIHJlc3VsdC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gV29yayBwZXJmb3JtZWQgd2hpbGUgaG9sZGluZyB0aGlzIGRhdGFiYXNlJ3MgV2ViIExvY2suXG4gICAqIEByZXR1cm5zIFRoZSBjYWxsYmFjayByZXN1bHQgYWZ0ZXIgcmVsZWFzaW5nIHRoZSBsb2NrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGV4Y2x1c2l2ZTxUPihjYWxsYmFjazogKCkgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiBhd2FpdCB3aW5kb3cubmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QodGhpcy5kYXRhYmFzZS5uYW1lLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYSByZWNvcmQuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgLSBSZWNvcmQga2V5LlxuICAgKiBAcmV0dXJucyBJdHMgdmFsdWUsIG9yIGB1bmRlZmluZWRgIHdoZW4gYWJzZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldChrZXk6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJ1bjx1bmtub3duPigncmVhZG9ubHknLCAoc3RvcmUpID0+IHN0b3JlLmdldChrZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyBhIHJlY29yZCBvbmNlLCBhdG9taWNhbGx5IGFjcm9zcyBjb25uZWN0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFJlY29yZCBrZXkuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHVzZWQgb25seSB3aGVuIHRoZSBrZXkgaXMgYWJzZW50LlxuICAgKiBAcmV0dXJucyBUaGUgZXhpc3Rpbmcgb3IgbmV3bHkgY29tbWl0dGVkIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldE9yQ3JlYXRlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJ1bjx1bmtub3duPigncmVhZHdyaXRlJywgKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gc3RvcmUuZ2V0KGtleSk7XG4gICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKHJlcXVlc3QucmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzdG9yZS5wdXQodmFsdWUsIGtleSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4gcmVxdWVzdDtcbiAgICB9KS50aGVuKChleGlzdGluZykgPT4gZXhpc3RpbmcgPT09IHVuZGVmaW5lZCA/IHZhbHVlIDogZXhpc3RpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBhIHN0cnVjdHVyZWQtY2xvbmVhYmxlIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ga2V5IC0gUmVjb3JkIGtleS5cbiAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gcGVyc2lzdC5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgY29tbWl0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJ1bigncmVhZHdyaXRlJywgKHN0b3JlKSA9PiBzdG9yZS5wdXQodmFsdWUsIGtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXJrQ2xvc2VkKHJlYXNvbjogTG9jYWxEYXRhU3RvcmVDbG9zZVJlYXNvbik6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VSZWFzb24gPz89IHJlYXNvbjtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB0eXBlc2NyaXB0LWRldi10b29sa2l0L25vLXVuZGVmaW5lZC1yZXR1cm4tdHlwZSAtLSBNaXJyb3JzIEluZGV4ZWREQjogYSBtaXNzaW5nIHJlY29yZCByZWFkcyBhcyBgdW5kZWZpbmVkYCwgd2hpY2ggYSBzdG9yZWQgYG51bGxgIG11c3Qgc3RheSBkaXN0aW5jdCBmcm9tLlxuICBwcml2YXRlIGFzeW5jIHJ1bjxUPihtb2RlOiBJREJUcmFuc2FjdGlvbk1vZGUsIGFjdGlvbjogKHN0b3JlOiBJREJPYmplY3RTdG9yZSkgPT4gSURCUmVxdWVzdDxUPiB8IHVuZGVmaW5lZCk6IFByb21pc2U8VCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBsZXQgdHJhbnNhY3Rpb246IElEQlRyYW5zYWN0aW9uO1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VSZWFzb24gIT09IG51bGwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTG9jYWxEYXRhU3RvcmVDbG9zZWRFcnJvcih0aGlzLmRhdGFiYXNlLm5hbWUsIHRoaXMuY2xvc2VSZWFzb24pO1xuICAgICAgICB9XG4gICAgICAgIHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbigncmVjb3JkcycsIG1vZGUpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVqZWN0KHRoaXMudG9DbG9zZWRFcnJvcihlcnJvcikpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgcmVxdWVzdDogSURCUmVxdWVzdDxUPiB8IHVuZGVmaW5lZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJlcXVlc3QgPSBhY3Rpb24odHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3JlY29yZHMnKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0cmFuc2FjdGlvbi5hYm9ydCgpO1xuICAgICAgICByZWplY3QoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yIDogbmV3IEVycm9yKCdMb2NhbCBkYXRhLXN0b3JlIHRyYW5zYWN0aW9uIGZhaWxlZCcsIHsgY2F1c2U6IGVycm9yIH0pKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gQW4gYWN0aW9uIHRoYXQgaXNzdWVkIG5vIHJlcXVlc3Qgb2YgaXRzIG93biByZXNvbHZlcyB3aXRoIGB1bmRlZmluZWRgIG9uY2UgaXRzIHdyaXRlcyBjb21taXQuXG4gICAgICAgIHJlc29sdmUocmVxdWVzdD8ucmVzdWx0KTtcbiAgICAgIH07XG4gICAgICB0cmFuc2FjdGlvbi5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpOiB2b2lkID0+IHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignTG9jYWwgZGF0YS1zdG9yZSB0cmFuc2FjdGlvbiBhYm9ydGVkJywgeyBjYXVzZTogdHJhbnNhY3Rpb24uZXJyb3IgfSkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRvQ2xvc2VkRXJyb3IoZXJyb3I6IHVua25vd24pOiBFcnJvciB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgTG9jYWxEYXRhU3RvcmVDbG9zZWRFcnJvcikge1xuICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cbiAgICAvLyBBIGNsb3NpbmcgY29ubmVjdGlvbiBtYWtlcyBgdHJhbnNhY3Rpb24oKWAgdGhyb3cgYEludmFsaWRTdGF0ZUVycm9yYCBzeW5jaHJvbm91c2x5LlxuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm5hbWUgPT09ICdJbnZhbGlkU3RhdGVFcnJvcicpIHtcbiAgICAgIHJldHVybiBuZXcgTG9jYWxEYXRhU3RvcmVDbG9zZWRFcnJvcih0aGlzLmRhdGFiYXNlLm5hbWUsIHRoaXMuY2xvc2VSZWFzb24gPz8gTG9jYWxEYXRhU3RvcmVDbG9zZVJlYXNvbi5DbG9zZWRCeUJyb3dzZXIsIHsgY2F1c2U6IGVycm9yIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yIDogbmV3IEVycm9yKCdMb2NhbCBkYXRhLXN0b3JlIHRyYW5zYWN0aW9uIGZhaWxlZCcsIHsgY2F1c2U6IGVycm9yIH0pO1xuICB9XG59XG5cbi8qKlxuICogVGhyb3duIGJ5IGV2ZXJ5IG9wZXJhdGlvbiBvZiBhIHtAbGluayBMb2NhbERhdGFTdG9yZX0gd2hvc2UgY29ubmVjdGlvbiBpcyBjbG9zZWQgb3IgY2xvc2luZy5cbiAqXG4gKiBJdCByZXBsYWNlcyBJbmRleGVkREIncyByYXcgYEludmFsaWRTdGF0ZUVycm9yYCAoXCJUaGUgZGF0YWJhc2UgY29ubmVjdGlvbiBpcyBjbG9zaW5nXCIpLCB3aGljaCBuYW1lcyBuZWl0aGVyIHRoZVxuICogc3RvcmUgbm9yIHRoZSBjYXVzZS4gVGhlIHVzdWFsIGNhdXNlIGlzIHdvcmsgdGhhdCBvdXRsaXZlZCBpdHMgb3duZXI6IGEgZGVib3VuY2VkIG9yIHNjaGVkdWxlZCBzYXZlIHRoYXQgcnVucyBhZnRlclxuICogdGhlIHBsdWdpbiB1bmxvYWRlZCBhbmQgY2xvc2VkIGl0cyBzdG9yZS5cbiAqL1xuZXhwb3J0IGNsYXNzIExvY2FsRGF0YVN0b3JlQ2xvc2VkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEge0BsaW5rIExvY2FsRGF0YVN0b3JlQ2xvc2VkRXJyb3J9LlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YWJhc2VOYW1lIC0gVGhlIEluZGV4ZWREQiBkYXRhYmFzZSBuYW1lIG9mIHRoZSBzdG9yZS5cbiAgICogQHBhcmFtIHJlYXNvbiAtIFdoeSB0aGUgY29ubmVjdGlvbiBjbG9zZWQuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIEluZGV4ZWREQiBlcnJvciB0aGlzIG9uZSByZXBsYWNlcywgYXMgaXRzIGBjYXVzZWAuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSByZWFzb246IExvY2FsRGF0YVN0b3JlQ2xvc2VSZWFzb24sXG4gICAgb3B0aW9ucz86IExvY2FsRGF0YVN0b3JlQ2xvc2VkRXJyb3JDb25zdHJ1Y3Rvck9wdGlvbnNcbiAgKSB7XG4gICAgc3VwZXIoYFRoZSBsb2NhbCBkYXRhIHN0b3JlIFwiJHtkYXRhYmFzZU5hbWV9XCIgaXMgY2xvc2VkICgke3JlYXNvbn0pLCBzbyB0aGUgb3BlcmF0aW9uIHdhcyBub3QgcnVuLmAsIG9wdGlvbnMpO1xuICAgIHRoaXMubmFtZSA9ICdMb2NhbERhdGFTdG9yZUNsb3NlZEVycm9yJztcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFTTyxJQUFLLDRCQUFMLGtCQUFLQSwrQkFBTDtBQUtMLEVBQUFBLDJCQUFBLHFCQUFrQjtBQUlsQixFQUFBQSwyQkFBQSxtQkFBZ0I7QUFJaEIsRUFBQUEsMkJBQUEsbUJBQWdCO0FBYk4sU0FB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U0FBUyxXQUFXO0FBQzVDLFVBQUk7QUFDSixVQUFJO0FBQ0YsWUFBSSxLQUFLLGdCQUFnQixNQUFNO0FBQzdCLGdCQUFNLElBQUksMEJBQTBCLEtBQUssU0FBUyxNQUFNLEtBQUssV0FBVztBQUFBLFFBQzFFO0FBQ0Esc0JBQWMsS0FBSyxTQUFTLFlBQVksV0FBVyxJQUFJO0FBQUEsTUFDekQsU0FBUyxPQUFPO0FBQ2QsZUFBTyxLQUFLLGNBQWMsS0FBSyxDQUFDO0FBQ2hDO0FBQUEsTUFDRjtBQUNBLFVBQUk7QUFDSixVQUFJO0FBQ0Ysa0JBQVUsT0FBTyxZQUFZLFlBQVksU0FBUyxDQUFDO0FBQUEsTUFDckQsU0FBUyxPQUFPO0FBQ2Qsb0JBQVksTUFBTTtBQUNsQixlQUFPLGlCQUFpQixRQUFRLFFBQVEsSUFBSSxNQUFNLHVDQUF1QyxFQUFFLE9BQU8sTUFBTSxDQUFDLENBQUM7QUFDMUc7QUFBQSxNQUNGO0FBQ0Esa0JBQVksYUFBYSxNQUFZO0FBRW5DLGdCQUFRLFNBQVMsTUFBTTtBQUFBLE1BQ3pCO0FBQ0Esa0JBQVksaUJBQWlCLFNBQVMsTUFBWTtBQUNoRCxlQUFPLElBQUksTUFBTSx3Q0FBd0MsRUFBRSxPQUFPLFlBQVksTUFBTSxDQUFDLENBQUM7QUFBQSxNQUN4RixDQUFDO0FBQUEsSUFDSCxDQUFDO0FBQUEsRUFDSDtBQUFBLEVBRVEsY0FBYyxPQUF1QjtBQUMzQyxRQUFJLGlCQUFpQiwyQkFBMkI7QUFDOUMsYUFBTztBQUFBLElBQ1Q7QUFFQSxRQUFJLGlCQUFpQixTQUFTLE1BQU0sU0FBUyxxQkFBcUI7QUFDaEUsYUFBTyxJQUFJLDBCQUEwQixLQUFLLFNBQVMsTUFBTSxLQUFLLGVBQWUseUNBQTJDLEVBQUUsT0FBTyxNQUFNLENBQUM7QUFBQSxJQUMxSTtBQUNBLFdBQU8saUJBQWlCLFFBQVEsUUFBUSxJQUFJLE1BQU0sdUNBQXVDLEVBQUUsT0FBTyxNQUFNLENBQUM7QUFBQSxFQUMzRztBQUNGO0FBU08sTUFBTSxrQ0FBa0MsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRNUMsWUFDVyxjQUNBLFFBQ2hCLFNBQ0E7QUFDQSxVQUFNLHlCQUF5QixZQUFZLGdCQUFnQixNQUFNLG9DQUFvQyxPQUFPO0FBSjVGO0FBQ0E7QUFJaEIsU0FBSyxPQUFPO0FBQUEsRUFDZDtBQUFBLEVBTmtCO0FBQUEsRUFDQTtBQU1wQjsiLAogICJuYW1lcyI6IFsiTG9jYWxEYXRhU3RvcmVDbG9zZVJlYXNvbiJdCn0K
|
|
@@ -90,6 +90,7 @@ export declare class SharedDataStore {
|
|
|
90
90
|
private readonly knownTransportRoots;
|
|
91
91
|
private readonly localRecords;
|
|
92
92
|
private readonly locations;
|
|
93
|
+
private readonly ownSegments;
|
|
93
94
|
private replica;
|
|
94
95
|
private time;
|
|
95
96
|
private readonly vector;
|
|
@@ -152,7 +153,7 @@ export declare class SharedDataStore {
|
|
|
152
153
|
*/
|
|
153
154
|
set(key: string, value: JsonValue): Promise<void>;
|
|
154
155
|
/**
|
|
155
|
-
* Publishes a batch of register writes, split into bounded
|
|
156
|
+
* Publishes a batch of register writes, appended to this device's open journal segment and split into bounded ones.
|
|
156
157
|
* Segments are individually durable; a failed batch can have a published prefix and can be retried safely.
|
|
157
158
|
*
|
|
158
159
|
* @param entries - Register writes or set additions.
|
|
@@ -184,6 +185,22 @@ export declare class SharedDataStore {
|
|
|
184
185
|
private mergeFiles;
|
|
185
186
|
private mergeTransport;
|
|
186
187
|
private observeClock;
|
|
188
|
+
/**
|
|
189
|
+
* Picks the segment the next operation may extend: this device's newest one in the active transport, when it ends
|
|
190
|
+
* exactly at the device's last sequence and is still small enough that rewriting it stays cheap.
|
|
191
|
+
*
|
|
192
|
+
* @returns The open segment, or `null` when the next operation starts a new file.
|
|
193
|
+
*/
|
|
194
|
+
private openSegment;
|
|
195
|
+
private openSegmentBytes;
|
|
187
196
|
private persist;
|
|
188
197
|
private publish;
|
|
198
|
+
/**
|
|
199
|
+
* Rewrites `have` only when another device's acknowledged sequence moved, or the stored copy is due a refresh.
|
|
200
|
+
* Other devices read only their own entry from it, so this device's own sequence never forces a write.
|
|
201
|
+
*
|
|
202
|
+
* @returns A promise that resolves once the acknowledgement is current.
|
|
203
|
+
*/
|
|
204
|
+
private publishAcknowledgement;
|
|
205
|
+
private segmentPath;
|
|
189
206
|
}
|