obsidian-dev-utils 55.4.1 → 56.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/CHANGELOG.md +6 -0
- package/dist/lib/cjs/abort-controller.cjs +6 -4
- package/dist/lib/cjs/array.cjs +5 -3
- package/dist/lib/cjs/async-events.cjs +7 -5
- package/dist/lib/cjs/async.cjs +6 -4
- package/dist/lib/cjs/blob.cjs +6 -4
- package/dist/lib/cjs/codemirror/index.cjs +5 -3
- package/dist/lib/cjs/codemirror/state-field-spec.cjs +5 -3
- package/dist/lib/cjs/css-class.cjs +5 -3
- package/dist/lib/cjs/debug-controller.cjs +5 -3
- package/dist/lib/cjs/debug.cjs +5 -3
- package/dist/lib/cjs/enum.cjs +5 -3
- package/dist/lib/cjs/error.cjs +5 -3
- package/dist/lib/cjs/function.cjs +5 -3
- package/dist/lib/cjs/html-element.cjs +18 -16
- package/dist/lib/cjs/index.cjs +5 -3
- package/dist/lib/cjs/library.cjs +6 -4
- package/dist/lib/cjs/object-utils.cjs +5 -3
- package/dist/lib/cjs/obsidian/@types/i18next.d.cts +3 -3
- package/dist/lib/cjs/obsidian/app.cjs +5 -3
- package/dist/lib/cjs/obsidian/async-with-notice.cjs +8 -6
- package/dist/lib/cjs/obsidian/attachment-path.cjs +5 -3
- package/dist/lib/cjs/obsidian/backlink.cjs +5 -3
- package/dist/lib/cjs/obsidian/callout.cjs +5 -3
- package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +5 -3
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +355 -0
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +178 -0
- package/dist/lib/cjs/obsidian/{commands/index.cjs → command-handlers/app-active-file-provider.cjs} +29 -34
- package/dist/lib/cjs/obsidian/command-handlers/app-active-file-provider.d.cts +25 -0
- package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.cjs +173 -0
- package/dist/lib/cjs/obsidian/command-handlers/app-menu-event-registrar.d.cts +41 -0
- package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +164 -0
- package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +26 -0
- package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +174 -0
- package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +143 -0
- package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +269 -0
- package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +114 -0
- package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +261 -0
- package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.d.cts +112 -0
- package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +261 -0
- package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts +112 -0
- package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs +177 -0
- package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.d.cts +38 -0
- package/dist/lib/cjs/obsidian/command-handlers/index.cjs +170 -0
- package/dist/lib/cjs/obsidian/command-handlers/index.d.cts +9 -0
- package/dist/lib/cjs/obsidian/components/all-windows-event-handler.cjs +6 -4
- package/dist/lib/cjs/obsidian/components/async-component.cjs +164 -0
- package/dist/lib/cjs/obsidian/components/async-component.d.cts +28 -0
- package/dist/lib/cjs/obsidian/components/async-events-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/index.cjs +8 -3
- package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/components/setting-components/checkbox-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/code-highlighter-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/date-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/date-time-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/email-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/file-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/index.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/month-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/multiple-dropdown-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/multiple-email-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/multiple-file-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/multiple-text-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/number-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/password-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/setting-component-wrapper.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/telephone-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/text-based-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/time-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/tri-state-checkbox-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/typed-dropdown-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/typed-multiple-dropdown-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/typed-range-text-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/typed-text-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/url-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/validator-component.cjs +7 -5
- package/dist/lib/cjs/obsidian/components/setting-components/value-component-with-change-tracking.cjs +5 -3
- package/dist/lib/cjs/obsidian/components/setting-components/week-component.cjs +5 -3
- package/dist/lib/cjs/obsidian/constructors/getDomEventsHandlersConstructor.cjs +5 -3
- package/dist/lib/cjs/obsidian/constructors/index.cjs +5 -3
- package/dist/lib/cjs/obsidian/dataview-link.cjs +5 -3
- package/dist/lib/cjs/obsidian/dataview.cjs +6 -4
- package/dist/lib/cjs/obsidian/editor.cjs +5 -3
- package/dist/lib/cjs/obsidian/file-change.cjs +5 -3
- package/dist/lib/cjs/obsidian/file-manager.cjs +5 -3
- package/dist/lib/cjs/obsidian/file-system.cjs +5 -3
- package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +5 -3
- package/dist/lib/cjs/obsidian/frontmatter.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/{custom-type-options-base.cjs → custom-type-options.cjs} +7 -5
- package/dist/lib/cjs/obsidian/i18n/custom-type-options.d.cts +37 -0
- package/dist/lib/cjs/obsidian/{plugin/plugin-settings-wrapper.cjs → i18n/default-translations.cjs} +8 -5
- package/dist/lib/cjs/obsidian/i18n/default-translations.d.cts +14 -0
- package/dist/lib/cjs/obsidian/i18n/i18n.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +2 -13
- package/dist/lib/cjs/obsidian/i18n/index.cjs +11 -9
- package/dist/lib/cjs/obsidian/i18n/index.d.cts +2 -2
- package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +5 -3
- package/dist/lib/cjs/obsidian/i18n/locales/translations-map.d.cts +1 -2
- package/dist/lib/cjs/obsidian/index.cjs +8 -6
- package/dist/lib/cjs/obsidian/index.d.cts +1 -1
- package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +5 -3
- package/dist/lib/cjs/obsidian/link.cjs +5 -3
- package/dist/lib/cjs/obsidian/logger.cjs +5 -3
- package/dist/lib/cjs/obsidian/loop.cjs +5 -3
- package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +5 -3
- package/dist/lib/cjs/obsidian/markdown-view.cjs +5 -3
- package/dist/lib/cjs/obsidian/markdown.cjs +5 -3
- package/dist/lib/cjs/obsidian/metadata-cache.cjs +5 -3
- package/dist/lib/cjs/obsidian/modals/alert.cjs +8 -6
- package/dist/lib/cjs/obsidian/modals/confirm.cjs +8 -6
- package/dist/lib/cjs/obsidian/modals/index.cjs +8 -6
- package/dist/lib/cjs/obsidian/modals/index.d.cts +1 -1
- package/dist/lib/cjs/obsidian/modals/{modal-base.cjs → modal.cjs} +8 -6
- package/dist/lib/cjs/obsidian/modals/prompt.cjs +8 -6
- package/dist/lib/cjs/obsidian/modals/select-item.cjs +7 -5
- package/dist/lib/cjs/obsidian/monkey-around.cjs +5 -3
- package/dist/lib/cjs/obsidian/obsidian-settings.cjs +5 -3
- package/dist/lib/cjs/obsidian/pdf.cjs +8 -6
- package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.cjs +162 -0
- package/dist/lib/cjs/obsidian/plugin/components/abort-signal-component.d.cts +27 -0
- package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.cjs +165 -0
- package/dist/lib/cjs/obsidian/plugin/components/async-error-handler-component.d.cts +29 -0
- package/dist/lib/cjs/obsidian/{commands/non-editor-command-base.cjs → plugin/components/console-debug-component.cjs} +26 -20
- package/dist/lib/cjs/obsidian/plugin/components/console-debug-component.d.cts +29 -0
- package/dist/lib/cjs/obsidian/{i18n/default-translations-base.cjs → plugin/components/i18n-component.cjs} +39 -6
- package/dist/lib/cjs/obsidian/plugin/components/i18n-component.d.cts +23 -0
- package/dist/lib/cjs/obsidian/plugin/components/index.cjs +170 -0
- package/dist/lib/cjs/obsidian/plugin/components/index.d.cts +9 -0
- package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.cjs +207 -0
- package/dist/lib/cjs/obsidian/plugin/components/lifecycle-events-component.d.cts +59 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.cjs +162 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-context-component.d.cts +25 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.cjs +161 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-notice-component.d.cts +25 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.cjs +566 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-component.d.cts +296 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.cjs +166 -0
- package/dist/lib/cjs/obsidian/plugin/components/plugin-settings-tab-component.d.cts +28 -0
- package/dist/lib/cjs/obsidian/plugin/index.cjs +11 -18
- package/dist/lib/cjs/obsidian/plugin/index.d.cts +2 -5
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +5 -3
- package/dist/lib/cjs/obsidian/plugin/path-settings.cjs +5 -3
- package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +16 -7
- package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +3 -2
- package/dist/lib/cjs/obsidian/plugin/plugin-id.cjs +5 -3
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +408 -0
- package/dist/lib/cjs/obsidian/plugin/{plugin-settings-tab-base.d.cts → plugin-settings-tab.d.cts} +28 -11
- package/dist/lib/cjs/obsidian/plugin/plugin.cjs +135 -3
- package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +106 -5
- package/dist/lib/cjs/obsidian/queue.cjs +5 -3
- package/dist/lib/cjs/obsidian/react/app-context.cjs +5 -3
- package/dist/lib/cjs/obsidian/react/index.cjs +5 -3
- package/dist/lib/cjs/obsidian/reference.cjs +5 -3
- package/dist/lib/cjs/obsidian/rename-delete-handler.cjs +5 -3
- package/dist/lib/cjs/obsidian/resource-url.cjs +5 -3
- package/dist/lib/cjs/obsidian/setting-ex.cjs +5 -3
- package/dist/lib/cjs/obsidian/setting-group-ex.cjs +5 -3
- package/dist/lib/cjs/obsidian/validation.cjs +5 -3
- package/dist/lib/cjs/obsidian/vault-delete.cjs +5 -3
- package/dist/lib/cjs/obsidian/vault.cjs +5 -3
- package/dist/lib/cjs/obsidian/workspace.cjs +5 -3
- package/dist/lib/cjs/path.cjs +5 -3
- package/dist/lib/cjs/reg-exp.cjs +5 -3
- package/dist/lib/cjs/script-utils/build.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +6 -4
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +8 -6
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +5 -3
- package/dist/lib/cjs/script-utils/bundlers/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/cli-utils.cjs +5 -3
- package/dist/lib/cjs/script-utils/code-generator.cjs +5 -3
- package/dist/lib/cjs/script-utils/commitlint-config.cjs +5 -3
- package/dist/lib/cjs/script-utils/exec.cjs +5 -3
- package/dist/lib/cjs/script-utils/formatters/dprint.cjs +6 -4
- package/dist/lib/cjs/script-utils/formatters/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/fs.cjs +5 -3
- package/dist/lib/cjs/script-utils/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/json.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/cspell.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +6 -4
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint.cjs +6 -4
- package/dist/lib/cjs/script-utils/linters/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +9 -5
- package/dist/lib/cjs/script-utils/nano-staged-config.cjs +5 -3
- package/dist/lib/cjs/script-utils/npm-publish.cjs +5 -3
- package/dist/lib/cjs/script-utils/npm-run.cjs +5 -3
- package/dist/lib/cjs/script-utils/npm.cjs +5 -3
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +5 -3
- package/dist/lib/cjs/script-utils/root.cjs +5 -3
- package/dist/lib/cjs/script-utils/test-runners/index.cjs +5 -3
- package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +5 -3
- package/dist/lib/cjs/script-utils/version.cjs +5 -3
- package/dist/lib/cjs/strict-proxy.cjs +5 -3
- package/dist/lib/cjs/string.cjs +5 -3
- package/dist/lib/cjs/transformers/date-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/duration-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/group-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/index.cjs +5 -3
- package/dist/lib/cjs/transformers/map-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/set-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +5 -3
- package/dist/lib/cjs/transformers/typed-transformer.cjs +5 -3
- package/dist/lib/cjs/two-way-map.cjs +5 -3
- package/dist/lib/cjs/type-guards.cjs +5 -3
- package/dist/lib/cjs/type.cjs +5 -3
- package/dist/lib/cjs/url.cjs +5 -3
- package/dist/lib/cjs/value-provider.cjs +5 -3
- package/dist/lib/esm/abort-controller.mjs +4 -2
- package/dist/lib/esm/array.mjs +3 -1
- package/dist/lib/esm/async-events.mjs +5 -3
- package/dist/lib/esm/async.mjs +4 -2
- package/dist/lib/esm/blob.mjs +4 -2
- package/dist/lib/esm/codemirror/index.mjs +3 -1
- package/dist/lib/esm/codemirror/state-field-spec.mjs +2 -0
- package/dist/lib/esm/css-class.mjs +3 -1
- package/dist/lib/esm/debug-controller.mjs +2 -0
- package/dist/lib/esm/debug.mjs +3 -1
- package/dist/lib/esm/enum.mjs +3 -1
- package/dist/lib/esm/error.mjs +3 -1
- package/dist/lib/esm/function.mjs +3 -1
- package/dist/lib/esm/html-element.mjs +16 -14
- package/dist/lib/esm/index.mjs +3 -1
- package/dist/lib/esm/library.mjs +4 -2
- package/dist/lib/esm/object-utils.mjs +3 -1
- package/dist/lib/esm/obsidian/@types/i18next.d.mts +3 -3
- package/dist/lib/esm/obsidian/app.mjs +3 -1
- package/dist/lib/esm/obsidian/async-with-notice.mjs +6 -4
- package/dist/lib/esm/obsidian/attachment-path.mjs +3 -1
- package/dist/lib/esm/obsidian/backlink.mjs +3 -1
- package/dist/lib/esm/obsidian/callout.mjs +3 -1
- package/dist/lib/esm/obsidian/code-block-markdown-information.mjs +2 -0
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +178 -0
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +247 -0
- package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.d.mts +25 -0
- package/dist/lib/esm/obsidian/command-handlers/app-active-file-provider.mjs +46 -0
- package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.d.mts +41 -0
- package/dist/lib/esm/obsidian/command-handlers/app-menu-event-registrar.mjs +65 -0
- package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +26 -0
- package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +56 -0
- package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +143 -0
- package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +66 -0
- package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +114 -0
- package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +161 -0
- package/dist/lib/esm/obsidian/command-handlers/file-command-handler.d.mts +112 -0
- package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +157 -0
- package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.d.mts +112 -0
- package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +157 -0
- package/dist/lib/esm/obsidian/command-handlers/global-command-handler.d.mts +38 -0
- package/dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs +69 -0
- package/dist/lib/esm/obsidian/command-handlers/index.d.mts +9 -0
- package/dist/lib/esm/obsidian/command-handlers/index.mjs +44 -0
- package/dist/lib/esm/obsidian/components/all-windows-event-handler.mjs +4 -2
- package/dist/lib/esm/obsidian/components/async-component.d.mts +28 -0
- package/dist/lib/esm/obsidian/components/async-component.mjs +56 -0
- package/dist/lib/esm/obsidian/components/async-events-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/components/index.mjs +5 -1
- package/dist/lib/esm/obsidian/components/setting-components/checkbox-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/code-highlighter-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/date-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/date-time-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/email-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/file-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/index.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/month-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/multiple-dropdown-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/multiple-email-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/multiple-file-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/multiple-text-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/number-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/password-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/setting-component-wrapper.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/telephone-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/text-based-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/time-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/tri-state-checkbox-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/typed-dropdown-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/typed-multiple-dropdown-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/typed-range-text-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/typed-text-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/url-component.mjs +3 -1
- package/dist/lib/esm/obsidian/components/setting-components/validator-component.mjs +5 -3
- package/dist/lib/esm/obsidian/components/setting-components/value-component-with-change-tracking.mjs +2 -0
- package/dist/lib/esm/obsidian/components/setting-components/week-component.mjs +3 -1
- package/dist/lib/esm/obsidian/constructors/getDomEventsHandlersConstructor.mjs +3 -1
- package/dist/lib/esm/obsidian/constructors/index.mjs +3 -1
- package/dist/lib/esm/obsidian/dataview-link.mjs +3 -1
- package/dist/lib/esm/obsidian/dataview.mjs +4 -2
- package/dist/lib/esm/obsidian/editor.mjs +3 -1
- package/dist/lib/esm/obsidian/file-change.mjs +3 -1
- package/dist/lib/esm/obsidian/file-manager.mjs +3 -1
- package/dist/lib/esm/obsidian/file-system.mjs +3 -1
- package/dist/lib/esm/obsidian/frontmatter-link-cache-with-offsets.mjs +3 -1
- package/dist/lib/esm/obsidian/frontmatter.mjs +3 -1
- package/dist/lib/esm/obsidian/i18n/custom-type-options.d.mts +37 -0
- package/dist/lib/esm/obsidian/i18n/custom-type-options.mjs +25 -0
- package/dist/lib/esm/obsidian/i18n/default-translations.d.mts +14 -0
- package/dist/lib/esm/obsidian/i18n/default-translations.mjs +25 -0
- package/dist/lib/esm/obsidian/i18n/i18n.d.mts +2 -13
- package/dist/lib/esm/obsidian/i18n/i18n.mjs +3 -1
- package/dist/lib/esm/obsidian/i18n/index.d.mts +2 -2
- package/dist/lib/esm/obsidian/i18n/index.mjs +7 -5
- package/dist/lib/esm/obsidian/i18n/locales/en.mjs +3 -1
- package/dist/lib/esm/obsidian/i18n/locales/index.mjs +3 -1
- package/dist/lib/esm/obsidian/i18n/locales/translations-map.d.mts +1 -2
- package/dist/lib/esm/obsidian/i18n/locales/translations-map.mjs +3 -1
- package/dist/lib/esm/obsidian/index.d.mts +1 -1
- package/dist/lib/esm/obsidian/index.mjs +5 -3
- package/dist/lib/esm/obsidian/is-in-obsidian.mjs +3 -1
- package/dist/lib/esm/obsidian/link.mjs +3 -1
- package/dist/lib/esm/obsidian/logger.mjs +3 -1
- package/dist/lib/esm/obsidian/loop.mjs +3 -1
- package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +3 -1
- package/dist/lib/esm/obsidian/markdown-view.mjs +3 -1
- package/dist/lib/esm/obsidian/markdown.mjs +3 -1
- package/dist/lib/esm/obsidian/metadata-cache.mjs +3 -1
- package/dist/lib/esm/obsidian/modals/alert.mjs +4 -2
- package/dist/lib/esm/obsidian/modals/confirm.mjs +4 -2
- package/dist/lib/esm/obsidian/modals/index.d.mts +1 -1
- package/dist/lib/esm/obsidian/modals/index.mjs +5 -3
- package/dist/lib/esm/obsidian/modals/modal.mjs +54 -0
- package/dist/lib/esm/obsidian/modals/prompt.mjs +4 -2
- package/dist/lib/esm/obsidian/modals/select-item.mjs +4 -2
- package/dist/lib/esm/obsidian/monkey-around.mjs +3 -1
- package/dist/lib/esm/obsidian/obsidian-settings.mjs +3 -1
- package/dist/lib/esm/obsidian/pdf.mjs +6 -4
- package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.d.mts +27 -0
- package/dist/lib/esm/obsidian/plugin/components/abort-signal-component.mjs +54 -0
- package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.d.mts +29 -0
- package/dist/lib/esm/obsidian/plugin/components/async-error-handler-component.mjs +57 -0
- package/dist/lib/esm/obsidian/plugin/components/console-debug-component.d.mts +29 -0
- package/dist/lib/esm/obsidian/plugin/components/console-debug-component.mjs +52 -0
- package/dist/lib/esm/obsidian/plugin/components/i18n-component.d.mts +23 -0
- package/dist/lib/esm/obsidian/plugin/components/i18n-component.mjs +48 -0
- package/dist/lib/esm/obsidian/plugin/components/index.d.mts +9 -0
- package/dist/lib/esm/obsidian/plugin/components/index.mjs +44 -0
- package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.d.mts +59 -0
- package/dist/lib/esm/obsidian/plugin/components/lifecycle-events-component.mjs +102 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.d.mts +25 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-context-component.mjs +57 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.d.mts +25 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-notice-component.mjs +56 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.d.mts +296 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-settings-component.mjs +463 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.d.mts +28 -0
- package/dist/lib/esm/obsidian/plugin/components/plugin-settings-tab-component.mjs +58 -0
- package/dist/lib/esm/obsidian/plugin/index.d.mts +2 -5
- package/dist/lib/esm/obsidian/plugin/index.mjs +7 -11
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +3 -1
- package/dist/lib/esm/obsidian/plugin/path-settings.mjs +3 -1
- package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +3 -2
- package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +14 -5
- package/dist/lib/esm/obsidian/plugin/plugin-id.mjs +3 -1
- package/dist/lib/esm/obsidian/plugin/{plugin-settings-tab-base.d.mts → plugin-settings-tab.d.mts} +28 -11
- package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +309 -0
- package/dist/lib/esm/obsidian/plugin/plugin.d.mts +106 -5
- package/dist/lib/esm/obsidian/plugin/plugin.mjs +140 -2
- package/dist/lib/esm/obsidian/queue.mjs +3 -1
- package/dist/lib/esm/obsidian/react/app-context.mjs +3 -1
- package/dist/lib/esm/obsidian/react/index.mjs +3 -1
- package/dist/lib/esm/obsidian/reference.mjs +3 -1
- package/dist/lib/esm/obsidian/rename-delete-handler.mjs +3 -1
- package/dist/lib/esm/obsidian/resource-url.mjs +3 -1
- package/dist/lib/esm/obsidian/setting-ex.mjs +3 -1
- package/dist/lib/esm/obsidian/setting-group-ex.mjs +3 -1
- package/dist/lib/esm/obsidian/validation.mjs +3 -1
- package/dist/lib/esm/obsidian/vault-delete.mjs +3 -1
- package/dist/lib/esm/obsidian/vault.mjs +3 -1
- package/dist/lib/esm/obsidian/workspace.mjs +3 -1
- package/dist/lib/esm/path.mjs +3 -1
- package/dist/lib/esm/reg-exp.mjs +3 -1
- package/dist/lib/esm/script-utils/build.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/index.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +5 -3
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/rename-css-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild.mjs +3 -1
- package/dist/lib/esm/script-utils/bundlers/index.mjs +3 -1
- package/dist/lib/esm/script-utils/cli-utils.mjs +3 -1
- package/dist/lib/esm/script-utils/code-generator.mjs +3 -1
- package/dist/lib/esm/script-utils/commitlint-config.mjs +3 -1
- package/dist/lib/esm/script-utils/exec.mjs +3 -1
- package/dist/lib/esm/script-utils/formatters/dprint.mjs +3 -1
- package/dist/lib/esm/script-utils/formatters/index.mjs +3 -1
- package/dist/lib/esm/script-utils/fs.mjs +3 -1
- package/dist/lib/esm/script-utils/index.mjs +3 -1
- package/dist/lib/esm/script-utils/json.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/cspell.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +4 -2
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/eslint.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/markdownlint.mjs +6 -2
- package/dist/lib/esm/script-utils/nano-staged-config.mjs +3 -1
- package/dist/lib/esm/script-utils/npm-publish.mjs +3 -1
- package/dist/lib/esm/script-utils/npm-run.mjs +3 -1
- package/dist/lib/esm/script-utils/npm.mjs +3 -1
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +3 -1
- package/dist/lib/esm/script-utils/root.mjs +3 -1
- package/dist/lib/esm/script-utils/test-runners/index.mjs +3 -1
- package/dist/lib/esm/script-utils/test-runners/vitest.mjs +3 -1
- package/dist/lib/esm/script-utils/version.mjs +3 -1
- package/dist/lib/esm/strict-proxy.mjs +3 -1
- package/dist/lib/esm/string.mjs +3 -1
- package/dist/lib/esm/transformers/date-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/duration-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/group-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/index.mjs +3 -1
- package/dist/lib/esm/transformers/map-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/set-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/transformer.mjs +3 -1
- package/dist/lib/esm/transformers/two-way-map-transformer.mjs +3 -1
- package/dist/lib/esm/transformers/typed-transformer.mjs +3 -1
- package/dist/lib/esm/two-way-map.mjs +3 -1
- package/dist/lib/esm/type-guards.mjs +3 -1
- package/dist/lib/esm/type.mjs +3 -1
- package/dist/lib/esm/url.mjs +3 -1
- package/dist/lib/esm/value-provider.mjs +3 -1
- package/obsidian/Components/async-component/package.json +6 -0
- package/obsidian/Modals/modal/package.json +6 -0
- package/obsidian/Plugin/components/abort-signal-component/package.json +6 -0
- package/obsidian/Plugin/components/async-error-handler-component/package.json +6 -0
- package/obsidian/Plugin/components/console-debug-component/package.json +6 -0
- package/obsidian/Plugin/components/i18n-component/package.json +6 -0
- package/obsidian/Plugin/components/index/package.json +6 -0
- package/obsidian/Plugin/components/lifecycle-events-component/package.json +6 -0
- package/obsidian/Plugin/components/package.json +6 -0
- package/obsidian/Plugin/components/plugin-context-component/package.json +6 -0
- package/obsidian/Plugin/components/plugin-notice-component/package.json +6 -0
- package/obsidian/Plugin/components/plugin-settings-component/package.json +6 -0
- package/obsidian/Plugin/components/plugin-settings-tab-component/package.json +6 -0
- package/obsidian/Plugin/{plugin-settings-wrapper → plugin-settings-tab}/package.json +3 -3
- package/obsidian/command-handlers/abstract-file-command-handler/package.json +6 -0
- package/obsidian/command-handlers/app-active-file-provider/package.json +6 -0
- package/obsidian/command-handlers/app-menu-event-registrar/package.json +6 -0
- package/obsidian/command-handlers/command-handler/package.json +6 -0
- package/obsidian/command-handlers/command-handler-component/package.json +6 -0
- package/obsidian/command-handlers/editor-command-handler/package.json +6 -0
- package/obsidian/command-handlers/file-command-handler/package.json +6 -0
- package/obsidian/command-handlers/folder-command-handler/package.json +6 -0
- package/obsidian/command-handlers/global-command-handler/package.json +6 -0
- package/obsidian/command-handlers/index/package.json +6 -0
- package/obsidian/command-handlers/package.json +6 -0
- package/obsidian/i18n/{custom-type-options-base → custom-type-options}/package.json +3 -3
- package/obsidian/i18n/{default-translations-base → default-translations}/package.json +3 -3
- package/package.json +33 -12
- package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.cjs +0 -441
- package/dist/lib/cjs/obsidian/commands/abstract-file-command-base.d.cts +0 -264
- package/dist/lib/cjs/obsidian/commands/command-base.cjs +0 -255
- package/dist/lib/cjs/obsidian/commands/command-base.d.cts +0 -125
- package/dist/lib/cjs/obsidian/commands/editor-command-base.cjs +0 -282
- package/dist/lib/cjs/obsidian/commands/editor-command-base.d.cts +0 -139
- package/dist/lib/cjs/obsidian/commands/file-command-base.cjs +0 -343
- package/dist/lib/cjs/obsidian/commands/file-command-base.d.cts +0 -191
- package/dist/lib/cjs/obsidian/commands/folder-command-base.cjs +0 -335
- package/dist/lib/cjs/obsidian/commands/folder-command-base.d.cts +0 -184
- package/dist/lib/cjs/obsidian/commands/index.d.cts +0 -6
- package/dist/lib/cjs/obsidian/commands/non-editor-command-base.d.cts +0 -34
- package/dist/lib/cjs/obsidian/i18n/custom-type-options-base.d.cts +0 -37
- package/dist/lib/cjs/obsidian/i18n/default-translations-base.d.cts +0 -25
- package/dist/lib/cjs/obsidian/plugin/plugin-base.cjs +0 -409
- package/dist/lib/cjs/obsidian/plugin/plugin-base.d.cts +0 -176
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.cjs +0 -486
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-manager-base.d.cts +0 -186
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab-base.cjs +0 -401
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-wrapper.d.cts +0 -25
- package/dist/lib/cjs/obsidian/plugin/plugin-types-base.cjs +0 -122
- package/dist/lib/cjs/obsidian/plugin/plugin-types-base.d.cts +0 -87
- package/dist/lib/esm/obsidian/commands/abstract-file-command-base.d.mts +0 -264
- package/dist/lib/esm/obsidian/commands/abstract-file-command-base.mjs +0 -329
- package/dist/lib/esm/obsidian/commands/command-base.d.mts +0 -125
- package/dist/lib/esm/obsidian/commands/command-base.mjs +0 -146
- package/dist/lib/esm/obsidian/commands/editor-command-base.d.mts +0 -139
- package/dist/lib/esm/obsidian/commands/editor-command-base.mjs +0 -176
- package/dist/lib/esm/obsidian/commands/file-command-base.d.mts +0 -191
- package/dist/lib/esm/obsidian/commands/file-command-base.mjs +0 -240
- package/dist/lib/esm/obsidian/commands/folder-command-base.d.mts +0 -184
- package/dist/lib/esm/obsidian/commands/folder-command-base.mjs +0 -232
- package/dist/lib/esm/obsidian/commands/index.d.mts +0 -6
- package/dist/lib/esm/obsidian/commands/index.mjs +0 -36
- package/dist/lib/esm/obsidian/commands/non-editor-command-base.d.mts +0 -34
- package/dist/lib/esm/obsidian/commands/non-editor-command-base.mjs +0 -46
- package/dist/lib/esm/obsidian/i18n/custom-type-options-base.d.mts +0 -37
- package/dist/lib/esm/obsidian/i18n/custom-type-options-base.mjs +0 -23
- package/dist/lib/esm/obsidian/i18n/default-translations-base.d.mts +0 -25
- package/dist/lib/esm/obsidian/i18n/default-translations-base.mjs +0 -23
- package/dist/lib/esm/obsidian/modals/modal-base.mjs +0 -52
- package/dist/lib/esm/obsidian/plugin/plugin-base.d.mts +0 -176
- package/dist/lib/esm/obsidian/plugin/plugin-base.mjs +0 -317
- package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.d.mts +0 -186
- package/dist/lib/esm/obsidian/plugin/plugin-settings-manager-base.mjs +0 -385
- package/dist/lib/esm/obsidian/plugin/plugin-settings-tab-base.mjs +0 -302
- package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.d.mts +0 -25
- package/dist/lib/esm/obsidian/plugin/plugin-settings-wrapper.mjs +0 -22
- package/dist/lib/esm/obsidian/plugin/plugin-types-base.d.mts +0 -87
- package/dist/lib/esm/obsidian/plugin/plugin-types-base.mjs +0 -22
- package/obsidian/Commands/abstract-file-command-base/package.json +0 -6
- package/obsidian/Commands/command-base/package.json +0 -6
- package/obsidian/Commands/editor-command-base/package.json +0 -6
- package/obsidian/Commands/file-command-base/package.json +0 -6
- package/obsidian/Commands/folder-command-base/package.json +0 -6
- package/obsidian/Commands/index/package.json +0 -6
- package/obsidian/Commands/non-editor-command-base/package.json +0 -6
- package/obsidian/Commands/package.json +0 -6
- package/obsidian/Modals/modal-base/package.json +0 -6
- package/obsidian/Plugin/plugin-base/package.json +0 -6
- package/obsidian/Plugin/plugin-settings-manager-base/package.json +0 -6
- package/obsidian/Plugin/plugin-settings-tab-base/package.json +0 -6
- package/obsidian/Plugin/plugin-types-base/package.json +0 -6
- /package/dist/lib/cjs/obsidian/modals/{modal-base.d.cts → modal.d.cts} +0 -0
- /package/dist/lib/esm/obsidian/modals/{modal-base.d.mts → modal.d.mts} +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"main": "../../../dist/lib/cjs/obsidian/command-handlers/command-handler.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/obsidian/command-handlers/command-handler.mjs",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "../../../dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts"
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"main": "../../../dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "../../../dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts"
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"main": "../../../dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "../../../dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts"
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"main": "../../../dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "../../../dist/lib/cjs/obsidian/command-handlers/file-command-handler.d.cts"
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"main": "../../../dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "../../../dist/lib/cjs/obsidian/command-handlers/folder-command-handler.d.cts"
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"main": "../../../dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "../../../dist/lib/cjs/obsidian/command-handlers/global-command-handler.d.cts"
|
|
6
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"main": "../../../dist/lib/cjs/obsidian/i18n/custom-type-options
|
|
3
|
-
"module": "../../../dist/lib/esm/obsidian/i18n/custom-type-options
|
|
2
|
+
"main": "../../../dist/lib/cjs/obsidian/i18n/custom-type-options.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/obsidian/i18n/custom-type-options.mjs",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"types": "../../../dist/lib/cjs/obsidian/i18n/custom-type-options
|
|
5
|
+
"types": "../../../dist/lib/cjs/obsidian/i18n/custom-type-options.d.cts"
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"main": "../../../dist/lib/cjs/obsidian/i18n/default-translations
|
|
3
|
-
"module": "../../../dist/lib/esm/obsidian/i18n/default-translations
|
|
2
|
+
"main": "../../../dist/lib/cjs/obsidian/i18n/default-translations.cjs",
|
|
3
|
+
"module": "../../../dist/lib/esm/obsidian/i18n/default-translations.mjs",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"types": "../../../dist/lib/cjs/obsidian/i18n/default-translations
|
|
5
|
+
"types": "../../../dist/lib/cjs/obsidian/i18n/default-translations.d.cts"
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "obsidian-dev-utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "56.0.0",
|
|
4
4
|
"description": "This is the collection of useful functions that you can use for your Obsidian plugin development",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"obsidian"
|
|
@@ -221,24 +221,24 @@
|
|
|
221
221
|
"types": "./dist/lib/cjs/obsidian/@types/dataview/util/*.d.cts"
|
|
222
222
|
}
|
|
223
223
|
},
|
|
224
|
-
"./obsidian/
|
|
224
|
+
"./obsidian/command-handlers": {
|
|
225
225
|
"import": {
|
|
226
|
-
"types": "./dist/lib/esm/obsidian/
|
|
227
|
-
"default": "./dist/lib/esm/obsidian/
|
|
226
|
+
"types": "./dist/lib/esm/obsidian/command-handlers/index.d.mts",
|
|
227
|
+
"default": "./dist/lib/esm/obsidian/command-handlers/index.mjs"
|
|
228
228
|
},
|
|
229
229
|
"require": {
|
|
230
|
-
"types": "./dist/lib/cjs/obsidian/
|
|
231
|
-
"default": "./dist/lib/cjs/obsidian/
|
|
230
|
+
"types": "./dist/lib/cjs/obsidian/command-handlers/index.d.cts",
|
|
231
|
+
"default": "./dist/lib/cjs/obsidian/command-handlers/index.cjs"
|
|
232
232
|
}
|
|
233
233
|
},
|
|
234
|
-
"./obsidian/
|
|
234
|
+
"./obsidian/command-handlers/*": {
|
|
235
235
|
"import": {
|
|
236
|
-
"types": "./dist/lib/esm/obsidian/
|
|
237
|
-
"default": "./dist/lib/esm/obsidian/
|
|
236
|
+
"types": "./dist/lib/esm/obsidian/command-handlers/*.d.mts",
|
|
237
|
+
"default": "./dist/lib/esm/obsidian/command-handlers/*.mjs"
|
|
238
238
|
},
|
|
239
239
|
"require": {
|
|
240
|
-
"types": "./dist/lib/cjs/obsidian/
|
|
241
|
-
"default": "./dist/lib/cjs/obsidian/
|
|
240
|
+
"types": "./dist/lib/cjs/obsidian/command-handlers/*.d.cts",
|
|
241
|
+
"default": "./dist/lib/cjs/obsidian/command-handlers/*.cjs"
|
|
242
242
|
}
|
|
243
243
|
},
|
|
244
244
|
"./obsidian/components": {
|
|
@@ -381,6 +381,26 @@
|
|
|
381
381
|
"default": "./dist/lib/cjs/obsidian/plugin/*.cjs"
|
|
382
382
|
}
|
|
383
383
|
},
|
|
384
|
+
"./obsidian/plugin/components": {
|
|
385
|
+
"import": {
|
|
386
|
+
"types": "./dist/lib/esm/obsidian/plugin/components/index.d.mts",
|
|
387
|
+
"default": "./dist/lib/esm/obsidian/plugin/components/index.mjs"
|
|
388
|
+
},
|
|
389
|
+
"require": {
|
|
390
|
+
"types": "./dist/lib/cjs/obsidian/plugin/components/index.d.cts",
|
|
391
|
+
"default": "./dist/lib/cjs/obsidian/plugin/components/index.cjs"
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
"./obsidian/plugin/components/*": {
|
|
395
|
+
"import": {
|
|
396
|
+
"types": "./dist/lib/esm/obsidian/plugin/components/*.d.mts",
|
|
397
|
+
"default": "./dist/lib/esm/obsidian/plugin/components/*.mjs"
|
|
398
|
+
},
|
|
399
|
+
"require": {
|
|
400
|
+
"types": "./dist/lib/cjs/obsidian/plugin/components/*.d.cts",
|
|
401
|
+
"default": "./dist/lib/cjs/obsidian/plugin/components/*.cjs"
|
|
402
|
+
}
|
|
403
|
+
},
|
|
384
404
|
"./obsidian/react": {
|
|
385
405
|
"import": {
|
|
386
406
|
"types": "./dist/lib/esm/obsidian/react/index.d.mts",
|
|
@@ -681,7 +701,8 @@
|
|
|
681
701
|
"eslint-import-resolver-typescript": "latest",
|
|
682
702
|
"eslint-plugin-import-x": "latest",
|
|
683
703
|
"eslint-plugin-jsdoc": "latest",
|
|
684
|
-
"eslint-plugin-
|
|
704
|
+
"eslint-plugin-no-unsanitized": "latest",
|
|
705
|
+
"eslint-plugin-obsidianmd": "github:mnaoumov/eslint-plugin",
|
|
685
706
|
"eslint-plugin-perfectionist": "latest",
|
|
686
707
|
"eslint-plugin-tsdoc": "latest",
|
|
687
708
|
"globals": "latest",
|
|
@@ -1,441 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
-
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
(function initCjs() {
|
|
7
|
-
const globalThisRecord = globalThis;
|
|
8
|
-
globalThisRecord['__name'] ??= name;
|
|
9
|
-
const originalRequire = require;
|
|
10
|
-
if (originalRequire && !originalRequire.__isPatched) {
|
|
11
|
-
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
12
|
-
require = Object.assign(
|
|
13
|
-
(id) => requirePatched(id),
|
|
14
|
-
originalRequire,
|
|
15
|
-
{
|
|
16
|
-
__isPatched: true
|
|
17
|
-
}
|
|
18
|
-
);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const newFuncs = {
|
|
22
|
-
__extractDefault() {
|
|
23
|
-
return extractDefault;
|
|
24
|
-
},
|
|
25
|
-
process() {
|
|
26
|
-
const browserProcess = {
|
|
27
|
-
browser: true,
|
|
28
|
-
cwd() {
|
|
29
|
-
return '/';
|
|
30
|
-
},
|
|
31
|
-
env: {},
|
|
32
|
-
platform: 'android'
|
|
33
|
-
};
|
|
34
|
-
return browserProcess;
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
for (const key of Object.keys(newFuncs)) {
|
|
39
|
-
globalThisRecord[key] ??= newFuncs[key]?.();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function name(obj) {
|
|
43
|
-
return obj;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function extractDefault(module) {
|
|
47
|
-
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
|
|
51
|
-
'obsidian',
|
|
52
|
-
'@codemirror/autocomplete',
|
|
53
|
-
'@codemirror/collab',
|
|
54
|
-
'@codemirror/commands',
|
|
55
|
-
'@codemirror/language',
|
|
56
|
-
'@codemirror/lint',
|
|
57
|
-
'@codemirror/search',
|
|
58
|
-
'@codemirror/state',
|
|
59
|
-
'@codemirror/text',
|
|
60
|
-
'@codemirror/view',
|
|
61
|
-
'@lezer/common',
|
|
62
|
-
'@lezer/lr',
|
|
63
|
-
'@lezer/highlight'];
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
|
|
67
|
-
'@codemirror/closebrackets',
|
|
68
|
-
'@codemirror/comment',
|
|
69
|
-
'@codemirror/fold',
|
|
70
|
-
'@codemirror/gutter',
|
|
71
|
-
'@codemirror/highlight',
|
|
72
|
-
'@codemirror/history',
|
|
73
|
-
'@codemirror/matchbrackets',
|
|
74
|
-
'@codemirror/panel',
|
|
75
|
-
'@codemirror/rangeset',
|
|
76
|
-
'@codemirror/rectangular-selection',
|
|
77
|
-
'@codemirror/stream-parser',
|
|
78
|
-
'@codemirror/tooltip'];
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
function requirePatched(id) {
|
|
82
|
-
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
|
|
83
|
-
return originalRequire?.(id);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
|
|
87
|
-
if (globalThis?.app?.isMobile) {
|
|
88
|
-
if (id === 'process' || id === 'node:process') {
|
|
89
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
90
|
-
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
91
|
-
return globalThis.process;
|
|
92
|
-
}
|
|
93
|
-
} else {
|
|
94
|
-
const module = originalRequire?.(id);
|
|
95
|
-
if (module) {
|
|
96
|
-
return extractDefault(module);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// eslint-disable-next-line no-console -- Valid usage.
|
|
101
|
-
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
102
|
-
return {};
|
|
103
|
-
}
|
|
104
|
-
})();
|
|
105
|
-
|
|
106
|
-
"use strict";
|
|
107
|
-
var __defProp = Object.defineProperty;
|
|
108
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
109
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
110
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
111
|
-
var __export = (target, all) => {
|
|
112
|
-
for (var name in all)
|
|
113
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
114
|
-
};
|
|
115
|
-
var __copyProps = (to, from, except, desc) => {
|
|
116
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
117
|
-
for (let key of __getOwnPropNames(from))
|
|
118
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
119
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
120
|
-
}
|
|
121
|
-
return to;
|
|
122
|
-
};
|
|
123
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
124
|
-
var abstract_file_command_base_exports = {};
|
|
125
|
-
__export(abstract_file_command_base_exports, {
|
|
126
|
-
AbstractFileCommandBase: () => AbstractFileCommandBase,
|
|
127
|
-
AbstractFileCommandInvocationBase: () => AbstractFileCommandInvocationBase,
|
|
128
|
-
AbstractFilesCommandInvocationBase: () => AbstractFilesCommandInvocationBase,
|
|
129
|
-
ArrayDelegatingAbstractFileCommandInvocation: () => ArrayDelegatingAbstractFileCommandInvocation,
|
|
130
|
-
SequentialAbstractFilesCommandInvocationBase: () => SequentialAbstractFilesCommandInvocationBase
|
|
131
|
-
});
|
|
132
|
-
module.exports = __toCommonJS(abstract_file_command_base_exports);
|
|
133
|
-
var import_command_base = require('./command-base.cjs');
|
|
134
|
-
var import_non_editor_command_base = require('./non-editor-command-base.cjs');
|
|
135
|
-
class AbstractFileCommandInvocationBase extends import_command_base.CommandInvocationBase {
|
|
136
|
-
/** */
|
|
137
|
-
_abstractFile;
|
|
138
|
-
/**
|
|
139
|
-
* The abstract file to invoke the command for.
|
|
140
|
-
*
|
|
141
|
-
* @returns The abstract file to invoke the command for.
|
|
142
|
-
* @throws If the abstract file is not set.
|
|
143
|
-
*/
|
|
144
|
-
get abstractFile() {
|
|
145
|
-
if (!this._abstractFile) {
|
|
146
|
-
throw new Error("Abstract file not set");
|
|
147
|
-
}
|
|
148
|
-
return this._abstractFile;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Creates a new abstract file command invocation.
|
|
152
|
-
*
|
|
153
|
-
* @param plugin - The plugin that the command belongs to.
|
|
154
|
-
* @param abstractFile - The abstract file to invoke the command for.
|
|
155
|
-
*/
|
|
156
|
-
constructor(plugin, abstractFile) {
|
|
157
|
-
super(plugin);
|
|
158
|
-
this._abstractFile = abstractFile;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Checks if the command can execute.
|
|
162
|
-
*
|
|
163
|
-
* @returns Whether the command can execute.
|
|
164
|
-
*/
|
|
165
|
-
canExecute() {
|
|
166
|
-
return super.canExecute() && !!this._abstractFile;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
class AbstractFileCommandBase extends import_non_editor_command_base.NonEditorCommandBase {
|
|
170
|
-
/**
|
|
171
|
-
* Gets the item name to use in the file menu.
|
|
172
|
-
*
|
|
173
|
-
* @returns The item name to use in the file menu.
|
|
174
|
-
*/
|
|
175
|
-
get fileMenuItemName() {
|
|
176
|
-
return this._fileMenuItemName;
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Gets the section to use in the file menu.
|
|
180
|
-
*
|
|
181
|
-
* @returns The section to use in the file menu.
|
|
182
|
-
*/
|
|
183
|
-
get fileMenuSection() {
|
|
184
|
-
return this._fileMenuSection;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Gets the icon to use in the file menu submenu.
|
|
188
|
-
*
|
|
189
|
-
* @returns The icon to use in the file menu submenu.
|
|
190
|
-
*/
|
|
191
|
-
get fileMenuSubmenuIcon() {
|
|
192
|
-
return this._fileMenuSubmenuIcon;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Gets the item name to use in the files menu.
|
|
196
|
-
*
|
|
197
|
-
* @returns The item name to use in the files menu.
|
|
198
|
-
*/
|
|
199
|
-
get filesMenuItemName() {
|
|
200
|
-
return this._filesMenuItemName;
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Gets the section to use in the files menu.
|
|
204
|
-
*
|
|
205
|
-
* @returns The section to use in the files menu.
|
|
206
|
-
*/
|
|
207
|
-
get filesMenuSection() {
|
|
208
|
-
return this._filesMenuSection;
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Gets the icon to use in the files menu submenu.
|
|
212
|
-
*
|
|
213
|
-
* @returns The icon to use in the files menu submenu.
|
|
214
|
-
*/
|
|
215
|
-
get filesMenuSubmenuIcon() {
|
|
216
|
-
return this._filesMenuSubmenuIcon;
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Gets whether to add the command to the submenu.
|
|
220
|
-
*
|
|
221
|
-
* @returns Whether to add the command to the submenu.
|
|
222
|
-
*/
|
|
223
|
-
get shouldAddCommandToSubmenu() {
|
|
224
|
-
return this._shouldAddCommandToSubmenu;
|
|
225
|
-
}
|
|
226
|
-
_fileMenuItemName;
|
|
227
|
-
_fileMenuSection;
|
|
228
|
-
_fileMenuSubmenuIcon;
|
|
229
|
-
_filesMenuItemName;
|
|
230
|
-
_filesMenuSection;
|
|
231
|
-
_filesMenuSubmenuIcon;
|
|
232
|
-
_shouldAddCommandToSubmenu;
|
|
233
|
-
/**
|
|
234
|
-
* Creates a new abstract file command.
|
|
235
|
-
*
|
|
236
|
-
* @param params - The parameters for the abstract file command.
|
|
237
|
-
*/
|
|
238
|
-
constructor(params) {
|
|
239
|
-
super(params);
|
|
240
|
-
this._fileMenuItemName = params.fileMenuItemName;
|
|
241
|
-
this._fileMenuSection = params.fileMenuSection;
|
|
242
|
-
this._fileMenuSubmenuIcon = params.fileMenuSubmenuIcon;
|
|
243
|
-
this._filesMenuItemName = params.filesMenuItemName;
|
|
244
|
-
this._filesMenuSection = params.filesMenuSection;
|
|
245
|
-
this._filesMenuSubmenuIcon = params.filesMenuSubmenuIcon;
|
|
246
|
-
this._shouldAddCommandToSubmenu = params.shouldAddCommandToSubmenu;
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Checks if the command can execute or executes it.
|
|
250
|
-
*
|
|
251
|
-
* @param checking - Is checking mode only. If `true`, only the check if the command can execute is performed. If `false`, the command is executed.
|
|
252
|
-
* @returns Whether the command can execute.
|
|
253
|
-
*/
|
|
254
|
-
checkCallback(checking) {
|
|
255
|
-
if (!this.shouldAddToCommandPalette()) {
|
|
256
|
-
return false;
|
|
257
|
-
}
|
|
258
|
-
return super.checkCallback(checking);
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* Registers the command.
|
|
262
|
-
*/
|
|
263
|
-
register() {
|
|
264
|
-
super.register();
|
|
265
|
-
this.plugin.registerEvent(this.app.workspace.on("file-menu", this.handleAbstractFileMenu.bind(this)));
|
|
266
|
-
this.plugin.registerEvent(this.app.workspace.on("files-menu", this.handleAbstractFilesMenu.bind(this)));
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Creates a new file command invocation.
|
|
270
|
-
*
|
|
271
|
-
* @param abstractFile - The abstract file to create the command invocation for.
|
|
272
|
-
* @returns The command invocation.
|
|
273
|
-
*/
|
|
274
|
-
createCommandInvocation(abstractFile) {
|
|
275
|
-
return this.createCommandInvocationForAbstractFile(abstractFile ?? this.app.workspace.getActiveFile());
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Creates a new command invocation for abstract files.
|
|
279
|
-
*
|
|
280
|
-
* @param abstractFiles - The abstract files to create the command invocation for.
|
|
281
|
-
* @returns The command invocation.
|
|
282
|
-
*/
|
|
283
|
-
createCommandInvocationForAbstractFiles(abstractFiles) {
|
|
284
|
-
return new SequentialAbstractFilesCommandInvocationBase(this.plugin, abstractFiles, this.createCommandInvocationForAbstractFile.bind(this));
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* Checks if the command should be added to the abstract file menu.
|
|
288
|
-
*
|
|
289
|
-
* @param _abstractFile - The abstract file to check.
|
|
290
|
-
* @param _source - The source of the abstract file.
|
|
291
|
-
* @param _leaf - The leaf to check.
|
|
292
|
-
* @returns Whether the command should be added to the abstract file menu.
|
|
293
|
-
*/
|
|
294
|
-
shouldAddToAbstractFileMenu(_abstractFile, _source, _leaf) {
|
|
295
|
-
return false;
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* Checks if the command should be added to the abstract files menu.
|
|
299
|
-
*
|
|
300
|
-
* @param abstractFiles - The abstract files to check.
|
|
301
|
-
* @param source - The source of the abstract files.
|
|
302
|
-
* @param leaf - The leaf to check.
|
|
303
|
-
* @returns Whether the command should be added to the abstract files menu.
|
|
304
|
-
*/
|
|
305
|
-
shouldAddToAbstractFilesMenu(abstractFiles, source, leaf) {
|
|
306
|
-
for (const abstractFile of abstractFiles) {
|
|
307
|
-
if (!this.shouldAddToAbstractFileMenu(abstractFile, source, leaf)) {
|
|
308
|
-
return false;
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
return true;
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Checks if the command should be added to the command palette.
|
|
315
|
-
*
|
|
316
|
-
* @returns Whether the command should be added to the command palette.
|
|
317
|
-
*/
|
|
318
|
-
shouldAddToCommandPalette() {
|
|
319
|
-
return true;
|
|
320
|
-
}
|
|
321
|
-
handleAbstractFileMenu(menu, abstractFile, source, leaf) {
|
|
322
|
-
if (!this.shouldAddToAbstractFileMenu(abstractFile, source, leaf)) {
|
|
323
|
-
return;
|
|
324
|
-
}
|
|
325
|
-
if (!this.createCommandInvocation(abstractFile).invoke(true)) {
|
|
326
|
-
return;
|
|
327
|
-
}
|
|
328
|
-
const fileMenuSection = this.fileMenuSection ?? this.plugin.manifest.name;
|
|
329
|
-
if (this.shouldAddCommandToSubmenu) {
|
|
330
|
-
menu.setSectionSubmenu(fileMenuSection, {
|
|
331
|
-
icon: this.fileMenuSubmenuIcon ?? "",
|
|
332
|
-
title: fileMenuSection
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
menu.addItem((item) => {
|
|
336
|
-
item.setTitle(this.fileMenuItemName ?? this.originalName).setIcon(this.icon).setSection(fileMenuSection).onClick(() => this.createCommandInvocation(abstractFile).invoke(false));
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
handleAbstractFilesMenu(menu, abstractFiles, source, leaf) {
|
|
340
|
-
if (!this.shouldAddToAbstractFilesMenu(abstractFiles, source, leaf)) {
|
|
341
|
-
return;
|
|
342
|
-
}
|
|
343
|
-
if (!this.createCommandInvocationForAbstractFiles(abstractFiles).invoke(true)) {
|
|
344
|
-
return;
|
|
345
|
-
}
|
|
346
|
-
const filesMenuSection = this.filesMenuSection ?? this.fileMenuSection ?? this.plugin.manifest.name;
|
|
347
|
-
if (this.shouldAddCommandToSubmenu) {
|
|
348
|
-
menu.setSectionSubmenu(filesMenuSection, {
|
|
349
|
-
icon: this.filesMenuSubmenuIcon ?? this.fileMenuSubmenuIcon ?? "",
|
|
350
|
-
title: filesMenuSection
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
menu.addItem((item) => {
|
|
354
|
-
item.setTitle(this.filesMenuItemName ?? this.fileMenuItemName ?? this.originalName).setIcon(this.icon).setSection(filesMenuSection).onClick(() => this.createCommandInvocationForAbstractFiles(abstractFiles).invoke(false));
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
class AbstractFilesCommandInvocationBase extends import_command_base.CommandInvocationBase {
|
|
359
|
-
/**
|
|
360
|
-
* Creates a new abstract files command invocation.
|
|
361
|
-
*
|
|
362
|
-
* @param plugin - The plugin that the command belongs to.
|
|
363
|
-
* @param abstractFiles - The abstract files to invoke the command for.
|
|
364
|
-
*/
|
|
365
|
-
constructor(plugin, abstractFiles) {
|
|
366
|
-
super(plugin);
|
|
367
|
-
this.abstractFiles = abstractFiles;
|
|
368
|
-
}
|
|
369
|
-
abstractFiles;
|
|
370
|
-
}
|
|
371
|
-
class ArrayDelegatingAbstractFileCommandInvocation extends AbstractFileCommandInvocationBase {
|
|
372
|
-
/**
|
|
373
|
-
* Creates a new array-delegating abstract file command invocation.
|
|
374
|
-
*
|
|
375
|
-
* @param plugin - The plugin that the command invocation belongs to.
|
|
376
|
-
* @param abstractFile - The abstract file to invoke the command for.
|
|
377
|
-
* @param createCommandInvocationForFiles - The function to create a command invocation for files.
|
|
378
|
-
*/
|
|
379
|
-
constructor(plugin, abstractFile, createCommandInvocationForFiles) {
|
|
380
|
-
super(plugin, abstractFile);
|
|
381
|
-
this.createCommandInvocationForFiles = createCommandInvocationForFiles;
|
|
382
|
-
}
|
|
383
|
-
createCommandInvocationForFiles;
|
|
384
|
-
/**
|
|
385
|
-
* Checks if the command can execute.
|
|
386
|
-
*
|
|
387
|
-
* @returns Whether the command can execute.
|
|
388
|
-
*/
|
|
389
|
-
canExecute() {
|
|
390
|
-
return super.canExecute() && this.createCommandInvocationForFiles([this.abstractFile]).invoke(true);
|
|
391
|
-
}
|
|
392
|
-
/**
|
|
393
|
-
* Executes the command.
|
|
394
|
-
*
|
|
395
|
-
* @returns A promise that resolves when the command has been executed.
|
|
396
|
-
*/
|
|
397
|
-
async execute() {
|
|
398
|
-
await this.createCommandInvocationForFiles([this.abstractFile]).invokeAsync(false);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
class SequentialAbstractFilesCommandInvocationBase extends AbstractFilesCommandInvocationBase {
|
|
402
|
-
/**
|
|
403
|
-
* Creates a new sequential files command invocation.
|
|
404
|
-
*
|
|
405
|
-
* @param plugin - The plugin that the command invocation belongs to.
|
|
406
|
-
* @param abstractFiles - The files to invoke the command for.
|
|
407
|
-
* @param createCommandInvocationForFile - The function to create a command invocation for a file.
|
|
408
|
-
*/
|
|
409
|
-
constructor(plugin, abstractFiles, createCommandInvocationForFile) {
|
|
410
|
-
super(plugin, abstractFiles);
|
|
411
|
-
this.createCommandInvocationForFile = createCommandInvocationForFile;
|
|
412
|
-
}
|
|
413
|
-
createCommandInvocationForFile;
|
|
414
|
-
/**
|
|
415
|
-
* Checks if the command can execute.
|
|
416
|
-
*
|
|
417
|
-
* @returns Whether the command can execute.
|
|
418
|
-
*/
|
|
419
|
-
canExecute() {
|
|
420
|
-
return super.canExecute() && this.abstractFiles.length > 0 && this.abstractFiles.every((file) => this.createCommandInvocationForFile(file).invoke(true));
|
|
421
|
-
}
|
|
422
|
-
/**
|
|
423
|
-
* Executes the command.
|
|
424
|
-
*
|
|
425
|
-
* @returns A promise that resolves when the command has been executed.
|
|
426
|
-
*/
|
|
427
|
-
async execute() {
|
|
428
|
-
for (const abstractFile of this.abstractFiles) {
|
|
429
|
-
await this.createCommandInvocationForFile(abstractFile).invokeAsync(false);
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
434
|
-
0 && (module.exports = {
|
|
435
|
-
AbstractFileCommandBase,
|
|
436
|
-
AbstractFileCommandInvocationBase,
|
|
437
|
-
AbstractFilesCommandInvocationBase,
|
|
438
|
-
ArrayDelegatingAbstractFileCommandInvocation,
|
|
439
|
-
SequentialAbstractFilesCommandInvocationBase
|
|
440
|
-
});
|
|
441
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbW1hbmRzL2Fic3RyYWN0LWZpbGUtY29tbWFuZC1iYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQmFzZSBjbGFzc2VzIGZvciBhYnN0cmFjdCBmaWxlIGNvbW1hbmRzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWVwbHkgY291cGxlZCB0byBPYnNpZGlhbiBydW50aW1lOyByZXF1aXJlcyBydW5uaW5nIHZhdWx0IGZvciBtZWFuaW5nZnVsIHRlc3RpbmcuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgSWNvbk5hbWUsXG4gIE1lbnUsXG4gIFBsdWdpbixcbiAgVEFic3RyYWN0RmlsZSxcbiAgV29ya3NwYWNlTGVhZlxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgQ29tbWFuZEJhc2VQYXJhbXMgfSBmcm9tICcuL2NvbW1hbmQtYmFzZS50cyc7XG5cbmltcG9ydCB7IENvbW1hbmRJbnZvY2F0aW9uQmFzZSB9IGZyb20gJy4vY29tbWFuZC1iYXNlLnRzJztcbmltcG9ydCB7IE5vbkVkaXRvckNvbW1hbmRCYXNlIH0gZnJvbSAnLi9ub24tZWRpdG9yLWNvbW1hbmQtYmFzZS50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYW4gYWJzdHJhY3QgZmlsZSBjb21tYW5kLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0RmlsZUNvbW1hbmRCYXNlUGFyYW1zPFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW4+IGV4dGVuZHMgQ29tbWFuZEJhc2VQYXJhbXM8VFBsdWdpbj4ge1xuICAvKipcbiAgICogVGhlIGl0ZW0gbmFtZSB0byB1c2UgaW4gdGhlIGZpbGUgbWVudS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVNZW51SXRlbU5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN0aW9uIHRvIHVzZSBpbiB0aGUgZmlsZSBtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU1lbnVTZWN0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgaWNvbiB0byB1c2UgaW4gdGhlIGZpbGUgbWVudSBzdWJtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU1lbnVTdWJtZW51SWNvbj86IEljb25OYW1lIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgaXRlbSBuYW1lIHRvIHVzZSBpbiB0aGUgZmlsZXMgbWVudS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVzTWVudUl0ZW1OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VjdGlvbiB0byB1c2UgaW4gdGhlIGZpbGVzIG1lbnUuXG4gICAqL1xuICByZWFkb25seSBmaWxlc01lbnVTZWN0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgaWNvbiB0byB1c2UgaW4gdGhlIGZpbGVzIG1lbnUgc3VibWVudS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVzTWVudVN1Ym1lbnVJY29uPzogSWNvbk5hbWUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWRkIHRoZSBjb21tYW5kIHRvIHRoZSBzdWJtZW51LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkQWRkQ29tbWFuZFRvU3VibWVudT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWJzdHJhY3QgZmlsZSBjb21tYW5kIGludm9jYXRpb25zLlxuICpcbiAqIEB0eXBlUGFyYW0gVFBsdWdpbiAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGaWxlQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW4+IGV4dGVuZHMgQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4+IHtcbiAgLyoqICovXG4gIHByb3RlY3RlZCByZWFkb25seSBfYWJzdHJhY3RGaWxlOiBudWxsIHwgVEFic3RyYWN0RmlsZTtcblxuICAvKipcbiAgICogVGhlIGFic3RyYWN0IGZpbGUgdG8gaW52b2tlIHRoZSBjb21tYW5kIGZvci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFic3RyYWN0IGZpbGUgdG8gaW52b2tlIHRoZSBjb21tYW5kIGZvci5cbiAgICogQHRocm93cyBJZiB0aGUgYWJzdHJhY3QgZmlsZSBpcyBub3Qgc2V0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBhYnN0cmFjdEZpbGUoKTogVEFic3RyYWN0RmlsZSB7XG4gICAgaWYgKCF0aGlzLl9hYnN0cmFjdEZpbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQWJzdHJhY3QgZmlsZSBub3Qgc2V0Jyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9hYnN0cmFjdEZpbGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBhYnN0cmFjdCBmaWxlIGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBiZWxvbmdzIHRvLlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGFic3RyYWN0IGZpbGUgdG8gaW52b2tlIHRoZSBjb21tYW5kIGZvci5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwbHVnaW46IFRQbHVnaW4sIGFic3RyYWN0RmlsZTogbnVsbCB8IFRBYnN0cmFjdEZpbGUpIHtcbiAgICBzdXBlcihwbHVnaW4pO1xuICAgIHRoaXMuX2Fic3RyYWN0RmlsZSA9IGFic3RyYWN0RmlsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY2FuRXhlY3V0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuY2FuRXhlY3V0ZSgpICYmICEhdGhpcy5fYWJzdHJhY3RGaWxlO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWJzdHJhY3QgZmlsZSBjb21tYW5kcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgYmVsb25ncyB0by5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsZUNvbW1hbmRCYXNlPFRQbHVnaW4gZXh0ZW5kcyBQbHVnaW4gPSBQbHVnaW4+IGV4dGVuZHMgTm9uRWRpdG9yQ29tbWFuZEJhc2U8VFBsdWdpbj4ge1xuICAvKipcbiAgICogR2V0cyB0aGUgaXRlbSBuYW1lIHRvIHVzZSBpbiB0aGUgZmlsZSBtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgaXRlbSBuYW1lIHRvIHVzZSBpbiB0aGUgZmlsZSBtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBmaWxlTWVudUl0ZW1OYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVNZW51SXRlbU5hbWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2VjdGlvbiB0byB1c2UgaW4gdGhlIGZpbGUgbWVudS5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNlY3Rpb24gdG8gdXNlIGluIHRoZSBmaWxlIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGZpbGVNZW51U2VjdGlvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9maWxlTWVudVNlY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaWNvbiB0byB1c2UgaW4gdGhlIGZpbGUgbWVudSBzdWJtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgaWNvbiB0byB1c2UgaW4gdGhlIGZpbGUgbWVudSBzdWJtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBmaWxlTWVudVN1Ym1lbnVJY29uKCk6IEljb25OYW1lIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZU1lbnVTdWJtZW51SWNvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpdGVtIG5hbWUgdG8gdXNlIGluIHRoZSBmaWxlcyBtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgaXRlbSBuYW1lIHRvIHVzZSBpbiB0aGUgZmlsZXMgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgZmlsZXNNZW51SXRlbU5hbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsZXNNZW51SXRlbU5hbWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2VjdGlvbiB0byB1c2UgaW4gdGhlIGZpbGVzIG1lbnUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBzZWN0aW9uIHRvIHVzZSBpbiB0aGUgZmlsZXMgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgZmlsZXNNZW51U2VjdGlvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9maWxlc01lbnVTZWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGljb24gdG8gdXNlIGluIHRoZSBmaWxlcyBtZW51IHN1Ym1lbnUuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpY29uIHRvIHVzZSBpbiB0aGUgZmlsZXMgbWVudSBzdWJtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBmaWxlc01lbnVTdWJtZW51SWNvbigpOiBJY29uTmFtZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVzTWVudVN1Ym1lbnVJY29uO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgd2hldGhlciB0byBhZGQgdGhlIGNvbW1hbmQgdG8gdGhlIHN1Ym1lbnUuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdG8gYWRkIHRoZSBjb21tYW5kIHRvIHRoZSBzdWJtZW51LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBzaG91bGRBZGRDb21tYW5kVG9TdWJtZW51KCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsZU1lbnVJdGVtTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsZU1lbnVTZWN0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWxlTWVudVN1Ym1lbnVJY29uPzogSWNvbk5hbWUgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGVzTWVudUl0ZW1OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWxlc01lbnVTZWN0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWxlc01lbnVTdWJtZW51SWNvbj86IEljb25OYW1lIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBhYnN0cmFjdCBmaWxlIGNvbW1hbmQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGFic3RyYWN0IGZpbGUgY29tbWFuZC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IEFic3RyYWN0RmlsZUNvbW1hbmRCYXNlUGFyYW1zPFRQbHVnaW4+KSB7XG4gICAgc3VwZXIocGFyYW1zKTtcbiAgICB0aGlzLl9maWxlTWVudUl0ZW1OYW1lID0gcGFyYW1zLmZpbGVNZW51SXRlbU5hbWU7XG4gICAgdGhpcy5fZmlsZU1lbnVTZWN0aW9uID0gcGFyYW1zLmZpbGVNZW51U2VjdGlvbjtcbiAgICB0aGlzLl9maWxlTWVudVN1Ym1lbnVJY29uID0gcGFyYW1zLmZpbGVNZW51U3VibWVudUljb247XG4gICAgdGhpcy5fZmlsZXNNZW51SXRlbU5hbWUgPSBwYXJhbXMuZmlsZXNNZW51SXRlbU5hbWU7XG4gICAgdGhpcy5fZmlsZXNNZW51U2VjdGlvbiA9IHBhcmFtcy5maWxlc01lbnVTZWN0aW9uO1xuICAgIHRoaXMuX2ZpbGVzTWVudVN1Ym1lbnVJY29uID0gcGFyYW1zLmZpbGVzTWVudVN1Ym1lbnVJY29uO1xuICAgIHRoaXMuX3Nob3VsZEFkZENvbW1hbmRUb1N1Ym1lbnUgPSBwYXJhbXMuc2hvdWxkQWRkQ29tbWFuZFRvU3VibWVudTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgb3IgZXhlY3V0ZXMgaXQuXG4gICAqXG4gICAqIEBwYXJhbSBjaGVja2luZyAtIElzIGNoZWNraW5nIG1vZGUgb25seS4gSWYgYHRydWVgLCBvbmx5IHRoZSBjaGVjayBpZiB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBpcyBwZXJmb3JtZWQuIElmIGBmYWxzZWAsIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkLlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNoZWNrQ2FsbGJhY2soY2hlY2tpbmc6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkQWRkVG9Db21tYW5kUGFsZXR0ZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5jaGVja0NhbGxiYWNrKGNoZWNraW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgdGhlIGNvbW1hbmQuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVnaXN0ZXIoKTogdm9pZCB7XG4gICAgc3VwZXIucmVnaXN0ZXIoKTtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbignZmlsZS1tZW51JywgdGhpcy5oYW5kbGVBYnN0cmFjdEZpbGVNZW51LmJpbmQodGhpcykpKTtcbiAgICB0aGlzLnBsdWdpbi5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbignZmlsZXMtbWVudScsIHRoaXMuaGFuZGxlQWJzdHJhY3RGaWxlc01lbnUuYmluZCh0aGlzKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZmlsZSBjb21tYW5kIGludm9jYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBhYnN0cmFjdEZpbGUgLSBUaGUgYWJzdHJhY3QgZmlsZSB0byBjcmVhdGUgdGhlIGNvbW1hbmQgaW52b2NhdGlvbiBmb3IuXG4gICAqIEByZXR1cm5zIFRoZSBjb21tYW5kIGludm9jYXRpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlQ29tbWFuZEludm9jYXRpb24oYWJzdHJhY3RGaWxlPzogVEFic3RyYWN0RmlsZSk6IEFic3RyYWN0RmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JBYnN0cmFjdEZpbGUoYWJzdHJhY3RGaWxlID8/IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVGaWxlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29tbWFuZCBpbnZvY2F0aW9uIGZvciBhbiBhYnN0cmFjdCBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGFic3RyYWN0IGZpbGUgdG8gY3JlYXRlIHRoZSBjb21tYW5kIGludm9jYXRpb24gZm9yLlxuICAgKiBAcmV0dXJucyBUaGUgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uRm9yQWJzdHJhY3RGaWxlKGFic3RyYWN0RmlsZTogbnVsbCB8IFRBYnN0cmFjdEZpbGUpOiBBYnN0cmFjdEZpbGVDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbj47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgY29tbWFuZCBpbnZvY2F0aW9uIGZvciBhYnN0cmFjdCBmaWxlcy5cbiAgICpcbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZXMgLSBUaGUgYWJzdHJhY3QgZmlsZXMgdG8gY3JlYXRlIHRoZSBjb21tYW5kIGludm9jYXRpb24gZm9yLlxuICAgKiBAcmV0dXJucyBUaGUgY29tbWFuZCBpbnZvY2F0aW9uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uRm9yQWJzdHJhY3RGaWxlcyhhYnN0cmFjdEZpbGVzOiBUQWJzdHJhY3RGaWxlW10pOiBBYnN0cmFjdEZpbGVzQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4+IHtcbiAgICByZXR1cm4gbmV3IFNlcXVlbnRpYWxBYnN0cmFjdEZpbGVzQ29tbWFuZEludm9jYXRpb25CYXNlKHRoaXMucGx1Z2luLCBhYnN0cmFjdEZpbGVzLCB0aGlzLmNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uRm9yQWJzdHJhY3RGaWxlLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGFic3RyYWN0IGZpbGUgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIF9hYnN0cmFjdEZpbGUgLSBUaGUgYWJzdHJhY3QgZmlsZSB0byBjaGVjay5cbiAgICogQHBhcmFtIF9zb3VyY2UgLSBUaGUgc291cmNlIG9mIHRoZSBhYnN0cmFjdCBmaWxlLlxuICAgKiBAcGFyYW0gX2xlYWYgLSBUaGUgbGVhZiB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGFic3RyYWN0IGZpbGUgbWVudS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG91bGRBZGRUb0Fic3RyYWN0RmlsZU1lbnUoX2Fic3RyYWN0RmlsZTogVEFic3RyYWN0RmlsZSwgX3NvdXJjZTogc3RyaW5nLCBfbGVhZj86IFdvcmtzcGFjZUxlYWYpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21tYW5kIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgYWJzdHJhY3QgZmlsZXMgbWVudS5cbiAgICpcbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZXMgLSBUaGUgYWJzdHJhY3QgZmlsZXMgdG8gY2hlY2suXG4gICAqIEBwYXJhbSBzb3VyY2UgLSBUaGUgc291cmNlIG9mIHRoZSBhYnN0cmFjdCBmaWxlcy5cbiAgICogQHBhcmFtIGxlYWYgLSBUaGUgbGVhZiB0byBjaGVjay5cbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGFic3RyYWN0IGZpbGVzIG1lbnUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9BYnN0cmFjdEZpbGVzTWVudShhYnN0cmFjdEZpbGVzOiBUQWJzdHJhY3RGaWxlW10sIHNvdXJjZTogc3RyaW5nLCBsZWFmPzogV29ya3NwYWNlTGVhZik6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgYWJzdHJhY3RGaWxlIG9mIGFic3RyYWN0RmlsZXMpIHtcbiAgICAgIGlmICghdGhpcy5zaG91bGRBZGRUb0Fic3RyYWN0RmlsZU1lbnUoYWJzdHJhY3RGaWxlLCBzb3VyY2UsIGxlYWYpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjb21tYW5kIHBhbGV0dGUuXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGNvbW1hbmQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBjb21tYW5kIHBhbGV0dGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2hvdWxkQWRkVG9Db21tYW5kUGFsZXR0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQWJzdHJhY3RGaWxlTWVudShtZW51OiBNZW51LCBhYnN0cmFjdEZpbGU6IFRBYnN0cmFjdEZpbGUsIHNvdXJjZTogc3RyaW5nLCBsZWFmPzogV29ya3NwYWNlTGVhZik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRBZGRUb0Fic3RyYWN0RmlsZU1lbnUoYWJzdHJhY3RGaWxlLCBzb3VyY2UsIGxlYWYpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uKGFic3RyYWN0RmlsZSkuaW52b2tlKHRydWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZU1lbnVTZWN0aW9uID0gdGhpcy5maWxlTWVudVNlY3Rpb24gPz8gdGhpcy5wbHVnaW4ubWFuaWZlc3QubmFtZTtcbiAgICBpZiAodGhpcy5zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51KSB7XG4gICAgICBtZW51LnNldFNlY3Rpb25TdWJtZW51KGZpbGVNZW51U2VjdGlvbiwge1xuICAgICAgICBpY29uOiB0aGlzLmZpbGVNZW51U3VibWVudUljb24gPz8gJycsXG4gICAgICAgIHRpdGxlOiBmaWxlTWVudVNlY3Rpb25cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIG1lbnUuYWRkSXRlbSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbVxuICAgICAgICAuc2V0VGl0bGUodGhpcy5maWxlTWVudUl0ZW1OYW1lID8/IHRoaXMub3JpZ2luYWxOYW1lKVxuICAgICAgICAuc2V0SWNvbih0aGlzLmljb24pXG4gICAgICAgIC5zZXRTZWN0aW9uKGZpbGVNZW51U2VjdGlvbilcbiAgICAgICAgLm9uQ2xpY2soKCkgPT4gdGhpcy5jcmVhdGVDb21tYW5kSW52b2NhdGlvbihhYnN0cmFjdEZpbGUpLmludm9rZShmYWxzZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBYnN0cmFjdEZpbGVzTWVudShtZW51OiBNZW51LCBhYnN0cmFjdEZpbGVzOiBUQWJzdHJhY3RGaWxlW10sIHNvdXJjZTogc3RyaW5nLCBsZWFmPzogV29ya3NwYWNlTGVhZik6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG91bGRBZGRUb0Fic3RyYWN0RmlsZXNNZW51KGFic3RyYWN0RmlsZXMsIHNvdXJjZSwgbGVhZikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JBYnN0cmFjdEZpbGVzKGFic3RyYWN0RmlsZXMpLmludm9rZSh0cnVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVzTWVudVNlY3Rpb24gPSB0aGlzLmZpbGVzTWVudVNlY3Rpb24gPz8gdGhpcy5maWxlTWVudVNlY3Rpb24gPz8gdGhpcy5wbHVnaW4ubWFuaWZlc3QubmFtZTtcbiAgICBpZiAodGhpcy5zaG91bGRBZGRDb21tYW5kVG9TdWJtZW51KSB7XG4gICAgICBtZW51LnNldFNlY3Rpb25TdWJtZW51KGZpbGVzTWVudVNlY3Rpb24sIHtcbiAgICAgICAgaWNvbjogdGhpcy5maWxlc01lbnVTdWJtZW51SWNvbiA/PyB0aGlzLmZpbGVNZW51U3VibWVudUljb24gPz8gJycsXG4gICAgICAgIHRpdGxlOiBmaWxlc01lbnVTZWN0aW9uXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBtZW51LmFkZEl0ZW0oKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW1cbiAgICAgICAgLnNldFRpdGxlKHRoaXMuZmlsZXNNZW51SXRlbU5hbWUgPz8gdGhpcy5maWxlTWVudUl0ZW1OYW1lID8/IHRoaXMub3JpZ2luYWxOYW1lKVxuICAgICAgICAuc2V0SWNvbih0aGlzLmljb24pXG4gICAgICAgIC5zZXRTZWN0aW9uKGZpbGVzTWVudVNlY3Rpb24pXG4gICAgICAgIC5vbkNsaWNrKCgpID0+IHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JBYnN0cmFjdEZpbGVzKGFic3RyYWN0RmlsZXMpLmludm9rZShmYWxzZSkpO1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYWJzdHJhY3QgZmlsZXMgY29tbWFuZCBpbnZvY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFRQbHVnaW4gLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgYmVsb25ncyB0by5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsZXNDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbiBleHRlbmRzIFBsdWdpbj4gZXh0ZW5kcyBDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbj4ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBhYnN0cmFjdCBmaWxlcyBjb21tYW5kIGludm9jYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgYmVsb25ncyB0by5cbiAgICogQHBhcmFtIGFic3RyYWN0RmlsZXMgLSBUaGUgYWJzdHJhY3QgZmlsZXMgdG8gaW52b2tlIHRoZSBjb21tYW5kIGZvci5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwbHVnaW46IFRQbHVnaW4sIHB1YmxpYyByZWFkb25seSBhYnN0cmFjdEZpbGVzOiBUQWJzdHJhY3RGaWxlW10pIHtcbiAgICBzdXBlcihwbHVnaW4pO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgYXJyYXktZGVsZWdhdGluZyBhYnN0cmFjdCBmaWxlIGNvbW1hbmQgaW52b2NhdGlvbnMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBjbGFzcyBBcnJheURlbGVnYXRpbmdBYnN0cmFjdEZpbGVDb21tYW5kSW52b2NhdGlvbjxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luPiBleHRlbmRzIEFic3RyYWN0RmlsZUNvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luPiB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGFycmF5LWRlbGVnYXRpbmcgYWJzdHJhY3QgZmlsZSBjb21tYW5kIGludm9jYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRoYXQgdGhlIGNvbW1hbmQgaW52b2NhdGlvbiBiZWxvbmdzIHRvLlxuICAgKiBAcGFyYW0gYWJzdHJhY3RGaWxlIC0gVGhlIGFic3RyYWN0IGZpbGUgdG8gaW52b2tlIHRoZSBjb21tYW5kIGZvci5cbiAgICogQHBhcmFtIGNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uRm9yRmlsZXMgLSBUaGUgZnVuY3Rpb24gdG8gY3JlYXRlIGEgY29tbWFuZCBpbnZvY2F0aW9uIGZvciBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwbHVnaW46IFRQbHVnaW4sXG4gICAgYWJzdHJhY3RGaWxlOiBudWxsIHwgVEFic3RyYWN0RmlsZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uRm9yRmlsZXM6IChhYnN0cmFjdEZpbGVzOiBUQWJzdHJhY3RGaWxlW10pID0+IEFic3RyYWN0RmlsZXNDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbj5cbiAgKSB7XG4gICAgc3VwZXIocGx1Z2luLCBhYnN0cmFjdEZpbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZS5cbiAgICpcbiAgICogQHJldHVybnMgV2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBjYW5FeGVjdXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5jYW5FeGVjdXRlKCkgJiYgdGhpcy5jcmVhdGVDb21tYW5kSW52b2NhdGlvbkZvckZpbGVzKFt0aGlzLmFic3RyYWN0RmlsZV0pLmludm9rZSh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyB0aGUgY29tbWFuZC5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29tbWFuZCBoYXMgYmVlbiBleGVjdXRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBleGVjdXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlcyhbdGhpcy5hYnN0cmFjdEZpbGVdKS5pbnZva2VBc3luYyhmYWxzZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBzZXF1ZW50aWFsIGFic3RyYWN0IGZpbGVzIGNvbW1hbmQgaW52b2NhdGlvbnMuXG4gKlxuICogQHR5cGVQYXJhbSBUUGx1Z2luIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiB0aGF0IHRoZSBjb21tYW5kIGJlbG9uZ3MgdG8uXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXF1ZW50aWFsQWJzdHJhY3RGaWxlc0NvbW1hbmRJbnZvY2F0aW9uQmFzZTxUUGx1Z2luIGV4dGVuZHMgUGx1Z2luPiBleHRlbmRzIEFic3RyYWN0RmlsZXNDb21tYW5kSW52b2NhdGlvbkJhc2U8VFBsdWdpbj4ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBzZXF1ZW50aWFsIGZpbGVzIGNvbW1hbmQgaW52b2NhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBsdWdpbiAtIFRoZSBwbHVnaW4gdGhhdCB0aGUgY29tbWFuZCBpbnZvY2F0aW9uIGJlbG9uZ3MgdG8uXG4gICAqIEBwYXJhbSBhYnN0cmFjdEZpbGVzIC0gVGhlIGZpbGVzIHRvIGludm9rZSB0aGUgY29tbWFuZCBmb3IuXG4gICAqIEBwYXJhbSBjcmVhdGVDb21tYW5kSW52b2NhdGlvbkZvckZpbGUgLSBUaGUgZnVuY3Rpb24gdG8gY3JlYXRlIGEgY29tbWFuZCBpbnZvY2F0aW9uIGZvciBhIGZpbGUuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcGx1Z2luOiBUUGx1Z2luLFxuICAgIGFic3RyYWN0RmlsZXM6IFRBYnN0cmFjdEZpbGVbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZUNvbW1hbmRJbnZvY2F0aW9uRm9yRmlsZTogKGFic3RyYWN0RmlsZTogVEFic3RyYWN0RmlsZSkgPT4gQWJzdHJhY3RGaWxlQ29tbWFuZEludm9jYXRpb25CYXNlPFRQbHVnaW4+XG4gICkge1xuICAgIHN1cGVyKHBsdWdpbiwgYWJzdHJhY3RGaWxlcyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNhbkV4ZWN1dGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmNhbkV4ZWN1dGUoKSAmJiB0aGlzLmFic3RyYWN0RmlsZXMubGVuZ3RoID4gMCAmJiB0aGlzLmFic3RyYWN0RmlsZXMuZXZlcnkoKGZpbGUpID0+IHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlKGZpbGUpLmludm9rZSh0cnVlKSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgdGhlIGNvbW1hbmQuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNvbW1hbmQgaGFzIGJlZW4gZXhlY3V0ZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBmb3IgKGNvbnN0IGFic3RyYWN0RmlsZSBvZiB0aGlzLmFic3RyYWN0RmlsZXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlQ29tbWFuZEludm9jYXRpb25Gb3JGaWxlKGFic3RyYWN0RmlsZSkuaW52b2tlQXN5bmMoZmFsc2UpO1xuICAgIH1cbiAgfVxufVxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtCQSwwQkFBc0M7QUFDdEMscUNBQXFDO0FBaUQ5QixNQUFlLDBDQUFrRSwwQ0FBK0I7QUFBQTtBQUFBLEVBRWxHO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRbkIsSUFBYyxlQUE4QjtBQUMxQyxRQUFJLENBQUMsS0FBSyxlQUFlO0FBQ3ZCLFlBQU0sSUFBSSxNQUFNLHVCQUF1QjtBQUFBLElBQ3pDO0FBQ0EsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUU8sWUFBWSxRQUFpQixjQUFvQztBQUN0RSxVQUFNLE1BQU07QUFDWixTQUFLLGdCQUFnQjtBQUFBLEVBQ3ZCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT21CLGFBQXNCO0FBQ3ZDLFdBQU8s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
|