obsidian-dev-utils 88.8.0 → 89.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 +19 -0
- package/dist/demo-vault-helper/main.js +20 -23
- package/dist/integration-test-plugin/main.js +2218 -1734
- package/dist/lib/cjs/__merged.cjs +57 -35
- package/dist/lib/cjs/__merged.d.cts +12 -10
- package/dist/lib/cjs/abort-controller.cjs +15 -22
- package/dist/lib/cjs/array.cjs +27 -26
- package/dist/lib/cjs/array.d.cts +25 -7
- package/dist/lib/cjs/async-events.cjs +87 -91
- package/dist/lib/cjs/async-events.d.cts +50 -50
- package/dist/lib/cjs/async.cjs +80 -80
- package/dist/lib/cjs/async.d.cts +23 -23
- package/dist/lib/cjs/beeper.cjs +11 -15
- package/dist/lib/cjs/blob.cjs +14 -25
- package/dist/lib/cjs/codemirror/index.cjs +11 -15
- package/dist/lib/cjs/codemirror/state-field-spec.cjs +11 -15
- package/dist/lib/cjs/debug-controller.cjs +11 -15
- package/dist/lib/cjs/debug.cjs +24 -32
- package/dist/lib/cjs/debug.d.cts +1 -1
- package/dist/lib/cjs/disposable.cjs +59 -43
- package/dist/lib/cjs/disposable.d.cts +27 -8
- package/dist/lib/cjs/enum.cjs +11 -15
- package/dist/lib/cjs/error.cjs +28 -33
- package/dist/lib/cjs/function.cjs +30 -34
- package/dist/lib/cjs/function.d.cts +26 -26
- package/dist/lib/cjs/generated-during-build.cjs +12 -16
- package/dist/lib/cjs/html-element.cjs +84 -89
- package/dist/lib/cjs/html-element.d.cts +15 -15
- package/dist/lib/cjs/index.cjs +11 -15
- package/dist/lib/cjs/integration-test-setup.cjs +11 -15
- package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +11 -15
- package/dist/lib/cjs/jest-setup.cjs +11 -15
- package/dist/lib/cjs/library.cjs +11 -15
- package/dist/lib/cjs/object-utils.cjs +120 -117
- package/dist/lib/cjs/object-utils.d.cts +27 -27
- package/dist/lib/cjs/obsidian/@types/dataview/data-model/value.d.cts +1 -1
- package/dist/lib/cjs/obsidian/@types/dataview/expression/field.d.cts +1 -1
- package/dist/lib/cjs/obsidian/@types/dataview/expression/functions.d.cts +4 -4
- package/dist/lib/cjs/obsidian/active-file-provider.cjs +11 -15
- package/dist/lib/cjs/obsidian/app.cjs +11 -15
- package/dist/lib/cjs/obsidian/async-with-notice.cjs +28 -32
- package/dist/lib/cjs/obsidian/async-with-notice.d.cts +2 -2
- package/dist/lib/cjs/obsidian/attachment-path.cjs +20 -24
- package/dist/lib/cjs/obsidian/attachment-path.d.cts +5 -5
- package/dist/lib/cjs/obsidian/backlink.cjs +12 -16
- package/dist/lib/cjs/obsidian/bases-view-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/callout.cjs +27 -26
- package/dist/lib/cjs/obsidian/callout.d.cts +9 -3
- package/dist/lib/cjs/obsidian/canvas.cjs +13 -16
- package/dist/lib/cjs/obsidian/case-insensitive-file-index.cjs +18 -20
- package/dist/lib/cjs/obsidian/code-block-markdown-information.cjs +11 -15
- package/dist/lib/cjs/obsidian/code-block-markdown-information.d.cts +2 -2
- package/dist/lib/cjs/obsidian/code-block-reg-exp.cjs +11 -15
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.cjs +18 -16
- package/dist/lib/cjs/obsidian/command-handlers/abstract-file-command-handler.d.cts +5 -0
- package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.cjs +56 -31
- package/dist/lib/cjs/obsidian/command-handlers/command-handler-component.d.cts +42 -8
- package/dist/lib/cjs/obsidian/command-handlers/command-handler.cjs +11 -15
- package/dist/lib/cjs/obsidian/command-handlers/command-handler.d.cts +10 -0
- package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.cjs +26 -30
- package/dist/lib/cjs/obsidian/command-handlers/editor-command-handler.d.cts +8 -8
- package/dist/lib/cjs/obsidian/command-handlers/file-command-handler.cjs +12 -16
- package/dist/lib/cjs/obsidian/command-handlers/folder-command-handler.cjs +12 -16
- package/dist/lib/cjs/obsidian/command-handlers/global-command-handler.cjs +13 -17
- package/dist/lib/cjs/obsidian/command-handlers/index.cjs +11 -15
- package/dist/lib/cjs/obsidian/command-handlers/open-demo-vault-command-handler.cjs +11 -15
- package/dist/lib/cjs/obsidian/command-handlers/open-settings-command-handler.cjs +11 -15
- package/dist/lib/cjs/obsidian/command-handlers/unlock-active-note-command-handler.cjs +11 -15
- package/dist/lib/cjs/obsidian/command-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/community-plugins.cjs +28 -25
- package/dist/lib/cjs/obsidian/community-plugins.d.cts +19 -5
- package/dist/lib/cjs/obsidian/components/abort-signal-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/all-windows-event-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/all-windows-event-component.d.cts +4 -4
- package/dist/lib/cjs/obsidian/components/async-error-handler-component.cjs +13 -16
- package/dist/lib/cjs/obsidian/components/async-events-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/case-insensitive-file-index-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/component-ex.cjs +26 -28
- package/dist/lib/cjs/obsidian/components/component-ex.d.cts +3 -3
- package/dist/lib/cjs/obsidian/components/console-debug-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/components/console-debug-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/components/disposable-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/embed-extensions-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/generate-markdown-link-default-params-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/index.cjs +14 -15
- package/dist/lib/cjs/obsidian/components/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/components/layout-ready-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/menu-event-registrar-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/monkey-around-component.cjs +29 -33
- package/dist/lib/cjs/obsidian/components/monkey-around-component.d.cts +55 -55
- package/dist/lib/cjs/obsidian/components/notebook-navigator-menu-event-registrar-component.cjs +297 -0
- package/dist/lib/cjs/obsidian/components/notebook-navigator-menu-event-registrar-component.d.cts +139 -0
- package/dist/lib/cjs/obsidian/components/plugin-context-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/plugin-notice-component.cjs +28 -31
- package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +26 -30
- package/dist/lib/cjs/obsidian/components/plugin-settings-component.d.cts +8 -8
- package/dist/lib/cjs/obsidian/components/plugin-settings-tab-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/pointer-position-component.cjs +13 -17
- package/dist/lib/cjs/obsidian/components/registry-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.cjs +72 -62
- package/dist/lib/cjs/obsidian/components/rename-delete-handler-component.d.cts +12 -1
- package/dist/lib/cjs/obsidian/components/syntax-highlighting-component.cjs +16 -20
- package/dist/lib/cjs/obsidian/components/syntax-highlighting-component.d.cts +8 -8
- package/dist/lib/cjs/obsidian/constructors/get-dom-events-handlers-constructor.cjs +14 -18
- package/dist/lib/cjs/obsidian/constructors/index.cjs +11 -15
- package/dist/lib/cjs/obsidian/css-class.cjs +11 -15
- package/dist/lib/cjs/obsidian/data-handler.cjs +11 -15
- package/dist/lib/cjs/obsidian/dataview-link.cjs +13 -17
- package/dist/lib/cjs/obsidian/dataview.cjs +35 -41
- package/dist/lib/cjs/obsidian/dataview.d.cts +2 -2
- package/dist/lib/cjs/obsidian/demo-vault-helper.cjs +13 -17
- package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +22 -26
- package/dist/lib/cjs/obsidian/desktop-trusted-input.cjs +23 -21
- package/dist/lib/cjs/obsidian/editor-extension-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/editor-suggest-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/editor.cjs +17 -19
- package/dist/lib/cjs/obsidian/events.cjs +12 -16
- package/dist/lib/cjs/obsidian/events.d.cts +2 -2
- package/dist/lib/cjs/obsidian/extensions-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/file-change.cjs +76 -80
- package/dist/lib/cjs/obsidian/file-change.d.cts +3 -3
- package/dist/lib/cjs/obsidian/file-manager.cjs +33 -22
- package/dist/lib/cjs/obsidian/file-manager.d.cts +20 -1
- package/dist/lib/cjs/obsidian/file-system.cjs +15 -19
- package/dist/lib/cjs/obsidian/file-system.d.cts +3 -3
- package/dist/lib/cjs/obsidian/frontmatter-link-cache-with-offsets.cjs +11 -15
- package/dist/lib/cjs/obsidian/frontmatter.cjs +15 -19
- package/dist/lib/cjs/obsidian/hover-link-source-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/html-element.cjs +13 -17
- package/dist/lib/cjs/obsidian/html-element.d.cts +2 -2
- package/dist/lib/cjs/obsidian/i18n/custom-type-options.cjs +11 -15
- package/dist/lib/cjs/obsidian/i18n/default-translations.cjs +11 -15
- package/dist/lib/cjs/obsidian/i18n/i18n.cjs +13 -16
- package/dist/lib/cjs/obsidian/i18n/i18n.d.cts +7 -0
- package/dist/lib/cjs/obsidian/i18n/index.cjs +11 -15
- package/dist/lib/cjs/obsidian/i18n/locales/en.cjs +11 -15
- package/dist/lib/cjs/obsidian/i18n/locales/index.cjs +11 -15
- package/dist/lib/cjs/obsidian/i18n/locales/translations-map.cjs +11 -15
- package/dist/lib/cjs/obsidian/index.cjs +14 -15
- package/dist/lib/cjs/obsidian/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/is-in-obsidian.cjs +11 -15
- package/dist/lib/cjs/obsidian/link-update-progress.cjs +11 -15
- package/dist/lib/cjs/obsidian/link.cjs +91 -81
- package/dist/lib/cjs/obsidian/link.d.cts +22 -22
- package/dist/lib/cjs/obsidian/logger.cjs +21 -25
- package/dist/lib/cjs/obsidian/logger.d.cts +5 -5
- package/dist/lib/cjs/obsidian/loop.cjs +14 -18
- package/dist/lib/cjs/obsidian/loop.d.cts +1 -1
- package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.cjs +12 -16
- package/dist/lib/cjs/obsidian/markdown-code-block-processor-registrar.d.cts +3 -3
- package/dist/lib/cjs/obsidian/markdown-code-block-processor.cjs +35 -40
- package/dist/lib/cjs/obsidian/markdown-code-block-processor.d.cts +3 -3
- package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.cjs +12 -16
- package/dist/lib/cjs/obsidian/markdown-post-processor-registrar.d.cts +3 -3
- package/dist/lib/cjs/obsidian/markdown-view.cjs +11 -15
- package/dist/lib/cjs/obsidian/markdown.cjs +22 -24
- package/dist/lib/cjs/obsidian/menu-event-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/menu-event-registrar.d.cts +1 -1
- package/dist/lib/cjs/obsidian/metadata-cache.cjs +16 -20
- package/dist/lib/cjs/obsidian/metadata-cache.d.cts +2 -2
- package/dist/lib/cjs/obsidian/modals/alert.cjs +11 -15
- package/dist/lib/cjs/obsidian/modals/confirm.cjs +11 -15
- package/dist/lib/cjs/obsidian/modals/index.cjs +11 -15
- package/dist/lib/cjs/obsidian/modals/minimizable-modal.cjs +28 -32
- package/dist/lib/cjs/obsidian/modals/modal.cjs +11 -15
- package/dist/lib/cjs/obsidian/modals/prompt.cjs +11 -15
- package/dist/lib/cjs/obsidian/modals/select-item.cjs +16 -20
- package/dist/lib/cjs/obsidian/modals/select-item.d.cts +1 -1
- package/dist/lib/cjs/obsidian/modals/select-option.cjs +11 -15
- package/dist/lib/cjs/obsidian/modals/suggest-modal-command-builder.cjs +26 -28
- package/dist/lib/cjs/obsidian/modals/suggest-modal-command-builder.d.cts +5 -5
- package/dist/lib/cjs/obsidian/notebook-navigator.cjs +155 -0
- package/dist/lib/cjs/obsidian/notebook-navigator.d.cts +132 -0
- package/dist/lib/cjs/obsidian/obsidian-protocol-handler-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/obsidian-settings.cjs +11 -15
- package/dist/lib/cjs/obsidian/parse-link.cjs +61 -62
- package/dist/lib/cjs/obsidian/parse-link.d.cts +4 -4
- package/dist/lib/cjs/obsidian/path-settings.cjs +27 -25
- package/dist/lib/cjs/obsidian/pdf.cjs +13 -17
- package/dist/lib/cjs/obsidian/pdf.d.cts +2 -2
- package/dist/lib/cjs/obsidian/plugin/index.cjs +11 -15
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +11 -15
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +156 -52
- package/dist/lib/cjs/obsidian/plugin/plugin-context.cjs +17 -21
- package/dist/lib/cjs/obsidian/plugin/plugin-context.d.cts +2 -2
- package/dist/lib/cjs/obsidian/plugin/plugin-event-source.cjs +20 -24
- package/dist/lib/cjs/obsidian/plugin/plugin-event-source.d.cts +11 -9
- package/dist/lib/cjs/obsidian/plugin/plugin-settings-tab.cjs +29 -33
- package/dist/lib/cjs/obsidian/plugin/plugin.cjs +33 -16
- package/dist/lib/cjs/obsidian/plugin/plugin.d.cts +11 -1
- package/dist/lib/cjs/obsidian/plugin-cli-handler-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/popovers/field-popover.cjs +11 -15
- package/dist/lib/cjs/obsidian/popovers/index.cjs +11 -15
- package/dist/lib/cjs/obsidian/popovers/popover-anchor.cjs +14 -18
- package/dist/lib/cjs/obsidian/popovers/popover-anchor.d.cts +2 -2
- package/dist/lib/cjs/obsidian/popovers/popover.cjs +19 -23
- package/dist/lib/cjs/obsidian/queue.cjs +16 -20
- package/dist/lib/cjs/obsidian/queue.d.cts +2 -2
- package/dist/lib/cjs/obsidian/react/app-context.cjs +11 -15
- package/dist/lib/cjs/obsidian/react/index.cjs +11 -15
- package/dist/lib/cjs/obsidian/reference.cjs +11 -15
- package/dist/lib/cjs/obsidian/resource-lock.cjs +157 -78
- package/dist/lib/cjs/obsidian/resource-lock.d.cts +5 -0
- package/dist/lib/cjs/obsidian/resource-url.cjs +12 -16
- package/dist/lib/cjs/obsidian/ribbon-icon-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/ribbon-icon-registrar.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/checkbox-component.cjs +18 -22
- package/dist/lib/cjs/obsidian/setting-components/checkbox-component.d.cts +5 -5
- package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.cjs +28 -31
- package/dist/lib/cjs/obsidian/setting-components/code-highlighter-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/date-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/date-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/date-time-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/date-time-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/email-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/email-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/file-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/setting-components/index.cjs +11 -15
- package/dist/lib/cjs/obsidian/setting-components/month-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/month-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.cjs +17 -21
- package/dist/lib/cjs/obsidian/setting-components/multiple-dropdown-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/multiple-email-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/multiple-file-component.cjs +12 -16
- package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.cjs +15 -19
- package/dist/lib/cjs/obsidian/setting-components/multiple-text-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/number-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/number-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/password-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/password-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.cjs +16 -20
- package/dist/lib/cjs/obsidian/setting-components/setting-component-wrapper.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/telephone-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/telephone-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/text-based-component.cjs +16 -20
- package/dist/lib/cjs/obsidian/setting-components/text-based-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/time-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/time-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.cjs +15 -19
- package/dist/lib/cjs/obsidian/setting-components/tri-state-checkbox-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.cjs +16 -20
- package/dist/lib/cjs/obsidian/setting-components/typed-dropdown-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.cjs +18 -22
- package/dist/lib/cjs/obsidian/setting-components/typed-multiple-dropdown-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/typed-range-text-component.cjs +11 -15
- package/dist/lib/cjs/obsidian/setting-components/typed-text-component.cjs +16 -19
- package/dist/lib/cjs/obsidian/setting-components/typed-text-component.d.cts +4 -4
- package/dist/lib/cjs/obsidian/setting-components/url-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/url-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/validator-component.cjs +45 -49
- package/dist/lib/cjs/obsidian/setting-components/validator-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-components/value-component-with-change-tracking.cjs +11 -15
- package/dist/lib/cjs/obsidian/setting-components/week-component.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-components/week-component.d.cts +2 -2
- package/dist/lib/cjs/obsidian/setting-ex.cjs +76 -80
- package/dist/lib/cjs/obsidian/setting-ex.d.cts +42 -42
- package/dist/lib/cjs/obsidian/setting-group-ex.cjs +14 -18
- package/dist/lib/cjs/obsidian/setting-group-ex.d.cts +2 -2
- package/dist/lib/cjs/obsidian/status-bar-item-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/validation.cjs +11 -15
- package/dist/lib/cjs/obsidian/vault-delete.cjs +23 -20
- package/dist/lib/cjs/obsidian/vault-delete.d.cts +16 -2
- package/dist/lib/cjs/obsidian/vault-transaction.cjs +17 -18
- package/dist/lib/cjs/obsidian/vault.cjs +81 -63
- package/dist/lib/cjs/obsidian/vault.d.cts +32 -11
- package/dist/lib/cjs/obsidian/view-registrar.cjs +11 -15
- package/dist/lib/cjs/obsidian/workspace.cjs +12 -16
- package/dist/lib/cjs/obsidian-dev-utils-state.cjs +11 -15
- package/dist/lib/cjs/path.cjs +18 -22
- package/dist/lib/cjs/path.d.cts +1 -1
- package/dist/lib/cjs/reg-exp.cjs +38 -35
- package/dist/lib/cjs/reg-exp.d.cts +4 -4
- package/dist/lib/cjs/script-utils/build.cjs +21 -25
- package/dist/lib/cjs/script-utils/build.d.cts +1 -1
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/change-extension-plugin.cjs +24 -28
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +36 -34
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +11 -15
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/dependency.cjs +20 -24
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-esm-plugin.cjs +13 -17
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +16 -20
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/index.cjs +11 -15
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +11 -15
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +6 -2
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/preprocess-plugin.cjs +32 -36
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/rename-css-plugin.cjs +11 -15
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +11 -15
- package/dist/lib/cjs/script-utils/bundlers/esbuild.cjs +11 -15
- package/dist/lib/cjs/script-utils/bundlers/index.cjs +11 -15
- package/dist/lib/cjs/script-utils/check-project-types.cjs +13 -17
- package/dist/lib/cjs/script-utils/check-project-types.d.cts +12 -4
- package/dist/lib/cjs/script-utils/cli-utils.cjs +39 -47
- package/dist/lib/cjs/script-utils/cli-utils.d.cts +6 -6
- package/dist/lib/cjs/script-utils/code-generator.cjs +11 -15
- package/dist/lib/cjs/script-utils/commitlint-config.cjs +11 -15
- package/dist/lib/cjs/script-utils/demo-vault-coverage.cjs +22 -23
- package/dist/lib/cjs/script-utils/demo-vault.cjs +11 -15
- package/dist/lib/cjs/script-utils/env-toggle.cjs +13 -17
- package/dist/lib/cjs/script-utils/exec.cjs +40 -44
- package/dist/lib/cjs/script-utils/exec.d.cts +4 -4
- package/dist/lib/cjs/script-utils/formatters/dprint.cjs +12 -16
- package/dist/lib/cjs/script-utils/formatters/index.cjs +11 -15
- package/dist/lib/cjs/script-utils/fs.cjs +13 -17
- package/dist/lib/cjs/script-utils/git.cjs +11 -15
- package/dist/lib/cjs/script-utils/index.cjs +11 -15
- package/dist/lib/cjs/script-utils/json.cjs +15 -19
- package/dist/lib/cjs/script-utils/json.d.cts +2 -2
- package/dist/lib/cjs/script-utils/linters/cspell.cjs +12 -16
- package/dist/lib/cjs/script-utils/linters/eslint-agnostic-core-boundary.cjs +11 -15
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +402 -16
- package/dist/lib/cjs/script-utils/linters/eslint-no-restricted-syntax.cjs +11 -15
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +11 -15
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +27 -31
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +3 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.cjs +27 -31
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-unused-params-members.d.cts +3 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +21 -25
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +3 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +11 -15
- package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.cjs +109 -113
- package/dist/lib/cjs/script-utils/linters/eslint-rules/params-options-name-match.d.cts +3 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.cjs +13 -17
- package/dist/lib/cjs/script-utils/linters/eslint-rules/prefer-noop-async.d.cts +3 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.cjs +21 -25
- package/dist/lib/cjs/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.cts +3 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.cjs +51 -55
- package/dist/lib/cjs/script-utils/linters/eslint-rules/require-component-suffix.d.cts +9 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.cjs +25 -27
- package/dist/lib/cjs/script-utils/linters/eslint-rules/require-method-template.d.cts +6 -2
- package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.cjs +33 -37
- package/dist/lib/cjs/script-utils/linters/eslint-rules/require-super-call.d.cts +3 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +11 -15
- package/dist/lib/cjs/script-utils/linters/eslint.cjs +14 -18
- package/dist/lib/cjs/script-utils/linters/index.cjs +14 -15
- package/dist/lib/cjs/script-utils/linters/index.d.cts +1 -0
- package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.cjs +18 -17
- package/dist/lib/cjs/script-utils/linters/markdownlint-cli2-config.d.cts +2 -2
- package/dist/lib/cjs/script-utils/linters/markdownlint-ignores.cjs +138 -0
- package/dist/lib/cjs/script-utils/linters/markdownlint-ignores.d.cts +35 -0
- package/dist/lib/cjs/script-utils/linters/markdownlint.cjs +20 -23
- package/dist/lib/cjs/script-utils/linters/over-exposure.cjs +18 -22
- package/dist/lib/cjs/script-utils/linters/over-exposure.d.cts +54 -18
- package/dist/lib/cjs/script-utils/nano-staged-config.cjs +11 -15
- package/dist/lib/cjs/script-utils/npm-publish.cjs +11 -15
- package/dist/lib/cjs/script-utils/npm-run.cjs +20 -17
- package/dist/lib/cjs/script-utils/npm-run.d.cts +16 -2
- package/dist/lib/cjs/script-utils/npm.cjs +21 -25
- package/dist/lib/cjs/script-utils/npm.d.cts +11 -11
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.cjs +11 -15
- package/dist/lib/cjs/script-utils/obsidian-dev-utils-repo-paths.d.cts +165 -55
- package/dist/lib/cjs/script-utils/root.cjs +11 -15
- package/dist/lib/cjs/script-utils/test-runners/index.cjs +11 -15
- package/dist/lib/cjs/script-utils/test-runners/integration-test-plugin.cjs +11 -15
- package/dist/lib/cjs/script-utils/test-runners/vitest-config.cjs +12 -15
- package/dist/lib/cjs/script-utils/test-runners/vitest.cjs +11 -15
- package/dist/lib/cjs/script-utils/validate-declarations.cjs +11 -15
- package/dist/lib/cjs/script-utils/version.cjs +62 -63
- package/dist/lib/cjs/script-utils/version.d.cts +21 -21
- package/dist/lib/cjs/script-utils/warnings-as-errors.cjs +11 -15
- package/dist/lib/cjs/setup.cjs +11 -15
- package/dist/lib/cjs/setup.d.cts +1 -1
- package/dist/lib/cjs/strict-proxy.cjs +30 -34
- package/dist/lib/cjs/strict-proxy.d.cts +2 -2
- package/dist/lib/cjs/string.cjs +90 -93
- package/dist/lib/cjs/string.d.cts +60 -60
- package/dist/lib/cjs/transformers/date-transformer.cjs +11 -15
- package/dist/lib/cjs/transformers/duration-transformer.cjs +11 -15
- package/dist/lib/cjs/transformers/group-transformer.cjs +11 -15
- package/dist/lib/cjs/transformers/index.cjs +11 -15
- package/dist/lib/cjs/transformers/map-transformer.cjs +12 -16
- package/dist/lib/cjs/transformers/set-transformer.cjs +12 -16
- package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +11 -15
- package/dist/lib/cjs/transformers/transformer.cjs +11 -15
- package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +12 -16
- package/dist/lib/cjs/transformers/typed-transformer.cjs +11 -15
- package/dist/lib/cjs/two-way-map.cjs +11 -15
- package/dist/lib/cjs/type-guards.cjs +16 -20
- package/dist/lib/cjs/type-guards.d.cts +6 -6
- package/dist/lib/cjs/type.cjs +13 -17
- package/dist/lib/cjs/type.d.cts +2 -2
- package/dist/lib/cjs/url.cjs +18 -22
- package/dist/lib/cjs/url.d.cts +4 -4
- package/dist/lib/cjs/value-provider.cjs +15 -19
- package/dist/lib/cjs/value-provider.d.cts +6 -6
- package/dist/lib/cjs/value-wrapper.cjs +11 -15
- package/dist/lib/cjs/vitest-setup.cjs +11 -15
- package/dist/lib/esm/__merged.d.mts +12 -10
- package/dist/lib/esm/__merged.mjs +51 -23
- package/dist/lib/esm/abort-controller.mjs +5 -8
- package/dist/lib/esm/array.d.mts +25 -7
- package/dist/lib/esm/array.mjs +16 -12
- package/dist/lib/esm/async-events.d.mts +50 -50
- package/dist/lib/esm/async-events.mjs +81 -78
- package/dist/lib/esm/async.d.mts +23 -23
- package/dist/lib/esm/async.mjs +70 -66
- package/dist/lib/esm/blob.mjs +4 -11
- package/dist/lib/esm/debug.d.mts +1 -1
- package/dist/lib/esm/debug.mjs +14 -18
- package/dist/lib/esm/disposable.d.mts +27 -8
- package/dist/lib/esm/disposable.mjs +47 -29
- package/dist/lib/esm/error.mjs +18 -19
- package/dist/lib/esm/function.d.mts +26 -26
- package/dist/lib/esm/function.mjs +20 -20
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/html-element.d.mts +15 -15
- package/dist/lib/esm/html-element.mjs +74 -75
- package/dist/lib/esm/object-utils.d.mts +27 -27
- package/dist/lib/esm/object-utils.mjs +109 -102
- package/dist/lib/esm/obsidian/@types/dataview/data-model/value.d.mts +1 -1
- package/dist/lib/esm/obsidian/@types/dataview/expression/field.d.mts +1 -1
- package/dist/lib/esm/obsidian/@types/dataview/expression/functions.d.mts +4 -4
- package/dist/lib/esm/obsidian/app.mjs +1 -1
- package/dist/lib/esm/obsidian/async-with-notice.d.mts +2 -2
- package/dist/lib/esm/obsidian/async-with-notice.mjs +18 -18
- package/dist/lib/esm/obsidian/attachment-path.d.mts +5 -5
- package/dist/lib/esm/obsidian/attachment-path.mjs +10 -10
- package/dist/lib/esm/obsidian/backlink.mjs +2 -2
- package/dist/lib/esm/obsidian/callout.d.mts +9 -3
- package/dist/lib/esm/obsidian/callout.mjs +17 -12
- package/dist/lib/esm/obsidian/canvas.mjs +3 -2
- package/dist/lib/esm/obsidian/case-insensitive-file-index.mjs +8 -6
- package/dist/lib/esm/obsidian/code-block-markdown-information.d.mts +2 -2
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.d.mts +5 -0
- package/dist/lib/esm/obsidian/command-handlers/abstract-file-command-handler.mjs +8 -2
- package/dist/lib/esm/obsidian/command-handlers/command-handler-component.d.mts +42 -8
- package/dist/lib/esm/obsidian/command-handlers/command-handler-component.mjs +46 -17
- package/dist/lib/esm/obsidian/command-handlers/command-handler.d.mts +10 -0
- package/dist/lib/esm/obsidian/command-handlers/command-handler.mjs +1 -1
- package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.d.mts +8 -8
- package/dist/lib/esm/obsidian/command-handlers/editor-command-handler.mjs +16 -16
- package/dist/lib/esm/obsidian/command-handlers/file-command-handler.mjs +2 -2
- package/dist/lib/esm/obsidian/command-handlers/folder-command-handler.mjs +2 -2
- package/dist/lib/esm/obsidian/command-handlers/global-command-handler.mjs +3 -3
- package/dist/lib/esm/obsidian/community-plugins.d.mts +19 -5
- package/dist/lib/esm/obsidian/community-plugins.mjs +17 -11
- package/dist/lib/esm/obsidian/components/all-windows-event-component.d.mts +4 -4
- package/dist/lib/esm/obsidian/components/all-windows-event-component.mjs +1 -1
- package/dist/lib/esm/obsidian/components/async-error-handler-component.mjs +3 -2
- package/dist/lib/esm/obsidian/components/component-ex.d.mts +3 -3
- package/dist/lib/esm/obsidian/components/component-ex.mjs +16 -14
- package/dist/lib/esm/obsidian/components/console-debug-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/components/console-debug-component.mjs +4 -4
- package/dist/lib/esm/obsidian/components/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/components/index.mjs +3 -1
- package/dist/lib/esm/obsidian/components/menu-event-registrar-component.mjs +5 -5
- package/dist/lib/esm/obsidian/components/monkey-around-component.d.mts +55 -55
- package/dist/lib/esm/obsidian/components/monkey-around-component.mjs +19 -19
- package/dist/lib/esm/obsidian/components/notebook-navigator-menu-event-registrar-component.d.mts +139 -0
- package/dist/lib/esm/obsidian/components/notebook-navigator-menu-event-registrar-component.mjs +196 -0
- package/dist/lib/esm/obsidian/components/plugin-notice-component.mjs +18 -17
- package/dist/lib/esm/obsidian/components/plugin-settings-component.d.mts +8 -8
- package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +18 -18
- package/dist/lib/esm/obsidian/components/pointer-position-component.mjs +3 -3
- package/dist/lib/esm/obsidian/components/rename-delete-handler-component.d.mts +12 -1
- package/dist/lib/esm/obsidian/components/rename-delete-handler-component.mjs +62 -48
- package/dist/lib/esm/obsidian/components/syntax-highlighting-component.d.mts +8 -8
- package/dist/lib/esm/obsidian/components/syntax-highlighting-component.mjs +6 -6
- package/dist/lib/esm/obsidian/constructors/get-dom-events-handlers-constructor.mjs +4 -4
- package/dist/lib/esm/obsidian/data-handler.mjs +1 -1
- package/dist/lib/esm/obsidian/dataview-link.mjs +3 -3
- package/dist/lib/esm/obsidian/dataview.d.mts +2 -2
- package/dist/lib/esm/obsidian/dataview.mjs +25 -27
- package/dist/lib/esm/obsidian/demo-vault-helper.mjs +4 -3
- package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +12 -12
- package/dist/lib/esm/obsidian/desktop-trusted-input.mjs +13 -7
- package/dist/lib/esm/obsidian/editor.mjs +7 -5
- package/dist/lib/esm/obsidian/events.d.mts +2 -2
- package/dist/lib/esm/obsidian/events.mjs +2 -2
- package/dist/lib/esm/obsidian/file-change.d.mts +3 -3
- package/dist/lib/esm/obsidian/file-change.mjs +67 -67
- package/dist/lib/esm/obsidian/file-manager.d.mts +20 -1
- package/dist/lib/esm/obsidian/file-manager.mjs +22 -8
- package/dist/lib/esm/obsidian/file-system.d.mts +3 -3
- package/dist/lib/esm/obsidian/file-system.mjs +4 -4
- package/dist/lib/esm/obsidian/frontmatter.mjs +5 -5
- package/dist/lib/esm/obsidian/html-element.d.mts +2 -2
- package/dist/lib/esm/obsidian/html-element.mjs +3 -3
- package/dist/lib/esm/obsidian/i18n/i18n.d.mts +7 -0
- package/dist/lib/esm/obsidian/i18n/i18n.mjs +3 -2
- package/dist/lib/esm/obsidian/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/index.mjs +3 -1
- package/dist/lib/esm/obsidian/link.d.mts +22 -22
- package/dist/lib/esm/obsidian/link.mjs +76 -62
- package/dist/lib/esm/obsidian/logger.d.mts +5 -5
- package/dist/lib/esm/obsidian/logger.mjs +11 -11
- package/dist/lib/esm/obsidian/loop.d.mts +1 -1
- package/dist/lib/esm/obsidian/loop.mjs +4 -4
- package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.d.mts +3 -3
- package/dist/lib/esm/obsidian/markdown-code-block-processor-registrar.mjs +2 -2
- package/dist/lib/esm/obsidian/markdown-code-block-processor.d.mts +3 -3
- package/dist/lib/esm/obsidian/markdown-code-block-processor.mjs +25 -26
- package/dist/lib/esm/obsidian/markdown-post-processor-registrar.d.mts +3 -3
- package/dist/lib/esm/obsidian/markdown-post-processor-registrar.mjs +2 -2
- package/dist/lib/esm/obsidian/markdown.mjs +12 -10
- package/dist/lib/esm/obsidian/menu-event-registrar.d.mts +1 -1
- package/dist/lib/esm/obsidian/metadata-cache.d.mts +2 -2
- package/dist/lib/esm/obsidian/metadata-cache.mjs +6 -6
- package/dist/lib/esm/obsidian/modals/confirm.mjs +1 -1
- package/dist/lib/esm/obsidian/modals/minimizable-modal.mjs +18 -18
- package/dist/lib/esm/obsidian/modals/select-item.d.mts +1 -1
- package/dist/lib/esm/obsidian/modals/select-item.mjs +6 -6
- package/dist/lib/esm/obsidian/modals/suggest-modal-command-builder.d.mts +5 -5
- package/dist/lib/esm/obsidian/modals/suggest-modal-command-builder.mjs +16 -14
- package/dist/lib/esm/obsidian/notebook-navigator.d.mts +132 -0
- package/dist/lib/esm/obsidian/notebook-navigator.mjs +49 -0
- package/dist/lib/esm/obsidian/parse-link.d.mts +4 -4
- package/dist/lib/esm/obsidian/parse-link.mjs +51 -48
- package/dist/lib/esm/obsidian/path-settings.mjs +17 -11
- package/dist/lib/esm/obsidian/pdf.d.mts +2 -2
- package/dist/lib/esm/obsidian/pdf.mjs +3 -3
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +156 -52
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +1 -1
- package/dist/lib/esm/obsidian/plugin/plugin-context.d.mts +2 -2
- package/dist/lib/esm/obsidian/plugin/plugin-context.mjs +7 -7
- package/dist/lib/esm/obsidian/plugin/plugin-event-source.d.mts +11 -9
- package/dist/lib/esm/obsidian/plugin/plugin-event-source.mjs +10 -10
- package/dist/lib/esm/obsidian/plugin/plugin-settings-tab.mjs +20 -20
- package/dist/lib/esm/obsidian/plugin/plugin.d.mts +11 -1
- package/dist/lib/esm/obsidian/plugin/plugin.mjs +23 -2
- package/dist/lib/esm/obsidian/popovers/popover-anchor.d.mts +2 -2
- package/dist/lib/esm/obsidian/popovers/popover-anchor.mjs +4 -4
- package/dist/lib/esm/obsidian/popovers/popover.mjs +9 -9
- package/dist/lib/esm/obsidian/queue.d.mts +2 -2
- package/dist/lib/esm/obsidian/queue.mjs +6 -6
- package/dist/lib/esm/obsidian/resource-lock.d.mts +5 -0
- package/dist/lib/esm/obsidian/resource-lock.mjs +147 -64
- package/dist/lib/esm/obsidian/resource-url.mjs +2 -2
- package/dist/lib/esm/obsidian/ribbon-icon-registrar.d.mts +2 -2
- package/dist/lib/esm/obsidian/ribbon-icon-registrar.mjs +1 -1
- package/dist/lib/esm/obsidian/setting-components/checkbox-component.d.mts +5 -5
- package/dist/lib/esm/obsidian/setting-components/checkbox-component.mjs +8 -8
- package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/code-highlighter-component.mjs +18 -17
- package/dist/lib/esm/obsidian/setting-components/date-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/date-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/date-time-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/date-time-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/email-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/email-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/month-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/month-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/multiple-dropdown-component.mjs +7 -7
- package/dist/lib/esm/obsidian/setting-components/multiple-email-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/multiple-email-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/multiple-file-component.mjs +2 -2
- package/dist/lib/esm/obsidian/setting-components/multiple-text-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/multiple-text-component.mjs +5 -5
- package/dist/lib/esm/obsidian/setting-components/number-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/number-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/password-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/password-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/setting-component-wrapper.mjs +6 -6
- package/dist/lib/esm/obsidian/setting-components/telephone-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/telephone-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/text-based-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/text-based-component.mjs +6 -6
- package/dist/lib/esm/obsidian/setting-components/time-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/time-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/tri-state-checkbox-component.mjs +5 -5
- package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/typed-dropdown-component.mjs +6 -6
- package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/typed-multiple-dropdown-component.mjs +8 -8
- package/dist/lib/esm/obsidian/setting-components/typed-text-component.d.mts +4 -4
- package/dist/lib/esm/obsidian/setting-components/typed-text-component.mjs +6 -5
- package/dist/lib/esm/obsidian/setting-components/url-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/url-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-components/validator-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/validator-component.mjs +35 -35
- package/dist/lib/esm/obsidian/setting-components/week-component.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-components/week-component.mjs +4 -4
- package/dist/lib/esm/obsidian/setting-ex.d.mts +42 -42
- package/dist/lib/esm/obsidian/setting-ex.mjs +66 -66
- package/dist/lib/esm/obsidian/setting-group-ex.d.mts +2 -2
- package/dist/lib/esm/obsidian/setting-group-ex.mjs +4 -4
- package/dist/lib/esm/obsidian/vault-delete.d.mts +16 -2
- package/dist/lib/esm/obsidian/vault-delete.mjs +12 -6
- package/dist/lib/esm/obsidian/vault-transaction.mjs +8 -4
- package/dist/lib/esm/obsidian/vault.d.mts +32 -11
- package/dist/lib/esm/obsidian/vault.mjs +67 -47
- package/dist/lib/esm/obsidian/view-registrar.mjs +1 -1
- package/dist/lib/esm/obsidian/workspace.mjs +2 -2
- package/dist/lib/esm/path.d.mts +1 -1
- package/dist/lib/esm/path.mjs +7 -7
- package/dist/lib/esm/reg-exp.d.mts +4 -4
- package/dist/lib/esm/reg-exp.mjs +28 -21
- package/dist/lib/esm/script-utils/build.d.mts +1 -1
- package/dist/lib/esm/script-utils/build.mjs +15 -12
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/change-extension-plugin.mjs +14 -14
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +26 -20
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/dependency.mjs +10 -10
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-esm-plugin.mjs +3 -3
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +6 -6
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +6 -2
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +1 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/preprocess-plugin.mjs +20 -20
- package/dist/lib/esm/script-utils/check-project-types.d.mts +12 -4
- package/dist/lib/esm/script-utils/check-project-types.mjs +3 -3
- package/dist/lib/esm/script-utils/cli-utils.d.mts +6 -6
- package/dist/lib/esm/script-utils/cli-utils.mjs +29 -33
- package/dist/lib/esm/script-utils/demo-vault-coverage.mjs +12 -9
- package/dist/lib/esm/script-utils/env-toggle.mjs +3 -3
- package/dist/lib/esm/script-utils/exec.d.mts +4 -4
- package/dist/lib/esm/script-utils/exec.mjs +32 -32
- package/dist/lib/esm/script-utils/formatters/dprint.mjs +2 -2
- package/dist/lib/esm/script-utils/fs.mjs +3 -3
- package/dist/lib/esm/script-utils/json.d.mts +2 -2
- package/dist/lib/esm/script-utils/json.mjs +5 -5
- package/dist/lib/esm/script-utils/linters/cspell.mjs +2 -2
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +392 -2
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +17 -17
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.d.mts +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-unused-params-members.mjs +17 -17
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +11 -11
- package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.d.mts +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/params-options-name-match.mjs +99 -99
- package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.d.mts +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/prefer-noop-async.mjs +3 -3
- package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.d.mts +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/readonly-params-options-result-members.mjs +11 -11
- package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.d.mts +9 -3
- package/dist/lib/esm/script-utils/linters/eslint-rules/require-component-suffix.mjs +41 -41
- package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.d.mts +6 -2
- package/dist/lib/esm/script-utils/linters/eslint-rules/require-method-template.mjs +15 -13
- package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.d.mts +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/require-super-call.mjs +23 -23
- package/dist/lib/esm/script-utils/linters/eslint.mjs +4 -4
- package/dist/lib/esm/script-utils/linters/index.d.mts +1 -0
- package/dist/lib/esm/script-utils/linters/index.mjs +3 -1
- package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.d.mts +2 -2
- package/dist/lib/esm/script-utils/linters/markdownlint-cli2-config.mjs +8 -3
- package/dist/lib/esm/script-utils/linters/markdownlint-ignores.d.mts +35 -0
- package/dist/lib/esm/script-utils/linters/markdownlint-ignores.mjs +33 -0
- package/dist/lib/esm/script-utils/linters/markdownlint.mjs +13 -9
- package/dist/lib/esm/script-utils/linters/over-exposure.d.mts +54 -18
- package/dist/lib/esm/script-utils/linters/over-exposure.mjs +8 -8
- package/dist/lib/esm/script-utils/npm-run.d.mts +16 -2
- package/dist/lib/esm/script-utils/npm-run.mjs +9 -3
- package/dist/lib/esm/script-utils/npm.d.mts +11 -11
- package/dist/lib/esm/script-utils/npm.mjs +11 -11
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.d.mts +165 -55
- package/dist/lib/esm/script-utils/obsidian-dev-utils-repo-paths.mjs +1 -1
- package/dist/lib/esm/script-utils/test-runners/vitest-config.mjs +2 -1
- package/dist/lib/esm/script-utils/validate-declarations.mjs +1 -1
- package/dist/lib/esm/script-utils/version.d.mts +21 -21
- package/dist/lib/esm/script-utils/version.mjs +48 -45
- package/dist/lib/esm/setup.d.mts +1 -1
- package/dist/lib/esm/setup.mjs +1 -1
- package/dist/lib/esm/strict-proxy.d.mts +2 -2
- package/dist/lib/esm/strict-proxy.mjs +20 -20
- package/dist/lib/esm/string.d.mts +60 -60
- package/dist/lib/esm/string.mjs +80 -79
- package/dist/lib/esm/transformers/map-transformer.mjs +2 -2
- package/dist/lib/esm/transformers/set-transformer.mjs +2 -2
- package/dist/lib/esm/transformers/two-way-map-transformer.mjs +2 -2
- package/dist/lib/esm/type-guards.d.mts +6 -6
- package/dist/lib/esm/type-guards.mjs +6 -6
- package/dist/lib/esm/type.d.mts +2 -2
- package/dist/lib/esm/type.mjs +3 -3
- package/dist/lib/esm/url.d.mts +4 -4
- package/dist/lib/esm/url.mjs +8 -8
- package/dist/lib/esm/value-provider.d.mts +6 -6
- package/dist/lib/esm/value-provider.mjs +5 -5
- package/obsidian/components/notebook-navigator-menu-event-registrar-component/package.json +6 -0
- package/obsidian/notebook-navigator/package.json +6 -0
- package/package.json +17 -33
- package/script-utils/linters/markdownlint-ignores/package.json +6 -0
|
@@ -32,8 +32,8 @@ const requireMethodTemplate = {
|
|
|
32
32
|
return {
|
|
33
33
|
"MethodDefinition"(node) {
|
|
34
34
|
const methodNode = node;
|
|
35
|
-
const
|
|
36
|
-
const typeParams =
|
|
35
|
+
const functionExpression = methodNode.value;
|
|
36
|
+
const typeParams = functionExpression.typeParameters?.params;
|
|
37
37
|
if (!typeParams || typeParams.length === 0) {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
@@ -43,17 +43,18 @@ const requireMethodTemplate = {
|
|
|
43
43
|
if (!jsdocComment) {
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
const parsedTags =
|
|
46
|
+
const parsedTags = parseTypeParameterTags({
|
|
47
47
|
commentBody: jsdocComment.value,
|
|
48
48
|
tagName: preferredTagName
|
|
49
49
|
});
|
|
50
|
-
for (const
|
|
51
|
-
const
|
|
52
|
-
const matchingTag = parsedTags.find((tag) => tag.name ===
|
|
50
|
+
for (const typeParameter of typeParams) {
|
|
51
|
+
const parameterName = typeParameter.name.name;
|
|
52
|
+
const matchingTag = parsedTags.find((tag) => tag.name === parameterName);
|
|
53
53
|
if (!matchingTag) {
|
|
54
54
|
context.report({
|
|
55
55
|
data: {
|
|
56
|
-
paramName
|
|
56
|
+
// eslint-disable-next-line unicorn/name-replacements -- `paramName` is the placeholder this rule's own message template reads.
|
|
57
|
+
paramName: parameterName,
|
|
57
58
|
tagName: preferredTagName
|
|
58
59
|
},
|
|
59
60
|
messageId: MESSAGE_ID_MISSING_TEMPLATE,
|
|
@@ -62,7 +63,8 @@ const requireMethodTemplate = {
|
|
|
62
63
|
} else if (!matchingTag.hasDescription) {
|
|
63
64
|
context.report({
|
|
64
65
|
data: {
|
|
65
|
-
paramName
|
|
66
|
+
// eslint-disable-next-line unicorn/name-replacements -- `paramName` is the placeholder this rule's own message template reads.
|
|
67
|
+
paramName: parameterName,
|
|
66
68
|
tagName: preferredTagName
|
|
67
69
|
},
|
|
68
70
|
messageId: MESSAGE_ID_MISSING_TEMPLATE_DESCRIPTION,
|
|
@@ -86,18 +88,18 @@ const requireMethodTemplate = {
|
|
|
86
88
|
}
|
|
87
89
|
};
|
|
88
90
|
function findJsdocComment(comments) {
|
|
89
|
-
for (let
|
|
90
|
-
const comment = comments[
|
|
91
|
+
for (let index = comments.length - 1; index >= 0; index--) {
|
|
92
|
+
const comment = comments[index];
|
|
91
93
|
if (comment?.type === "Block" && comment.value.startsWith("*")) {
|
|
92
94
|
return comment;
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
97
|
return void 0;
|
|
96
98
|
}
|
|
97
|
-
function
|
|
99
|
+
function parseTypeParameterTags(params) {
|
|
98
100
|
const { commentBody, tagName } = params;
|
|
99
101
|
const tags = [];
|
|
100
|
-
const tagPattern = new RegExp(`@(?:${tagName}|template|typeParam)
|
|
102
|
+
const tagPattern = new RegExp(String.raw`@(?:${tagName}|template|typeParam)\s+(?<typeName>[\w$]+)(?<rest>.*)`, "g");
|
|
101
103
|
let match;
|
|
102
104
|
while ((match = tagPattern.exec(commentBody)) !== null) {
|
|
103
105
|
const name = getMandatoryNamedGroup(match, "typeName");
|
|
@@ -112,4 +114,4 @@ export {
|
|
|
112
114
|
MESSAGE_ID_MISSING_TEMPLATE_DESCRIPTION,
|
|
113
115
|
requireMethodTemplate
|
|
114
116
|
};
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEVTTGludCBydWxlOiByZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZVxuICpcbiAqIFJlcXVpcmVzIHRoYXQgZ2VuZXJpYyBtZXRob2RzIChtZXRob2RzIHdpdGggdHlwZSBwYXJhbWV0ZXJzKSBoYXZlXG4gKiBjb3JyZXNwb25kaW5nIGBAdHlwZVBhcmFtYCAob3IgYEB0ZW1wbGF0ZWApIEpTRG9jIHRhZ3MgZm9yIGVhY2ggdHlwZSBwYXJhbWV0ZXIuXG4gKlxuICogVGhpcyBmaWxscyBhIGdhcCBpbiBgZXNsaW50LXBsdWdpbi1qc2RvY2AncyBgcmVxdWlyZS10ZW1wbGF0ZWAgcnVsZSwgd2hpY2hcbiAqIG9ubHkgY2hlY2tzIHRvcC1sZXZlbCBkZWNsYXJhdGlvbnMgKGZ1bmN0aW9ucywgY2xhc3NlcywgaW50ZXJmYWNlcywgdHlwZSBhbGlhc2VzKVxuICogYnV0IG5vdCBtZXRob2RzIHdpdGhpbiBjbGFzc2VzLlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9nYWp1cy9lc2xpbnQtcGx1Z2luLWpzZG9jL2lzc3Vlcy8xMzg2fVxuICovXG5pbXBvcnQgdHlwZSB7IFRTRVNUcmVlIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJztcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnQgfSBmcm9tICdlc3RyZWUnO1xuXG5pbXBvcnQgeyBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwIH0gZnJvbSAnLi4vLi4vLi4vcmVnLWV4cC50cyc7XG5cbmludGVyZmFjZSBKc2RvY1NldHRpbmdzIHtcbiAgdGFnTmFtZVByZWZlcmVuY2U/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5jb25zdCBUQUdfTkFNRSA9ICd0eXBlUGFyYW0nO1xuXG4vKiogTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIGEgbWV0aG9kIHR5cGUgcGFyYW1ldGVyIGhhcyBubyBtYXRjaGluZyBgQHR5cGVQYXJhbWAgdGFnLiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfTUlTU0lOR19URU1QTEFURSA9ICdtaXNzaW5nVGVtcGxhdGUnO1xuXG4vKiogTWVzc2FnZSBJRCByZXBvcnRlZCB3aGVuIGEgbWV0aG9kJ3MgYEB0eXBlUGFyYW1gIHRhZyBpcyBtaXNzaW5nIGEgZGVzY3JpcHRpb24uICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9NSVNTSU5HX1RFTVBMQVRFX0RFU0NSSVBUSU9OID0gJ21pc3NpbmdUZW1wbGF0ZURlc2NyaXB0aW9uJztcblxuZXhwb3J0IGNvbnN0IHJlcXVpcmVNZXRob2RUZW1wbGF0ZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHNldHRpbmdzID0gY29udGV4dC5zZXR0aW5nc1snanNkb2MnXSBhcyBKc2RvY1NldHRpbmdzIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHByZWZlcnJlZFRhZ05hbWUgPSBzZXR0aW5ncz8udGFnTmFtZVByZWZlcmVuY2U/LlsndGVtcGxhdGUnXSA/PyBUQUdfTkFNRTtcblxuICAgIHJldHVybiB7XG4gICAgICAnTWV0aG9kRGVmaW5pdGlvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1ldGhvZE5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG4gICAgICAgIGNvbnN0IGZ1bmN0aW9uRXhwciA9IG1ldGhvZE5vZGUudmFsdWU7XG5cbiAgICAgICAgY29uc3QgdHlwZVBhcmFtcyA9IGZ1bmN0aW9uRXhwci50eXBlUGFyYW1ldGVycz8ucGFyYW1zO1xuICAgICAgICBpZiAoIXR5cGVQYXJhbXMgfHwgdHlwZVBhcmFtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb3VyY2VDb2RlID0gY29udGV4dC5zb3VyY2VDb2RlO1xuICAgICAgICBjb25zdCBjb21tZW50cyA9IHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNCZWZvcmUobm9kZSk7XG4gICAgICAgIGNvbnN0IGpzZG9jQ29tbWVudCA9IGZpbmRKc2RvY0NvbW1lbnQoY29tbWVudHMpO1xuXG4gICAgICAgIGlmICghanNkb2NDb21tZW50KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVGFncyA9IHBhcnNlVHlwZVBhcmFtVGFncyh7XG4gICAgICAgICAgY29tbWVudEJvZHk6IGpzZG9jQ29tbWVudC52YWx1ZSxcbiAgICAgICAgICB0YWdOYW1lOiBwcmVmZXJyZWRUYWdOYW1lXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAoY29uc3QgdHlwZVBhcmFtIG9mIHR5cGVQYXJhbXMpIHtcbiAgICAgICAgICBjb25zdCBwYXJhbU5hbWUgPSB0eXBlUGFyYW0ubmFtZS5uYW1lO1xuICAgICAgICAgIGNvbnN0IG1hdGNoaW5nVGFnID0gcGFyc2VkVGFncy5maW5kKCh0YWcpID0+IHRhZy5uYW1lID09PSBwYXJhbU5hbWUpO1xuXG4gICAgICAgICAgaWYgKCFtYXRjaGluZ1RhZykge1xuICAgICAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgcGFyYW1OYW1lLFxuICAgICAgICAgICAgICAgIHRhZ05hbWU6IHByZWZlcnJlZFRhZ05hbWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX01JU1NJTkdfVEVNUExBVEUsXG4gICAgICAgICAgICAgIG5vZGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIW1hdGNoaW5nVGFnLmhhc0Rlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBwYXJhbU5hbWUsXG4gICAgICAgICAgICAgICAgdGFnTmFtZTogcHJlZmVycmVkVGFnTmFtZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSURfTUlTU0lOR19URU1QTEFURV9ERVNDUklQVElPTixcbiAgICAgICAgICAgICAgbm9kZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUmVxdWlyZSBgQHR5cGVQYXJhbWAgdGFncyB3aXRoIGRlc2NyaXB0aW9ucyBmb3IgZ2VuZXJpYyBtZXRob2QgdHlwZSBwYXJhbWV0ZXJzJ1xuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIFtNRVNTQUdFX0lEX01JU1NJTkdfVEVNUExBVEVdOiAnTWlzc2luZyBAe3sgdGFnTmFtZSB9fSB7eyBwYXJhbU5hbWUgfX0nLFxuICAgICAgW01FU1NBR0VfSURfTUlTU0lOR19URU1QTEFURV9ERVNDUklQVElPTl06ICdAe3sgdGFnTmFtZSB9fSB7eyBwYXJhbU5hbWUgfX0gaXMgbWlzc2luZyBhIGRlc2NyaXB0aW9uJ1xuICAgIH0sXG4gICAgc2NoZW1hOiBbXSxcbiAgICB0eXBlOiAnc3VnZ2VzdGlvbidcbiAgfVxufTtcblxuaW50ZXJmYWNlIFBhcnNlZFRhZyB7XG4gIGhhc0Rlc2NyaXB0aW9uOiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBhcnNlVHlwZVBhcmFtVGFnc30uXG4gKi9cbmludGVyZmFjZSBQYXJzZVR5cGVQYXJhbVRhZ3NQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHJhdyBjb21tZW50IGJvZHkgKHdpdGhvdXQgdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIGNvbW1lbnQgZGVsaW1pdGVycykuXG4gICAqL1xuICByZWFkb25seSBjb21tZW50Qm9keTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJlZmVycmVkIHRhZyBuYW1lIChgdHlwZVBhcmFtYCBvciBgdGVtcGxhdGVgKS5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ05hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgSlNEb2MgYmxvY2sgY29tbWVudCBmcm9tIGEgbGlzdCBvZiBjb21tZW50cy5cbiAqXG4gKiBAcGFyYW0gY29tbWVudHMgLSBUaGUgY29tbWVudHMgYmVmb3JlIHRoZSBub2RlLlxuICogQHJldHVybnMgVGhlIEpTRG9jIGJsb2NrIGNvbW1lbnQsIG9yIGB1bmRlZmluZWRgIGlmIG5vbmUgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIGZpbmRKc2RvY0NvbW1lbnQoY29tbWVudHM6IHJlYWRvbmx5IENvbW1lbnRbXSk6IENvbW1lbnQgfCB1bmRlZmluZWQge1xuICBmb3IgKGxldCBpID0gY29tbWVudHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICBjb25zdCBjb21tZW50ID0gY29tbWVudHNbaV07XG4gICAgaWYgKGNvbW1lbnQ/LnR5cGUgPT09ICdCbG9jaycgJiYgY29tbWVudC52YWx1ZS5zdGFydHNXaXRoKCcqJykpIHtcbiAgICAgIHJldHVybiBjb21tZW50O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGFyc2VzIGBAdHlwZVBhcmFtYCAvIGBAdGVtcGxhdGVgIHRhZ3MgZnJvbSBhIEpTRG9jIGNvbW1lbnQgYm9keS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBwYXJzZS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHBhcnNlZCB0YWcgZW50cmllcy5cbiAqL1xuZnVuY3Rpb24gcGFyc2VUeXBlUGFyYW1UYWdzKHBhcmFtczogUGFyc2VUeXBlUGFyYW1UYWdzUGFyYW1zKTogUGFyc2VkVGFnW10ge1xuICBjb25zdCB7IGNvbW1lbnRCb2R5LCB0YWdOYW1lIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHRhZ3M6IFBhcnNlZFRhZ1tdID0gW107XG4gIGNvbnN0IHRhZ1BhdHRlcm4gPSBuZXcgUmVnRXhwKGBAKD86JHt0YWdOYW1lfXx0ZW1wbGF0ZXx0eXBlUGFyYW0pXFxcXHMrKD88dHlwZU5hbWU+XFxcXHcrKSg/PHJlc3Q+LiopYCwgJ2cnKTtcblxuICBsZXQgbWF0Y2g7XG4gIHdoaWxlICgobWF0Y2ggPSB0YWdQYXR0ZXJuLmV4ZWMoY29tbWVudEJvZHkpKSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG5hbWUgPSBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwKG1hdGNoLCAndHlwZU5hbWUnKTtcbiAgICBjb25zdCByZXN0ID0gZ2V0TWFuZGF0b3J5TmFtZWRHcm91cChtYXRjaCwgJ3Jlc3QnKS50cmltKCk7XG4gICAgY29uc3QgaGFzRGVzY3JpcHRpb24gPSByZXN0Lmxlbmd0aCA+IDAgJiYgcmVzdCAhPT0gJy0nO1xuICAgIHRhZ3MucHVzaCh7IGhhc0Rlc2NyaXB0aW9uLCBuYW1lIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRhZ3M7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQSxTQUFTLDhCQUE4QjtBQU12QyxNQUFNLFdBQVc7QUFHVixNQUFNLDhCQUE4QjtBQUdwQyxNQUFNLDBDQUEwQztBQUVoRCxNQUFNLHdCQUF5QztBQUFBLEVBQ3BELE9BQU8sU0FBUztBQUNkLFVBQU0sV0FBVyxRQUFRLFNBQVMsT0FBTztBQUN6QyxVQUFNLG1CQUFtQixVQUFVLG9CQUFvQixVQUFVLEtBQUs7QUFFdEUsV0FBTztBQUFBLE1BQ0wsbUJBQW1CLE1BQXVCO0FBQ3hDLGNBQU0sYUFBYTtBQUNuQixjQUFNLGVBQWUsV0FBVztBQUVoQyxjQUFNLGFBQWEsYUFBYSxnQkFBZ0I7QUFDaEQsWUFBSSxDQUFDLGNBQWMsV0FBVyxXQUFXLEdBQUc7QUFDMUM7QUFBQSxRQUNGO0FBRUEsY0FBTSxhQUFhLFFBQVE7QUFDM0IsY0FBTSxXQUFXLFdBQVcsa0JBQWtCLElBQUk7QUFDbEQsY0FBTSxlQUFlLGlCQUFpQixRQUFRO0FBRTlDLFlBQUksQ0FBQyxjQUFjO0FBQ2pCO0FBQUEsUUFDRjtBQUVBLGNBQU0sYUFBYSxtQkFBbUI7QUFBQSxVQUNwQyxhQUFhLGFBQWE7QUFBQSxVQUMxQixTQUFTO0FBQUEsUUFDWCxDQUFDO0FBRUQsbUJBQVcsYUFBYSxZQUFZO0FBQ2xDLGdCQUFNLFlBQVksVUFBVSxLQUFLO0FBQ2pDLGdCQUFNLGNBQWMsV0FBVyxLQUFLLENBQUMsUUFBUSxJQUFJLFNBQVMsU0FBUztBQUVuRSxjQUFJLENBQUMsYUFBYTtBQUNoQixvQkFBUSxPQUFPO0FBQUEsY0FDYixNQUFNO0FBQUEsZ0JBQ0o7QUFBQSxnQkFDQSxTQUFTO0FBQUEsY0FDWDtBQUFBLGNBQ0EsV0FBVztBQUFBLGNBQ1g7QUFBQSxZQUNGLENBQUM7QUFBQSxVQUNILFdBQVcsQ0FBQyxZQUFZLGdCQUFnQjtBQUN0QyxvQkFBUSxPQUFPO0FBQUEsY0FDYixNQUFNO0FBQUEsZ0JBQ0o7QUFBQSxnQkFDQSxTQUFTO0FBQUEsY0FDWDtBQUFBLGNBQ0EsV0FBVztBQUFBLGNBQ1g7QUFBQSxZQUNGLENBQUM7QUFBQSxVQUNIO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLENBQUMsMkJBQTJCLEdBQUc7QUFBQSxNQUMvQixDQUFDLHVDQUF1QyxHQUFHO0FBQUEsSUFDN0M7QUFBQSxJQUNBLFFBQVEsQ0FBQztBQUFBLElBQ1QsTUFBTTtBQUFBLEVBQ1I7QUFDRjtBQTRCQSxTQUFTLGlCQUFpQixVQUFtRDtBQUMzRSxXQUFTLElBQUksU0FBUyxTQUFTLEdBQUcsS0FBSyxHQUFHLEtBQUs7QUFDN0MsVUFBTSxVQUFVLFNBQVMsQ0FBQztBQUMxQixRQUFJLFNBQVMsU0FBUyxXQUFXLFFBQVEsTUFBTSxXQUFXLEdBQUcsR0FBRztBQUM5RCxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFRQSxTQUFTLG1CQUFtQixRQUErQztBQUN6RSxRQUFNLEVBQUUsYUFBYSxRQUFRLElBQUk7QUFDakMsUUFBTSxPQUFvQixDQUFDO0FBQzNCLFFBQU0sYUFBYSxJQUFJLE9BQU8sT0FBTyxPQUFPLHdEQUF3RCxHQUFHO0FBRXZHLE1BQUk7QUFDSixVQUFRLFFBQVEsV0FBVyxLQUFLLFdBQVcsT0FBTyxNQUFNO0FBQ3RELFVBQU0sT0FBTyx1QkFBdUIsT0FBTyxVQUFVO0FBQ3JELFVBQU0sT0FBTyx1QkFBdUIsT0FBTyxNQUFNLEVBQUUsS0FBSztBQUN4RCxVQUFNLGlCQUFpQixLQUFLLFNBQVMsS0FBSyxTQUFTO0FBQ25ELFNBQUssS0FBSyxFQUFFLGdCQUFnQixLQUFLLENBQUM7QUFBQSxFQUNwQztBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEVTTGludCBydWxlOiByZXF1aXJlLW1ldGhvZC10ZW1wbGF0ZVxuICpcbiAqIFJlcXVpcmVzIHRoYXQgZ2VuZXJpYyBtZXRob2RzIChtZXRob2RzIHdpdGggdHlwZSBwYXJhbWV0ZXJzKSBoYXZlXG4gKiBjb3JyZXNwb25kaW5nIGBAdHlwZVBhcmFtYCAob3IgYEB0ZW1wbGF0ZWApIEpTRG9jIHRhZ3MgZm9yIGVhY2ggdHlwZSBwYXJhbWV0ZXIuXG4gKlxuICogVGhpcyBmaWxscyBhIGdhcCBpbiBgZXNsaW50LXBsdWdpbi1qc2RvY2AncyBgcmVxdWlyZS10ZW1wbGF0ZWAgcnVsZSwgd2hpY2hcbiAqIG9ubHkgY2hlY2tzIHRvcC1sZXZlbCBkZWNsYXJhdGlvbnMgKGZ1bmN0aW9ucywgY2xhc3NlcywgaW50ZXJmYWNlcywgdHlwZSBhbGlhc2VzKVxuICogYnV0IG5vdCBtZXRob2RzIHdpdGhpbiBjbGFzc2VzLlxuICpcbiAqIEBzZWUge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9nYWp1cy9lc2xpbnQtcGx1Z2luLWpzZG9jL2lzc3Vlcy8xMzg2fVxuICovXG5pbXBvcnQgdHlwZSB7IFRTRVNUcmVlIH0gZnJvbSAnQHR5cGVzY3JpcHQtZXNsaW50L3V0aWxzJztcbmltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gJ2VzbGludCc7XG5pbXBvcnQgdHlwZSB7IENvbW1lbnQgfSBmcm9tICdlc3RyZWUnO1xuXG5pbXBvcnQgeyBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwIH0gZnJvbSAnLi4vLi4vLi4vcmVnLWV4cC50cyc7XG5cbmludGVyZmFjZSBKc2RvY1NldHRpbmdzIHtcbiAgdGFnTmFtZVByZWZlcmVuY2U/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5jb25zdCBUQUdfTkFNRSA9ICd0eXBlUGFyYW0nO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiBhIG1ldGhvZCB0eXBlIHBhcmFtZXRlciBoYXMgbm8gbWF0Y2hpbmcgYEB0eXBlUGFyYW1gIHRhZy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSURfTUlTU0lOR19URU1QTEFURSA9ICdtaXNzaW5nVGVtcGxhdGUnO1xuXG4vKipcbk1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiBhIG1ldGhvZCdzIGBAdHlwZVBhcmFtYCB0YWcgaXMgbWlzc2luZyBhIGRlc2NyaXB0aW9uLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRF9NSVNTSU5HX1RFTVBMQVRFX0RFU0NSSVBUSU9OID0gJ21pc3NpbmdUZW1wbGF0ZURlc2NyaXB0aW9uJztcblxuZXhwb3J0IGNvbnN0IHJlcXVpcmVNZXRob2RUZW1wbGF0ZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IHNldHRpbmdzID0gY29udGV4dC5zZXR0aW5nc1snanNkb2MnXSBhcyBKc2RvY1NldHRpbmdzIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHByZWZlcnJlZFRhZ05hbWUgPSBzZXR0aW5ncz8udGFnTmFtZVByZWZlcmVuY2U/LlsndGVtcGxhdGUnXSA/PyBUQUdfTkFNRTtcblxuICAgIHJldHVybiB7XG4gICAgICAnTWV0aG9kRGVmaW5pdGlvbicobm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1ldGhvZE5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG4gICAgICAgIGNvbnN0IGZ1bmN0aW9uRXhwcmVzc2lvbiA9IG1ldGhvZE5vZGUudmFsdWU7XG5cbiAgICAgICAgY29uc3QgdHlwZVBhcmFtcyA9IGZ1bmN0aW9uRXhwcmVzc2lvbi50eXBlUGFyYW1ldGVycz8ucGFyYW1zO1xuICAgICAgICBpZiAoIXR5cGVQYXJhbXMgfHwgdHlwZVBhcmFtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzb3VyY2VDb2RlID0gY29udGV4dC5zb3VyY2VDb2RlO1xuICAgICAgICBjb25zdCBjb21tZW50cyA9IHNvdXJjZUNvZGUuZ2V0Q29tbWVudHNCZWZvcmUobm9kZSk7XG4gICAgICAgIGNvbnN0IGpzZG9jQ29tbWVudCA9IGZpbmRKc2RvY0NvbW1lbnQoY29tbWVudHMpO1xuXG4gICAgICAgIGlmICghanNkb2NDb21tZW50KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyc2VkVGFncyA9IHBhcnNlVHlwZVBhcmFtZXRlclRhZ3Moe1xuICAgICAgICAgIGNvbW1lbnRCb2R5OiBqc2RvY0NvbW1lbnQudmFsdWUsXG4gICAgICAgICAgdGFnTmFtZTogcHJlZmVycmVkVGFnTmFtZVxuICAgICAgICB9KTtcblxuICAgICAgICBmb3IgKGNvbnN0IHR5cGVQYXJhbWV0ZXIgb2YgdHlwZVBhcmFtcykge1xuICAgICAgICAgIGNvbnN0IHBhcmFtZXRlck5hbWUgPSB0eXBlUGFyYW1ldGVyLm5hbWUubmFtZTtcbiAgICAgICAgICBjb25zdCBtYXRjaGluZ1RhZyA9IHBhcnNlZFRhZ3MuZmluZCgodGFnKSA9PiB0YWcubmFtZSA9PT0gcGFyYW1ldGVyTmFtZSk7XG5cbiAgICAgICAgICBpZiAoIW1hdGNoaW5nVGFnKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uYW1lLXJlcGxhY2VtZW50cyAtLSBgcGFyYW1OYW1lYCBpcyB0aGUgcGxhY2Vob2xkZXIgdGhpcyBydWxlJ3Mgb3duIG1lc3NhZ2UgdGVtcGxhdGUgcmVhZHMuXG4gICAgICAgICAgICAgICAgcGFyYW1OYW1lOiBwYXJhbWV0ZXJOYW1lLFxuICAgICAgICAgICAgICAgIHRhZ05hbWU6IHByZWZlcnJlZFRhZ05hbWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX01JU1NJTkdfVEVNUExBVEUsXG4gICAgICAgICAgICAgIG5vZGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIW1hdGNoaW5nVGFnLmhhc0Rlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uYW1lLXJlcGxhY2VtZW50cyAtLSBgcGFyYW1OYW1lYCBpcyB0aGUgcGxhY2Vob2xkZXIgdGhpcyBydWxlJ3Mgb3duIG1lc3NhZ2UgdGVtcGxhdGUgcmVhZHMuXG4gICAgICAgICAgICAgICAgcGFyYW1OYW1lOiBwYXJhbWV0ZXJOYW1lLFxuICAgICAgICAgICAgICAgIHRhZ05hbWU6IHByZWZlcnJlZFRhZ05hbWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lEX01JU1NJTkdfVEVNUExBVEVfREVTQ1JJUFRJT04sXG4gICAgICAgICAgICAgIG5vZGVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1JlcXVpcmUgYEB0eXBlUGFyYW1gIHRhZ3Mgd2l0aCBkZXNjcmlwdGlvbnMgZm9yIGdlbmVyaWMgbWV0aG9kIHR5cGUgcGFyYW1ldGVycydcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBbTUVTU0FHRV9JRF9NSVNTSU5HX1RFTVBMQVRFXTogJ01pc3NpbmcgQHt7IHRhZ05hbWUgfX0ge3sgcGFyYW1OYW1lIH19JyxcbiAgICAgIFtNRVNTQUdFX0lEX01JU1NJTkdfVEVNUExBVEVfREVTQ1JJUFRJT05dOiAnQHt7IHRhZ05hbWUgfX0ge3sgcGFyYW1OYW1lIH19IGlzIG1pc3NpbmcgYSBkZXNjcmlwdGlvbidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3N1Z2dlc3Rpb24nXG4gIH1cbn07XG5cbmludGVyZmFjZSBQYXJzZWRUYWcge1xuICBoYXNEZXNjcmlwdGlvbjogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBwYXJzZVR5cGVQYXJhbVRhZ3N9LlxuICovXG5pbnRlcmZhY2UgUGFyc2VUeXBlUGFyYW1ldGVyVGFnc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcmF3IGNvbW1lbnQgYm9keSAod2l0aG91dCB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgY29tbWVudCBkZWxpbWl0ZXJzKS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1lbnRCb2R5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmVmZXJyZWQgdGFnIG5hbWUgKGB0eXBlUGFyYW1gIG9yIGB0ZW1wbGF0ZWApLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFnTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBKU0RvYyBibG9jayBjb21tZW50IGZyb20gYSBsaXN0IG9mIGNvbW1lbnRzLlxuICpcbiAqIEBwYXJhbSBjb21tZW50cyAtIFRoZSBjb21tZW50cyBiZWZvcmUgdGhlIG5vZGUuXG4gKiBAcmV0dXJucyBUaGUgSlNEb2MgYmxvY2sgY29tbWVudCwgb3IgYHVuZGVmaW5lZGAgaWYgbm9uZSBmb3VuZC5cbiAqL1xuZnVuY3Rpb24gZmluZEpzZG9jQ29tbWVudChjb21tZW50czogcmVhZG9ubHkgQ29tbWVudFtdKTogQ29tbWVudCB8IHVuZGVmaW5lZCB7XG4gIGZvciAobGV0IGluZGV4ID0gY29tbWVudHMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgIGNvbnN0IGNvbW1lbnQgPSBjb21tZW50c1tpbmRleF07XG4gICAgaWYgKGNvbW1lbnQ/LnR5cGUgPT09ICdCbG9jaycgJiYgY29tbWVudC52YWx1ZS5zdGFydHNXaXRoKCcqJykpIHtcbiAgICAgIHJldHVybiBjb21tZW50O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGFyc2VzIGBAdHlwZVBhcmFtYCAvIGBAdGVtcGxhdGVgIHRhZ3MgZnJvbSBhIEpTRG9jIGNvbW1lbnQgYm9keS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBwYXJzZS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHBhcnNlZCB0YWcgZW50cmllcy5cbiAqL1xuZnVuY3Rpb24gcGFyc2VUeXBlUGFyYW1ldGVyVGFncyhwYXJhbXM6IFBhcnNlVHlwZVBhcmFtZXRlclRhZ3NQYXJhbXMpOiBQYXJzZWRUYWdbXSB7XG4gIGNvbnN0IHsgY29tbWVudEJvZHksIHRhZ05hbWUgfSA9IHBhcmFtcztcbiAgY29uc3QgdGFnczogUGFyc2VkVGFnW10gPSBbXTtcbiAgLypcbiAgICogVGhlIGAkYCBjaGFyYWN0ZXIgaXMgYSBsZWdhbCBpZGVudGlmaWVyIGNoYXJhY3RlciB0aGF0IGBcXHdgIGV4Y2x1ZGVzLCBzbyBhIHRhZyBsaWtlIGBAdHlwZVBhcmFtICRPYmplY3RgXG4gICAqIHdvdWxkIGZhaWwgdG8gbWF0Y2ggYXQgYWxsIGFuZCB0aGUgdHlwZSBwYXJhbWV0ZXIgd291bGQgYmUgcmVwb3J0ZWQgYXMgdW5kb2N1bWVudGVkIGRlc3BpdGUgaGF2aW5nIGEgdGFnLlxuICAgKi9cbiAgY29uc3QgdGFnUGF0dGVybiA9IG5ldyBSZWdFeHAoU3RyaW5nLnJhd2BAKD86JHt0YWdOYW1lfXx0ZW1wbGF0ZXx0eXBlUGFyYW0pXFxzKyg/PHR5cGVOYW1lPltcXHckXSspKD88cmVzdD4uKilgLCAnZycpO1xuXG4gIGxldCBtYXRjaDtcbiAgd2hpbGUgKChtYXRjaCA9IHRhZ1BhdHRlcm4uZXhlYyhjb21tZW50Qm9keSkpICE9PSBudWxsKSB7XG4gICAgY29uc3QgbmFtZSA9IGdldE1hbmRhdG9yeU5hbWVkR3JvdXAobWF0Y2gsICd0eXBlTmFtZScpO1xuICAgIGNvbnN0IHJlc3QgPSBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwKG1hdGNoLCAncmVzdCcpLnRyaW0oKTtcbiAgICBjb25zdCBoYXNEZXNjcmlwdGlvbiA9IHJlc3QubGVuZ3RoID4gMCAmJiByZXN0ICE9PSAnLSc7XG4gICAgdGFncy5wdXNoKHsgaGFzRGVzY3JpcHRpb24sIG5hbWUgfSk7XG4gIH1cblxuICByZXR1cm4gdGFncztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLFNBQVMsOEJBQThCO0FBTXZDLE1BQU0sV0FBVztBQUtWLE1BQU0sOEJBQThCO0FBS3BDLE1BQU0sMENBQTBDO0FBRWhELE1BQU0sd0JBQXlDO0FBQUEsRUFDcEQsT0FBTyxTQUFTO0FBQ2QsVUFBTSxXQUFXLFFBQVEsU0FBUyxPQUFPO0FBQ3pDLFVBQU0sbUJBQW1CLFVBQVUsb0JBQW9CLFVBQVUsS0FBSztBQUV0RSxXQUFPO0FBQUEsTUFDTCxtQkFBbUIsTUFBdUI7QUFDeEMsY0FBTSxhQUFhO0FBQ25CLGNBQU0scUJBQXFCLFdBQVc7QUFFdEMsY0FBTSxhQUFhLG1CQUFtQixnQkFBZ0I7QUFDdEQsWUFBSSxDQUFDLGNBQWMsV0FBVyxXQUFXLEdBQUc7QUFDMUM7QUFBQSxRQUNGO0FBRUEsY0FBTSxhQUFhLFFBQVE7QUFDM0IsY0FBTSxXQUFXLFdBQVcsa0JBQWtCLElBQUk7QUFDbEQsY0FBTSxlQUFlLGlCQUFpQixRQUFRO0FBRTlDLFlBQUksQ0FBQyxjQUFjO0FBQ2pCO0FBQUEsUUFDRjtBQUVBLGNBQU0sYUFBYSx1QkFBdUI7QUFBQSxVQUN4QyxhQUFhLGFBQWE7QUFBQSxVQUMxQixTQUFTO0FBQUEsUUFDWCxDQUFDO0FBRUQsbUJBQVcsaUJBQWlCLFlBQVk7QUFDdEMsZ0JBQU0sZ0JBQWdCLGNBQWMsS0FBSztBQUN6QyxnQkFBTSxjQUFjLFdBQVcsS0FBSyxDQUFDLFFBQVEsSUFBSSxTQUFTLGFBQWE7QUFFdkUsY0FBSSxDQUFDLGFBQWE7QUFDaEIsb0JBQVEsT0FBTztBQUFBLGNBQ2IsTUFBTTtBQUFBO0FBQUEsZ0JBRUosV0FBVztBQUFBLGdCQUNYLFNBQVM7QUFBQSxjQUNYO0FBQUEsY0FDQSxXQUFXO0FBQUEsY0FDWDtBQUFBLFlBQ0YsQ0FBQztBQUFBLFVBQ0gsV0FBVyxDQUFDLFlBQVksZ0JBQWdCO0FBQ3RDLG9CQUFRLE9BQU87QUFBQSxjQUNiLE1BQU07QUFBQTtBQUFBLGdCQUVKLFdBQVc7QUFBQSxnQkFDWCxTQUFTO0FBQUEsY0FDWDtBQUFBLGNBQ0EsV0FBVztBQUFBLGNBQ1g7QUFBQSxZQUNGLENBQUM7QUFBQSxVQUNIO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLENBQUMsMkJBQTJCLEdBQUc7QUFBQSxNQUMvQixDQUFDLHVDQUF1QyxHQUFHO0FBQUEsSUFDN0M7QUFBQSxJQUNBLFFBQVEsQ0FBQztBQUFBLElBQ1QsTUFBTTtBQUFBLEVBQ1I7QUFDRjtBQTRCQSxTQUFTLGlCQUFpQixVQUFtRDtBQUMzRSxXQUFTLFFBQVEsU0FBUyxTQUFTLEdBQUcsU0FBUyxHQUFHLFNBQVM7QUFDekQsVUFBTSxVQUFVLFNBQVMsS0FBSztBQUM5QixRQUFJLFNBQVMsU0FBUyxXQUFXLFFBQVEsTUFBTSxXQUFXLEdBQUcsR0FBRztBQUM5RCxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFRQSxTQUFTLHVCQUF1QixRQUFtRDtBQUNqRixRQUFNLEVBQUUsYUFBYSxRQUFRLElBQUk7QUFDakMsUUFBTSxPQUFvQixDQUFDO0FBSzNCLFFBQU0sYUFBYSxJQUFJLE9BQU8sT0FBTyxVQUFVLE9BQU8seURBQXlELEdBQUc7QUFFbEgsTUFBSTtBQUNKLFVBQVEsUUFBUSxXQUFXLEtBQUssV0FBVyxPQUFPLE1BQU07QUFDdEQsVUFBTSxPQUFPLHVCQUF1QixPQUFPLFVBQVU7QUFDckQsVUFBTSxPQUFPLHVCQUF1QixPQUFPLE1BQU0sRUFBRSxLQUFLO0FBQ3hELFVBQU0saUJBQWlCLEtBQUssU0FBUyxLQUFLLFNBQVM7QUFDbkQsU0FBSyxLQUFLLEVBQUUsZ0JBQWdCLEtBQUssQ0FBQztBQUFBLEVBQ3BDO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/// <reference path="../../../library.d.mts" />
|
|
2
2
|
import type { Rule } from 'eslint';
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
Message ID reported when an `override` method does not access its `super` counterpart.
|
|
5
|
+
*/
|
|
4
6
|
export declare const MESSAGE_ID = "requireSuperCall";
|
|
5
7
|
export declare const requireSuperCall: Rule.RuleModule;
|
|
@@ -33,32 +33,32 @@ const requireSuperCall = {
|
|
|
33
33
|
const methodStack = [];
|
|
34
34
|
return {
|
|
35
35
|
"AssignmentExpression"(node) {
|
|
36
|
-
const current = methodStack
|
|
36
|
+
const current = methodStack.at(-1);
|
|
37
37
|
if (current?.kind !== "set") {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
40
|
const assignNode = node;
|
|
41
|
-
if (
|
|
41
|
+
if (isSuperPropertyAccess(assignNode.left, current.methodName)) {
|
|
42
42
|
current.hasSuperCall = true;
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
"CallExpression"(node) {
|
|
46
|
-
const current = methodStack
|
|
46
|
+
const current = methodStack.at(-1);
|
|
47
47
|
if (current?.kind !== "method") {
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
50
|
const callNode = node;
|
|
51
|
-
if (
|
|
51
|
+
if (isSuperMethodCall(callNode, current.methodName)) {
|
|
52
52
|
current.hasSuperCall = true;
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
55
|
"MemberExpression"(node) {
|
|
56
|
-
const current = methodStack
|
|
56
|
+
const current = methodStack.at(-1);
|
|
57
57
|
if (current?.kind !== "get") {
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
const memberNode = node;
|
|
61
|
-
if (
|
|
61
|
+
if (isSuperPropertyAccess(memberNode, current.methodName)) {
|
|
62
62
|
current.hasSuperCall = true;
|
|
63
63
|
}
|
|
64
64
|
},
|
|
@@ -80,7 +80,7 @@ const requireSuperCall = {
|
|
|
80
80
|
});
|
|
81
81
|
},
|
|
82
82
|
"MethodDefinition:exit"() {
|
|
83
|
-
const info = methodStack
|
|
83
|
+
const info = methodStack.at(-1);
|
|
84
84
|
if (!info) {
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
@@ -88,7 +88,7 @@ const requireSuperCall = {
|
|
|
88
88
|
if (info.hasSuperCall) {
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
|
-
if (
|
|
91
|
+
if (isParentMethodAbstract({
|
|
92
92
|
context,
|
|
93
93
|
methodName: info.methodName,
|
|
94
94
|
methodNode: info.node
|
|
@@ -114,51 +114,51 @@ const requireSuperCall = {
|
|
|
114
114
|
type: "problem"
|
|
115
115
|
}
|
|
116
116
|
};
|
|
117
|
-
function
|
|
118
|
-
assert(canHaveModifiers(
|
|
119
|
-
const modifiers = getModifiers(
|
|
120
|
-
return modifiers?.some((
|
|
117
|
+
function isAbstract(declaration) {
|
|
118
|
+
assert(canHaveModifiers(declaration), "Expected method declaration to support modifiers");
|
|
119
|
+
const modifiers = getModifiers(declaration);
|
|
120
|
+
return modifiers?.some(($module) => $module.kind === SyntaxKind.AbstractKeyword) ?? false;
|
|
121
121
|
}
|
|
122
|
-
function
|
|
122
|
+
function isParentMethodAbstract(params) {
|
|
123
123
|
const { context, methodName, methodNode } = params;
|
|
124
124
|
const services = context.sourceCode.parserServices;
|
|
125
125
|
if (!services.program || !services.esTreeNodeToTSNodeMap) {
|
|
126
126
|
return false;
|
|
127
127
|
}
|
|
128
128
|
const checker = services.program.getTypeChecker();
|
|
129
|
-
const
|
|
130
|
-
const tsClassNode = services.esTreeNodeToTSNodeMap.get(
|
|
129
|
+
const classDeclaration = methodNode.parent.parent;
|
|
130
|
+
const tsClassNode = services.esTreeNodeToTSNodeMap.get(classDeclaration);
|
|
131
131
|
const classType = checker.getTypeAtLocation(tsClassNode);
|
|
132
132
|
const baseTypes = classType.getBaseTypes();
|
|
133
133
|
if (!baseTypes) {
|
|
134
134
|
return false;
|
|
135
135
|
}
|
|
136
136
|
for (const baseType of baseTypes) {
|
|
137
|
-
const
|
|
138
|
-
if (!
|
|
137
|
+
const property = baseType.getProperty(methodName);
|
|
138
|
+
if (!property) {
|
|
139
139
|
continue;
|
|
140
140
|
}
|
|
141
|
-
const declarations =
|
|
141
|
+
const declarations = property.getDeclarations();
|
|
142
142
|
if (!declarations) {
|
|
143
143
|
continue;
|
|
144
144
|
}
|
|
145
|
-
for (const
|
|
146
|
-
if (
|
|
145
|
+
for (const declaration of declarations) {
|
|
146
|
+
if (isAbstract(declaration)) {
|
|
147
147
|
return true;
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
return false;
|
|
152
152
|
}
|
|
153
|
-
function
|
|
153
|
+
function isSuperMethodCall(node, methodName) {
|
|
154
154
|
const callee = node.callee;
|
|
155
155
|
return callee.type === "MemberExpression" && callee.object.type === "Super" && callee.property.type === "Identifier" && callee.property.name === methodName;
|
|
156
156
|
}
|
|
157
|
-
function
|
|
157
|
+
function isSuperPropertyAccess(node, propertyName) {
|
|
158
158
|
return node.type === "MemberExpression" && node.object.type === "Super" && node.property.type === "Identifier" && node.property.name === propertyName;
|
|
159
159
|
}
|
|
160
160
|
export {
|
|
161
161
|
MESSAGE_ID,
|
|
162
162
|
requireSuperCall
|
|
163
163
|
};
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLXN1cGVyLWNhbGwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcmVxdWlyZS1zdXBlci1jYWxsXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGFuIGBvdmVycmlkZWAgbWV0aG9kIGRvZXMgbm90IGNhbGwgYHN1cGVyLm1ldGhvZE5hbWUoKWBcbiAqIGFueXdoZXJlIGluIGl0cyBib2R5LiBPdmVycmlkaW5nIGEgbWV0aG9kIHdpdGhvdXQgY2FsbGluZyBgc3VwZXJgIGlzIGFsbW9zdFxuICogYWx3YXlzIGEgbWlzdGFrZSB0aGF0IHNpbGVudGx5IGJyZWFrcyBwYXJlbnQtY2xhc3MgYmVoYXZpb3IgKGxpZmVjeWNsZSBob29rcyxcbiAqIGluaXRpYWxpemF0aW9uLCBldmVudCB3aXJpbmcsIGV0Yy4pLlxuICpcbiAqIFRoZSBzdXBlciBjYWxsIGNhbiBhcHBlYXIgYW55d2hlcmUgaW4gdGhlIG1ldGhvZCBib2R5IFx1MjAxNCBhcyBhIHN0YW5kYWxvbmVcbiAqIHN0YXRlbWVudCwgYXdhaXRlZCwgYXNzaWduZWQgdG8gYSB2YXJpYWJsZSwgb3IgbmVzdGVkIGluIGFueSBleHByZXNzaW9uLlxuICpcbiAqIFRoZSBydWxlIGF1dG9tYXRpY2FsbHkgc2tpcHMgbWV0aG9kcyB3aGVyZSB0aGUgcGFyZW50IGltcGxlbWVudGF0aW9uIGlzXG4gKiBgYWJzdHJhY3RgLCBzaW5jZSB0aGVyZSBpcyBubyBjb25jcmV0ZSBgc3VwZXJgIHRvIGNhbGwuXG4gKlxuICogSWYgdGhlIG92ZXJyaWRlIGludGVudGlvbmFsbHkgcmVwbGFjZXMgdGhlIHBhcmVudCBpbXBsZW1lbnRhdGlvbiwgZGlzYWJsZSB0aGVcbiAqIHJ1bGUgb24gdGhhdCBsaW5lIHdpdGggYW4gZXhwbGFuYXRvcnkgY29tbWVudC5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24sXG4gIFRTRVNUcmVlXG59IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUgeyBEZWNsYXJhdGlvbiB9IGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1xuICBjYW5IYXZlTW9kaWZpZXJzLFxuICBnZXRNb2RpZmllcnMsXG4gIFN5bnRheEtpbmRcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJy4uLy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcblxuLyoqIE1lc3NhZ2UgSUQgcmVwb3J0ZWQgd2hlbiBhbiBgb3ZlcnJpZGVgIG1ldGhvZCBkb2VzIG5vdCBhY2Nlc3MgaXRzIGBzdXBlcmAgY291bnRlcnBhcnQuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRCA9ICdyZXF1aXJlU3VwZXJDYWxsJztcblxudHlwZSBNZXRob2RLaW5kID0gJ2dldCcgfCAnbWV0aG9kJyB8ICdzZXQnO1xuXG5pbnRlcmZhY2UgT3ZlcnJpZGVNZXRob2RJbmZvIHtcbiAgaGFzU3VwZXJDYWxsOiBib29sZWFuO1xuICBraW5kOiBNZXRob2RLaW5kO1xuICBtZXRob2ROYW1lOiBzdHJpbmc7XG4gIG5vZGU6IFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG4gIHJlcG9ydE5vZGU6IFJ1bGUuTm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IHJlcXVpcmVTdXBlckNhbGw6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBtZXRob2RTdGFjazogT3ZlcnJpZGVNZXRob2RJbmZvW10gPSBbXTtcblxuICAgIHJldHVybiB7XG4gICAgICAnQXNzaWdubWVudEV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2tbbWV0aG9kU3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmIChjdXJyZW50Py5raW5kICE9PSAnc2V0Jykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFzc2lnbk5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLkFzc2lnbm1lbnRFeHByZXNzaW9uO1xuICAgICAgICBpZiAoY2hlY2tJc1N1cGVyUHJvcGVydHlBY2Nlc3MoYXNzaWduTm9kZS5sZWZ0LCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ0NhbGxFeHByZXNzaW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IG1ldGhvZFN0YWNrW21ldGhvZFN0YWNrLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoY3VycmVudD8ua2luZCAhPT0gJ21ldGhvZCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYWxsTm9kZSA9IG5vZGUgYXMgVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb247XG4gICAgICAgIGlmIChjaGVja0lzU3VwZXJNZXRob2RDYWxsKGNhbGxOb2RlLCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ01lbWJlckV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2tbbWV0aG9kU3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmIChjdXJyZW50Py5raW5kICE9PSAnZ2V0Jykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1lbWJlck5vZGUgPSBub2RlIGFzIFRTRVNUcmVlLk1lbWJlckV4cHJlc3Npb247XG4gICAgICAgIGlmIChjaGVja0lzU3VwZXJQcm9wZXJ0eUFjY2VzcyhtZW1iZXJOb2RlLCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ01ldGhvZERlZmluaXRpb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBtZXRob2ROb2RlID0gbm9kZSBhcyBUU0VTVHJlZS5NZXRob2REZWZpbml0aW9uO1xuXG4gICAgICAgIGlmICghbWV0aG9kTm9kZS5vdmVycmlkZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuXG4gICAgICAgIGlmIChtZXRob2ROb2RlLmtleS50eXBlICE9PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBraW5kID0gbWV0aG9kTm9kZS5raW5kID09PSAnZ2V0JyB8fCBtZXRob2ROb2RlLmtpbmQgPT09ICdzZXQnID8gbWV0aG9kTm9kZS5raW5kIDogJ21ldGhvZCc7XG5cbiAgICAgICAgbWV0aG9kU3RhY2sucHVzaCh7XG4gICAgICAgICAgaGFzU3VwZXJDYWxsOiBmYWxzZSxcbiAgICAgICAgICBraW5kLFxuICAgICAgICAgIG1ldGhvZE5hbWU6IG1ldGhvZE5vZGUua2V5Lm5hbWUsXG4gICAgICAgICAgbm9kZTogbWV0aG9kTm9kZSxcbiAgICAgICAgICByZXBvcnROb2RlOiBub2RlXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgICdNZXRob2REZWZpbml0aW9uOmV4aXQnKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmZvID0gbWV0aG9kU3RhY2tbbWV0aG9kU3RhY2subGVuZ3RoIC0gMV07XG4gICAgICAgIGlmICghaW5mbykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG1ldGhvZFN0YWNrLnBvcCgpO1xuXG4gICAgICAgIGlmIChpbmZvLmhhc1N1cGVyQ2FsbCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGVja0lzUGFyZW50TWV0aG9kQWJzdHJhY3Qoe1xuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG1ldGhvZE5hbWU6IGluZm8ubWV0aG9kTmFtZSxcbiAgICAgICAgICAgIG1ldGhvZE5vZGU6IGluZm8ubm9kZVxuICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICBkYXRhOiB7IGtpbmQ6IGluZm8ua2luZCwgbWV0aG9kTmFtZTogaW5mby5tZXRob2ROYW1lIH0sXG4gICAgICAgICAgbWVzc2FnZUlkOiBNRVNTQUdFX0lELFxuICAgICAgICAgIG5vZGU6IGluZm8ucmVwb3J0Tm9kZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICB9LFxuICBtZXRhOiB7XG4gICAgZG9jczoge1xuICAgICAgZGVzY3JpcHRpb246ICdSZXF1aXJlIGBvdmVycmlkZWAgbWV0aG9kcyB0byBjYWxsIGBzdXBlci5tZXRob2ROYW1lKClgJ1xuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIFtNRVNTQUdFX0lEXTogJ092ZXJyaWRlIHt7IGtpbmQgfX0gYHt7IG1ldGhvZE5hbWUgfX1gIG11c3QgYWNjZXNzIGBzdXBlci57eyBtZXRob2ROYW1lIH19YC4nXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6ICdwcm9ibGVtJ1xuICB9XG59O1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjaGVja0lzUGFyZW50TWV0aG9kQWJzdHJhY3R9LlxuICovXG5pbnRlcmZhY2UgQ2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCBuYW1lIHRvIGxvb2sgdXAgaW4gdGhlIHBhcmVudCBjbGFzcy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG92ZXJyaWRlIG1ldGhvZCBkZWZpbml0aW9uIEFTVCBub2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kTm9kZTogVFNFU1RyZWUuTWV0aG9kRGVmaW5pdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGRlY2xhcmF0aW9uIGhhcyB0aGUgYGFic3RyYWN0YCBtb2RpZmllci5cbiAqXG4gKiBAcGFyYW0gZGVjbCAtIFRoZSBUeXBlU2NyaXB0IGRlY2xhcmF0aW9uIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGRlY2xhcmF0aW9uIGlzIGFic3RyYWN0LlxuICovXG5mdW5jdGlvbiBjaGVja0lzQWJzdHJhY3QoZGVjbDogRGVjbGFyYXRpb24pOiBib29sZWFuIHtcbiAgYXNzZXJ0KGNhbkhhdmVNb2RpZmllcnMoZGVjbCksICdFeHBlY3RlZCBtZXRob2QgZGVjbGFyYXRpb24gdG8gc3VwcG9ydCBtb2RpZmllcnMnKTtcblxuICBjb25zdCBtb2RpZmllcnMgPSBnZXRNb2RpZmllcnMoZGVjbCk7XG4gIHJldHVybiBtb2RpZmllcnM/LnNvbWUoKG1vZCkgPT4gbW9kLmtpbmQgPT09IFN5bnRheEtpbmQuQWJzdHJhY3RLZXl3b3JkKSA/PyBmYWxzZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgcGFyZW50IGNsYXNzJ3MgdmVyc2lvbiBvZiB0aGUgbWV0aG9kIGlzIGBhYnN0cmFjdGAuXG4gKlxuICogV2hlbiB0eXBlIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgKGUuZy4sIHBhcnNlciBjb25maWd1cmVkIHdpdGhvdXRcbiAqIGBwcm9qZWN0U2VydmljZWApLCByZXR1cm5zIGBmYWxzZWAgc28gdGhlIHJ1bGUgY29uc2VydmF0aXZlbHkgcmVwb3J0cy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcGFyZW50IG1ldGhvZCBpcyBhYnN0cmFjdC5cbiAqL1xuZnVuY3Rpb24gY2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0KHBhcmFtczogQ2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0UGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IHsgY29udGV4dCwgbWV0aG9kTmFtZSwgbWV0aG9kTm9kZSB9ID0gcGFyYW1zO1xuICBjb25zdCBzZXJ2aWNlcyA9IGNvbnRleHQuc291cmNlQ29kZS5wYXJzZXJTZXJ2aWNlcyBhcyBQYXJ0aWFsPFBhcnNlclNlcnZpY2VzV2l0aFR5cGVJbmZvcm1hdGlvbj47XG5cbiAgaWYgKCFzZXJ2aWNlcy5wcm9ncmFtIHx8ICFzZXJ2aWNlcy5lc1RyZWVOb2RlVG9UU05vZGVNYXApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjaGVja2VyID0gc2VydmljZXMucHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICBjb25zdCBjbGFzc0RlY2wgPSBtZXRob2ROb2RlLnBhcmVudC5wYXJlbnQ7XG4gIGNvbnN0IHRzQ2xhc3NOb2RlID0gc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChjbGFzc0RlY2wpO1xuICBjb25zdCBjbGFzc1R5cGUgPSBjaGVja2VyLmdldFR5cGVBdExvY2F0aW9uKHRzQ2xhc3NOb2RlKTtcbiAgY29uc3QgYmFzZVR5cGVzID0gY2xhc3NUeXBlLmdldEJhc2VUeXBlcygpO1xuXG4gIGlmICghYmFzZVR5cGVzKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZm9yIChjb25zdCBiYXNlVHlwZSBvZiBiYXNlVHlwZXMpIHtcbiAgICBjb25zdCBwcm9wID0gYmFzZVR5cGUuZ2V0UHJvcGVydHkobWV0aG9kTmFtZSk7XG5cbiAgICBpZiAoIXByb3ApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY2xhcmF0aW9ucyA9IHByb3AuZ2V0RGVjbGFyYXRpb25zKCk7XG5cbiAgICBpZiAoIWRlY2xhcmF0aW9ucykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBkZWNsIG9mIGRlY2xhcmF0aW9ucykge1xuICAgICAgaWYgKGNoZWNrSXNBYnN0cmFjdChkZWNsKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBjYWxsIGV4cHJlc3Npb24gaXMgYHN1cGVyLm1ldGhvZE5hbWUoLi4uKWAuXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgY2FsbCBleHByZXNzaW9uIG5vZGUuXG4gKiBAcGFyYW0gbWV0aG9kTmFtZSAtIFRoZSBleHBlY3RlZCBtZXRob2QgbmFtZS5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbm9kZSBpcyBhIG1hdGNoaW5nIHN1cGVyIG1ldGhvZCBjYWxsLlxuICovXG5mdW5jdGlvbiBjaGVja0lzU3VwZXJNZXRob2RDYWxsKG5vZGU6IFRTRVNUcmVlLkNhbGxFeHByZXNzaW9uLCBtZXRob2ROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgY2FsbGVlID0gbm9kZS5jYWxsZWU7XG4gIC8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIEFTVCBub2RlIHR5cGUgc3RyaW5nIGxpdGVyYWxzIG1hdGNoIHRoZSBUU0VTVHJlZSBlbnVtIHZhbHVlcy4gKi9cbiAgcmV0dXJuIGNhbGxlZS50eXBlID09PSAnTWVtYmVyRXhwcmVzc2lvbidcbiAgICAmJiBjYWxsZWUub2JqZWN0LnR5cGUgPT09ICdTdXBlcidcbiAgICAmJiBjYWxsZWUucHJvcGVydHkudHlwZSA9PT0gJ0lkZW50aWZpZXInXG4gICAgJiYgY2FsbGVlLnByb3BlcnR5Lm5hbWUgPT09IG1ldGhvZE5hbWU7XG4gIC8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gUmUtZW5hYmxlIGFmdGVyIG11bHRpLWxpbmUgc3RyaW5nIGNvbXBhcmlzb24gYmxvY2suICovXG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBub2RlIGlzIGEgYHN1cGVyLnByb3BlcnR5TmFtZWAgbWVtYmVyIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIG5vZGUgLSBUaGUgQVNUIG5vZGUgdG8gY2hlY2sgKE1lbWJlckV4cHJlc3Npb24gb3IgQXNzaWdubWVudEV4cHJlc3Npb24gbGVmdC1oYW5kIHNpZGUpLlxuICogQHBhcmFtIHByb3BlcnR5TmFtZSAtIFRoZSBleHBlY3RlZCBwcm9wZXJ0eSBuYW1lLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGlzIGEgbWF0Y2hpbmcgc3VwZXIgcHJvcGVydHkgYWNjZXNzLlxuICovXG5mdW5jdGlvbiBjaGVja0lzU3VwZXJQcm9wZXJ0eUFjY2Vzcyhub2RlOiBUU0VTVHJlZS5Ob2RlLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuICovXG4gIHJldHVybiBub2RlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJ1xuICAgICYmIG5vZGUub2JqZWN0LnR5cGUgPT09ICdTdXBlcidcbiAgICAmJiBub2RlLnByb3BlcnR5LnR5cGUgPT09ICdJZGVudGlmaWVyJ1xuICAgICYmIG5vZGUucHJvcGVydHkubmFtZSA9PT0gcHJvcGVydHlOYW1lO1xuICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIFJlLWVuYWJsZSBhZnRlciBtdWx0aS1saW5lIHN0cmluZyBjb21wYXJpc29uIGJsb2NrLiAqL1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQkE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUyxjQUFjO0FBR2hCLE1BQU0sYUFBYTtBQVluQixNQUFNLG1CQUFvQztBQUFBLEVBQy9DLE9BQU8sU0FBUztBQUNkLFVBQU0sY0FBb0MsQ0FBQztBQUUzQyxXQUFPO0FBQUEsTUFDTCx1QkFBdUIsTUFBdUI7QUFDNUMsY0FBTSxVQUFVLFlBQVksWUFBWSxTQUFTLENBQUM7QUFDbEQsWUFBSSxTQUFTLFNBQVMsT0FBTztBQUMzQjtBQUFBLFFBQ0Y7QUFFQSxjQUFNLGFBQWE7QUFDbkIsWUFBSSwyQkFBMkIsV0FBVyxNQUFNLFFBQVEsVUFBVSxHQUFHO0FBQ25FLGtCQUFRLGVBQWU7QUFBQSxRQUN6QjtBQUFBLE1BQ0Y7QUFBQSxNQUNBLGlCQUFpQixNQUF1QjtBQUN0QyxjQUFNLFVBQVUsWUFBWSxZQUFZLFNBQVMsQ0FBQztBQUNsRCxZQUFJLFNBQVMsU0FBUyxVQUFVO0FBQzlCO0FBQUEsUUFDRjtBQUVBLGNBQU0sV0FBVztBQUNqQixZQUFJLHVC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
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9yZXF1aXJlLXN1cGVyLWNhbGwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBFU0xpbnQgcnVsZTogcmVxdWlyZS1zdXBlci1jYWxsXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGFuIGBvdmVycmlkZWAgbWV0aG9kIGRvZXMgbm90IGNhbGwgYHN1cGVyLm1ldGhvZE5hbWUoKWBcbiAqIGFueXdoZXJlIGluIGl0cyBib2R5LiBPdmVycmlkaW5nIGEgbWV0aG9kIHdpdGhvdXQgY2FsbGluZyBgc3VwZXJgIGlzIGFsbW9zdFxuICogYWx3YXlzIGEgbWlzdGFrZSB0aGF0IHNpbGVudGx5IGJyZWFrcyBwYXJlbnQtY2xhc3MgYmVoYXZpb3IgKGxpZmVjeWNsZSBob29rcyxcbiAqIGluaXRpYWxpemF0aW9uLCBldmVudCB3aXJpbmcsIGV0Yy4pLlxuICpcbiAqIFRoZSBzdXBlciBjYWxsIGNhbiBhcHBlYXIgYW55d2hlcmUgaW4gdGhlIG1ldGhvZCBib2R5IFx1MjAxNCBhcyBhIHN0YW5kYWxvbmVcbiAqIHN0YXRlbWVudCwgYXdhaXRlZCwgYXNzaWduZWQgdG8gYSB2YXJpYWJsZSwgb3IgbmVzdGVkIGluIGFueSBleHByZXNzaW9uLlxuICpcbiAqIFRoZSBydWxlIGF1dG9tYXRpY2FsbHkgc2tpcHMgbWV0aG9kcyB3aGVyZSB0aGUgcGFyZW50IGltcGxlbWVudGF0aW9uIGlzXG4gKiBgYWJzdHJhY3RgLCBzaW5jZSB0aGVyZSBpcyBubyBjb25jcmV0ZSBgc3VwZXJgIHRvIGNhbGwuXG4gKlxuICogSWYgdGhlIG92ZXJyaWRlIGludGVudGlvbmFsbHkgcmVwbGFjZXMgdGhlIHBhcmVudCBpbXBsZW1lbnRhdGlvbiwgZGlzYWJsZSB0aGVcbiAqIHJ1bGUgb24gdGhhdCBsaW5lIHdpdGggYW4gZXhwbGFuYXRvcnkgY29tbWVudC5cbiAqL1xuaW1wb3J0IHR5cGUge1xuICBQYXJzZXJTZXJ2aWNlc1dpdGhUeXBlSW5mb3JtYXRpb24sXG4gIFRTRVNUcmVlXG59IGZyb20gJ0B0eXBlc2NyaXB0LWVzbGludC91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuaW1wb3J0IHR5cGUgeyBEZWNsYXJhdGlvbiB9IGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1xuICBjYW5IYXZlTW9kaWZpZXJzLFxuICBnZXRNb2RpZmllcnMsXG4gIFN5bnRheEtpbmRcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7IGFzc2VydCB9IGZyb20gJy4uLy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcblxuLyoqXG5NZXNzYWdlIElEIHJlcG9ydGVkIHdoZW4gYW4gYG92ZXJyaWRlYCBtZXRob2QgZG9lcyBub3QgYWNjZXNzIGl0cyBgc3VwZXJgIGNvdW50ZXJwYXJ0LlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9JRCA9ICdyZXF1aXJlU3VwZXJDYWxsJztcblxudHlwZSBNZXRob2RLaW5kID0gJ2dldCcgfCAnbWV0aG9kJyB8ICdzZXQnO1xuXG5pbnRlcmZhY2UgT3ZlcnJpZGVNZXRob2RJbmZvIHtcbiAgaGFzU3VwZXJDYWxsOiBib29sZWFuO1xuICBraW5kOiBNZXRob2RLaW5kO1xuICBtZXRob2ROYW1lOiBzdHJpbmc7XG4gIG5vZGU6IFRTRVNUcmVlLk1ldGhvZERlZmluaXRpb247XG4gIHJlcG9ydE5vZGU6IFJ1bGUuTm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IHJlcXVpcmVTdXBlckNhbGw6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBtZXRob2RTdGFjazogT3ZlcnJpZGVNZXRob2RJbmZvW10gPSBbXTtcblxuICAgIHJldHVybiB7XG4gICAgICAnQXNzaWdubWVudEV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2suYXQoLTEpO1xuICAgICAgICBpZiAoY3VycmVudD8ua2luZCAhPT0gJ3NldCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhc3NpZ25Ob2RlID0gbm9kZSBhcyBUU0VTVHJlZS5Bc3NpZ25tZW50RXhwcmVzc2lvbjtcbiAgICAgICAgaWYgKGlzU3VwZXJQcm9wZXJ0eUFjY2Vzcyhhc3NpZ25Ob2RlLmxlZnQsIGN1cnJlbnQubWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICBjdXJyZW50Lmhhc1N1cGVyQ2FsbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAnQ2FsbEV4cHJlc3Npb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gbWV0aG9kU3RhY2suYXQoLTEpO1xuICAgICAgICBpZiAoY3VycmVudD8ua2luZCAhPT0gJ21ldGhvZCcpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjYWxsTm9kZSA9IG5vZGUgYXMgVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb247XG4gICAgICAgIGlmIChpc1N1cGVyTWV0aG9kQ2FsbChjYWxsTm9kZSwgY3VycmVudC5tZXRob2ROYW1lKSkge1xuICAgICAgICAgIGN1cnJlbnQuaGFzU3VwZXJDYWxsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICdNZW1iZXJFeHByZXNzaW9uJyhub2RlOiBSdWxlLk5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudCA9IG1ldGhvZFN0YWNrLmF0KC0xKTtcbiAgICAgICAgaWYgKGN1cnJlbnQ/LmtpbmQgIT09ICdnZXQnKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWVtYmVyTm9kZSA9IG5vZGUgYXMgVFNFU1RyZWUuTWVtYmVyRXhwcmVzc2lvbjtcbiAgICAgICAgaWYgKGlzU3VwZXJQcm9wZXJ0eUFjY2VzcyhtZW1iZXJOb2RlLCBjdXJyZW50Lm1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgY3VycmVudC5oYXNTdXBlckNhbGwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ01ldGhvZERlZmluaXRpb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBtZXRob2ROb2RlID0gbm9kZSBhcyBUU0VTVHJlZS5NZXRob2REZWZpbml0aW9uO1xuXG4gICAgICAgIGlmICghbWV0aG9kTm9kZS5vdmVycmlkZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuXG4gICAgICAgIGlmIChtZXRob2ROb2RlLmtleS50eXBlICE9PSAnSWRlbnRpZmllcicpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBraW5kID0gbWV0aG9kTm9kZS5raW5kID09PSAnZ2V0JyB8fCBtZXRob2ROb2RlLmtpbmQgPT09ICdzZXQnID8gbWV0aG9kTm9kZS5raW5kIDogJ21ldGhvZCc7XG5cbiAgICAgICAgbWV0aG9kU3RhY2sucHVzaCh7XG4gICAgICAgICAgaGFzU3VwZXJDYWxsOiBmYWxzZSxcbiAgICAgICAgICBraW5kLFxuICAgICAgICAgIG1ldGhvZE5hbWU6IG1ldGhvZE5vZGUua2V5Lm5hbWUsXG4gICAgICAgICAgbm9kZTogbWV0aG9kTm9kZSxcbiAgICAgICAgICByZXBvcnROb2RlOiBub2RlXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgICdNZXRob2REZWZpbml0aW9uOmV4aXQnKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmZvID0gbWV0aG9kU3RhY2suYXQoLTEpO1xuICAgICAgICBpZiAoIWluZm8pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBtZXRob2RTdGFjay5wb3AoKTtcblxuICAgICAgICBpZiAoaW5mby5oYXNTdXBlckNhbGwpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgaXNQYXJlbnRNZXRob2RBYnN0cmFjdCh7XG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgbWV0aG9kTmFtZTogaW5mby5tZXRob2ROYW1lLFxuICAgICAgICAgICAgbWV0aG9kTm9kZTogaW5mby5ub2RlXG4gICAgICAgICAgfSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGV4dC5yZXBvcnQoe1xuICAgICAgICAgIGRhdGE6IHsga2luZDogaW5mby5raW5kLCBtZXRob2ROYW1lOiBpbmZvLm1ldGhvZE5hbWUgfSxcbiAgICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSUQsXG4gICAgICAgICAgbm9kZTogaW5mby5yZXBvcnROb2RlXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1JlcXVpcmUgYG92ZXJyaWRlYCBtZXRob2RzIHRvIGNhbGwgYHN1cGVyLm1ldGhvZE5hbWUoKWAnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOiAnT3ZlcnJpZGUge3sga2luZCB9fSBge3sgbWV0aG9kTmFtZSB9fWAgbXVzdCBhY2Nlc3MgYHN1cGVyLnt7IG1ldGhvZE5hbWUgfX1gLidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3Byb2JsZW0nXG4gIH1cbn07XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGlzUGFyZW50TWV0aG9kQWJzdHJhY3R9LlxuICovXG5pbnRlcmZhY2UgQ2hlY2tJc1BhcmVudE1ldGhvZEFic3RyYWN0UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBFU0xpbnQgcnVsZSBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dDtcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCBuYW1lIHRvIGxvb2sgdXAgaW4gdGhlIHBhcmVudCBjbGFzcy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG92ZXJyaWRlIG1ldGhvZCBkZWZpbml0aW9uIEFTVCBub2RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kTm9kZTogVFNFU1RyZWUuTWV0aG9kRGVmaW5pdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGRlY2xhcmF0aW9uIGhhcyB0aGUgYGFic3RyYWN0YCBtb2RpZmllci5cbiAqXG4gKiBAcGFyYW0gZGVjbGFyYXRpb24gLSBUaGUgVHlwZVNjcmlwdCBkZWNsYXJhdGlvbiB0byBpbnNwZWN0LlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBkZWNsYXJhdGlvbiBpcyBhYnN0cmFjdC5cbiAqL1xuZnVuY3Rpb24gaXNBYnN0cmFjdChkZWNsYXJhdGlvbjogRGVjbGFyYXRpb24pOiBib29sZWFuIHtcbiAgYXNzZXJ0KGNhbkhhdmVNb2RpZmllcnMoZGVjbGFyYXRpb24pLCAnRXhwZWN0ZWQgbWV0aG9kIGRlY2xhcmF0aW9uIHRvIHN1cHBvcnQgbW9kaWZpZXJzJyk7XG5cbiAgY29uc3QgbW9kaWZpZXJzID0gZ2V0TW9kaWZpZXJzKGRlY2xhcmF0aW9uKTtcbiAgcmV0dXJuIG1vZGlmaWVycz8uc29tZSgoJG1vZHVsZSkgPT4gJG1vZHVsZS5raW5kID09PSBTeW50YXhLaW5kLkFic3RyYWN0S2V5d29yZCkgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIHBhcmVudCBjbGFzcydzIHZlcnNpb24gb2YgdGhlIG1ldGhvZCBpcyBgYWJzdHJhY3RgLlxuICpcbiAqIFdoZW4gdHlwZSBpbmZvcm1hdGlvbiBpcyBub3QgYXZhaWxhYmxlIChlLmcuLCBwYXJzZXIgY29uZmlndXJlZCB3aXRob3V0XG4gKiBgcHJvamVjdFNlcnZpY2VgKSwgcmV0dXJucyBgZmFsc2VgIHNvIHRoZSBydWxlIGNvbnNlcnZhdGl2ZWx5IHJlcG9ydHMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHBhcmVudCBtZXRob2QgaXMgYWJzdHJhY3QuXG4gKi9cbmZ1bmN0aW9uIGlzUGFyZW50TWV0aG9kQWJzdHJhY3QocGFyYW1zOiBDaGVja0lzUGFyZW50TWV0aG9kQWJzdHJhY3RQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3QgeyBjb250ZXh0LCBtZXRob2ROYW1lLCBtZXRob2ROb2RlIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHNlcnZpY2VzID0gY29udGV4dC5zb3VyY2VDb2RlLnBhcnNlclNlcnZpY2VzIGFzIFBhcnRpYWw8UGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uPjtcblxuICBpZiAoIXNlcnZpY2VzLnByb2dyYW0gfHwgIXNlcnZpY2VzLmVzVHJlZU5vZGVUb1RTTm9kZU1hcCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNoZWNrZXIgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gIGNvbnN0IGNsYXNzRGVjbGFyYXRpb24gPSBtZXRob2ROb2RlLnBhcmVudC5wYXJlbnQ7XG4gIGNvbnN0IHRzQ2xhc3NOb2RlID0gc2VydmljZXMuZXNUcmVlTm9kZVRvVFNOb2RlTWFwLmdldChjbGFzc0RlY2xhcmF0aW9uKTtcbiAgY29uc3QgY2xhc3NUeXBlID0gY2hlY2tlci5nZXRUeXBlQXRMb2NhdGlvbih0c0NsYXNzTm9kZSk7XG4gIGNvbnN0IGJhc2VUeXBlcyA9IGNsYXNzVHlwZS5nZXRCYXNlVHlwZXMoKTtcblxuICBpZiAoIWJhc2VUeXBlcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAoY29uc3QgYmFzZVR5cGUgb2YgYmFzZVR5cGVzKSB7XG4gICAgY29uc3QgcHJvcGVydHkgPSBiYXNlVHlwZS5nZXRQcm9wZXJ0eShtZXRob2ROYW1lKTtcblxuICAgIGlmICghcHJvcGVydHkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY2xhcmF0aW9ucyA9IHByb3BlcnR5LmdldERlY2xhcmF0aW9ucygpO1xuXG4gICAgaWYgKCFkZWNsYXJhdGlvbnMpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgZGVjbGFyYXRpb25zKSB7XG4gICAgICBpZiAoaXNBYnN0cmFjdChkZWNsYXJhdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgY2FsbCBleHByZXNzaW9uIGlzIGBzdXBlci5tZXRob2ROYW1lKC4uLilgLlxuICpcbiAqIEBwYXJhbSBub2RlIC0gVGhlIGNhbGwgZXhwcmVzc2lvbiBub2RlLlxuICogQHBhcmFtIG1ldGhvZE5hbWUgLSBUaGUgZXhwZWN0ZWQgbWV0aG9kIG5hbWUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgaXMgYSBtYXRjaGluZyBzdXBlciBtZXRob2QgY2FsbC5cbiAqL1xuZnVuY3Rpb24gaXNTdXBlck1ldGhvZENhbGwobm9kZTogVFNFU1RyZWUuQ2FsbEV4cHJlc3Npb24sIG1ldGhvZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBjYWxsZWUgPSBub2RlLmNhbGxlZTtcbiAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLiAqL1xuICByZXR1cm4gY2FsbGVlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJ1xuICAgICYmIGNhbGxlZS5vYmplY3QudHlwZSA9PT0gJ1N1cGVyJ1xuICAgICYmIGNhbGxlZS5wcm9wZXJ0eS50eXBlID09PSAnSWRlbnRpZmllcidcbiAgICAmJiBjYWxsZWUucHJvcGVydHkubmFtZSA9PT0gbWV0aG9kTmFtZTtcbiAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBSZS1lbmFibGUgYWZ0ZXIgbXVsdGktbGluZSBzdHJpbmcgY29tcGFyaXNvbiBibG9jay4gKi9cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5vZGUgaXMgYSBgc3VwZXIucHJvcGVydHlOYW1lYCBtZW1iZXIgZXhwcmVzc2lvbi5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIFRoZSBBU1Qgbm9kZSB0byBjaGVjayAoTWVtYmVyRXhwcmVzc2lvbiBvciBBc3NpZ25tZW50RXhwcmVzc2lvbiBsZWZ0LWhhbmQgc2lkZSkuXG4gKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIGV4cGVjdGVkIHByb3BlcnR5IG5hbWUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgaXMgYSBtYXRjaGluZyBzdXBlciBwcm9wZXJ0eSBhY2Nlc3MuXG4gKi9cbmZ1bmN0aW9uIGlzU3VwZXJQcm9wZXJ0eUFjY2Vzcyhub2RlOiBUU0VTVHJlZS5Ob2RlLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWVudW0tY29tcGFyaXNvbiAtLSBBU1Qgbm9kZSB0eXBlIHN0cmluZyBsaXRlcmFscyBtYXRjaCB0aGUgVFNFU1RyZWUgZW51bSB2YWx1ZXMuICovXG4gIHJldHVybiBub2RlLnR5cGUgPT09ICdNZW1iZXJFeHByZXNzaW9uJ1xuICAgICYmIG5vZGUub2JqZWN0LnR5cGUgPT09ICdTdXBlcidcbiAgICAmJiBub2RlLnByb3BlcnR5LnR5cGUgPT09ICdJZGVudGlmaWVyJ1xuICAgICYmIG5vZGUucHJvcGVydHkubmFtZSA9PT0gcHJvcGVydHlOYW1lO1xuICAvKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZW51bS1jb21wYXJpc29uIC0tIFJlLWVuYWJsZSBhZnRlciBtdWx0aS1saW5lIHN0cmluZyBjb21wYXJpc29uIGJsb2NrLiAqL1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQkE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUyxjQUFjO0FBS2hCLE1BQU0sYUFBYTtBQVluQixNQUFNLG1CQUFvQztBQUFBLEVBQy9DLE9BQU8sU0FBUztBQUNkLFVBQU0sY0FBb0MsQ0FBQztBQUUzQyxXQUFPO0FBQUEsTUFDTCx1QkFBdUIsTUFBdUI7QUFDNUMsY0FBTSxVQUFVLFlBQVksR0FBRyxFQUFFO0FBQ2pDLFlBQUksU0FBUyxTQUFTLE9BQU87QUFDM0I7QUFBQSxRQUNGO0FBRUEsY0FBTSxhQUFhO0FBQ25CLFlBQUksc0JBQXNCLFdBQVcsTUFBTSxRQUFRLFVBQVUsR0FBRztBQUM5RCxrQkFBUSxlQUFlO0FBQUEsUUFDekI7QUFBQSxNQUNGO0FBQUEsTUFDQSxpQkFBaUIsTUFBdUI7QUFDdEMsY0FBTSxVQUFVLFlBQVksR0FBRyxFQUFFO0FBQ2pDLFlBQUksU0FBUyxTQUFTLFVBQVU7QUFDOUI7QUFBQSxRQUNGO0FBRUEsY0FBTSxXQUFXO0FBQ2pCLFlBQUksa0JBQWtCLFVBQVUsUUFBUSxVQUFVLEdBQUc7QUFDbkQsa0JBQVEsZUFBZTtBQUFBLFFB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
|
|
@@ -46,11 +46,11 @@ async function lint(options) {
|
|
|
46
46
|
ObsidianPluginRepoPaths.EslintConfigMts,
|
|
47
47
|
ObsidianPluginRepoPaths.EslintConfigCts
|
|
48
48
|
];
|
|
49
|
-
const
|
|
49
|
+
const doesConfigFileExist = configFiles.some((configFile) => {
|
|
50
50
|
const configFilePath = resolvePathFromRootSafe({ path: configFile });
|
|
51
51
|
return existsSync(configFilePath);
|
|
52
52
|
});
|
|
53
|
-
if (!
|
|
53
|
+
if (!doesConfigFileExist) {
|
|
54
54
|
getLibDebugger("ESLint:lint")("ESLint configuration file not found. Creating default config...");
|
|
55
55
|
const packageFolder = getRootFolder(getFolderName(import.meta.url));
|
|
56
56
|
assertNonNullable(packageFolder, "Package folder not found");
|
|
@@ -60,9 +60,9 @@ async function lint(options) {
|
|
|
60
60
|
);
|
|
61
61
|
}
|
|
62
62
|
const targets = paths?.length ? paths : [ObsidianPluginRepoPaths.CurrentFolder];
|
|
63
|
-
await execFromRoot(["npx", "eslint", ...shouldFix ? ["--fix"] : [], {
|
|
63
|
+
await execFromRoot(["npx", "eslint", ...shouldFix ? ["--fix"] : [], { batchedArguments: targets }]);
|
|
64
64
|
}
|
|
65
65
|
export {
|
|
66
66
|
lint
|
|
67
67
|
};
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIExpbnRpbmcgdXRpbGl0eSBmb3IgRVNMaW50IGNvbmZpZ3VyYXRpb24gd2l0aCBzdXBwb3J0IGZvciBhdXRvbWF0aWMgZml4aW5nLlxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgZnVuY3Rpb24gdG8gbGludCBmaWxlcyBiYXNlZCBvbiB0aGUgRVNMaW50IGNvbmZpZ3VyYXRpb24gZGVmaW5lZCBpbiBgZXNsaW50LmNvbmZpZy50c2AuXG4gKiBJdCBjYW4gYXV0b21hdGljYWxseSBmaXggbGludGluZyBpc3N1ZXMgaWYgc3BlY2lmaWVkLCBhbmQgbG9ncyByZXN1bHRzIHRvIHRoZSBjb25zb2xlLlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGNwIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5cbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZ2V0Rm9sZGVyTmFtZSxcbiAgam9pblxufSBmcm9tICcuLi8uLi9wYXRoLnRzJztcbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi4vcm9vdC50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdGhlIHtAbGluayBsaW50fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWxlIHBhdGhzIHRvIGxpbnQuIElmIG9taXR0ZWQsIGxpbnRzIHRoZSBlbnRpcmUgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGhzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZml4IGxpbnRpbmcgaXNzdWVzIGF1dG9tYXRpY2FsbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEZpeD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTGludCB0aGUgcHJvamVjdCB3aXRoIEVTTGludC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgTGludE9wdGlvbnN9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChvcHRpb25zPzogTGludE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwYXRocywgc2hvdWxkRml4IH0gPSBvcHRpb25zID8/
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIExpbnRpbmcgdXRpbGl0eSBmb3IgRVNMaW50IGNvbmZpZ3VyYXRpb24gd2l0aCBzdXBwb3J0IGZvciBhdXRvbWF0aWMgZml4aW5nLlxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgZnVuY3Rpb24gdG8gbGludCBmaWxlcyBiYXNlZCBvbiB0aGUgRVNMaW50IGNvbmZpZ3VyYXRpb24gZGVmaW5lZCBpbiBgZXNsaW50LmNvbmZpZy50c2AuXG4gKiBJdCBjYW4gYXV0b21hdGljYWxseSBmaXggbGludGluZyBpc3N1ZXMgaWYgc3BlY2lmaWVkLCBhbmQgbG9ncyByZXN1bHRzIHRvIHRoZSBjb25zb2xlLlxuICovXG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGNwIH0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5cbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnLi4vLi4vZGVidWcudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZ2V0Rm9sZGVyTmFtZSxcbiAgam9pblxufSBmcm9tICcuLi8uLi9wYXRoLnRzJztcbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHsgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuLWRldi11dGlscy1yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi4vcm9vdC50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdGhlIHtAbGluayBsaW50fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW50T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBmaWxlIHBhdGhzIHRvIGxpbnQuIElmIG9taXR0ZWQsIGxpbnRzIHRoZSBlbnRpcmUgcHJvamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGhzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZml4IGxpbnRpbmcgaXNzdWVzIGF1dG9tYXRpY2FsbHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEZpeD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTGludCB0aGUgcHJvamVjdCB3aXRoIEVTTGludC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgTGludE9wdGlvbnN9LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGludChvcHRpb25zPzogTGludE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBwYXRocywgc2hvdWxkRml4IH0gPSBvcHRpb25zID8/IHt9O1xuICBjb25zdCBjb25maWdGaWxlcyA9IFtcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdKcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdNanMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnQ2pzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ1RzLFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkVzbGludENvbmZpZ010cyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdDdHNcbiAgXTtcblxuICBjb25zdCBkb2VzQ29uZmlnRmlsZUV4aXN0ID0gY29uZmlnRmlsZXMuc29tZSgoY29uZmlnRmlsZSkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGVQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBjb25maWdGaWxlIH0pO1xuICAgIHJldHVybiBleGlzdHNTeW5jKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgfSk7XG5cbiAgaWYgKCFkb2VzQ29uZmlnRmlsZUV4aXN0KSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ0VTTGludDpsaW50JykoJ0VTTGludCBjb25maWd1cmF0aW9uIGZpbGUgbm90IGZvdW5kLiBDcmVhdGluZyBkZWZhdWx0IGNvbmZpZy4uLicpO1xuICAgIGNvbnN0IHBhY2thZ2VGb2xkZXIgPSBnZXRSb290Rm9sZGVyKGdldEZvbGRlck5hbWUoaW1wb3J0Lm1ldGEudXJsKSk7XG4gICAgYXNzZXJ0Tm9uTnVsbGFibGUocGFja2FnZUZvbGRlciwgJ1BhY2thZ2UgZm9sZGVyIG5vdCBmb3VuZCcpO1xuICAgIGF3YWl0IGNwKFxuICAgICAgam9pbihwYWNrYWdlRm9sZGVyLCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3RUZW1wbGF0ZXMsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRXNsaW50Q29uZmlnTXRzKSxcbiAgICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRXNsaW50Q29uZmlnTXRzIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBUaGUgcGF0aHMtcHJvdmlkZWQgYnJhbmNoIGlzIG9ubHkgZXhlcmNpc2VkIGJ5IGNvbnN1bWVyIHByb2plY3RzIHBhc3NpbmcgZmlsZSBsaXN0cy4gKi9cbiAgY29uc3QgdGFyZ2V0cyA9IHBhdGhzPy5sZW5ndGggPyBwYXRocyA6IFtPYnNpZGlhblBsdWdpblJlcG9QYXRocy5DdXJyZW50Rm9sZGVyXTtcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnbnB4JywgJ2VzbGludCcsIC4uLihzaG91bGRGaXggPyBbJy0tZml4J10gOiBbXSksIHsgYmF0Y2hlZEFyZ3VtZW50czogdGFyZ2V0cyB9XSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsVUFBVTtBQUVuQixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLCtCQUErQjtBQUN4QztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMseUJBQXlCO0FBQ2xDLFNBQVMsaUNBQWlDO0FBQzFDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQXdCUCxlQUFzQixLQUFLLFNBQXNDO0FBQy9ELFFBQU0sRUFBRSxPQUFPLFVBQVUsSUFBSSxXQUFXLENBQUM7QUFDekMsUUFBTSxjQUFjO0FBQUEsSUFDbEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsSUFDeEIsd0JBQXdCO0FBQUEsRUFDMUI7QUFFQSxRQUFNLHNCQUFzQixZQUFZLEtBQUssQ0FBQyxlQUFlO0FBQzNELFVBQU0saUJBQWlCLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25FLFdBQU8sV0FBVyxjQUFjO0FBQUEsRUFDbEMsQ0FBQztBQUVELE1BQUksQ0FBQyxxQkFBcUI7QUFDeEIsbUJBQWUsYUFBYSxFQUFFLGlFQUFpRTtBQUMvRixVQUFNLGdCQUFnQixjQUFjLGNBQWMsWUFBWSxHQUFHLENBQUM7QUFDbEUsc0JBQWtCLGVBQWUsMEJBQTBCO0FBQzNELFVBQU07QUFBQSxNQUNKLEtBQUssZUFBZSwwQkFBMEIsZUFBZSwwQkFBMEIsZUFBZTtBQUFBLE1BQ3RHLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLGdCQUFnQixDQUFDO0FBQUEsSUFDM0U7QUFBQSxFQUNGO0FBR0EsUUFBTSxVQUFVLE9BQU8sU0FBUyxRQUFRLENBQUMsd0JBQXdCLGFBQWE7QUFFOUUsUUFBTSxhQUFhLENBQUMsT0FBTyxVQUFVLEdBQUksWUFBWSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUksRUFBRSxrQkFBa0IsUUFBUSxDQUFDLENBQUM7QUFDdEc7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -6,5 +6,6 @@ export * as 'eslint-no-restricted-syntax' from './eslint-no-restricted-syntax.mj
|
|
|
6
6
|
export * as 'eslint-rules' from './eslint-rules/index.mjs';
|
|
7
7
|
export * as 'eslint' from './eslint.mjs';
|
|
8
8
|
export * as 'markdownlint-cli2-config' from './markdownlint-cli2-config.mjs';
|
|
9
|
+
export * as 'markdownlint-ignores' from './markdownlint-ignores.mjs';
|
|
9
10
|
export * as 'markdownlint' from './markdownlint.mjs';
|
|
10
11
|
export * as 'over-exposure' from './over-exposure.mjs';
|
|
@@ -28,6 +28,7 @@ import * as eslint_no_restricted_syntax from "./eslint-no-restricted-syntax.mjs"
|
|
|
28
28
|
import * as eslint_rules from "./eslint-rules/index.mjs";
|
|
29
29
|
import * as eslint from "./eslint.mjs";
|
|
30
30
|
import * as markdownlint_cli2_config from "./markdownlint-cli2-config.mjs";
|
|
31
|
+
import * as markdownlint_ignores from "./markdownlint-ignores.mjs";
|
|
31
32
|
import * as markdownlint from "./markdownlint.mjs";
|
|
32
33
|
import * as over_exposure from "./over-exposure.mjs";
|
|
33
34
|
export {
|
|
@@ -39,6 +40,7 @@ export {
|
|
|
39
40
|
eslint_rules as "eslint-rules",
|
|
40
41
|
markdownlint,
|
|
41
42
|
markdownlint_cli2_config as "markdownlint-cli2-config",
|
|
43
|
+
markdownlint_ignores as "markdownlint-ignores",
|
|
42
44
|
over_exposure as "over-exposure"
|
|
43
45
|
};
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2NzcGVsbCcgZnJvbSAnLi9jc3BlbGwudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5JyBmcm9tICcuL2VzbGludC1hZ25vc3RpYy1jb3JlLWJvdW5kYXJ5LnRzJztcbmV4cG9ydCAqIGFzICdlc2xpbnQtY29uZmlnJyBmcm9tICcuL2VzbGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1uby1yZXN0cmljdGVkLXN5bnRheCcgZnJvbSAnLi9lc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludC1ydWxlcycgZnJvbSAnLi9lc2xpbnQtcnVsZXMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2VzbGludCcgZnJvbSAnLi9lc2xpbnQudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludC1jbGkyLWNvbmZpZycgZnJvbSAnLi9tYXJrZG93bmxpbnQtY2xpMi1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3dubGludC1pZ25vcmVzJyBmcm9tICcuL21hcmtkb3dubGludC1pZ25vcmVzLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bmxpbnQnIGZyb20gJy4vbWFya2Rvd25saW50LnRzJztcbmV4cG9ydCAqIGFzICdvdmVyLWV4cG9zdXJlJyBmcm9tICcuL292ZXItZXhwb3N1cmUudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZLFlBQWM7QUFDMUIsWUFBWUEsbUNBQXFDO0FBQ2pELFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZQyxpQ0FBbUM7QUFDL0MsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVksWUFBYztBQUMxQixZQUFZQyw4QkFBZ0M7QUFDNUMsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVksa0JBQW9CO0FBQ2hDLFlBQVlDLG1CQUFxQjsiLAogICJuYW1lcyI6IFsiZXNsaW50LWFnbm9zdGljLWNvcmUtYm91bmRhcnkiLCAiZXNsaW50LWNvbmZpZyIsICJlc2xpbnQtbm8tcmVzdHJpY3RlZC1zeW50YXgiLCAiZXNsaW50LXJ1bGVzIiwgIm1hcmtkb3dubGludC1jbGkyLWNvbmZpZyIsICJtYXJrZG93bmxpbnQtaWdub3JlcyIsICJvdmVyLWV4cG9zdXJlIl0KfQo=
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Default markdownlint-cli2 configuration for the Obsidian Dev Utils.
|
|
6
6
|
*/
|
|
7
|
-
import type { MarkdownlintCli2ConfigurationSchema } from './markdownlint-types/@types/markdownlint-cli2-config-schema.d.mjs';
|
|
7
|
+
import type { MarkdownlintCli2ConfigurationSchema as MarkdownlintCli2ConfigSchema } from './markdownlint-types/@types/markdownlint-cli2-config-schema.d.mjs';
|
|
8
8
|
/**
|
|
9
9
|
* Default markdownlint-cli2 configuration for the Obsidian Dev Utils.
|
|
10
10
|
*/
|
|
11
|
-
export declare const obsidianDevUtilsConfig:
|
|
11
|
+
export declare const obsidianDevUtilsConfig: MarkdownlintCli2ConfigSchema;
|
|
@@ -22,6 +22,7 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
22
22
|
})();
|
|
23
23
|
|
|
24
24
|
import relativeLinksRule from "markdownlint-rule-relative-links";
|
|
25
|
+
import { NODE_MODULES_IGNORE_GLOB } from "./markdownlint-ignores.mjs";
|
|
25
26
|
const obsidianDevUtilsConfig = {
|
|
26
27
|
config: {
|
|
27
28
|
"MD013": false,
|
|
@@ -52,12 +53,16 @@ const obsidianDevUtilsConfig = {
|
|
|
52
53
|
globs: [
|
|
53
54
|
"**/*.md"
|
|
54
55
|
],
|
|
55
|
-
//
|
|
56
|
+
// The residual, explicit list — everything `.gitignore` cannot express for us. Git never "ignores"
|
|
57
|
+
// `.git` itself (it is simply outside the working tree), and a repository can deliberately TRACK a
|
|
58
|
+
// Vendored `node_modules` tree, whose third-party markdown is not ours to lint. See
|
|
59
|
+
// `markdownlint-ignores.ts`.
|
|
56
60
|
ignores: [
|
|
57
|
-
".git/**"
|
|
61
|
+
".git/**",
|
|
62
|
+
NODE_MODULES_IGNORE_GLOB
|
|
58
63
|
]
|
|
59
64
|
};
|
|
60
65
|
export {
|
|
61
66
|
obsidianDevUtilsConfig
|
|
62
67
|
};
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL21hcmtkb3dubGludC1jbGkyLWNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIERlZmF1bHQgbWFya2Rvd25saW50LWNsaTIgY29uZmlndXJhdGlvbiBmb3IgdGhlIE9ic2lkaWFuIERldiBVdGlscy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVjbGFyYXRpdmUgbWFya2Rvd25saW50LWNsaTIgcnVsZS9wbHVnaW4gY29uZmlndXJhdGlvbjsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyBtYXJrZG93bmxpbnQsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgcmVsYXRpdmVMaW5rc1J1bGUgZnJvbSAnbWFya2Rvd25saW50LXJ1bGUtcmVsYXRpdmUtbGlua3MnO1xuXG5pbXBvcnQgdHlwZSB7IE1hcmtkb3dubGludENsaTJDb25maWd1cmF0aW9uU2NoZW1hIGFzIE1hcmtkb3dubGludENsaTJDb25maWdTY2hlbWEgfSBmcm9tICcuL21hcmtkb3dubGludC10eXBlcy9AdHlwZXMvbWFya2Rvd25saW50LWNsaTItY29uZmlnLXNjaGVtYS5kLnRzJztcblxuaW1wb3J0IHsgTk9ERV9NT0RVTEVTX0lHTk9SRV9HTE9CIH0gZnJvbSAnLi9tYXJrZG93bmxpbnQtaWdub3Jlcy50cyc7XG5cbi8qKlxuICogRGVmYXVsdCBtYXJrZG93bmxpbnQtY2xpMiBjb25maWd1cmF0aW9uIGZvciB0aGUgT2JzaWRpYW4gRGV2IFV0aWxzLlxuICovXG5leHBvcnQgY29uc3Qgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZzogTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYSA9IHtcbiAgY29uZmlnOiB7XG4gICAgJ01EMDEzJzogZmFsc2UsXG4gICAgJ01EMDI0Jzoge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZSAtLSBUaGF0J3MgaG93IGl0IGlzIGRlZmluZWQgaW4gdGhlIHNjaGVtYS5cbiAgICAgIHNpYmxpbmdzX29ubHk6IHRydWVcbiAgICB9LFxuICAgICdNRDA1Mic6IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2UgLS0gVGhhdCdzIGhvdyBpdCBpcyBkZWZpbmVkIGluIHRoZSBzY2hlbWEuXG4gICAgICBpZ25vcmVkX2xhYmVsczogW1xuICAgICAgICAnIW5vdGUnLFxuICAgICAgICAnIXdhcm5pbmcnLFxuICAgICAgICAvLyBQcmVzZXJ2ZSBtYXJrZG93bmxpbnQncyBkZWZhdWx0IGlnbm9yZWQgbGFiZWwgc28gR0ZNIHRhc2stbGlzdCBpdGVtcyAoYC0gW3hdYCkgYXJlIG5vdCBmbGFnZ2VkIGFzIHVuZGVmaW5lZCBzaG9ydGN1dCByZWZlcmVuY2VzLlxuICAgICAgICAneCdcbiAgICAgIF0sXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlIC0tIFRoYXQncyBob3cgaXQgaXMgZGVmaW5lZCBpbiB0aGUgc2NoZW1hLlxuICAgICAgc2hvcnRjdXRfc3ludGF4OiB0cnVlXG4gICAgfSxcbiAgICAncmVsYXRpdmUtbGlua3MnOiB0cnVlXG4gIH0sXG4gIGN1c3RvbVJ1bGVzOiBbXG4gICAgcmVsYXRpdmVMaW5rc1J1bGVcbiAgXSxcbiAgLy8gRXZlcnkgYC5naXRpZ25vcmVgIGluIHRoZSB0cmVlLCBhbmQgdXAgdG8gdGhlIHJlcG9zaXRvcnkgcm9vdCBcdTIwMTQgZ2l0J3Mgb3duIGRlZmF1bHQgYmVoYXZpb3IuIEEgcGF0aCBnaXRcbiAgLy8gSWdub3JlcyBpcyBhIHBhdGggd2UgZG8gbm90IGxpbnQsIHNvIGBub2RlX21vZHVsZXNgIChpbmNsdWRpbmcgdGhlIG5lc3RlZCBvbmVzIHVuZGVyIHRlc3QgZml4dHVyZXMpLFxuICAvLyBgZGlzdGAsIGFuZCBldmVyeSBnZW5lcmF0ZWQgZm9sZGVyIGFyZSBza2lwcGVkIHdpdGhvdXQgYW55b25lIG1haW50YWluaW5nIGEgbGlzdCB0aGF0IGNhbiBkcmlmdC5cbiAgZ2l0aWdub3JlOiB0cnVlLFxuICBnbG9iczogW1xuICAgICcqKi8qLm1kJ1xuICBdLFxuICAvLyBUaGUgcmVzaWR1YWwsIGV4cGxpY2l0IGxpc3QgXHUyMDE0IGV2ZXJ5dGhpbmcgYC5naXRpZ25vcmVgIGNhbm5vdCBleHByZXNzIGZvciB1cy4gR2l0IG5ldmVyIFwiaWdub3Jlc1wiXG4gIC8vIGAuZ2l0YCBpdHNlbGYgKGl0IGlzIHNpbXBseSBvdXRzaWRlIHRoZSB3b3JraW5nIHRyZWUpLCBhbmQgYSByZXBvc2l0b3J5IGNhbiBkZWxpYmVyYXRlbHkgVFJBQ0sgYVxuICAvLyBWZW5kb3JlZCBgbm9kZV9tb2R1bGVzYCB0cmVlLCB3aG9zZSB0aGlyZC1wYXJ0eSBtYXJrZG93biBpcyBub3Qgb3VycyB0byBsaW50LiBTZWVcbiAgLy8gYG1hcmtkb3dubGludC1pZ25vcmVzLnRzYC5cbiAgaWdub3JlczogW1xuICAgICcuZ2l0LyoqJyxcbiAgICBOT0RFX01PRFVMRVNfSUdOT1JFX0dMT0JcbiAgXVxufTtcblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyx1QkFBdUI7QUFJOUIsU0FBUyxnQ0FBZ0M7QUFLbEMsTUFBTSx5QkFBdUQ7QUFBQSxFQUNsRSxRQUFRO0FBQUEsSUFDTixTQUFTO0FBQUEsSUFDVCxTQUFTO0FBQUE7QUFBQSxNQUVQLGVBQWU7QUFBQSxJQUNqQjtBQUFBLElBQ0EsU0FBUztBQUFBO0FBQUEsTUFFUCxnQkFBZ0I7QUFBQSxRQUNkO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLE1BQ0Y7QUFBQTtBQUFBLE1BRUEsaUJBQWlCO0FBQUEsSUFDbkI7QUFBQSxJQUNBLGtCQUFrQjtBQUFBLEVBQ3BCO0FBQUEsRUFDQSxhQUFhO0FBQUEsSUFDWDtBQUFBLEVBQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlBLFdBQVc7QUFBQSxFQUNYLE9BQU87QUFBQSxJQUNMO0FBQUEsRUFDRjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxTQUFTO0FBQUEsSUFDUDtBQUFBLElBQ0E7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/// <reference path="../../library.d.mts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* The markdown paths `lint:md` skips ON TOP of the ones `.gitignore` already excludes.
|
|
6
|
+
*
|
|
7
|
+
* Deriving the ignore set from `.gitignore` is right and stays — git's own semantics, nested ignore files
|
|
8
|
+
* and all, with no hand-maintained list to drift. But it can only ever skip what git skips, and a
|
|
9
|
+
* repository can **deliberately track** a vendored `node_modules` tree. `obsidian-codescript-toolkit`
|
|
10
|
+
* does: `demo-vault/.gitignore` re-includes `_assets/CodeScriptToolkit/node_modules/` on purpose, so the
|
|
11
|
+
* demo vault's "NPM modules" note can `require('uuid')` offline. `lint:md` then linted a third-party
|
|
12
|
+
* README and failed the whole gate on its table style, its inline HTML, and a relative link to a file
|
|
13
|
+
* that only exists in the upstream repository — none of which is this project's to fix.
|
|
14
|
+
*
|
|
15
|
+
* So the shared helper is "`.gitignore` **plus** these", which is what the `.gitignore`-derived work
|
|
16
|
+
* anticipated. This is NOT a return to the hand-maintained globs that preceded it: those were removed
|
|
17
|
+
* because they DUPLICATED `.gitignore`, not because an explicit entry is ever wrong.
|
|
18
|
+
*
|
|
19
|
+
* Both halves of `lint:md` read from here so they cannot disagree — markdownlint-cli2 takes an ignore
|
|
20
|
+
* configuration, while `linkinator` takes a file list and has to be filtered before it is invoked.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* The glob form, for markdownlint-cli2's `ignores`.
|
|
24
|
+
*/
|
|
25
|
+
export declare const NODE_MODULES_IGNORE_GLOB = "**/node_modules/**";
|
|
26
|
+
/**
|
|
27
|
+
* Checks whether a path sits inside a `node_modules` folder at any depth.
|
|
28
|
+
*
|
|
29
|
+
* Matches on a full path SEGMENT rather than a substring, so a file whose own name merely contains the
|
|
30
|
+
* word (`node_modules-migration.md`) is not swept up with it.
|
|
31
|
+
*
|
|
32
|
+
* @param path - A path relative to the repository root, separated by `/` (the form `git ls-files` emits).
|
|
33
|
+
* @returns `true` when the path is inside a `node_modules` folder.
|
|
34
|
+
*/
|
|
35
|
+
export declare function checkIsInNodeModules(path: string): boolean;
|
|
@@ -0,0 +1,33 @@
|
|
|
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 initEsm() {
|
|
7
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
8
|
+
if (globalThis.process) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const browserProcess = {
|
|
13
|
+
browser: true,
|
|
14
|
+
cwd() {
|
|
15
|
+
return '/';
|
|
16
|
+
},
|
|
17
|
+
env: {},
|
|
18
|
+
platform: 'android'
|
|
19
|
+
};
|
|
20
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
21
|
+
globalThis.process = browserProcess;
|
|
22
|
+
})();
|
|
23
|
+
|
|
24
|
+
const NODE_MODULES_IGNORE_GLOB = "**/node_modules/**";
|
|
25
|
+
const NODE_MODULES_FOLDER_NAME = "node_modules";
|
|
26
|
+
function checkIsInNodeModules(path) {
|
|
27
|
+
return path.split("/").includes(NODE_MODULES_FOLDER_NAME);
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
NODE_MODULES_IGNORE_GLOB,
|
|
31
|
+
checkIsInNodeModules
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL21hcmtkb3dubGludC1pZ25vcmVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhlIG1hcmtkb3duIHBhdGhzIGBsaW50Om1kYCBza2lwcyBPTiBUT1Agb2YgdGhlIG9uZXMgYC5naXRpZ25vcmVgIGFscmVhZHkgZXhjbHVkZXMuXG4gKlxuICogRGVyaXZpbmcgdGhlIGlnbm9yZSBzZXQgZnJvbSBgLmdpdGlnbm9yZWAgaXMgcmlnaHQgYW5kIHN0YXlzIFx1MjAxNCBnaXQncyBvd24gc2VtYW50aWNzLCBuZXN0ZWQgaWdub3JlIGZpbGVzXG4gKiBhbmQgYWxsLCB3aXRoIG5vIGhhbmQtbWFpbnRhaW5lZCBsaXN0IHRvIGRyaWZ0LiBCdXQgaXQgY2FuIG9ubHkgZXZlciBza2lwIHdoYXQgZ2l0IHNraXBzLCBhbmQgYVxuICogcmVwb3NpdG9yeSBjYW4gKipkZWxpYmVyYXRlbHkgdHJhY2sqKiBhIHZlbmRvcmVkIGBub2RlX21vZHVsZXNgIHRyZWUuIGBvYnNpZGlhbi1jb2Rlc2NyaXB0LXRvb2xraXRgXG4gKiBkb2VzOiBgZGVtby12YXVsdC8uZ2l0aWdub3JlYCByZS1pbmNsdWRlcyBgX2Fzc2V0cy9Db2RlU2NyaXB0VG9vbGtpdC9ub2RlX21vZHVsZXMvYCBvbiBwdXJwb3NlLCBzbyB0aGVcbiAqIGRlbW8gdmF1bHQncyBcIk5QTSBtb2R1bGVzXCIgbm90ZSBjYW4gYHJlcXVpcmUoJ3V1aWQnKWAgb2ZmbGluZS4gYGxpbnQ6bWRgIHRoZW4gbGludGVkIGEgdGhpcmQtcGFydHlcbiAqIFJFQURNRSBhbmQgZmFpbGVkIHRoZSB3aG9sZSBnYXRlIG9uIGl0cyB0YWJsZSBzdHlsZSwgaXRzIGlubGluZSBIVE1MLCBhbmQgYSByZWxhdGl2ZSBsaW5rIHRvIGEgZmlsZVxuICogdGhhdCBvbmx5IGV4aXN0cyBpbiB0aGUgdXBzdHJlYW0gcmVwb3NpdG9yeSBcdTIwMTQgbm9uZSBvZiB3aGljaCBpcyB0aGlzIHByb2plY3QncyB0byBmaXguXG4gKlxuICogU28gdGhlIHNoYXJlZCBoZWxwZXIgaXMgXCJgLmdpdGlnbm9yZWAgKipwbHVzKiogdGhlc2VcIiwgd2hpY2ggaXMgd2hhdCB0aGUgYC5naXRpZ25vcmVgLWRlcml2ZWQgd29ya1xuICogYW50aWNpcGF0ZWQuIFRoaXMgaXMgTk9UIGEgcmV0dXJuIHRvIHRoZSBoYW5kLW1haW50YWluZWQgZ2xvYnMgdGhhdCBwcmVjZWRlZCBpdDogdGhvc2Ugd2VyZSByZW1vdmVkXG4gKiBiZWNhdXNlIHRoZXkgRFVQTElDQVRFRCBgLmdpdGlnbm9yZWAsIG5vdCBiZWNhdXNlIGFuIGV4cGxpY2l0IGVudHJ5IGlzIGV2ZXIgd3JvbmcuXG4gKlxuICogQm90aCBoYWx2ZXMgb2YgYGxpbnQ6bWRgIHJlYWQgZnJvbSBoZXJlIHNvIHRoZXkgY2Fubm90IGRpc2FncmVlIFx1MjAxNCBtYXJrZG93bmxpbnQtY2xpMiB0YWtlcyBhbiBpZ25vcmVcbiAqIGNvbmZpZ3VyYXRpb24sIHdoaWxlIGBsaW5raW5hdG9yYCB0YWtlcyBhIGZpbGUgbGlzdCBhbmQgaGFzIHRvIGJlIGZpbHRlcmVkIGJlZm9yZSBpdCBpcyBpbnZva2VkLlxuICovXG5cbi8qKlxuICogVGhlIGdsb2IgZm9ybSwgZm9yIG1hcmtkb3dubGludC1jbGkyJ3MgYGlnbm9yZXNgLlxuICovXG5leHBvcnQgY29uc3QgTk9ERV9NT0RVTEVTX0lHTk9SRV9HTE9CID0gJyoqL25vZGVfbW9kdWxlcy8qKic7XG5cbi8qKlxuICogVGhlIGRpcmVjdG9yeSBuYW1lIHRoZSBnbG9iIGFib3ZlIG1hdGNoZXMuXG4gKi9cbmNvbnN0IE5PREVfTU9EVUxFU19GT0xERVJfTkFNRSA9ICdub2RlX21vZHVsZXMnO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcGF0aCBzaXRzIGluc2lkZSBhIGBub2RlX21vZHVsZXNgIGZvbGRlciBhdCBhbnkgZGVwdGguXG4gKlxuICogTWF0Y2hlcyBvbiBhIGZ1bGwgcGF0aCBTRUdNRU5UIHJhdGhlciB0aGFuIGEgc3Vic3RyaW5nLCBzbyBhIGZpbGUgd2hvc2Ugb3duIG5hbWUgbWVyZWx5IGNvbnRhaW5zIHRoZVxuICogd29yZCAoYG5vZGVfbW9kdWxlcy1taWdyYXRpb24ubWRgKSBpcyBub3Qgc3dlcHQgdXAgd2l0aCBpdC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIEEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcmVwb3NpdG9yeSByb290LCBzZXBhcmF0ZWQgYnkgYC9gICh0aGUgZm9ybSBgZ2l0IGxzLWZpbGVzYCBlbWl0cykuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiB0aGUgcGF0aCBpcyBpbnNpZGUgYSBgbm9kZV9tb2R1bGVzYCBmb2xkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lzSW5Ob2RlTW9kdWxlcyhwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBhdGguc3BsaXQoJy8nKS5pbmNsdWRlcyhOT0RFX01PRFVMRVNfRk9MREVSX05BTUUpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3Qk8sTUFBTSwyQkFBMkI7QUFLeEMsTUFBTSwyQkFBMkI7QUFXMUIsU0FBUyxxQkFBcUIsTUFBdUI7QUFDMUQsU0FBTyxLQUFLLE1BQU0sR0FBRyxFQUFFLFNBQVMsd0JBQXdCO0FBQzFEOyIsCiAgIm5hbWVzIjogW10KfQo=
|