obsidian-dev-utils 88.7.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 +23 -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 +16 -17
- package/dist/lib/cjs/script-utils/test-runners/index.d.cts +1 -0
- 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 +325 -0
- package/dist/lib/cjs/script-utils/test-runners/vitest-config.d.cts +118 -0
- 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/index.d.mts +1 -0
- package/dist/lib/esm/script-utils/test-runners/index.mjs +4 -2
- package/dist/lib/esm/script-utils/test-runners/vitest-config.d.mts +118 -0
- package/dist/lib/esm/script-utils/test-runners/vitest-config.mjs +210 -0
- 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/dist/templates/scripts/vitest-config.ts +2 -88
- 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
- package/script-utils/test-runners/vitest-config/package.json +6 -0
|
@@ -33,9 +33,9 @@ import {
|
|
|
33
33
|
function preprocessPlugin(isEsm) {
|
|
34
34
|
const replacements = isEsm ? {} : {
|
|
35
35
|
[replaceAll({
|
|
36
|
+
$string: "import(dot)meta(dot)url",
|
|
36
37
|
replacer: ".",
|
|
37
|
-
searchValue: "(dot)"
|
|
38
|
-
str: "import(dot)meta(dot)url"
|
|
38
|
+
searchValue: "(dot)"
|
|
39
39
|
})]: () => {
|
|
40
40
|
if (typeof __filename === "string") {
|
|
41
41
|
const localRequire = require;
|
|
@@ -62,25 +62,25 @@ function preprocessPlugin(isEsm) {
|
|
|
62
62
|
build.initialOptions.banner["js"] += `
|
|
63
63
|
(${String(isEsm ? initEsm : initCjs)})();
|
|
64
64
|
`;
|
|
65
|
-
build.onLoad({ filter: /\.(?:js|ts|cjs|mjs|cts|mts)$/ }, async (
|
|
66
|
-
let contents = await readFile(
|
|
65
|
+
build.onLoad({ filter: /\.(?:js|ts|cjs|mjs|cts|mts)$/ }, async ($arguments) => {
|
|
66
|
+
let contents = await readFile($arguments.path, "utf-8");
|
|
67
67
|
for (const [key, value] of Object.entries(replacements)) {
|
|
68
68
|
const variable = `__${makeValidVariableName(key)}`;
|
|
69
69
|
if (!contents.includes(key)) {
|
|
70
70
|
continue;
|
|
71
71
|
}
|
|
72
|
-
const valueStr = typeof value === "function" ? `(${String(value)})()` : toJson(value, { functionHandlingMode: FunctionHandlingMode.Full });
|
|
73
72
|
if (contents.includes(`var ${variable}`)) {
|
|
74
73
|
continue;
|
|
75
74
|
}
|
|
76
|
-
|
|
75
|
+
const valueString = typeof value === "function" ? `(${String(value)})()` : toJson(value, { functionHandlingMode: FunctionHandlingMode.Full });
|
|
76
|
+
contents = `var ${variable} = globalThis['${key}'] ?? ${valueString};
|
|
77
77
|
${contents}`;
|
|
78
78
|
}
|
|
79
79
|
contents = replaceAll({
|
|
80
|
+
$string: contents,
|
|
80
81
|
// eslint-disable-next-line no-template-curly-in-string -- It is intentional, the string looks like a template literal, but it is not.
|
|
81
82
|
replacer: "`\n//#${''} sourceMappingURL",
|
|
82
|
-
searchValue: /`\r?\n\/\/# sourceMappingURL/g
|
|
83
|
-
str: contents
|
|
83
|
+
searchValue: /`\r?\n\/\/# sourceMappingURL/g
|
|
84
84
|
});
|
|
85
85
|
return {
|
|
86
86
|
contents,
|
|
@@ -122,14 +122,10 @@ function initCjs() {
|
|
|
122
122
|
for (const key of Object.keys(newFuncs)) {
|
|
123
123
|
globalThisRecord[key] ??= newFuncs[key]?.();
|
|
124
124
|
}
|
|
125
|
-
function name(obj) {
|
|
126
|
-
return obj;
|
|
127
|
-
}
|
|
128
125
|
function extractDefault(module) {
|
|
129
126
|
return module && module.__esModule && "default" in module ? module.default : module;
|
|
130
127
|
}
|
|
131
|
-
const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
|
|
132
|
-
"obsidian",
|
|
128
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
133
129
|
"@codemirror/autocomplete",
|
|
134
130
|
"@codemirror/collab",
|
|
135
131
|
"@codemirror/commands",
|
|
@@ -140,10 +136,11 @@ function initCjs() {
|
|
|
140
136
|
"@codemirror/text",
|
|
141
137
|
"@codemirror/view",
|
|
142
138
|
"@lezer/common",
|
|
139
|
+
"@lezer/highlight",
|
|
143
140
|
"@lezer/lr",
|
|
144
|
-
"
|
|
145
|
-
];
|
|
146
|
-
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
|
|
141
|
+
"obsidian"
|
|
142
|
+
]);
|
|
143
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
|
|
147
144
|
"@codemirror/closebrackets",
|
|
148
145
|
"@codemirror/comment",
|
|
149
146
|
"@codemirror/fold",
|
|
@@ -156,15 +153,15 @@ function initCjs() {
|
|
|
156
153
|
"@codemirror/rectangular-selection",
|
|
157
154
|
"@codemirror/stream-parser",
|
|
158
155
|
"@codemirror/tooltip"
|
|
159
|
-
];
|
|
156
|
+
]);
|
|
160
157
|
function requirePatched(id) {
|
|
161
|
-
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.
|
|
158
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
162
159
|
return originalRequire?.(id);
|
|
163
160
|
}
|
|
164
161
|
if (globalThis.app.isMobile) {
|
|
165
162
|
if (id === "process" || id === "node:process") {
|
|
166
163
|
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
167
|
-
return
|
|
164
|
+
return process;
|
|
168
165
|
}
|
|
169
166
|
} else {
|
|
170
167
|
const module = originalRequire?.(id);
|
|
@@ -190,7 +187,10 @@ function initEsm() {
|
|
|
190
187
|
};
|
|
191
188
|
globalThis.process = browserProcess;
|
|
192
189
|
}
|
|
190
|
+
function name($unknown) {
|
|
191
|
+
return $unknown;
|
|
192
|
+
}
|
|
193
193
|
export {
|
|
194
194
|
preprocessPlugin
|
|
195
195
|
};
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvcHJlcHJvY2Vzcy1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgY3VzdG9tIGVzYnVpbGQgcGx1Z2luIHRoYXQgcHJlcHJvY2Vzc2VzIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQgZmlsZXMuXG4gKlxuICogQHJlbWFya3NcbiAqIFdlIGNhbm5vdCB1c2UgYC5gIGluc3RlYWQgb2YgYChkb3QpYCBpbiB0aGUgYWJvdmUgZGVzY3JpcHRpb24gYmVjYXVzZSB0aGUgZmlsZSBpdHNlbGYgaXMgcHJlcHJvY2Vzc2VkIHdpdGggdGhlIHNhbWUgcnVsZS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCBwcmVwcm9jZXNzZXMgc291cmNlIGZpbGVzIHdpdGggaW1wb3J0Lm1ldGEudXJsIHNoaW1zIGFuZCBwcm9jZXNzIHBvbHlmaWxsczsgcmVxdWlyZXMgYSBsaXZlIGVzYnVpbGQgY29udGV4dC4gKi9cblxuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdlc2J1aWxkJztcbmltcG9ydCB0eXBlIHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ25vZGU6dXJsJztcblxuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuXG5pbXBvcnQge1xuICBGdW5jdGlvbkhhbmRsaW5nTW9kZSxcbiAgdG9Kc29uXG59IGZyb20gJy4uLy4uLy4uL29iamVjdC11dGlscy50cyc7XG5pbXBvcnQge1xuICBtYWtlVmFsaWRWYXJpYWJsZU5hbWUsXG4gIHJlcGxhY2VBbGxcbn0gZnJvbSAnLi4vLi4vLi4vc3RyaW5nLnRzJztcblxuaW50ZXJmYWNlIEJyb3dzZXJQcm9jZXNzIGV4dGVuZHMgUGFydGlhbDxOb2RlSlMuUHJvY2Vzcz4ge1xuICBicm93c2VyOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgRXNtTW9kdWxlIHtcbiAgX19lc01vZHVsZTogYm9vbGVhbjtcbiAgZGVmYXVsdDogdW5rbm93bjtcbn1cblxuaW50ZXJmYWNlIFJlcXVpcmVQYXRjaGVkIGV4dGVuZHMgTm9kZUpTLlJlcXVpcmUge1xuICBfX2lzUGF0Y2hlZDogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFVybE1vZHVsZSB7XG4gIHBhdGhUb0ZpbGVVUkw6IHR5cGVvZiBwYXRoVG9GaWxlVVJMO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBwcmVwcm9jZXNzZXMgSmF2YVNjcmlwdCBhbmQgVHlwZVNjcmlwdCBmaWxlcy5cbiAqXG4gKiBUaGlzIHBsdWdpbiBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIHRhc2tzOlxuICogLSBSZXBsYWNlcyBpbnN0YW5jZXMgb2YgYGltcG9ydChkb3QpbWV0YShkb3QpdXJsYCB3aXRoIGEgTm9kZS5qcy1jb21wYXRpYmxlIGBfX2ZpbGVuYW1lYCBhbHRlcm5hdGl2ZS5cbiAqIC0gTW9kaWZpZXMgdGhlIGBzb3VyY2VNYXBwaW5nVVJMYCBjb21tZW50IHRvIGVuc3VyZSBjb21wYXRpYmlsaXR5IHdpdGggT2JzaWRpYW4ncyBwbHVnaW4gc3lzdGVtLlxuICogLSBBZGRzIGEgYmFzaWMgYHByb2Nlc3NgIG9iamVjdCB0byB0aGUgZ2xvYmFsIHNjb3BlIGlmIGBwcm9jZXNzYCBpcyByZWZlcmVuY2VkIGJ1dCBub3QgZGVmaW5lZC5cbiAqXG4gKiBAcGFyYW0gaXNFc20gLSBXaGV0aGVyIHRoZSBidWlsZCBpcyBmb3IgYW4gRVNNIGZvcm1hdC5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0IHRoYXQgaGFuZGxlcyB0aGUgcHJlcHJvY2Vzc2luZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXByb2Nlc3NQbHVnaW4oaXNFc20/OiBib29sZWFuKTogUGx1Z2luIHtcbiAgY29uc3QgcmVwbGFjZW1lbnRzID0gaXNFc21cbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICBbXG4gICAgICAgIHJlcGxhY2VBbGwoe1xuICAgICAgICAgIHJlcGxhY2VyOiAnLicsXG4gICAgICAgICAgc2VhcmNoVmFsdWU6ICcoZG90KScsXG4gICAgICAgICAgc3RyOiAnaW1wb3J0KGRvdCltZXRhKGRvdCl1cmwnXG4gICAgICAgIH0pXG4gICAgICBdOiAoKTogc3RyaW5nID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBfX2ZpbGVuYW1lID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGNvbnN0IGxvY2FsUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgICAgICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpIGFzIFVybE1vZHVsZTtcbiAgICAgICAgICBpZiAodHlwZW9mIHVybC5wYXRoVG9GaWxlVVJMID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdXJsLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkuaHJlZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICByZXR1cm4gYWN0aXZlV2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGYWxsYmFjayB0byBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGVudmlyb25tZW50IGlzIHVua25vd25cbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAncHJlcHJvY2VzcycsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLmluaXRpYWxPcHRpb25zLmRlZmluZSA/Pz0ge307XG5cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJlcGxhY2VtZW50cykpIHtcbiAgICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMuZGVmaW5lW2tleV0gPSBgX18ke21ha2VWYWxpZFZhcmlhYmxlTmFtZShrZXkpfWA7XG4gICAgICB9XG5cbiAgICAgIGJ1aWxkLmluaXRpYWxPcHRpb25zLmJhbm5lciA/Pz0ge307XG4gICAgICBidWlsZC5pbml0aWFsT3B0aW9ucy5iYW5uZXJbJ2pzJ10gPz89ICcnO1xuICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMuYmFubmVyWydqcyddICs9IGBcXG4oJHtTdHJpbmcoaXNFc20gPyBpbml0RXNtIDogaW5pdENqcyl9KSgpO1xcbmA7XG5cbiAgICAgIGJ1aWxkLm9uTG9hZCh7IGZpbHRlcjogL1xcLig/OmpzfHRzfGNqc3xtanN8Y3RzfG10cykkLyB9LCBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBsZXQgY29udGVudHMgPSBhd2FpdCByZWFkRmlsZShhcmdzLnBhdGgsICd1dGYtOCcpO1xuXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlcGxhY2VtZW50cykpIHtcbiAgICAgICAgICBjb25zdCB2YXJpYWJsZSA9IGBfXyR7bWFrZVZhbGlkVmFyaWFibGVOYW1lKGtleSl9YDtcbiAgICAgICAgICBpZiAoIWNvbnRlbnRzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB2YWx1ZVN0ciA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IGAoJHtTdHJpbmcodmFsdWUpfSkoKWAgOiB0b0pzb24odmFsdWUsIHsgZnVuY3Rpb25IYW5kbGluZ01vZGU6IEZ1bmN0aW9uSGFuZGxpbmdNb2RlLkZ1bGwgfSk7XG4gICAgICAgICAgaWYgKGNvbnRlbnRzLmluY2x1ZGVzKGB2YXIgJHt2YXJpYWJsZX1gKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnRlbnRzID0gYHZhciAke3ZhcmlhYmxlfSA9IGdsb2JhbFRoaXNbJyR7a2V5fSddID8/ICR7dmFsdWVTdHJ9O1xcbiR7Y29udGVudHN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhBQ0s6IFRoZSAkeycnfSBwYXJ0IGlzIHVzZWQgdG8gZW5zdXJlIE9ic2lkaWFuIGxvYWRzIHRoZSBwbHVnaW4gcHJvcGVybHksXG4gICAgICAgIC8vIE90aGVyd2lzZSwgaXQgc3RvcHMgbG9hZGluZyBhZnRlciB0aGUgZmlyc3QgbGluZSBvZiB0aGUgc291cmNlTWFwcGluZ1VSTCBjb21tZW50LlxuXG4gICAgICAgIGNvbnRlbnRzID0gcmVwbGFjZUFsbCh7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRlbXBsYXRlLWN1cmx5LWluLXN0cmluZyAtLSBJdCBpcyBpbnRlbnRpb25hbCwgdGhlIHN0cmluZyBsb29rcyBsaWtlIGEgdGVtcGxhdGUgbGl0ZXJhbCwgYnV0IGl0IGlzIG5vdC5cbiAgICAgICAgICByZXBsYWNlcjogJ2BcXG4vLyMke1xcJ1xcJ30gc291cmNlTWFwcGluZ1VSTCcsXG4gICAgICAgICAgc2VhcmNoVmFsdWU6IC9gXFxyP1xcblxcL1xcLyMgc291cmNlTWFwcGluZ1VSTC9nLFxuICAgICAgICAgIHN0cjogY29udGVudHNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50cyxcbiAgICAgICAgICBsb2FkZXI6ICd0cydcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5pdENqcygpOiB2b2lkIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvbm8tZ2xvYmFsLXRoaXMgLS0gQWN0aXZlbHkgdXNlIGdsb2JhbFRoaXMuXG4gIGNvbnN0IGdsb2JhbFRoaXNSZWNvcmQgPSBnbG9iYWxUaGlzIGFzIEdlbmVyaWNPYmplY3Q7XG4gIGdsb2JhbFRoaXNSZWNvcmRbJ19fbmFtZSddID8/PSBuYW1lO1xuICBjb25zdCBvcmlnaW5hbFJlcXVpcmUgPSByZXF1aXJlIGFzIChOb2RlSlMuUmVxdWlyZSAmIFBhcnRpYWw8UmVxdWlyZVBhdGNoZWQ+IHwgdW5kZWZpbmVkKTtcbiAgaWYgKG9yaWdpbmFsUmVxdWlyZSAmJiAhb3JpZ2luYWxSZXF1aXJlLl9faXNQYXRjaGVkKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWdsb2JhbC1hc3NpZ24sIG5vLWltcGxpY2l0LWdsb2JhbHMgLS0gV2UgbmVlZCB0byBwYXRjaCB0aGUgYHJlcXVpcmUoKWAgZnVuY3Rpb24uXG4gICAgcmVxdWlyZSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAoaWQ6IHN0cmluZykgPT4gcmVxdWlyZVBhdGNoZWQoaWQpLFxuICAgICAgb3JpZ2luYWxSZXF1aXJlLFxuICAgICAge1xuICAgICAgICBfX2lzUGF0Y2hlZDogdHJ1ZVxuICAgICAgfVxuICAgICkgYXMgUmVxdWlyZVBhdGNoZWQ7XG4gIH1cblxuICBjb25zdCBuZXdGdW5jczogUmVjb3JkPHN0cmluZywgKCkgPT4gdW5rbm93bj4gPSB7XG4gICAgX19leHRyYWN0RGVmYXVsdCgpIHtcbiAgICAgIHJldHVybiBleHRyYWN0RGVmYXVsdDtcbiAgICB9LFxuICAgIHByb2Nlc3MoKSB7XG4gICAgICBjb25zdCBicm93c2VyUHJvY2VzczogQnJvd3NlclByb2Nlc3MgPSB7XG4gICAgICAgIGJyb3dzZXI6IHRydWUsXG4gICAgICAgIGN3ZCgpIHtcbiAgICAgICAgICByZXR1cm4gJy8nO1xuICAgICAgICB9LFxuICAgICAgICBlbnY6IHt9LFxuICAgICAgICBwbGF0Zm9ybTogJ2FuZHJvaWQnXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGJyb3dzZXJQcm9jZXNzO1xuICAgIH1cbiAgfTtcblxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhuZXdGdW5jcykpIHtcbiAgICBnbG9iYWxUaGlzUmVjb3JkW2tleV0gPz89IG5ld0Z1bmNzW2tleV0/LigpO1xuICB9XG5cbiAgZnVuY3Rpb24gbmFtZShvYmo6IHVua25vd24pOiB1bmtub3duIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgZnVuY3Rpb24gZXh0cmFjdERlZmF1bHQobW9kdWxlOiBQYXJ0aWFsPEVzbU1vZHVsZT4gfCB1bmRlZmluZWQpOiB1bmtub3duIHtcbiAgICByZXR1cm4gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlICYmICdkZWZhdWx0JyBpbiBtb2R1bGUgPyBtb2R1bGUuZGVmYXVsdCA6IG1vZHVsZTtcbiAgfVxuXG4gIGNvbnN0IE9CU0lESUFOX0JVSUxUX0lOX01PRFVMRV9OQU1FUyA9IFtcbiAgICAnb2JzaWRpYW4nLFxuICAgICdAY29kZW1pcnJvci9hdXRvY29tcGxldGUnLFxuICAgICdAY29kZW1pcnJvci9jb2xsYWInLFxuICAgICdAY29kZW1pcnJvci9jb21tYW5kcycsXG4gICAgJ0Bjb2RlbWlycm9yL2xhbmd1YWdlJyxcbiAgICAnQGNvZGVtaXJyb3IvbGludCcsXG4gICAgJ0Bjb2RlbWlycm9yL3NlYXJjaCcsXG4gICAgJ0Bjb2RlbWlycm9yL3N0YXRlJyxcbiAgICAnQGNvZGVtaXJyb3IvdGV4dCcsXG4gICAgJ0Bjb2RlbWlycm9yL3ZpZXcnLFxuICAgICdAbGV6ZXIvY29tbW9uJyxcbiAgICAnQGxlemVyL2xyJyxcbiAgICAnQGxlemVyL2hpZ2hsaWdodCdcbiAgXTtcblxuICBjb25zdCBERVBSRUNBVEVEX09CU0lESUFOX0JVSUxUX0lOX01PRFVMRV9OQU1FUyA9IFtcbiAgICAnQGNvZGVtaXJyb3IvY2xvc2VicmFja2V0cycsXG4gICAgJ0Bjb2RlbWlycm9yL2NvbW1lbnQnLFxuICAgICdAY29kZW1pcnJvci9mb2xkJyxcbiAgICAnQGNvZGVtaXJyb3IvZ3V0dGVyJyxcbiAgICAnQGNvZGVtaXJyb3IvaGlnaGxpZ2h0JyxcbiAgICAnQGNvZGVtaXJyb3IvaGlzdG9yeScsXG4gICAgJ0Bjb2RlbWlycm9yL21hdGNoYnJhY2tldHMnLFxuICAgICdAY29kZW1pcnJvci9wYW5lbCcsXG4gICAgJ0Bjb2RlbWlycm9yL3Jhbmdlc2V0JyxcbiAgICAnQGNvZGVtaXJyb3IvcmVjdGFuZ3VsYXItc2VsZWN0aW9uJyxcbiAgICAnQGNvZGVtaXJyb3Ivc3RyZWFtLXBhcnNlcicsXG4gICAgJ0Bjb2RlbWlycm9yL3Rvb2x0aXAnXG4gIF07XG5cbiAgZnVuY3Rpb24gcmVxdWlyZVBhdGNoZWQoaWQ6IHN0cmluZyk6IHVua25vd24ge1xuICAgIGlmIChPQlNJRElBTl9CVUlMVF9JTl9NT0RVTEVfTkFNRVMuaW5jbHVkZXMoaWQpIHx8IERFUFJFQ0FURURfT0JTSURJQU5fQlVJTFRfSU5fTU9EVUxFX05BTUVTLmluY2x1ZGVzKGlkKSkge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsUmVxdWlyZT8uKGlkKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWRlcHJlY2F0ZWQsIG9ic2lkaWFubWQvbm8tZ2xvYmFsLXRoaXMgIC0tIE5lZWQgYWNjZXNzIHRvIGFwcC4gQWN0aXZlbHkgdXNlIGdsb2JhbFRoaXMuXG4gICAgaWYgKGdsb2JhbFRoaXMuYXBwLmlzTW9iaWxlKSB7XG4gICAgICBpZiAoaWQgPT09ICdwcm9jZXNzJyB8fCBpZCA9PT0gJ25vZGU6cHJvY2VzcycpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGUgLS0gVmFsaWQgdXNhZ2UuXG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFRoZSBtb3N0IGxpa2VseSB5b3UgY2FuIHNhZmVseSBpZ25vcmUgdGhpcyBlcnJvci4gTW9kdWxlIG5vdCBmb3VuZDogJHtpZH0uIEZha2UgcHJvY2VzcyBvYmplY3QgaXMgcmV0dXJuZWQgaW5zdGVhZC5gKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvbm8tZ2xvYmFsLXRoaXMgLS0gQWN0aXZlbHkgdXNlIGdsb2JhbFRoaXMuXG4gICAgICAgIHJldHVybiBnbG9iYWxUaGlzLnByb2Nlc3M7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1vZHVsZSA9IG9yaWdpbmFsUmVxdWlyZT8uKGlkKSBhcyAoUGFydGlhbDxFc21Nb2R1bGU+IHwgdW5kZWZpbmVkKTtcbiAgICAgIGlmIChtb2R1bGUpIHtcbiAgICAgICAgcmV0dXJuIGV4dHJhY3REZWZhdWx0KG1vZHVsZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGUgLS0gVmFsaWQgdXNhZ2UuXG4gICAgY29uc29sZS5kZWJ1ZyhgVGhlIG1vc3QgbGlrZWx5IHlvdSBjYW4gc2FmZWx5IGlnbm9yZSB0aGlzIGVycm9yLiBNb2R1bGUgbm90IGZvdW5kOiAke2lkfS4gRW1wdHkgb2JqZWN0IGlzIHJldHVybmVkIGluc3RlYWQuYCk7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRFc20oKTogdm9pZCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbm1kL25vLWdsb2JhbC10aGlzIC0tIEFjdGl2ZWx5IHVzZSBnbG9iYWxUaGlzLlxuICBpZiAoKGdsb2JhbFRoaXMucHJvY2VzcyBhcyBOb2RlSlMuUHJvY2VzcyB8IHVuZGVmaW5lZCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBicm93c2VyUHJvY2VzczogQnJvd3NlclByb2Nlc3MgPSB7XG4gICAgYnJvd3NlcjogdHJ1ZSxcbiAgICBjd2QoKSB7XG4gICAgICByZXR1cm4gJy8nO1xuICAgIH0sXG4gICAgZW52OiB7fSxcbiAgICBwbGF0Zm9ybTogJ2FuZHJvaWQnXG4gIH07XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbm1kL25vLWdsb2JhbC10aGlzIC0tIEFjdGl2ZWx5IHVzZSBnbG9iYWxUaGlzLlxuICBnbG9iYWxUaGlzLnByb2Nlc3MgPSBicm93c2VyUHJvY2VzcyBhcyBOb2RlSlMuUHJvY2Vzcztcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsU0FBUyxnQkFBZ0I7QUFJekI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQThCQSxTQUFTLGlCQUFpQixPQUF5QjtBQUN4RCxRQUFNLGVBQWUsUUFDakIsQ0FBQyxJQUNEO0FBQUEsSUFDQSxDQUNFLFdBQVc7QUFBQSxNQUNULFVBQVU7QUFBQSxNQUNWLGFBQWE7QUFBQSxNQUNiLEtBQUs7QUFBQSxJQUNQLENBQUMsQ0FDSCxHQUFHLE1BQWM7QUFDZixVQUFJLE9BQU8sZUFBZSxVQUFVO0FBQ2xDLGNBQU0sZUFBZTtBQUNyQixjQUFNLE1BQU0sYUFBYSxVQUFVO0FBQ25DLFlBQUksT0FBTyxJQUFJLGtCQUFrQixZQUFZO0FBQzNDLGlCQUFPLElBQUksY0FBYyxVQUFVLEVBQUU7QUFBQSxRQUN2QztBQUFBLE1BQ0Y7QUFFQSxVQUFJLE9BQU8sV0FBVyxhQUFhO0FBQ2pDLGVBQU8sYUFBYSxTQUFTO0FBQUEsTUFDL0I7QUFHQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFRixTQUFPO0FBQUEsSUFDTCxNQUFNO0FBQUEsSUFDTixNQUFNLE9BQWE7QUFDakIsWUFBTSxlQUFlLFdBQVcsQ0FBQztBQUVqQyxpQkFBVyxPQUFPLE9BQU8sS0FBSyxZQUFZLEdBQUc7QUFDM0MsY0FBTSxlQUFlLE9BQU8sR0FBRyxJQUFJLEtBQUssc0JBQXNCLEdBQUcsQ0FBQztBQUFBLE1BQ3BFO0FBRUEsWUFBTSxlQUFlLFdBQVcsQ0FBQztBQUNqQyxZQUFNLGVBQWUsT0FBTyxJQUFJLE1BQU07QUFDdEMsWUFBTSxlQUFlLE9BQU8sSUFB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
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvcHJlcHJvY2Vzcy1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGlzIG1vZHVsZSBkZWZpbmVzIGEgY3VzdG9tIGVzYnVpbGQgcGx1Z2luIHRoYXQgcHJlcHJvY2Vzc2VzIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQgZmlsZXMuXG4gKlxuICogQHJlbWFya3NcbiAqIFdlIGNhbm5vdCB1c2UgYC5gIGluc3RlYWQgb2YgYChkb3QpYCBpbiB0aGUgYWJvdmUgZGVzY3JpcHRpb24gYmVjYXVzZSB0aGUgZmlsZSBpdHNlbGYgaXMgcHJlcHJvY2Vzc2VkIHdpdGggdGhlIHNhbWUgcnVsZS5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gZXNidWlsZCBwbHVnaW4gdGhhdCBwcmVwcm9jZXNzZXMgc291cmNlIGZpbGVzIHdpdGggaW1wb3J0Lm1ldGEudXJsIHNoaW1zIGFuZCBwcm9jZXNzIHBvbHlmaWxsczsgcmVxdWlyZXMgYSBsaXZlIGVzYnVpbGQgY29udGV4dC4gQ292ZXJzIGBuYW1lYCBhdCB0aGUgYm90dG9tIHRvbzogaXQgZXhpc3RzIG9ubHkgdG8gYmUgY2FwdHVyZWQgYnkgdGhlIHNlcmlhbGl6ZWQgYGluaXRDanNgIGJhbm5lciwgc28gaXQgcnVucyBpbnNpZGUgdGhlIGVtaXR0ZWQgYnVuZGxlIGFuZCBuZXZlciBpbiB0aGlzIHByb2Nlc3MuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIHVuaWNvcm4vcHJlZmVyLW1vZHVsZSAtLSBUaGUgQ29tbW9uSlMgc3VyZmFjZSBpcyB0aGUgc3ViamVjdCBoZXJlLCBub3QgYW4gb3ZlcnNpZ2h0LiBUaGlzIHBsdWdpbiBlbWl0cyB0aGUgaW50ZXJvcCBzaGltcyB0aGF0IGxldCBhIGJ1bmRsZSBydW4gdW5kZXIgZWl0aGVyIG1vZHVsZSBzeXN0ZW0sIHNvIGl0IGhhcyB0byBuYW1lIGBfX2ZpbGVuYW1lYCBhbmQgYHJlcXVpcmVgIHRvIGRldGVjdCBhbmQgYnJpZGdlIHRoZW0uIGBpbXBvcnQubWV0YS5maWxlbmFtZWAgaXMgcHJlY2lzZWx5IHdoYXQgaXMgdW5hdmFpbGFibGUgaW4gdGhlIGVudmlyb25tZW50IHRoZXNlIGJyYW5jaGVzIGV4aXN0IHRvIHNlcnZlLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBsdWdpbiB9IGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHR5cGUgeyBwYXRoVG9GaWxlVVJMIH0gZnJvbSAnbm9kZTp1cmwnO1xuXG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICcuLi8uLi8uLi90eXBlLWd1YXJkcy50cyc7XG5cbmltcG9ydCB7XG4gIEZ1bmN0aW9uSGFuZGxpbmdNb2RlLFxuICB0b0pzb25cbn0gZnJvbSAnLi4vLi4vLi4vb2JqZWN0LXV0aWxzLnRzJztcbmltcG9ydCB7XG4gIG1ha2VWYWxpZFZhcmlhYmxlTmFtZSxcbiAgcmVwbGFjZUFsbFxufSBmcm9tICcuLi8uLi8uLi9zdHJpbmcudHMnO1xuXG5pbnRlcmZhY2UgQnJvd3NlclByb2Nlc3MgZXh0ZW5kcyBQYXJ0aWFsPE5vZGVKUy5Qcm9jZXNzPiB7XG4gIGJyb3dzZXI6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBFc21Nb2R1bGUge1xuICBfX2VzTW9kdWxlOiBib29sZWFuO1xuICBkZWZhdWx0OiB1bmtub3duO1xufVxuXG5pbnRlcmZhY2UgUmVxdWlyZVBhdGNoZWQgZXh0ZW5kcyBOb2RlSlMuUmVxdWlyZSB7XG4gIF9faXNQYXRjaGVkOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgVXJsTW9kdWxlIHtcbiAgcGF0aFRvRmlsZVVSTDogdHlwZW9mIHBhdGhUb0ZpbGVVUkw7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IHByZXByb2Nlc3NlcyBKYXZhU2NyaXB0IGFuZCBUeXBlU2NyaXB0IGZpbGVzLlxuICpcbiAqIFRoaXMgcGx1Z2luIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgdGFza3M6XG4gKiAtIFJlcGxhY2VzIGluc3RhbmNlcyBvZiBgaW1wb3J0KGRvdCltZXRhKGRvdCl1cmxgIHdpdGggYSBOb2RlLmpzLWNvbXBhdGlibGUgYF9fZmlsZW5hbWVgIGFsdGVybmF0aXZlLlxuICogLSBNb2RpZmllcyB0aGUgYHNvdXJjZU1hcHBpbmdVUkxgIGNvbW1lbnQgdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCBPYnNpZGlhbidzIHBsdWdpbiBzeXN0ZW0uXG4gKiAtIEFkZHMgYSBiYXNpYyBgcHJvY2Vzc2Agb2JqZWN0IHRvIHRoZSBnbG9iYWwgc2NvcGUgaWYgYHByb2Nlc3NgIGlzIHJlZmVyZW5jZWQgYnV0IG5vdCBkZWZpbmVkLlxuICpcbiAqIEBwYXJhbSBpc0VzbSAtIFdoZXRoZXIgdGhlIGJ1aWxkIGlzIGZvciBhbiBFU00gZm9ybWF0LlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QgdGhhdCBoYW5kbGVzIHRoZSBwcmVwcm9jZXNzaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJlcHJvY2Vzc1BsdWdpbihpc0VzbT86IGJvb2xlYW4pOiBQbHVnaW4ge1xuICBjb25zdCByZXBsYWNlbWVudHMgPSBpc0VzbVxuICAgID8ge31cbiAgICA6IHtcbiAgICAgIFtcbiAgICAgICAgcmVwbGFjZUFsbCh7XG4gICAgICAgICAgJHN0cmluZzogJ2ltcG9ydChkb3QpbWV0YShkb3QpdXJsJyxcbiAgICAgICAgICByZXBsYWNlcjogJy4nLFxuICAgICAgICAgIHNlYXJjaFZhbHVlOiAnKGRvdCknXG4gICAgICAgIH0pXG4gICAgICBdOiAoKTogc3RyaW5nID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBfX2ZpbGVuYW1lID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGNvbnN0IGxvY2FsUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgICAgICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpIGFzIFVybE1vZHVsZTtcbiAgICAgICAgICBpZiAodHlwZW9mIHVybC5wYXRoVG9GaWxlVVJMID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gdXJsLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkuaHJlZjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICByZXR1cm4gYWN0aXZlV2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGYWxsYmFjayB0byBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGVudmlyb25tZW50IGlzIHVua25vd25cbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAncHJlcHJvY2VzcycsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLmluaXRpYWxPcHRpb25zLmRlZmluZSA/Pz0ge307XG5cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJlcGxhY2VtZW50cykpIHtcbiAgICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMuZGVmaW5lW2tleV0gPSBgX18ke21ha2VWYWxpZFZhcmlhYmxlTmFtZShrZXkpfWA7XG4gICAgICB9XG5cbiAgICAgIGJ1aWxkLmluaXRpYWxPcHRpb25zLmJhbm5lciA/Pz0ge307XG4gICAgICBidWlsZC5pbml0aWFsT3B0aW9ucy5iYW5uZXJbJ2pzJ10gPz89ICcnO1xuICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMuYmFubmVyWydqcyddICs9IGBcXG4oJHtTdHJpbmcoaXNFc20gPyBpbml0RXNtIDogaW5pdENqcyl9KSgpO1xcbmA7XG5cbiAgICAgIGJ1aWxkLm9uTG9hZCh7IGZpbHRlcjogL1xcLig/OmpzfHRzfGNqc3xtanN8Y3RzfG10cykkLyB9LCBhc3luYyAoJGFyZ3VtZW50cykgPT4ge1xuICAgICAgICBsZXQgY29udGVudHMgPSBhd2FpdCByZWFkRmlsZSgkYXJndW1lbnRzLnBhdGgsICd1dGYtOCcpO1xuXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlcGxhY2VtZW50cykpIHtcbiAgICAgICAgICBjb25zdCB2YXJpYWJsZSA9IGBfXyR7bWFrZVZhbGlkVmFyaWFibGVOYW1lKGtleSl9YDtcbiAgICAgICAgICBpZiAoIWNvbnRlbnRzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY29udGVudHMuaW5jbHVkZXMoYHZhciAke3ZhcmlhYmxlfWApKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyBgKCR7U3RyaW5nKHZhbHVlKX0pKClgIDogdG9Kc29uKHZhbHVlLCB7IGZ1bmN0aW9uSGFuZGxpbmdNb2RlOiBGdW5jdGlvbkhhbmRsaW5nTW9kZS5GdWxsIH0pO1xuICAgICAgICAgIGNvbnRlbnRzID0gYHZhciAke3ZhcmlhYmxlfSA9IGdsb2JhbFRoaXNbJyR7a2V5fSddID8/ICR7dmFsdWVTdHJpbmd9O1xcbiR7Y29udGVudHN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhBQ0s6IFRoZSAkeycnfSBwYXJ0IGlzIHVzZWQgdG8gZW5zdXJlIE9ic2lkaWFuIGxvYWRzIHRoZSBwbHVnaW4gcHJvcGVybHksXG4gICAgICAgIC8vIE90aGVyd2lzZSwgaXQgc3RvcHMgbG9hZGluZyBhZnRlciB0aGUgZmlyc3QgbGluZSBvZiB0aGUgc291cmNlTWFwcGluZ1VSTCBjb21tZW50LlxuXG4gICAgICAgIGNvbnRlbnRzID0gcmVwbGFjZUFsbCh7XG4gICAgICAgICAgJHN0cmluZzogY29udGVudHMsXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRlbXBsYXRlLWN1cmx5LWluLXN0cmluZyAtLSBJdCBpcyBpbnRlbnRpb25hbCwgdGhlIHN0cmluZyBsb29rcyBsaWtlIGEgdGVtcGxhdGUgbGl0ZXJhbCwgYnV0IGl0IGlzIG5vdC5cbiAgICAgICAgICByZXBsYWNlcjogJ2BcXG4vLyMke1xcJ1xcJ30gc291cmNlTWFwcGluZ1VSTCcsXG4gICAgICAgICAgc2VhcmNoVmFsdWU6IC9gXFxyP1xcblxcL1xcLyMgc291cmNlTWFwcGluZ1VSTC9nXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudHMsXG4gICAgICAgICAgbG9hZGVyOiAndHMnXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGluaXRDanMoKTogdm9pZCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvYnNpZGlhbm1kL25vLWdsb2JhbC10aGlzIC0tIEFjdGl2ZWx5IHVzZSBnbG9iYWxUaGlzLlxuICBjb25zdCBnbG9iYWxUaGlzUmVjb3JkID0gZ2xvYmFsVGhpcyBhcyBHZW5lcmljT2JqZWN0O1xuICBnbG9iYWxUaGlzUmVjb3JkWydfX25hbWUnXSA/Pz0gbmFtZTtcbiAgY29uc3Qgb3JpZ2luYWxSZXF1aXJlID0gcmVxdWlyZSBhcyAoTm9kZUpTLlJlcXVpcmUgJiBQYXJ0aWFsPFJlcXVpcmVQYXRjaGVkPiB8IHVuZGVmaW5lZCk7XG4gIGlmIChvcmlnaW5hbFJlcXVpcmUgJiYgIW9yaWdpbmFsUmVxdWlyZS5fX2lzUGF0Y2hlZCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1nbG9iYWwtYXNzaWduLCBuby1pbXBsaWNpdC1nbG9iYWxzIC0tIFdlIG5lZWQgdG8gcGF0Y2ggdGhlIGByZXF1aXJlKClgIGZ1bmN0aW9uLlxuICAgIHJlcXVpcmUgPSBPYmplY3QuYXNzaWduKFxuICAgICAgKGlkOiBzdHJpbmcpID0+IHJlcXVpcmVQYXRjaGVkKGlkKSxcbiAgICAgIG9yaWdpbmFsUmVxdWlyZSxcbiAgICAgIHtcbiAgICAgICAgX19pc1BhdGNoZWQ6IHRydWVcbiAgICAgIH1cbiAgICApIGFzIFJlcXVpcmVQYXRjaGVkO1xuICB9XG5cbiAgY29uc3QgbmV3RnVuY3M6IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+ID0ge1xuICAgIF9fZXh0cmFjdERlZmF1bHQoKSB7XG4gICAgICByZXR1cm4gZXh0cmFjdERlZmF1bHQ7XG4gICAgfSxcbiAgICBwcm9jZXNzKCkge1xuICAgICAgY29uc3QgYnJvd3NlclByb2Nlc3M6IEJyb3dzZXJQcm9jZXNzID0ge1xuICAgICAgICBicm93c2VyOiB0cnVlLFxuICAgICAgICBjd2QoKSB7XG4gICAgICAgICAgcmV0dXJuICcvJztcbiAgICAgICAgfSxcbiAgICAgICAgZW52OiB7fSxcbiAgICAgICAgcGxhdGZvcm06ICdhbmRyb2lkJ1xuICAgICAgfTtcbiAgICAgIHJldHVybiBicm93c2VyUHJvY2VzcztcbiAgICB9XG4gIH07XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobmV3RnVuY3MpKSB7XG4gICAgZ2xvYmFsVGhpc1JlY29yZFtrZXldID8/PSBuZXdGdW5jc1trZXldPy4oKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGV4dHJhY3REZWZhdWx0KG1vZHVsZTogUGFydGlhbDxFc21Nb2R1bGU+IHwgdW5kZWZpbmVkKTogdW5rbm93biB7XG4gICAgcmV0dXJuIG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSAmJiAnZGVmYXVsdCcgaW4gbW9kdWxlID8gbW9kdWxlLmRlZmF1bHQgOiBtb2R1bGU7XG4gIH1cblxuICBjb25zdCBPQlNJRElBTl9CVUlMVF9JTl9NT0RVTEVfTkFNRVMgPSBuZXcgU2V0KFtcbiAgICAnQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlJyxcbiAgICAnQGNvZGVtaXJyb3IvY29sbGFiJyxcbiAgICAnQGNvZGVtaXJyb3IvY29tbWFuZHMnLFxuICAgICdAY29kZW1pcnJvci9sYW5ndWFnZScsXG4gICAgJ0Bjb2RlbWlycm9yL2xpbnQnLFxuICAgICdAY29kZW1pcnJvci9zZWFyY2gnLFxuICAgICdAY29kZW1pcnJvci9zdGF0ZScsXG4gICAgJ0Bjb2RlbWlycm9yL3RleHQnLFxuICAgICdAY29kZW1pcnJvci92aWV3JyxcbiAgICAnQGxlemVyL2NvbW1vbicsXG4gICAgJ0BsZXplci9oaWdobGlnaHQnLFxuICAgICdAbGV6ZXIvbHInLFxuICAgICdvYnNpZGlhbidcbiAgXSk7XG5cbiAgY29uc3QgREVQUkVDQVRFRF9PQlNJRElBTl9CVUlMVF9JTl9NT0RVTEVfTkFNRVMgPSBuZXcgU2V0KFtcbiAgICAnQGNvZGVtaXJyb3IvY2xvc2VicmFja2V0cycsXG4gICAgJ0Bjb2RlbWlycm9yL2NvbW1lbnQnLFxuICAgICdAY29kZW1pcnJvci9mb2xkJyxcbiAgICAnQGNvZGVtaXJyb3IvZ3V0dGVyJyxcbiAgICAnQGNvZGVtaXJyb3IvaGlnaGxpZ2h0JyxcbiAgICAnQGNvZGVtaXJyb3IvaGlzdG9yeScsXG4gICAgJ0Bjb2RlbWlycm9yL21hdGNoYnJhY2tldHMnLFxuICAgICdAY29kZW1pcnJvci9wYW5lbCcsXG4gICAgJ0Bjb2RlbWlycm9yL3Jhbmdlc2V0JyxcbiAgICAnQGNvZGVtaXJyb3IvcmVjdGFuZ3VsYXItc2VsZWN0aW9uJyxcbiAgICAnQGNvZGVtaXJyb3Ivc3RyZWFtLXBhcnNlcicsXG4gICAgJ0Bjb2RlbWlycm9yL3Rvb2x0aXAnXG4gIF0pO1xuXG4gIGZ1bmN0aW9uIHJlcXVpcmVQYXRjaGVkKGlkOiBzdHJpbmcpOiB1bmtub3duIHtcbiAgICBpZiAoT0JTSURJQU5fQlVJTFRfSU5fTU9EVUxFX05BTUVTLmhhcyhpZCkgfHwgREVQUkVDQVRFRF9PQlNJRElBTl9CVUlMVF9JTl9NT0RVTEVfTkFNRVMuaGFzKGlkKSkge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsUmVxdWlyZT8uKGlkKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWRlcHJlY2F0ZWQsIG9ic2lkaWFubWQvbm8tZ2xvYmFsLXRoaXMgIC0tIE5lZWQgYWNjZXNzIHRvIGFwcC4gQWN0aXZlbHkgdXNlIGdsb2JhbFRoaXMuXG4gICAgaWYgKGdsb2JhbFRoaXMuYXBwLmlzTW9iaWxlKSB7XG4gICAgICBpZiAoaWQgPT09ICdwcm9jZXNzJyB8fCBpZCA9PT0gJ25vZGU6cHJvY2VzcycpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGUgLS0gVmFsaWQgdXNhZ2UuXG4gICAgICAgIGNvbnNvbGUuZGVidWcoYFRoZSBtb3N0IGxpa2VseSB5b3UgY2FuIHNhZmVseSBpZ25vcmUgdGhpcyBlcnJvci4gTW9kdWxlIG5vdCBmb3VuZDogJHtpZH0uIEZha2UgcHJvY2VzcyBvYmplY3QgaXMgcmV0dXJuZWQgaW5zdGVhZC5gKTtcblxuICAgICAgICByZXR1cm4gcHJvY2VzcztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbW9kdWxlID0gb3JpZ2luYWxSZXF1aXJlPy4oaWQpIGFzIChQYXJ0aWFsPEVzbU1vZHVsZT4gfCB1bmRlZmluZWQpO1xuICAgICAgaWYgKG1vZHVsZSkge1xuICAgICAgICByZXR1cm4gZXh0cmFjdERlZmF1bHQobW9kdWxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZSAtLSBWYWxpZCB1c2FnZS5cbiAgICBjb25zb2xlLmRlYnVnKGBUaGUgbW9zdCBsaWtlbHkgeW91IGNhbiBzYWZlbHkgaWdub3JlIHRoaXMgZXJyb3IuIE1vZHVsZSBub3QgZm91bmQ6ICR7aWR9LiBFbXB0eSBvYmplY3QgaXMgcmV0dXJuZWQgaW5zdGVhZC5gKTtcbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdEVzbSgpOiB2b2lkIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvbm8tZ2xvYmFsLXRoaXMgLS0gQWN0aXZlbHkgdXNlIGdsb2JhbFRoaXMuXG4gIGlmICgoZ2xvYmFsVGhpcy5wcm9jZXNzIGFzIE5vZGVKUy5Qcm9jZXNzIHwgdW5kZWZpbmVkKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGJyb3dzZXJQcm9jZXNzOiBCcm93c2VyUHJvY2VzcyA9IHtcbiAgICBicm93c2VyOiB0cnVlLFxuICAgIGN3ZCgpIHtcbiAgICAgIHJldHVybiAnLyc7XG4gICAgfSxcbiAgICBlbnY6IHt9LFxuICAgIHBsYXRmb3JtOiAnYW5kcm9pZCdcbiAgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvbm8tZ2xvYmFsLXRoaXMgLS0gQWN0aXZlbHkgdXNlIGdsb2JhbFRoaXMuXG4gIGdsb2JhbFRoaXMucHJvY2VzcyA9IGJyb3dzZXJQcm9jZXNzIGFzIE5vZGVKUy5Qcm9jZXNzO1xufVxuXG5mdW5jdGlvbiBuYW1lKCR1bmtub3duOiB1bmtub3duKTogdW5rbm93biB7XG4gIHJldHVybiAkdW5rbm93bjtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cblxuLyogZXNsaW50LWVuYWJsZSB1bmljb3JuL3ByZWZlci1tb2R1bGUgLS0gUGFpcnMgd2l0aCB0aGUgZmlsZS1sZXZlbCBkaXNhYmxlIGFib3ZlLiAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsU0FBUyxnQkFBZ0I7QUFJekI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQThCQSxTQUFTLGlCQUFpQixPQUF5QjtBQUN4RCxRQUFNLGVBQWUsUUFDakIsQ0FBQyxJQUNEO0FBQUEsSUFDQSxDQUNFLFdBQVc7QUFB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
|
|
@@ -23,9 +23,13 @@ export interface CheckProjectTypesParams {
|
|
|
23
23
|
* @default `false`
|
|
24
24
|
*/
|
|
25
25
|
readonly isVerbose?: boolean;
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
Compiler options for the program. `skipLibCheck` is always forced to `false`.
|
|
28
|
+
*/
|
|
27
29
|
readonly options: CompilerOptions;
|
|
28
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
The root files to type-check.
|
|
32
|
+
*/
|
|
29
33
|
readonly rootNames: readonly string[];
|
|
30
34
|
/**
|
|
31
35
|
* Decides whether a diagnostic should be reported, based on the diagnostic itself rather than its
|
|
@@ -50,9 +54,13 @@ export interface CheckProjectTypesParams {
|
|
|
50
54
|
* The resolved result of {@link parseTsConfig}.
|
|
51
55
|
*/
|
|
52
56
|
export interface ParsedTsConfig {
|
|
53
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
The resolved list of files the config includes (absolute paths).
|
|
59
|
+
*/
|
|
54
60
|
readonly fileNames: readonly string[];
|
|
55
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
The resolved compiler options (with `extends` applied).
|
|
63
|
+
*/
|
|
56
64
|
readonly options: CompilerOptions;
|
|
57
65
|
}
|
|
58
66
|
/**
|
|
@@ -58,7 +58,7 @@ function checkProjectTypes(params) {
|
|
|
58
58
|
const ignoredDiagnostics = allDiagnostics.filter((diagnostic) => !keptDiagnostics.includes(diagnostic));
|
|
59
59
|
process.stdout.write(formatDiagnosticsWithColorAndContext(ignoredDiagnostics, FORMAT_HOST));
|
|
60
60
|
}
|
|
61
|
-
return
|
|
61
|
+
return keptDiagnostics.every((diagnostic) => diagnostic.category !== DiagnosticCategory.Error);
|
|
62
62
|
}
|
|
63
63
|
function parseTsConfig(tsConfigPath) {
|
|
64
64
|
const host = {
|
|
@@ -67,7 +67,7 @@ function parseTsConfig(tsConfigPath) {
|
|
|
67
67
|
onUnRecoverableConfigFileDiagnostic: (diagnostic) => {
|
|
68
68
|
throw new Error(formatDiagnostic(diagnostic, FORMAT_HOST));
|
|
69
69
|
},
|
|
70
|
-
readDirectory: (
|
|
70
|
+
readDirectory: (rootDirectory, extensions, excludes, includes, depth) => sys.readDirectory(rootDirectory, extensions, excludes, includes, depth),
|
|
71
71
|
readFile: (path) => sys.readFile(path),
|
|
72
72
|
useCaseSensitiveFileNames: sys.useCaseSensitiveFileNames
|
|
73
73
|
};
|
|
@@ -99,4 +99,4 @@ export {
|
|
|
99
99
|
parseTsConfig,
|
|
100
100
|
toCanonical
|
|
101
101
|
};
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9jaGVjay1wcm9qZWN0LXR5cGVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVHlwZS1jaGVja3MgYSBzZXQgb2YgVHlwZVNjcmlwdCBmaWxlcyB3aXRoIGBza2lwTGliQ2hlY2tgIGRpc2FibGVkLCBidXQgcmVwb3J0cyBvbmx5IHRoZVxuICogZGlhZ25vc3RpY3Mgd2hvc2Ugc291cmNlIGZpbGUgd2Ugb3duLiBUaGlzIGxldHMgdGhlIGdlbmVyYWwgYnVpbGQgcnVuIHdpdGggYHNraXBMaWJDaGVjazogdHJ1ZWBcbiAqIChzbyBpdCBkb2VzIG5vdCBmYWlsIG9uIGJyb2tlbiB1cHN0cmVhbSBgLmQudHNgIGZpbGVzIHdlIGRvIG5vdCBjb250cm9sLCBzdWNoIGFzIGEgZ2l2ZW5cbiAqIHZlcnNpb24ncyBgb2JzaWRpYW4uZC50c2ApIHdoaWxlIHN0aWxsIGZ1bGx5IHZhbGlkYXRpbmcgdGhlIGRlY2xhcmF0aW9ucyB3ZSBhdXRob3IuXG4gKlxuICogV2hlbiB1cHN0cmVhbSB0eXBlcyBhcmUgZml4ZWQsIHRoZSBgSWdub3JlZCBOIGRpYWdub3N0aWMocylgIGNvdW50IGRyb3BzIHRvIGAwYCwgc2lnbmFsbGluZyB0aGVcbiAqIHdvcmthcm91bmQgaXMgbm8gbG9uZ2VyIGRvaW5nIGFueXRoaW5nLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29tcGlsZXJPcHRpb25zLFxuICBEaWFnbm9zdGljLFxuICBGb3JtYXREaWFnbm9zdGljc0hvc3QsXG4gIFBhcnNlQ29uZmlnRmlsZUhvc3Rcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge1xuICBjcmVhdGVQcm9ncmFtLFxuICBEaWFnbm9zdGljQ2F0ZWdvcnksXG4gIGZvcm1hdERpYWdub3N0aWMsXG4gIGZvcm1hdERpYWdub3N0aWNzLFxuICBmb3JtYXREaWFnbm9zdGljc1dpdGhDb2xvckFuZENvbnRleHQsXG4gIGdldFBhcnNlZENvbW1hbmRMaW5lT2ZDb25maWdGaWxlLFxuICBnZXRQcmVFbWl0RGlhZ25vc3RpY3MsXG4gIHN5c1xufSBmcm9tICd0eXBlc2NyaXB0JztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY2hlY2tQcm9qZWN0VHlwZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrUHJvamVjdFR5cGVzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCB0aGUgaWdub3JlZCBkaWFnbm9zdGljcyAodGhvc2UgZHJvcHBlZCBieSB7QGxpbmsgQ2hlY2tQcm9qZWN0VHlwZXNQYXJhbXMuc2hvdWxkS2VlcEZpbGV9XG4gICAqIG9yIHtAbGluayBDaGVja1Byb2plY3RUeXBlc1BhcmFtcy5zaG91bGRLZWVwRGlhZ25vc3RpY30pIGFyZSBwcmludGVkIGluIGZ1bGwgYWZ0ZXIgdGhlIGlnbm9yZWRcbiAgICogY291bnQsIHNvIHRoZXkgY2FuIGJlIGluc3BlY3RlZC4gV2hlbiBvbWl0dGVkIG9yIGBmYWxzZWAsIG9ubHkgdGhlIGNvdW50IGlzIHByaW50ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IGlzVmVyYm9zZT86IGJvb2xlYW47XG5cbiAgLyoqIENvbXBpbGVyIG9wdGlvbnMgZm9yIHRoZSBwcm9ncmFtLiBgc2tpcExpYkNoZWNrYCBpcyBhbHdheXMgZm9yY2VkIHRvIGBmYWxzZWAuICovXG4gIHJlYWRvbmx5IG9wdGlvbnM6IENvbXBpbGVyT3B0aW9ucztcblxuICAvKiogVGhlIHJvb3QgZmlsZXMgdG8gdHlwZS1jaGVjay4gKi9cbiAgcmVhZG9ubHkgcm9vdE5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRGVjaWRlcyB3aGV0aGVyIGEgZGlhZ25vc3RpYyBzaG91bGQgYmUgcmVwb3J0ZWQsIGJhc2VkIG9uIHRoZSBkaWFnbm9zdGljIGl0c2VsZiByYXRoZXIgdGhhbiBpdHNcbiAgICogc291cmNlIGZpbGUuIFJ1bnMgaW4gYWRkaXRpb24gdG8ge0BsaW5rIENoZWNrUHJvamVjdFR5cGVzUGFyYW1zLnNob3VsZEtlZXBGaWxlfSBcdTIwMTQgYSBkaWFnbm9zdGljIGlzXG4gICAqIHJlcG9ydGVkIG9ubHkgd2hlbiBib3RoIHByZWRpY2F0ZXMga2VlcCBpdC4gVXNlIHRoaXMgdG8gZHJvcCBkaWFnbm9zdGljcyB0aGF0IGFyZSByZXBvcnRlZCBpbiBhXG4gICAqIGZpbGUgd2Ugb3duIGJ1dCBhcmUgY2F1c2VkIGJ5IHNvbWV0aGluZyB3ZSBkbyBub3QgY29udHJvbCAoZS5nLiBhIGNyb3NzLW1vZHVsZS1mb3JtYXQgaW50ZXJvcFxuICAgKiBjb21wbGFpbnQgYWJvdXQgYSB0aGlyZC1wYXJ0eSBpbXBvcnQpLiBXaGVuIG9taXR0ZWQsIG5vIGRpYWdub3N0aWMgaXMgZHJvcHBlZCBvbiB0aGlzIGJhc2lzLlxuICAgKlxuICAgKiBAcGFyYW0gZGlhZ25vc3RpYyAtIFRoZSBkaWFnbm9zdGljIHRvIGV2YWx1YXRlLlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgdG8gcmVwb3J0IHRoZSBkaWFnbm9zdGljLCBgZmFsc2VgIHRvIGlnbm9yZSBpdC5cbiAgICovXG4gIHNob3VsZEtlZXBEaWFnbm9zdGljPyh0aGlzOiB2b2lkLCBkaWFnbm9zdGljOiBEaWFnbm9zdGljKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVjaWRlcyB3aGV0aGVyIGEgZGlhZ25vc3RpYydzIHNvdXJjZSBmaWxlIGlzIG9uZSB3ZSBjYXJlIGFib3V0LlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZU5hbWUgLSBUaGUgZGlhZ25vc3RpYydzIHNvdXJjZSBmaWxlLCBhbHJlYWR5IHBhc3NlZCB0aHJvdWdoIHtAbGluayB0b0Nhbm9uaWNhbH0uXG4gICAqIEByZXR1cm5zIGB0cnVlYCB0byByZXBvcnQgdGhlIGRpYWdub3N0aWMsIGBmYWxzZWAgdG8gaWdub3JlIGl0LlxuICAgKi9cbiAgc2hvdWxkS2VlcEZpbGUodGhpczogdm9pZCwgZmlsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIHJlc29sdmVkIHJlc3VsdCBvZiB7QGxpbmsgcGFyc2VUc0NvbmZpZ30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVHNDb25maWcge1xuICAvKiogVGhlIHJlc29sdmVkIGxpc3Qgb2YgZmlsZXMgdGhlIGNvbmZpZyBpbmNsdWRlcyAoYWJzb2x1dGUgcGF0aHMpLiAqL1xuICByZWFkb25seSBmaWxlTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKiBUaGUgcmVzb2x2ZWQgY29tcGlsZXIgb3B0aW9ucyAod2l0aCBgZXh0ZW5kc2AgYXBwbGllZCkuICovXG4gIHJlYWRvbmx5IG9wdGlvbnM6IENvbXBpbGVyT3B0aW9ucztcbn1cblxuY29uc3QgRk9STUFUX0hPU1Q6IEZvcm1hdERpYWdub3N0aWNzSG9zdCA9IHtcbiAgZ2V0Q2Fub25pY2FsRmlsZU5hbWU6IChmaWxlTmFtZSkgPT4gZmlsZU5hbWUsXG4gIGdldEN1cnJlbnREaXJlY3Rvcnk6ICgpID0+IHN5cy5nZXRDdXJyZW50RGlyZWN0b3J5KCksXG4gIGdldE5ld0xpbmU6ICgpID0+IHN5cy5uZXdMaW5lXG59O1xuXG4vKipcbiAqIFR5cGUtY2hlY2tzIGEgc2V0IG9mIGZpbGVzIHdpdGggYHNraXBMaWJDaGVjazogZmFsc2VgLCBidXQgcmVwb3J0cyBvbmx5IHRoZSBkaWFnbm9zdGljcyB3aG9zZVxuICogc291cmNlIGZpbGUgcGFzc2VzIGBzaG91bGRLZWVwRmlsZWAuIERpYWdub3N0aWNzIGZyb20gZmlsZXMgd2UgZG8gbm90IGNvbnRyb2wgKGUuZy4gYnJva2VuXG4gKiB0aGlyZC1wYXJ0eSBgLmQudHNgIHB1bGxlZCBpbiB0cmFuc2l0aXZlbHkpIGFyZSBkcm9wcGVkLCB3aGlsZSBzdGlsbCBiZWluZyBjb3VudGVkIGZvclxuICogdmlzaWJpbGl0eS4gV2hlbiBgaXNWZXJib3NlYCBpcyBzZXQsIHRoZSBkcm9wcGVkIGRpYWdub3N0aWNzIGFyZSBhbHNvIHByaW50ZWQgaW4gZnVsbC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHByb2dyYW0gaW5wdXRzIGFuZCB0aGUga2VlcCBwcmVkaWNhdGUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiBubyByZXBvcnRlZCBkaWFnbm9zdGljIGlzIGFuIGVycm9yLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUHJvamVjdFR5cGVzKHBhcmFtczogQ2hlY2tQcm9qZWN0VHlwZXNQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3Qgb3B0aW9uczogQ29tcGlsZXJPcHRpb25zID0ge1xuICAgIC4uLnBhcmFtcy5vcHRpb25zLFxuICAgIHNraXBMaWJDaGVjazogZmFsc2VcbiAgfTtcblxuICBjb25zdCBwcm9ncmFtID0gY3JlYXRlUHJvZ3JhbSh7XG4gICAgb3B0aW9ucyxcbiAgICByb290TmFtZXM6IFsuLi5wYXJhbXMucm9vdE5hbWVzXVxuICB9KTtcblxuICBjb25zdCBhbGxEaWFnbm9zdGljcyA9IGdldFByZUVtaXREaWFnbm9zdGljcyhwcm9ncmFtKTtcbiAgY29uc3Qga2VwdERpYWdub3N0aWNzID0gYWxsRGlhZ25vc3RpY3MuZmlsdGVyKChkaWFnbm9zdGljKSA9PiBzaG91bGRLZWVwRGlhZ25vc3RpY0J5RmlsZShkaWFnbm9zdGljLCBwYXJhbXMuc2hvdWxkS2VlcEZpbGUpICYmIChwYXJhbXMuc2hvdWxkS2VlcERpYWdub3N0aWM/LihkaWFnbm9zdGljKSA/PyB0cnVlKSk7XG4gIGNvbnN0IGlnbm9yZWRDb3VudCA9IGFsbERpYWdub3N0aWNzLmxlbmd0aCAtIGtlcHREaWFnbm9zdGljcy5sZW5ndGg7XG5cbiAgaWYgKGtlcHREaWFnbm9zdGljcy5sZW5ndGggPiAwKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZm9ybWF0RGlhZ25vc3RpY3NXaXRoQ29sb3JBbmRDb250ZXh0KGtlcHREaWFnbm9zdGljcywgRk9STUFUX0hPU1QpKTtcbiAgfVxuXG4gIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBJZ25vcmVkICR7U3RyaW5nKGlnbm9yZWRDb3VudCl9IGRpYWdub3N0aWMocykgb3V0c2lkZSB0aGUgdmFsaWRhdGVkIHNldC5cXG5gKTtcblxuICBpZiAocGFyYW1zLmlzVmVyYm9zZSAmJiBpZ25vcmVkQ291bnQgPiAwKSB7XG4gICAgY29uc3QgaWdub3JlZERpYWdub3N0aWNzID0gYWxsRGlhZ25vc3RpY3MuZmlsdGVyKChkaWFnbm9zdGljKSA9PiAha2VwdERpYWdub3N0aWNzLmluY2x1ZGVzKGRpYWdub3N0aWMpKTtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShmb3JtYXREaWFnbm9zdGljc1dpdGhDb2xvckFuZENvbnRleHQoaWdub3JlZERpYWdub3N0aWNzLCBGT1JNQVRfSE9TVCkpO1xuICB9XG5cbiAgcmV0dXJuICFrZXB0RGlhZ25vc3RpY3Muc29tZSgoZGlhZ25vc3RpYykgPT4gZGlhZ25vc3RpYy5jYXRlZ29yeSA9PT0gRGlhZ25vc3RpY0NhdGVnb3J5LkVycm9yKTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBgdHNjb25maWcuanNvbmAgKHJlc29sdmluZyBgZXh0ZW5kc2AsIGBpbmNsdWRlYCwgYGV4Y2x1ZGVgKSBpbnRvIHRoZSByZXNvbHZlZCBmaWxlIGxpc3RcbiAqIGFuZCBjb21waWxlciBvcHRpb25zLlxuICpcbiAqIEBwYXJhbSB0c0NvbmZpZ1BhdGggLSBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBjb25maWcgZmlsZS5cbiAqIEByZXR1cm5zIFRoZSByZXNvbHZlZCBmaWxlIG5hbWVzIGFuZCBvcHRpb25zLlxuICogQHRocm93cyBJZiB0aGUgY29uZmlnIGNhbm5vdCBiZSBwYXJzZWQgb3IgY29udGFpbnMgZXJyb3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUc0NvbmZpZyh0c0NvbmZpZ1BhdGg6IHN0cmluZyk6IFBhcnNlZFRzQ29uZmlnIHtcbiAgY29uc3QgaG9zdDogUGFyc2VDb25maWdGaWxlSG9zdCA9IHtcbiAgICBmaWxlRXhpc3RzOiAocGF0aCkgPT4gc3lzLmZpbGVFeGlzdHMocGF0aCksXG4gICAgZ2V0Q3VycmVudERpcmVjdG9yeTogKCkgPT4gc3lzLmdldEN1cnJlbnREaXJlY3RvcnkoKSxcbiAgICBvblVuUmVjb3ZlcmFibGVDb25maWdGaWxlRGlhZ25vc3RpYzogKGRpYWdub3N0aWMpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihmb3JtYXREaWFnbm9zdGljKGRpYWdub3N0aWMsIEZPUk1BVF9IT1NUKSk7XG4gICAgfSxcbiAgICByZWFkRGlyZWN0b3J5OiAocm9vdERpciwgZXh0ZW5zaW9ucywgZXhjbHVkZXMsIGluY2x1ZGVzLCBkZXB0aCkgPT4gc3lzLnJlYWREaXJlY3Rvcnkocm9vdERpciwgZXh0ZW5zaW9ucywgZXhjbHVkZXMsIGluY2x1ZGVzLCBkZXB0aCksXG4gICAgcmVhZEZpbGU6IChwYXRoKSA9PiBzeXMucmVhZEZpbGUocGF0aCksXG4gICAgdXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lczogc3lzLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXNcbiAgfTtcblxuICBjb25zdCBwYXJzZWQgPSBnZXRQYXJzZWRDb21tYW5kTGluZU9mQ29uZmlnRmlsZSh0c0NvbmZpZ1BhdGgsIHVuZGVmaW5lZCwgaG9zdCk7XG5cbiAgaWYgKCFwYXJzZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBwYXJzZSBUeXBlU2NyaXB0IGNvbmZpZzogJHt0c0NvbmZpZ1BhdGh9YCk7XG4gIH1cblxuICBpZiAocGFyc2VkLmVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvcnMgd2hpbGUgcGFyc2luZyBUeXBlU2NyaXB0IGNvbmZpZyAke3RzQ29uZmlnUGF0aH06XFxuJHtmb3JtYXREaWFnbm9zdGljcyhwYXJzZWQuZXJyb3JzLCBGT1JNQVRfSE9TVCl9YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbGVOYW1lczogcGFyc2VkLmZpbGVOYW1lcyxcbiAgICBvcHRpb25zOiBwYXJzZWQub3B0aW9uc1xuICB9O1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBmaWxlIHBhdGggZm9yIGNvbXBhcmlzb246IGZvcndhcmQgc2xhc2hlcyBldmVyeXdoZXJlLCBsb3dlci1jYXNlZCBvbiBhXG4gKiBjYXNlLWluc2Vuc2l0aXZlIGZpbGUgc3lzdGVtLlxuICpcbiAqIEBwYXJhbSBmaWxlTmFtZSAtIFRoZSBwYXRoIHRvIG5vcm1hbGl6ZS5cbiAqIEByZXR1cm5zIFRoZSBjYW5vbmljYWwgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ2Fub25pY2FsKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkID0gZmlsZU5hbWUucmVwbGFjZUFsbCgnXFxcXCcsICcvJyk7XG4gIHJldHVybiBzeXMudXNlQ2FzZVNlbnNpdGl2ZUZpbGVOYW1lcyA/IG5vcm1hbGl6ZWQgOiBub3JtYWxpemVkLnRvTG93ZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZEtlZXBEaWFnbm9zdGljQnlGaWxlKGRpYWdub3N0aWM6IERpYWdub3N0aWMsIHNob3VsZEtlZXBGaWxlOiAoZmlsZU5hbWU6IHN0cmluZykgPT4gYm9vbGVhbik6IGJvb2xlYW4ge1xuICBpZiAoIWRpYWdub3N0aWMuZmlsZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHNob3VsZEtlZXBGaWxlKHRvQ2Fub25pY2FsKGRpYWdub3N0aWMuZmlsZS5maWxlTmFtZSkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsT0FBTyxhQUFhO0FBQ3BCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBcURQLE1BQU0sY0FBcUM7QUFBQSxFQUN6QyxzQkFBc0IsQ0FBQyxhQUFhO0FBQUEsRUFDcEMscUJBQXFCLE1BQU0sSUFBSSxvQkFBb0I7QUFBQSxFQUNuRCxZQUFZLE1BQU0sSUFBSTtBQUN4QjtBQVdPLFNBQVMsa0JBQWtCLFFBQTBDO0FBQzFFLFFBQU0sVUFBMkI7QUFBQSxJQUMvQixHQUFHLE9BQU87QUFBQSxJQUNWLGNBQWM7QUFBQSxFQUNoQjtBQUVBLFFBQU0sVUFBVSxjQUFjO0FBQUEsSUFDNUI7QUFBQSxJQUNBLFdBQVcsQ0FBQyxHQUFHLE9BQU8sU0FBUztBQUFBLEVBQ2pDLENBQUM7QUFFRCxRQUFNLGlCQUFpQixzQkFBc0IsT0FBTztBQUNwRCxRQUFNLGtCQUFrQixlQUFlLE9BQU8sQ0FBQyxlQUFlLDJCQUEyQixZQUFZLE9BQU8sY0FBYyxNQUFNLE9BQU8sdUJBQXVCLFVBQVUsS0FBSyxLQUFLO0FBQ2xMLFFBQU0sZUFBZSxlQUFlLFNBQVMsZ0JBQWdCO0FBRTdELE1BQUksZ0JBQWdCLFNBQVMsR0FBRztBQUM5QixZQUFRLE9BQU8sTUFBTSxxQ0FBcUMsaUJBQWlCLFdBQVcsQ0FBQztBQUFBLEVBQ3pGO0FBRUEsVUFBUSxPQUFPLE1BQU0sV0FBVyxPQUFPLFlBQVksQ0FBQztBQUFBLENBQTZDO0FBRWpHLE1BQUksT0FBTyxhQUFhLGVBQWUsR0FBRztBQUN4QyxVQUFNLHFCQUFxQixlQUFlLE9BQU8sQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLFNBQVMsVUFBVSxDQUFDO0FBQ3RHLFlBQVEsT0FBTyxNQUFNLHFDQUFxQyxvQkFBb0IsV0FBVyxDQUFDO0FBQUEsRUFDNUY7QUFFQSxTQUFPLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxlQUFlLFdBQVcsYUFBYSxtQkFBbUIsS0FBSztBQUMvRjtBQVVPLFNBQVMsY0FBYyxjQUFzQztBQUNsRSxRQUFNLE9BQTRCO0FBQUEsSUFDaEMsWUFBWSxDQUFDLFNBQVMsSUFBSSxXQUFXLElBQUk7QUFBQSxJQUN6QyxxQkFBcUIsTUFBTSxJQUFJLG9CQUFvQjtBQUFBLElBQ25ELHFDQUFxQyxDQUFDLGVBQWU7QUFDbkQsWUFBTSxJQUFJLE1BQU0saUJBQWlCLFlBQVksV0FBVyxDQUFDO0FBQUEsSUFDM0Q7QUFBQSxJQUNBLGVBQWUsQ0FBQyxTQUFTLFlBQVksVUFBVSxVQUFVLFVBQVUsSUFBSSxjQUFjLFNBQVMsWUFBWSxVQUFVLFVBQVUsS0FBSztBQUFBLElBQ25JLFVBQVUsQ0FBQyxTQUFTLElBQUksU0FBUyxJQUFJO0FBQUEsSUFDckMsMkJBQTJCLElBQUk7QUFBQSxFQUNqQztBQUVBLFFBQU0sU0FBUyxpQ0FBaUMsY0FBYyxRQUFXLElBQUk7QUFFN0UsTUFBSSxDQUFDLFFBQVE7QUFDWCxVQUFNLElBQUksTUFBTSxzQ0FBc0MsWUFBWSxFQUFFO0FBQUEsRUFDdEU7QUFFQSxNQUFJLE9BQU8sT0FBTyxTQUFTLEdBQUc7QUFDNUIsVUFBTSxJQUFJLE1BQU0sMENBQTBDLFlBQVk7QUFBQSxFQUFNLGtCQUFrQixPQUFPLFFBQVEsV0FBVyxDQUFDLEVBQUU7QUFBQSxFQUM3SDtBQUVBLFNBQU87QUFBQSxJQUNMLFdBQVcsT0FBTztBQUFBLElBQ2xCLFNBQVMsT0FBTztBQUFBLEVBQ2xCO0FBQ0Y7QUFTTyxTQUFTLFlBQVksVUFBMEI7QUFDcEQsUUFBTSxhQUFhLFNBQVMsV0FBVyxNQUFNLEdBQUc7QUFDaEQsU0FBTyxJQUFJLDRCQUE0QixhQUFhLFdBQVcsWUFBWTtBQUM3RTtBQUVBLFNBQVMsMkJBQTJCLFlBQXdCLGdCQUF3RDtBQUNsSCxNQUFJLENBQUMsV0FBVyxNQUFNO0FBQ3BCLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxlQUFlLFlBQVksV0FBVyxLQUFLLFFBQVEsQ0FBQztBQUM3RDsiLAogICJuYW1lcyI6IFtdCn0K
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9jaGVjay1wcm9qZWN0LXR5cGVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVHlwZS1jaGVja3MgYSBzZXQgb2YgVHlwZVNjcmlwdCBmaWxlcyB3aXRoIGBza2lwTGliQ2hlY2tgIGRpc2FibGVkLCBidXQgcmVwb3J0cyBvbmx5IHRoZVxuICogZGlhZ25vc3RpY3Mgd2hvc2Ugc291cmNlIGZpbGUgd2Ugb3duLiBUaGlzIGxldHMgdGhlIGdlbmVyYWwgYnVpbGQgcnVuIHdpdGggYHNraXBMaWJDaGVjazogdHJ1ZWBcbiAqIChzbyBpdCBkb2VzIG5vdCBmYWlsIG9uIGJyb2tlbiB1cHN0cmVhbSBgLmQudHNgIGZpbGVzIHdlIGRvIG5vdCBjb250cm9sLCBzdWNoIGFzIGEgZ2l2ZW5cbiAqIHZlcnNpb24ncyBgb2JzaWRpYW4uZC50c2ApIHdoaWxlIHN0aWxsIGZ1bGx5IHZhbGlkYXRpbmcgdGhlIGRlY2xhcmF0aW9ucyB3ZSBhdXRob3IuXG4gKlxuICogV2hlbiB1cHN0cmVhbSB0eXBlcyBhcmUgZml4ZWQsIHRoZSBgSWdub3JlZCBOIGRpYWdub3N0aWMocylgIGNvdW50IGRyb3BzIHRvIGAwYCwgc2lnbmFsbGluZyB0aGVcbiAqIHdvcmthcm91bmQgaXMgbm8gbG9uZ2VyIGRvaW5nIGFueXRoaW5nLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29tcGlsZXJPcHRpb25zLFxuICBEaWFnbm9zdGljLFxuICBGb3JtYXREaWFnbm9zdGljc0hvc3QsXG4gIFBhcnNlQ29uZmlnRmlsZUhvc3Rcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5pbXBvcnQge1xuICBjcmVhdGVQcm9ncmFtLFxuICBEaWFnbm9zdGljQ2F0ZWdvcnksXG4gIGZvcm1hdERpYWdub3N0aWMsXG4gIGZvcm1hdERpYWdub3N0aWNzLFxuICBmb3JtYXREaWFnbm9zdGljc1dpdGhDb2xvckFuZENvbnRleHQsXG4gIGdldFBhcnNlZENvbW1hbmRMaW5lT2ZDb25maWdGaWxlLFxuICBnZXRQcmVFbWl0RGlhZ25vc3RpY3MsXG4gIHN5c1xufSBmcm9tICd0eXBlc2NyaXB0JztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY2hlY2tQcm9qZWN0VHlwZXN9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrUHJvamVjdFR5cGVzUGFyYW1zIHtcbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCB0aGUgaWdub3JlZCBkaWFnbm9zdGljcyAodGhvc2UgZHJvcHBlZCBieSB7QGxpbmsgQ2hlY2tQcm9qZWN0VHlwZXNQYXJhbXMuc2hvdWxkS2VlcEZpbGV9XG4gICAqIG9yIHtAbGluayBDaGVja1Byb2plY3RUeXBlc1BhcmFtcy5zaG91bGRLZWVwRGlhZ25vc3RpY30pIGFyZSBwcmludGVkIGluIGZ1bGwgYWZ0ZXIgdGhlIGlnbm9yZWRcbiAgICogY291bnQsIHNvIHRoZXkgY2FuIGJlIGluc3BlY3RlZC4gV2hlbiBvbWl0dGVkIG9yIGBmYWxzZWAsIG9ubHkgdGhlIGNvdW50IGlzIHByaW50ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIHJlYWRvbmx5IGlzVmVyYm9zZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gIENvbXBpbGVyIG9wdGlvbnMgZm9yIHRoZSBwcm9ncmFtLiBgc2tpcExpYkNoZWNrYCBpcyBhbHdheXMgZm9yY2VkIHRvIGBmYWxzZWAuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25zOiBDb21waWxlck9wdGlvbnM7XG5cbiAgLyoqXG4gIFRoZSByb290IGZpbGVzIHRvIHR5cGUtY2hlY2suXG4gICAqL1xuICByZWFkb25seSByb290TmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBEZWNpZGVzIHdoZXRoZXIgYSBkaWFnbm9zdGljIHNob3VsZCBiZSByZXBvcnRlZCwgYmFzZWQgb24gdGhlIGRpYWdub3N0aWMgaXRzZWxmIHJhdGhlciB0aGFuIGl0c1xuICAgKiBzb3VyY2UgZmlsZS4gUnVucyBpbiBhZGRpdGlvbiB0byB7QGxpbmsgQ2hlY2tQcm9qZWN0VHlwZXNQYXJhbXMuc2hvdWxkS2VlcEZpbGV9IFx1MjAxNCBhIGRpYWdub3N0aWMgaXNcbiAgICogcmVwb3J0ZWQgb25seSB3aGVuIGJvdGggcHJlZGljYXRlcyBrZWVwIGl0LiBVc2UgdGhpcyB0byBkcm9wIGRpYWdub3N0aWNzIHRoYXQgYXJlIHJlcG9ydGVkIGluIGFcbiAgICogZmlsZSB3ZSBvd24gYnV0IGFyZSBjYXVzZWQgYnkgc29tZXRoaW5nIHdlIGRvIG5vdCBjb250cm9sIChlLmcuIGEgY3Jvc3MtbW9kdWxlLWZvcm1hdCBpbnRlcm9wXG4gICAqIGNvbXBsYWludCBhYm91dCBhIHRoaXJkLXBhcnR5IGltcG9ydCkuIFdoZW4gb21pdHRlZCwgbm8gZGlhZ25vc3RpYyBpcyBkcm9wcGVkIG9uIHRoaXMgYmFzaXMuXG4gICAqXG4gICAqIEBwYXJhbSBkaWFnbm9zdGljIC0gVGhlIGRpYWdub3N0aWMgdG8gZXZhbHVhdGUuXG4gICAqIEByZXR1cm5zIGB0cnVlYCB0byByZXBvcnQgdGhlIGRpYWdub3N0aWMsIGBmYWxzZWAgdG8gaWdub3JlIGl0LlxuICAgKi9cbiAgc2hvdWxkS2VlcERpYWdub3N0aWM/KHRoaXM6IHZvaWQsIGRpYWdub3N0aWM6IERpYWdub3N0aWMpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWNpZGVzIHdoZXRoZXIgYSBkaWFnbm9zdGljJ3Mgc291cmNlIGZpbGUgaXMgb25lIHdlIGNhcmUgYWJvdXQuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlTmFtZSAtIFRoZSBkaWFnbm9zdGljJ3Mgc291cmNlIGZpbGUsIGFscmVhZHkgcGFzc2VkIHRocm91Z2gge0BsaW5rIHRvQ2Fub25pY2FsfS5cbiAgICogQHJldHVybnMgYHRydWVgIHRvIHJlcG9ydCB0aGUgZGlhZ25vc3RpYywgYGZhbHNlYCB0byBpZ25vcmUgaXQuXG4gICAqL1xuICBzaG91bGRLZWVwRmlsZSh0aGlzOiB2b2lkLCBmaWxlTmFtZTogc3RyaW5nKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb2x2ZWQgcmVzdWx0IG9mIHtAbGluayBwYXJzZVRzQ29uZmlnfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRUc0NvbmZpZyB7XG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgbGlzdCBvZiBmaWxlcyB0aGUgY29uZmlnIGluY2x1ZGVzIChhYnNvbHV0ZSBwYXRocykuXG4gICAqL1xuICByZWFkb25seSBmaWxlTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuXG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgY29tcGlsZXIgb3B0aW9ucyAod2l0aCBgZXh0ZW5kc2AgYXBwbGllZCkuXG4gICAqL1xuICByZWFkb25seSBvcHRpb25zOiBDb21waWxlck9wdGlvbnM7XG59XG5cbmNvbnN0IEZPUk1BVF9IT1NUOiBGb3JtYXREaWFnbm9zdGljc0hvc3QgPSB7XG4gIGdldENhbm9uaWNhbEZpbGVOYW1lOiAoZmlsZU5hbWUpID0+IGZpbGVOYW1lLFxuICBnZXRDdXJyZW50RGlyZWN0b3J5OiAoKSA9PiBzeXMuZ2V0Q3VycmVudERpcmVjdG9yeSgpLFxuICBnZXROZXdMaW5lOiAoKSA9PiBzeXMubmV3TGluZVxufTtcblxuLyoqXG4gKiBUeXBlLWNoZWNrcyBhIHNldCBvZiBmaWxlcyB3aXRoIGBza2lwTGliQ2hlY2s6IGZhbHNlYCwgYnV0IHJlcG9ydHMgb25seSB0aGUgZGlhZ25vc3RpY3Mgd2hvc2VcbiAqIHNvdXJjZSBmaWxlIHBhc3NlcyBgc2hvdWxkS2VlcEZpbGVgLiBEaWFnbm9zdGljcyBmcm9tIGZpbGVzIHdlIGRvIG5vdCBjb250cm9sIChlLmcuIGJyb2tlblxuICogdGhpcmQtcGFydHkgYC5kLnRzYCBwdWxsZWQgaW4gdHJhbnNpdGl2ZWx5KSBhcmUgZHJvcHBlZCwgd2hpbGUgc3RpbGwgYmVpbmcgY291bnRlZCBmb3JcbiAqIHZpc2liaWxpdHkuIFdoZW4gYGlzVmVyYm9zZWAgaXMgc2V0LCB0aGUgZHJvcHBlZCBkaWFnbm9zdGljcyBhcmUgYWxzbyBwcmludGVkIGluIGZ1bGwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwcm9ncmFtIGlucHV0cyBhbmQgdGhlIGtlZXAgcHJlZGljYXRlLlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gbm8gcmVwb3J0ZWQgZGlhZ25vc3RpYyBpcyBhbiBlcnJvciwgYGZhbHNlYCBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1Byb2plY3RUeXBlcyhwYXJhbXM6IENoZWNrUHJvamVjdFR5cGVzUGFyYW1zKTogYm9vbGVhbiB7XG4gIGNvbnN0IG9wdGlvbnM6IENvbXBpbGVyT3B0aW9ucyA9IHtcbiAgICAuLi5wYXJhbXMub3B0aW9ucyxcbiAgICBza2lwTGliQ2hlY2s6IGZhbHNlXG4gIH07XG5cbiAgY29uc3QgcHJvZ3JhbSA9IGNyZWF0ZVByb2dyYW0oe1xuICAgIG9wdGlvbnMsXG4gICAgcm9vdE5hbWVzOiBbLi4ucGFyYW1zLnJvb3ROYW1lc11cbiAgfSk7XG5cbiAgY29uc3QgYWxsRGlhZ25vc3RpY3MgPSBnZXRQcmVFbWl0RGlhZ25vc3RpY3MocHJvZ3JhbSk7XG4gIGNvbnN0IGtlcHREaWFnbm9zdGljcyA9IGFsbERpYWdub3N0aWNzLmZpbHRlcigoZGlhZ25vc3RpYykgPT4gc2hvdWxkS2VlcERpYWdub3N0aWNCeUZpbGUoZGlhZ25vc3RpYywgcGFyYW1zLnNob3VsZEtlZXBGaWxlKSAmJiAocGFyYW1zLnNob3VsZEtlZXBEaWFnbm9zdGljPy4oZGlhZ25vc3RpYykgPz8gdHJ1ZSkpO1xuICBjb25zdCBpZ25vcmVkQ291bnQgPSBhbGxEaWFnbm9zdGljcy5sZW5ndGggLSBrZXB0RGlhZ25vc3RpY3MubGVuZ3RoO1xuXG4gIGlmIChrZXB0RGlhZ25vc3RpY3MubGVuZ3RoID4gMCkge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGZvcm1hdERpYWdub3N0aWNzV2l0aENvbG9yQW5kQ29udGV4dChrZXB0RGlhZ25vc3RpY3MsIEZPUk1BVF9IT1NUKSk7XG4gIH1cblxuICBwcm9jZXNzLnN0ZG91dC53cml0ZShgSWdub3JlZCAke1N0cmluZyhpZ25vcmVkQ291bnQpfSBkaWFnbm9zdGljKHMpIG91dHNpZGUgdGhlIHZhbGlkYXRlZCBzZXQuXFxuYCk7XG5cbiAgaWYgKHBhcmFtcy5pc1ZlcmJvc2UgJiYgaWdub3JlZENvdW50ID4gMCkge1xuICAgIGNvbnN0IGlnbm9yZWREaWFnbm9zdGljcyA9IGFsbERpYWdub3N0aWNzLmZpbHRlcigoZGlhZ25vc3RpYykgPT4gIWtlcHREaWFnbm9zdGljcy5pbmNsdWRlcyhkaWFnbm9zdGljKSk7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZm9ybWF0RGlhZ25vc3RpY3NXaXRoQ29sb3JBbmRDb250ZXh0KGlnbm9yZWREaWFnbm9zdGljcywgRk9STUFUX0hPU1QpKTtcbiAgfVxuXG4gIHJldHVybiBrZXB0RGlhZ25vc3RpY3MuZXZlcnkoKGRpYWdub3N0aWMpID0+IGRpYWdub3N0aWMuY2F0ZWdvcnkgIT09IERpYWdub3N0aWNDYXRlZ29yeS5FcnJvcik7XG59XG5cbi8qKlxuICogUGFyc2VzIGEgYHRzY29uZmlnLmpzb25gIChyZXNvbHZpbmcgYGV4dGVuZHNgLCBgaW5jbHVkZWAsIGBleGNsdWRlYCkgaW50byB0aGUgcmVzb2x2ZWQgZmlsZSBsaXN0XG4gKiBhbmQgY29tcGlsZXIgb3B0aW9ucy5cbiAqXG4gKiBAcGFyYW0gdHNDb25maWdQYXRoIC0gQWJzb2x1dGUgcGF0aCB0byB0aGUgY29uZmlnIGZpbGUuXG4gKiBAcmV0dXJucyBUaGUgcmVzb2x2ZWQgZmlsZSBuYW1lcyBhbmQgb3B0aW9ucy5cbiAqIEB0aHJvd3MgSWYgdGhlIGNvbmZpZyBjYW5ub3QgYmUgcGFyc2VkIG9yIGNvbnRhaW5zIGVycm9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVHNDb25maWcodHNDb25maWdQYXRoOiBzdHJpbmcpOiBQYXJzZWRUc0NvbmZpZyB7XG4gIGNvbnN0IGhvc3Q6IFBhcnNlQ29uZmlnRmlsZUhvc3QgPSB7XG4gICAgZmlsZUV4aXN0czogKHBhdGgpID0+IHN5cy5maWxlRXhpc3RzKHBhdGgpLFxuICAgIGdldEN1cnJlbnREaXJlY3Rvcnk6ICgpID0+IHN5cy5nZXRDdXJyZW50RGlyZWN0b3J5KCksXG4gICAgb25VblJlY292ZXJhYmxlQ29uZmlnRmlsZURpYWdub3N0aWM6IChkaWFnbm9zdGljKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZm9ybWF0RGlhZ25vc3RpYyhkaWFnbm9zdGljLCBGT1JNQVRfSE9TVCkpO1xuICAgIH0sXG4gICAgcmVhZERpcmVjdG9yeTogKHJvb3REaXJlY3RvcnksIGV4dGVuc2lvbnMsIGV4Y2x1ZGVzLCBpbmNsdWRlcywgZGVwdGgpID0+IHN5cy5yZWFkRGlyZWN0b3J5KHJvb3REaXJlY3RvcnksIGV4dGVuc2lvbnMsIGV4Y2x1ZGVzLCBpbmNsdWRlcywgZGVwdGgpLFxuICAgIHJlYWRGaWxlOiAocGF0aCkgPT4gc3lzLnJlYWRGaWxlKHBhdGgpLFxuICAgIHVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXM6IHN5cy51c2VDYXNlU2Vuc2l0aXZlRmlsZU5hbWVzXG4gIH07XG5cbiAgY29uc3QgcGFyc2VkID0gZ2V0UGFyc2VkQ29tbWFuZExpbmVPZkNvbmZpZ0ZpbGUodHNDb25maWdQYXRoLCB1bmRlZmluZWQsIGhvc3QpO1xuXG4gIGlmICghcGFyc2VkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcGFyc2UgVHlwZVNjcmlwdCBjb25maWc6ICR7dHNDb25maWdQYXRofWApO1xuICB9XG5cbiAgaWYgKHBhcnNlZC5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3JzIHdoaWxlIHBhcnNpbmcgVHlwZVNjcmlwdCBjb25maWcgJHt0c0NvbmZpZ1BhdGh9OlxcbiR7Zm9ybWF0RGlhZ25vc3RpY3MocGFyc2VkLmVycm9ycywgRk9STUFUX0hPU1QpfWApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmaWxlTmFtZXM6IHBhcnNlZC5maWxlTmFtZXMsXG4gICAgb3B0aW9uczogcGFyc2VkLm9wdGlvbnNcbiAgfTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgZmlsZSBwYXRoIGZvciBjb21wYXJpc29uOiBmb3J3YXJkIHNsYXNoZXMgZXZlcnl3aGVyZSwgbG93ZXItY2FzZWQgb24gYVxuICogY2FzZS1pbnNlbnNpdGl2ZSBmaWxlIHN5c3RlbS5cbiAqXG4gKiBAcGFyYW0gZmlsZU5hbWUgLSBUaGUgcGF0aCB0byBub3JtYWxpemUuXG4gKiBAcmV0dXJucyBUaGUgY2Fub25pY2FsIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Nhbm9uaWNhbChmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGZpbGVOYW1lLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpO1xuICByZXR1cm4gc3lzLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMgPyBub3JtYWxpemVkIDogbm9ybWFsaXplZC50b0xvd2VyQ2FzZSgpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRLZWVwRGlhZ25vc3RpY0J5RmlsZShkaWFnbm9zdGljOiBEaWFnbm9zdGljLCBzaG91bGRLZWVwRmlsZTogKGZpbGVOYW1lOiBzdHJpbmcpID0+IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgaWYgKCFkaWFnbm9zdGljLmZpbGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBzaG91bGRLZWVwRmlsZSh0b0Nhbm9uaWNhbChkaWFnbm9zdGljLmZpbGUuZmlsZU5hbWUpKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLE9BQU8sYUFBYTtBQUNwQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxF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
|
|
@@ -73,10 +73,10 @@ export declare abstract class CliTaskResult {
|
|
|
73
73
|
* a specific shell (cmd.exe, PowerShell, sh) must apply shell-specific
|
|
74
74
|
* escaping on top — see {@link cmdEscapeCommandLine}.
|
|
75
75
|
*
|
|
76
|
-
* @param
|
|
76
|
+
* @param $arguments - The array of command-line arguments to convert.
|
|
77
77
|
* @returns A string representing the command-line invocation.
|
|
78
78
|
*/
|
|
79
|
-
export declare function toCommandLine(
|
|
79
|
+
export declare function toCommandLine($arguments: string[]): string;
|
|
80
80
|
/**
|
|
81
81
|
* Converts an array of command-line arguments into a single command-line string
|
|
82
82
|
* quoted for a POSIX shell (`sh`, `bash`, `zsh`, ...).
|
|
@@ -92,10 +92,10 @@ export declare function toCommandLine(args: string[]): string;
|
|
|
92
92
|
* Windows, use {@link toCommandLine} plus {@link cmdEscapeCommandLine} instead —
|
|
93
93
|
* the two conventions are not interchangeable.
|
|
94
94
|
*
|
|
95
|
-
* @param
|
|
95
|
+
* @param $arguments - The array of command-line arguments to convert.
|
|
96
96
|
* @returns A string representing the command-line invocation for a POSIX shell.
|
|
97
97
|
*/
|
|
98
|
-
export declare function toPosixCommandLine(
|
|
98
|
+
export declare function toPosixCommandLine($arguments: string[]): string;
|
|
99
99
|
/**
|
|
100
100
|
* Escapes `cmd.exe` metacharacters with `^` so that `cmd.exe` passes them
|
|
101
101
|
* through literally. This is necessary because `cmd.exe`'s `"` handling
|
|
@@ -117,7 +117,7 @@ export declare function cmdEscapeCommandLine(commandLine: string): string;
|
|
|
117
117
|
* script has to opt in, and each `npm run` sub-step of a composite script (e.g. `build`) carries its own
|
|
118
118
|
* switch.
|
|
119
119
|
*
|
|
120
|
-
* @param
|
|
120
|
+
* @param taskFunction - The task function to execute, which may return a {@link CliTaskResult} or `void`.
|
|
121
121
|
* @returns A {@link Promise} that resolves when the task is completed and exits with the appropriate status.
|
|
122
122
|
*/
|
|
123
|
-
export declare function wrapCliTask(
|
|
123
|
+
export declare function wrapCliTask(taskFunction: () => Promisable<MaybeReturn<CliTaskResult>>): Promise<void>;
|
|
@@ -41,7 +41,7 @@ class CliTaskResult {
|
|
|
41
41
|
return result;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
return
|
|
44
|
+
return this.Success();
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Creates a {@link CliTaskResult} that does not exit the process.
|
|
@@ -129,56 +129,52 @@ class SuccessTaskResult extends CliTaskResult {
|
|
|
129
129
|
return this._isSuccessful;
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
function toCommandLine(
|
|
133
|
-
return
|
|
132
|
+
function toCommandLine($arguments) {
|
|
133
|
+
return $arguments.map((argument) => argvQuote(argument)).join(" ");
|
|
134
134
|
}
|
|
135
|
-
function toPosixCommandLine(
|
|
136
|
-
return
|
|
135
|
+
function toPosixCommandLine($arguments) {
|
|
136
|
+
return $arguments.map((argument) => posixQuote(argument)).join(" ");
|
|
137
137
|
}
|
|
138
138
|
const POSIX_SAFE_ARG_RE = /^[\w@%+=:,./-]+$/;
|
|
139
139
|
const SINGLE_QUOTE_RE = /'/g;
|
|
140
|
-
const POSIX_ESCAPED_SINGLE_QUOTE =
|
|
141
|
-
function argvQuote(
|
|
142
|
-
if (
|
|
143
|
-
return
|
|
140
|
+
const POSIX_ESCAPED_SINGLE_QUOTE = String.raw`'\''`;
|
|
141
|
+
function argvQuote(argument) {
|
|
142
|
+
if (argument.length > 0 && !/[\s\t\n\v"]/.test(argument)) {
|
|
143
|
+
return argument;
|
|
144
144
|
}
|
|
145
145
|
const BACKSLASH_ESCAPE_FACTOR = 2;
|
|
146
146
|
let result = '"';
|
|
147
|
-
for (let
|
|
148
|
-
let
|
|
149
|
-
while (
|
|
150
|
-
|
|
151
|
-
|
|
147
|
+
for (let index = 0; index < argument.length; index++) {
|
|
148
|
+
let numberBackslashes = 0;
|
|
149
|
+
while (index < argument.length && argument[index] === "\\") {
|
|
150
|
+
index++;
|
|
151
|
+
numberBackslashes++;
|
|
152
152
|
}
|
|
153
|
-
if (
|
|
154
|
-
result += "\\".repeat(
|
|
153
|
+
if (index === argument.length) {
|
|
154
|
+
result += "\\".repeat(numberBackslashes * BACKSLASH_ESCAPE_FACTOR);
|
|
155
155
|
break;
|
|
156
156
|
}
|
|
157
|
-
const ch =
|
|
158
|
-
|
|
159
|
-
result += `${"\\".repeat(numBackslashes * BACKSLASH_ESCAPE_FACTOR + 1)}"`;
|
|
160
|
-
} else {
|
|
161
|
-
result += "\\".repeat(numBackslashes) + ch;
|
|
162
|
-
}
|
|
157
|
+
const ch = argument.charAt(index);
|
|
158
|
+
result += ch === '"' ? `${"\\".repeat(numberBackslashes * BACKSLASH_ESCAPE_FACTOR + 1)}"` : "\\".repeat(numberBackslashes) + ch;
|
|
163
159
|
}
|
|
164
160
|
result += '"';
|
|
165
161
|
return result;
|
|
166
162
|
}
|
|
167
|
-
function posixQuote(
|
|
168
|
-
if (POSIX_SAFE_ARG_RE.test(
|
|
169
|
-
return
|
|
163
|
+
function posixQuote(argument) {
|
|
164
|
+
if (POSIX_SAFE_ARG_RE.test(argument)) {
|
|
165
|
+
return argument;
|
|
170
166
|
}
|
|
171
|
-
return `'${replaceAll({ replacer: POSIX_ESCAPED_SINGLE_QUOTE, searchValue: SINGLE_QUOTE_RE
|
|
167
|
+
return `'${replaceAll({ $string: argument, replacer: POSIX_ESCAPED_SINGLE_QUOTE, searchValue: SINGLE_QUOTE_RE })}'`;
|
|
172
168
|
}
|
|
173
169
|
const CMD_META_RE = /[()%!^"<>&|]/g;
|
|
174
170
|
function cmdEscapeCommandLine(commandLine) {
|
|
175
171
|
return replaceAll({
|
|
172
|
+
$string: commandLine,
|
|
176
173
|
replacer: "^$&",
|
|
177
|
-
searchValue: CMD_META_RE
|
|
178
|
-
str: commandLine
|
|
174
|
+
searchValue: CMD_META_RE
|
|
179
175
|
});
|
|
180
176
|
}
|
|
181
|
-
async function wrapCliTask(
|
|
177
|
+
async function wrapCliTask(taskFunction) {
|
|
182
178
|
const disabledScriptEnvVariableName = getDisabledScriptEnvVariableName();
|
|
183
179
|
if (disabledScriptEnvVariableName !== null) {
|
|
184
180
|
process.stdout.write(`Skipped (${disabledScriptEnvVariableName} is off).
|
|
@@ -187,12 +183,12 @@ async function wrapCliTask(taskFn) {
|
|
|
187
183
|
return;
|
|
188
184
|
}
|
|
189
185
|
enableLibraryDebuggers();
|
|
190
|
-
const result = await wrapResult(
|
|
186
|
+
const result = await wrapResult(taskFunction);
|
|
191
187
|
result.exit();
|
|
192
188
|
}
|
|
193
|
-
async function wrapResult(
|
|
189
|
+
async function wrapResult(taskFunction) {
|
|
194
190
|
try {
|
|
195
|
-
return await
|
|
191
|
+
return await taskFunction() ?? CliTaskResult.Success();
|
|
196
192
|
} catch (error) {
|
|
197
193
|
printError(new Error("An error occurred during task execution", { cause: error }));
|
|
198
194
|
return CliTaskResult.Failure();
|
|
@@ -205,4 +201,4 @@ export {
|
|
|
205
201
|
toPosixCommandLine,
|
|
206
202
|
wrapCliTask
|
|
207
203
|
};
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9jbGktdXRpbHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgdGFzayByZXN1bHRzLCBpbmNsdWRpbmdcbiAqIHN1Y2Nlc3MsIGV4aXQgY29kZXMsIGFuZCBjaGFpbmluZyBtdWx0aXBsZSB0YXNrcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUmV0dXJuIH0gZnJvbSAnLi4vdHlwZS50cyc7XG5cbmltcG9ydCB7IGVuYWJsZUxpYnJhcnlEZWJ1Z2dlcnMgfSBmcm9tICcuLi9kZWJ1Zy50cyc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi9zdHJpbmcudHMnO1xuaW1wb3J0IHsgZ2V0RGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWUgfSBmcm9tICcuL2Vudi10b2dnbGUudHMnO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0IG9mIGEgdGFzay4gSW5jbHVkZXMgbWV0aG9kcyBmb3IgaGFuZGxpbmcgc3VjY2VzcyxcbiAqIGV4aXQgY29kZXMsIGFuZCBjaGFpbmluZyB0YXNrcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsaVRhc2tSZXN1bHQge1xuICAvKipcbiAgICogQ2hhaW5zIG11bHRpcGxlIHRhc2tzIHRvZ2V0aGVyLCBleGVjdXRpbmcgdGhlbSBzZXF1ZW50aWFsbHkgdW50aWwgb25lIGZhaWxzLlxuICAgKlxuICAgKiBAcGFyYW0gdGFza3MgLSBBbiBhcnJheSBvZiB0YXNrIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBvciBgdm9pZGAuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgZmlyc3QgZmFpbGVkIHtAbGluayBDbGlUYXNrUmVzdWx0fSBvciBhIHN1Y2Nlc3MgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBjaGFpbih0YXNrczogKCgpID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48Q2xpVGFza1Jlc3VsdD4+KVtdKTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gICAgZm9yIChjb25zdCB0YXNrIG9mIHRhc2tzKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3cmFwUmVzdWx0KHRhc2spO1xuICAgICAgaWYgKCFyZXN1bHQuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gQ2xpVGFza1Jlc3VsdC5TdWNjZXNzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSB0aGF0IGRvZXMgbm90IGV4aXQgdGhlIHByb2Nlc3MuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIENsaVRhc2tSZXN1bHR9IHRoYXQgZG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRG9Ob3RFeGl0KCk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiBuZXcgRG9Ob3RFeGl0VGFza1Jlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZmFpbHVyZSByZXN1bHQgb2YgYSBDTEkgdGFzay5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGZhaWx1cmUgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBGYWlsdXJlKCk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLlN1Y2Nlc3MoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gYmFzZWQgb24gYW4gZXhpdCBjb2RlLlxuICAgKlxuICAgKiBAcGFyYW0gZXhpdENvZGUgLSBUaGUgZXhpdCBjb2RlIHRvIHJlcHJlc2VudC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gcmVwcmVzZW50aW5nIHRoZSBleGl0IGNvZGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEZyb21FeGl0Q29kZShleGl0Q29kZTogbnVtYmVyKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIG5ldyBFeGl0Q29kZVRhc2tSZXN1bHQoZXhpdENvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbGlUYXNrUmVzdWx0IHJlcHJlc2VudGluZyBhIHN1Y2Nlc3NmdWwgdGFzayByZXN1bHQuXG4gICAqXG4gICAqIEBwYXJhbSBpc1N1Y2Nlc3MgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB0YXNrIHdhcyBzdWNjZXNzZnVsLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICogQHJldHVybnMgQSBDbGlUYXNrUmVzdWx0IG9iamVjdCByZXByZXNlbnRpbmcgYSBzdWNjZXNzZnVsIHRhc2sgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBTdWNjZXNzKGlzU3VjY2VzcyA9IHRydWUpOiBDbGlUYXNrUmVzdWx0IHtcbiAgICByZXR1cm4gbmV3IFN1Y2Nlc3NUYXNrUmVzdWx0KGlzU3VjY2Vzcyk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3MgYmFzZWQgb24gdGhlIHRhc2sgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGV4aXQoKTogdm9pZDtcblxuICAvKipcbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSB0YXNrIHdhcyBub3Qgc3VjY2Vzc2Z1bC5cbiAgICovXG4gIHB1YmxpYyB0aHJvd09uRmFpbHVyZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGFzayBmYWlsZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgdGFzayB3YXMgc3VjY2Vzc2Z1bC5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB0YXNrIHdhcyBzdWNjZXNzZnVsLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIHRhc2sgcmVzdWx0IHRoYXQgZG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAqL1xuY2xhc3MgRG9Ob3RFeGl0VGFza1Jlc3VsdCBleHRlbmRzIENsaVRhc2tSZXN1bHQge1xuICAvKipcbiAgICogRG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBleGl0KCk6IHZvaWQge1xuICAgIG5vb3AoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHRhc2sgcmVzdWx0IGJhc2VkIG9uIGFuIGV4aXQgY29kZS5cbiAqL1xuY2xhc3MgRXhpdENvZGVUYXNrUmVzdWx0IGV4dGVuZHMgQ2xpVGFza1Jlc3VsdCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGV4aXRDb2RlOiBudW1iZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4aXRzIHRoZSBwcm9jZXNzIHdpdGggdGhlIHNwZWNpZmllZCBleGl0IGNvZGUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZXhpdCgpOiB2b2lkIHtcbiAgICBwcm9jZXNzLmV4aXQodGhpcy5leGl0Q29kZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNTdWNjZXNzZnVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4aXRDb2RlID09PSAwO1xuICB9XG59XG5cbi8qKlxuICogQSB0YXNrIHJlc3VsdCBiYXNlZCBvbiBzdWNjZXNzIG9yIGZhaWx1cmUuXG4gKi9cbmNsYXNzIFN1Y2Nlc3NUYXNrUmVzdWx0IGV4dGVuZHMgQ2xpVGFza1Jlc3VsdCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9pc1N1Y2Nlc3NmdWw6IGJvb2xlYW4pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4aXRzIHRoZSBwcm9jZXNzIGJhc2VkIG9uIHRoZSBzdWNjZXNzIG9mIHRoZSB0YXNrLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGV4aXQoKTogdm9pZCB7XG4gICAgcHJvY2Vzcy5leGl0KHRoaXMuX2lzU3VjY2Vzc2Z1bCA/IDAgOiAxKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzU3VjY2Vzc2Z1bDtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIGFycmF5IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgaW50byBhIHNpbmdsZSBjb21tYW5kLWxpbmUgc3RyaW5nXG4gKiB1c2luZyB0aGUgYENvbW1hbmRMaW5lVG9Bcmd2V2AgY29udmVudGlvbiAodGhlIHN0YW5kYXJkIHVzZWQgYnkgdGhlXG4gKiBNaWNyb3NvZnQgQyBydW50aW1lIGFuZCBtb3N0IFdpbmRvd3MgcHJvZ3JhbXMpLlxuICpcbiAqIEltcGxlbWVudHMgdGhlIEFyZ3ZRdW90ZSBhbGdvcml0aG0gZnJvbVxuICoge0BsaW5rIGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9hcmNoaXZlL2Jsb2dzL3R3aXN0eWxpdHRsZXBhc3NhZ2VzYWxsYWxpa2UvZXZlcnlvbmUtcXVvdGVzLWNvbW1hbmQtbGluZS1hcmd1bWVudHMtdGhlLXdyb25nLXdheSB8IEV2ZXJ5b25lIHF1b3RlcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRoZSB3cm9uZyB3YXl9OlxuICogYmFja3NsYXNoZXMgYmVmb3JlIHF1b3RlcyBhbmQgYXQgdGhlIGVuZCBvZiBhIHF1b3RlZCBhcmd1bWVudCBhcmUgZG91YmxlZC5cbiAqXG4gKiBUaGlzIHByb2R1Y2VzIGEgc2hlbGwtYWdub3N0aWMgY29tbWFuZCBsaW5lLiBDYWxsZXJzIHRoYXQgcm91dGUgdGhyb3VnaFxuICogYSBzcGVjaWZpYyBzaGVsbCAoY21kLmV4ZSwgUG93ZXJTaGVsbCwgc2gpIG11c3QgYXBwbHkgc2hlbGwtc3BlY2lmaWNcbiAqIGVzY2FwaW5nIG9uIHRvcCBcdTIwMTQgc2VlIHtAbGluayBjbWRFc2NhcGVDb21tYW5kTGluZX0uXG4gKlxuICogQHBhcmFtIGFyZ3MgLSBUaGUgYXJyYXkgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb21tYW5kLWxpbmUgaW52b2NhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ29tbWFuZExpbmUoYXJnczogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gYXJncy5tYXAoKGFyZykgPT4gYXJndlF1b3RlKGFyZykpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGludG8gYSBzaW5nbGUgY29tbWFuZC1saW5lIHN0cmluZ1xuICogcXVvdGVkIGZvciBhIFBPU0lYIHNoZWxsIChgc2hgLCBgYmFzaGAsIGB6c2hgLCAuLi4pLlxuICpcbiAqIEVhY2ggYXJndW1lbnQgaXMgd3JhcHBlZCBpbiBzaW5nbGUgcXVvdGVzIHVubGVzcyBpdCBjb25zaXN0cyBzb2xlbHkgb2ZcbiAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2FmZSB1bnF1b3RlZCwgbWlycm9yaW5nIFB5dGhvbidzIGBzaGxleC5xdW90ZWAuIEEgbGl0ZXJhbFxuICogc2luZ2xlIHF1b3RlIGluc2lkZSBhbiBhcmd1bWVudCBpcyBlbWl0dGVkIGFzIHRoZSBgJ1xcJydgIGlkaW9tIChjbG9zZSB0aGVcbiAqIHF1b3RlZCBzcGFuLCBhZGQgYW4gZXNjYXBlZCBsaXRlcmFsIHF1b3RlLCByZW9wZW4pLCBzbyB0aGUgc2hlbGwgcmVwcm9kdWNlcyB0aGVcbiAqIGFyZ3VtZW50IHZlcmJhdGltIFx1MjAxNCBubyB2YXJpYWJsZSBleHBhbnNpb24gKGAkYCksIGNvbW1hbmQgc3Vic3RpdHV0aW9uXG4gKiAoYGAgYCBgYCksIGdsb2JiaW5nIChgKmAsIGA/YCwgYFtgKSwgb3Igd29yZCBzcGxpdHRpbmcuXG4gKlxuICogVXNlIHRoaXMgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkIHRocm91Z2ggYHNoIC1jYC4gT25cbiAqIFdpbmRvd3MsIHVzZSB7QGxpbmsgdG9Db21tYW5kTGluZX0gcGx1cyB7QGxpbmsgY21kRXNjYXBlQ29tbWFuZExpbmV9IGluc3RlYWQgXHUyMDE0XG4gKiB0aGUgdHdvIGNvbnZlbnRpb25zIGFyZSBub3QgaW50ZXJjaGFuZ2VhYmxlLlxuICpcbiAqIEBwYXJhbSBhcmdzIC0gVGhlIGFycmF5IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29tbWFuZC1saW5lIGludm9jYXRpb24gZm9yIGEgUE9TSVggc2hlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4Q29tbWFuZExpbmUoYXJnczogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gYXJncy5tYXAoKGFyZykgPT4gcG9zaXhRdW90ZShhcmcpKS5qb2luKCcgJyk7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBhbiBhcmd1bWVudCB0aGF0IGlzIGVudGlyZWx5IGNvbXBvc2VkIG9mIGNoYXJhY3RlcnMgc2FmZSB0byBwYXNzIHRvIGFcbiAqIFBPU0lYIHNoZWxsIHVucXVvdGVkLiBNaXJyb3JzIHRoZSBzYWZlIHNldCB1c2VkIGJ5IFB5dGhvbidzIGBzaGxleC5xdW90ZWAuXG4gKi9cbmNvbnN0IFBPU0lYX1NBRkVfQVJHX1JFID0gL15bXFx3QCUrPTosLi8tXSskLztcblxuLyoqXG4gKiBNYXRjaGVzIGEgbGl0ZXJhbCBzaW5nbGUgcXVvdGUsIGZvciByZXBsYWNpbmcgaXQgd2l0aCB0aGUgYCdcXCcnYCBpZGlvbS5cbiAqL1xuY29uc3QgU0lOR0xFX1FVT1RFX1JFID0gLycvZztcblxuLyoqXG4gKiBUaGUgcmVwbGFjZW1lbnQgZm9yIGEgbGl0ZXJhbCBzaW5nbGUgcXVvdGUgaW5zaWRlIGEgc2luZ2xlLXF1b3RlZCBQT1NJWCBzcGFuOlxuICogY2xvc2UgdGhlIHNwYW4sIGFkZCBhbiBlc2NhcGVkIGxpdGVyYWwgcXVvdGUsIHJlb3BlbiB0aGUgc3Bhbi5cbiAqL1xuY29uc3QgUE9TSVhfRVNDQVBFRF9TSU5HTEVfUVVPVEUgPSAnXFwnXFxcXFxcJ1xcJyc7XG5cbi8qKlxuICogUXVvdGVzIGEgc2luZ2xlIGFyZ3VtZW50IHNvIHRoYXQgYENvbW1hbmRMaW5lVG9Bcmd2V2Agd2lsbCBkZWNvZGUgaXRcbiAqIHVuY2hhbmdlZC4gSW1wbGVtZW50cyB0aGUgQXJndlF1b3RlIGFsZ29yaXRobSBmcm9tXG4gKiB7QGxpbmsgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2FyY2hpdmUvYmxvZ3MvdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS9ldmVyeW9uZS1xdW90ZXMtY29tbWFuZC1saW5lLWFyZ3VtZW50cy10aGUtd3Jvbmctd2F5IHwgRXZlcnlvbmUgcXVvdGVzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdGhlIHdyb25nIHdheX0uXG4gKlxuICogQHBhcmFtIGFyZyAtIFRoZSByYXcgYXJndW1lbnQgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHF1b3RlZCBhcmd1bWVudCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGFyZ3ZRdW90ZShhcmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChhcmcubGVuZ3RoID4gMCAmJiAhL1tcXHNcXHRcXG5cXHZcIl0vLnRlc3QoYXJnKSkge1xuICAgIHJldHVybiBhcmc7XG4gIH1cblxuICBjb25zdCBCQUNLU0xBU0hfRVNDQVBFX0ZBQ1RPUiA9IDI7XG4gIGxldCByZXN1bHQgPSAnXCInO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBudW1CYWNrc2xhc2hlcyA9IDA7XG4gICAgd2hpbGUgKGkgPCBhcmcubGVuZ3RoICYmIGFyZ1tpXSA9PT0gJ1xcXFwnKSB7XG4gICAgICBpKys7XG4gICAgICBudW1CYWNrc2xhc2hlcysrO1xuICAgIH1cblxuICAgIGlmIChpID09PSBhcmcubGVuZ3RoKSB7XG4gICAgICByZXN1bHQgKz0gJ1xcXFwnLnJlcGVhdChudW1CYWNrc2xhc2hlcyAqIEJBQ0tTTEFTSF9FU0NBUEVfRkFDVE9SKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGNoID0gYXJnLmNoYXJBdChpKTtcbiAgICBpZiAoY2ggPT09ICdcIicpIHtcbiAgICAgIHJlc3VsdCArPSBgJHsnXFxcXCcucmVwZWF0KG51bUJhY2tzbGFzaGVzICogQkFDS1NMQVNIX0VTQ0FQRV9GQUNUT1IgKyAxKX1cImA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCArPSAnXFxcXCcucmVwZWF0KG51bUJhY2tzbGFzaGVzKSArIGNoO1xuICAgIH1cbiAgfVxuXG4gIHJlc3VsdCArPSAnXCInO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFF1b3RlcyBhIHNpbmdsZSBhcmd1bWVudCBmb3IgYSBQT1NJWCBzaGVsbCBzbyBpdCBpcyBwYXNzZWQgdGhyb3VnaCB2ZXJiYXRpbS5cbiAqIEFuIGVtcHR5IGFyZ3VtZW50IGJlY29tZXMgYCcnYDsgYW4gYXJndW1lbnQgb2Ygb25seSBzYWZlIGNoYXJhY3RlcnMgaXNcbiAqIHJldHVybmVkIHVuY2hhbmdlZDsgYW55dGhpbmcgZWxzZSBpcyBzaW5nbGUtcXVvdGVkLlxuICpcbiAqIEBwYXJhbSBhcmcgLSBUaGUgcmF3IGFyZ3VtZW50IHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBxdW90ZWQgYXJndW1lbnQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBwb3NpeFF1b3RlKGFyZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKFBPU0lYX1NBRkVfQVJHX1JFLnRlc3QoYXJnKSkge1xuICAgIHJldHVybiBhcmc7XG4gIH1cbiAgcmV0dXJuIGAnJHtyZXBsYWNlQWxsKHsgcmVwbGFjZXI6IFBPU0lYX0VTQ0FQRURfU0lOR0xFX1FVT1RFLCBzZWFyY2hWYWx1ZTogU0lOR0xFX1FVT1RFX1JFLCBzdHI6IGFyZyB9KX0nYDtcbn1cblxuLyoqXG4gKiBNYXRjaGVzIGBjbWQuZXhlYCBtZXRhY2hhcmFjdGVycyB0aGF0IG11c3QgYmUgYF5gLWVzY2FwZWQuXG4gKi9cbmNvbnN0IENNRF9NRVRBX1JFID0gL1soKSUhXlwiPD4mfF0vZztcblxuLyoqXG4gKiBFc2NhcGVzIGBjbWQuZXhlYCBtZXRhY2hhcmFjdGVycyB3aXRoIGBeYCBzbyB0aGF0IGBjbWQuZXhlYCBwYXNzZXMgdGhlbVxuICogdGhyb3VnaCBsaXRlcmFsbHkuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgYGNtZC5leGVgJ3MgYFwiYCBoYW5kbGluZ1xuICogZGlmZmVycyBmcm9tIGBDb21tYW5kTGluZVRvQXJndldgIGFuZCBjYW5ub3QgYmUgcmVsaWVkIHVwb24uXG4gKlxuICogQXBwbHkgdGhpcyB0byBhIGNvbW1hbmQgbGluZSBzdHJpbmcgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHZpYSBgY21kLmV4ZWBcbiAqIChlLmcuLCBgc3Bhd24oY21kLCBbXSwgeyBzaGVsbDogdHJ1ZSB9KWAgb24gV2luZG93cykuXG4gKlxuICogQHBhcmFtIGNvbW1hbmRMaW5lIC0gVGhlIGFscmVhZHktcXVvdGVkIGNvbW1hbmQgbGluZSBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgc3RyaW5nIHdpdGggYWxsIGNtZCBtZXRhY2hhcmFjdGVycyBgXmAtZXNjYXBlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNtZEVzY2FwZUNvbW1hbmRMaW5lKGNvbW1hbmRMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVwbGFjZUFsbCh7XG4gICAgcmVwbGFjZXI6ICdeJCYnLFxuICAgIHNlYXJjaFZhbHVlOiBDTURfTUVUQV9SRSxcbiAgICBzdHI6IGNvbW1hbmRMaW5lXG4gIH0pO1xufVxuXG4vKipcbiAqIFdyYXBzIGEgQ0xJIHRhc2sgZnVuY3Rpb24gdG8gZW5zdXJlIGl0IHJ1bnMgc2FmZWx5IGFuZCBoYW5kbGVzIGl0cyB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0uXG4gKlxuICogSG9ub3JzIHRoZSBwZXItc2NyaXB0IG9mZiBzd2l0Y2ggZmlyc3Q6IHdoZW4gdGhlIG5wbSBzY3JpcHQgY3VycmVudGx5IHJ1bm5pbmcgaGFzIGJlZW4gc3dpdGNoZWQgb2ZmIFx1MjAxNFxuICogYExJTlRfTUQ9MCBucG0gcnVuIGxpbnQ6bWRgLCBzZWUge0BsaW5rIGdldERpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lfSBcdTIwMTQgdGhlIHRhc2sgaXMgbm90IGV4ZWN1dGVkIGFuZFxuICogdGhlIHByb2Nlc3MgZXhpdHMgc3VjY2Vzc2Z1bGx5LiBCZWNhdXNlIGV2ZXJ5IGBzY3JpcHRzLyoudHNgIGVudHJ5IHBvaW50IGFscmVhZHkgZnVubmVscyB0aHJvdWdoIGhlcmUsIG5vXG4gKiBzY3JpcHQgaGFzIHRvIG9wdCBpbiwgYW5kIGVhY2ggYG5wbSBydW5gIHN1Yi1zdGVwIG9mIGEgY29tcG9zaXRlIHNjcmlwdCAoZS5nLiBgYnVpbGRgKSBjYXJyaWVzIGl0cyBvd25cbiAqIHN3aXRjaC5cbiAqXG4gKiBAcGFyYW0gdGFza0ZuIC0gVGhlIHRhc2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSwgd2hpY2ggbWF5IHJldHVybiBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBvciBgdm9pZGAuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRhc2sgaXMgY29tcGxldGVkIGFuZCBleGl0cyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzdGF0dXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cmFwQ2xpVGFzayh0YXNrRm46ICgpID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48Q2xpVGFza1Jlc3VsdD4+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lID0gZ2V0RGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWUoKTtcbiAgaWYgKGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lICE9PSBudWxsKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYFNraXBwZWQgKCR7ZGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWV9IGlzIG9mZikuXFxuYCk7XG4gICAgQ2xpVGFza1Jlc3VsdC5TdWNjZXNzKCkuZXhpdCgpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGVuYWJsZUxpYnJhcnlEZWJ1Z2dlcnMoKTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgd3JhcFJlc3VsdCh0YXNrRm4pO1xuICByZXN1bHQuZXhpdCgpO1xufVxuXG4vKipcbiAqIFNhZmVseSBleGVjdXRlcyBhIHRhc2sgZnVuY3Rpb24gYW5kIHJldHVybnMgYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0uIElmIHRoZSB0YXNrIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvcixcbiAqIEFuIGVycm9yIGlzIGNhdWdodCwgYW5kIGEgZmFpbHVyZSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHRhc2tGbiAtIFRoZSB0YXNrIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gcmVwcmVzZW50aW5nIHRoZSBvdXRjb21lIG9mIHRoZSB0YXNrLlxuICovXG5hc3luYyBmdW5jdGlvbiB3cmFwUmVzdWx0KHRhc2tGbjogKCkgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxDbGlUYXNrUmVzdWx0Pj4pOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKGF3YWl0IHRhc2tGbigpKSBhcyBDbGlUYXNrUmVzdWx0IHwgdW5kZWZpbmVkID8/IENsaVRhc2tSZXN1bHQuU3VjY2VzcygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IobmV3IEVycm9yKCdBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGFzayBleGVjdXRpb24nLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgcmV0dXJuIENsaVRhc2tSZXN1bHQuRmFpbHVyZSgpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBLE9BQU8sYUFBYTtBQUlwQixTQUFTLDhCQUE4QjtBQUN2QyxTQUFTLGtCQUFrQjtBQUMzQixTQUFTLFlBQVk7QUFDckIsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyx3Q0FBd0M7QUFNMUMsTUFBZSxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPbEMsYUFBb0IsTUFBTSxPQUFpRjtBQUN6RyxlQUFXLFFBQVEsT0FBTztBQUN4QixZQUFNLFNBQVMsTUFBTSxXQUFXLElBQUk7QUFDcEMsVUFBSSxDQUFDLE9BQU8sYUFBYSxHQUFHO0FBQzFCLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUVBLFdBQU8sY0FBYyxRQUFRO0FBQUEsRUFDL0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPQSxP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
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9jbGktdXRpbHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgdGFzayByZXN1bHRzLCBpbmNsdWRpbmdcbiAqIHN1Y2Nlc3MsIGV4aXQgY29kZXMsIGFuZCBjaGFpbmluZyBtdWx0aXBsZSB0YXNrcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUmV0dXJuIH0gZnJvbSAnLi4vdHlwZS50cyc7XG5cbmltcG9ydCB7IGVuYWJsZUxpYnJhcnlEZWJ1Z2dlcnMgfSBmcm9tICcuLi9kZWJ1Zy50cyc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnLi4vZXJyb3IudHMnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL2Z1bmN0aW9uLnRzJztcbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi9zdHJpbmcudHMnO1xuaW1wb3J0IHsgZ2V0RGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWUgfSBmcm9tICcuL2Vudi10b2dnbGUudHMnO1xuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0IG9mIGEgdGFzay4gSW5jbHVkZXMgbWV0aG9kcyBmb3IgaGFuZGxpbmcgc3VjY2VzcyxcbiAqIGV4aXQgY29kZXMsIGFuZCBjaGFpbmluZyB0YXNrcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsaVRhc2tSZXN1bHQge1xuICAvKipcbiAgICogQ2hhaW5zIG11bHRpcGxlIHRhc2tzIHRvZ2V0aGVyLCBleGVjdXRpbmcgdGhlbSBzZXF1ZW50aWFsbHkgdW50aWwgb25lIGZhaWxzLlxuICAgKlxuICAgKiBAcGFyYW0gdGFza3MgLSBBbiBhcnJheSBvZiB0YXNrIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBvciBgdm9pZGAuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgZmlyc3QgZmFpbGVkIHtAbGluayBDbGlUYXNrUmVzdWx0fSBvciBhIHN1Y2Nlc3MgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhc3luYyBjaGFpbih0YXNrczogKCgpID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48Q2xpVGFza1Jlc3VsdD4+KVtdKTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gICAgZm9yIChjb25zdCB0YXNrIG9mIHRhc2tzKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3cmFwUmVzdWx0KHRhc2spO1xuICAgICAgaWYgKCFyZXN1bHQuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5TdWNjZXNzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSB0aGF0IGRvZXMgbm90IGV4aXQgdGhlIHByb2Nlc3MuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIENsaVRhc2tSZXN1bHR9IHRoYXQgZG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRG9Ob3RFeGl0KCk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiBuZXcgRG9Ob3RFeGl0VGFza1Jlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZmFpbHVyZSByZXN1bHQgb2YgYSBDTEkgdGFzay5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGZhaWx1cmUgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBGYWlsdXJlKCk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLlN1Y2Nlc3MoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gYmFzZWQgb24gYW4gZXhpdCBjb2RlLlxuICAgKlxuICAgKiBAcGFyYW0gZXhpdENvZGUgLSBUaGUgZXhpdCBjb2RlIHRvIHJlcHJlc2VudC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gcmVwcmVzZW50aW5nIHRoZSBleGl0IGNvZGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEZyb21FeGl0Q29kZShleGl0Q29kZTogbnVtYmVyKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIG5ldyBFeGl0Q29kZVRhc2tSZXN1bHQoZXhpdENvZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbGlUYXNrUmVzdWx0IHJlcHJlc2VudGluZyBhIHN1Y2Nlc3NmdWwgdGFzayByZXN1bHQuXG4gICAqXG4gICAqIEBwYXJhbSBpc1N1Y2Nlc3MgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB0YXNrIHdhcyBzdWNjZXNzZnVsLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICogQHJldHVybnMgQSBDbGlUYXNrUmVzdWx0IG9iamVjdCByZXByZXNlbnRpbmcgYSBzdWNjZXNzZnVsIHRhc2sgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBTdWNjZXNzKGlzU3VjY2VzcyA9IHRydWUpOiBDbGlUYXNrUmVzdWx0IHtcbiAgICByZXR1cm4gbmV3IFN1Y2Nlc3NUYXNrUmVzdWx0KGlzU3VjY2Vzcyk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3MgYmFzZWQgb24gdGhlIHRhc2sgcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGV4aXQoKTogdm9pZDtcblxuICAvKipcbiAgICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSB0YXNrIHdhcyBub3Qgc3VjY2Vzc2Z1bC5cbiAgICovXG4gIHB1YmxpYyB0aHJvd09uRmFpbHVyZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGFzayBmYWlsZWQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgdGFzayB3YXMgc3VjY2Vzc2Z1bC5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB0YXNrIHdhcyBzdWNjZXNzZnVsLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIHRhc2sgcmVzdWx0IHRoYXQgZG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAqL1xuY2xhc3MgRG9Ob3RFeGl0VGFza1Jlc3VsdCBleHRlbmRzIENsaVRhc2tSZXN1bHQge1xuICAvKipcbiAgICogRG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBleGl0KCk6IHZvaWQge1xuICAgIG5vb3AoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHRhc2sgcmVzdWx0IGJhc2VkIG9uIGFuIGV4aXQgY29kZS5cbiAqL1xuY2xhc3MgRXhpdENvZGVUYXNrUmVzdWx0IGV4dGVuZHMgQ2xpVGFza1Jlc3VsdCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGV4aXRDb2RlOiBudW1iZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4aXRzIHRoZSBwcm9jZXNzIHdpdGggdGhlIHNwZWNpZmllZCBleGl0IGNvZGUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZXhpdCgpOiB2b2lkIHtcbiAgICBwcm9jZXNzLmV4aXQodGhpcy5leGl0Q29kZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaXNTdWNjZXNzZnVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV4aXRDb2RlID09PSAwO1xuICB9XG59XG5cbi8qKlxuICogQSB0YXNrIHJlc3VsdCBiYXNlZCBvbiBzdWNjZXNzIG9yIGZhaWx1cmUuXG4gKi9cbmNsYXNzIFN1Y2Nlc3NUYXNrUmVzdWx0IGV4dGVuZHMgQ2xpVGFza1Jlc3VsdCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9pc1N1Y2Nlc3NmdWw6IGJvb2xlYW4pIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4aXRzIHRoZSBwcm9jZXNzIGJhc2VkIG9uIHRoZSBzdWNjZXNzIG9mIHRoZSB0YXNrLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGV4aXQoKTogdm9pZCB7XG4gICAgcHJvY2Vzcy5leGl0KHRoaXMuX2lzU3VjY2Vzc2Z1bCA/IDAgOiAxKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzU3VjY2Vzc2Z1bDtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIGFycmF5IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgaW50byBhIHNpbmdsZSBjb21tYW5kLWxpbmUgc3RyaW5nXG4gKiB1c2luZyB0aGUgYENvbW1hbmRMaW5lVG9Bcmd2V2AgY29udmVudGlvbiAodGhlIHN0YW5kYXJkIHVzZWQgYnkgdGhlXG4gKiBNaWNyb3NvZnQgQyBydW50aW1lIGFuZCBtb3N0IFdpbmRvd3MgcHJvZ3JhbXMpLlxuICpcbiAqIEltcGxlbWVudHMgdGhlIEFyZ3ZRdW90ZSBhbGdvcml0aG0gZnJvbVxuICoge0BsaW5rIGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9hcmNoaXZlL2Jsb2dzL3R3aXN0eWxpdHRsZXBhc3NhZ2VzYWxsYWxpa2UvZXZlcnlvbmUtcXVvdGVzLWNvbW1hbmQtbGluZS1hcmd1bWVudHMtdGhlLXdyb25nLXdheSB8IEV2ZXJ5b25lIHF1b3RlcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRoZSB3cm9uZyB3YXl9OlxuICogYmFja3NsYXNoZXMgYmVmb3JlIHF1b3RlcyBhbmQgYXQgdGhlIGVuZCBvZiBhIHF1b3RlZCBhcmd1bWVudCBhcmUgZG91YmxlZC5cbiAqXG4gKiBUaGlzIHByb2R1Y2VzIGEgc2hlbGwtYWdub3N0aWMgY29tbWFuZCBsaW5lLiBDYWxsZXJzIHRoYXQgcm91dGUgdGhyb3VnaFxuICogYSBzcGVjaWZpYyBzaGVsbCAoY21kLmV4ZSwgUG93ZXJTaGVsbCwgc2gpIG11c3QgYXBwbHkgc2hlbGwtc3BlY2lmaWNcbiAqIGVzY2FwaW5nIG9uIHRvcCBcdTIwMTQgc2VlIHtAbGluayBjbWRFc2NhcGVDb21tYW5kTGluZX0uXG4gKlxuICogQHBhcmFtICRhcmd1bWVudHMgLSBUaGUgYXJyYXkgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjb21tYW5kLWxpbmUgaW52b2NhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQ29tbWFuZExpbmUoJGFyZ3VtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gJGFyZ3VtZW50cy5tYXAoKGFyZ3VtZW50KSA9PiBhcmd2UXVvdGUoYXJndW1lbnQpKS5qb2luKCcgJyk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXJyYXkgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBpbnRvIGEgc2luZ2xlIGNvbW1hbmQtbGluZSBzdHJpbmdcbiAqIHF1b3RlZCBmb3IgYSBQT1NJWCBzaGVsbCAoYHNoYCwgYGJhc2hgLCBgenNoYCwgLi4uKS5cbiAqXG4gKiBFYWNoIGFyZ3VtZW50IGlzIHdyYXBwZWQgaW4gc2luZ2xlIHF1b3RlcyB1bmxlc3MgaXQgY29uc2lzdHMgc29sZWx5IG9mXG4gKiBjaGFyYWN0ZXJzIHRoYXQgYXJlIHNhZmUgdW5xdW90ZWQsIG1pcnJvcmluZyBQeXRob24ncyBgc2hsZXgucXVvdGVgLiBBIGxpdGVyYWxcbiAqIHNpbmdsZSBxdW90ZSBpbnNpZGUgYW4gYXJndW1lbnQgaXMgZW1pdHRlZCBhcyB0aGUgYCdcXCcnYCBpZGlvbSAoY2xvc2UgdGhlXG4gKiBxdW90ZWQgc3BhbiwgYWRkIGFuIGVzY2FwZWQgbGl0ZXJhbCBxdW90ZSwgcmVvcGVuKSwgc28gdGhlIHNoZWxsIHJlcHJvZHVjZXMgdGhlXG4gKiBhcmd1bWVudCB2ZXJiYXRpbSBcdTIwMTQgbm8gdmFyaWFibGUgZXhwYW5zaW9uIChgJGApLCBjb21tYW5kIHN1YnN0aXR1dGlvblxuICogKGBgIGAgYGApLCBnbG9iYmluZyAoYCpgLCBgP2AsIGBbYCksIG9yIHdvcmQgc3BsaXR0aW5nLlxuICpcbiAqIFVzZSB0aGlzIG9uIHBsYXRmb3JtcyB3aGVyZSB0aGUgY29tbWFuZCBpcyBleGVjdXRlZCB0aHJvdWdoIGBzaCAtY2AuIE9uXG4gKiBXaW5kb3dzLCB1c2Uge0BsaW5rIHRvQ29tbWFuZExpbmV9IHBsdXMge0BsaW5rIGNtZEVzY2FwZUNvbW1hbmRMaW5lfSBpbnN0ZWFkIFx1MjAxNFxuICogdGhlIHR3byBjb252ZW50aW9ucyBhcmUgbm90IGludGVyY2hhbmdlYWJsZS5cbiAqXG4gKiBAcGFyYW0gJGFyZ3VtZW50cyAtIFRoZSBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGNvbW1hbmQtbGluZSBpbnZvY2F0aW9uIGZvciBhIFBPU0lYIHNoZWxsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Qb3NpeENvbW1hbmRMaW5lKCRhcmd1bWVudHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuICRhcmd1bWVudHMubWFwKChhcmd1bWVudCkgPT4gcG9zaXhRdW90ZShhcmd1bWVudCkpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBNYXRjaGVzIGFuIGFyZ3VtZW50IHRoYXQgaXMgZW50aXJlbHkgY29tcG9zZWQgb2YgY2hhcmFjdGVycyBzYWZlIHRvIHBhc3MgdG8gYVxuICogUE9TSVggc2hlbGwgdW5xdW90ZWQuIE1pcnJvcnMgdGhlIHNhZmUgc2V0IHVzZWQgYnkgUHl0aG9uJ3MgYHNobGV4LnF1b3RlYC5cbiAqL1xuY29uc3QgUE9TSVhfU0FGRV9BUkdfUkUgPSAvXltcXHdAJSs9OiwuLy1dKyQvO1xuXG4vKipcbiAqIE1hdGNoZXMgYSBsaXRlcmFsIHNpbmdsZSBxdW90ZSwgZm9yIHJlcGxhY2luZyBpdCB3aXRoIHRoZSBgJ1xcJydgIGlkaW9tLlxuICovXG5jb25zdCBTSU5HTEVfUVVPVEVfUkUgPSAvJy9nO1xuXG4vKipcbiAqIFRoZSByZXBsYWNlbWVudCBmb3IgYSBsaXRlcmFsIHNpbmdsZSBxdW90ZSBpbnNpZGUgYSBzaW5nbGUtcXVvdGVkIFBPU0lYIHNwYW46XG4gKiBjbG9zZSB0aGUgc3BhbiwgYWRkIGFuIGVzY2FwZWQgbGl0ZXJhbCBxdW90ZSwgcmVvcGVuIHRoZSBzcGFuLlxuICovXG5jb25zdCBQT1NJWF9FU0NBUEVEX1NJTkdMRV9RVU9URSA9IFN0cmluZy5yYXdgJ1xcJydgO1xuXG4vKipcbiAqIFF1b3RlcyBhIHNpbmdsZSBhcmd1bWVudCBzbyB0aGF0IGBDb21tYW5kTGluZVRvQXJndldgIHdpbGwgZGVjb2RlIGl0XG4gKiB1bmNoYW5nZWQuIEltcGxlbWVudHMgdGhlIEFyZ3ZRdW90ZSBhbGdvcml0aG0gZnJvbVxuICoge0BsaW5rIGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9hcmNoaXZlL2Jsb2dzL3R3aXN0eWxpdHRsZXBhc3NhZ2VzYWxsYWxpa2UvZXZlcnlvbmUtcXVvdGVzLWNvbW1hbmQtbGluZS1hcmd1bWVudHMtdGhlLXdyb25nLXdheSB8IEV2ZXJ5b25lIHF1b3RlcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHRoZSB3cm9uZyB3YXl9LlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudCAtIFRoZSByYXcgYXJndW1lbnQgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHF1b3RlZCBhcmd1bWVudCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGFyZ3ZRdW90ZShhcmd1bWVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGFyZ3VtZW50Lmxlbmd0aCA+IDAgJiYgIS9bXFxzXFx0XFxuXFx2XCJdLy50ZXN0KGFyZ3VtZW50KSkge1xuICAgIHJldHVybiBhcmd1bWVudDtcbiAgfVxuXG4gIGNvbnN0IEJBQ0tTTEFTSF9FU0NBUEVfRkFDVE9SID0gMjtcbiAgbGV0IHJlc3VsdCA9ICdcIic7XG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBhcmd1bWVudC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBsZXQgbnVtYmVyQmFja3NsYXNoZXMgPSAwO1xuICAgIHdoaWxlIChpbmRleCA8IGFyZ3VtZW50Lmxlbmd0aCAmJiBhcmd1bWVudFtpbmRleF0gPT09ICdcXFxcJykge1xuICAgICAgaW5kZXgrKztcbiAgICAgIG51bWJlckJhY2tzbGFzaGVzKys7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ID09PSBhcmd1bWVudC5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdCArPSAnXFxcXCcucmVwZWF0KG51bWJlckJhY2tzbGFzaGVzICogQkFDS1NMQVNIX0VTQ0FQRV9GQUNUT1IpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgY2ggPSBhcmd1bWVudC5jaGFyQXQoaW5kZXgpO1xuICAgIHJlc3VsdCArPSBjaCA9PT0gJ1wiJyA/IGAkeydcXFxcJy5yZXBlYXQobnVtYmVyQmFja3NsYXNoZXMgKiBCQUNLU0xBU0hfRVNDQVBFX0ZBQ1RPUiArIDEpfVwiYCA6ICdcXFxcJy5yZXBlYXQobnVtYmVyQmFja3NsYXNoZXMpICsgY2g7XG4gIH1cblxuICByZXN1bHQgKz0gJ1wiJztcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBRdW90ZXMgYSBzaW5nbGUgYXJndW1lbnQgZm9yIGEgUE9TSVggc2hlbGwgc28gaXQgaXMgcGFzc2VkIHRocm91Z2ggdmVyYmF0aW0uXG4gKiBBbiBlbXB0eSBhcmd1bWVudCBiZWNvbWVzIGAnJ2A7IGFuIGFyZ3VtZW50IG9mIG9ubHkgc2FmZSBjaGFyYWN0ZXJzIGlzXG4gKiByZXR1cm5lZCB1bmNoYW5nZWQ7IGFueXRoaW5nIGVsc2UgaXMgc2luZ2xlLXF1b3RlZC5cbiAqXG4gKiBAcGFyYW0gYXJndW1lbnQgLSBUaGUgcmF3IGFyZ3VtZW50IHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBxdW90ZWQgYXJndW1lbnQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBwb3NpeFF1b3RlKGFyZ3VtZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoUE9TSVhfU0FGRV9BUkdfUkUudGVzdChhcmd1bWVudCkpIHtcbiAgICByZXR1cm4gYXJndW1lbnQ7XG4gIH1cbiAgcmV0dXJuIGAnJHtyZXBsYWNlQWxsKHsgJHN0cmluZzogYXJndW1lbnQsIHJlcGxhY2VyOiBQT1NJWF9FU0NBUEVEX1NJTkdMRV9RVU9URSwgc2VhcmNoVmFsdWU6IFNJTkdMRV9RVU9URV9SRSB9KX0nYDtcbn1cblxuLyoqXG4gKiBNYXRjaGVzIGBjbWQuZXhlYCBtZXRhY2hhcmFjdGVycyB0aGF0IG11c3QgYmUgYF5gLWVzY2FwZWQuXG4gKi9cbmNvbnN0IENNRF9NRVRBX1JFID0gL1soKSUhXlwiPD4mfF0vZztcblxuLyoqXG4gKiBFc2NhcGVzIGBjbWQuZXhlYCBtZXRhY2hhcmFjdGVycyB3aXRoIGBeYCBzbyB0aGF0IGBjbWQuZXhlYCBwYXNzZXMgdGhlbVxuICogdGhyb3VnaCBsaXRlcmFsbHkuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgYGNtZC5leGVgJ3MgYFwiYCBoYW5kbGluZ1xuICogZGlmZmVycyBmcm9tIGBDb21tYW5kTGluZVRvQXJndldgIGFuZCBjYW5ub3QgYmUgcmVsaWVkIHVwb24uXG4gKlxuICogQXBwbHkgdGhpcyB0byBhIGNvbW1hbmQgbGluZSBzdHJpbmcgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHZpYSBgY21kLmV4ZWBcbiAqIChlLmcuLCBgc3Bhd24oY21kLCBbXSwgeyBzaGVsbDogdHJ1ZSB9KWAgb24gV2luZG93cykuXG4gKlxuICogQHBhcmFtIGNvbW1hbmRMaW5lIC0gVGhlIGFscmVhZHktcXVvdGVkIGNvbW1hbmQgbGluZSBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgc3RyaW5nIHdpdGggYWxsIGNtZCBtZXRhY2hhcmFjdGVycyBgXmAtZXNjYXBlZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbmFtZS1yZXBsYWNlbWVudHMgLS0gYGNtZGAgbmFtZXMgV2luZG93cyBgY21kLmV4ZWAsIG5vdCBhbiBhYmJyZXZpYXRpb24gb2YgYGNvbW1hbmRgLlxuZXhwb3J0IGZ1bmN0aW9uIGNtZEVzY2FwZUNvbW1hbmRMaW5lKGNvbW1hbmRMaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVwbGFjZUFsbCh7XG4gICAgJHN0cmluZzogY29tbWFuZExpbmUsXG4gICAgcmVwbGFjZXI6ICdeJCYnLFxuICAgIHNlYXJjaFZhbHVlOiBDTURfTUVUQV9SRVxuICB9KTtcbn1cblxuLyoqXG4gKiBXcmFwcyBhIENMSSB0YXNrIGZ1bmN0aW9uIHRvIGVuc3VyZSBpdCBydW5zIHNhZmVseSBhbmQgaGFuZGxlcyBpdHMge0BsaW5rIENsaVRhc2tSZXN1bHR9LlxuICpcbiAqIEhvbm9ycyB0aGUgcGVyLXNjcmlwdCBvZmYgc3dpdGNoIGZpcnN0OiB3aGVuIHRoZSBucG0gc2NyaXB0IGN1cnJlbnRseSBydW5uaW5nIGhhcyBiZWVuIHN3aXRjaGVkIG9mZiBcdTIwMTRcbiAqIGBMSU5UX01EPTAgbnBtIHJ1biBsaW50Om1kYCwgc2VlIHtAbGluayBnZXREaXNhYmxlZFNjcmlwdEVudlZhcmlhYmxlTmFtZX0gXHUyMDE0IHRoZSB0YXNrIGlzIG5vdCBleGVjdXRlZCBhbmRcbiAqIHRoZSBwcm9jZXNzIGV4aXRzIHN1Y2Nlc3NmdWxseS4gQmVjYXVzZSBldmVyeSBgc2NyaXB0cy8qLnRzYCBlbnRyeSBwb2ludCBhbHJlYWR5IGZ1bm5lbHMgdGhyb3VnaCBoZXJlLCBub1xuICogc2NyaXB0IGhhcyB0byBvcHQgaW4sIGFuZCBlYWNoIGBucG0gcnVuYCBzdWItc3RlcCBvZiBhIGNvbXBvc2l0ZSBzY3JpcHQgKGUuZy4gYGJ1aWxkYCkgY2FycmllcyBpdHMgb3duXG4gKiBzd2l0Y2guXG4gKlxuICogQHBhcmFtIHRhc2tGdW5jdGlvbiAtIFRoZSB0YXNrIGZ1bmN0aW9uIHRvIGV4ZWN1dGUsIHdoaWNoIG1heSByZXR1cm4gYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gb3IgYHZvaWRgLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0YXNrIGlzIGNvbXBsZXRlZCBhbmQgZXhpdHMgd2l0aCB0aGUgYXBwcm9wcmlhdGUgc3RhdHVzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JhcENsaVRhc2sodGFza0Z1bmN0aW9uOiAoKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPENsaVRhc2tSZXN1bHQ+Pik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkaXNhYmxlZFNjcmlwdEVudlZhcmlhYmxlTmFtZSA9IGdldERpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lKCk7XG4gIGlmIChkaXNhYmxlZFNjcmlwdEVudlZhcmlhYmxlTmFtZSAhPT0gbnVsbCkge1xuICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGBTa2lwcGVkICgke2Rpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lfSBpcyBvZmYpLlxcbmApO1xuICAgIENsaVRhc2tSZXN1bHQuU3VjY2VzcygpLmV4aXQoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBlbmFibGVMaWJyYXJ5RGVidWdnZXJzKCk7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdyYXBSZXN1bHQodGFza0Z1bmN0aW9uKTtcbiAgcmVzdWx0LmV4aXQoKTtcbn1cblxuLyoqXG4gKiBTYWZlbHkgZXhlY3V0ZXMgYSB0YXNrIGZ1bmN0aW9uIGFuZCByZXR1cm5zIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9LiBJZiB0aGUgdGFzayBmdW5jdGlvbiB0aHJvd3MgYW4gZXJyb3IsXG4gKiBBbiBlcnJvciBpcyBjYXVnaHQsIGFuZCBhIGZhaWx1cmUge0BsaW5rIENsaVRhc2tSZXN1bHR9IGlzIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSB0YXNrRnVuY3Rpb24gLSBUaGUgdGFzayBmdW5jdGlvbiB0byBleGVjdXRlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IHJlcHJlc2VudGluZyB0aGUgb3V0Y29tZSBvZiB0aGUgdGFzay5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gd3JhcFJlc3VsdCh0YXNrRnVuY3Rpb246ICgpID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48Q2xpVGFza1Jlc3VsdD4+KTogUHJvbWlzZTxDbGlUYXNrUmVzdWx0PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIChhd2FpdCB0YXNrRnVuY3Rpb24oKSkgYXMgQ2xpVGFza1Jlc3VsdCB8IHVuZGVmaW5lZCA/PyBDbGlUYXNrUmVzdWx0LlN1Y2Nlc3MoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBwcmludEVycm9yKG5ldyBFcnJvcignQW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRhc2sgZXhlY3V0aW9uJywgeyBjYXVzZTogZXJyb3IgfSkpO1xuICAgIHJldHVybiBDbGlUYXNrUmVzdWx0LkZhaWx1cmUoKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQSxPQUFPLGFBQWE7QUFJcEIsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxZQUFZO0FB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
|