@mnaoumov/obsidian-lib 1.0.0 → 1.0.1
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 +9 -1
- package/dist/lib/cjs/__merged.cjs +40 -64
- package/dist/lib/cjs/active-file-provider.cjs +40 -64
- package/dist/lib/cjs/app.cjs +40 -64
- package/dist/lib/cjs/async-with-notice.cjs +40 -64
- package/dist/lib/cjs/attachment-path.cjs +40 -64
- package/dist/lib/cjs/attachment-unit-folder.cjs +40 -64
- package/dist/lib/cjs/backlink-index.cjs +41 -65
- package/dist/lib/cjs/backlink.cjs +40 -64
- package/dist/lib/cjs/bases-view-registrar.cjs +40 -64
- package/dist/lib/cjs/callout.cjs +40 -64
- package/dist/lib/cjs/canvas.cjs +40 -64
- package/dist/lib/cjs/case-insensitive-file-index.cjs +40 -64
- package/dist/lib/cjs/code-block-markdown-information.cjs +40 -64
- package/dist/lib/cjs/code-block-reg-exp.cjs +40 -64
- package/dist/lib/cjs/codemirror/index.cjs +40 -64
- package/dist/lib/cjs/codemirror/state-field-spec.cjs +40 -64
- package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/command-handler-component.cjs +40 -64
- package/dist/lib/cjs/command-handlers/command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/file-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/global-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/index.cjs +40 -64
- package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +40 -64
- package/dist/lib/cjs/command-registrar.cjs +40 -64
- package/dist/lib/cjs/community-plugins.cjs +40 -64
- package/dist/lib/cjs/components/abort-signal-component.cjs +40 -64
- package/dist/lib/cjs/components/all-windows-event-component.cjs +40 -64
- package/dist/lib/cjs/components/async-error-handler-component.cjs +40 -64
- package/dist/lib/cjs/components/async-events-component.cjs +40 -64
- package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +40 -64
- package/dist/lib/cjs/components/component-ex.cjs +41 -65
- package/dist/lib/cjs/components/console-debug-component.cjs +40 -64
- package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +40 -64
- package/dist/lib/cjs/components/disposable-component.cjs +40 -64
- package/dist/lib/cjs/components/embed-extensions-component.cjs +40 -64
- package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +40 -64
- package/dist/lib/cjs/components/index.cjs +40 -64
- package/dist/lib/cjs/components/layout-ready-component.cjs +40 -64
- package/dist/lib/cjs/components/menu-event-registrar-component.cjs +40 -64
- package/dist/lib/cjs/components/monkey-around-component.cjs +40 -64
- package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +40 -64
- package/dist/lib/cjs/components/plugin-context-component.cjs +40 -64
- package/dist/lib/cjs/components/plugin-gate-component.cjs +41 -65
- package/dist/lib/cjs/components/plugin-notice-component.cjs +40 -64
- package/dist/lib/cjs/components/plugin-settings-component.cjs +41 -65
- package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +40 -64
- package/dist/lib/cjs/components/plugin-suggestion-component.cjs +40 -64
- package/dist/lib/cjs/components/pointer-position-component.cjs +40 -64
- package/dist/lib/cjs/components/registry-component.cjs +40 -64
- package/dist/lib/cjs/components/release-notes-component.cjs +40 -64
- package/dist/lib/cjs/components/rename-delete-handler-component.cjs +40 -64
- package/dist/lib/cjs/components/rmdir-guard-component.cjs +40 -64
- package/dist/lib/cjs/components/settings-migration-component.cjs +40 -64
- package/dist/lib/cjs/components/syntax-highlighting-component.cjs +40 -64
- package/dist/lib/cjs/components/templates-language-component.cjs +40 -64
- package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +40 -64
- package/dist/lib/cjs/constructors/index.cjs +40 -64
- package/dist/lib/cjs/css-class.cjs +40 -64
- package/dist/lib/cjs/data-handler.cjs +40 -64
- package/dist/lib/cjs/dataview-link.cjs +40 -64
- package/dist/lib/cjs/dataview.cjs +40 -64
- package/dist/lib/cjs/debug.cjs +40 -64
- package/dist/lib/cjs/demo-vault-helper-settings.cjs +40 -64
- package/dist/lib/cjs/demo-vault-helper.cjs +40 -64
- package/dist/lib/cjs/demo-vault-naming.cjs +40 -64
- package/dist/lib/cjs/desktop-demo-vault-opener.cjs +40 -64
- package/dist/lib/cjs/desktop-trusted-input.cjs +40 -64
- package/dist/lib/cjs/editor-extension-registrar.cjs +40 -64
- package/dist/lib/cjs/editor-suggest-registrar.cjs +40 -64
- package/dist/lib/cjs/editor.cjs +40 -64
- package/dist/lib/cjs/events.cjs +40 -64
- package/dist/lib/cjs/extensions-registrar.cjs +40 -64
- package/dist/lib/cjs/file-change.cjs +40 -64
- package/dist/lib/cjs/file-explorer.cjs +40 -64
- package/dist/lib/cjs/file-manager.cjs +40 -64
- package/dist/lib/cjs/file-system.cjs +40 -64
- package/dist/lib/cjs/folder-note.cjs +40 -64
- package/dist/lib/cjs/frontmatter-formatting.cjs +41 -65
- package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +40 -64
- package/dist/lib/cjs/frontmatter.cjs +40 -64
- package/dist/lib/cjs/generated-during-build.cjs +41 -65
- package/dist/lib/cjs/generated-during-build.d.cts +8 -2
- package/dist/lib/cjs/hover-link-source-registrar.cjs +40 -64
- package/dist/lib/cjs/html-element.cjs +40 -64
- package/dist/lib/cjs/i18n/custom-type-options.cjs +40 -64
- package/dist/lib/cjs/i18n/default-translations.cjs +40 -64
- package/dist/lib/cjs/i18n/i18n.cjs +40 -64
- package/dist/lib/cjs/i18n/index.cjs +40 -64
- package/dist/lib/cjs/i18n/locales/en.cjs +40 -64
- package/dist/lib/cjs/i18n/locales/index.cjs +40 -64
- package/dist/lib/cjs/i18n/locales/translations-map.cjs +40 -64
- package/dist/lib/cjs/index.cjs +40 -64
- package/dist/lib/cjs/is-in-obsidian.cjs +40 -64
- package/dist/lib/cjs/library-styles.cjs +40 -64
- package/dist/lib/cjs/library.cjs +40 -64
- package/dist/lib/cjs/link-name.cjs +40 -64
- package/dist/lib/cjs/link-update-progress.cjs +40 -64
- package/dist/lib/cjs/link.cjs +40 -64
- package/dist/lib/cjs/logger.cjs +40 -64
- package/dist/lib/cjs/loop.cjs +40 -64
- package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +40 -64
- package/dist/lib/cjs/markdown-code-block-processor.cjs +40 -64
- package/dist/lib/cjs/markdown-post-processor-registrar.cjs +40 -64
- package/dist/lib/cjs/markdown-view.cjs +40 -64
- package/dist/lib/cjs/markdown.cjs +40 -64
- package/dist/lib/cjs/menu-event-registrar.cjs +40 -64
- package/dist/lib/cjs/metadata-cache.cjs +40 -64
- package/dist/lib/cjs/mobile-trusted-input.cjs +40 -64
- package/dist/lib/cjs/modals/alert.cjs +40 -64
- package/dist/lib/cjs/modals/confirm.cjs +40 -64
- package/dist/lib/cjs/modals/index.cjs +40 -64
- package/dist/lib/cjs/modals/minimizable-modal.cjs +40 -64
- package/dist/lib/cjs/modals/modal-command-builder.cjs +40 -64
- package/dist/lib/cjs/modals/modal.cjs +40 -64
- package/dist/lib/cjs/modals/prompt.cjs +40 -64
- package/dist/lib/cjs/modals/select-item.cjs +40 -64
- package/dist/lib/cjs/modals/select-option.cjs +40 -64
- package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +40 -64
- package/dist/lib/cjs/note-priority.cjs +41 -65
- package/dist/lib/cjs/notebook-navigator.cjs +40 -64
- package/dist/lib/cjs/obsidian-dev-utils-state.cjs +40 -64
- package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +40 -64
- package/dist/lib/cjs/obsidian-settings.cjs +40 -64
- package/dist/lib/cjs/parse-link.cjs +40 -64
- package/dist/lib/cjs/path-settings.cjs +40 -64
- package/dist/lib/cjs/pdf.cjs +40 -64
- package/dist/lib/cjs/plugin/index.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-api.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-context.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-event-source.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-install-state.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +40 -64
- package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +41 -65
- package/dist/lib/cjs/plugin/plugin.cjs +41 -65
- package/dist/lib/cjs/plugin/settings-migration-api.cjs +40 -64
- package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +40 -64
- package/dist/lib/cjs/popovers/field-popover.cjs +40 -64
- package/dist/lib/cjs/popovers/index.cjs +40 -64
- package/dist/lib/cjs/popovers/popover-anchor.cjs +40 -64
- package/dist/lib/cjs/popovers/popover.cjs +40 -64
- package/dist/lib/cjs/property-entry.cjs +40 -64
- package/dist/lib/cjs/queue.cjs +40 -64
- package/dist/lib/cjs/react/app-context.cjs +40 -64
- package/dist/lib/cjs/react/index.cjs +40 -64
- package/dist/lib/cjs/reference.cjs +40 -64
- package/dist/lib/cjs/resource-lock.cjs +40 -64
- package/dist/lib/cjs/resource-url.cjs +40 -64
- package/dist/lib/cjs/ribbon-icon-registrar.cjs +40 -64
- package/dist/lib/cjs/setting-components/checkbox-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/date-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/date-time-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/email-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/file-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/index.cjs +40 -64
- package/dist/lib/cjs/setting-components/month-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +41 -65
- package/dist/lib/cjs/setting-components/multiple-email-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/multiple-file-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/multiple-text-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/number-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/password-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +40 -64
- package/dist/lib/cjs/setting-components/telephone-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/text-based-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/time-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/typed-text-component.cjs +41 -65
- package/dist/lib/cjs/setting-components/url-component.cjs +40 -64
- package/dist/lib/cjs/setting-components/validator-component.cjs +41 -65
- package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +40 -64
- package/dist/lib/cjs/setting-components/week-component.cjs +40 -64
- package/dist/lib/cjs/setting-ex.cjs +40 -64
- package/dist/lib/cjs/setting-group-ex.cjs +40 -64
- package/dist/lib/cjs/status-bar-item-registrar.cjs +40 -64
- package/dist/lib/cjs/templater.cjs +40 -64
- package/dist/lib/cjs/transformers/duration-transformer.cjs +40 -64
- package/dist/lib/cjs/transformers/index.cjs +40 -64
- package/dist/lib/cjs/trusted-input.cjs +40 -64
- package/dist/lib/cjs/validation.cjs +40 -64
- package/dist/lib/cjs/vault-delete.cjs +40 -64
- package/dist/lib/cjs/vault-transaction.cjs +40 -64
- package/dist/lib/cjs/vault.cjs +41 -65
- package/dist/lib/cjs/view-registrar.cjs +40 -64
- package/dist/lib/cjs/workspace.cjs +40 -64
- package/dist/lib/esm/__merged.mjs +6 -14
- package/dist/lib/esm/active-file-provider.mjs +6 -14
- package/dist/lib/esm/app.mjs +6 -14
- package/dist/lib/esm/async-with-notice.mjs +6 -14
- package/dist/lib/esm/attachment-path.mjs +6 -14
- package/dist/lib/esm/attachment-unit-folder.mjs +6 -14
- package/dist/lib/esm/backlink-index.mjs +6 -14
- package/dist/lib/esm/backlink.mjs +6 -14
- package/dist/lib/esm/bases-view-registrar.mjs +6 -14
- package/dist/lib/esm/callout.mjs +6 -14
- package/dist/lib/esm/canvas.mjs +6 -14
- package/dist/lib/esm/case-insensitive-file-index.mjs +6 -14
- package/dist/lib/esm/code-block-markdown-information.mjs +5 -13
- package/dist/lib/esm/code-block-reg-exp.mjs +6 -14
- package/dist/lib/esm/codemirror/index.mjs +6 -14
- package/dist/lib/esm/codemirror/state-field-spec.mjs +5 -13
- package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/command-handler-component.mjs +6 -14
- package/dist/lib/esm/command-handlers/command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/editor-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/file-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/folder-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/global-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/index.mjs +6 -14
- package/dist/lib/esm/command-handlers/open-demo-vault-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/open-settings-command-handler.mjs +6 -14
- package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.mjs +6 -14
- package/dist/lib/esm/command-registrar.mjs +6 -14
- package/dist/lib/esm/community-plugins.mjs +6 -14
- package/dist/lib/esm/components/abort-signal-component.mjs +6 -14
- package/dist/lib/esm/components/all-windows-event-component.mjs +6 -14
- package/dist/lib/esm/components/async-error-handler-component.mjs +6 -14
- package/dist/lib/esm/components/async-events-component.mjs +6 -14
- package/dist/lib/esm/components/case-insensitive-file-index-component.mjs +6 -14
- package/dist/lib/esm/components/component-ex.mjs +6 -14
- package/dist/lib/esm/components/console-debug-component.mjs +6 -14
- package/dist/lib/esm/components/core-plugin-toggle-component.mjs +6 -14
- package/dist/lib/esm/components/disposable-component.mjs +6 -14
- package/dist/lib/esm/components/embed-extensions-component.mjs +6 -14
- package/dist/lib/esm/components/generate-markdown-link-default-params-component.mjs +6 -14
- package/dist/lib/esm/components/index.mjs +6 -14
- package/dist/lib/esm/components/layout-ready-component.mjs +6 -14
- package/dist/lib/esm/components/menu-event-registrar-component.mjs +6 -14
- package/dist/lib/esm/components/monkey-around-component.mjs +6 -14
- package/dist/lib/esm/components/notebook-navigator-menu-event-registrar-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-context-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-gate-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-notice-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-settings-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-settings-tab-component.mjs +6 -14
- package/dist/lib/esm/components/plugin-suggestion-component.mjs +6 -14
- package/dist/lib/esm/components/pointer-position-component.mjs +6 -14
- package/dist/lib/esm/components/registry-component.mjs +6 -14
- package/dist/lib/esm/components/release-notes-component.mjs +6 -14
- package/dist/lib/esm/components/rename-delete-handler-component.mjs +6 -14
- package/dist/lib/esm/components/rmdir-guard-component.mjs +6 -14
- package/dist/lib/esm/components/settings-migration-component.mjs +6 -14
- package/dist/lib/esm/components/syntax-highlighting-component.mjs +6 -14
- package/dist/lib/esm/components/templates-language-component.mjs +6 -14
- package/dist/lib/esm/constructors/get-dom-events-handlers-constructor.mjs +6 -14
- package/dist/lib/esm/constructors/index.mjs +6 -14
- package/dist/lib/esm/css-class.mjs +6 -14
- package/dist/lib/esm/data-handler.mjs +6 -14
- package/dist/lib/esm/dataview-link.mjs +6 -14
- package/dist/lib/esm/dataview.mjs +6 -14
- package/dist/lib/esm/debug.mjs +6 -14
- package/dist/lib/esm/demo-vault-helper-settings.mjs +5 -13
- package/dist/lib/esm/demo-vault-helper.mjs +6 -14
- package/dist/lib/esm/demo-vault-naming.mjs +6 -14
- package/dist/lib/esm/desktop-demo-vault-opener.mjs +6 -14
- package/dist/lib/esm/desktop-trusted-input.mjs +6 -14
- package/dist/lib/esm/editor-extension-registrar.mjs +6 -14
- package/dist/lib/esm/editor-suggest-registrar.mjs +6 -14
- package/dist/lib/esm/editor.mjs +6 -14
- package/dist/lib/esm/events.mjs +6 -14
- package/dist/lib/esm/extensions-registrar.mjs +6 -14
- package/dist/lib/esm/file-change.mjs +6 -14
- package/dist/lib/esm/file-explorer.mjs +6 -14
- package/dist/lib/esm/file-manager.mjs +6 -14
- package/dist/lib/esm/file-system.mjs +6 -14
- package/dist/lib/esm/folder-note.mjs +6 -14
- package/dist/lib/esm/frontmatter-formatting.mjs +6 -14
- package/dist/lib/esm/frontmatter-link-cache-with-offsets.mjs +6 -14
- package/dist/lib/esm/frontmatter.mjs +6 -14
- package/dist/lib/esm/generated-during-build.d.mts +8 -2
- package/dist/lib/esm/generated-during-build.mjs +7 -15
- package/dist/lib/esm/hover-link-source-registrar.mjs +6 -14
- package/dist/lib/esm/html-element.mjs +6 -14
- package/dist/lib/esm/i18n/custom-type-options.mjs +6 -14
- package/dist/lib/esm/i18n/default-translations.mjs +6 -14
- package/dist/lib/esm/i18n/i18n.mjs +6 -14
- package/dist/lib/esm/i18n/index.mjs +6 -14
- package/dist/lib/esm/i18n/locales/en.mjs +6 -14
- package/dist/lib/esm/i18n/locales/index.mjs +6 -14
- package/dist/lib/esm/i18n/locales/translations-map.mjs +6 -14
- package/dist/lib/esm/index.mjs +6 -14
- package/dist/lib/esm/is-in-obsidian.mjs +6 -14
- package/dist/lib/esm/library-styles.mjs +6 -14
- package/dist/lib/esm/library.mjs +6 -14
- package/dist/lib/esm/link-name.mjs +6 -14
- package/dist/lib/esm/link-update-progress.mjs +5 -13
- package/dist/lib/esm/link.mjs +6 -14
- package/dist/lib/esm/logger.mjs +6 -14
- package/dist/lib/esm/loop.mjs +6 -14
- package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +6 -14
- package/dist/lib/esm/markdown-code-block-processor.mjs +6 -14
- package/dist/lib/esm/markdown-post-processor-registrar.mjs +6 -14
- package/dist/lib/esm/markdown-view.mjs +6 -14
- package/dist/lib/esm/markdown.mjs +6 -14
- package/dist/lib/esm/menu-event-registrar.mjs +5 -13
- package/dist/lib/esm/metadata-cache.mjs +6 -14
- package/dist/lib/esm/mobile-trusted-input.mjs +6 -14
- package/dist/lib/esm/modals/alert.mjs +6 -14
- package/dist/lib/esm/modals/confirm.mjs +6 -14
- package/dist/lib/esm/modals/index.mjs +6 -14
- package/dist/lib/esm/modals/minimizable-modal.mjs +6 -14
- package/dist/lib/esm/modals/modal-command-builder.mjs +6 -14
- package/dist/lib/esm/modals/modal.mjs +6 -14
- package/dist/lib/esm/modals/prompt.mjs +6 -14
- package/dist/lib/esm/modals/select-item.mjs +6 -14
- package/dist/lib/esm/modals/select-option.mjs +6 -14
- package/dist/lib/esm/modals/suggest-modal-command-builder.mjs +6 -14
- package/dist/lib/esm/note-priority.mjs +6 -14
- package/dist/lib/esm/notebook-navigator.mjs +6 -14
- package/dist/lib/esm/obsidian-dev-utils-state.mjs +6 -14
- package/dist/lib/esm/obsidian-protocol-handler-registrar.mjs +6 -14
- package/dist/lib/esm/obsidian-settings.mjs +6 -14
- package/dist/lib/esm/parse-link.mjs +6 -14
- package/dist/lib/esm/path-settings.mjs +6 -14
- package/dist/lib/esm/pdf.mjs +6 -14
- package/dist/lib/esm/plugin/index.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-api.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-context.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-event-source.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-install-state.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +6 -14
- package/dist/lib/esm/plugin/plugin-settings-tab.mjs +6 -14
- package/dist/lib/esm/plugin/plugin.mjs +6 -14
- package/dist/lib/esm/plugin/settings-migration-api.mjs +5 -13
- package/dist/lib/esm/plugin-cli-handler-registrar.mjs +6 -14
- package/dist/lib/esm/popovers/field-popover.mjs +6 -14
- package/dist/lib/esm/popovers/index.mjs +6 -14
- package/dist/lib/esm/popovers/popover-anchor.mjs +6 -14
- package/dist/lib/esm/popovers/popover.mjs +6 -14
- package/dist/lib/esm/property-entry.mjs +6 -14
- package/dist/lib/esm/queue.mjs +6 -14
- package/dist/lib/esm/react/app-context.mjs +6 -14
- package/dist/lib/esm/react/index.mjs +6 -14
- package/dist/lib/esm/reference.mjs +6 -14
- package/dist/lib/esm/resource-lock.mjs +6 -14
- package/dist/lib/esm/resource-url.mjs +6 -14
- package/dist/lib/esm/ribbon-icon-registrar.mjs +6 -14
- package/dist/lib/esm/setting-components/checkbox-component.mjs +6 -14
- package/dist/lib/esm/setting-components/code-highlighter-component.mjs +6 -14
- package/dist/lib/esm/setting-components/date-component.mjs +6 -14
- package/dist/lib/esm/setting-components/date-time-component.mjs +6 -14
- package/dist/lib/esm/setting-components/email-component.mjs +6 -14
- package/dist/lib/esm/setting-components/file-component.mjs +6 -14
- package/dist/lib/esm/setting-components/index.mjs +6 -14
- package/dist/lib/esm/setting-components/month-component.mjs +6 -14
- package/dist/lib/esm/setting-components/multiple-dropdown-component.mjs +6 -14
- package/dist/lib/esm/setting-components/multiple-email-component.mjs +6 -14
- package/dist/lib/esm/setting-components/multiple-file-component.mjs +6 -14
- package/dist/lib/esm/setting-components/multiple-text-component.mjs +6 -14
- package/dist/lib/esm/setting-components/number-component.mjs +6 -14
- package/dist/lib/esm/setting-components/password-component.mjs +6 -14
- package/dist/lib/esm/setting-components/setting-component-wrapper.mjs +6 -14
- package/dist/lib/esm/setting-components/telephone-component.mjs +6 -14
- package/dist/lib/esm/setting-components/text-based-component.mjs +6 -14
- package/dist/lib/esm/setting-components/time-component.mjs +6 -14
- package/dist/lib/esm/setting-components/tri-state-checkbox-component.mjs +6 -14
- package/dist/lib/esm/setting-components/typed-dropdown-component.mjs +6 -14
- package/dist/lib/esm/setting-components/typed-multiple-dropdown-component.mjs +6 -14
- package/dist/lib/esm/setting-components/typed-range-text-component.mjs +6 -14
- package/dist/lib/esm/setting-components/typed-text-component.mjs +6 -14
- package/dist/lib/esm/setting-components/url-component.mjs +6 -14
- package/dist/lib/esm/setting-components/validator-component.mjs +6 -14
- package/dist/lib/esm/setting-components/value-component-with-change-tracking.mjs +5 -13
- package/dist/lib/esm/setting-components/week-component.mjs +6 -14
- package/dist/lib/esm/setting-ex.mjs +6 -14
- package/dist/lib/esm/setting-group-ex.mjs +6 -14
- package/dist/lib/esm/status-bar-item-registrar.mjs +6 -14
- package/dist/lib/esm/templater.mjs +6 -14
- package/dist/lib/esm/transformers/duration-transformer.mjs +6 -14
- package/dist/lib/esm/transformers/index.mjs +6 -14
- package/dist/lib/esm/trusted-input.mjs +6 -14
- package/dist/lib/esm/validation.mjs +6 -14
- package/dist/lib/esm/vault-delete.mjs +6 -14
- package/dist/lib/esm/vault-transaction.mjs +6 -14
- package/dist/lib/esm/vault.mjs +6 -14
- package/dist/lib/esm/view-registrar.mjs +6 -14
- package/dist/lib/esm/workspace.mjs +6 -14
- package/package.json +69 -24
|
@@ -5,40 +5,32 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
5
5
|
|
|
6
6
|
(function () {
|
|
7
7
|
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for(
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for(
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
function ensureBrowserProcess() {
|
|
13
13
|
const browserProcess = {
|
|
14
14
|
browser: true,
|
|
15
15
|
cwd() {
|
|
16
|
-
return
|
|
16
|
+
return "/";
|
|
17
17
|
},
|
|
18
18
|
env: {},
|
|
19
|
-
platform:
|
|
19
|
+
platform: "android"
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
23
21
|
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
22
|
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
23
|
globalThis.process = browserProcess;
|
|
28
24
|
return;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (existingProcess.versions?.node) {
|
|
32
27
|
return;
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
30
|
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
31
|
existingProcessRecord[key] ??= value;
|
|
39
32
|
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
33
|
+
existingProcessRecord["browser"] = true;
|
|
42
34
|
}
|
|
43
35
|
|
|
44
36
|
function keepName($unknown) {
|
|
@@ -46,17 +38,13 @@ function keepName($unknown) {
|
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
(function initCjs() {
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
41
|
const globalThisRecord = globalThis;
|
|
51
42
|
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord[
|
|
53
|
-
globalThisRecord[
|
|
54
|
-
|
|
43
|
+
globalThisRecord["__name"] ??= keepName;
|
|
44
|
+
globalThisRecord["__extractDefault"] ??= extractDefault;
|
|
55
45
|
ensureBrowserProcess();
|
|
56
|
-
|
|
57
|
-
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
46
|
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule &&
|
|
47
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
60
48
|
}
|
|
61
49
|
})();
|
|
62
50
|
})();
|
|
@@ -65,8 +53,6 @@ function keepName($unknown) {
|
|
|
65
53
|
if (!originalRequire || originalRequire.__isPatched) {
|
|
66
54
|
return;
|
|
67
55
|
}
|
|
68
|
-
|
|
69
|
-
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
70
56
|
require = Object.assign(
|
|
71
57
|
(id) => requirePatched(id),
|
|
72
58
|
originalRequire,
|
|
@@ -74,53 +60,45 @@ function keepName($unknown) {
|
|
|
74
60
|
__isPatched: true
|
|
75
61
|
}
|
|
76
62
|
);
|
|
77
|
-
|
|
78
63
|
function extractDefault(module) {
|
|
79
|
-
return module && module.__esModule &&
|
|
64
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
80
65
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
'@codemirror/tooltip']
|
|
111
|
-
);
|
|
112
|
-
|
|
66
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
67
|
+
"@codemirror/autocomplete",
|
|
68
|
+
"@codemirror/collab",
|
|
69
|
+
"@codemirror/commands",
|
|
70
|
+
"@codemirror/language",
|
|
71
|
+
"@codemirror/lint",
|
|
72
|
+
"@codemirror/search",
|
|
73
|
+
"@codemirror/state",
|
|
74
|
+
"@codemirror/text",
|
|
75
|
+
"@codemirror/view",
|
|
76
|
+
"@lezer/common",
|
|
77
|
+
"@lezer/highlight",
|
|
78
|
+
"@lezer/lr",
|
|
79
|
+
"obsidian"
|
|
80
|
+
]);
|
|
81
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
82
|
+
"@codemirror/closebrackets",
|
|
83
|
+
"@codemirror/comment",
|
|
84
|
+
"@codemirror/fold",
|
|
85
|
+
"@codemirror/gutter",
|
|
86
|
+
"@codemirror/highlight",
|
|
87
|
+
"@codemirror/history",
|
|
88
|
+
"@codemirror/matchbrackets",
|
|
89
|
+
"@codemirror/panel",
|
|
90
|
+
"@codemirror/rangeset",
|
|
91
|
+
"@codemirror/rectangular-selection",
|
|
92
|
+
"@codemirror/stream-parser",
|
|
93
|
+
"@codemirror/tooltip"
|
|
94
|
+
]);
|
|
113
95
|
function requirePatched(id) {
|
|
114
96
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
115
97
|
return originalRequire?.(id);
|
|
116
98
|
}
|
|
117
|
-
|
|
118
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
119
99
|
if (globalThis.app.isMobile) {
|
|
120
|
-
if (id ===
|
|
121
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
100
|
+
if (id === "process" || id === "node:process") {
|
|
122
101
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
123
|
-
|
|
124
102
|
return process;
|
|
125
103
|
}
|
|
126
104
|
} else {
|
|
@@ -129,8 +107,6 @@ function keepName($unknown) {
|
|
|
129
107
|
return extractDefault(module);
|
|
130
108
|
}
|
|
131
109
|
}
|
|
132
|
-
|
|
133
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
134
110
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
135
111
|
return {};
|
|
136
112
|
}
|
|
@@ -400,4 +376,4 @@ async function renderPaginated(params) {
|
|
|
400
376
|
renderPaginatedList,
|
|
401
377
|
renderPaginatedTable
|
|
402
378
|
});
|
|
403
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBEYXRhdmlldyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBjb252ZXJ0QXN5bmNUb1N5bmMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXN5bmMnO1xuaW1wb3J0IHsgZXJyb3JUb1N0cmluZyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9lcnJvcic7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbmltcG9ydCB0eXBlIHsgRGF0YXZpZXdJbmxpbmVBcGkgYXMgRGF0YXZpZXdJbmxpbmVBcGlPcmlnaW5hbCB9IGZyb20gJy4vQHR5cGVzL2RhdGF2aWV3L2FwaS9pbmxpbmUtYXBpLmQudHMnO1xuaW1wb3J0IHR5cGUge1xuICBEYXRhQXJyYXksXG4gIERhdGF2aWV3QXBpLFxuICBTTWFya2Rvd25QYWdlXG59IGZyb20gJy4vQHR5cGVzL2RhdGF2aWV3L2luZGV4LmQudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5pbXBvcnQgdHlwZSB7IENvbWJpbmVkRnJvbnRtYXR0ZXIgfSBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcblxuaW1wb3J0IHtcbiAgZ2V0RmlsZSxcbiAgZ2V0UGF0aFxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9yZXNvdXJjZS11cmwudHMnO1xuXG4vKipcbiAqIEV4cG9ydCBEYXRlVGltZSBhbmQgTGluayB0eXBlcyBmcm9tIHRoZSBEYXRhdmlldyBBUEkuXG4gKi9cbmV4cG9ydCB0eXBlIHtcbiAgRGF0ZVRpbWUsXG4gIExpbmtcbn0gZnJvbSAnLi9AdHlwZXMvZGF0YXZpZXcvaW5kZXguZC50cyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLyoqXG4gICAqIEEge0BsaW5rIERhdGF2aWV3QXBpfSBvYmplY3QgcmVwcmVzZW50cyB0aGUgQVBJIGZvciBpbnRlcmFjdGluZyB3aXRoIERhdGF2aWV3IGluIE9ic2lkaWFuLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHZhcnMtb24tdG9wIC0tIEl0IGlzIGEgYHZhcmAgaW4gbW9kdWxlIGRlY2xhcmF0aW9uLiBFU0xpbnQgbWlzdGFrZW5seSBjb25mdXNlcyBpdCB3aXRoIGB2YXJgIGFzIGEgdmFyaWFibGUgZGVjbGFyYXRpb24uXG4gIHZhciBEYXRhdmlld0FQSTogRGF0YXZpZXdBcGkgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQSBjb21iaW5lZCBwYWdlIHR5cGUsIHdoaWNoIGluY2x1ZGVzIHRoZSBmcm9udCBtYXR0ZXIgYW5kIHRoZSBTTWFya2Rvd25QYWdlLlxuICpcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRtYXR0ZXIgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIGZyb250IG1hdHRlci5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tYmluZWRQYWdlPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4gPSBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPiAmIFNNYXJrZG93blBhZ2U7XG5cbi8qKlxuICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciB0aGUgRGF0YXZpZXcgSW5saW5lIEFQSSwgcHJvdmlkaW5nIGFkZGl0aW9uYWwgbWV0aG9kcyBmb3IgY3VzdG9tIHBhZ2UgdHlwZXMgYW5kIGFycmF5IGhhbmRsaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGF2aWV3SW5saW5lQXBpIGV4dGVuZHMgRGF0YXZpZXdJbmxpbmVBcGlPcmlnaW5hbCB7XG4gIC8qKlxuICAgKiBXcmFwcyBhbiBhcnJheSBvZiBpdGVtcyBpbnRvIGEge0BsaW5rIERhdGFBcnJheX0gb2JqZWN0LlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgaXRlbXMgaW4gdGhlIGFycmF5LlxuICAgKiBAcGFyYW0gYXJyYXkgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gd3JhcC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgRGF0YUFycmF5fSBjb250YWluaW5nIHRoZSBpdGVtcy5cbiAgICovXG4gIGFycmF5OiA8VD4oYXJyYXk6IFRbXSkgPT4gRGF0YUFycmF5PFQ+O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgcGFnZSwgd2l0aCBhbiBvcHRpb25hbCBjdXN0b20gcGFnZSB0eXBlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgcGFnZS5cbiAgICovXG4gIGN1cnJlbnQ6IDxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+KCkgPT4gQ29tYmluZWRQYWdlPEN1c3RvbUZyb250bWF0dGVyPjtcblxuICAvKipcbiAgICogUmV0cmlldmVzIHBhZ2VzIGJhc2VkIG9uIGFuIG9wdGlvbmFsIHF1ZXJ5LCB3aXRoIGFuIG9wdGlvbmFsIGN1c3RvbSBwYWdlIHR5cGUuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gQ3VzdG9tUGFnZSAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gcGFnZS4gRGVmYXVsdHMgdG8gYFNNYXJrZG93blBhZ2VgLlxuICAgKiBAcGFyYW0gcXVlcnkgLSBBbiBvcHRpb25hbCBzdHJpbmcgcXVlcnkgdG8gZmlsdGVyIHRoZSBwYWdlcy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgRGF0YUFycmF5fSBvZiBwYWdlcyBtYXRjaGluZyB0aGUgcXVlcnkuXG4gICAqL1xuICBwYWdlczogPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4ocXVlcnk/OiBzdHJpbmcpID0+IERhdGFBcnJheTxDb21iaW5lZFBhZ2U8Q3VzdG9tRnJvbnRtYXR0ZXI+PjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBhcmFncmFwaCBIVE1MIGVsZW1lbnQgd2l0aCB0aGUgcHJvdmlkZWQgdGV4dCBhbmQgb3B0aW9uYWwgRE9NIGVsZW1lbnQgb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUaGUgY29udGVudCBvZiB0aGUgcGFyYWdyYXBoLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIERPTSBlbGVtZW50IG9wdGlvbnMsIGluY2x1ZGluZyBhbiBvcHRpb25hbCBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnQuXG4gICAqL1xuICBwYXJhZ3JhcGg6IChcbiAgICB0ZXh0OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBEb21FbGVtZW50SW5mb1dpdGhDb250YWluZXJcbiAgKSA9PiBIVE1MUGFyYWdyYXBoRWxlbWVudDtcbn1cblxuLyoqXG4gKiBEb21FbGVtZW50SW5mbyB3aXRoIGFuIG9wdGlvbmFsIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IHR5cGUgRG9tRWxlbWVudEluZm9XaXRoQ29udGFpbmVyID0gQ29udGFpbmVySW5mbyAmIERvbUVsZW1lbnRJbmZvO1xuXG4vKipcbiAqIEEgY29tYmluZWQgZmlsZSB0eXBlLCB3aGljaCBpbmNsdWRlcyB0aGUgZnJvbnQgbWF0dGVyIGFuZCB0aGUgU01hcmtkb3duRmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUGFnZUZpbGUgPSBTTWFya2Rvd25QYWdlWydmaWxlJ107XG5cbi8qKlxuICogTGlzdCBvZiBwYWdlIGZpbGVzLlxuICovXG5leHBvcnQgdHlwZSBQYWdlRmlsZXMgPSBBcnJheU9yRGF0YUFycmF5PFBhZ2VGaWxlPjtcblxuaW50ZXJmYWNlIENvbnRhaW5lckluZm8ge1xuICBjb250YWluZXI/OiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBjdXJyZW50IGZpbGUgY2FjaGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNhY2hlIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkQ3VycmVudEZpbGVDYWNoZShkdjogRGF0YXZpZXdJbmxpbmVBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgYWN0aXZlV2luZG93LkRhdGF2aWV3QVBJPy5pbmRleC5yZWxvYWQoZ2V0RmlsZSh7XG4gICAgYXBwOiBkdi5hcHAsXG4gICAgcGF0aE9yRmlsZTogZHYuY3VycmVudCgpLmZpbGUucGF0aFxuICB9KSk7XG59XG5cbmNvbnN0IHBhZ2luYXRpb25Dc3MgPSBgXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiBncmF5O1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBibHVlO1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmN1cnJlbnQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5wYWdpbmF0aW9uIHNlbGVjdCxcbi5wYWdpbmF0aW9uIGlucHV0IHtcbiAgbWFyZ2luOiAwIDVweDtcbn1cbmA7XG5cbi8qKlxuICogQXJyYXkgb3IgRGF0YUFycmF5IHR5cGUuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGVsZW1lbnRzLlxuICovXG5leHBvcnQgdHlwZSBBcnJheU9yRGF0YUFycmF5PFQ+ID0gRGF0YUFycmF5PFQ+IHwgVFtdO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBpbnNlcnRDb2RlQmxvY2t9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydENvZGVCbG9ja1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY29kZSBjb250ZW50IHRvIGJlIGluc2VydGVkIGludG8gdGhlIGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZSB0byBpbnNlcnQgdGhlIGNvZGUgYmxvY2sgaW50by5cbiAgICovXG4gIHJlYWRvbmx5IGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIGlkZW50aWZpZXIgZm9yIHRoZSBjb2RlIGJsb2NrLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVuZGVySWZyYW1lfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJJZnJhbWVQYXJhbXMge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBIGhlaWdodCBvZiB0aGUgaWZyYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJzYwMHB4J2BcbiAgICovXG4gIHJlYWRvbmx5IGhlaWdodD86IHN0cmluZztcblxuICAvKipcbiAgICogQSByZWxhdGl2ZSBwYXRoIHRvIHRoZSByZXNvdXJjZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlmcmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlbGF0aXZlUGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSB3aWR0aCBvZiB0aGUgaWZyYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJzEwMCUnYFxuICAgKi9cbiAgcmVhZG9ubHkgd2lkdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbmRlclBhZ2luYXRlZExpc3R9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBsaXN0IGl0ZW1zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclBhZ2luYXRlZExpc3RQYXJhbXM8VD4ge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYFsxMCwgMjAsIDUwLCAxMDBdYFxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gICAqL1xuICByZWFkb25seSByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZW5kZXJQYWdpbmF0ZWR9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyB0byBwYWdpbmF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRQYXJhbXM8VD4ge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYFsxMCwgMjAsIDUwLCAxMDBdYFxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IHRoZSBwYWdpbmF0ZWQgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHJvd3NGb3JPbmVQYWdlIC0gVGhlIHJvd3MgdG8gcmVuZGVyLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbnRlbnQgaXMgcmVuZGVyZWQuXG4gICAqL1xuICByZWFkb25seSByZW5kZXJlcjogKHJvd3NGb3JPbmVQYWdlOiBBcnJheU9yRGF0YUFycmF5PFQ+KSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBSb3dzIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVuZGVyUGFnaW5hdGVkVGFibGV9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB0YWJsZSByb3cgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRUYWJsZVBhcmFtczxUPiB7XG4gIC8qKlxuICAgKiBBIHtAbGluayBEYXRhdmlld0lubGluZUFwaX0gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIEEgaGVhZGVycyBvZiB0aGUgdGFibGUuXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbMTAsIDIwLCA1MCwgMTAwXWBcbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZU9wdGlvbnM/OiBudW1iZXJbXTtcblxuICAvKipcbiAgICogUm93cyBvZiB0aGUgdGFibGUgdG8gcGFnaW5hdGUuXG4gICAqL1xuICByZWFkb25seSByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+O1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjcmVhdGVQYWdlTGlua30uXG4gKi9cbmludGVyZmFjZSBDcmVhdGVQYWdlTGlua1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcGFnZSBudW1iZXIgdGhlIGxpbmsgcG9pbnRzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VycmVudFBhZ2VOdW1iZXI6IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbGluayBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBmb3IgdGhlIGxpbmsuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29udGVudCB1c2luZyB0aGUgcHJvdmlkZWQgcmVuZGVyZXIgZnVuY3Rpb24gaW4gYSB0ZW1wb3JhcnkgY29udGFpbmVyLFxuICogYW5kIHRoZW4gcmV0dXJucyB0aGUgY29udGFpbmVyLlxuICpcbiAqIEBwYXJhbSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSByZW5kZXJlciAtIFRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgcmVuZGVyaW5nIHRoZSBjb250ZW50LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgSFRNTCBwYXJhZ3JhcGggZWxlbWVudFxuICogdGhhdCB3YXMgdXNlZCBhcyB0aGUgdGVtcG9yYXJ5IGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlbmRlcmVkQ29udGFpbmVyKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcmVuZGVyZXI6ICgpID0+IFByb21pc2FibGU8dm9pZD4pOiBQcm9taXNlPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiB7XG4gIGNvbnN0IG9sZENvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcbiAgY29uc3QgdGVtcG9yYXJ5Q29udGFpbmVyID0gZHYucGFyYWdyYXBoKCcnKTtcbiAgZHYuY29udGFpbmVyID0gdGVtcG9yYXJ5Q29udGFpbmVyO1xuICBkdi5jb250YWluZXIuZW1wdHkoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHJlbmRlcmVyKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZHYucGFyYWdyYXBoKGBcdTI3NEMke2Vycm9yVG9TdHJpbmcoZXJyb3IpfWApO1xuICB9IGZpbmFsbHkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF0b21pYy11cGRhdGVzIC0tIFllcywgaXQgaXMgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24sIGJ1dCBJIGRvbid0IGFuIGVsZWdhbnQgd2F5IHRvIGZpeCBpdC5cbiAgICBkdi5jb250YWluZXIgPSBvbGRDb250YWluZXI7XG4gICAgdGVtcG9yYXJ5Q29udGFpbmVyLnJlbW92ZSgpO1xuICB9XG5cbiAgcmV0dXJuIHRlbXBvcmFyeUNvbnRhaW5lcjtcbn1cblxuLyoqXG4gKiBJbnNlcnRzIGEgY29kZSBibG9jayBpbnRvIHRoZSBzcGVjaWZpZWQgRGF0YXZpZXcgaW5zdGFuY2UgdXNpbmcgdGhlIHByb3ZpZGVkIGxhbmd1YWdlIGFuZCBjb2RlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgaW5zZXJ0aW5nIHRoZSBjb2RlIGJsb2NrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0Q29kZUJsb2NrKHBhcmFtczogSW5zZXJ0Q29kZUJsb2NrUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBjb2RlLFxuICAgIGR2LFxuICAgIGxhbmd1YWdlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IE1JTl9GRU5DRV9MRU5HVEggPSAzO1xuICBjb25zdCBmZW5jZVJlZ0V4cCA9IG5ldyBSZWdFeHAoYF5cXGB7JHtTdHJpbmcoTUlOX0ZFTkNFX0xFTkdUSCl9LH1gLCAnZ20nKTtcbiAgY29uc3QgZmVuY2VNYXRjaGVzID0gY29kZS5tYXRjaEFsbChmZW5jZVJlZ0V4cCk7XG4gIGNvbnN0IGZlbmNlTGVuZ3RocyA9IFsuLi5mZW5jZU1hdGNoZXNdLm1hcCgoZmVuY2VNYXRjaCkgPT4gZmVuY2VNYXRjaFswXS5sZW5ndGgpO1xuICBjb25zdCBtYXhGZW5jZUxlbmd0aCA9IE1hdGgubWF4KDAsIC4uLmZlbmNlTGVuZ3Rocyk7XG4gIGNvbnN0IHJlc3VsdEZlbmNlTGVuZ3RoID0gTWF0aC5tYXgoTUlOX0ZFTkNFX0xFTkdUSCwgbWF4RmVuY2VMZW5ndGggKyAxKTtcbiAgY29uc3QgcmVzdWx0RmVuY2UgPSAnYCcucmVwZWF0KHJlc3VsdEZlbmNlTGVuZ3RoKTtcblxuICBkdi5wYXJhZ3JhcGgoYCR7cmVzdWx0RmVuY2V9JHtsYW5ndWFnZX1cbiR7Y29kZX1cbiR7cmVzdWx0RmVuY2V9YCk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhbiBpZnJhbWUgaW4gdGhlIERhdGF2aWV3IGNvbnRhaW5lciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVsYXRpdmUgcGF0aCwgd2lkdGgsIGFuZCBoZWlnaHQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW5kZXJpbmcgdGhlIGlmcmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcklmcmFtZShwYXJhbXM6IFJlbmRlcklmcmFtZVBhcmFtcyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaGVpZ2h0ID0gJzYwMHB4JyxcbiAgICByZWxhdGl2ZVBhdGhPckZpbGUsXG4gICAgd2lkdGggPSAnMTAwJSdcbiAgfSA9IHBhcmFtcztcbiAgZHYuZWwoJ2lmcmFtZScsICcnLCB7XG4gICAgYXR0cjoge1xuICAgICAgaGVpZ2h0LFxuICAgICAgc3JjOiByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsKHtcbiAgICAgICAgYXBwOiBkdi5hcHAsXG4gICAgICAgIG5vdGVQYXRoOiBkdi5jdXJyZW50KCkuZmlsZS5wYXRoLFxuICAgICAgICByZWxhdGl2ZVBhdGg6IGdldFBhdGgoZHYuYXBwLCByZWxhdGl2ZVBhdGhPckZpbGUpXG4gICAgICB9KSxcbiAgICAgIHdpZHRoXG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGEgcGFnaW5hdGVkIGxpc3QgdXNpbmcgdGhlIHByb3ZpZGVkIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGl0ZW1zIGluIHRoZSBsaXN0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgbGlzdC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxpc3QgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRMaXN0PFQ+KHBhcmFtczogUmVuZGVyUGFnaW5hdGVkTGlzdFBhcmFtczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnMgLS0gRXh0cmFjdGluZyBtYWdpYyBudW1iZXIgYXMgYSBjb25zdGFudCB3b3VsZCBiZSByZXBldGl0aXZlLCBhcyB0aGUgdmFsdWUgaXMgdXNlZCBvbmx5IG9uY2UgYW5kIGl0cyBuYW1lIHdvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0eS5cbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gcGFyYW1zO1xuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWQoe1xuICAgIGR2LFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgcmVuZGVyZXI6IGFzeW5jIChyb3dzRm9yT25lUGFnZTogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYubGlzdChyb3dzRm9yT25lUGFnZSk7XG4gICAgfSxcbiAgICByb3dzXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBwYWdpbmF0ZWQgdGFibGUgdXNpbmcgdGhlIHByb3ZpZGVkIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGl0ZW1zIGluIHRoZSB0YWJsZSByb3dzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgdGFibGUuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0YWJsZSBpcyByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2luYXRlZFRhYmxlPFQgZXh0ZW5kcyB1bmtub3duW10+KHBhcmFtczogUmVuZGVyUGFnaW5hdGVkVGFibGVQYXJhbXM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGhlYWRlcnMsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnMgLS0gRXh0cmFjdGluZyBtYWdpYyBudW1iZXIgYXMgYSBjb25zdGFudCB3b3VsZCBiZSByZXBldGl0aXZlLCBhcyB0aGUgdmFsdWUgaXMgdXNlZCBvbmx5IG9uY2UgYW5kIGl0cyBuYW1lIHdvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0eS5cbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gcGFyYW1zO1xuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWQoe1xuICAgIGR2LFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgcmVuZGVyZXI6IGFzeW5jIChyb3dzRm9yT25lUGFnZTogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYudGFibGUoaGVhZGVycywgcm93c0Zvck9uZVBhZ2UpO1xuICAgIH0sXG4gICAgcm93c1xuICB9KTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcmVuZGVyIHBhZ2luYXRlZCBjb250ZW50IHVzaW5nIHRoZSBzcGVjaWZpZWQgcmVuZGVyZXIuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRlZCBjb250ZW50LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBpcyByZW5kZXJlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkPFQ+KHBhcmFtczogUmVuZGVyUGFnaW5hdGVkUGFyYW1zPFQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IFNFQ09ORF9QQUdFX05VTUJFUiA9IDI7XG4gIGNvbnN0IE1PUkVfUEFHRV9OVU1CRVIgPSAzO1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnMgLS0gRXh0cmFjdGluZyBtYWdpYyBudW1iZXIgYXMgYSBjb25zdGFudCB3b3VsZCBiZSByZXBldGl0aXZlLCBhcyB0aGUgdmFsdWUgaXMgdXNlZCBvbmx5IG9uY2UgYW5kIGl0cyBuYW1lIHdvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0eS5cbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gcGFyYW1zO1xuICBpZiAocm93cy5sZW5ndGggPT09IDApIHtcbiAgICBkdi5wYXJhZ3JhcGgoJ05vIGl0ZW1zIGZvdW5kJyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcbiAgbGV0IGl0ZW1zUGVyUGFnZSA9IGVuc3VyZU5vbk51bGxhYmxlKGl0ZW1zUGVyUGFnZU9wdGlvbnNbMF0sICdJdGVtcyBwZXIgcGFnZSBvcHRpb25zIGFyZSBlbXB0eScpO1xuICBsZXQgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gIGF3YWl0IHJlbmRlclBhZ2UoMSk7XG5cbiAgZnVuY3Rpb24gY3JlYXRlUGFnaW5hdGlvbkNvbnRyb2xzKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2luYXRpb25EaXYgPSBjb250YWluZXIuY3JlYXRlRGl2KHsgY2xzOiAncGFnaW5hdGlvbicgfSk7XG4gICAgY29uc3QgcGFnaW5hdGlvblJvdzFEaXYgPSBwYWdpbmF0aW9uRGl2LmNyZWF0ZURpdigpO1xuXG4gICAgY3JlYXRlUGFnZUxpbmsoeyBjdXJyZW50UGFnZU51bWJlcjogMSwgZGlzYWJsZWQ6IHBhZ2VOdW1iZXIgPT09IDEsIHRleHQ6ICdGaXJzdCcgfSk7XG4gICAgY3JlYXRlUGFnZUxpbmsoeyBjdXJyZW50UGFnZU51bWJlcjogcGFnZU51bWJlciAtIDEsIGRpc2FibGVkOiBwYWdlTnVtYmVyID09PSAxLCB0ZXh0OiAnUHJldicgfSk7XG5cbiAgICBpZiAocGFnZU51bWJlciA+IE1PUkVfUEFHRV9OVU1CRVIpIHtcbiAgICAgIHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZVNwYW4oeyB0ZXh0OiAnLi4uJyB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IE1hdGgubWF4KDEsIHBhZ2VOdW1iZXIgLSBTRUNPTkRfUEFHRV9OVU1CRVIpOyBpbmRleCA8PSBNYXRoLm1pbih0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyICsgU0VDT05EX1BBR0VfTlVNQkVSKTsgaW5kZXgrKykge1xuICAgICAgY29uc3QgcGFnZUxpbmsgPSBjcmVhdGVQYWdlTGluayh7IGN1cnJlbnRQYWdlTnVtYmVyOiBpbmRleCwgZGlzYWJsZWQ6IGluZGV4ID09PSBwYWdlTnVtYmVyLCB0ZXh0OiBTdHJpbmcoaW5kZXgpIH0pO1xuICAgICAgaWYgKGluZGV4ID09PSBwYWdlTnVtYmVyKSB7XG4gICAgICAgIHBhZ2VMaW5rLmFkZENsYXNzKCdjdXJyZW50Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhZ2VOdW1iZXIgPCB0b3RhbFBhZ2VzIC0gU0VDT05EX1BBR0VfTlVNQkVSKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVTcGFuKHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnZUxpbmsoeyBjdXJyZW50UGFnZU51bWJlcjogcGFnZU51bWJlciArIDEsIGRpc2FibGVkOiBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzLCB0ZXh0OiAnTmV4dCcgfSk7XG4gICAgY3JlYXRlUGFnZUxpbmsoeyBjdXJyZW50UGFnZU51bWJlcjogdG90YWxQYWdlcywgZGlzYWJsZWQ6IHBhZ2VOdW1iZXIgPT09IHRvdGFsUGFnZXMsIHRleHQ6ICdMYXN0JyB9KTtcblxuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cyRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZVNwYW4oeyB0ZXh0OiBgICR7dCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmRhdGF2aWV3Lml0ZW1zUGVyUGFnZSl9IGAgfSk7XG5cbiAgICBjb25zdCBpdGVtc1BlclBhZ2VTZWxlY3QgPSBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbCgnc2VsZWN0Jyk7XG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgaXRlbXNQZXJQYWdlT3B0aW9ucykge1xuICAgICAgaXRlbXNQZXJQYWdlU2VsZWN0LmNyZWF0ZUVsKCdvcHRpb24nLCB7IHRleHQ6IFN0cmluZyhvcHRpb24pLCB2YWx1ZTogU3RyaW5nKG9wdGlvbikgfSk7XG4gICAgfVxuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC52YWx1ZSA9IFN0cmluZyhpdGVtc1BlclBhZ2UpO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NoYW5nZScsXG4gICAgICBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBpdGVtc1BlclBhZ2UgPSBwYXJzZUludChpdGVtc1BlclBhZ2VTZWxlY3QudmFsdWUsIDEwKTtcbiAgICAgICAgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gICAgICAgIGF3YWl0IHJlbmRlclBhZ2UoMSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVTcGFuKHsgdGV4dDogYCAke3QoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5kYXRhdmlldy5qdW1wVG9QYWdlKX0gYCB9KTtcblxuICAgIGNvbnN0IGp1bXBUb1BhZ2VJbnB1dCA9IHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKCdpbnB1dCcsIHsgYXR0cjogeyBtYXg6IHRvdGFsUGFnZXMsIG1pbjogMSB9LCB0eXBlOiAnbnVtYmVyJyB9KTtcbiAgICBqdW1wVG9QYWdlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChqdW1wVG9QYWdlSW5wdXQudmFsdWUsIDEwKTtcbiAgICAgICAgaWYgKHBhZ2UgPj0gMSAmJiBwYWdlIDw9IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICBhd2FpdCByZW5kZXJQYWdlKHBhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVTcGFuKHsgdGV4dDogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmRhdGF2aWV3LnBhZ2VIZWFkZXIsIHsgcGFnZU51bWJlciwgdG90YWxJdGVtczogcm93cy5sZW5ndGgsIHRvdGFsUGFnZXMgfSkgfSk7XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVQYWdlTGluayhwYXJhbXMyOiBDcmVhdGVQYWdlTGlua1BhcmFtcyk6IEhUTUxBbmNob3JFbGVtZW50IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY3VycmVudFBhZ2VOdW1iZXIsXG4gICAgICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgICAgIHRleHRcbiAgICAgIH0gPSBwYXJhbXMyO1xuICAgICAgY29uc3QgbGluayA9IHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKCdhJywgeyBjbHM6ICdwYWdlLWxpbmsnLCBocmVmOiBgIyR7U3RyaW5nKGN1cnJlbnRQYWdlTnVtYmVyKX1gLCB0ZXh0IH0pO1xuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIGxpbmsuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL3ByZWZlci1hZGQtZXZlbnQtbGlzdGVuZXIgLS0gVGhlIGhhbmRsZXIgaXMgYXNzaWduZWQgdG8gYG9uY2xpY2tgIHNvIGl0IHN0YXlzIHJlYWRhYmxlIGJhY2sgb2ZmIHRoZSBlbGVtZW50LCB3aGljaCBpcyBob3cgaXQgaXMgaW52b2tlZCBpbiB0ZXN0cyBhbmQgaG93IGEgbGF0ZXIgYXNzaWdubWVudCBjYW4gcmVwbGFjZSBpdC5cbiAgICAgICAgbGluay5vbmNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL3ByZWZlci1hZGQtZXZlbnQtbGlzdGVuZXIgLS0gVGhlIGhhbmRsZXIgaXMgYXNzaWduZWQgdG8gYG9uY2xpY2tgIHNvIGl0IHN0YXlzIHJlYWRhYmxlIGJhY2sgb2ZmIHRoZSBlbGVtZW50LCB3aGljaCBpcyBob3cgaXQgaXMgaW52b2tlZCBpbiB0ZXN0cyBhbmQgaG93IGEgbGF0ZXIgYXNzaWdubWVudCBjYW4gcmVwbGFjZSBpdC5cbiAgICAgICAgbGluay5vbmNsaWNrID0gY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYXdhaXQgcmVuZGVyUGFnZShjdXJyZW50UGFnZU51bWJlcik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpbms7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnZShwYWdlTnVtYmVyOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb250YWluZXIuZW1wdHkoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1mb3JiaWRkZW4tZWxlbWVudHMgLS0gV2UgbmVlZCB0byBjcmVhdGUgYSBzdHlsZSBlbGVtZW50IHRvIGFwcGx5IHRoZSBwYWdpbmF0aW9uIENTUy5cbiAgICBjb250YWluZXIuY3JlYXRlRWwoJ3N0eWxlJywgeyB0ZXh0OiBwYWdpbmF0aW9uQ3NzIH0pO1xuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChwYWdlTnVtYmVyIC0gMSkgKiBpdGVtc1BlclBhZ2U7XG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IHJvd3NGb3JDdXJyZW50UGFnZSA9IHJvd3Muc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuXG4gICAgY29uc3Qgb2xkQ29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuXG4gICAgZHYuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwYXJhbXMucmVuZGVyZXIocm93c0ZvckN1cnJlbnRQYWdlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgZHYucGFyYWdyYXBoKGBcdTI3NEMke2Vycm9yVG9TdHJpbmcoZXJyb3IpfWApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hdG9taWMtdXBkYXRlcyAtLSBZZXMsIGl0IGlzIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uLCBidXQgSSBkb24ndCBhbiBlbGVnYW50IHdheSB0byBmaXggaXQuXG4gICAgICBkdi5jb250YWluZXIgPSBvbGRDb250YWluZXI7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnaW5hdGlvbkNvbnRyb2xzKHBhZ2VOdW1iZXIpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
379
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RhdGF2aWV3LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBEYXRhdmlldyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBjb252ZXJ0QXN5bmNUb1N5bmMgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXN5bmMnO1xuaW1wb3J0IHsgZXJyb3JUb1N0cmluZyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9lcnJvcic7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbmltcG9ydCB0eXBlIHsgRGF0YXZpZXdJbmxpbmVBcGkgYXMgRGF0YXZpZXdJbmxpbmVBcGlPcmlnaW5hbCB9IGZyb20gJy4vQHR5cGVzL2RhdGF2aWV3L2FwaS9pbmxpbmUtYXBpLmQudHMnO1xuaW1wb3J0IHR5cGUge1xuICBEYXRhQXJyYXksXG4gIERhdGF2aWV3QXBpLFxuICBTTWFya2Rvd25QYWdlXG59IGZyb20gJy4vQHR5cGVzL2RhdGF2aWV3L2luZGV4LmQudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9maWxlLXN5c3RlbS50cyc7XG5pbXBvcnQgdHlwZSB7IENvbWJpbmVkRnJvbnRtYXR0ZXIgfSBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcblxuaW1wb3J0IHtcbiAgZ2V0RmlsZSxcbiAgZ2V0UGF0aFxufSBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmltcG9ydCB7IHQgfSBmcm9tICcuL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9yZXNvdXJjZS11cmwudHMnO1xuXG4vKipcbiAqIEV4cG9ydCBEYXRlVGltZSBhbmQgTGluayB0eXBlcyBmcm9tIHRoZSBEYXRhdmlldyBBUEkuXG4gKi9cbmV4cG9ydCB0eXBlIHtcbiAgRGF0ZVRpbWUsXG4gIExpbmtcbn0gZnJvbSAnLi9AdHlwZXMvZGF0YXZpZXcvaW5kZXguZC50cyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLyoqXG4gICAqIEEge0BsaW5rIERhdGF2aWV3QXBpfSBvYmplY3QgcmVwcmVzZW50cyB0aGUgQVBJIGZvciBpbnRlcmFjdGluZyB3aXRoIERhdGF2aWV3IGluIE9ic2lkaWFuLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHZhcnMtb24tdG9wIC0tIEl0IGlzIGEgYHZhcmAgaW4gbW9kdWxlIGRlY2xhcmF0aW9uLiBFU0xpbnQgbWlzdGFrZW5seSBjb25mdXNlcyBpdCB3aXRoIGB2YXJgIGFzIGEgdmFyaWFibGUgZGVjbGFyYXRpb24uXG4gIHZhciBEYXRhdmlld0FQSTogRGF0YXZpZXdBcGkgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQSBjb21iaW5lZCBwYWdlIHR5cGUsIHdoaWNoIGluY2x1ZGVzIHRoZSBmcm9udCBtYXR0ZXIgYW5kIHRoZSBTTWFya2Rvd25QYWdlLlxuICpcbiAqIEB0eXBlUGFyYW0gQ3VzdG9tRnJvbnRtYXR0ZXIgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIGZyb250IG1hdHRlci5cbiAqL1xuZXhwb3J0IHR5cGUgQ29tYmluZWRQYWdlPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4gPSBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPiAmIFNNYXJrZG93blBhZ2U7XG5cbi8qKlxuICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciB0aGUgRGF0YXZpZXcgSW5saW5lIEFQSSwgcHJvdmlkaW5nIGFkZGl0aW9uYWwgbWV0aG9kcyBmb3IgY3VzdG9tIHBhZ2UgdHlwZXMgYW5kIGFycmF5IGhhbmRsaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGF2aWV3SW5saW5lQXBpIGV4dGVuZHMgRGF0YXZpZXdJbmxpbmVBcGlPcmlnaW5hbCB7XG4gIC8qKlxuICAgKiBXcmFwcyBhbiBhcnJheSBvZiBpdGVtcyBpbnRvIGEge0BsaW5rIERhdGFBcnJheX0gb2JqZWN0LlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgaXRlbXMgaW4gdGhlIGFycmF5LlxuICAgKiBAcGFyYW0gYXJyYXkgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gd3JhcC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgRGF0YUFycmF5fSBjb250YWluaW5nIHRoZSBpdGVtcy5cbiAgICovXG4gIGFycmF5OiA8VD4oYXJyYXk6IFRbXSkgPT4gRGF0YUFycmF5PFQ+O1xuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgcGFnZSwgd2l0aCBhbiBvcHRpb25hbCBjdXN0b20gcGFnZSB0eXBlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEN1c3RvbVBhZ2UgLSBUaGUgdHlwZSBvZiB0aGUgY3VzdG9tIHBhZ2UuIERlZmF1bHRzIHRvIGBTTWFya2Rvd25QYWdlYC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgcGFnZS5cbiAgICovXG4gIGN1cnJlbnQ6IDxDdXN0b21Gcm9udG1hdHRlciA9IHVua25vd24+KCkgPT4gQ29tYmluZWRQYWdlPEN1c3RvbUZyb250bWF0dGVyPjtcblxuICAvKipcbiAgICogUmV0cmlldmVzIHBhZ2VzIGJhc2VkIG9uIGFuIG9wdGlvbmFsIHF1ZXJ5LCB3aXRoIGFuIG9wdGlvbmFsIGN1c3RvbSBwYWdlIHR5cGUuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gQ3VzdG9tUGFnZSAtIFRoZSB0eXBlIG9mIHRoZSBjdXN0b20gcGFnZS4gRGVmYXVsdHMgdG8gYFNNYXJrZG93blBhZ2VgLlxuICAgKiBAcGFyYW0gcXVlcnkgLSBBbiBvcHRpb25hbCBzdHJpbmcgcXVlcnkgdG8gZmlsdGVyIHRoZSBwYWdlcy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgRGF0YUFycmF5fSBvZiBwYWdlcyBtYXRjaGluZyB0aGUgcXVlcnkuXG4gICAqL1xuICBwYWdlczogPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4ocXVlcnk/OiBzdHJpbmcpID0+IERhdGFBcnJheTxDb21iaW5lZFBhZ2U8Q3VzdG9tRnJvbnRtYXR0ZXI+PjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBhcmFncmFwaCBIVE1MIGVsZW1lbnQgd2l0aCB0aGUgcHJvdmlkZWQgdGV4dCBhbmQgb3B0aW9uYWwgRE9NIGVsZW1lbnQgb3B0aW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHRleHQgLSBUaGUgY29udGVudCBvZiB0aGUgcGFyYWdyYXBoLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIERPTSBlbGVtZW50IG9wdGlvbnMsIGluY2x1ZGluZyBhbiBvcHRpb25hbCBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjcmVhdGVkIEhUTUwgcGFyYWdyYXBoIGVsZW1lbnQuXG4gICAqL1xuICBwYXJhZ3JhcGg6IChcbiAgICB0ZXh0OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBEb21FbGVtZW50SW5mb1dpdGhDb250YWluZXJcbiAgKSA9PiBIVE1MUGFyYWdyYXBoRWxlbWVudDtcbn1cblxuLyoqXG4gKiBEb21FbGVtZW50SW5mbyB3aXRoIGFuIG9wdGlvbmFsIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IHR5cGUgRG9tRWxlbWVudEluZm9XaXRoQ29udGFpbmVyID0gQ29udGFpbmVySW5mbyAmIERvbUVsZW1lbnRJbmZvO1xuXG4vKipcbiAqIEEgY29tYmluZWQgZmlsZSB0eXBlLCB3aGljaCBpbmNsdWRlcyB0aGUgZnJvbnQgbWF0dGVyIGFuZCB0aGUgU01hcmtkb3duRmlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgUGFnZUZpbGUgPSBTTWFya2Rvd25QYWdlWydmaWxlJ107XG5cbi8qKlxuICogTGlzdCBvZiBwYWdlIGZpbGVzLlxuICovXG5leHBvcnQgdHlwZSBQYWdlRmlsZXMgPSBBcnJheU9yRGF0YUFycmF5PFBhZ2VGaWxlPjtcblxuaW50ZXJmYWNlIENvbnRhaW5lckluZm8ge1xuICBjb250YWluZXI/OiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBSZWxvYWRzIHRoZSBjdXJyZW50IGZpbGUgY2FjaGUgdXNpbmcgdGhlIERhdGF2aWV3IEFQSS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNhY2hlIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkQ3VycmVudEZpbGVDYWNoZShkdjogRGF0YXZpZXdJbmxpbmVBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgYWN0aXZlV2luZG93LkRhdGF2aWV3QVBJPy5pbmRleC5yZWxvYWQoZ2V0RmlsZSh7XG4gICAgYXBwOiBkdi5hcHAsXG4gICAgcGF0aE9yRmlsZTogZHYuY3VycmVudCgpLmZpbGUucGF0aFxuICB9KSk7XG59XG5cbmNvbnN0IHBhZ2luYXRpb25Dc3MgPSBgXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGNvbG9yOiBncmF5O1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBibHVlO1xufVxuXG4ucGFnaW5hdGlvbiAucGFnZS1saW5rOmhvdmVyOm5vdCguZGlzYWJsZWQpIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4ucGFnaW5hdGlvbiAucGFnZS1saW5rLmN1cnJlbnQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5wYWdpbmF0aW9uIHNlbGVjdCxcbi5wYWdpbmF0aW9uIGlucHV0IHtcbiAgbWFyZ2luOiAwIDVweDtcbn1cbmA7XG5cbi8qKlxuICogQXJyYXkgb3IgRGF0YUFycmF5IHR5cGUuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGVsZW1lbnRzLlxuICovXG5leHBvcnQgdHlwZSBBcnJheU9yRGF0YUFycmF5PFQ+ID0gRGF0YUFycmF5PFQ+IHwgVFtdO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBpbnNlcnRDb2RlQmxvY2t9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydENvZGVCbG9ja1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY29kZSBjb250ZW50IHRvIGJlIGluc2VydGVkIGludG8gdGhlIGNvZGUgYmxvY2suXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZSB0byBpbnNlcnQgdGhlIGNvZGUgYmxvY2sgaW50by5cbiAgICovXG4gIHJlYWRvbmx5IGR2OiBEYXRhdmlld0lubGluZUFwaTtcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIGlkZW50aWZpZXIgZm9yIHRoZSBjb2RlIGJsb2NrLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVuZGVySWZyYW1lfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJJZnJhbWVQYXJhbXMge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBIGhlaWdodCBvZiB0aGUgaWZyYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJzYwMHB4J2BcbiAgICovXG4gIHJlYWRvbmx5IGhlaWdodD86IHN0cmluZztcblxuICAvKipcbiAgICogQSByZWxhdGl2ZSBwYXRoIHRvIHRoZSByZXNvdXJjZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlmcmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IHJlbGF0aXZlUGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSB3aWR0aCBvZiB0aGUgaWZyYW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJzEwMCUnYFxuICAgKi9cbiAgcmVhZG9ubHkgd2lkdGg/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbmRlclBhZ2luYXRlZExpc3R9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBsaXN0IGl0ZW1zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclBhZ2luYXRlZExpc3RQYXJhbXM8VD4ge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYFsxMCwgMjAsIDUwLCAxMDBdYFxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gICAqL1xuICByZWFkb25seSByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZW5kZXJQYWdpbmF0ZWR9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyB0byBwYWdpbmF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRQYXJhbXM8VD4ge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciBpdGVtcyBwZXIgcGFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYFsxMCwgMjAsIDUwLCAxMDBdYFxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlT3B0aW9ucz86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IHRoZSBwYWdpbmF0ZWQgY29udGVudC5cbiAgICpcbiAgICogQHBhcmFtIHJvd3NGb3JPbmVQYWdlIC0gVGhlIHJvd3MgdG8gcmVuZGVyLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbnRlbnQgaXMgcmVuZGVyZWQuXG4gICAqL1xuICByZWFkb25seSByZW5kZXJlcjogKHJvd3NGb3JPbmVQYWdlOiBBcnJheU9yRGF0YUFycmF5PFQ+KSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBSb3dzIHRvIHBhZ2luYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm93czogQXJyYXlPckRhdGFBcnJheTxUPjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVuZGVyUGFnaW5hdGVkVGFibGV9LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB0YWJsZSByb3cgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJQYWdpbmF0ZWRUYWJsZVBhcmFtczxUPiB7XG4gIC8qKlxuICAgKiBBIHtAbGluayBEYXRhdmlld0lubGluZUFwaX0gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIEEgaGVhZGVycyBvZiB0aGUgdGFibGUuXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbMTAsIDIwLCA1MCwgMTAwXWBcbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZU9wdGlvbnM/OiBudW1iZXJbXTtcblxuICAvKipcbiAgICogUm93cyBvZiB0aGUgdGFibGUgdG8gcGFnaW5hdGUuXG4gICAqL1xuICByZWFkb25seSByb3dzOiBBcnJheU9yRGF0YUFycmF5PFQ+O1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjcmVhdGVQYWdlTGlua30uXG4gKi9cbmludGVyZmFjZSBDcmVhdGVQYWdlTGlua1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcGFnZSBudW1iZXIgdGhlIGxpbmsgcG9pbnRzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VycmVudFBhZ2VOdW1iZXI6IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbGluayBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHRleHQgdG8gZGlzcGxheSBmb3IgdGhlIGxpbmsuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29udGVudCB1c2luZyB0aGUgcHJvdmlkZWQgcmVuZGVyZXIgZnVuY3Rpb24gaW4gYSB0ZW1wb3JhcnkgY29udGFpbmVyLFxuICogYW5kIHRoZW4gcmV0dXJucyB0aGUgY29udGFpbmVyLlxuICpcbiAqIEBwYXJhbSBkdiAtIFRoZSBEYXRhdmlld0lubGluZUFwaSBpbnN0YW5jZS5cbiAqIEBwYXJhbSByZW5kZXJlciAtIFRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3IgcmVuZGVyaW5nIHRoZSBjb250ZW50LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgSFRNTCBwYXJhZ3JhcGggZWxlbWVudFxuICogdGhhdCB3YXMgdXNlZCBhcyB0aGUgdGVtcG9yYXJ5IGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlbmRlcmVkQ29udGFpbmVyKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcmVuZGVyZXI6ICgpID0+IFByb21pc2FibGU8dm9pZD4pOiBQcm9taXNlPEhUTUxQYXJhZ3JhcGhFbGVtZW50PiB7XG4gIGNvbnN0IG9sZENvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcbiAgY29uc3QgdGVtcG9yYXJ5Q29udGFpbmVyID0gZHYucGFyYWdyYXBoKCcnKTtcbiAgZHYuY29udGFpbmVyID0gdGVtcG9yYXJ5Q29udGFpbmVyO1xuICBkdi5jb250YWluZXIuZW1wdHkoKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHJlbmRlcmVyKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZHYucGFyYWdyYXBoKGBcdTI3NEMke2Vycm9yVG9TdHJpbmcoZXJyb3IpfWApO1xuICB9IGZpbmFsbHkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZXF1aXJlLWF0b21pYy11cGRhdGVzIC0tIFllcywgaXQgaXMgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24sIGJ1dCBJIGRvbid0IGFuIGVsZWdhbnQgd2F5IHRvIGZpeCBpdC5cbiAgICBkdi5jb250YWluZXIgPSBvbGRDb250YWluZXI7XG4gICAgdGVtcG9yYXJ5Q29udGFpbmVyLnJlbW92ZSgpO1xuICB9XG5cbiAgcmV0dXJuIHRlbXBvcmFyeUNvbnRhaW5lcjtcbn1cblxuLyoqXG4gKiBJbnNlcnRzIGEgY29kZSBibG9jayBpbnRvIHRoZSBzcGVjaWZpZWQgRGF0YXZpZXcgaW5zdGFuY2UgdXNpbmcgdGhlIHByb3ZpZGVkIGxhbmd1YWdlIGFuZCBjb2RlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgaW5zZXJ0aW5nIHRoZSBjb2RlIGJsb2NrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0Q29kZUJsb2NrKHBhcmFtczogSW5zZXJ0Q29kZUJsb2NrUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBjb2RlLFxuICAgIGR2LFxuICAgIGxhbmd1YWdlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IE1JTl9GRU5DRV9MRU5HVEggPSAzO1xuICBjb25zdCBmZW5jZVJlZ0V4cCA9IG5ldyBSZWdFeHAoYF5cXGB7JHtTdHJpbmcoTUlOX0ZFTkNFX0xFTkdUSCl9LH1gLCAnZ20nKTtcbiAgY29uc3QgZmVuY2VNYXRjaGVzID0gY29kZS5tYXRjaEFsbChmZW5jZVJlZ0V4cCk7XG4gIGNvbnN0IGZlbmNlTGVuZ3RocyA9IFsuLi5mZW5jZU1hdGNoZXNdLm1hcCgoZmVuY2VNYXRjaCkgPT4gZmVuY2VNYXRjaFswXS5sZW5ndGgpO1xuICBjb25zdCBtYXhGZW5jZUxlbmd0aCA9IE1hdGgubWF4KDAsIC4uLmZlbmNlTGVuZ3Rocyk7XG4gIGNvbnN0IHJlc3VsdEZlbmNlTGVuZ3RoID0gTWF0aC5tYXgoTUlOX0ZFTkNFX0xFTkdUSCwgbWF4RmVuY2VMZW5ndGggKyAxKTtcbiAgY29uc3QgcmVzdWx0RmVuY2UgPSAnYCcucmVwZWF0KHJlc3VsdEZlbmNlTGVuZ3RoKTtcblxuICBkdi5wYXJhZ3JhcGgoYCR7cmVzdWx0RmVuY2V9JHtsYW5ndWFnZX1cbiR7Y29kZX1cbiR7cmVzdWx0RmVuY2V9YCk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhbiBpZnJhbWUgaW4gdGhlIERhdGF2aWV3IGNvbnRhaW5lciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVsYXRpdmUgcGF0aCwgd2lkdGgsIGFuZCBoZWlnaHQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW5kZXJpbmcgdGhlIGlmcmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcklmcmFtZShwYXJhbXM6IFJlbmRlcklmcmFtZVBhcmFtcyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgaGVpZ2h0ID0gJzYwMHB4JyxcbiAgICByZWxhdGl2ZVBhdGhPckZpbGUsXG4gICAgd2lkdGggPSAnMTAwJSdcbiAgfSA9IHBhcmFtcztcbiAgZHYuZWwoJ2lmcmFtZScsICcnLCB7XG4gICAgYXR0cjoge1xuICAgICAgaGVpZ2h0LFxuICAgICAgc3JjOiByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsKHtcbiAgICAgICAgYXBwOiBkdi5hcHAsXG4gICAgICAgIG5vdGVQYXRoOiBkdi5jdXJyZW50KCkuZmlsZS5wYXRoLFxuICAgICAgICByZWxhdGl2ZVBhdGg6IGdldFBhdGgoZHYuYXBwLCByZWxhdGl2ZVBhdGhPckZpbGUpXG4gICAgICB9KSxcbiAgICAgIHdpZHRoXG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGEgcGFnaW5hdGVkIGxpc3QgdXNpbmcgdGhlIHByb3ZpZGVkIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGl0ZW1zIGluIHRoZSBsaXN0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgbGlzdC5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGxpc3QgaXMgcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYWdpbmF0ZWRMaXN0PFQ+KHBhcmFtczogUmVuZGVyUGFnaW5hdGVkTGlzdFBhcmFtczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnMgLS0gRXh0cmFjdGluZyBtYWdpYyBudW1iZXIgYXMgYSBjb25zdGFudCB3b3VsZCBiZSByZXBldGl0aXZlLCBhcyB0aGUgdmFsdWUgaXMgdXNlZCBvbmx5IG9uY2UgYW5kIGl0cyBuYW1lIHdvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0eS5cbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gcGFyYW1zO1xuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWQoe1xuICAgIGR2LFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgcmVuZGVyZXI6IGFzeW5jIChyb3dzRm9yT25lUGFnZTogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYubGlzdChyb3dzRm9yT25lUGFnZSk7XG4gICAgfSxcbiAgICByb3dzXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBwYWdpbmF0ZWQgdGFibGUgdXNpbmcgdGhlIHByb3ZpZGVkIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGl0ZW1zIGluIHRoZSB0YWJsZSByb3dzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcmVuZGVyaW5nIHRoZSBwYWdpbmF0ZWQgdGFibGUuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0YWJsZSBpcyByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhZ2luYXRlZFRhYmxlPFQgZXh0ZW5kcyB1bmtub3duW10+KHBhcmFtczogUmVuZGVyUGFnaW5hdGVkVGFibGVQYXJhbXM8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIGR2LFxuICAgIGhlYWRlcnMsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnMgLS0gRXh0cmFjdGluZyBtYWdpYyBudW1iZXIgYXMgYSBjb25zdGFudCB3b3VsZCBiZSByZXBldGl0aXZlLCBhcyB0aGUgdmFsdWUgaXMgdXNlZCBvbmx5IG9uY2UgYW5kIGl0cyBuYW1lIHdvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0eS5cbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gcGFyYW1zO1xuICBhd2FpdCByZW5kZXJQYWdpbmF0ZWQoe1xuICAgIGR2LFxuICAgIGl0ZW1zUGVyUGFnZU9wdGlvbnMsXG4gICAgcmVuZGVyZXI6IGFzeW5jIChyb3dzRm9yT25lUGFnZTogQXJyYXlPckRhdGFBcnJheTxUPik6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgYXdhaXQgZHYudGFibGUoaGVhZGVycywgcm93c0Zvck9uZVBhZ2UpO1xuICAgIH0sXG4gICAgcm93c1xuICB9KTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcmVuZGVyIHBhZ2luYXRlZCBjb250ZW50IHVzaW5nIHRoZSBzcGVjaWZpZWQgcmVuZGVyZXIuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgaXRlbXMgdG8gcGFnaW5hdGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW5kZXJpbmcgdGhlIHBhZ2luYXRlZCBjb250ZW50LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29udGVudCBpcyByZW5kZXJlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnaW5hdGVkPFQ+KHBhcmFtczogUmVuZGVyUGFnaW5hdGVkUGFyYW1zPFQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IFNFQ09ORF9QQUdFX05VTUJFUiA9IDI7XG4gIGNvbnN0IE1PUkVfUEFHRV9OVU1CRVIgPSAzO1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW1hZ2ljLW51bWJlcnMgLS0gRXh0cmFjdGluZyBtYWdpYyBudW1iZXIgYXMgYSBjb25zdGFudCB3b3VsZCBiZSByZXBldGl0aXZlLCBhcyB0aGUgdmFsdWUgaXMgdXNlZCBvbmx5IG9uY2UgYW5kIGl0cyBuYW1lIHdvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBwcm9wZXJ0eS5cbiAgICBpdGVtc1BlclBhZ2VPcHRpb25zID0gWzEwLCAyMCwgNTAsIDEwMF0sXG4gICAgcm93c1xuICB9ID0gcGFyYW1zO1xuICBpZiAocm93cy5sZW5ndGggPT09IDApIHtcbiAgICBkdi5wYXJhZ3JhcGgoJ05vIGl0ZW1zIGZvdW5kJyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNvbnRhaW5lciA9IGR2LmNvbnRhaW5lcjtcbiAgbGV0IGl0ZW1zUGVyUGFnZSA9IGVuc3VyZU5vbk51bGxhYmxlKGl0ZW1zUGVyUGFnZU9wdGlvbnNbMF0sICdJdGVtcyBwZXIgcGFnZSBvcHRpb25zIGFyZSBlbXB0eScpO1xuICBsZXQgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gIGF3YWl0IHJlbmRlclBhZ2UoMSk7XG5cbiAgZnVuY3Rpb24gY3JlYXRlUGFnaW5hdGlvbkNvbnRyb2xzKHBhZ2VOdW1iZXI6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHBhZ2luYXRpb25EaXYgPSBjb250YWluZXIuY3JlYXRlRGl2KHsgY2xzOiAncGFnaW5hdGlvbicgfSk7XG4gICAgY29uc3QgcGFnaW5hdGlvblJvdzFEaXYgPSBwYWdpbmF0aW9uRGl2LmNyZWF0ZURpdigpO1xuXG4gICAgY3JlYXRlUGFnZUxpbmsoeyBjdXJyZW50UGFnZU51bWJlcjogMSwgZGlzYWJsZWQ6IHBhZ2VOdW1iZXIgPT09IDEsIHRleHQ6ICdGaXJzdCcgfSk7XG4gICAgY3JlYXRlUGFnZUxpbmsoeyBjdXJyZW50UGFnZU51bWJlcjogcGFnZU51bWJlciAtIDEsIGRpc2FibGVkOiBwYWdlTnVtYmVyID09PSAxLCB0ZXh0OiAnUHJldicgfSk7XG5cbiAgICBpZiAocGFnZU51bWJlciA+IE1PUkVfUEFHRV9OVU1CRVIpIHtcbiAgICAgIHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZVNwYW4oeyB0ZXh0OiAnLi4uJyB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpbmRleCA9IE1hdGgubWF4KDEsIHBhZ2VOdW1iZXIgLSBTRUNPTkRfUEFHRV9OVU1CRVIpOyBpbmRleCA8PSBNYXRoLm1pbih0b3RhbFBhZ2VzLCBwYWdlTnVtYmVyICsgU0VDT05EX1BBR0VfTlVNQkVSKTsgaW5kZXgrKykge1xuICAgICAgY29uc3QgcGFnZUxpbmsgPSBjcmVhdGVQYWdlTGluayh7IGN1cnJlbnRQYWdlTnVtYmVyOiBpbmRleCwgZGlzYWJsZWQ6IGluZGV4ID09PSBwYWdlTnVtYmVyLCB0ZXh0OiBTdHJpbmcoaW5kZXgpIH0pO1xuICAgICAgaWYgKGluZGV4ID09PSBwYWdlTnVtYmVyKSB7XG4gICAgICAgIHBhZ2VMaW5rLmFkZENsYXNzKCdjdXJyZW50Jyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhZ2VOdW1iZXIgPCB0b3RhbFBhZ2VzIC0gU0VDT05EX1BBR0VfTlVNQkVSKSB7XG4gICAgICBwYWdpbmF0aW9uUm93MURpdi5jcmVhdGVTcGFuKHsgdGV4dDogJy4uLicgfSk7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnZUxpbmsoeyBjdXJyZW50UGFnZU51bWJlcjogcGFnZU51bWJlciArIDEsIGRpc2FibGVkOiBwYWdlTnVtYmVyID09PSB0b3RhbFBhZ2VzLCB0ZXh0OiAnTmV4dCcgfSk7XG4gICAgY3JlYXRlUGFnZUxpbmsoeyBjdXJyZW50UGFnZU51bWJlcjogdG90YWxQYWdlcywgZGlzYWJsZWQ6IHBhZ2VOdW1iZXIgPT09IHRvdGFsUGFnZXMsIHRleHQ6ICdMYXN0JyB9KTtcblxuICAgIGNvbnN0IHBhZ2luYXRpb25Sb3cyRGl2ID0gcGFnaW5hdGlvbkRpdi5jcmVhdGVEaXYoKTtcblxuICAgIHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZVNwYW4oeyB0ZXh0OiBgICR7dCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmRhdGF2aWV3Lml0ZW1zUGVyUGFnZSl9IGAgfSk7XG5cbiAgICBjb25zdCBpdGVtc1BlclBhZ2VTZWxlY3QgPSBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVFbCgnc2VsZWN0Jyk7XG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgaXRlbXNQZXJQYWdlT3B0aW9ucykge1xuICAgICAgaXRlbXNQZXJQYWdlU2VsZWN0LmNyZWF0ZUVsKCdvcHRpb24nLCB7IHRleHQ6IFN0cmluZyhvcHRpb24pLCB2YWx1ZTogU3RyaW5nKG9wdGlvbikgfSk7XG4gICAgfVxuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC52YWx1ZSA9IFN0cmluZyhpdGVtc1BlclBhZ2UpO1xuICAgIGl0ZW1zUGVyUGFnZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NoYW5nZScsXG4gICAgICBjb252ZXJ0QXN5bmNUb1N5bmMoYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBpdGVtc1BlclBhZ2UgPSBwYXJzZUludChpdGVtc1BlclBhZ2VTZWxlY3QudmFsdWUsIDEwKTtcbiAgICAgICAgdG90YWxQYWdlcyA9IE1hdGguY2VpbChyb3dzLmxlbmd0aCAvIGl0ZW1zUGVyUGFnZSk7XG4gICAgICAgIGF3YWl0IHJlbmRlclBhZ2UoMSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVTcGFuKHsgdGV4dDogYCAke3QoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5kYXRhdmlldy5qdW1wVG9QYWdlKX0gYCB9KTtcblxuICAgIGNvbnN0IGp1bXBUb1BhZ2VJbnB1dCA9IHBhZ2luYXRpb25Sb3cyRGl2LmNyZWF0ZUVsKCdpbnB1dCcsIHsgYXR0cjogeyBtYXg6IHRvdGFsUGFnZXMsIG1pbjogMSB9LCB0eXBlOiAnbnVtYmVyJyB9KTtcbiAgICBqdW1wVG9QYWdlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdrZXlkb3duJyxcbiAgICAgIGNvbnZlcnRBc3luY1RvU3luYyhhc3luYyAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ0VudGVyJykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhZ2UgPSBwYXJzZUludChqdW1wVG9QYWdlSW5wdXQudmFsdWUsIDEwKTtcbiAgICAgICAgaWYgKHBhZ2UgPj0gMSAmJiBwYWdlIDw9IHRvdGFsUGFnZXMpIHtcbiAgICAgICAgICBhd2FpdCByZW5kZXJQYWdlKHBhZ2UpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICBwYWdpbmF0aW9uUm93MkRpdi5jcmVhdGVTcGFuKHsgdGV4dDogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmRhdGF2aWV3LnBhZ2VIZWFkZXIsIHsgcGFnZU51bWJlciwgdG90YWxJdGVtczogcm93cy5sZW5ndGgsIHRvdGFsUGFnZXMgfSkgfSk7XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVQYWdlTGluayhwYXJhbXMyOiBDcmVhdGVQYWdlTGlua1BhcmFtcyk6IEhUTUxBbmNob3JFbGVtZW50IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgY3VycmVudFBhZ2VOdW1iZXIsXG4gICAgICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgICAgIHRleHRcbiAgICAgIH0gPSBwYXJhbXMyO1xuICAgICAgY29uc3QgbGluayA9IHBhZ2luYXRpb25Sb3cxRGl2LmNyZWF0ZUVsKCdhJywgeyBjbHM6ICdwYWdlLWxpbmsnLCBocmVmOiBgIyR7U3RyaW5nKGN1cnJlbnRQYWdlTnVtYmVyKX1gLCB0ZXh0IH0pO1xuICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgIGxpbmsuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL3ByZWZlci1hZGQtZXZlbnQtbGlzdGVuZXIgLS0gVGhlIGhhbmRsZXIgaXMgYXNzaWduZWQgdG8gYG9uY2xpY2tgIHNvIGl0IHN0YXlzIHJlYWRhYmxlIGJhY2sgb2ZmIHRoZSBlbGVtZW50LCB3aGljaCBpcyBob3cgaXQgaXMgaW52b2tlZCBpbiB0ZXN0cyBhbmQgaG93IGEgbGF0ZXIgYXNzaWdubWVudCBjYW4gcmVwbGFjZSBpdC5cbiAgICAgICAgbGluay5vbmNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL3ByZWZlci1hZGQtZXZlbnQtbGlzdGVuZXIgLS0gVGhlIGhhbmRsZXIgaXMgYXNzaWduZWQgdG8gYG9uY2xpY2tgIHNvIGl0IHN0YXlzIHJlYWRhYmxlIGJhY2sgb2ZmIHRoZSBlbGVtZW50LCB3aGljaCBpcyBob3cgaXQgaXMgaW52b2tlZCBpbiB0ZXN0cyBhbmQgaG93IGEgbGF0ZXIgYXNzaWdubWVudCBjYW4gcmVwbGFjZSBpdC5cbiAgICAgICAgbGluay5vbmNsaWNrID0gY29udmVydEFzeW5jVG9TeW5jKGFzeW5jIChldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgYXdhaXQgcmVuZGVyUGFnZShjdXJyZW50UGFnZU51bWJlcik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxpbms7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcmVuZGVyUGFnZShwYWdlTnVtYmVyOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb250YWluZXIuZW1wdHkoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW5tZC9uby1mb3JiaWRkZW4tZWxlbWVudHMgLS0gV2UgbmVlZCB0byBjcmVhdGUgYSBzdHlsZSBlbGVtZW50IHRvIGFwcGx5IHRoZSBwYWdpbmF0aW9uIENTUy5cbiAgICBjb250YWluZXIuY3JlYXRlRWwoJ3N0eWxlJywgeyB0ZXh0OiBwYWdpbmF0aW9uQ3NzIH0pO1xuXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IChwYWdlTnVtYmVyIC0gMSkgKiBpdGVtc1BlclBhZ2U7XG4gICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgaXRlbXNQZXJQYWdlO1xuICAgIGNvbnN0IHJvd3NGb3JDdXJyZW50UGFnZSA9IHJvd3Muc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuXG4gICAgY29uc3Qgb2xkQ29udGFpbmVyID0gZHYuY29udGFpbmVyO1xuXG4gICAgZHYuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwYXJhbXMucmVuZGVyZXIocm93c0ZvckN1cnJlbnRQYWdlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgZHYucGFyYWdyYXBoKGBcdTI3NEMke2Vycm9yVG9TdHJpbmcoZXJyb3IpfWApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hdG9taWMtdXBkYXRlcyAtLSBZZXMsIGl0IGlzIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uLCBidXQgSSBkb24ndCBhbiBlbGVnYW50IHdheSB0byBmaXggaXQuXG4gICAgICBkdi5jb250YWluZXIgPSBvbGRDb250YWluZXI7XG4gICAgfVxuXG4gICAgY3JlYXRlUGFnaW5hdGlvbkNvbnRyb2xzKHBhZ2VOdW1iZXIpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
package/dist/lib/cjs/debug.cjs
CHANGED
|
@@ -5,40 +5,32 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
5
5
|
|
|
6
6
|
(function () {
|
|
7
7
|
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for(
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for(
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
function ensureBrowserProcess() {
|
|
13
13
|
const browserProcess = {
|
|
14
14
|
browser: true,
|
|
15
15
|
cwd() {
|
|
16
|
-
return
|
|
16
|
+
return "/";
|
|
17
17
|
},
|
|
18
18
|
env: {},
|
|
19
|
-
platform:
|
|
19
|
+
platform: "android"
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
23
21
|
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
22
|
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
23
|
globalThis.process = browserProcess;
|
|
28
24
|
return;
|
|
29
25
|
}
|
|
30
|
-
|
|
31
26
|
if (existingProcess.versions?.node) {
|
|
32
27
|
return;
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
30
|
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
31
|
existingProcessRecord[key] ??= value;
|
|
39
32
|
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
33
|
+
existingProcessRecord["browser"] = true;
|
|
42
34
|
}
|
|
43
35
|
|
|
44
36
|
function keepName($unknown) {
|
|
@@ -46,17 +38,13 @@ function keepName($unknown) {
|
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
(function initCjs() {
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
41
|
const globalThisRecord = globalThis;
|
|
51
42
|
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord[
|
|
53
|
-
globalThisRecord[
|
|
54
|
-
|
|
43
|
+
globalThisRecord["__name"] ??= keepName;
|
|
44
|
+
globalThisRecord["__extractDefault"] ??= extractDefault;
|
|
55
45
|
ensureBrowserProcess();
|
|
56
|
-
|
|
57
|
-
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
46
|
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule &&
|
|
47
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
60
48
|
}
|
|
61
49
|
})();
|
|
62
50
|
})();
|
|
@@ -65,8 +53,6 @@ function keepName($unknown) {
|
|
|
65
53
|
if (!originalRequire || originalRequire.__isPatched) {
|
|
66
54
|
return;
|
|
67
55
|
}
|
|
68
|
-
|
|
69
|
-
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
70
56
|
require = Object.assign(
|
|
71
57
|
(id) => requirePatched(id),
|
|
72
58
|
originalRequire,
|
|
@@ -74,53 +60,45 @@ function keepName($unknown) {
|
|
|
74
60
|
__isPatched: true
|
|
75
61
|
}
|
|
76
62
|
);
|
|
77
|
-
|
|
78
63
|
function extractDefault(module) {
|
|
79
|
-
return module && module.__esModule &&
|
|
64
|
+
return module && module.__esModule && "default" in module ? module.default : module;
|
|
80
65
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
'@codemirror/tooltip']
|
|
111
|
-
);
|
|
112
|
-
|
|
66
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
67
|
+
"@codemirror/autocomplete",
|
|
68
|
+
"@codemirror/collab",
|
|
69
|
+
"@codemirror/commands",
|
|
70
|
+
"@codemirror/language",
|
|
71
|
+
"@codemirror/lint",
|
|
72
|
+
"@codemirror/search",
|
|
73
|
+
"@codemirror/state",
|
|
74
|
+
"@codemirror/text",
|
|
75
|
+
"@codemirror/view",
|
|
76
|
+
"@lezer/common",
|
|
77
|
+
"@lezer/highlight",
|
|
78
|
+
"@lezer/lr",
|
|
79
|
+
"obsidian"
|
|
80
|
+
]);
|
|
81
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
82
|
+
"@codemirror/closebrackets",
|
|
83
|
+
"@codemirror/comment",
|
|
84
|
+
"@codemirror/fold",
|
|
85
|
+
"@codemirror/gutter",
|
|
86
|
+
"@codemirror/highlight",
|
|
87
|
+
"@codemirror/history",
|
|
88
|
+
"@codemirror/matchbrackets",
|
|
89
|
+
"@codemirror/panel",
|
|
90
|
+
"@codemirror/rangeset",
|
|
91
|
+
"@codemirror/rectangular-selection",
|
|
92
|
+
"@codemirror/stream-parser",
|
|
93
|
+
"@codemirror/tooltip"
|
|
94
|
+
]);
|
|
113
95
|
function requirePatched(id) {
|
|
114
96
|
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
115
97
|
return originalRequire?.(id);
|
|
116
98
|
}
|
|
117
|
-
|
|
118
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
119
99
|
if (globalThis.app.isMobile) {
|
|
120
|
-
if (id ===
|
|
121
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
100
|
+
if (id === "process" || id === "node:process") {
|
|
122
101
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
123
|
-
|
|
124
102
|
return process;
|
|
125
103
|
}
|
|
126
104
|
} else {
|
|
@@ -129,8 +107,6 @@ function keepName($unknown) {
|
|
|
129
107
|
return extractDefault(module);
|
|
130
108
|
}
|
|
131
109
|
}
|
|
132
|
-
|
|
133
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
134
110
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
135
111
|
return {};
|
|
136
112
|
}
|
|
@@ -169,4 +145,4 @@ function getObsidianLibDebugger(namespace) {
|
|
|
169
145
|
0 && (module.exports = {
|
|
170
146
|
getObsidianLibDebugger
|
|
171
147
|
});
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RlYnVnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIGRlYnVnZ2VycyBvZiBgQG1uYW91bW92L29ic2lkaWFuLWxpYmAncyBvd24gbW9kdWxlcy5cbiAqL1xuXG5pbXBvcnQgeyBnZXREZWJ1Z2dlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9kZWJ1Zyc7XG5pbXBvcnQgeyBMaWJyYXJ5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2xpYnJhcnknO1xuXG5pbXBvcnQgeyBPQlNJRElBTl9MSUJSQVJZX05BTUUgfSBmcm9tICcuL2xpYnJhcnkudHMnO1xuXG4vKipcbiAqIFJldHVybnMgYSBkZWJ1Z2dlciBmb3Igb25lIG9mIHRoaXMgbGlicmFyeSdzIG93biBtb2R1bGVzLlxuICpcbiAqIFRoZSBuYW1lc3BhY2UgaXMgYWx3YXlzIHVuZGVyIHtAbGluayBPQlNJRElBTl9MSUJSQVJZX05BTUV9LCB3aGV0aGVyIG9yIG5vdCBgaW5pdFBsdWdpbkNvbnRleHRgIGhhcyBydW4geWV0LCBzb1xuICogYSBuYW1lc3BhY2UgYSBndWlkZSB0ZWxscyB1c2VycyB0byBlbmFibGUgKGBvYnNpZGlhbi1kZXYtdXRpbHM6UGx1Z2luQXBpYCkgbWVhbnMgdGhlIHNhbWUgdGhpbmcgaW4gYSB0ZXN0LCBpbiBhXG4gKiBzY3JpcHQgYW5kIGluIGEgcGx1Z2luLiBUaGUgZ2VuZXJpYyBtb2R1bGVzIG9mIGBAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWJgIGxvZyB1bmRlciB0aGUgbmFtZXNwYWNlXG4gKiBgaW5pdFBsdWdpbkNvbnRleHRgIGluamVjdHMgaW50byB0aGUgZ2VuZXJpYyBgTGlicmFyeWAsIHdoaWNoIGlzIHRoZSBzYW1lIG9uZSBvbmNlIGEgcGx1Z2luIGlzIHVwLlxuICpcbiAqIEBwYXJhbSBuYW1lc3BhY2UgLSBUaGUgbmFtZXNwYWNlIHdpdGhpbiB0aGUgbGlicmFyeSdzLlxuICogQHJldHVybnMgVGhlIGRlYnVnZ2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlcihuYW1lc3BhY2U6IHN0cmluZyk6IFJldHVyblR5cGU8dHlwZW9mIGdldERlYnVnZ2VyPiB7XG4gIHJldHVybiBnZXREZWJ1Z2dlcihgJHtMaWJyYXJ5LmRlYnVnUHJlZml4TmFtZXNwYWNlfSR7T0JTSURJQU5fTElCUkFSWV9OQU1FfToke25hbWVzcGFjZX1gKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxtQkFBNEI7QUFDNUIscUJBQXdCO0FBRXhCLElBQUFBLGtCQUFzQztBQWEvQixTQUFTLHVCQUF1QixXQUFtRDtBQUN4RixhQUFPLDBCQUFZLEdBQUcsdUJBQVEsb0JBQW9CLEdBQUcscUNBQXFCLElBQUksU0FBUyxFQUFFO0FBQzNGOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfbGlicmFyeSJdCn0K
|