@mnaoumov/typescript-dev-toolkit 0.0.0 → 1.1.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/LICENSE +21 -0
- package/README.md +15 -1
- package/bundlers/esbuild-impl/change-extension-plugin/package.json +6 -0
- package/bundlers/esbuild-impl/custom-esbuild-options-plugin/package.json +6 -0
- package/bundlers/esbuild-impl/fix-esm-plugin/package.json +6 -0
- package/bundlers/esbuild-impl/index/package.json +6 -0
- package/bundlers/esbuild-impl/package.json +6 -0
- package/bundlers/esbuild-impl/preprocess-plugin/package.json +6 -0
- package/bundlers/esbuild-impl/svelte-wrapper-plugin/package.json +6 -0
- package/bundlers/index/package.json +6 -0
- package/bundlers/package.json +6 -0
- package/dist/lib/cjs/build.cjs +191 -0
- package/dist/lib/cjs/build.d.cts +59 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/change-extension-plugin.cjs +139 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/change-extension-plugin.d.cts +25 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +96 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.cts +14 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/fix-esm-plugin.cjs +106 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/fix-esm-plugin.d.cts +13 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +111 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/index.d.cts +6 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +211 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.d.cts +143 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +129 -0
- package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +14 -0
- package/dist/lib/cjs/bundlers/index.cjs +99 -0
- package/dist/lib/cjs/bundlers/index.d.cts +2 -0
- package/dist/lib/cjs/check-project-types.cjs +163 -0
- package/dist/lib/cjs/check-project-types.d.cts +92 -0
- package/dist/lib/cjs/cli-utils.cjs +276 -0
- package/dist/lib/cjs/cli-utils.d.cts +123 -0
- package/dist/lib/cjs/code-generator.cjs +96 -0
- package/dist/lib/cjs/code-generator.d.cts +14 -0
- package/dist/lib/cjs/commitlint-config.cjs +110 -0
- package/dist/lib/cjs/commitlint-config.d.cts +14 -0
- package/dist/lib/cjs/commitlint-forbidden-patterns.cjs +110 -0
- package/dist/lib/cjs/commitlint-forbidden-patterns.d.cts +37 -0
- package/dist/lib/cjs/commitlint-spellcheck-header.cjs +126 -0
- package/dist/lib/cjs/commitlint-spellcheck-header.d.cts +40 -0
- package/dist/lib/cjs/env-toggle.cjs +133 -0
- package/dist/lib/cjs/env-toggle.d.cts +42 -0
- package/dist/lib/cjs/exec.cjs +455 -0
- package/dist/lib/cjs/exec.d.cts +162 -0
- package/dist/lib/cjs/forbidden-patterns.cjs +157 -0
- package/dist/lib/cjs/forbidden-patterns.d.cts +57 -0
- package/dist/lib/cjs/formatters/dprint.cjs +108 -0
- package/dist/lib/cjs/formatters/dprint.d.cts +33 -0
- package/dist/lib/cjs/formatters/index.cjs +99 -0
- package/dist/lib/cjs/formatters/index.d.cts +2 -0
- package/dist/lib/cjs/fs.cjs +123 -0
- package/dist/lib/cjs/fs.d.cts +80 -0
- package/dist/lib/cjs/gate.cjs +140 -0
- package/dist/lib/cjs/gate.d.cts +93 -0
- package/dist/lib/cjs/git.cjs +109 -0
- package/dist/lib/cjs/git.d.cts +37 -0
- package/dist/lib/cjs/index.cjs +186 -0
- package/dist/lib/cjs/index.d.cts +35 -0
- package/dist/lib/cjs/json.cjs +141 -0
- package/dist/lib/cjs/json.d.cts +102 -0
- package/dist/lib/cjs/library-build.cjs +483 -0
- package/dist/lib/cjs/library-build.d.cts +101 -0
- package/dist/lib/cjs/library-references.d.cts +5 -0
- package/dist/lib/cjs/linters/cspell-content.cjs +124 -0
- package/dist/lib/cjs/linters/cspell-content.d.cts +46 -0
- package/dist/lib/cjs/linters/cspell.cjs +103 -0
- package/dist/lib/cjs/linters/cspell.d.cts +36 -0
- package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.cjs +94 -0
- package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.d.cts +49 -0
- package/dist/lib/cjs/linters/eslint-config.cjs +1068 -0
- package/dist/lib/cjs/linters/eslint-config.d.cts +123 -0
- package/dist/lib/cjs/linters/eslint-no-restricted-syntax.cjs +130 -0
- package/dist/lib/cjs/linters/eslint-no-restricted-syntax.d.cts +27 -0
- package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +116 -0
- package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.d.cts +26 -0
- package/dist/lib/cjs/linters/eslint-rules/index.cjs +132 -0
- package/dist/lib/cjs/linters/eslint-rules/index.d.cts +13 -0
- package/dist/lib/cjs/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +175 -0
- package/dist/lib/cjs/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +10 -0
- package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.cjs +290 -0
- package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.d.cts +10 -0
- package/dist/lib/cjs/linters/eslint-rules/no-unused-params-members.cjs +265 -0
- package/dist/lib/cjs/linters/eslint-rules/no-unused-params-members.d.cts +41 -0
- package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.cjs +134 -0
- package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.d.cts +20 -0
- package/dist/lib/cjs/linters/eslint-rules/params-options-name-match.cjs +217 -0
- package/dist/lib/cjs/linters/eslint-rules/params-options-name-match.d.cts +36 -0
- package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.cjs +126 -0
- package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.d.cts +10 -0
- package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.cjs +125 -0
- package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.d.cts +20 -0
- package/dist/lib/cjs/linters/eslint-rules/require-method-template.cjs +181 -0
- package/dist/lib/cjs/linters/eslint-rules/require-method-template.d.cts +14 -0
- package/dist/lib/cjs/linters/eslint-rules/require-super-call.cjs +217 -0
- package/dist/lib/cjs/linters/eslint-rules/require-super-call.d.cts +10 -0
- package/dist/lib/cjs/linters/eslint-rules/rule-tester-helper.cjs +92 -0
- package/dist/lib/cjs/linters/eslint-rules/rule-tester-helper.d.cts +18 -0
- package/dist/lib/cjs/linters/eslint-rules/ts-estree-node.cjs +92 -0
- package/dist/lib/cjs/linters/eslint-rules/ts-estree-node.d.cts +23 -0
- package/dist/lib/cjs/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +20 -0
- package/dist/lib/cjs/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.cts +17 -0
- package/dist/lib/cjs/linters/eslint.cjs +196 -0
- package/dist/lib/cjs/linters/eslint.d.cts +74 -0
- package/dist/lib/cjs/linters/index.cjs +138 -0
- package/dist/lib/cjs/linters/index.d.cts +15 -0
- package/dist/lib/cjs/linters/lint-ignores.cjs +91 -0
- package/dist/lib/cjs/linters/lint-ignores.d.cts +30 -0
- package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +169 -0
- package/dist/lib/cjs/linters/markdownlint-cli2-config.d.cts +11 -0
- package/dist/lib/cjs/linters/markdownlint-content.cjs +120 -0
- package/dist/lib/cjs/linters/markdownlint-content.d.cts +47 -0
- package/dist/lib/cjs/linters/markdownlint-ignores.cjs +95 -0
- package/dist/lib/cjs/linters/markdownlint-ignores.d.cts +35 -0
- package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +99 -0
- package/dist/lib/cjs/linters/markdownlint-rules/index.d.cts +2 -0
- package/dist/lib/cjs/linters/markdownlint-rules/no-soft-break-in-paragraph.cjs +152 -0
- package/dist/lib/cjs/linters/markdownlint-rules/no-soft-break-in-paragraph.d.cts +35 -0
- package/dist/lib/cjs/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.cts +1344 -0
- package/dist/lib/cjs/linters/markdownlint-types/@types/markdownlint-cli2.d.cts +67 -0
- package/dist/lib/cjs/linters/markdownlint.cjs +151 -0
- package/dist/lib/cjs/linters/markdownlint.d.cts +32 -0
- package/dist/lib/cjs/linters/over-exposure.cjs +685 -0
- package/dist/lib/cjs/linters/over-exposure.d.cts +357 -0
- package/dist/lib/cjs/nano-staged-config.cjs +148 -0
- package/dist/lib/cjs/nano-staged-config.d.cts +54 -0
- package/dist/lib/cjs/npm-publish.cjs +93 -0
- package/dist/lib/cjs/npm-publish.d.cts +19 -0
- package/dist/lib/cjs/npm-run.cjs +120 -0
- package/dist/lib/cjs/npm-run.d.cts +34 -0
- package/dist/lib/cjs/npm.cjs +200 -0
- package/dist/lib/cjs/npm.d.cts +168 -0
- package/dist/lib/cjs/package-lock-integrity.cjs +134 -0
- package/dist/lib/cjs/package-lock-integrity.d.cts +38 -0
- package/dist/lib/cjs/package-manager.cjs +291 -0
- package/dist/lib/cjs/package-manager.d.cts +93 -0
- package/dist/lib/cjs/released-issues.cjs +178 -0
- package/dist/lib/cjs/released-issues.d.cts +79 -0
- package/dist/lib/cjs/repo-paths.cjs +167 -0
- package/dist/lib/cjs/repo-paths.d.cts +318 -0
- package/dist/lib/cjs/root.cjs +150 -0
- package/dist/lib/cjs/root.d.cts +107 -0
- package/dist/lib/cjs/test-runners/index.cjs +102 -0
- package/dist/lib/cjs/test-runners/index.d.cts +3 -0
- package/dist/lib/cjs/test-runners/vitest-config.cjs +126 -0
- package/dist/lib/cjs/test-runners/vitest-config.d.cts +90 -0
- package/dist/lib/cjs/test-runners/vitest.cjs +115 -0
- package/dist/lib/cjs/test-runners/vitest.d.cts +52 -0
- package/dist/lib/cjs/validate-declarations.cjs +120 -0
- package/dist/lib/cjs/validate-declarations.d.cts +37 -0
- package/dist/lib/cjs/version.cjs +758 -0
- package/dist/lib/cjs/version.d.cts +418 -0
- package/dist/lib/esm/build.d.mts +59 -0
- package/dist/lib/esm/build.mjs +165 -0
- package/dist/lib/esm/bundlers/esbuild-impl/change-extension-plugin.d.mts +25 -0
- package/dist/lib/esm/bundlers/esbuild-impl/change-extension-plugin.mjs +101 -0
- package/dist/lib/esm/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.mts +14 -0
- package/dist/lib/esm/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +59 -0
- package/dist/lib/esm/bundlers/esbuild-impl/fix-esm-plugin.d.mts +13 -0
- package/dist/lib/esm/bundlers/esbuild-impl/fix-esm-plugin.mjs +69 -0
- package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +6 -0
- package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +60 -0
- package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +143 -0
- package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +176 -0
- package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +14 -0
- package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +82 -0
- package/dist/lib/esm/bundlers/index.d.mts +2 -0
- package/dist/lib/esm/bundlers/index.mjs +52 -0
- package/dist/lib/esm/check-project-types.d.mts +92 -0
- package/dist/lib/esm/check-project-types.mjs +123 -0
- package/dist/lib/esm/cli-utils.d.mts +123 -0
- package/dist/lib/esm/cli-utils.mjs +225 -0
- package/dist/lib/esm/code-generator.d.mts +14 -0
- package/dist/lib/esm/code-generator.mjs +59 -0
- package/dist/lib/esm/commitlint-config.d.mts +14 -0
- package/dist/lib/esm/commitlint-config.mjs +79 -0
- package/dist/lib/esm/commitlint-forbidden-patterns.d.mts +37 -0
- package/dist/lib/esm/commitlint-forbidden-patterns.mjs +75 -0
- package/dist/lib/esm/commitlint-spellcheck-header.d.mts +40 -0
- package/dist/lib/esm/commitlint-spellcheck-header.mjs +87 -0
- package/dist/lib/esm/env-toggle.d.mts +42 -0
- package/dist/lib/esm/env-toggle.mjs +84 -0
- package/dist/lib/esm/exec.d.mts +162 -0
- package/dist/lib/esm/exec.mjs +410 -0
- package/dist/lib/esm/forbidden-patterns.d.mts +57 -0
- package/dist/lib/esm/forbidden-patterns.mjs +108 -0
- package/dist/lib/esm/formatters/dprint.d.mts +33 -0
- package/dist/lib/esm/formatters/dprint.mjs +75 -0
- package/dist/lib/esm/formatters/index.d.mts +2 -0
- package/dist/lib/esm/formatters/index.mjs +52 -0
- package/dist/lib/esm/fs.d.mts +80 -0
- package/dist/lib/esm/fs.mjs +89 -0
- package/dist/lib/esm/gate.d.mts +93 -0
- package/dist/lib/esm/gate.mjs +106 -0
- package/dist/lib/esm/git.d.mts +37 -0
- package/dist/lib/esm/git.mjs +72 -0
- package/dist/lib/esm/index.d.mts +35 -0
- package/dist/lib/esm/index.mjs +110 -0
- package/dist/lib/esm/json.d.mts +102 -0
- package/dist/lib/esm/json.mjs +106 -0
- package/dist/lib/esm/library-build.d.mts +101 -0
- package/dist/lib/esm/library-build.mjs +443 -0
- package/dist/lib/esm/library-references.d.mts +5 -0
- package/dist/lib/esm/linters/cspell-content.d.mts +46 -0
- package/dist/lib/esm/linters/cspell-content.mjs +87 -0
- package/dist/lib/esm/linters/cspell.d.mts +36 -0
- package/dist/lib/esm/linters/cspell.mjs +69 -0
- package/dist/lib/esm/linters/eslint-agnostic-core-boundary.d.mts +49 -0
- package/dist/lib/esm/linters/eslint-agnostic-core-boundary.mjs +57 -0
- package/dist/lib/esm/linters/eslint-config.d.mts +123 -0
- package/dist/lib/esm/linters/eslint-config.mjs +1022 -0
- package/dist/lib/esm/linters/eslint-no-restricted-syntax.d.mts +27 -0
- package/dist/lib/esm/linters/eslint-no-restricted-syntax.mjs +93 -0
- package/dist/lib/esm/linters/eslint-rules/in-house-plugin.d.mts +26 -0
- package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +77 -0
- package/dist/lib/esm/linters/eslint-rules/index.d.mts +13 -0
- package/dist/lib/esm/linters/eslint-rules/index.mjs +74 -0
- package/dist/lib/esm/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +10 -0
- package/dist/lib/esm/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +144 -0
- package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.d.mts +10 -0
- package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.mjs +277 -0
- package/dist/lib/esm/linters/eslint-rules/no-unused-params-members.d.mts +41 -0
- package/dist/lib/esm/linters/eslint-rules/no-unused-params-members.mjs +227 -0
- package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.d.mts +20 -0
- package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.mjs +96 -0
- package/dist/lib/esm/linters/eslint-rules/params-options-name-match.d.mts +36 -0
- package/dist/lib/esm/linters/eslint-rules/params-options-name-match.mjs +179 -0
- package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.d.mts +10 -0
- package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.mjs +88 -0
- package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.d.mts +20 -0
- package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.mjs +87 -0
- package/dist/lib/esm/linters/eslint-rules/require-method-template.d.mts +14 -0
- package/dist/lib/esm/linters/eslint-rules/require-method-template.mjs +142 -0
- package/dist/lib/esm/linters/eslint-rules/require-super-call.d.mts +10 -0
- package/dist/lib/esm/linters/eslint-rules/require-super-call.mjs +183 -0
- package/dist/lib/esm/linters/eslint-rules/rule-tester-helper.d.mts +18 -0
- package/dist/lib/esm/linters/eslint-rules/rule-tester-helper.mjs +55 -0
- package/dist/lib/esm/linters/eslint-rules/ts-estree-node.d.mts +23 -0
- package/dist/lib/esm/linters/eslint-rules/ts-estree-node.mjs +55 -0
- package/dist/lib/esm/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +20 -0
- package/dist/lib/esm/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.mts +17 -0
- package/dist/lib/esm/linters/eslint.d.mts +74 -0
- package/dist/lib/esm/linters/eslint.mjs +159 -0
- package/dist/lib/esm/linters/index.d.mts +15 -0
- package/dist/lib/esm/linters/index.mjs +78 -0
- package/dist/lib/esm/linters/lint-ignores.d.mts +30 -0
- package/dist/lib/esm/linters/lint-ignores.mjs +54 -0
- package/dist/lib/esm/linters/markdownlint-cli2-config.d.mts +11 -0
- package/dist/lib/esm/linters/markdownlint-cli2-config.mjs +122 -0
- package/dist/lib/esm/linters/markdownlint-content.d.mts +47 -0
- package/dist/lib/esm/linters/markdownlint-content.mjs +83 -0
- package/dist/lib/esm/linters/markdownlint-ignores.d.mts +35 -0
- package/dist/lib/esm/linters/markdownlint-ignores.mjs +57 -0
- package/dist/lib/esm/linters/markdownlint-rules/index.d.mts +2 -0
- package/dist/lib/esm/linters/markdownlint-rules/index.mjs +52 -0
- package/dist/lib/esm/linters/markdownlint-rules/no-soft-break-in-paragraph.d.mts +35 -0
- package/dist/lib/esm/linters/markdownlint-rules/no-soft-break-in-paragraph.mjs +114 -0
- package/dist/lib/esm/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.mts +1344 -0
- package/dist/lib/esm/linters/markdownlint-types/@types/markdownlint-cli2.d.mts +67 -0
- package/dist/lib/esm/linters/markdownlint.d.mts +32 -0
- package/dist/lib/esm/linters/markdownlint.mjs +124 -0
- package/dist/lib/esm/linters/over-exposure.d.mts +357 -0
- package/dist/lib/esm/linters/over-exposure.mjs +672 -0
- package/dist/lib/esm/nano-staged-config.d.mts +54 -0
- package/dist/lib/esm/nano-staged-config.mjs +103 -0
- package/dist/lib/esm/npm-publish.d.mts +19 -0
- package/dist/lib/esm/npm-publish.mjs +56 -0
- package/dist/lib/esm/npm-run.d.mts +34 -0
- package/dist/lib/esm/npm-run.mjs +81 -0
- package/dist/lib/esm/npm.d.mts +168 -0
- package/dist/lib/esm/npm.mjs +155 -0
- package/dist/lib/esm/package-lock-integrity.d.mts +38 -0
- package/dist/lib/esm/package-lock-integrity.mjs +99 -0
- package/dist/lib/esm/package-manager.d.mts +93 -0
- package/dist/lib/esm/package-manager.mjs +245 -0
- package/dist/lib/esm/released-issues.d.mts +79 -0
- package/dist/lib/esm/released-issues.mjs +143 -0
- package/dist/lib/esm/repo-paths.d.mts +318 -0
- package/dist/lib/esm/repo-paths.mjs +130 -0
- package/dist/lib/esm/root.d.mts +107 -0
- package/dist/lib/esm/root.mjs +115 -0
- package/dist/lib/esm/test-runners/index.d.mts +3 -0
- package/dist/lib/esm/test-runners/index.mjs +54 -0
- package/dist/lib/esm/test-runners/vitest-config.d.mts +90 -0
- package/dist/lib/esm/test-runners/vitest-config.mjs +86 -0
- package/dist/lib/esm/test-runners/vitest.d.mts +52 -0
- package/dist/lib/esm/test-runners/vitest.mjs +76 -0
- package/dist/lib/esm/validate-declarations.d.mts +37 -0
- package/dist/lib/esm/validate-declarations.mjs +87 -0
- package/dist/lib/esm/version.d.mts +418 -0
- package/dist/lib/esm/version.mjs +723 -0
- package/formatters/dprint/package.json +6 -0
- package/formatters/index/package.json +6 -0
- package/formatters/package.json +6 -0
- package/linters/cspell/package.json +6 -0
- package/linters/cspell-content/package.json +6 -0
- package/linters/eslint/package.json +6 -0
- package/linters/eslint-agnostic-core-boundary/package.json +6 -0
- package/linters/eslint-config/package.json +6 -0
- package/linters/eslint-no-restricted-syntax/package.json +6 -0
- package/linters/eslint-rules/in-house-plugin/package.json +6 -0
- package/linters/eslint-rules/index/package.json +6 -0
- package/linters/eslint-rules/no-async-callback-to-unsafe-return/package.json +6 -0
- package/linters/eslint-rules/no-unresolved-jsdoc-link/package.json +6 -0
- package/linters/eslint-rules/no-unused-params-members/package.json +6 -0
- package/linters/eslint-rules/no-used-underscore-variables/package.json +6 -0
- package/linters/eslint-rules/package.json +6 -0
- package/linters/eslint-rules/params-options-name-match/package.json +6 -0
- package/linters/eslint-rules/prefer-noop-async/package.json +6 -0
- package/linters/eslint-rules/readonly-params-options-result-members/package.json +6 -0
- package/linters/eslint-rules/require-method-template/package.json +6 -0
- package/linters/eslint-rules/require-super-call/package.json +6 -0
- package/linters/eslint-rules/rule-tester-helper/package.json +6 -0
- package/linters/eslint-rules/ts-estree-node/package.json +6 -0
- package/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs/package.json +4 -0
- package/linters/eslint-types/@types/eslint-plugin-verify-tsdoc/package.json +4 -0
- package/linters/index/package.json +6 -0
- package/linters/lint-ignores/package.json +6 -0
- package/linters/markdownlint/package.json +6 -0
- package/linters/markdownlint-cli2-config/package.json +6 -0
- package/linters/markdownlint-content/package.json +6 -0
- package/linters/markdownlint-ignores/package.json +6 -0
- package/linters/markdownlint-rules/index/package.json +6 -0
- package/linters/markdownlint-rules/no-soft-break-in-paragraph/package.json +6 -0
- package/linters/markdownlint-rules/package.json +6 -0
- package/linters/markdownlint-types/@types/markdownlint-cli2/package.json +4 -0
- package/linters/markdownlint-types/@types/markdownlint-cli2-config-schema/package.json +4 -0
- package/linters/over-exposure/package.json +6 -0
- package/linters/package.json +6 -0
- package/package.json +329 -13
- package/test-runners/index/package.json +6 -0
- package/test-runners/package.json +6 -0
- package/test-runners/vitest/package.json +6 -0
- package/test-runners/vitest-config/package.json +6 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function () {
|
|
7
|
+
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function ensureBrowserProcess() {
|
|
13
|
+
const browserProcess = {
|
|
14
|
+
browser: true,
|
|
15
|
+
cwd() {
|
|
16
|
+
return '/';
|
|
17
|
+
},
|
|
18
|
+
env: {},
|
|
19
|
+
platform: 'android'
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const existingProcess = globalThis.process;
|
|
23
|
+
|
|
24
|
+
if (!existingProcess) {
|
|
25
|
+
globalThis.process = browserProcess;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (existingProcess.versions?.node) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const existingProcessRecord = existingProcess;
|
|
34
|
+
|
|
35
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
36
|
+
existingProcessRecord[key] ??= value;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
existingProcessRecord['browser'] = true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function keepName($unknown) {
|
|
43
|
+
return $unknown;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
(function initCjs() {
|
|
47
|
+
const globalThisRecord = globalThis;
|
|
48
|
+
ensureDisposeSymbols();
|
|
49
|
+
globalThisRecord['__name'] ??= keepName;
|
|
50
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
51
|
+
|
|
52
|
+
ensureBrowserProcess();
|
|
53
|
+
|
|
54
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
55
|
+
function extractDefault(module) {
|
|
56
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
57
|
+
}
|
|
58
|
+
})();
|
|
59
|
+
})();
|
|
60
|
+
|
|
61
|
+
"use strict";
|
|
62
|
+
var __defProp = Object.defineProperty;
|
|
63
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
64
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
65
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
66
|
+
var __export = (target, all) => {
|
|
67
|
+
for (var name in all)
|
|
68
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
69
|
+
};
|
|
70
|
+
var __copyProps = (to, from, except, desc) => {
|
|
71
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
72
|
+
for (let key of __getOwnPropNames(from))
|
|
73
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
74
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
75
|
+
}
|
|
76
|
+
return to;
|
|
77
|
+
};
|
|
78
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
79
|
+
var custom_esbuild_options_plugin_exports = {};
|
|
80
|
+
__export(custom_esbuild_options_plugin_exports, {
|
|
81
|
+
customEsbuildOptionsPlugin: () => customEsbuildOptionsPlugin
|
|
82
|
+
});
|
|
83
|
+
module.exports = __toCommonJS(custom_esbuild_options_plugin_exports);
|
|
84
|
+
function customEsbuildOptionsPlugin(customizeEsbuildOptions) {
|
|
85
|
+
return {
|
|
86
|
+
name: "custom-esbuild-options",
|
|
87
|
+
setup(build) {
|
|
88
|
+
customizeEsbuildOptions?.(build.initialOptions);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
93
|
+
0 && (module.exports = {
|
|
94
|
+
customEsbuildOptionsPlugin
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2J1bmRsZXJzL2VzYnVpbGQtaW1wbC9jdXN0b20tZXNidWlsZC1vcHRpb25zLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBhbGxvd3MgZm9yIGN1c3RvbSBlc2J1aWxkIG9wdGlvbnMgdG8gYmUgdXNlZCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIGVzYnVpbGQgcGx1Z2luIHRoYXQgYXBwbGllcyBjdXN0b20gYnVpbGQgb3B0aW9uczsgcmVxdWlyZXMgYSBsaXZlIGVzYnVpbGQgY29udGV4dC4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBCdWlsZE9wdGlvbnMsXG4gIFBsdWdpblxufSBmcm9tICdlc2J1aWxkJztcblxuLyoqXG4gKiBBIHBsdWdpbiB0aGF0IGFsbG93cyBmb3IgY3VzdG9tIGVzYnVpbGQgb3B0aW9ucyB0byBiZSB1c2VkIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy5cbiAqXG4gKiBAcGFyYW0gY3VzdG9taXplRXNidWlsZE9wdGlvbnMgLSBBIGZ1bmN0aW9uIHRoYXQgY3VzdG9taXplcyB0aGUgZXNidWlsZCBvcHRpb25zLlxuICogQHJldHVybnMgQSBwbHVnaW4gdGhhdCBhbGxvd3MgZm9yIGN1c3RvbSBlc2J1aWxkIG9wdGlvbnMgdG8gYmUgdXNlZCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjdXN0b21Fc2J1aWxkT3B0aW9uc1BsdWdpbihjdXN0b21pemVFc2J1aWxkT3B0aW9ucz86IChvcHRpb25zOiBCdWlsZE9wdGlvbnMpID0+IHZvaWQpOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdjdXN0b20tZXNidWlsZC1vcHRpb25zJyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgY3VzdG9taXplRXNidWlsZE9wdGlvbnM/LihidWlsZC5pbml0aWFsT3B0aW9ucyk7XG4gICAgfVxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CTyxTQUFTLDJCQUEyQix5QkFBbUU7QUFDNUcsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTSxPQUFhO0FBQ2pCLGdDQUEwQixNQUFNLGNBQWM7QUFBQSxJQUNoRDtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference path="../../library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* This module defines an esbuild plugin that allows for custom esbuild options to be used during the build process.
|
|
6
|
+
*/
|
|
7
|
+
import type { BuildOptions, Plugin } from 'esbuild' with { 'resolution-mode': 'import' };
|
|
8
|
+
/**
|
|
9
|
+
* A plugin that allows for custom esbuild options to be used during the build process.
|
|
10
|
+
*
|
|
11
|
+
* @param customizeEsbuildOptions - A function that customizes the esbuild options.
|
|
12
|
+
* @returns A plugin that allows for custom esbuild options to be used during the build process.
|
|
13
|
+
*/
|
|
14
|
+
export declare function customEsbuildOptionsPlugin(customizeEsbuildOptions?: (options: BuildOptions) => void): Plugin;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function () {
|
|
7
|
+
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function ensureBrowserProcess() {
|
|
13
|
+
const browserProcess = {
|
|
14
|
+
browser: true,
|
|
15
|
+
cwd() {
|
|
16
|
+
return '/';
|
|
17
|
+
},
|
|
18
|
+
env: {},
|
|
19
|
+
platform: 'android'
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const existingProcess = globalThis.process;
|
|
23
|
+
|
|
24
|
+
if (!existingProcess) {
|
|
25
|
+
globalThis.process = browserProcess;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (existingProcess.versions?.node) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const existingProcessRecord = existingProcess;
|
|
34
|
+
|
|
35
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
36
|
+
existingProcessRecord[key] ??= value;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
existingProcessRecord['browser'] = true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function keepName($unknown) {
|
|
43
|
+
return $unknown;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
(function initCjs() {
|
|
47
|
+
const globalThisRecord = globalThis;
|
|
48
|
+
ensureDisposeSymbols();
|
|
49
|
+
globalThisRecord['__name'] ??= keepName;
|
|
50
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
51
|
+
|
|
52
|
+
ensureBrowserProcess();
|
|
53
|
+
|
|
54
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
55
|
+
function extractDefault(module) {
|
|
56
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
57
|
+
}
|
|
58
|
+
})();
|
|
59
|
+
})();
|
|
60
|
+
|
|
61
|
+
"use strict";
|
|
62
|
+
var __defProp = Object.defineProperty;
|
|
63
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
64
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
65
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
66
|
+
var __export = (target, all) => {
|
|
67
|
+
for (var name in all)
|
|
68
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
69
|
+
};
|
|
70
|
+
var __copyProps = (to, from, except, desc) => {
|
|
71
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
72
|
+
for (let key of __getOwnPropNames(from))
|
|
73
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
74
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
75
|
+
}
|
|
76
|
+
return to;
|
|
77
|
+
};
|
|
78
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
79
|
+
var fix_esm_plugin_exports = {};
|
|
80
|
+
__export(fix_esm_plugin_exports, {
|
|
81
|
+
fixEsmPlugin: () => fixEsmPlugin
|
|
82
|
+
});
|
|
83
|
+
module.exports = __toCommonJS(fix_esm_plugin_exports);
|
|
84
|
+
var import_string = require('@mnaoumov/typescript-lib/string');
|
|
85
|
+
function fixEsmPlugin() {
|
|
86
|
+
return {
|
|
87
|
+
name: "fix-esm",
|
|
88
|
+
setup(build) {
|
|
89
|
+
build.onEnd((result) => {
|
|
90
|
+
for (const file of result.outputFiles ?? []) {
|
|
91
|
+
const newText = (0, import_string.replaceAll)({
|
|
92
|
+
$string: file.text,
|
|
93
|
+
replacer: "$1(__extractDefault($2), 1);",
|
|
94
|
+
searchValue: /(?<Caller>__toESM\d*)\((?<Module>.+), 1\);/g
|
|
95
|
+
});
|
|
96
|
+
file.contents = new TextEncoder().encode(newText);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
103
|
+
0 && (module.exports = {
|
|
104
|
+
fixEsmPlugin
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2J1bmRsZXJzL2VzYnVpbGQtaW1wbC9maXgtZXNtLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYSBjdXN0b20gZXNidWlsZCBwbHVnaW4gdGhhdCBmaXhlcyB0aGUgYHJlcXVpcmVgIHN0YXRlbWVudCBmb3IgRVNNIG1vZHVsZXMuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIGVzYnVpbGQgcGx1Z2luIHRoYXQgcGF0Y2hlcyByZXF1aXJlIGNhbGxzIGZvciBFU00gY29tcGF0aWJpbGl0eTsgcmVxdWlyZXMgYSBsaXZlIGVzYnVpbGQgY29udGV4dC4gKi9cblxuaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tICdlc2J1aWxkJztcblxuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBmaXhlcyB0aGUgYHJlcXVpcmVgIHN0YXRlbWVudCBmb3IgRVNNIG1vZHVsZXMuXG4gKlxuICogQHJldHVybnMgQW4gZXNidWlsZCBgUGx1Z2luYCBvYmplY3QgdGhhdCBmaXhlcyB0aGUgYHJlcXVpcmVgIHN0YXRlbWVudCBmb3IgRVNNIG1vZHVsZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXhFc21QbHVnaW4oKTogUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnZml4LWVzbScsXG4gICAgc2V0dXAoYnVpbGQpOiB2b2lkIHtcbiAgICAgIGJ1aWxkLm9uRW5kKChyZXN1bHQpID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIHJlc3VsdC5vdXRwdXRGaWxlcyA/PyBbXSkge1xuICAgICAgICAgIGNvbnN0IG5ld1RleHQgPSByZXBsYWNlQWxsKHtcbiAgICAgICAgICAgICRzdHJpbmc6IGZpbGUudGV4dCxcbiAgICAgICAgICAgIHJlcGxhY2VyOiAnJDEoX19leHRyYWN0RGVmYXVsdCgkMiksIDEpOycsXG4gICAgICAgICAgICBzZWFyY2hWYWx1ZTogLyg/PENhbGxlcj5fX3RvRVNNXFxkKilcXCgoPzxNb2R1bGU+LispLCAxXFwpOy9nXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZmlsZS5jb250ZW50cyA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShuZXdUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBLG9CQUEyQjtBQU9wQixTQUFTLGVBQXVCO0FBQ3JDLFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLE1BQU0sQ0FBQyxXQUFXO0FBQ3RCLG1CQUFXLFFBQVEsT0FBTyxlQUFlLENBQUMsR0FBRztBQUMzQyxnQkFBTSxjQUFVLDBCQUFXO0FBQUEsWUFDekIsU0FBUyxLQUFLO0FBQUEsWUFDZCxVQUFVO0FBQUEsWUFDVixhQUFhO0FBQUEsVUFDZixDQUFDO0FBQ0QsZUFBSyxXQUFXLElBQUksWUFBWSxFQUFFLE9BQU8sT0FBTztBQUFBLFFBQ2xEO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference path="../../library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* This module defines a custom esbuild plugin that fixes the `require` statement for ESM modules.
|
|
6
|
+
*/
|
|
7
|
+
import type { Plugin } from 'esbuild' with { 'resolution-mode': 'import' };
|
|
8
|
+
/**
|
|
9
|
+
* Creates an esbuild plugin that fixes the `require` statement for ESM modules.
|
|
10
|
+
*
|
|
11
|
+
* @returns An esbuild `Plugin` object that fixes the `require` statement for ESM modules.
|
|
12
|
+
*/
|
|
13
|
+
export declare function fixEsmPlugin(): Plugin;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function () {
|
|
7
|
+
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function ensureBrowserProcess() {
|
|
13
|
+
const browserProcess = {
|
|
14
|
+
browser: true,
|
|
15
|
+
cwd() {
|
|
16
|
+
return '/';
|
|
17
|
+
},
|
|
18
|
+
env: {},
|
|
19
|
+
platform: 'android'
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const existingProcess = globalThis.process;
|
|
23
|
+
|
|
24
|
+
if (!existingProcess) {
|
|
25
|
+
globalThis.process = browserProcess;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (existingProcess.versions?.node) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const existingProcessRecord = existingProcess;
|
|
34
|
+
|
|
35
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
36
|
+
existingProcessRecord[key] ??= value;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
existingProcessRecord['browser'] = true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function keepName($unknown) {
|
|
43
|
+
return $unknown;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
(function initCjs() {
|
|
47
|
+
const globalThisRecord = globalThis;
|
|
48
|
+
ensureDisposeSymbols();
|
|
49
|
+
globalThisRecord['__name'] ??= keepName;
|
|
50
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
51
|
+
|
|
52
|
+
ensureBrowserProcess();
|
|
53
|
+
|
|
54
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
55
|
+
function extractDefault(module) {
|
|
56
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
57
|
+
}
|
|
58
|
+
})();
|
|
59
|
+
})();
|
|
60
|
+
|
|
61
|
+
"use strict";
|
|
62
|
+
var __create = Object.create;
|
|
63
|
+
var __defProp = Object.defineProperty;
|
|
64
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
65
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
66
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
67
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
68
|
+
var __export = (target, all) => {
|
|
69
|
+
for (var name in all)
|
|
70
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
71
|
+
};
|
|
72
|
+
var __copyProps = (to, from, except, desc) => {
|
|
73
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
74
|
+
for (let key of __getOwnPropNames(from))
|
|
75
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
76
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
77
|
+
}
|
|
78
|
+
return to;
|
|
79
|
+
};
|
|
80
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
81
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
82
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
83
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
84
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
85
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
86
|
+
mod
|
|
87
|
+
));
|
|
88
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
89
|
+
var esbuild_impl_exports = {};
|
|
90
|
+
__export(esbuild_impl_exports, {
|
|
91
|
+
"change-extension-plugin": () => change_extension_plugin,
|
|
92
|
+
"custom-esbuild-options-plugin": () => custom_esbuild_options_plugin,
|
|
93
|
+
"fix-esm-plugin": () => fix_esm_plugin,
|
|
94
|
+
"preprocess-plugin": () => preprocess_plugin,
|
|
95
|
+
"svelte-wrapper-plugin": () => svelte_wrapper_plugin
|
|
96
|
+
});
|
|
97
|
+
module.exports = __toCommonJS(esbuild_impl_exports);
|
|
98
|
+
var change_extension_plugin = __toESM(__extractDefault(require('./change-extension-plugin.cjs')), 1);
|
|
99
|
+
var custom_esbuild_options_plugin = __toESM(__extractDefault(require('./custom-esbuild-options-plugin.cjs')), 1);
|
|
100
|
+
var fix_esm_plugin = __toESM(__extractDefault(require('./fix-esm-plugin.cjs')), 1);
|
|
101
|
+
var preprocess_plugin = __toESM(__extractDefault(require('./preprocess-plugin.cjs')), 1);
|
|
102
|
+
var svelte_wrapper_plugin = __toESM(__extractDefault(require('./svelte-wrapper-plugin.cjs')), 1);
|
|
103
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
104
|
+
0 && (module.exports = {
|
|
105
|
+
"change-extension-plugin": null,
|
|
106
|
+
"custom-esbuild-options-plugin": null,
|
|
107
|
+
"fix-esm-plugin": null,
|
|
108
|
+
"preprocess-plugin": null,
|
|
109
|
+
"svelte-wrapper-plugin": null
|
|
110
|
+
});
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2J1bmRsZXJzL2VzYnVpbGQtaW1wbC9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzICdjaGFuZ2UtZXh0ZW5zaW9uLXBsdWdpbicgZnJvbSAnLi9jaGFuZ2UtZXh0ZW5zaW9uLXBsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAnY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4nIGZyb20gJy4vY3VzdG9tLWVzYnVpbGQtb3B0aW9ucy1wbHVnaW4udHMnO1xuZXhwb3J0ICogYXMgJ2ZpeC1lc20tcGx1Z2luJyBmcm9tICcuL2ZpeC1lc20tcGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzICdwcmVwcm9jZXNzLXBsdWdpbicgZnJvbSAnLi9wcmVwcm9jZXNzLXBsdWdpbi50cyc7XG5leHBvcnQgKiBhcyAnc3ZlbHRlLXdyYXBwZXItcGx1Z2luJyBmcm9tICcuL3N2ZWx0ZS13cmFwcGVyLXBsdWdpbi50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBLG1DQUFBQTtBQUFBLEVBQUEsdUNBQUFDO0FBQUEsRUFBQSx3QkFBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUE7QUFBQTtBQUVBLElBQUFKLDBCQUEyQztBQUMzQyxJQUFBQyxnQ0FBaUQ7QUFDakQsSUFBQUMsaUJBQWtDO0FBQ2xDLElBQUFDLG9CQUFxQztBQUNyQyxJQUFBQyx3QkFBeUM7IiwKICAibmFtZXMiOiBbImNoYW5nZS1leHRlbnNpb24tcGx1Z2luIiwgImN1c3RvbS1lc2J1aWxkLW9wdGlvbnMtcGx1Z2luIiwgImZpeC1lc20tcGx1Z2luIiwgInByZXByb2Nlc3MtcGx1Z2luIiwgInN2ZWx0ZS13cmFwcGVyLXBsdWdpbiJdCn0K
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference path="../../library-references.d.cts" />
|
|
2
|
+
export * as 'change-extension-plugin' from './change-extension-plugin.cjs';
|
|
3
|
+
export * as 'custom-esbuild-options-plugin' from './custom-esbuild-options-plugin.cjs';
|
|
4
|
+
export * as 'fix-esm-plugin' from './fix-esm-plugin.cjs';
|
|
5
|
+
export * as 'preprocess-plugin' from './preprocess-plugin.cjs';
|
|
6
|
+
export * as 'svelte-wrapper-plugin' from './svelte-wrapper-plugin.cjs';
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function () {
|
|
7
|
+
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
|
|
9
|
+
symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function ensureBrowserProcess() {
|
|
13
|
+
const browserProcess = {
|
|
14
|
+
browser: true,
|
|
15
|
+
cwd() {
|
|
16
|
+
return '/';
|
|
17
|
+
},
|
|
18
|
+
env: {},
|
|
19
|
+
platform: 'android'
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const existingProcess = globalThis.process;
|
|
23
|
+
|
|
24
|
+
if (!existingProcess) {
|
|
25
|
+
globalThis.process = browserProcess;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (existingProcess.versions?.node) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const existingProcessRecord = existingProcess;
|
|
34
|
+
|
|
35
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
36
|
+
existingProcessRecord[key] ??= value;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
existingProcessRecord['browser'] = true;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function keepName($unknown) {
|
|
43
|
+
return $unknown;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
(function initCjs() {
|
|
47
|
+
const globalThisRecord = globalThis;
|
|
48
|
+
ensureDisposeSymbols();
|
|
49
|
+
globalThisRecord['__name'] ??= keepName;
|
|
50
|
+
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
51
|
+
|
|
52
|
+
ensureBrowserProcess();
|
|
53
|
+
|
|
54
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
55
|
+
function extractDefault(module) {
|
|
56
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
57
|
+
}
|
|
58
|
+
})();
|
|
59
|
+
})();
|
|
60
|
+
|
|
61
|
+
"use strict";
|
|
62
|
+
var __defProp = Object.defineProperty;
|
|
63
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
64
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
65
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
66
|
+
var __export = (target, all) => {
|
|
67
|
+
for (var name in all)
|
|
68
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
69
|
+
};
|
|
70
|
+
var __copyProps = (to, from, except, desc) => {
|
|
71
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
72
|
+
for (let key of __getOwnPropNames(from))
|
|
73
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
74
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
75
|
+
}
|
|
76
|
+
return to;
|
|
77
|
+
};
|
|
78
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
79
|
+
var preprocess_plugin_exports = {};
|
|
80
|
+
__export(preprocess_plugin_exports, {
|
|
81
|
+
ensureBrowserProcess: () => ensureBrowserProcess,
|
|
82
|
+
ensureDisposeSymbols: () => ensureDisposeSymbols,
|
|
83
|
+
keepName: () => keepName,
|
|
84
|
+
makePreprocessBanner: () => makePreprocessBanner,
|
|
85
|
+
preprocessPlugin: () => preprocessPlugin
|
|
86
|
+
});
|
|
87
|
+
module.exports = __toCommonJS(preprocess_plugin_exports);
|
|
88
|
+
var import_object_utils = require('@mnaoumov/typescript-lib/object-utils');
|
|
89
|
+
var import_string = require('@mnaoumov/typescript-lib/string');
|
|
90
|
+
var import_promises = require('node:fs/promises');
|
|
91
|
+
function ensureBrowserProcess() {
|
|
92
|
+
const browserProcess = {
|
|
93
|
+
browser: true,
|
|
94
|
+
cwd() {
|
|
95
|
+
return "/";
|
|
96
|
+
},
|
|
97
|
+
env: {},
|
|
98
|
+
platform: "android"
|
|
99
|
+
};
|
|
100
|
+
const existingProcess = globalThis.process;
|
|
101
|
+
if (!existingProcess) {
|
|
102
|
+
globalThis.process = browserProcess;
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (existingProcess.versions?.node) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const existingProcessRecord = existingProcess;
|
|
109
|
+
for (const [key, value] of Object.entries(browserProcess)) {
|
|
110
|
+
existingProcessRecord[key] ??= value;
|
|
111
|
+
}
|
|
112
|
+
existingProcessRecord["browser"] = true;
|
|
113
|
+
}
|
|
114
|
+
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
115
|
+
symbolConstructor.asyncDispose ??= symbolConstructor.for("Symbol.asyncDispose");
|
|
116
|
+
symbolConstructor.dispose ??= symbolConstructor.for("Symbol.dispose");
|
|
117
|
+
}
|
|
118
|
+
function keepName($unknown) {
|
|
119
|
+
return $unknown;
|
|
120
|
+
}
|
|
121
|
+
function makePreprocessBanner(options = {}) {
|
|
122
|
+
const { additionalBannerInitFunctions = [], isEsm = false } = options;
|
|
123
|
+
const shims = isEsm ? [ensureDisposeSymbols, ensureBrowserProcess] : [ensureDisposeSymbols, ensureBrowserProcess, keepName];
|
|
124
|
+
const init = isEsm ? initEsm : initCjs;
|
|
125
|
+
const additionalInits = additionalBannerInitFunctions.map((function_) => `(${String(function_)})();
|
|
126
|
+
`).join("");
|
|
127
|
+
return `
|
|
128
|
+
(function () {
|
|
129
|
+
${shims.map(String).join("\n\n")}
|
|
130
|
+
|
|
131
|
+
(${String(init)})();
|
|
132
|
+
})();
|
|
133
|
+
${additionalInits}`;
|
|
134
|
+
}
|
|
135
|
+
function preprocessPlugin(options = {}) {
|
|
136
|
+
const { additionalBannerInitFunctions = [], cjsImportMetaUrlProvider = getCjsImportMetaUrl, isEsm = false } = options;
|
|
137
|
+
const replacements = isEsm ? {} : {
|
|
138
|
+
[(0, import_string.replaceAll)({
|
|
139
|
+
$string: "import(dot)meta(dot)url",
|
|
140
|
+
replacer: ".",
|
|
141
|
+
searchValue: "(dot)"
|
|
142
|
+
})]: cjsImportMetaUrlProvider
|
|
143
|
+
};
|
|
144
|
+
return {
|
|
145
|
+
name: "preprocess",
|
|
146
|
+
setup(build) {
|
|
147
|
+
build.initialOptions.define ??= {};
|
|
148
|
+
for (const key of Object.keys(replacements)) {
|
|
149
|
+
build.initialOptions.define[key] = `__${(0, import_string.makeValidVariableName)(key)}`;
|
|
150
|
+
}
|
|
151
|
+
build.initialOptions.banner ??= {};
|
|
152
|
+
build.initialOptions.banner["js"] ??= "";
|
|
153
|
+
build.initialOptions.banner["js"] += makePreprocessBanner({ additionalBannerInitFunctions, isEsm });
|
|
154
|
+
build.onLoad({ filter: /\.(?:js|ts|cjs|mjs|cts|mts)$/ }, async ($arguments) => {
|
|
155
|
+
let contents = await (0, import_promises.readFile)($arguments.path, "utf-8");
|
|
156
|
+
for (const [key, value] of Object.entries(replacements)) {
|
|
157
|
+
const variable = `__${(0, import_string.makeValidVariableName)(key)}`;
|
|
158
|
+
if (!contents.includes(key) || contents.includes(`var ${variable}`)) {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const valueString = typeof value === "function" ? `(${String(value)})()` : (0, import_object_utils.toJson)(value, { functionHandlingMode: import_object_utils.FunctionHandlingMode.Full });
|
|
162
|
+
contents = `var ${variable} = globalThis['${key}'] ?? ${valueString};
|
|
163
|
+
${contents}`;
|
|
164
|
+
}
|
|
165
|
+
contents = (0, import_string.replaceAll)({
|
|
166
|
+
$string: contents,
|
|
167
|
+
// eslint-disable-next-line no-template-curly-in-string -- It is intentional, the string looks like a template literal, but it is not.
|
|
168
|
+
replacer: "`\n//#${''} sourceMappingURL",
|
|
169
|
+
searchValue: /`\r?\n\/\/# sourceMappingURL/g
|
|
170
|
+
});
|
|
171
|
+
return {
|
|
172
|
+
contents,
|
|
173
|
+
loader: "ts"
|
|
174
|
+
};
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
function getCjsImportMetaUrl() {
|
|
180
|
+
if (typeof __filename === "string") {
|
|
181
|
+
const localRequire = require;
|
|
182
|
+
const url = localRequire("node:url");
|
|
183
|
+
if (typeof url.pathToFileURL === "function") {
|
|
184
|
+
return url.pathToFileURL(__filename).href;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return globalThis.location?.href ?? "";
|
|
188
|
+
}
|
|
189
|
+
function initCjs() {
|
|
190
|
+
const globalThisRecord = globalThis;
|
|
191
|
+
ensureDisposeSymbols();
|
|
192
|
+
globalThisRecord["__name"] ??= keepName;
|
|
193
|
+
globalThisRecord["__extractDefault"] ??= extractDefault;
|
|
194
|
+
ensureBrowserProcess();
|
|
195
|
+
function extractDefault(module2) {
|
|
196
|
+
return module2 && module2.__esModule && "default" in module2 ? module2.default : module2;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function initEsm() {
|
|
200
|
+
ensureDisposeSymbols();
|
|
201
|
+
ensureBrowserProcess();
|
|
202
|
+
}
|
|
203
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
204
|
+
0 && (module.exports = {
|
|
205
|
+
ensureBrowserProcess,
|
|
206
|
+
ensureDisposeSymbols,
|
|
207
|
+
keepName,
|
|
208
|
+
makePreprocessBanner,
|
|
209
|
+
preprocessPlugin
|
|
210
|
+
});
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2J1bmRsZXJzL2VzYnVpbGQtaW1wbC9wcmVwcm9jZXNzLXBsdWdpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYSBjdXN0b20gZXNidWlsZCBwbHVnaW4gdGhhdCBwcmVwcm9jZXNzZXMgSmF2YVNjcmlwdCBhbmQgVHlwZVNjcmlwdCBmaWxlcyBmb3IgYW55IGJ1aWxkIHRhcmdldC5cbiAqXG4gKiBAcmVtYXJrc1xuICogV2UgY2Fubm90IHVzZSBgLmAgaW5zdGVhZCBvZiBgKGRvdClgIGluIHRoZSBhYm92ZSBkZXNjcmlwdGlvbiBiZWNhdXNlIHRoZSBmaWxlIGl0c2VsZiBpcyBwcmVwcm9jZXNzZWQgd2l0aCB0aGUgc2FtZSBydWxlLlxuICpcbiAqIGBpbml0Q2pzYCwgYGluaXRFc21gIGFuZCB0aGUgc2hpbXMgdGhleSBjYWxsIGFyZSBzdHJpbmdpZmllZCB3aXRoIGBTdHJpbmcoZm4pYCBhbmQgaW5qZWN0ZWQgaW50byBldmVyeVxuICogYnVpbHQgYnVuZGxlIGFzIGFuIGVzYnVpbGQgYmFubmVyLCBzbyB0aGV5IG11c3QgYmUgcmVhY2hhYmxlIGZyb20gb25lIGFub3RoZXIgYnkgQkFSRSBpZGVudGlmaWVyLiBUaGF0IGlzXG4gKiB3aHkgdGhleSBhbGwgbGl2ZSBpbiB0aGlzIG1vZHVsZTogZXNidWlsZCBjb21waWxlcyBhIGNyb3NzLW1vZHVsZSBjYWxsIHRvIGAoMCwgaW1wb3J0X21vZHVsZS5mbikoXHUyMDI2KWAsXG4gKiB3aGljaCB3b3VsZCBuYW1lIGEgYmluZGluZyB0aGUgZW1pdHRlZCBidW5kbGUgZG9lcyBub3QgaGF2ZS4gU2FtZS1tb2R1bGUgcmVmZXJlbmNlcyBzdGF5IGJhcmUsIGFuZFxuICoge0BsaW5rIG1ha2VQcmVwcm9jZXNzQmFubmVyfSBzZXJpYWxpemVzIHRoZSBzaGltcyBhbG9uZ3NpZGUgdGhlIGBpbml0YCBmdW5jdGlvbiBzbyB0aGV5IGFyZSBpbiBzY29wZSB0aGVyZS4gQSBzaGltXG4gKiB0aGF0IGlzIG5vdCBzZXJpYWxpemVkIHNpbGVudGx5IGRlZ3JhZGVzIHRvIHdoYXRldmVyIHRoZSBjb25zdW1lcidzIGdsb2JhbCBzY29wZSBob2xkcyB1bmRlciB0aGF0IG5hbWUgXHUyMDE0IHdoaWNoXG4gKiBpcyBob3cgYF9fbmFtZWAgdXNlZCB0byBlbmQgdXAgaG9sZGluZyBgd2luZG93Lm5hbWVgLlxuICpcbiAqIEEgY2FsbGVyIHRoYXQgbmVlZHMgbW9yZSBpbiB0aGUgYmFubmVyICh0aGUgT2JzaWRpYW4gcGx1Z2luIGJ1aWxkZXIgcGF0Y2hlcyBgcmVxdWlyZWApIGhhbmRzIGluXG4gKiB7QGxpbmsgUHJlcHJvY2Vzc1BsdWdpbk9wdGlvbnMuYWRkaXRpb25hbEJhbm5lckluaXRGdW5jdGlvbnN9LiBFYWNoIG9uZSBpcyBzZXJpYWxpemVkIGFzIGl0cyBPV04gaW1tZWRpYXRlbHlcbiAqIGludm9rZWQgZnVuY3Rpb24gYWZ0ZXIgdGhlIHNoYXJlZCBzY29wZSwgc28gaXQgbXVzdCBiZSBzZWxmLWNvbnRhaW5lZDogaXQgY2Fubm90IHNlZSB0aGUgc2hpbXMsIGFuZCBjYWxsaW5nIG9uZVxuICogZnJvbSBhbm90aGVyIG1vZHVsZSB3b3VsZCBoaXQgZXhhY3RseSB0aGUgY3Jvc3MtbW9kdWxlIHRyYXAgYWJvdmUuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBHZW5lcmljT2JqZWN0IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnZXNidWlsZCc7XG5pbXBvcnQgdHlwZSB7IHBhdGhUb0ZpbGVVUkwgfSBmcm9tICdub2RlOnVybCc7XG5cbmltcG9ydCB7XG4gIEZ1bmN0aW9uSGFuZGxpbmdNb2RlLFxuICB0b0pzb25cbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL29iamVjdC11dGlscyc7XG5pbXBvcnQge1xuICBtYWtlVmFsaWRWYXJpYWJsZU5hbWUsXG4gIHJlcGxhY2VBbGxcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ25vZGU6ZnMvcHJvbWlzZXMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBtYWtlUHJlcHJvY2Vzc0Jhbm5lcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFrZVByZXByb2Nlc3NCYW5uZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNlbGYtY29udGFpbmVkIGZ1bmN0aW9ucyBzZXJpYWxpemVkIGFmdGVyIHRoZSBzaGFyZWQgc2hpbXMsIGVhY2ggaW52b2tlZCBvbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbEJhbm5lckluaXRGdW5jdGlvbnM/OiByZWFkb25seSAoKCkgPT4gdm9pZClbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYnVpbGQgaXMgZm9yIGFuIEVTTSBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBpc0VzbT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHByZXByb2Nlc3NQbHVnaW59LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZXByb2Nlc3NQbHVnaW5PcHRpb25zIHtcbiAgLyoqXG4gICAqIFNlbGYtY29udGFpbmVkIGZ1bmN0aW9ucyBzZXJpYWxpemVkIGludG8gdGhlIGJhbm5lciBhZnRlciB0aGUgc2hhcmVkIHNoaW1zLCBlYWNoIGludm9rZWQgb25jZS5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogRWFjaCBmdW5jdGlvbiBpcyBlbWl0dGVkIGFzIGAoJHtTdHJpbmcoZm4pfSkoKTtgLCBzbyBpdCBtYXkgcmVmZXJlbmNlIG9ubHkgZ2xvYmFscyBhbmQgd2hhdCBpdCBkZWNsYXJlcyBpdHNlbGYuXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsQmFubmVySW5pdEZ1bmN0aW9ucz86IHJlYWRvbmx5ICgoKSA9PiB2b2lkKVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VsZi1jb250YWluZWQgZnVuY3Rpb24gd2hvc2UgcmVzdWx0IHJlcGxhY2VzIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAgaW4gYSBDb21tb25KUyBidWlsZC4gU2VyaWFsaXplZCBpbnRvXG4gICAqIGV2ZXJ5IGZpbGUgdGhhdCByZWFkcyBpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgQSBmdW5jdGlvbiByZXR1cm5pbmcgdGhlIGZpbGUgVVJMIG9mIGBfX2ZpbGVuYW1lYCwgb3IgYGxvY2F0aW9uLmhyZWZgIHdoZXJlIHRoZXJlIGlzIG5vIGBfX2ZpbGVuYW1lYC5cbiAgICovXG4gIHJlYWRvbmx5IGNqc0ltcG9ydE1ldGFVcmxQcm92aWRlcj86ICgpID0+IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYnVpbGQgaXMgZm9yIGFuIEVTTSBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBpc0VzbT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBicm93c2VyLWZsYXZvcmVkIHN0YW5kLWluIGZvciBOb2RlJ3MgYHByb2Nlc3NgIGdsb2JhbC5cbiAqL1xuaW50ZXJmYWNlIEJyb3dzZXJQcm9jZXNzIGV4dGVuZHMgUGFydGlhbDxOb2RlSlMuUHJvY2Vzcz4ge1xuICAvKipcbiAgICogTWFya3MgdGhlIHByb2Nlc3MgYXMgYSBicm93c2VyIG9uZS4gVGhlIGJ1bmRsZWQgYGRlYnVnYCBwYWNrYWdlIHNlbGVjdHMgaXRzIGJyb3dzZXIgZW50cnkgcG9pbnQgb24gaXQuXG4gICAqL1xuICBicm93c2VyOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBzbGljZSBvZiB0aGUgYFN5bWJvbGAgY29uc3RydWN0b3Ige0BsaW5rIGVuc3VyZURpc3Bvc2VTeW1ib2xzfSByZWFkcyBhbmQgd3JpdGVzLCB3aXRoIHRoZSB0d28gZGlzcG9zZVxuICogc3ltYm9scyBvcHRpb25hbCBiZWNhdXNlIGFuIGVuZ2luZSB3aXRob3V0IEV4cGxpY2l0IFJlc291cmNlIE1hbmFnZW1lbnQgZG9lcyBub3QgaGF2ZSB0aGVtLlxuICovXG5pbnRlcmZhY2UgRGlzcG9zZVN5bWJvbEhvc3Qge1xuICBhc3luY0Rpc3Bvc2U/OiBzeW1ib2w7XG4gIGRpc3Bvc2U/OiBzeW1ib2w7XG4gIGZvcjogKGtleTogc3RyaW5nKSA9PiBzeW1ib2w7XG59XG5cbmludGVyZmFjZSBFc21Nb2R1bGUge1xuICBfX2VzTW9kdWxlOiBib29sZWFuO1xuICBkZWZhdWx0OiB1bmtub3duO1xufVxuXG4vKipcbiAqIFRoZSBzbGljZSBvZiBhIGJyb3dzZXIgZ2xvYmFsIHtAbGluayBnZXRDanNJbXBvcnRNZXRhVXJsfSByZWFkcywgb3B0aW9uYWwgYmVjYXVzZSBhIG5vbi1icm93c2VyIGhvc3QgaGFzIG5vbmUuXG4gKi9cbmludGVyZmFjZSBMb2NhdGlvbkhvc3Qge1xuICBsb2NhdGlvbj86IFBhZ2VMb2NhdGlvbjtcbn1cblxuaW50ZXJmYWNlIFBhZ2VMb2NhdGlvbiB7XG4gIGhyZWY6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFVybE1vZHVsZSB7XG4gIHBhdGhUb0ZpbGVVUkw6IHR5cGVvZiBwYXRoVG9GaWxlVVJMO1xufVxuXG4vKipcbiAqIEVuc3VyZXMgdGhlIGJ1bmRsZSBydW5zIGFnYWluc3QgYSBgcHJvY2Vzc2AgZ2xvYmFsIHRoYXQgYnJvd3Nlci10YXJnZXRpbmcgcGFja2FnZXMgcmVjb2duaXplLlxuICpcbiAqIEByZW1hcmtzXG4gKiBTZXJpYWxpemVkIGludG8gdGhlIGVtaXR0ZWQgYmFubmVyLCBzbyBpdCBuZXZlciBydW5zIGluIHRoZSBidWlsZGVyIHByb2Nlc3MgXHUyMDE0IGJ1dCBpdCBpcyBhbiBvcmRpbmFyeVxuICogZnVuY3Rpb24gaGVyZSwgc28gaXQgaXMgdW5pdC10ZXN0ZWQgZGlyZWN0bHkgcmF0aGVyIHRoYW4gYnkgZXZhbHVhdGluZyB0aGUgYmFubmVyIHRleHQuXG4gKlxuICogRmlsbHMgaW4gdGhlIGtleXMgTUlTU0lORyBmcm9tIGEgaG9zdC1wcm92aWRlZCBgcHJvY2Vzc2AgcmF0aGVyIHRoYW4gcmVwbGFjaW5nIG9yIHNraXBwaW5nIGl0LiBPYnNpZGlhblxuICogTW9iaWxlIGV4cG9zZXMgYSBwYXJ0aWFsIGBwcm9jZXNzYCwgYW5kIHRoZSB3aG9sZS1vYmplY3QgZ3VhcmRzIHRoaXMgcmVwbGFjZWQgKGBpZiAoZ2xvYmFsVGhpcy5wcm9jZXNzKSB7XG4gKiByZXR1cm47IH1gIC8gYGdsb2JhbFRoaXNSZWNvcmRbJ3Byb2Nlc3MnXSA/Pz0gXHUyMDI2YCkgdG9vayB0aGF0IGFzIFwiYWxyZWFkeSBzaGltbWVkXCIsIHNvIGBicm93c2VyYCBuZXZlclxuICogbGFuZGVkLiBUaGUgYnVuZGxlZCBgZGVidWdgIHBhY2thZ2UgdGhlbiBzZWxlY3RlZCBpdHMgTm9kZSBlbnRyeSBwb2ludCwgd2hpY2ggY2FsbHNcbiAqIGByZXF1aXJlKCd1dGlsJykuZGVwcmVjYXRlKClgIGF0IG1vZHVsZSB0b3AgbGV2ZWwsIGFuZCBvbiBtb2JpbGUgdGhlIHBhdGNoZWQgYHJlcXVpcmVgIHJldHVybnMgYHt9YCBcdTIwMTQgc29cbiAqIHRoZSBwbHVnaW4gdGhyZXcgYmVmb3JlIGl0cyBgb25sb2FkYCByYW4uXG4gKlxuICogQSByZWFsIE5vZGUgb3IgRWxlY3Ryb24gYHByb2Nlc3NgIGlzIGxlZnQgY29tcGxldGVseSB1bnRvdWNoZWQuIGBwcm9jZXNzLnZlcnNpb25zLm5vZGVgIGlzIHRoZSBzaWduYWwgZm9yXG4gKiBpdCwgYW5kIGl0IGlzIHNlbGYtY29udGFpbmVkLCBzbyBpdCBhbHNvIGhvbGRzIGluIHRoZSBOb2RlIENMSSBidW5kbGVzIHRoaXMgYmFubmVyIGlzIGVtaXR0ZWQgaW50by5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUJyb3dzZXJQcm9jZXNzKCk6IHZvaWQge1xuICBjb25zdCBicm93c2VyUHJvY2VzczogR2VuZXJpY09iamVjdDxCcm93c2VyUHJvY2Vzcz4gPSB7XG4gICAgYnJvd3NlcjogdHJ1ZSxcbiAgICBjd2QoKSB7XG4gICAgICByZXR1cm4gJy8nO1xuICAgIH0sXG4gICAgZW52OiB7fSxcbiAgICBwbGF0Zm9ybTogJ2FuZHJvaWQnXG4gIH07XG5cbiAgY29uc3QgZXhpc3RpbmdQcm9jZXNzID0gZ2xvYmFsVGhpcy5wcm9jZXNzIGFzIFBhcnRpYWw8Tm9kZUpTLlByb2Nlc3M+IHwgdW5kZWZpbmVkO1xuXG4gIGlmICghZXhpc3RpbmdQcm9jZXNzKSB7XG4gICAgZ2xvYmFsVGhpcy5wcm9jZXNzID0gYnJvd3NlclByb2Nlc3MgYXMgTm9kZUpTLlByb2Nlc3M7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGV4aXN0aW5nUHJvY2Vzcy52ZXJzaW9ucz8ubm9kZSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGV4aXN0aW5nUHJvY2Vzc1JlY29yZCA9IGV4aXN0aW5nUHJvY2VzcyBhcyBHZW5lcmljT2JqZWN0O1xuXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGJyb3dzZXJQcm9jZXNzKSkge1xuICAgIGV4aXN0aW5nUHJvY2Vzc1JlY29yZFtrZXldID8/PSB2YWx1ZTtcbiAgfVxuXG4gIGV4aXN0aW5nUHJvY2Vzc1JlY29yZFsnYnJvd3NlciddID0gdHJ1ZTtcbn1cblxuLyoqXG4gKiBNYWtlcyBgU3ltYm9sLmRpc3Bvc2VgIGFuZCBgU3ltYm9sLmFzeW5jRGlzcG9zZWAgZXhpc3QsIGZhbGxpbmcgYmFjayB0byB0aGUgcmVnaXN0cnkgc3ltYm9scyBlc2J1aWxkJ3NcbiAqIGB1c2luZ2AgaGVscGVycyBsb29rIHVwLlxuICpcbiAqIEBwYXJhbSBzeW1ib2xDb25zdHJ1Y3RvciAtIFRoZSBgU3ltYm9sYCBjb25zdHJ1Y3RvciB0byBwYXRjaC4gRGVmYXVsdHMgdG8gdGhlIGFtYmllbnQgb25lOyB0aGUgcGFyYW1ldGVyXG4gKiBleGlzdHMgc28gYSB0ZXN0IGNhbiBoYW5kIGluIGFuIGVuZ2luZSB0aGF0IGxhY2tzIHRoZSB3ZWxsLWtub3duIHN5bWJvbHMuXG4gKlxuICogQHJlbWFya3NcbiAqIFNlcmlhbGl6ZWQgaW50byB0aGUgZW1pdHRlZCBiYW5uZXIuIEEgZGlzcG9zYWJsZSBkZWNsYXJlcyBpdHMgbWV0aG9kIHVuZGVyIHRoZSBMSVRFUkFMIGtleVxuICogYFtTeW1ib2wuZGlzcG9zZV1gLCB3aGlsZSBlc2J1aWxkIGxvd2VycyBldmVyeSBgdXNpbmdgIHRvIGEgbG9va3VwIHRocm91Z2ggYF9fa25vd25TeW1ib2woJ2Rpc3Bvc2UnKWAsXG4gKiB3aGljaCBmYWxscyBiYWNrIHRvIGBTeW1ib2wuZm9yKCdTeW1ib2wuZGlzcG9zZScpYCB3aGVuIHRoZSBlbmdpbmUgaGFzIG5vIHdlbGwta25vd24gc3ltYm9sLiBPbiBzdWNoIGFuXG4gKiBlbmdpbmUgdGhlIGxpdGVyYWwga2V5IGV2YWx1YXRlcyB0byBgdW5kZWZpbmVkYCwgdGhlIG1ldGhvZCBsYW5kcyB1bmRlciB0aGUgc3RyaW5nIGBcInVuZGVmaW5lZFwiYCwgYW5kXG4gKiBldmVyeSBgdXNpbmdgIG9mIGl0IHRocm93cyBgT2JqZWN0IG5vdCBkaXNwb3NhYmxlYC4gRmlsbGluZyB0aGUgd2VsbC1rbm93biBzbG90IHdpdGggdGhhdCBzYW1lIHJlZ2lzdHJ5XG4gKiBzeW1ib2wgbWFrZXMgYm90aCBzaWRlcyBuYW1lIG9uZSBrZXkgb24gZXZlcnkgZW5naW5lLiBBIGhvc3QgdGhhdCBhbHJlYWR5IGhhcyB0aGUgc3ltYm9sIGlzIGxlZnRcbiAqIHVudG91Y2hlZDogYD8/PWAgbmV2ZXIgcmVhY2hlcyB0aGUgYXNzaWdubWVudCwgd2hpY2ggdGhlIGhvc3QncyBub24td3JpdGFibGUgcHJvcGVydHkgd291bGQgcmVmdXNlLlxuICpcbiAqIFRoZSBkZWZhdWx0IG5hbWVzIGBTeW1ib2xgIGJhcmUgb24gcHVycG9zZTogaXQgZXhpc3RzIG9uIGV2ZXJ5IGVuZ2luZSB0aGlzIHJ1bnMgb24sIGFuZCBhIGJhcmUgcmVmZXJlbmNlXG4gKiByZXNvbHZlcyBhZ2FpbnN0IHdoYXRldmVyIHNjb3BlIHRoZSBiYW5uZXIgaXMgZXZhbHVhdGVkIGluLCBleGFjdGx5IGFzIHRoZSBidW5kbGUncyBvd25cbiAqIGBbU3ltYm9sLmRpc3Bvc2VdYCBrZXlzIGRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlRGlzcG9zZVN5bWJvbHMoc3ltYm9sQ29uc3RydWN0b3I6IERpc3Bvc2VTeW1ib2xIb3N0ID0gU3ltYm9sKTogdm9pZCB7XG4gIHN5bWJvbENvbnN0cnVjdG9yLmFzeW5jRGlzcG9zZSA/Pz0gc3ltYm9sQ29uc3RydWN0b3IuZm9yKCdTeW1ib2wuYXN5bmNEaXNwb3NlJyk7XG4gIHN5bWJvbENvbnN0cnVjdG9yLmRpc3Bvc2UgPz89IHN5bWJvbENvbnN0cnVjdG9yLmZvcignU3ltYm9sLmRpc3Bvc2UnKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGl0cyBhcmd1bWVudCB1bmNoYW5nZWQuXG4gKlxuICogQHBhcmFtICR1bmtub3duIC0gVGhlIHZhbHVlIHRvIHJldHVybi5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBwYXNzZWQgaW4uXG4gKlxuICogQHJlbWFya3NcbiAqIFNlcmlhbGl6ZWQgaW50byB0aGUgZW1pdHRlZCBiYW5uZXIsIHdoZXJlIGl0IHN0YW5kcyBpbiBmb3IgZXNidWlsZCdzIGBfX25hbWVgIGhlbHBlciBcdTIwMTQgd2hpY2ggbmFtZXMgYVxuICogZnVuY3Rpb24gYW5kIHJldHVybnMgaXQgXHUyMDE0IGZvciBidW5kbGVzIHRoYXQgcmVmZXJlbmNlIHRoZSBoZWxwZXIgd2l0aG91dCBlbWl0dGluZyB0aGVpciBvd24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrZWVwTmFtZSgkdW5rbm93bjogdW5rbm93bik6IHVua25vd24ge1xuICByZXR1cm4gJHVua25vd247XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBiYW5uZXIgaW5qZWN0ZWQgYXQgdGhlIHRvcCBvZiBldmVyeSBlbWl0dGVkIGJ1bmRsZS5cbiAqXG4gKiBgU3RyaW5nKGZuKWAgY2FwdHVyZXMgb25seSB0aGUgZnVuY3Rpb24ncyBvd24gYm9keSwgc28gZXZlcnkgc2hpbSB0aGUgYGluaXRgIGZ1bmN0aW9uIGNhbGxzIGhhcyB0byBiZVxuICogc2VyaWFsaXplZCBuZXh0IHRvIGl0IGFuZCB3cmFwcGVkIGluIG9uZSBzaGFyZWQgc2NvcGU7IG90aGVyd2lzZSB0aGUgY2FsbCBpdCBtYWtlcyByZXNvbHZlcyBhZ2FpbnN0IHRoZVxuICogY29uc3VtZXIncyBnbG9iYWwgc2NvcGUgYXQgcnVudGltZS4gU2VlIHRoaXMgZmlsZSdzIGBAZmlsZWAgcmVtYXJrcy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBiYW5uZXIgb3B0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBiYW5uZXIgc291cmNlIHRvIHByZXBlbmQgdG8gdGhlIGVtaXR0ZWQgYnVuZGxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZVByZXByb2Nlc3NCYW5uZXIob3B0aW9uczogTWFrZVByZXByb2Nlc3NCYW5uZXJPcHRpb25zID0ge30pOiBzdHJpbmcge1xuICBjb25zdCB7IGFkZGl0aW9uYWxCYW5uZXJJbml0RnVuY3Rpb25zID0gW10sIGlzRXNtID0gZmFsc2UgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHNoaW1zID0gaXNFc20gPyBbZW5zdXJlRGlzcG9zZVN5bWJvbHMsIGVuc3VyZUJyb3dzZXJQcm9jZXNzXSA6IFtlbnN1cmVEaXNwb3NlU3ltYm9scywgZW5zdXJlQnJvd3NlclByb2Nlc3MsIGtlZXBOYW1lXTtcbiAgY29uc3QgaW5pdCA9IGlzRXNtID8gaW5pdEVzbSA6IGluaXRDanM7XG4gIGNvbnN0IGFkZGl0aW9uYWxJbml0cyA9IGFkZGl0aW9uYWxCYW5uZXJJbml0RnVuY3Rpb25zLm1hcCgoZnVuY3Rpb25fKSA9PiBgKCR7U3RyaW5nKGZ1bmN0aW9uXyl9KSgpO1xcbmApLmpvaW4oJycpO1xuICByZXR1cm4gYFxcbihmdW5jdGlvbiAoKSB7XFxuJHtzaGltcy5tYXAoU3RyaW5nKS5qb2luKCdcXG5cXG4nKX1cXG5cXG4oJHtTdHJpbmcoaW5pdCl9KSgpO1xcbn0pKCk7XFxuJHthZGRpdGlvbmFsSW5pdHN9YDtcbn1cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEV2ZXJ5dGhpbmcgZnJvbSBoZXJlIHRvIHRoZSBtYXRjaGluZyBgc3RvcGAgZWl0aGVyIG5lZWRzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQgb3IgaXMgc2VyaWFsaXplZCBpbnRvIHRoZSBlbWl0dGVkIGJhbm5lciBhbmQgc28gcnVucyBpbnNpZGUgdGhlIGJ1aWx0IGJ1bmRsZSwgbmV2ZXIgaW4gdGhpcyBwcm9jZXNzLiBUaGUgc2hpbXMgYWJvdmUgYXJlIGRlbGliZXJhdGVseSBOT1QgaWdub3JlZDogdGhleSBhcmUgb3JkaW5hcnkgZnVuY3Rpb25zIGhlcmUgYW5kIGFyZSB1bml0LXRlc3RlZCBkaXJlY3RseS4gKi9cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVzYnVpbGQgcGx1Z2luIHRoYXQgcHJlcHJvY2Vzc2VzIEphdmFTY3JpcHQgYW5kIFR5cGVTY3JpcHQgZmlsZXMuXG4gKlxuICogVGhpcyBwbHVnaW4gcGVyZm9ybXMgdGhlIGZvbGxvd2luZyB0YXNrczpcbiAqIC0gUmVwbGFjZXMgaW5zdGFuY2VzIG9mIGBpbXBvcnQoZG90KW1ldGEoZG90KXVybGAgd2l0aCBhIENvbW1vbkpTLWNvbXBhdGlibGUgYF9fZmlsZW5hbWVgIGFsdGVybmF0aXZlLlxuICogLSBNb2RpZmllcyB0aGUgYHNvdXJjZU1hcHBpbmdVUkxgIGNvbW1lbnQgc28gYSB0ZW1wbGF0ZSBsaXRlcmFsIGVuZGluZyBhIGZpbGUgZG9lcyBub3Qgc3dhbGxvdyBpdC5cbiAqIC0gQWRkcyBhIGJhc2ljIGBwcm9jZXNzYCBvYmplY3QgdG8gdGhlIGdsb2JhbCBzY29wZSBpZiBgcHJvY2Vzc2AgaXMgcmVmZXJlbmNlZCBidXQgbm90IGRlZmluZWQuXG4gKiAtIEZpbGxzIGluIGBTeW1ib2wuZGlzcG9zZWAgLyBgU3ltYm9sLmFzeW5jRGlzcG9zZWAgb24gZW5naW5lcyB0aGF0IGxhY2sgdGhlbSwgc28gYHVzaW5nYCB3b3JrcyB0aGVyZS5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBwbHVnaW4gb3B0aW9ucy5cbiAqIEByZXR1cm5zIEFuIGVzYnVpbGQgYFBsdWdpbmAgb2JqZWN0IHRoYXQgaGFuZGxlcyB0aGUgcHJlcHJvY2Vzc2luZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXByb2Nlc3NQbHVnaW4ob3B0aW9uczogUHJlcHJvY2Vzc1BsdWdpbk9wdGlvbnMgPSB7fSk6IFBsdWdpbiB7XG4gIGNvbnN0IHsgYWRkaXRpb25hbEJhbm5lckluaXRGdW5jdGlvbnMgPSBbXSwgY2pzSW1wb3J0TWV0YVVybFByb3ZpZGVyID0gZ2V0Q2pzSW1wb3J0TWV0YVVybCwgaXNFc20gPSBmYWxzZSB9ID0gb3B0aW9ucztcbiAgY29uc3QgcmVwbGFjZW1lbnRzID0gaXNFc21cbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICBbXG4gICAgICAgIHJlcGxhY2VBbGwoe1xuICAgICAgICAgICRzdHJpbmc6ICdpbXBvcnQoZG90KW1ldGEoZG90KXVybCcsXG4gICAgICAgICAgcmVwbGFjZXI6ICcuJyxcbiAgICAgICAgICBzZWFyY2hWYWx1ZTogJyhkb3QpJ1xuICAgICAgICB9KVxuICAgICAgXTogY2pzSW1wb3J0TWV0YVVybFByb3ZpZGVyXG4gICAgfTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdwcmVwcm9jZXNzJyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMuZGVmaW5lID8/PSB7fTtcblxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVwbGFjZW1lbnRzKSkge1xuICAgICAgICBidWlsZC5pbml0aWFsT3B0aW9ucy5kZWZpbmVba2V5XSA9IGBfXyR7bWFrZVZhbGlkVmFyaWFibGVOYW1lKGtleSl9YDtcbiAgICAgIH1cblxuICAgICAgYnVpbGQuaW5pdGlhbE9wdGlvbnMuYmFubmVyID8/PSB7fTtcbiAgICAgIGJ1aWxkLmluaXRpYWxPcHRpb25zLmJhbm5lclsnanMnXSA/Pz0gJyc7XG4gICAgICBidWlsZC5pbml0aWFsT3B0aW9ucy5iYW5uZXJbJ2pzJ10gKz0gbWFrZVByZXByb2Nlc3NCYW5uZXIoeyBhZGRpdGlvbmFsQmFubmVySW5pdEZ1bmN0aW9ucywgaXNFc20gfSk7XG5cbiAgICAgIGJ1aWxkLm9uTG9hZCh7IGZpbHRlcjogL1xcLig/OmpzfHRzfGNqc3xtanN8Y3RzfG10cykkLyB9LCBhc3luYyAoJGFyZ3VtZW50cykgPT4ge1xuICAgICAgICBsZXQgY29udGVudHMgPSBhd2FpdCByZWFkRmlsZSgkYXJndW1lbnRzLnBhdGgsICd1dGYtOCcpO1xuXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJlcGxhY2VtZW50cykpIHtcbiAgICAgICAgICBjb25zdCB2YXJpYWJsZSA9IGBfXyR7bWFrZVZhbGlkVmFyaWFibGVOYW1lKGtleSl9YDtcbiAgICAgICAgICBpZiAoIWNvbnRlbnRzLmluY2x1ZGVzKGtleSkgfHwgY29udGVudHMuaW5jbHVkZXMoYHZhciAke3ZhcmlhYmxlfWApKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyBgKCR7U3RyaW5nKHZhbHVlKX0pKClgIDogdG9Kc29uKHZhbHVlLCB7IGZ1bmN0aW9uSGFuZGxpbmdNb2RlOiBGdW5jdGlvbkhhbmRsaW5nTW9kZS5GdWxsIH0pO1xuICAgICAgICAgIGNvbnRlbnRzID0gYHZhciAke3ZhcmlhYmxlfSA9IGdsb2JhbFRoaXNbJyR7a2V5fSddID8/ICR7dmFsdWVTdHJpbmd9O1xcbiR7Y29udGVudHN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhBQ0s6IFRoZSAkeycnfSBwYXJ0IGlzIHVzZWQgdG8gZW5zdXJlIE9ic2lkaWFuIGxvYWRzIHRoZSBwbHVnaW4gcHJvcGVybHksXG4gICAgICAgIC8vIE90aGVyd2lzZSwgaXQgc3RvcHMgbG9hZGluZyBhZnRlciB0aGUgZmlyc3QgbGluZSBvZiB0aGUgc291cmNlTWFwcGluZ1VSTCBjb21tZW50LlxuXG4gICAgICAgIGNvbnRlbnRzID0gcmVwbGFjZUFsbCh7XG4gICAgICAgICAgJHN0cmluZzogY29udGVudHMsXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRlbXBsYXRlLWN1cmx5LWluLXN0cmluZyAtLSBJdCBpcyBpbnRlbnRpb25hbCwgdGhlIHN0cmluZyBsb29rcyBsaWtlIGEgdGVtcGxhdGUgbGl0ZXJhbCwgYnV0IGl0IGlzIG5vdC5cbiAgICAgICAgICByZXBsYWNlcjogJ2BcXG4vLyMke1xcJ1xcJ30gc291cmNlTWFwcGluZ1VSTCcsXG4gICAgICAgICAgc2VhcmNoVmFsdWU6IC9gXFxyP1xcblxcL1xcLyMgc291cmNlTWFwcGluZ1VSTC9nXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudHMsXG4gICAgICAgICAgbG9hZGVyOiAndHMnXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldENqc0ltcG9ydE1ldGFVcmwoKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBfX2ZpbGVuYW1lID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGxvY2FsUmVxdWlyZSA9IHJlcXVpcmU7XG4gICAgY29uc3QgdXJsID0gbG9jYWxSZXF1aXJlKCdub2RlOnVybCcpIGFzIFVybE1vZHVsZTtcbiAgICBpZiAodHlwZW9mIHVybC5wYXRoVG9GaWxlVVJMID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdXJsLnBhdGhUb0ZpbGVVUkwoX19maWxlbmFtZSkuaHJlZjtcbiAgICB9XG4gIH1cblxuICAvLyBGYWxsYmFjayB0byB0aGUgcGFnZSBVUkwsIG9yIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgZW52aXJvbm1lbnQgaXMgdW5rbm93bi5cbiAgcmV0dXJuIChnbG9iYWxUaGlzIGFzIExvY2F0aW9uSG9zdCkubG9jYXRpb24/LmhyZWYgPz8gJyc7XG59XG5cbmZ1bmN0aW9uIGluaXRDanMoKTogdm9pZCB7XG4gIGNvbnN0IGdsb2JhbFRoaXNSZWNvcmQgPSBnbG9iYWxUaGlzIGFzIEdlbmVyaWNPYmplY3Q7XG4gIGVuc3VyZURpc3Bvc2VTeW1ib2xzKCk7XG4gIGdsb2JhbFRoaXNSZWNvcmRbJ19fbmFtZSddID8/PSBrZWVwTmFtZTtcbiAgZ2xvYmFsVGhpc1JlY29yZFsnX19leHRyYWN0RGVmYXVsdCddID8/PSBleHRyYWN0RGVmYXVsdDtcblxuICBlbnN1cmVCcm93c2VyUHJvY2VzcygpO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL2NvbnNpc3RlbnQtZnVuY3Rpb24tc2NvcGluZyAtLSBTZXJpYWxpemVkIHdpdGggaW5pdENqcyBpbnRvIHRoZSBiYW5uZXI7IGF0IG1vZHVsZSBzY29wZSBpdCB3b3VsZCBiZSBsZWZ0IG91dCBvZiBpdC5cbiAgZnVuY3Rpb24gZXh0cmFjdERlZmF1bHQobW9kdWxlOiBQYXJ0aWFsPEVzbU1vZHVsZT4gfCB1bmRlZmluZWQpOiB1bmtub3duIHtcbiAgICByZXR1cm4gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlICYmICdkZWZhdWx0JyBpbiBtb2R1bGUgPyBtb2R1bGUuZGVmYXVsdCA6IG1vZHVsZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0RXNtKCk6IHZvaWQge1xuICBlbnN1cmVEaXNwb3NlU3ltYm9scygpO1xuICBlbnN1cmVCcm93c2VyUHJvY2VzcygpO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFB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
|