@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,123 @@
|
|
|
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 fs_exports = {};
|
|
80
|
+
__export(fs_exports, {
|
|
81
|
+
readdirPosix: () => readdirPosix
|
|
82
|
+
});
|
|
83
|
+
module.exports = __toCommonJS(fs_exports);
|
|
84
|
+
var import_path = require('@mnaoumov/typescript-lib/path');
|
|
85
|
+
var import_type_guards = require('@mnaoumov/typescript-lib/type-guards');
|
|
86
|
+
var import_promises = require('node:fs/promises');
|
|
87
|
+
async function readdirPosix(path, options = {}) {
|
|
88
|
+
if (isStringResultOptions(options)) {
|
|
89
|
+
const paths = await (0, import_promises.readdir)(path, options);
|
|
90
|
+
return paths.map((entryPath) => (0, import_path.toPosixPath)(entryPath));
|
|
91
|
+
}
|
|
92
|
+
if (isBufferResultOptions(options)) {
|
|
93
|
+
const buffers = await (0, import_promises.readdir)(path, options);
|
|
94
|
+
return buffers.map((buffer) => (0, import_path.toPosixBuffer)(buffer));
|
|
95
|
+
}
|
|
96
|
+
const dirents = await (0, import_promises.readdir)(path, options);
|
|
97
|
+
for (const dirent of dirents) {
|
|
98
|
+
dirent.name = (0, import_path.toPosixPath)(dirent.name);
|
|
99
|
+
dirent.parentPath = (0, import_path.toPosixPath)(dirent.parentPath);
|
|
100
|
+
}
|
|
101
|
+
return dirents;
|
|
102
|
+
}
|
|
103
|
+
function isBufferResultOptions(options) {
|
|
104
|
+
(0, import_type_guards.assertNonNullable)(options);
|
|
105
|
+
if (options === "buffer") {
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
const commonOptions = options;
|
|
109
|
+
return commonOptions.withFileTypes !== true && commonOptions.encoding === "buffer";
|
|
110
|
+
}
|
|
111
|
+
function isStringResultOptions(options) {
|
|
112
|
+
(0, import_type_guards.assertNonNullable)(options);
|
|
113
|
+
if (options === "buffer") {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
const commonOptions = options;
|
|
117
|
+
return !(commonOptions.encoding === "buffer" || commonOptions.withFileTypes === true);
|
|
118
|
+
}
|
|
119
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
120
|
+
0 && (module.exports = {
|
|
121
|
+
readdirPosix
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2ZzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGZpbGUgc3lzdGVtIG9wZXJhdGlvbnMuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBEaXJlbnQsXG4gIE9iamVjdEVuY29kaW5nT3B0aW9ucyxcbiAgUGF0aExpa2Vcbn0gZnJvbSAnbm9kZTpmcyc7XG5cbmltcG9ydCB7XG4gIHRvUG9zaXhCdWZmZXIsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9wYXRoJztcbmltcG9ydCB7IGFzc2VydE5vbk51bGxhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IHJlYWRkaXIgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb250cm9sbGluZyB0aGUgZm9ybWF0IG9mIHRoZSByZXN1bHQgd2hlbiByZXR1cm5pbmcgYnVmZmVycy5cbiAqXG4gKiBgZGlyZWN0b3J5YCBpcyB1c2VkIGluc3RlYWQgb2YgYGZvbGRlcmAgdG8gcHJlc2VydmUgY29tcGF0aWJpbGl0eSB3aXRoIGBub2RlOmZzYCBtb2R1bGUuXG4gKi9cbmV4cG9ydCB0eXBlIEJ1ZmZlclJlc3VsdE9wdGlvbnMgPSAnYnVmZmVyJyB8IEJ1ZmZlclJlc3VsdE9iamVjdE9wdGlvbnM7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29udHJvbGxpbmcgdGhlIGZvcm1hdCBvZiB0aGUgcmVzdWx0IHdoZW4gcmV0dXJuaW5nIERpcmVudCBvYmplY3RzLlxuICovXG5leHBvcnQgdHlwZSBEaXJlbnRSZXN1bHRPcHRpb25zID0gRGlyZW50UmVzdWx0QmFzZU9wdGlvbnMgJiBPYmplY3RFbmNvZGluZ09wdGlvbnM7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29udHJvbGxpbmcgdGhlIGZvcm1hdCBvZiB0aGUgcmVzdWx0IHdoZW4gcmV0dXJuaW5nIHN0cmluZ3MuXG4gKi9cbmV4cG9ydCB0eXBlIFN0cmluZ1Jlc3VsdE9wdGlvbnMgPVxuICB8IE9iamVjdEVuY29kaW5nT3B0aW9ucyAmIFN0cmluZ1Jlc3VsdEJhc2VPcHRpb25zXG4gIHwgdW5kZWZpbmVkO1xuXG5pbnRlcmZhY2UgQnVmZmVyUmVzdWx0T2JqZWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTaG91bGQgYmUgc2V0IHRvIFwiYnVmZmVyXCIgdG8gcmV0dXJuIGJ1ZmZlcnMuXG4gICAqL1xuICByZWFkb25seSBlbmNvZGluZzogJ2J1ZmZlcic7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSBzdWJkaXJlY3RvcmllcyB3aGVuIHJlYWRpbmcgdGhlIGRpcmVjdG9yeS4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byBgZmFsc2VgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjdXJzaXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdWxkIGJlIHNldCB0byBgZmFsc2VgIHRvIHJldHVybiBidWZmZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgd2l0aEZpbGVUeXBlcz86IGZhbHNlO1xufVxuXG4vKipcbiAqIENvbW1vbiBvcHRpb25zIGZvciBjb250cm9sbGluZyB0aGUgZm9ybWF0IG9mIHRoZSByZXN1bHQuXG4gKi9cbmludGVyZmFjZSBDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEVuY29kaW5nIHRvIHVzZSB3aGVuIHJldHVybmluZyBzdHJpbmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jb2Rpbmc/OiAnYnVmZmVyJyB8IE5vZGVKUy5CdWZmZXJFbmNvZGluZztcblxuICAvKipcbiAgICogU2V0IGB0cnVlYCB0byByZXR1cm4gRGlyZW50IG9iamVjdHMgb3IgYGZhbHNlYCB0byByZXR1cm4gc3RyaW5ncyBvciBidWZmZXJzLlxuICAgKi9cbiAgcmVhZG9ubHkgd2l0aEZpbGVUeXBlcz86IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBEaXJlbnRSZXN1bHRCYXNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgc3ViZGlyZWN0b3JpZXMgd2hlbiByZWFkaW5nIHRoZSBkaXJlY3RvcnkuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIHJlYWRvbmx5IHJlY3Vyc2l2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNob3VsZCBiZSBzZXQgdG8gYHRydWVgIHRvIHJldHVybiBEaXJlbnQgb2JqZWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IHdpdGhGaWxlVHlwZXM6IHRydWU7XG59XG5cbmludGVyZmFjZSBTdHJpbmdSZXN1bHRCYXNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgc3ViZGlyZWN0b3JpZXMgd2hlbiByZWFkaW5nIHRoZSBkaXJlY3RvcnkuIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgICovXG4gIHJlYWRvbmx5IHJlY3Vyc2l2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYCB0byByZXR1cm4gc3RyaW5ncy5cbiAgICovXG4gIHJlYWRvbmx5IHdpdGhGaWxlVHlwZXM/OiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZWFkcyB0aGUgY29udGVudHMgb2YgYSBkaXJlY3RvcnkgYW5kIHJldHVybnMgYW4gYXJyYXkgb2Ygc3RyaW5ncyB3aXRoIFBPU0lYIHBhdGhzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyB0byBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIHJlc3VsdC4gSWYgbm90IHByb3ZpZGVkLCByZXR1cm5zIHN0cmluZ3MuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgUE9TSVgtZm9ybWF0dGVkIGZpbGUgcGF0aHMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkZGlyUG9zaXgocGF0aDogUGF0aExpa2UsIG9wdGlvbnM/OiBTdHJpbmdSZXN1bHRPcHRpb25zKTogUHJvbWlzZTxzdHJpbmdbXT47XG4vKipcbiAqIFJlYWRzIHRoZSBjb250ZW50cyBvZiBhIGRpcmVjdG9yeSBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiBidWZmZXJzIHdpdGggUE9TSVggcGF0aHMuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byB0aGUgZGlyZWN0b3J5LlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIHRvIGNvbnRyb2wgdGhlIGZvcm1hdCBvZiB0aGUgcmVzdWx0LiBTcGVjaWZ5IFwiYnVmZmVyXCIgdG8gcmV0dXJuIGJ1ZmZlcnMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgUE9TSVgtZm9ybWF0dGVkIGJ1ZmZlcnMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkZGlyUG9zaXgocGF0aDogUGF0aExpa2UsIG9wdGlvbnM6IEJ1ZmZlclJlc3VsdE9wdGlvbnMpOiBQcm9taXNlPEJ1ZmZlcltdPjtcbi8qKlxuICogUmVhZHMgdGhlIGNvbnRlbnRzIG9mIGEgZGlyZWN0b3J5IGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIERpcmVudCBvYmplY3RzIHdpdGggUE9TSVggcGF0aHMuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byB0aGUgZGlyZWN0b3J5LlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIHRvIGNvbnRyb2wgdGhlIGZvcm1hdCBvZiB0aGUgcmVzdWx0LiBTcGVjaWZ5IGB3aXRoRmlsZVR5cGVzOiB0cnVlYCB0byByZXR1cm4gRGlyZW50IG9iamVjdHMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggYW4gYXJyYXkgb2YgUE9TSVgtZm9ybWF0dGVkIERpcmVudCBvYmplY3RzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZGRpclBvc2l4KHBhdGg6IFBhdGhMaWtlLCBvcHRpb25zOiBEaXJlbnRSZXN1bHRPcHRpb25zKTogUHJvbWlzZTxEaXJlbnRbXT47XG4vKipcbiAqIFJlYWRzIHRoZSBjb250ZW50cyBvZiBhIGRpcmVjdG9yeSBhbmQgY29udmVydHMgZmlsZSBwYXRocyBvciBidWZmZXIgcmVzdWx0cyB0byBQT1NJWCBmb3JtYXQuXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCB0byB0aGUgZGlyZWN0b3J5LlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIHRvIGNvbnRyb2wgdGhlIGZvcm1hdCBvZiB0aGUgcmVzdWx0LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIFBPU0lYLWZvcm1hdHRlZCBmaWxlIHBhdGhzLCBidWZmZXJzLCBvciBEaXJlbnQgb2JqZWN0cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRkaXJQb3NpeChcbiAgcGF0aDogUGF0aExpa2UsXG4gIG9wdGlvbnM6IEJ1ZmZlclJlc3VsdE9wdGlvbnMgfCBEaXJlbnRSZXN1bHRPcHRpb25zIHwgU3RyaW5nUmVzdWx0T3B0aW9ucyA9IHt9XG4pOiBQcm9taXNlPEJ1ZmZlcltdIHwgRGlyZW50W10gfCBzdHJpbmdbXT4ge1xuICBpZiAoaXNTdHJpbmdSZXN1bHRPcHRpb25zKG9wdGlvbnMpKSB7XG4gICAgY29uc3QgcGF0aHMgPSBhd2FpdCByZWFkZGlyKHBhdGgsIG9wdGlvbnMpO1xuICAgIHJldHVybiBwYXRocy5tYXAoKGVudHJ5UGF0aCkgPT4gdG9Qb3NpeFBhdGgoZW50cnlQYXRoKSk7XG4gIH1cblxuICBpZiAoaXNCdWZmZXJSZXN1bHRPcHRpb25zKG9wdGlvbnMpKSB7XG4gICAgY29uc3QgYnVmZmVycyA9IGF3YWl0IHJlYWRkaXIocGF0aCwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIGJ1ZmZlcnMubWFwKChidWZmZXIpID0+IHRvUG9zaXhCdWZmZXIoYnVmZmVyKSk7XG4gIH1cblxuICBjb25zdCBkaXJlbnRzID0gYXdhaXQgcmVhZGRpcihwYXRoLCBvcHRpb25zKTtcbiAgZm9yIChjb25zdCBkaXJlbnQgb2YgZGlyZW50cykge1xuICAgIGRpcmVudC5uYW1lID0gdG9Qb3NpeFBhdGgoZGlyZW50Lm5hbWUpO1xuICAgIGRpcmVudC5wYXJlbnRQYXRoID0gdG9Qb3NpeFBhdGgoZGlyZW50LnBhcmVudFBhdGgpO1xuICB9XG5cbiAgcmV0dXJuIGRpcmVudHM7XG59XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiB0aGUgb3B0aW9ucyBhcmUgZm9yIHJldHVybmluZyBidWZmZXJzLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG9wdGlvbnMgYXJlIGZvciByZXR1cm5pbmcgYnVmZmVycywgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzQnVmZmVyUmVzdWx0T3B0aW9ucyhvcHRpb25zOiBCdWZmZXJSZXN1bHRPcHRpb25zIHwgRGlyZW50UmVzdWx0T3B0aW9ucyB8IFN0cmluZ1Jlc3VsdE9wdGlvbnMpOiBvcHRpb25zIGlzIEJ1ZmZlclJlc3VsdE9wdGlvbnMge1xuICBhc3NlcnROb25OdWxsYWJsZShvcHRpb25zKTtcblxuICBpZiAob3B0aW9ucyA9PT0gJ2J1ZmZlcicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGNvbW1vbk9wdGlvbnMgPSBvcHRpb25zIGFzIENvbW1vbk9wdGlvbnM7XG5cbiAgLy8gVGhlIGVuY29kaW5nIGNoZWNrIG5ldmVyIGZhaWxzIGluIHByYWN0aWNlOiBpc1N0cmluZ1Jlc3VsdE9wdGlvbnMgYWxyZWFkeSBoYW5kbGVzIG5vbi1idWZmZXIgZW5jb2RpbmcgYmVmb3JlIHRoaXMgaXMgY2FsbGVkLlxuICByZXR1cm4gY29tbW9uT3B0aW9ucy53aXRoRmlsZVR5cGVzICE9PSB0cnVlICYmIGNvbW1vbk9wdGlvbnMuZW5jb2RpbmcgPT09ICdidWZmZXInO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgdGhlIG9wdGlvbnMgYXJlIGZvciByZXR1cm5pbmcgc3RyaW5ncy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBvcHRpb25zIGFyZSBmb3IgcmV0dXJuaW5nIHN0cmluZ3MsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc1N0cmluZ1Jlc3VsdE9wdGlvbnMob3B0aW9uczogQnVmZmVyUmVzdWx0T3B0aW9ucyB8IERpcmVudFJlc3VsdE9wdGlvbnMgfCBTdHJpbmdSZXN1bHRPcHRpb25zKTogb3B0aW9ucyBpcyBTdHJpbmdSZXN1bHRPcHRpb25zIHtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUob3B0aW9ucyk7XG5cbiAgaWYgKG9wdGlvbnMgPT09ICdidWZmZXInKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgY29tbW9uT3B0aW9ucyA9IG9wdGlvbnMgYXMgQ29tbW9uT3B0aW9ucztcblxuICByZXR1cm4gISgoY29tbW9uT3B0aW9ucy5lbmNvZGluZyA9PT0gJ2J1ZmZlcicpIHx8IChjb21tb25PcHRpb25zLndpdGhGaWxlVHlwZXMgPT09IHRydWUpKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQSxrQkFHTztBQUNQLHlCQUFrQztBQUNsQyxzQkFBd0I7QUE0R3hCLGVBQXNCLGFBQ3BCLE1BQ0EsVUFBMkUsQ0FBQyxHQUNuQztBQUN6QyxNQUFJLHNCQUFzQixPQUFPLEdBQUc7QUFDbEMsVUFBTSxRQUFRLFVBQU0seUJBQVEsTUFBTSxPQUFPO0FBQ3pDLFdBQU8sTUFBTSxJQUFJLENBQUMsa0JBQWMseUJBQVksU0FBUyxDQUFDO0FBQUEsRUFDeEQ7QUFFQSxNQUFJLHNCQUFzQixPQUFPLEdBQUc7QUFDbEMsVUFBTSxVQUFVLFVBQU0seUJBQVEsTUFBTSxPQUFPO0FBQzNDLFdBQU8sUUFBUSxJQUFJLENBQUMsZUFBVywyQkFBYyxNQUFNLENBQUM7QUFBQSxFQUN0RDtBQUVBLFFBQU0sVUFBVSxVQUFNLHlCQUFRLE1BQU0sT0FBTztBQUMzQyxhQUFXLFVBQVUsU0FBUztBQUM1QixXQUFPLFdBQU8seUJBQVksT0FBTyxJQUFJO0FBQ3JDLFdBQU8saUJBQWEseUJBQVksT0FBTyxVQUFVO0FBQUEsRUFDbkQ7QUFFQSxTQUFPO0FBQ1Q7QUFRQSxTQUFTLHNCQUFzQixTQUEwRztBQUN2SSw0Q0FBa0IsT0FBTztBQUV6QixNQUFJLFlBQVksVUFBVTtBQUN4QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZ0JBQWdCO0FBR3RCLFNBQU8sY0FBYyxrQkFBa0IsUUFBUSxjQUFjLGFBQWE7QUFDNUU7QUFRQSxTQUFTLHNCQUFzQixTQUEwRztBQUN2SSw0Q0FBa0IsT0FBTztBQUV6QixNQUFJLFlBQVksVUFBVTtBQUN4QixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZ0JBQWdCO0FBRXRCLFNBQU8sRUFBRyxjQUFjLGFBQWEsWUFBYyxjQUFjLGtCQUFrQjtBQUNyRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Contains utility functions for file system operations.
|
|
6
|
+
*/
|
|
7
|
+
import type { Dirent, ObjectEncodingOptions, PathLike } from 'node:fs' with { 'resolution-mode': 'import' };
|
|
8
|
+
/**
|
|
9
|
+
* Options for controlling the format of the result when returning buffers.
|
|
10
|
+
*
|
|
11
|
+
* `directory` is used instead of `folder` to preserve compatibility with `node:fs` module.
|
|
12
|
+
*/
|
|
13
|
+
export type BufferResultOptions = 'buffer' | BufferResultObjectOptions;
|
|
14
|
+
/**
|
|
15
|
+
* Options for controlling the format of the result when returning Dirent objects.
|
|
16
|
+
*/
|
|
17
|
+
export type DirentResultOptions = DirentResultBaseOptions & ObjectEncodingOptions;
|
|
18
|
+
/**
|
|
19
|
+
* Options for controlling the format of the result when returning strings.
|
|
20
|
+
*/
|
|
21
|
+
export type StringResultOptions = ObjectEncodingOptions & StringResultBaseOptions | undefined;
|
|
22
|
+
interface BufferResultObjectOptions {
|
|
23
|
+
/**
|
|
24
|
+
* Should be set to "buffer" to return buffers.
|
|
25
|
+
*/
|
|
26
|
+
readonly encoding: 'buffer';
|
|
27
|
+
/**
|
|
28
|
+
* Whether to include subdirectories when reading the directory. If not provided, defaults to `false`.
|
|
29
|
+
*/
|
|
30
|
+
readonly recursive?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Should be set to `false` to return buffers.
|
|
33
|
+
*/
|
|
34
|
+
readonly withFileTypes?: false;
|
|
35
|
+
}
|
|
36
|
+
interface DirentResultBaseOptions {
|
|
37
|
+
/**
|
|
38
|
+
* Whether to include subdirectories when reading the directory. If not provided, defaults to `false`.
|
|
39
|
+
*/
|
|
40
|
+
readonly recursive?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Should be set to `true` to return Dirent objects.
|
|
43
|
+
*/
|
|
44
|
+
readonly withFileTypes: true;
|
|
45
|
+
}
|
|
46
|
+
interface StringResultBaseOptions {
|
|
47
|
+
/**
|
|
48
|
+
* Whether to include subdirectories when reading the directory. If not provided, defaults to `false`.
|
|
49
|
+
*/
|
|
50
|
+
readonly recursive?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Should be set to `false` to return strings.
|
|
53
|
+
*/
|
|
54
|
+
readonly withFileTypes?: false;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Reads the contents of a directory and returns an array of strings with POSIX paths.
|
|
58
|
+
*
|
|
59
|
+
* @param path - The path to the directory.
|
|
60
|
+
* @param options - Options to control the format of the result. If not provided, returns strings.
|
|
61
|
+
* @returns A {@link Promise} that resolves with an array of POSIX-formatted file paths.
|
|
62
|
+
*/
|
|
63
|
+
export declare function readdirPosix(path: PathLike, options?: StringResultOptions): Promise<string[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Reads the contents of a directory and returns an array of buffers with POSIX paths.
|
|
66
|
+
*
|
|
67
|
+
* @param path - The path to the directory.
|
|
68
|
+
* @param options - Options to control the format of the result. Specify "buffer" to return buffers.
|
|
69
|
+
* @returns A {@link Promise} that resolves with an array of POSIX-formatted buffers.
|
|
70
|
+
*/
|
|
71
|
+
export declare function readdirPosix(path: PathLike, options: BufferResultOptions): Promise<Buffer[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Reads the contents of a directory and returns an array of Dirent objects with POSIX paths.
|
|
74
|
+
*
|
|
75
|
+
* @param path - The path to the directory.
|
|
76
|
+
* @param options - Options to control the format of the result. Specify `withFileTypes: true` to return Dirent objects.
|
|
77
|
+
* @returns A {@link Promise} that resolves with an array of POSIX-formatted Dirent objects.
|
|
78
|
+
*/
|
|
79
|
+
export declare function readdirPosix(path: PathLike, options: DirentResultOptions): Promise<Dirent[]>;
|
|
80
|
+
export {};
|
|
@@ -0,0 +1,140 @@
|
|
|
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 gate_exports = {};
|
|
80
|
+
__export(gate_exports, {
|
|
81
|
+
gate: () => gate,
|
|
82
|
+
parseGateArguments: () => parseGateArguments
|
|
83
|
+
});
|
|
84
|
+
module.exports = __toCommonJS(gate_exports);
|
|
85
|
+
var import_node_util = require('node:util');
|
|
86
|
+
var import_env_toggle = require('./env-toggle.cjs');
|
|
87
|
+
var import_npm_run = require('./npm-run.cjs');
|
|
88
|
+
var import_package_lock_integrity = require('./package-lock-integrity.cjs');
|
|
89
|
+
const PACKAGE_LOCK_INTEGRITY_ENV_VARIABLE = "PACKAGE_LOCK_INTEGRITY";
|
|
90
|
+
async function gate(options = {}) {
|
|
91
|
+
const {
|
|
92
|
+
shouldBuild = true,
|
|
93
|
+
shouldRunChecks = true,
|
|
94
|
+
shouldRunIntegrationTests = false
|
|
95
|
+
} = options;
|
|
96
|
+
if (shouldRunChecks) {
|
|
97
|
+
if (!(0, import_env_toggle.isEnvVariableOff)(PACKAGE_LOCK_INTEGRITY_ENV_VARIABLE)) {
|
|
98
|
+
await (0, import_package_lock_integrity.assertPackageLockIntegrity)();
|
|
99
|
+
}
|
|
100
|
+
await (0, import_npm_run.npmRunOptional)("format:check");
|
|
101
|
+
await (0, import_npm_run.npmRunOptional)("spellcheck");
|
|
102
|
+
await (0, import_npm_run.npmRunOptional)("lint:md");
|
|
103
|
+
}
|
|
104
|
+
if (shouldBuild) {
|
|
105
|
+
await (0, import_npm_run.npmRun)("build");
|
|
106
|
+
}
|
|
107
|
+
if (!shouldRunChecks) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
await (0, import_npm_run.npmRunOptional)("lint");
|
|
111
|
+
await (0, import_npm_run.npmRunOptional)("find-overexposed");
|
|
112
|
+
if (await (0, import_npm_run.npmRunOptional)("test:coverage") === import_npm_run.NpmRunOptionalResult.Skipped) {
|
|
113
|
+
await (0, import_npm_run.npmRunOptional)("test");
|
|
114
|
+
}
|
|
115
|
+
if (shouldRunIntegrationTests) {
|
|
116
|
+
await (0, import_npm_run.npmRunOptional)("test:integration");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function parseGateArguments($arguments) {
|
|
120
|
+
const { values } = (0, import_node_util.parseArgs)({
|
|
121
|
+
// eslint-disable-next-line unicorn/name-replacements -- `args` is the option name Node's `parseArgs` reads.
|
|
122
|
+
args: $arguments,
|
|
123
|
+
options: {
|
|
124
|
+
"integration": { type: "boolean" },
|
|
125
|
+
"no-build": { type: "boolean" },
|
|
126
|
+
"no-checks": { type: "boolean" }
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
return {
|
|
130
|
+
shouldBuild: !(values["no-build"] ?? false),
|
|
131
|
+
shouldRunChecks: !(values["no-checks"] ?? false),
|
|
132
|
+
shouldRunIntegrationTests: values.integration ?? false
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
136
|
+
0 && (module.exports = {
|
|
137
|
+
gate,
|
|
138
|
+
parseGateArguments
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGUgYnJhbmNoIGdhdGU6IHRoZSB2ZXJpZmljYXRpb24gc2VxdWVuY2UgdGhhdCBgdXBkYXRlVmVyc2lvbmAgcnVucyBhcyBpdHMgcmVsZWFzZSBwcmVmbGlnaHQsIGF2YWlsYWJsZVxuICogYXMgYSBjb21tYW5kIG9mIGl0cyBvd24uXG4gKlxuICogRm91ciBvZiB0aGUgcHJlZmxpZ2h0J3MgY2hlY2tzIFx1MjAxNCBgZm9ybWF0OmNoZWNrYCwgYHNwZWxsY2hlY2tgLCBgZmluZC1vdmVyZXhwb3NlZGAgYW5kIGB0ZXN0OmNvdmVyYWdlYCBcdTIwMTRcbiAqIGFyZSByZWFjaGFibGUgYnkgbm8gb3RoZXIgcm91dGluZSBjb21tYW5kLiBTbyB0aGUgbmF0dXJhbCBicmFuY2ggZ2F0ZSAoYnVpbGQsIGxpbnQsIHRlc3QpIGNhbiBiZSBncmVlblxuICogd2hpbGUgdGhlIHJlbGVhc2UgaXMgc3RpbGwgZ29pbmcgdG8gZmFpbCwgYW5kIHRoZSBmYWlsdXJlIGFycml2ZXMgYXQgcmVsZWFzZSB0aW1lIHJhdGhlciB0aGFuIGluIHNlY29uZHNcbiAqIG9uIHRoZSBicmFuY2guXG4gKlxuICogVGhpcyBtb2R1bGUgZXhpc3RzIHNvIHRoZSB0d28gYXJlIHRoZSBzYW1lIGNvZGUgcmF0aGVyIHRoYW4gdHdvIGxpc3RzIHRoYXQgYWdyZWUgdG9kYXk6IGB1cGRhdGVWZXJzaW9uYFxuICogY2FsbHMge0BsaW5rIGdhdGV9LCBhbmQgYSBjaGVjayBhZGRlZCBoZXJlIGlzIHJlYWNoYWJsZSBmcm9tIGJvdGguIFdoYXQgdGhlIGdhdGUgZGVsaWJlcmF0ZWx5IGxlYXZlcyB0b1xuICogdGhlIHJlbGVhc2UgcGF0aCBpcyB0aGUgY2xlYW4tcmVwbyBhc3NlcnRpb24gXHUyMDE0IGEgYnJhbmNoIGdhdGUgaXMgcnVuIG9uIGEgZGlydHkgdHJlZSwgd2hpY2ggaXMgdGhlIHdob2xlXG4gKiBwb2ludCBvZiBydW5uaW5nIGl0IGJlZm9yZSBjb21taXR0aW5nIFx1MjAxNCBhbmQgdGhlIGludGVncmF0aW9uIHN1aXRlLCB3aGljaCBpcyB0aGUgb25lIHByZWZsaWdodCBzdGVwIHRoYXRcbiAqIGFscmVhZHkgaGFzIGEgcm91dGluZSBjb21tYW5kIG9mIGl0cyBvd24gKGBucG0gcnVuIHRlc3Q6aW50ZWdyYXRpb25gKSBhbmQgc28gaXMgbm90IGluIHRoZSBjbGFzcyB0aGlzXG4gKiBtb2R1bGUgZXhpc3RzIGZvci5cbiAqXG4gKiBUaGUgdGVzdHMgcnVuIE9OQ0UsIHRocm91Z2ggYHRlc3Q6Y292ZXJhZ2VgIHdoZXJlIHRoZSBwcm9qZWN0IGRlZmluZXMgaXQgYW5kIHRocm91Z2ggYHRlc3RgIG90aGVyd2lzZS5cbiAqIFJ1bm5pbmcgYm90aCwgYXMgdGhpcyBkaWQgdW50aWwgMjAyNi0wOS0wNSwgd2FzIGEgZHVwbGljYXRlIGV2ZXJ5d2hlcmUgaXQgbWF0dGVyZWQ6IGEgcHJvamVjdCBzY29wZXMgaXRzXG4gKiB0d28gdGVzdCBzY3JpcHRzIHRvIHRoZSBzYW1lIHZpdGVzdCBwcm9qZWN0cyBcdTIwMTQgZXZlcnkgcmVwbyBpbiB0aGlzIHdvcmtzcGFjZSBwYXNzZXMgdGhlIHNhbWUgYHByb2plY3RzYFxuICogYXJyYXkgdG8gYm90aCBcdTIwMTQgc28gYHRlc3Q6Y292ZXJhZ2VgIGlzIGB0ZXN0YCBwbHVzIHRoZSB0aHJlc2hvbGQgZmxhZ3MsIG92ZXIgdGhlIGlkZW50aWNhbCBmaWxlcy4gSXQgYnV5c1xuICogbm8gZmFpbC1mYXN0IGVpdGhlciwgYmVjYXVzZSB0aGUgY292ZXJhZ2UgcnVuIGZhaWxzIG9uIGV4YWN0bHkgdGhlIGZhaWx1cmVzIHRoZSBwbGFpbiBydW4gd291bGQgaGF2ZVxuICogY2F1Z2h0LiBUaGUgb25lIHRoaW5nIGxvc3QgaXMgdGhlIGFiaWxpdHkgdG8gc3dpdGNoIG9mZiBvbmx5IHRoZSBjb3ZlcmFnZSBoYWxmOiBgVEVTVF9DT1ZFUkFHRT0wYCBub3dcbiAqIHR1cm5zIG9mZiB0aGUgZ2F0ZSdzIHdob2xlIHRlc3Qgc3RlcCByYXRoZXIgdGhhbiBkZW1vdGluZyBpdCB0byBgdGVzdGAuXG4gKi9cblxuaW1wb3J0IHsgcGFyc2VBcmdzIH0gZnJvbSAnbm9kZTp1dGlsJztcblxuaW1wb3J0IHsgaXNFbnZWYXJpYWJsZU9mZiB9IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5pbXBvcnQge1xuICBucG1SdW4sXG4gIG5wbVJ1bk9wdGlvbmFsLFxuICBOcG1SdW5PcHRpb25hbFJlc3VsdFxufSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgYXNzZXJ0UGFja2FnZUxvY2tJbnRlZ3JpdHkgfSBmcm9tICcuL3BhY2thZ2UtbG9jay1pbnRlZ3JpdHkudHMnO1xuXG4vKipcbiAqIFRoZSBvZmYgc3dpdGNoIGZvciB0aGUgbG9ja2ZpbGUgY2hlY2suIFRoZSBjaGVjayBpcyBubyBucG0gc2NyaXB0LCBzbyBucG0gY2Fubm90IGRlcml2ZSBhIHN3aXRjaCBmcm9tIGFcbiAqIHNjcmlwdCBuYW1lIGZvciBpdCwgYnV0IHRoZSBuYW1lIGZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybi5cbiAqL1xuY29uc3QgUEFDS0FHRV9MT0NLX0lOVEVHUklUWV9FTlZfVkFSSUFCTEUgPSAnUEFDS0FHRV9MT0NLX0lOVEVHUklUWSc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdhdGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBidWlsZC4gVGhlIGJ1aWxkIGlzIG5vdCBhIHZlcmlmaWNhdGlvbiBjaGVjayBcdTIwMTQgaXQgaXMga2VwdCBpbiB0aGUgZ2F0ZSBiZWNhdXNlIGl0IGlzXG4gICAqIHRoZSBvbmx5IHN0ZXAgdGhhdCB0eXBlLWNoZWNrcyB0aGUgcHJvamVjdCwgYW5kIGEgZ3JlZW4gbGludCBpcyBub3QgYSB0eXBlLWNoZWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEJ1aWxkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBydW4gdGhlIHZlcmlmaWNhdGlvbiBjaGVja3MuIFdoZW4gYGZhbHNlYCwgb25seSB0aGUgYnVpbGQgcnVucywgd2hpY2ggaXMgd2hhdFxuICAgKiBgbnBtIHJ1biB2ZXJzaW9uIC0tIC0tbm8tY2hlY2tzYCBkb2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJ1bkNoZWNrcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IHN1aXRlLiBPZmYgYnkgZGVmYXVsdCwgb24gdHdvIHJlYXNvbnMgdGhhdCBhcmUgYWJvdXQgQ09TVCByYXRoZXJcbiAgICogdGhhbiBhYm91dCBjb250ZW50aW9uIFx1MjAxNCBkZXNrdG9wIHJ1bnMgc3RvcHBlZCBjb250ZW5kaW5nIGluIGBvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nYCA1LjAuMCwgd2hpY2hcbiAgICogZ2l2ZXMgZXZlcnkgcnVuIGl0cyBvd24gdXNlci1kYXRhIGRpciBhbmQgQ0RQIHBvcnQsIGFuZCB0aGUgQW5kcm9pZCBlbXVsYXRvciB0aGF0IGlzIHN0aWxsIHNoYXJlZCBpc1xuICAgKiBzZXJpYWxpemVkIGJ5IHRoYXQgcGFja2FnZSdzIG93biBgYW5kcm9pZGAgc2V0dXAgbG9jaywgd2hpY2ggd2FpdHMgcmF0aGVyIHRoYW4gZmFpbGluZy5cbiAgICpcbiAgICogVGhlIHJlYXNvbnMgdGhhdCBkbyBob2xkOiBgdGVzdDppbnRlZ3JhdGlvbmAgaXMgdGhlIG9uZSBwcmVmbGlnaHQgc3RlcCByZWFjaGFibGUgYnkgYSByb3V0aW5lIGNvbW1hbmRcbiAgICogb2YgaXRzIG93biwgdW5saWtlIHRoZSBmb3VyIHRoaXMgZ2F0ZSBleGlzdHMgZm9yOyBhbmQgaW4gYSBwcm9qZWN0IHdob3NlIHN1aXRlIGluY2x1ZGVzIGFuIEFuZHJvaWRcbiAgICogdGVzdCBpdCBib290cyBhbiBBVkQgYW5kIGFuIEFwcGl1bSBzZXJ2ZXIsIHRoZW4gcXVldWVzIGJlaGluZCBhbnkgb3RoZXIgQW5kcm9pZCBydW4gZm9yIHVwIHRvIHRoYXRcbiAgICogbG9jaydzIGhvdXItbG9uZyBhY3F1aXNpdGlvbiB0aW1lb3V0LiBBIGNvbW1hbmQgd2hvc2Ugd2hvbGUgc2VsbGluZyBwb2ludCBpcyBhbnN3ZXJpbmcgaW4gc2Vjb25kcyBtdXN0XG4gICAqIG5vdCBzdGFydCBvbmUgdW5hc2tlZC4gVGhlIHJlbGVhc2UgcGF0aCBvcHRzIGluLCBzbyBub3RoaW5nIGlzIHNraXBwZWQgYmVmb3JlIGEgcHVibGlzaC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUnVuSW50ZWdyYXRpb25UZXN0cz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUnVucyB0aGUgdmVyaWZpY2F0aW9uIHNlcXVlbmNlIHRoYXQgYG5wbSBydW4gdmVyc2lvbmAgcnVucyBhcyBpdHMgcHJlZmxpZ2h0LlxuICpcbiAqIFRoZSBvcmRlciBpcyBkZWxpYmVyYXRlLiBUaGUgbG9ja2ZpbGUgY2hlY2sgKHtAbGluayBhc3NlcnRQYWNrYWdlTG9ja0ludGVncml0eX0pIGNvbWVzIGZpcnN0LCBiZWNhdXNlIGl0XG4gKiBpcyBhbiBpbi1wcm9jZXNzIEpTT04gcmVhZCB0aGF0IHRha2VzIHdlbGwgdW5kZXIgYSBzZWNvbmQuIFRoZW4gY29tZSB0aGUgY2hlY2tzIHRoYXQgZmluaXNoIGluIHNlY29uZHMgKGBmb3JtYXQ6Y2hlY2tgLCBgc3BlbGxjaGVja2AsIGBsaW50Om1kYCkgcnVuXG4gKiBmaXJzdCwgc28gYSB0eXBvIGZhaWxzIHRoZSBnYXRlIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YgYWZ0ZXIgdGhlIGNvdmVyYWdlIHJ1bi4gRWFjaCBzdGVwIGlzIGRpc3BhdGNoZWRcbiAqIHRocm91Z2ggdGhlIHBhY2thZ2UgbWFuYWdlciwgc28gYSBwcm9qZWN0IG92ZXJyaWRpbmcgb25lIG9mIHRoZXNlIHNjcmlwdHMgZ2V0cyBpdHMgb3duIHZlcnNpb24sIGFuZCBlYWNoXG4gKiBzdGVwIGNhcnJpZXMgaXRzIG93biBlbnZpcm9ubWVudCBvZmYgc3dpdGNoLlxuICpcbiAqIEV2ZXJ5IHN0ZXAgYnV0IGBidWlsZGAgaXMgcnVuIHdpdGgge0BsaW5rIG5wbVJ1bk9wdGlvbmFsfSwgc28gaXQgaXMgc2tpcHBlZCB3aGVuIHRoZSBwcm9qZWN0IGRvZXMgbm90IGRlZmluZVxuICogaXQ6IGEgcHJvamVjdCB0aGF0IGNob3NlIG5vIGZvcm1hdHRlciwgc3BlbGwgY2hlY2tlciwgbWFya2Rvd24gbGludGVyIG9yIGxpbnRlciBoYXMgbm90aGluZyB0byBjaGVjayB0aGVyZSxcbiAqIGFuZCByZXF1aXJpbmcgdGhvc2Ugc2NyaXB0cyBtYWRlIGBucG0gcnVuIHZlcnNpb25gIGRpZSBvbiBpdHMgZmlyc3Qgc3RlcCBpbiBleGFjdGx5IHRob3NlIHByb2plY3RzLiBgYnVpbGRgXG4gKiBzdGF5cyByZXF1aXJlZCwgYmVjYXVzZSBhIHJlbGVhc2Ugd2l0aCBub3RoaW5nIGJ1aWx0IGhhcyBub3RoaW5nIHRvIHNoaXAuIFRoZSB0ZXN0IHN0ZXAgaXMgdGhlIG9uZSBwbGFjZSB0aGF0IHJlYWRzIHRoYXQgc2tpcDogYHRlc3Q6Y292ZXJhZ2VgIGlzIHByZWZlcnJlZCwgYW5kXG4gKiBgdGVzdGAgcnVucyBvbmx5IGFzIGl0cyBmYWxsYmFjaywgc28gdGhlIHN1aXRlIGlzIG5ldmVyIHJ1biB0d2ljZS4gVGhlIHVuaXQgdGVzdHMgc3RheSBhaGVhZCBvZlxuICogYHRlc3Q6aW50ZWdyYXRpb25gIGZvciB0aGUgc2FtZSBmYXN0ZXN0LWZpcnN0IHJlYXNvbiBcdTIwMTQgYSBicm9rZW4gdW5pdCB0ZXN0IHNob3VsZCBmYWlsIGJlZm9yZSBhblxuICogaW50ZWdyYXRpb24gc3VpdGUgaXMgc3RhcnRlZCwgbm90IGFmdGVyLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBHYXRlT3B0aW9uc30gY29udHJvbGxpbmcgd2hpY2ggc3RlcHMgcnVuLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIGV2ZXJ5IHN0ZXAgaGFzIHBhc3NlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdhdGUob3B0aW9uczogR2F0ZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgc2hvdWxkQnVpbGQgPSB0cnVlLFxuICAgIHNob3VsZFJ1bkNoZWNrcyA9IHRydWUsXG4gICAgc2hvdWxkUnVuSW50ZWdyYXRpb25UZXN0cyA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmIChzaG91bGRSdW5DaGVja3MpIHtcbiAgICBpZiAoIWlzRW52VmFyaWFibGVPZmYoUEFDS0FHRV9MT0NLX0lOVEVHUklUWV9FTlZfVkFSSUFCTEUpKSB7XG4gICAgICBhd2FpdCBhc3NlcnRQYWNrYWdlTG9ja0ludGVncml0eSgpO1xuICAgIH1cblxuICAgIGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdmb3JtYXQ6Y2hlY2snKTtcbiAgICBhd2FpdCBucG1SdW5PcHRpb25hbCgnc3BlbGxjaGVjaycpO1xuICAgIGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdsaW50Om1kJyk7XG4gIH1cblxuICBpZiAoc2hvdWxkQnVpbGQpIHtcbiAgICBhd2FpdCBucG1SdW4oJ2J1aWxkJyk7XG4gIH1cblxuICBpZiAoIXNob3VsZFJ1bkNoZWNrcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdsaW50Jyk7XG4gIGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdmaW5kLW92ZXJleHBvc2VkJyk7XG5cbiAgaWYgKGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCd0ZXN0OmNvdmVyYWdlJykgPT09IE5wbVJ1bk9wdGlvbmFsUmVzdWx0LlNraXBwZWQpIHtcbiAgICBhd2FpdCBucG1SdW5PcHRpb25hbCgndGVzdCcpO1xuICB9XG5cbiAgaWYgKHNob3VsZFJ1bkludGVncmF0aW9uVGVzdHMpIHtcbiAgICBhd2FpdCBucG1SdW5PcHRpb25hbCgndGVzdDppbnRlZ3JhdGlvbicpO1xuICB9XG59XG5cbi8qKlxuICogUGFyc2VzIHRoZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGZvciB0aGUgZ2F0ZSBzY3JpcHQuXG4gKlxuICogVGhlIHR3byBgLS1uby1gIGZsYWdzIHN3aXRjaCBvZmYgc3RlcHMgdGhhdCBhcmUgb247IGAtLWludGVncmF0aW9uYCBpcyB0aGUgb25lIHRoYXQgc3dpdGNoZXMgYSBzdGVwIE9OLFxuICogYmVjYXVzZSB7QGxpbmsgR2F0ZU9wdGlvbnMuc2hvdWxkUnVuSW50ZWdyYXRpb25UZXN0c30gaXMgb2ZmIGJ5IGRlZmF1bHQgZm9yIGNvc3QuIEl0IGV4aXN0cyBzbyB0aGF0XG4gKiBkZWZhdWx0IGlzIGEgY2hvaWNlIHRoZSBjYWxsZXIgY2FuIG1ha2UgcGVyIHJ1biByYXRoZXIgdGhhbiBvbmUgb25seSBhIHByb2dyYW1tYXRpYyBjYWxsZXIgY2FuIHJlYWNoLlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHtAbGluayBHYXRlT3B0aW9uc30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUdhdGVBcmd1bWVudHMoJGFyZ3VtZW50czogc3RyaW5nW10pOiBHYXRlT3B0aW9ucyB7XG4gIGNvbnN0IHsgdmFsdWVzIH0gPSBwYXJzZUFyZ3Moe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25hbWUtcmVwbGFjZW1lbnRzIC0tIGBhcmdzYCBpcyB0aGUgb3B0aW9uIG5hbWUgTm9kZSdzIGBwYXJzZUFyZ3NgIHJlYWRzLlxuICAgIGFyZ3M6ICRhcmd1bWVudHMsXG4gICAgb3B0aW9uczoge1xuICAgICAgJ2ludGVncmF0aW9uJzogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgICduby1idWlsZCc6IHsgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgICAnbm8tY2hlY2tzJzogeyB0eXBlOiAnYm9vbGVhbicgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzaG91bGRCdWlsZDogISh2YWx1ZXNbJ25vLWJ1aWxkJ10gPz8gZmFsc2UpLFxuICAgIHNob3VsZFJ1bkNoZWNrczogISh2YWx1ZXNbJ25vLWNoZWNrcyddID8/IGZhbHNlKSxcbiAgICBzaG91bGRSdW5JbnRlZ3JhdGlvblRlc3RzOiB2YWx1ZXMuaW50ZWdyYXRpb24gPz8gZmFsc2VcbiAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTJCQSx1QkFBMEI7QUFFMUIsd0JBQWlDO0FBQ2pDLHFCQUlPO0FBQ1Asb0NBQTJDO0FBTTNDLE1BQU0sc0NBQXNDO0FBMkQ1QyxlQUFzQixLQUFLLFVBQXVCLENBQUMsR0FBa0I7QUFDbkUsUUFBTTtBQUFBLElBQ0osY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsNEJBQTRCO0FBQUEsRUFDOUIsSUFBSTtBQUVKLE1BQUksaUJBQWlCO0FBQ25CLFFBQUksS0FBQyxvQ0FBaUIsbUNBQW1DLEdBQUc7QUFDMUQsZ0JBQU0sMERBQTJCO0FBQUEsSUFDbkM7QUFFQSxjQUFNLCtCQUFlLGNBQWM7QUFDbkMsY0FBTSwrQkFBZSxZQUFZO0FBQ2pDLGNBQU0sK0JBQWUsU0FBUztBQUFBLEVBQ2hDO0FBRUEsTUFBSSxhQUFhO0FBQ2YsY0FBTSx1QkFBTyxPQUFPO0FBQUEsRUFDdEI7QUFFQSxNQUFJLENBQUMsaUJBQWlCO0FBQ3BCO0FBQUEsRUFDRjtBQUVBLFlBQU0sK0JBQWUsTUFBTTtBQUMzQixZQUFNLCtCQUFlLGtCQUFrQjtBQUV2QyxNQUFJLFVBQU0sK0JBQWUsZUFBZSxNQUFNLG9DQUFxQixTQUFTO0FBQzFFLGNBQU0sK0JBQWUsTUFBTTtBQUFBLEVBQzdCO0FBRUEsTUFBSSwyQkFBMkI7QUFDN0IsY0FBTSwrQkFBZSxrQkFBa0I7QUFBQSxFQUN6QztBQUNGO0FBWU8sU0FBUyxtQkFBbUIsWUFBbUM7QUFDcEUsUUFBTSxFQUFFLE9BQU8sUUFBSSw0QkFBVTtBQUFBO0FBQUEsSUFFM0IsTUFBTTtBQUFBLElBQ04sU0FBUztBQUFBLE1BQ1AsZUFBZSxFQUFFLE1BQU0sVUFBVTtBQUFBLE1BQ2pDLFlBQVksRUFBRSxNQUFNLFVBQVU7QUFBQSxNQUM5QixhQUFhLEVBQUUsTUFBTSxVQUFVO0FBQUEsSUFDakM7QUFBQSxFQUNGLENBQUM7QUFFRCxTQUFPO0FBQUEsSUFDTCxhQUFhLEVBQUUsT0FBTyxVQUFVLEtBQUs7QUFBQSxJQUNyQyxpQkFBaUIsRUFBRSxPQUFPLFdBQVcsS0FBSztBQUFBLElBQzFDLDJCQUEyQixPQUFPLGVBQWU7QUFBQSxFQUNuRDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* The branch gate: the verification sequence that `updateVersion` runs as its release preflight, available
|
|
6
|
+
* as a command of its own.
|
|
7
|
+
*
|
|
8
|
+
* Four of the preflight's checks — `format:check`, `spellcheck`, `find-overexposed` and `test:coverage` —
|
|
9
|
+
* are reachable by no other routine command. So the natural branch gate (build, lint, test) can be green
|
|
10
|
+
* while the release is still going to fail, and the failure arrives at release time rather than in seconds
|
|
11
|
+
* on the branch.
|
|
12
|
+
*
|
|
13
|
+
* This module exists so the two are the same code rather than two lists that agree today: `updateVersion`
|
|
14
|
+
* calls {@link gate}, and a check added here is reachable from both. What the gate deliberately leaves to
|
|
15
|
+
* the release path is the clean-repo assertion — a branch gate is run on a dirty tree, which is the whole
|
|
16
|
+
* point of running it before committing — and the integration suite, which is the one preflight step that
|
|
17
|
+
* already has a routine command of its own (`npm run test:integration`) and so is not in the class this
|
|
18
|
+
* module exists for.
|
|
19
|
+
*
|
|
20
|
+
* The tests run ONCE, through `test:coverage` where the project defines it and through `test` otherwise.
|
|
21
|
+
* Running both, as this did until 2026-09-05, was a duplicate everywhere it mattered: a project scopes its
|
|
22
|
+
* two test scripts to the same vitest projects — every repo in this workspace passes the same `projects`
|
|
23
|
+
* array to both — so `test:coverage` is `test` plus the threshold flags, over the identical files. It buys
|
|
24
|
+
* no fail-fast either, because the coverage run fails on exactly the failures the plain run would have
|
|
25
|
+
* caught. The one thing lost is the ability to switch off only the coverage half: `TEST_COVERAGE=0` now
|
|
26
|
+
* turns off the gate's whole test step rather than demoting it to `test`.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* Options for {@link gate}.
|
|
30
|
+
*/
|
|
31
|
+
export interface GateOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Whether to run the build. The build is not a verification check — it is kept in the gate because it is
|
|
34
|
+
* the only step that type-checks the project, and a green lint is not a type-check.
|
|
35
|
+
*
|
|
36
|
+
* @default `true`
|
|
37
|
+
*/
|
|
38
|
+
readonly shouldBuild?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Whether to run the verification checks. When `false`, only the build runs, which is what
|
|
41
|
+
* `npm run version -- --no-checks` does.
|
|
42
|
+
*
|
|
43
|
+
* @default `true`
|
|
44
|
+
*/
|
|
45
|
+
readonly shouldRunChecks?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether to run the integration test suite. Off by default, on two reasons that are about COST rather
|
|
48
|
+
* than about contention — desktop runs stopped contending in `obsidian-integration-testing` 5.0.0, which
|
|
49
|
+
* gives every run its own user-data dir and CDP port, and the Android emulator that is still shared is
|
|
50
|
+
* serialized by that package's own `android` setup lock, which waits rather than failing.
|
|
51
|
+
*
|
|
52
|
+
* The reasons that do hold: `test:integration` is the one preflight step reachable by a routine command
|
|
53
|
+
* of its own, unlike the four this gate exists for; and in a project whose suite includes an Android
|
|
54
|
+
* test it boots an AVD and an Appium server, then queues behind any other Android run for up to that
|
|
55
|
+
* lock's hour-long acquisition timeout. A command whose whole selling point is answering in seconds must
|
|
56
|
+
* not start one unasked. The release path opts in, so nothing is skipped before a publish.
|
|
57
|
+
*
|
|
58
|
+
* @default `false`
|
|
59
|
+
*/
|
|
60
|
+
readonly shouldRunIntegrationTests?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Runs the verification sequence that `npm run version` runs as its preflight.
|
|
64
|
+
*
|
|
65
|
+
* The order is deliberate. The lockfile check ({@link assertPackageLockIntegrity}) comes first, because it
|
|
66
|
+
* is an in-process JSON read that takes well under a second. Then come the checks that finish in seconds (`format:check`, `spellcheck`, `lint:md`) run
|
|
67
|
+
* first, so a typo fails the gate immediately instead of after the coverage run. Each step is dispatched
|
|
68
|
+
* through the package manager, so a project overriding one of these scripts gets its own version, and each
|
|
69
|
+
* step carries its own environment off switch.
|
|
70
|
+
*
|
|
71
|
+
* Every step but `build` is run with {@link npmRunOptional}, so it is skipped when the project does not define
|
|
72
|
+
* it: a project that chose no formatter, spell checker, markdown linter or linter has nothing to check there,
|
|
73
|
+
* and requiring those scripts made `npm run version` die on its first step in exactly those projects. `build`
|
|
74
|
+
* stays required, because a release with nothing built has nothing to ship. The test step is the one place that reads that skip: `test:coverage` is preferred, and
|
|
75
|
+
* `test` runs only as its fallback, so the suite is never run twice. The unit tests stay ahead of
|
|
76
|
+
* `test:integration` for the same fastest-first reason — a broken unit test should fail before an
|
|
77
|
+
* integration suite is started, not after.
|
|
78
|
+
*
|
|
79
|
+
* @param options - The {@link GateOptions} controlling which steps run.
|
|
80
|
+
* @returns A {@link Promise} that resolves when every step has passed.
|
|
81
|
+
*/
|
|
82
|
+
export declare function gate(options?: GateOptions): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Parses the command-line arguments for the gate script.
|
|
85
|
+
*
|
|
86
|
+
* The two `--no-` flags switch off steps that are on; `--integration` is the one that switches a step ON,
|
|
87
|
+
* because {@link GateOptions.shouldRunIntegrationTests} is off by default for cost. It exists so that
|
|
88
|
+
* default is a choice the caller can make per run rather than one only a programmatic caller can reach.
|
|
89
|
+
*
|
|
90
|
+
* @param $arguments - The command-line arguments to parse.
|
|
91
|
+
* @returns The parsed {@link GateOptions}.
|
|
92
|
+
*/
|
|
93
|
+
export declare function parseGateArguments($arguments: string[]): GateOptions;
|
|
@@ -0,0 +1,109 @@
|
|
|
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 git_exports = {};
|
|
80
|
+
__export(git_exports, {
|
|
81
|
+
getNonIgnoredFiles: () => getNonIgnoredFiles
|
|
82
|
+
});
|
|
83
|
+
module.exports = __toCommonJS(git_exports);
|
|
84
|
+
var import_root = require('./root.cjs');
|
|
85
|
+
const NUL_SEPARATOR = "\0";
|
|
86
|
+
async function getNonIgnoredFiles(options) {
|
|
87
|
+
const { patterns = [] } = options ?? {};
|
|
88
|
+
const command = [
|
|
89
|
+
"git",
|
|
90
|
+
"ls-files",
|
|
91
|
+
"--cached",
|
|
92
|
+
"--others",
|
|
93
|
+
"--exclude-standard",
|
|
94
|
+
"-z",
|
|
95
|
+
...patterns.length > 0 ? ["--", ...patterns] : []
|
|
96
|
+
];
|
|
97
|
+
let stdout;
|
|
98
|
+
try {
|
|
99
|
+
stdout = await (0, import_root.execFromRoot)(command, { isQuiet: true });
|
|
100
|
+
} catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
return [...new Set(stdout.split(NUL_SEPARATOR).filter((path) => path !== ""))];
|
|
104
|
+
}
|
|
105
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
106
|
+
0 && (module.exports = {
|
|
107
|
+
getNonIgnoredFiles
|
|
108
|
+
});
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEdpdC1kZXJpdmVkIGZpbGUgbGlzdGluZ3MgZm9yIHRoZSByZXBvLXdhbGtpbmcgc2NyaXB0cy5cbiAqXG4gKiBUb29saW5nIHRoYXQgd2Fsa3MgdGhlIHJlcG9zaXRvcnkgbXVzdCBza2lwIHdoYXRldmVyIGAuZ2l0aWdub3JlYCBza2lwcyBcdTIwMTQgb3RoZXJ3aXNlIGV2ZXJ5IHNjcmlwdCBncm93cyBpdHNcbiAqIG93biBoYW5kLW1haW50YWluZWQgaWdub3JlIGxpc3QsIHRoZSBsaXN0cyBkcmlmdCBhcGFydCwgYW5kIGEgcGF0aCB0aGF0IGlzIGdpdGlnbm9yZWQgYnV0IG5vdCBlbnVtZXJhdGVkXG4gKiAoYSBuZXN0ZWQgYG5vZGVfbW9kdWxlc2AgdW5kZXIgYSB0ZXN0IGZpeHR1cmUsIHNheSkgaXMgd2Fsa2VkIGFueXdheS4gTW9zdCB0b29scyBoYXZlIGEgbmF0aXZlIHN3aXRjaCBmb3JcbiAqIHRoaXM7IHRoZSBvbmVzIHRoYXQgZG8gbm90IHRha2UgYSBmaWxlIGxpc3QgaW5zdGVhZCwgYW5kIHRoYXQgaXMgd2hhdCB0aGlzIG1vZHVsZSBwcm9kdWNlcy5cbiAqXG4gKiBBc2tpbmcgZ2l0IHJhdGhlciB0aGFuIHBhcnNpbmcgYC5naXRpZ25vcmVgIGlzIGRlbGliZXJhdGU6IGl0IGhvbm9ycyBuZXN0ZWQgaWdub3JlIGZpbGVzLCBgIWAgbmVnYXRpb25zLFxuICogYC5naXQvaW5mby9leGNsdWRlYCwgYW5kIHRoZSB1c2VyJ3MgZ2xvYmFsIGV4Y2x1ZGVzLCBhdCBubyBjb3N0IHRvIHVzLlxuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdldE5vbklnbm9yZWRGaWxlc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Tm9uSWdub3JlZEZpbGVzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHaXQgcGF0aHNwZWNzIGxpbWl0aW5nIHRoZSBsaXN0aW5nLCBlLmcuIGBbJyoubWQnXWAuIFdoZW4gb21pdHRlZCwgZXZlcnkgbm9uLWlnbm9yZWQgZmlsZSBpcyBsaXN0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbXWBcbiAgICovXG4gIHJlYWRvbmx5IHBhdHRlcm5zPzogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogU2VwYXJhdGVzIHRoZSBwYXRocyBpbiBgZ2l0IGxzLWZpbGVzIC16YCBvdXRwdXQuIFVzaW5nIHRoZSBOVUwgZm9ybSBhdm9pZHMgZ2l0J3MgcXVvdGluZyBvZiBwYXRocyB0aGF0XG4gKiBjb250YWluIHVudXN1YWwgY2hhcmFjdGVycywgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gYmUgdW5lc2NhcGVkLlxuICovXG5jb25zdCBOVUxfU0VQQVJBVE9SID0gJ1xcMCc7XG5cbi8qKlxuICogTGlzdHMgdGhlIHJlcG9zaXRvcnkgZmlsZXMgdGhhdCBgLmdpdGlnbm9yZWAgZG9lcyBub3QgZXhjbHVkZS5cbiAqXG4gKiBDb3ZlcnMgYm90aCB0cmFja2VkIGZpbGVzIGFuZCB1bnRyYWNrZWQtYnV0LW5vdC1pZ25vcmVkIG9uZXMsIHNvIGEgYnJhbmQtbmV3IGZpbGUgaXMgY2hlY2tlZCBiZWZvcmUgaXQgaXNcbiAqIGV2ZXIgY29tbWl0dGVkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBHZXROb25JZ25vcmVkRmlsZXNPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbWF0Y2hpbmcgcGF0aHMsIHJlbGF0aXZlIHRvIHRoZSByb290IGZvbGRlciBhbmRcbiAqIHNlcGFyYXRlZCBieSBgL2A7IG9yIHdpdGggYG51bGxgIHdoZW4gZ2l0IGNhbm5vdCBhbnN3ZXIgXHUyMDE0IGl0IGlzIG5vdCBpbnN0YWxsZWQsIG9yIHRoZSBwcm9qZWN0IGlzIG5vdCBhXG4gKiBnaXQgcmVwb3NpdG9yeSAoYSB0YXJiYWxsIGNoZWNrb3V0LCBmb3IgaW5zdGFuY2UpLiBDYWxsZXJzIGZhbGwgYmFjayB0byB0aGVpciBvd24gbGlzdGluZyBpbiB0aGF0IGNhc2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXROb25JZ25vcmVkRmlsZXMob3B0aW9ucz86IEdldE5vbklnbm9yZWRGaWxlc09wdGlvbnMpOiBQcm9taXNlPG51bGwgfCBzdHJpbmdbXT4ge1xuICBjb25zdCB7IHBhdHRlcm5zID0gW10gfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbW1hbmQgPSBbXG4gICAgJ2dpdCcsXG4gICAgJ2xzLWZpbGVzJyxcbiAgICAnLS1jYWNoZWQnLFxuICAgICctLW90aGVycycsXG4gICAgJy0tZXhjbHVkZS1zdGFuZGFyZCcsXG4gICAgJy16JyxcbiAgICAuLi5wYXR0ZXJucy5sZW5ndGggPiAwID8gWyctLScsIC4uLnBhdHRlcm5zXSA6IFtdXG4gIF07XG5cbiAgbGV0IHN0ZG91dDogc3RyaW5nO1xuICB0cnkge1xuICAgIHN0ZG91dCA9IGF3YWl0IGV4ZWNGcm9tUm9vdChjb21tYW5kLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gYC0tY2FjaGVkIC0tb3RoZXJzYCBjYW4gbmFtZSB0aGUgc2FtZSBwYXRoIHR3aWNlIChlLmcuIGEgZmlsZSBzdGFnZWQgZm9yIGRlbGV0aW9uIHRoYXQgaXMgc3RpbGwgb24gZGlzaykuXG4gIHJldHVybiBbLi4ubmV3IFNldChzdGRvdXQuc3BsaXQoTlVMX1NFUEFSQVRPUikuZmlsdGVyKChwYXRoKSA9PiBwYXRoICE9PSAnJykpXTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFjQSxrQkFBNkI7QUFrQjdCLE1BQU0sZ0JBQWdCO0FBYXRCLGVBQXNCLG1CQUFtQixTQUErRDtBQUN0RyxRQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUM7QUFDdEMsUUFBTSxVQUFVO0FBQUEsSUFDZDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFHLFNBQVMsU0FBUyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsSUFBSSxDQUFDO0FBQUEsRUFDbEQ7QUFFQSxNQUFJO0FBQ0osTUFBSTtBQUNGLGFBQVMsVUFBTSwwQkFBYSxTQUFTLEVBQUUsU0FBUyxLQUFLLENBQUM7QUFBQSxFQUN4RCxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFHQSxTQUFPLENBQUMsR0FBRyxJQUFJLElBQUksT0FBTyxNQUFNLGFBQWEsRUFBRSxPQUFPLENBQUMsU0FBUyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0FBQy9FOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Git-derived file listings for the repo-walking scripts.
|
|
6
|
+
*
|
|
7
|
+
* Tooling that walks the repository must skip whatever `.gitignore` skips — otherwise every script grows its
|
|
8
|
+
* own hand-maintained ignore list, the lists drift apart, and a path that is gitignored but not enumerated
|
|
9
|
+
* (a nested `node_modules` under a test fixture, say) is walked anyway. Most tools have a native switch for
|
|
10
|
+
* this; the ones that do not take a file list instead, and that is what this module produces.
|
|
11
|
+
*
|
|
12
|
+
* Asking git rather than parsing `.gitignore` is deliberate: it honors nested ignore files, `!` negations,
|
|
13
|
+
* `.git/info/exclude`, and the user's global excludes, at no cost to us.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Options for {@link getNonIgnoredFiles}.
|
|
17
|
+
*/
|
|
18
|
+
export interface GetNonIgnoredFilesOptions {
|
|
19
|
+
/**
|
|
20
|
+
* Git pathspecs limiting the listing, e.g. `['*.md']`. When omitted, every non-ignored file is listed.
|
|
21
|
+
*
|
|
22
|
+
* @default `[]`
|
|
23
|
+
*/
|
|
24
|
+
readonly patterns?: readonly string[] | undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Lists the repository files that `.gitignore` does not exclude.
|
|
28
|
+
*
|
|
29
|
+
* Covers both tracked files and untracked-but-not-ignored ones, so a brand-new file is checked before it is
|
|
30
|
+
* ever committed.
|
|
31
|
+
*
|
|
32
|
+
* @param options - The {@link GetNonIgnoredFilesOptions}.
|
|
33
|
+
* @returns A {@link Promise} that resolves with the matching paths, relative to the root folder and
|
|
34
|
+
* separated by `/`; or with `null` when git cannot answer — it is not installed, or the project is not a
|
|
35
|
+
* git repository (a tarball checkout, for instance). Callers fall back to their own listing in that case.
|
|
36
|
+
*/
|
|
37
|
+
export declare function getNonIgnoredFiles(options?: GetNonIgnoredFilesOptions): Promise<null | string[]>;
|