@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.
Files changed (332) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -1
  3. package/bundlers/esbuild-impl/change-extension-plugin/package.json +6 -0
  4. package/bundlers/esbuild-impl/custom-esbuild-options-plugin/package.json +6 -0
  5. package/bundlers/esbuild-impl/fix-esm-plugin/package.json +6 -0
  6. package/bundlers/esbuild-impl/index/package.json +6 -0
  7. package/bundlers/esbuild-impl/package.json +6 -0
  8. package/bundlers/esbuild-impl/preprocess-plugin/package.json +6 -0
  9. package/bundlers/esbuild-impl/svelte-wrapper-plugin/package.json +6 -0
  10. package/bundlers/index/package.json +6 -0
  11. package/bundlers/package.json +6 -0
  12. package/dist/lib/cjs/build.cjs +191 -0
  13. package/dist/lib/cjs/build.d.cts +59 -0
  14. package/dist/lib/cjs/bundlers/esbuild-impl/change-extension-plugin.cjs +139 -0
  15. package/dist/lib/cjs/bundlers/esbuild-impl/change-extension-plugin.d.cts +25 -0
  16. package/dist/lib/cjs/bundlers/esbuild-impl/custom-esbuild-options-plugin.cjs +96 -0
  17. package/dist/lib/cjs/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.cts +14 -0
  18. package/dist/lib/cjs/bundlers/esbuild-impl/fix-esm-plugin.cjs +106 -0
  19. package/dist/lib/cjs/bundlers/esbuild-impl/fix-esm-plugin.d.cts +13 -0
  20. package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +111 -0
  21. package/dist/lib/cjs/bundlers/esbuild-impl/index.d.cts +6 -0
  22. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +211 -0
  23. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.d.cts +143 -0
  24. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.cjs +129 -0
  25. package/dist/lib/cjs/bundlers/esbuild-impl/svelte-wrapper-plugin.d.cts +14 -0
  26. package/dist/lib/cjs/bundlers/index.cjs +99 -0
  27. package/dist/lib/cjs/bundlers/index.d.cts +2 -0
  28. package/dist/lib/cjs/check-project-types.cjs +163 -0
  29. package/dist/lib/cjs/check-project-types.d.cts +92 -0
  30. package/dist/lib/cjs/cli-utils.cjs +276 -0
  31. package/dist/lib/cjs/cli-utils.d.cts +123 -0
  32. package/dist/lib/cjs/code-generator.cjs +96 -0
  33. package/dist/lib/cjs/code-generator.d.cts +14 -0
  34. package/dist/lib/cjs/commitlint-config.cjs +110 -0
  35. package/dist/lib/cjs/commitlint-config.d.cts +14 -0
  36. package/dist/lib/cjs/commitlint-forbidden-patterns.cjs +110 -0
  37. package/dist/lib/cjs/commitlint-forbidden-patterns.d.cts +37 -0
  38. package/dist/lib/cjs/commitlint-spellcheck-header.cjs +126 -0
  39. package/dist/lib/cjs/commitlint-spellcheck-header.d.cts +40 -0
  40. package/dist/lib/cjs/env-toggle.cjs +133 -0
  41. package/dist/lib/cjs/env-toggle.d.cts +42 -0
  42. package/dist/lib/cjs/exec.cjs +455 -0
  43. package/dist/lib/cjs/exec.d.cts +162 -0
  44. package/dist/lib/cjs/forbidden-patterns.cjs +157 -0
  45. package/dist/lib/cjs/forbidden-patterns.d.cts +57 -0
  46. package/dist/lib/cjs/formatters/dprint.cjs +108 -0
  47. package/dist/lib/cjs/formatters/dprint.d.cts +33 -0
  48. package/dist/lib/cjs/formatters/index.cjs +99 -0
  49. package/dist/lib/cjs/formatters/index.d.cts +2 -0
  50. package/dist/lib/cjs/fs.cjs +123 -0
  51. package/dist/lib/cjs/fs.d.cts +80 -0
  52. package/dist/lib/cjs/gate.cjs +140 -0
  53. package/dist/lib/cjs/gate.d.cts +93 -0
  54. package/dist/lib/cjs/git.cjs +109 -0
  55. package/dist/lib/cjs/git.d.cts +37 -0
  56. package/dist/lib/cjs/index.cjs +186 -0
  57. package/dist/lib/cjs/index.d.cts +35 -0
  58. package/dist/lib/cjs/json.cjs +141 -0
  59. package/dist/lib/cjs/json.d.cts +102 -0
  60. package/dist/lib/cjs/library-build.cjs +483 -0
  61. package/dist/lib/cjs/library-build.d.cts +101 -0
  62. package/dist/lib/cjs/library-references.d.cts +5 -0
  63. package/dist/lib/cjs/linters/cspell-content.cjs +124 -0
  64. package/dist/lib/cjs/linters/cspell-content.d.cts +46 -0
  65. package/dist/lib/cjs/linters/cspell.cjs +103 -0
  66. package/dist/lib/cjs/linters/cspell.d.cts +36 -0
  67. package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.cjs +94 -0
  68. package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.d.cts +49 -0
  69. package/dist/lib/cjs/linters/eslint-config.cjs +1068 -0
  70. package/dist/lib/cjs/linters/eslint-config.d.cts +123 -0
  71. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.cjs +130 -0
  72. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.d.cts +27 -0
  73. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +116 -0
  74. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.d.cts +26 -0
  75. package/dist/lib/cjs/linters/eslint-rules/index.cjs +132 -0
  76. package/dist/lib/cjs/linters/eslint-rules/index.d.cts +13 -0
  77. package/dist/lib/cjs/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +175 -0
  78. package/dist/lib/cjs/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +10 -0
  79. package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.cjs +290 -0
  80. package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.d.cts +10 -0
  81. package/dist/lib/cjs/linters/eslint-rules/no-unused-params-members.cjs +265 -0
  82. package/dist/lib/cjs/linters/eslint-rules/no-unused-params-members.d.cts +41 -0
  83. package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.cjs +134 -0
  84. package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.d.cts +20 -0
  85. package/dist/lib/cjs/linters/eslint-rules/params-options-name-match.cjs +217 -0
  86. package/dist/lib/cjs/linters/eslint-rules/params-options-name-match.d.cts +36 -0
  87. package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.cjs +126 -0
  88. package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.d.cts +10 -0
  89. package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.cjs +125 -0
  90. package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.d.cts +20 -0
  91. package/dist/lib/cjs/linters/eslint-rules/require-method-template.cjs +181 -0
  92. package/dist/lib/cjs/linters/eslint-rules/require-method-template.d.cts +14 -0
  93. package/dist/lib/cjs/linters/eslint-rules/require-super-call.cjs +217 -0
  94. package/dist/lib/cjs/linters/eslint-rules/require-super-call.d.cts +10 -0
  95. package/dist/lib/cjs/linters/eslint-rules/rule-tester-helper.cjs +92 -0
  96. package/dist/lib/cjs/linters/eslint-rules/rule-tester-helper.d.cts +18 -0
  97. package/dist/lib/cjs/linters/eslint-rules/ts-estree-node.cjs +92 -0
  98. package/dist/lib/cjs/linters/eslint-rules/ts-estree-node.d.cts +23 -0
  99. package/dist/lib/cjs/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +20 -0
  100. package/dist/lib/cjs/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.cts +17 -0
  101. package/dist/lib/cjs/linters/eslint.cjs +196 -0
  102. package/dist/lib/cjs/linters/eslint.d.cts +74 -0
  103. package/dist/lib/cjs/linters/index.cjs +138 -0
  104. package/dist/lib/cjs/linters/index.d.cts +15 -0
  105. package/dist/lib/cjs/linters/lint-ignores.cjs +91 -0
  106. package/dist/lib/cjs/linters/lint-ignores.d.cts +30 -0
  107. package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +169 -0
  108. package/dist/lib/cjs/linters/markdownlint-cli2-config.d.cts +11 -0
  109. package/dist/lib/cjs/linters/markdownlint-content.cjs +120 -0
  110. package/dist/lib/cjs/linters/markdownlint-content.d.cts +47 -0
  111. package/dist/lib/cjs/linters/markdownlint-ignores.cjs +95 -0
  112. package/dist/lib/cjs/linters/markdownlint-ignores.d.cts +35 -0
  113. package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +99 -0
  114. package/dist/lib/cjs/linters/markdownlint-rules/index.d.cts +2 -0
  115. package/dist/lib/cjs/linters/markdownlint-rules/no-soft-break-in-paragraph.cjs +152 -0
  116. package/dist/lib/cjs/linters/markdownlint-rules/no-soft-break-in-paragraph.d.cts +35 -0
  117. package/dist/lib/cjs/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.cts +1344 -0
  118. package/dist/lib/cjs/linters/markdownlint-types/@types/markdownlint-cli2.d.cts +67 -0
  119. package/dist/lib/cjs/linters/markdownlint.cjs +151 -0
  120. package/dist/lib/cjs/linters/markdownlint.d.cts +32 -0
  121. package/dist/lib/cjs/linters/over-exposure.cjs +685 -0
  122. package/dist/lib/cjs/linters/over-exposure.d.cts +357 -0
  123. package/dist/lib/cjs/nano-staged-config.cjs +148 -0
  124. package/dist/lib/cjs/nano-staged-config.d.cts +54 -0
  125. package/dist/lib/cjs/npm-publish.cjs +93 -0
  126. package/dist/lib/cjs/npm-publish.d.cts +19 -0
  127. package/dist/lib/cjs/npm-run.cjs +120 -0
  128. package/dist/lib/cjs/npm-run.d.cts +34 -0
  129. package/dist/lib/cjs/npm.cjs +200 -0
  130. package/dist/lib/cjs/npm.d.cts +168 -0
  131. package/dist/lib/cjs/package-lock-integrity.cjs +134 -0
  132. package/dist/lib/cjs/package-lock-integrity.d.cts +38 -0
  133. package/dist/lib/cjs/package-manager.cjs +291 -0
  134. package/dist/lib/cjs/package-manager.d.cts +93 -0
  135. package/dist/lib/cjs/released-issues.cjs +178 -0
  136. package/dist/lib/cjs/released-issues.d.cts +79 -0
  137. package/dist/lib/cjs/repo-paths.cjs +167 -0
  138. package/dist/lib/cjs/repo-paths.d.cts +318 -0
  139. package/dist/lib/cjs/root.cjs +150 -0
  140. package/dist/lib/cjs/root.d.cts +107 -0
  141. package/dist/lib/cjs/test-runners/index.cjs +102 -0
  142. package/dist/lib/cjs/test-runners/index.d.cts +3 -0
  143. package/dist/lib/cjs/test-runners/vitest-config.cjs +126 -0
  144. package/dist/lib/cjs/test-runners/vitest-config.d.cts +90 -0
  145. package/dist/lib/cjs/test-runners/vitest.cjs +115 -0
  146. package/dist/lib/cjs/test-runners/vitest.d.cts +52 -0
  147. package/dist/lib/cjs/validate-declarations.cjs +120 -0
  148. package/dist/lib/cjs/validate-declarations.d.cts +37 -0
  149. package/dist/lib/cjs/version.cjs +758 -0
  150. package/dist/lib/cjs/version.d.cts +418 -0
  151. package/dist/lib/esm/build.d.mts +59 -0
  152. package/dist/lib/esm/build.mjs +165 -0
  153. package/dist/lib/esm/bundlers/esbuild-impl/change-extension-plugin.d.mts +25 -0
  154. package/dist/lib/esm/bundlers/esbuild-impl/change-extension-plugin.mjs +101 -0
  155. package/dist/lib/esm/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.mts +14 -0
  156. package/dist/lib/esm/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +59 -0
  157. package/dist/lib/esm/bundlers/esbuild-impl/fix-esm-plugin.d.mts +13 -0
  158. package/dist/lib/esm/bundlers/esbuild-impl/fix-esm-plugin.mjs +69 -0
  159. package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +6 -0
  160. package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +60 -0
  161. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +143 -0
  162. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +176 -0
  163. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +14 -0
  164. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +82 -0
  165. package/dist/lib/esm/bundlers/index.d.mts +2 -0
  166. package/dist/lib/esm/bundlers/index.mjs +52 -0
  167. package/dist/lib/esm/check-project-types.d.mts +92 -0
  168. package/dist/lib/esm/check-project-types.mjs +123 -0
  169. package/dist/lib/esm/cli-utils.d.mts +123 -0
  170. package/dist/lib/esm/cli-utils.mjs +225 -0
  171. package/dist/lib/esm/code-generator.d.mts +14 -0
  172. package/dist/lib/esm/code-generator.mjs +59 -0
  173. package/dist/lib/esm/commitlint-config.d.mts +14 -0
  174. package/dist/lib/esm/commitlint-config.mjs +79 -0
  175. package/dist/lib/esm/commitlint-forbidden-patterns.d.mts +37 -0
  176. package/dist/lib/esm/commitlint-forbidden-patterns.mjs +75 -0
  177. package/dist/lib/esm/commitlint-spellcheck-header.d.mts +40 -0
  178. package/dist/lib/esm/commitlint-spellcheck-header.mjs +87 -0
  179. package/dist/lib/esm/env-toggle.d.mts +42 -0
  180. package/dist/lib/esm/env-toggle.mjs +84 -0
  181. package/dist/lib/esm/exec.d.mts +162 -0
  182. package/dist/lib/esm/exec.mjs +410 -0
  183. package/dist/lib/esm/forbidden-patterns.d.mts +57 -0
  184. package/dist/lib/esm/forbidden-patterns.mjs +108 -0
  185. package/dist/lib/esm/formatters/dprint.d.mts +33 -0
  186. package/dist/lib/esm/formatters/dprint.mjs +75 -0
  187. package/dist/lib/esm/formatters/index.d.mts +2 -0
  188. package/dist/lib/esm/formatters/index.mjs +52 -0
  189. package/dist/lib/esm/fs.d.mts +80 -0
  190. package/dist/lib/esm/fs.mjs +89 -0
  191. package/dist/lib/esm/gate.d.mts +93 -0
  192. package/dist/lib/esm/gate.mjs +106 -0
  193. package/dist/lib/esm/git.d.mts +37 -0
  194. package/dist/lib/esm/git.mjs +72 -0
  195. package/dist/lib/esm/index.d.mts +35 -0
  196. package/dist/lib/esm/index.mjs +110 -0
  197. package/dist/lib/esm/json.d.mts +102 -0
  198. package/dist/lib/esm/json.mjs +106 -0
  199. package/dist/lib/esm/library-build.d.mts +101 -0
  200. package/dist/lib/esm/library-build.mjs +443 -0
  201. package/dist/lib/esm/library-references.d.mts +5 -0
  202. package/dist/lib/esm/linters/cspell-content.d.mts +46 -0
  203. package/dist/lib/esm/linters/cspell-content.mjs +87 -0
  204. package/dist/lib/esm/linters/cspell.d.mts +36 -0
  205. package/dist/lib/esm/linters/cspell.mjs +69 -0
  206. package/dist/lib/esm/linters/eslint-agnostic-core-boundary.d.mts +49 -0
  207. package/dist/lib/esm/linters/eslint-agnostic-core-boundary.mjs +57 -0
  208. package/dist/lib/esm/linters/eslint-config.d.mts +123 -0
  209. package/dist/lib/esm/linters/eslint-config.mjs +1022 -0
  210. package/dist/lib/esm/linters/eslint-no-restricted-syntax.d.mts +27 -0
  211. package/dist/lib/esm/linters/eslint-no-restricted-syntax.mjs +93 -0
  212. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.d.mts +26 -0
  213. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +77 -0
  214. package/dist/lib/esm/linters/eslint-rules/index.d.mts +13 -0
  215. package/dist/lib/esm/linters/eslint-rules/index.mjs +74 -0
  216. package/dist/lib/esm/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +10 -0
  217. package/dist/lib/esm/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +144 -0
  218. package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.d.mts +10 -0
  219. package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.mjs +277 -0
  220. package/dist/lib/esm/linters/eslint-rules/no-unused-params-members.d.mts +41 -0
  221. package/dist/lib/esm/linters/eslint-rules/no-unused-params-members.mjs +227 -0
  222. package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.d.mts +20 -0
  223. package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.mjs +96 -0
  224. package/dist/lib/esm/linters/eslint-rules/params-options-name-match.d.mts +36 -0
  225. package/dist/lib/esm/linters/eslint-rules/params-options-name-match.mjs +179 -0
  226. package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.d.mts +10 -0
  227. package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.mjs +88 -0
  228. package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.d.mts +20 -0
  229. package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.mjs +87 -0
  230. package/dist/lib/esm/linters/eslint-rules/require-method-template.d.mts +14 -0
  231. package/dist/lib/esm/linters/eslint-rules/require-method-template.mjs +142 -0
  232. package/dist/lib/esm/linters/eslint-rules/require-super-call.d.mts +10 -0
  233. package/dist/lib/esm/linters/eslint-rules/require-super-call.mjs +183 -0
  234. package/dist/lib/esm/linters/eslint-rules/rule-tester-helper.d.mts +18 -0
  235. package/dist/lib/esm/linters/eslint-rules/rule-tester-helper.mjs +55 -0
  236. package/dist/lib/esm/linters/eslint-rules/ts-estree-node.d.mts +23 -0
  237. package/dist/lib/esm/linters/eslint-rules/ts-estree-node.mjs +55 -0
  238. package/dist/lib/esm/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +20 -0
  239. package/dist/lib/esm/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.mts +17 -0
  240. package/dist/lib/esm/linters/eslint.d.mts +74 -0
  241. package/dist/lib/esm/linters/eslint.mjs +159 -0
  242. package/dist/lib/esm/linters/index.d.mts +15 -0
  243. package/dist/lib/esm/linters/index.mjs +78 -0
  244. package/dist/lib/esm/linters/lint-ignores.d.mts +30 -0
  245. package/dist/lib/esm/linters/lint-ignores.mjs +54 -0
  246. package/dist/lib/esm/linters/markdownlint-cli2-config.d.mts +11 -0
  247. package/dist/lib/esm/linters/markdownlint-cli2-config.mjs +122 -0
  248. package/dist/lib/esm/linters/markdownlint-content.d.mts +47 -0
  249. package/dist/lib/esm/linters/markdownlint-content.mjs +83 -0
  250. package/dist/lib/esm/linters/markdownlint-ignores.d.mts +35 -0
  251. package/dist/lib/esm/linters/markdownlint-ignores.mjs +57 -0
  252. package/dist/lib/esm/linters/markdownlint-rules/index.d.mts +2 -0
  253. package/dist/lib/esm/linters/markdownlint-rules/index.mjs +52 -0
  254. package/dist/lib/esm/linters/markdownlint-rules/no-soft-break-in-paragraph.d.mts +35 -0
  255. package/dist/lib/esm/linters/markdownlint-rules/no-soft-break-in-paragraph.mjs +114 -0
  256. package/dist/lib/esm/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.mts +1344 -0
  257. package/dist/lib/esm/linters/markdownlint-types/@types/markdownlint-cli2.d.mts +67 -0
  258. package/dist/lib/esm/linters/markdownlint.d.mts +32 -0
  259. package/dist/lib/esm/linters/markdownlint.mjs +124 -0
  260. package/dist/lib/esm/linters/over-exposure.d.mts +357 -0
  261. package/dist/lib/esm/linters/over-exposure.mjs +672 -0
  262. package/dist/lib/esm/nano-staged-config.d.mts +54 -0
  263. package/dist/lib/esm/nano-staged-config.mjs +103 -0
  264. package/dist/lib/esm/npm-publish.d.mts +19 -0
  265. package/dist/lib/esm/npm-publish.mjs +56 -0
  266. package/dist/lib/esm/npm-run.d.mts +34 -0
  267. package/dist/lib/esm/npm-run.mjs +81 -0
  268. package/dist/lib/esm/npm.d.mts +168 -0
  269. package/dist/lib/esm/npm.mjs +155 -0
  270. package/dist/lib/esm/package-lock-integrity.d.mts +38 -0
  271. package/dist/lib/esm/package-lock-integrity.mjs +99 -0
  272. package/dist/lib/esm/package-manager.d.mts +93 -0
  273. package/dist/lib/esm/package-manager.mjs +245 -0
  274. package/dist/lib/esm/released-issues.d.mts +79 -0
  275. package/dist/lib/esm/released-issues.mjs +143 -0
  276. package/dist/lib/esm/repo-paths.d.mts +318 -0
  277. package/dist/lib/esm/repo-paths.mjs +130 -0
  278. package/dist/lib/esm/root.d.mts +107 -0
  279. package/dist/lib/esm/root.mjs +115 -0
  280. package/dist/lib/esm/test-runners/index.d.mts +3 -0
  281. package/dist/lib/esm/test-runners/index.mjs +54 -0
  282. package/dist/lib/esm/test-runners/vitest-config.d.mts +90 -0
  283. package/dist/lib/esm/test-runners/vitest-config.mjs +86 -0
  284. package/dist/lib/esm/test-runners/vitest.d.mts +52 -0
  285. package/dist/lib/esm/test-runners/vitest.mjs +76 -0
  286. package/dist/lib/esm/validate-declarations.d.mts +37 -0
  287. package/dist/lib/esm/validate-declarations.mjs +87 -0
  288. package/dist/lib/esm/version.d.mts +418 -0
  289. package/dist/lib/esm/version.mjs +723 -0
  290. package/formatters/dprint/package.json +6 -0
  291. package/formatters/index/package.json +6 -0
  292. package/formatters/package.json +6 -0
  293. package/linters/cspell/package.json +6 -0
  294. package/linters/cspell-content/package.json +6 -0
  295. package/linters/eslint/package.json +6 -0
  296. package/linters/eslint-agnostic-core-boundary/package.json +6 -0
  297. package/linters/eslint-config/package.json +6 -0
  298. package/linters/eslint-no-restricted-syntax/package.json +6 -0
  299. package/linters/eslint-rules/in-house-plugin/package.json +6 -0
  300. package/linters/eslint-rules/index/package.json +6 -0
  301. package/linters/eslint-rules/no-async-callback-to-unsafe-return/package.json +6 -0
  302. package/linters/eslint-rules/no-unresolved-jsdoc-link/package.json +6 -0
  303. package/linters/eslint-rules/no-unused-params-members/package.json +6 -0
  304. package/linters/eslint-rules/no-used-underscore-variables/package.json +6 -0
  305. package/linters/eslint-rules/package.json +6 -0
  306. package/linters/eslint-rules/params-options-name-match/package.json +6 -0
  307. package/linters/eslint-rules/prefer-noop-async/package.json +6 -0
  308. package/linters/eslint-rules/readonly-params-options-result-members/package.json +6 -0
  309. package/linters/eslint-rules/require-method-template/package.json +6 -0
  310. package/linters/eslint-rules/require-super-call/package.json +6 -0
  311. package/linters/eslint-rules/rule-tester-helper/package.json +6 -0
  312. package/linters/eslint-rules/ts-estree-node/package.json +6 -0
  313. package/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs/package.json +4 -0
  314. package/linters/eslint-types/@types/eslint-plugin-verify-tsdoc/package.json +4 -0
  315. package/linters/index/package.json +6 -0
  316. package/linters/lint-ignores/package.json +6 -0
  317. package/linters/markdownlint/package.json +6 -0
  318. package/linters/markdownlint-cli2-config/package.json +6 -0
  319. package/linters/markdownlint-content/package.json +6 -0
  320. package/linters/markdownlint-ignores/package.json +6 -0
  321. package/linters/markdownlint-rules/index/package.json +6 -0
  322. package/linters/markdownlint-rules/no-soft-break-in-paragraph/package.json +6 -0
  323. package/linters/markdownlint-rules/package.json +6 -0
  324. package/linters/markdownlint-types/@types/markdownlint-cli2/package.json +4 -0
  325. package/linters/markdownlint-types/@types/markdownlint-cli2-config-schema/package.json +4 -0
  326. package/linters/over-exposure/package.json +6 -0
  327. package/linters/package.json +6 -0
  328. package/package.json +329 -13
  329. package/test-runners/index/package.json +6 -0
  330. package/test-runners/package.json +6 -0
  331. package/test-runners/vitest/package.json +6 -0
  332. package/test-runners/vitest-config/package.json +6 -0
@@ -0,0 +1,110 @@
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 commitlint_forbidden_patterns_exports = {};
80
+ __export(commitlint_forbidden_patterns_exports, {
81
+ NO_FORBIDDEN_PATTERNS_RULE_NAME: () => NO_FORBIDDEN_PATTERNS_RULE_NAME,
82
+ forbiddenPatternsPlugin: () => forbiddenPatternsPlugin,
83
+ noForbiddenPatternsRule: () => noForbiddenPatternsRule
84
+ });
85
+ module.exports = __toCommonJS(commitlint_forbidden_patterns_exports);
86
+ var import_forbidden_patterns = require('./forbidden-patterns.cjs');
87
+ const NO_FORBIDDEN_PATTERNS_RULE_NAME = "obsidian-dev-utils/no-forbidden-patterns";
88
+ async function noForbiddenPatternsRule(commit) {
89
+ const patterns = await (0, import_forbidden_patterns.readForbiddenPatterns)();
90
+ const text = [commit.header, commit.body, commit.footer].filter((part) => part !== null).join("\n");
91
+ const matches = (0, import_forbidden_patterns.findForbiddenPatternMatches)(text, patterns);
92
+ if (matches.length === 0) {
93
+ return [true];
94
+ }
95
+ const offendingLines = matches.map(({ line, match }) => `${line} <- ${match}`).join("\n");
96
+ return [false, `the commit message matches a pattern from the file ${import_forbidden_patterns.FORBIDDEN_PATTERNS_FILE_ENV_VARIABLE} names:
97
+ ${offendingLines}`];
98
+ }
99
+ const forbiddenPatternsPlugin = {
100
+ rules: {
101
+ [NO_FORBIDDEN_PATTERNS_RULE_NAME]: noForbiddenPatternsRule
102
+ }
103
+ };
104
+ // Annotate the CommonJS export names for ESM import in node:
105
+ 0 && (module.exports = {
106
+ NO_FORBIDDEN_PATTERNS_RULE_NAME,
107
+ forbiddenPatternsPlugin,
108
+ noForbiddenPatternsRule
109
+ });
110
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQSBjb21taXRsaW50IHJ1bGUgdGhhdCByZWZ1c2VzIGEgY29tbWl0IG1lc3NhZ2UgbWF0Y2hpbmcgYSBwYXR0ZXJuIGZyb20gdGhlIFVOUFVCTElTSEVEIGZvcmJpZGRlbi1wYXR0ZXJuc1xuICogbGlzdCBcdTIwMTQgaW4gaXRzIGhlYWRlciwgaXRzIGJvZHkgb3IgaXRzIGZvb3Rlci5cbiAqXG4gKiBUaGUgcmVsZWFzZSBhbHJlYWR5IHJlZnVzZXMgYSBjaGFuZ2Vsb2cgc2VjdGlvbiBjYXJyeWluZyBzdWNoIGEgcGF0dGVybiwgYnV0IGEgY2hhbmdlbG9nIHNlY3Rpb24gaG9sZHMgY29tbWl0XG4gKiBTVUJKRUNUUyBvbmx5LCBzbyBhIGJvZHkgbGluZSB3YXMgbmV2ZXIgc2Nhbm5lZCBieSBhbnl0aGluZzogaXQgcmVhY2hlZCB0aGUgcHVibGljIGhpc3RvcnkgdGhlIG1vbWVudCB0aGVcbiAqIGNvbW1pdCB3YXMgcHVzaGVkLCBhbmQgYSBwdXNoZWQgY29tbWl0IHdpdGggZGVzY2VuZGFudHMgY2Fubm90IGJlIGNsZWFuZWQgd2l0aG91dCByZXdyaXRpbmcgcHVibGlzaGVkIGhpc3RvcnkuXG4gKiBUaGUgY29tbWl0LW1zZyBob29rIGlzIHRoZSBvbmUgcG9pbnQgd2hlcmUgYSBib2R5IGlzIGNoZWNrZWQgYmVmb3JlIGl0IGV4aXN0cyBhbnl3aGVyZSBlbHNlLlxuICpcbiAqIFRoZSBsaXN0IGNvbWVzIGZyb20gdGhlIHNhbWUgcGxhY2UgYXMgdGhlIHJlbGVhc2UnczogdGhlIGZpbGUgbmFtZWQgYnkgdGhlIGBGT1JCSURERU5fUEFUVEVSTlNfRklMRWBcbiAqIGVudmlyb25tZW50IHZhcmlhYmxlIChzZWUgYGZvcmJpZGRlbi1wYXR0ZXJucy50c2ApLiBUaGUgcnVsZSBwYXNzZXMgd2hlbiBub3RoaW5nIGlzIGNvbmZpZ3VyZWQsIHNvIGEgY29uc3VtZXJcbiAqIHdobyBoYXMgbm90IHNldCBpdCBzZWVzIG5vIGNoYW5nZSBhdCBhbGwuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBc3luY1J1bGUsXG4gIFBsdWdpbixcbiAgUnVsZU91dGNvbWVcbn0gZnJvbSAnQGNvbW1pdGxpbnQvdHlwZXMnO1xuXG5pbXBvcnQge1xuICBmaW5kRm9yYmlkZGVuUGF0dGVybk1hdGNoZXMsXG4gIEZPUkJJRERFTl9QQVRURVJOU19GSUxFX0VOVl9WQVJJQUJMRSxcbiAgcmVhZEZvcmJpZGRlblBhdHRlcm5zXG59IGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcblxuLyoqXG4gKiBUaGUgbmFtZSB0aGUgcnVsZSBpcyByZWdpc3RlcmVkIHVuZGVyLlxuICovXG5leHBvcnQgY29uc3QgTk9fRk9SQklEREVOX1BBVFRFUk5TX1JVTEVfTkFNRSA9ICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tZm9yYmlkZGVuLXBhdHRlcm5zJztcblxudHlwZSBDb21taXQgPSBQYXJhbWV0ZXJzPEFzeW5jUnVsZT5bMF07XG5cbi8qKlxuICogQ2hlY2tzIHRoZSB3aG9sZSBjb21taXQgbWVzc2FnZSBcdTIwMTQgaGVhZGVyLCBib2R5IGFuZCBmb290ZXIgXHUyMDE0IGFnYWluc3QgdGhlIGZvcmJpZGRlbiBwYXR0ZXJucy5cbiAqXG4gKiBPbmx5IHRoZSBgYWx3YXlzYCBjb25kaXRpb24gaXMgbWVhbmluZ2Z1bDogYG5ldmVyYCB3b3VsZCByZXF1aXJlIGV2ZXJ5IGxpbmUgdG8gY2FycnkgYSBmb3JiaWRkZW4gcGF0dGVybiwgc29cbiAqIGl0IGlzIHRyZWF0ZWQgdGhlIHNhbWUgd2F5IHJhdGhlciB0aGFuIGludmVydGVkLlxuICpcbiAqIEBwYXJhbSBjb21taXQgLSBUaGUgcGFyc2VkIGNvbW1pdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJ1bGUgb3V0Y29tZSwgbmFtaW5nIGVhY2ggb2ZmZW5kaW5nIGxpbmUgYW5kIHdoYXQgbWF0Y2hlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5vRm9yYmlkZGVuUGF0dGVybnNSdWxlKGNvbW1pdDogQ29tbWl0KTogUHJvbWlzZTxSdWxlT3V0Y29tZT4ge1xuICBjb25zdCBwYXR0ZXJucyA9IGF3YWl0IHJlYWRGb3JiaWRkZW5QYXR0ZXJucygpO1xuICBjb25zdCB0ZXh0ID0gW2NvbW1pdC5oZWFkZXIsIGNvbW1pdC5ib2R5LCBjb21taXQuZm9vdGVyXS5maWx0ZXIoKHBhcnQpID0+IHBhcnQgIT09IG51bGwpLmpvaW4oJ1xcbicpO1xuICBjb25zdCBtYXRjaGVzID0gZmluZEZvcmJpZGRlblBhdHRlcm5NYXRjaGVzKHRleHQsIHBhdHRlcm5zKTtcblxuICBpZiAobWF0Y2hlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW3RydWVdO1xuICB9XG5cbiAgY29uc3Qgb2ZmZW5kaW5nTGluZXMgPSBtYXRjaGVzLm1hcCgoeyBsaW5lLCBtYXRjaCB9KSA9PiBgJHtsaW5lfSAgICA8LSAke21hdGNofWApLmpvaW4oJ1xcbicpO1xuICByZXR1cm4gW2ZhbHNlLCBgdGhlIGNvbW1pdCBtZXNzYWdlIG1hdGNoZXMgYSBwYXR0ZXJuIGZyb20gdGhlIGZpbGUgJHtGT1JCSURERU5fUEFUVEVSTlNfRklMRV9FTlZfVkFSSUFCTEV9IG5hbWVzOlxcbiR7b2ZmZW5kaW5nTGluZXN9YF07XG59XG5cbi8qKlxuICogVGhlIGNvbW1pdGxpbnQgcGx1Z2luIGNhcnJ5aW5nIHtAbGluayBub0ZvcmJpZGRlblBhdHRlcm5zUnVsZX0uXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JiaWRkZW5QYXR0ZXJuc1BsdWdpbjogUGx1Z2luID0ge1xuICBydWxlczoge1xuICAgIFtOT19GT1JCSURERU5fUEFUVEVSTlNfUlVMRV9OQU1FXTogbm9Gb3JiaWRkZW5QYXR0ZXJuc1J1bGVcbiAgfVxufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBc0JBLGdDQUlPO0FBS0EsTUFBTSxrQ0FBa0M7QUFhL0MsZUFBc0Isd0JBQXdCLFFBQXNDO0FBQ2xGLFFBQU0sV0FBVyxVQUFNLGlEQUFzQjtBQUM3QyxRQUFNLE9BQU8sQ0FBQyxPQUFPLFFBQVEsT0FBTyxNQUFNLE9BQU8sTUFBTSxFQUFFLE9BQU8sQ0FBQyxTQUFTLFNBQVMsSUFBSSxFQUFFLEtBQUssSUFBSTtBQUNsRyxRQUFNLGNBQVUsdURBQTRCLE1BQU0sUUFBUTtBQUUxRCxNQUFJLFFBQVEsV0FBVyxHQUFHO0FBQ3hCLFdBQU8sQ0FBQyxJQUFJO0FBQUEsRUFDZDtBQUVBLFFBQU0saUJBQWlCLFFBQVEsSUFBSSxDQUFDLEVBQUUsTUFBTSxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsS0FBSyxFQUFFLEVBQUUsS0FBSyxJQUFJO0FBQzNGLFNBQU8sQ0FBQyxPQUFPLHNEQUFzRCw4REFBb0M7QUFBQSxFQUFZLGNBQWMsRUFBRTtBQUN2STtBQUtPLE1BQU0sMEJBQWtDO0FBQUEsRUFDN0MsT0FBTztBQUFBLElBQ0wsQ0FBQywrQkFBK0IsR0FBRztBQUFBLEVBQ3JDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,37 @@
1
+ /// <reference path="./library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * A commitlint rule that refuses a commit message matching a pattern from the UNPUBLISHED forbidden-patterns
6
+ * list — in its header, its body or its footer.
7
+ *
8
+ * The release already refuses a changelog section carrying such a pattern, but a changelog section holds commit
9
+ * SUBJECTS only, so a body line was never scanned by anything: it reached the public history the moment the
10
+ * commit was pushed, and a pushed commit with descendants cannot be cleaned without rewriting published history.
11
+ * The commit-msg hook is the one point where a body is checked before it exists anywhere else.
12
+ *
13
+ * The list comes from the same place as the release's: the file named by the `FORBIDDEN_PATTERNS_FILE`
14
+ * environment variable (see `forbidden-patterns.ts`). The rule passes when nothing is configured, so a consumer
15
+ * who has not set it sees no change at all.
16
+ */
17
+ import type { AsyncRule, Plugin, RuleOutcome } from '@commitlint/types' with { 'resolution-mode': 'import' };
18
+ /**
19
+ * The name the rule is registered under.
20
+ */
21
+ export declare const NO_FORBIDDEN_PATTERNS_RULE_NAME = "obsidian-dev-utils/no-forbidden-patterns";
22
+ type Commit = Parameters<AsyncRule>[0];
23
+ /**
24
+ * Checks the whole commit message — header, body and footer — against the forbidden patterns.
25
+ *
26
+ * Only the `always` condition is meaningful: `never` would require every line to carry a forbidden pattern, so
27
+ * it is treated the same way rather than inverted.
28
+ *
29
+ * @param commit - The parsed commit.
30
+ * @returns A {@link Promise} that resolves to the rule outcome, naming each offending line and what matched.
31
+ */
32
+ export declare function noForbiddenPatternsRule(commit: Commit): Promise<RuleOutcome>;
33
+ /**
34
+ * The commitlint plugin carrying {@link noForbiddenPatternsRule}.
35
+ */
36
+ export declare const forbiddenPatternsPlugin: Plugin;
37
+ export {};
@@ -0,0 +1,126 @@
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 commitlint_spellcheck_header_exports = {};
80
+ __export(commitlint_spellcheck_header_exports, {
81
+ SPELLCHECK_HEADER_RULE_NAME: () => SPELLCHECK_HEADER_RULE_NAME,
82
+ spellcheckHeaderPlugin: () => spellcheckHeaderPlugin,
83
+ spellcheckHeaderRule: () => spellcheckHeaderRule
84
+ });
85
+ module.exports = __toCommonJS(commitlint_spellcheck_header_exports);
86
+ var import_cspell_content = require('./linters/cspell-content.cjs');
87
+ var import_npm = require('./npm.cjs');
88
+ var import_repo_paths = require('./repo-paths.cjs');
89
+ var import_root = require('./root.cjs');
90
+ const SPELLCHECK_HEADER_RULE_NAME = "obsidian-dev-utils/spellcheck-header";
91
+ const SPELLCHECK_SCRIPT_NAME = "spellcheck";
92
+ async function spellcheckHeaderRule(commit) {
93
+ if (!commit.header) {
94
+ return [true];
95
+ }
96
+ const packageJson = await (0, import_npm.readPackageJson)();
97
+ if (!Object.keys(packageJson.scripts ?? {}).includes(SPELLCHECK_SCRIPT_NAME)) {
98
+ return [true];
99
+ }
100
+ const findings = await (0, import_cspell_content.spellcheckContent)({
101
+ content: `- ${commit.header}
102
+ `,
103
+ filePath: (0, import_root.resolvePathFromRootSafe)({ path: import_repo_paths.RepoPaths.ChangelogMd })
104
+ });
105
+ if (findings.length === 0) {
106
+ return [true];
107
+ }
108
+ return [
109
+ false,
110
+ `the header does not pass \`${SPELLCHECK_SCRIPT_NAME}\`, and it ships verbatim into the next release's changelog:
111
+ ${findings.join("\n")}
112
+ Reword it, or, for a word this project really does use, add it to the project's \`cspell\` configuration.`
113
+ ];
114
+ }
115
+ const spellcheckHeaderPlugin = {
116
+ rules: {
117
+ [SPELLCHECK_HEADER_RULE_NAME]: spellcheckHeaderRule
118
+ }
119
+ };
120
+ // Annotate the CommonJS export names for ESM import in node:
121
+ 0 && (module.exports = {
122
+ SPELLCHECK_HEADER_RULE_NAME,
123
+ spellcheckHeaderPlugin,
124
+ spellcheckHeaderRule
125
+ });
126
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIGNvbW1pdGxpbnQgcnVsZSB0aGF0IHNwZWxsY2hlY2tzIGEgY29tbWl0IEhFQURFUiB3aXRoIHRoZSBwcm9qZWN0J3Mgb3duIGBzcGVsbGNoZWNrYCBjb25maWd1cmF0aW9uLlxuICpcbiAqIFRoZSBoZWFkZXIgaXMgdGhlIG9uZSBwYXJ0IG9mIGEgY29tbWl0IG1lc3NhZ2UgdGhhdCBzaGlwcyB2ZXJiYXRpbTogYSByZWxlYXNlIHR1cm5zIGV2ZXJ5IGNvbW1pdCBzdWJqZWN0XG4gKiBzaW5jZSB0aGUgbGFzdCB0YWcgaW50byBhIGAtIDxzdWJqZWN0PmAgYnVsbGV0IG9mIHRoZSBuZXcgYENIQU5HRUxPRy5tZGAgc2VjdGlvbiwgYW5kIHNwZWxsY2hlY2tzIHRoYXRcbiAqIHNlY3Rpb24gYmVmb3JlIHdyaXRpbmcgaXQuIFRoYXQgY2hlY2sgd29ya3MsIGJ1dCBpdCBydW5zIGF0IHJlbGVhc2UgdGltZSwgYWZ0ZXIgdGhlIHdob2xlIHByZWZsaWdodCBnYXRlLFxuICogYW5kIHdlZWtzIGFmdGVyIHRoZSBzdWJqZWN0IHdhcyBwdXNoZWQgdG8gdGhlIGRlZmF1bHQgYnJhbmNoLiBBdCB0aGF0IHBvaW50IHRoZSBvbmx5IGZpeGVzIGFyZSByZXdyaXRpbmdcbiAqIHB1Ymxpc2hlZCBoaXN0b3J5IG9yIHN1cHBseWluZyB0aGUgcmVsZWFzZSBub3RlcyBieSBoYW5kLiBUaGUgY29tbWl0LW1zZyBob29rIGlzIHRoZSBsYXN0IHBvaW50IGF0IHdoaWNoXG4gKiB0aGUgd29yZCBjYW4gc3RpbGwgYmUgY2hhbmdlZCBmb3IgZnJlZS5cbiAqXG4gKiBUaGUgaGVhZGVyIGlzIGNoZWNrZWQgQVMgdGhlIGJ1bGxldCBpdCB3aWxsIGJlY29tZSwgYXR0cmlidXRlZCB0byBgQ0hBTkdFTE9HLm1kYCwgc28gdGhlIHZlcmRpY3QgaXMgdGhlIG9uZVxuICogdGhlIHJlbGVhc2Ugd291bGQgZ2l2ZTogdGhlIHNhbWUgYGNzcGVsbGAgY29uZmlndXJhdGlvbiwgdGhlIHNhbWUgYHdvcmRzYCwgdGhlIHNhbWUgYGlnbm9yZVBhdGhzYC4gQW5kIGl0XG4gKiBydW5zIG9ubHkgd2hlcmUgdGhlIHByb2plY3QgZGVmaW5lcyBhIGBzcGVsbGNoZWNrYCBzY3JpcHQsIHdoaWNoIGlzIHRoZSBjb25kaXRpb24gdGhlIHJlbGVhc2UgYXBwbGllcyB0b28uXG4gKiBBIHByb2plY3Qgd2l0aCBubyBzcGVsbGluZyBjb25maWd1cmF0aW9uIHdvdWxkIG90aGVyd2lzZSBoYXZlIGl0cyBjb21taXRzIGp1ZGdlZCBhZ2FpbnN0IHRoZSBzdG9ja1xuICogZGljdGlvbmFyaWVzIGFsb25lLCBhbmQgcmVmdXNlZCBvdmVyIGl0cyBvd24gbmFtZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFzeW5jUnVsZSxcbiAgUGx1Z2luLFxuICBSdWxlT3V0Y29tZVxufSBmcm9tICdAY29tbWl0bGludC90eXBlcyc7XG5cbmltcG9ydCB7IHNwZWxsY2hlY2tDb250ZW50IH0gZnJvbSAnLi9saW50ZXJzL2NzcGVsbC1jb250ZW50LnRzJztcbmltcG9ydCB7IHJlYWRQYWNrYWdlSnNvbiB9IGZyb20gJy4vbnBtLnRzJztcbmltcG9ydCB7IFJlcG9QYXRocyB9IGZyb20gJy4vcmVwby1wYXRocy50cyc7XG5pbXBvcnQgeyByZXNvbHZlUGF0aEZyb21Sb290U2FmZSB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogVGhlIG5hbWUgdGhlIHJ1bGUgaXMgcmVnaXN0ZXJlZCB1bmRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IFNQRUxMQ0hFQ0tfSEVBREVSX1JVTEVfTkFNRSA9ICdvYnNpZGlhbi1kZXYtdXRpbHMvc3BlbGxjaGVjay1oZWFkZXInO1xuXG4vKipcbiAqIFRoZSBucG0gc2NyaXB0IHdob3NlIHByZXNlbmNlIG9wdHMgYSBwcm9qZWN0IGludG8gdGhlIGNoZWNrLlxuICovXG5jb25zdCBTUEVMTENIRUNLX1NDUklQVF9OQU1FID0gJ3NwZWxsY2hlY2snO1xuXG50eXBlIENvbW1pdCA9IFBhcmFtZXRlcnM8QXN5bmNSdWxlPlswXTtcblxuLyoqXG4gKiBTcGVsbGNoZWNrcyB0aGUgY29tbWl0IGhlYWRlciBhcyB0aGUgY2hhbmdlbG9nIGJ1bGxldCBpdCB3aWxsIGJlY29tZS5cbiAqXG4gKiBPbmx5IHRoZSBgYWx3YXlzYCBjb25kaXRpb24gaXMgbWVhbmluZ2Z1bDogYG5ldmVyYCB3b3VsZCByZXF1aXJlIHRoZSBoZWFkZXIgdG8gYmUgbWlzc3BlbGxlZCwgc28gaXQgaXNcbiAqIHRyZWF0ZWQgdGhlIHNhbWUgd2F5IHJhdGhlciB0aGFuIGludmVydGVkLlxuICpcbiAqIEBwYXJhbSBjb21taXQgLSBUaGUgcGFyc2VkIGNvbW1pdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJ1bGUgb3V0Y29tZSwgbmFtaW5nIGVhY2ggdW5rbm93biB3b3JkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3BlbGxjaGVja0hlYWRlclJ1bGUoY29tbWl0OiBDb21taXQpOiBQcm9taXNlPFJ1bGVPdXRjb21lPiB7XG4gIGlmICghY29tbWl0LmhlYWRlcikge1xuICAgIHJldHVybiBbdHJ1ZV07XG4gIH1cblxuICBjb25zdCBwYWNrYWdlSnNvbiA9IGF3YWl0IHJlYWRQYWNrYWdlSnNvbigpO1xuICBpZiAoIU9iamVjdC5rZXlzKHBhY2thZ2VKc29uLnNjcmlwdHMgPz8ge30pLmluY2x1ZGVzKFNQRUxMQ0hFQ0tfU0NSSVBUX05BTUUpKSB7XG4gICAgcmV0dXJuIFt0cnVlXTtcbiAgfVxuXG4gIGNvbnN0IGZpbmRpbmdzID0gYXdhaXQgc3BlbGxjaGVja0NvbnRlbnQoe1xuICAgIGNvbnRlbnQ6IGAtICR7Y29tbWl0LmhlYWRlcn1cXG5gLFxuICAgIGZpbGVQYXRoOiByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IFJlcG9QYXRocy5DaGFuZ2Vsb2dNZCB9KVxuICB9KTtcblxuICBpZiAoZmluZGluZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFt0cnVlXTtcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgZmFsc2UsXG4gICAgYHRoZSBoZWFkZXIgZG9lcyBub3QgcGFzcyBcXGAke1NQRUxMQ0hFQ0tfU0NSSVBUX05BTUV9XFxgLCBhbmQgaXQgc2hpcHMgdmVyYmF0aW0gaW50byB0aGUgbmV4dCByZWxlYXNlJ3MgY2hhbmdlbG9nOlxcbmBcbiAgICArIGAke2ZpbmRpbmdzLmpvaW4oJ1xcbicpfVxcbmBcbiAgICArICdSZXdvcmQgaXQsIG9yLCBmb3IgYSB3b3JkIHRoaXMgcHJvamVjdCByZWFsbHkgZG9lcyB1c2UsIGFkZCBpdCB0byB0aGUgcHJvamVjdFxcJ3MgYGNzcGVsbGAgY29uZmlndXJhdGlvbi4nXG4gIF07XG59XG5cbi8qKlxuICogVGhlIGNvbW1pdGxpbnQgcGx1Z2luIGNhcnJ5aW5nIHtAbGluayBzcGVsbGNoZWNrSGVhZGVyUnVsZX0uXG4gKi9cbmV4cG9ydCBjb25zdCBzcGVsbGNoZWNrSGVhZGVyUGx1Z2luOiBQbHVnaW4gPSB7XG4gIHJ1bGVzOiB7XG4gICAgW1NQRUxMQ0hFQ0tfSEVBREVSX1JVTEVfTkFNRV06IHNwZWxsY2hlY2tIZWFkZXJSdWxlXG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXlCQSw0QkFBa0M7QUFDbEMsaUJBQWdDO0FBQ2hDLHdCQUEwQjtBQUMxQixrQkFBd0M7QUFLakMsTUFBTSw4QkFBOEI7QUFLM0MsTUFBTSx5QkFBeUI7QUFhL0IsZUFBc0IscUJBQXFCLFFBQXNDO0FBQy9FLE1BQUksQ0FBQyxPQUFPLFFBQVE7QUFDbEIsV0FBTyxDQUFDLElBQUk7QUFBQSxFQUNkO0FBRUEsUUFBTSxjQUFjLFVBQU0sNEJBQWdCO0FBQzFDLE1BQUksQ0FBQyxPQUFPLEtBQUssWUFBWSxXQUFXLENBQUMsQ0FBQyxFQUFFLFNBQVMsc0JBQXNCLEdBQUc7QUFDNUUsV0FBTyxDQUFDLElBQUk7QUFBQSxFQUNkO0FBRUEsUUFBTSxXQUFXLFVBQU0seUNBQWtCO0FBQUEsSUFDdkMsU0FBUyxLQUFLLE9BQU8sTUFBTTtBQUFBO0FBQUEsSUFDM0IsY0FBVSxxQ0FBd0IsRUFBRSxNQUFNLDRCQUFVLFlBQVksQ0FBQztBQUFBLEVBQ25FLENBQUM7QUFFRCxNQUFJLFNBQVMsV0FBVyxHQUFHO0FBQ3pCLFdBQU8sQ0FBQyxJQUFJO0FBQUEsRUFDZDtBQUVBLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQSw4QkFBOEIsc0JBQXNCO0FBQUEsRUFDL0MsU0FBUyxLQUFLLElBQUksQ0FBQztBQUFBO0FBQUEsRUFFMUI7QUFDRjtBQUtPLE1BQU0seUJBQWlDO0FBQUEsRUFDNUMsT0FBTztBQUFBLElBQ0wsQ0FBQywyQkFBMkIsR0FBRztBQUFBLEVBQ2pDO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,40 @@
1
+ /// <reference path="./library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * A commitlint rule that spellchecks a commit HEADER with the project's own `spellcheck` configuration.
6
+ *
7
+ * The header is the one part of a commit message that ships verbatim: a release turns every commit subject
8
+ * since the last tag into a `- <subject>` bullet of the new `CHANGELOG.md` section, and spellchecks that
9
+ * section before writing it. That check works, but it runs at release time, after the whole preflight gate,
10
+ * and weeks after the subject was pushed to the default branch. At that point the only fixes are rewriting
11
+ * published history or supplying the release notes by hand. The commit-msg hook is the last point at which
12
+ * the word can still be changed for free.
13
+ *
14
+ * The header is checked AS the bullet it will become, attributed to `CHANGELOG.md`, so the verdict is the one
15
+ * the release would give: the same `cspell` configuration, the same `words`, the same `ignorePaths`. And it
16
+ * runs only where the project defines a `spellcheck` script, which is the condition the release applies too.
17
+ * A project with no spelling configuration would otherwise have its commits judged against the stock
18
+ * dictionaries alone, and refused over its own name.
19
+ */
20
+ import type { AsyncRule, Plugin, RuleOutcome } from '@commitlint/types' with { 'resolution-mode': 'import' };
21
+ /**
22
+ * The name the rule is registered under.
23
+ */
24
+ export declare const SPELLCHECK_HEADER_RULE_NAME = "obsidian-dev-utils/spellcheck-header";
25
+ type Commit = Parameters<AsyncRule>[0];
26
+ /**
27
+ * Spellchecks the commit header as the changelog bullet it will become.
28
+ *
29
+ * Only the `always` condition is meaningful: `never` would require the header to be misspelled, so it is
30
+ * treated the same way rather than inverted.
31
+ *
32
+ * @param commit - The parsed commit.
33
+ * @returns A {@link Promise} that resolves to the rule outcome, naming each unknown word.
34
+ */
35
+ export declare function spellcheckHeaderRule(commit: Commit): Promise<RuleOutcome>;
36
+ /**
37
+ * The commitlint plugin carrying {@link spellcheckHeaderRule}.
38
+ */
39
+ export declare const spellcheckHeaderPlugin: Plugin;
40
+ export {};
@@ -0,0 +1,133 @@
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 env_toggle_exports = {};
90
+ __export(env_toggle_exports, {
91
+ getDisabledScriptEnvVariableName: () => getDisabledScriptEnvVariableName,
92
+ isEnvVariableOff: () => isEnvVariableOff,
93
+ loadEnvFileIfExists: () => loadEnvFileIfExists
94
+ });
95
+ module.exports = __toCommonJS(env_toggle_exports);
96
+ var import_string = require('@mnaoumov/typescript-lib/string');
97
+ var import_node_fs = require('node:fs');
98
+ var import_node_process = __toESM(__extractDefault(require('node:process')), 1);
99
+ const OFF_VALUES = /* @__PURE__ */ new Set(["0", "false", "no", "off"]);
100
+ const ENV_FILE_PATH = ".env";
101
+ const NON_ALPHANUMERIC_REG_EXP = /[^a-z0-9]+/gi;
102
+ const NPM_SCRIPT_NAME_ENV_VARIABLE = "npm_lifecycle_event";
103
+ function getDisabledScriptEnvVariableName() {
104
+ loadEnvFileIfExists();
105
+ const scriptName = import_node_process.default.env[NPM_SCRIPT_NAME_ENV_VARIABLE];
106
+ if (!scriptName) {
107
+ return null;
108
+ }
109
+ const envVariableName = toEnvVariableName(scriptName);
110
+ return isEnvVariableOff(envVariableName) ? envVariableName : null;
111
+ }
112
+ function isEnvVariableOff(envVariableName) {
113
+ return OFF_VALUES.has((import_node_process.default.env[envVariableName] ?? "").trim().toLowerCase());
114
+ }
115
+ function loadEnvFileIfExists() {
116
+ if ((0, import_node_fs.existsSync)(ENV_FILE_PATH)) {
117
+ import_node_process.default.loadEnvFile(ENV_FILE_PATH);
118
+ }
119
+ }
120
+ function toEnvVariableName(scriptName) {
121
+ return (0, import_string.replaceAll)({
122
+ $string: scriptName,
123
+ replacer: "_",
124
+ searchValue: NON_ALPHANUMERIC_REG_EXP
125
+ }).toUpperCase();
126
+ }
127
+ // Annotate the CommonJS export names for ESM import in node:
128
+ 0 && (module.exports = {
129
+ getDisabledScriptEnvVariableName,
130
+ isEnvVariableOff,
131
+ loadEnvFileIfExists
132
+ });
133
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Vudi10b2dnbGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgZW52aXJvbm1lbnQtdmFyaWFibGUgb2ZmIHN3aXRjaGVzIGZvciB0aGUgQ0xJIHNjcmlwdHMuXG4gKlxuICogRXZlcnkgbnBtIHNjcmlwdCBjYW4gYmUgc2tpcHBlZCBieSBzZXR0aW5nIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVkIGFmdGVyIGl0IFx1MjAxNCB0aGUgc2NyaXB0IG5hbWVcbiAqIHVwcGVyY2FzZWQsIHdpdGggZXZlcnkgbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXIgcmVwbGFjZWQgYnkgYF9gOlxuICpcbiAqIHwgU2NyaXB0ICAgICAgICAgICAgICB8IFN3aXRjaCAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IGBsaW50YCAgICAgICAgICAgICAgfCBgTElOVD0wYCAgICAgICAgICAgIHxcbiAqIHwgYGxpbnQ6bWQ6Zml4YCAgICAgICB8IGBMSU5UX01EX0ZJWD0wYCAgICAgfFxuICogfCBgZm9ybWF0OmNoZWNrYCAgICAgIHwgYEZPUk1BVF9DSEVDSz0wYCAgICB8XG4gKiB8IGBmaW5kLW92ZXJleHBvc2VkYCAgfCBgRklORF9PVkVSRVhQT1NFRD0wYHxcbiAqXG4gKiBUaGlzIG1pcnJvcnMgdGhlIHByZS1leGlzdGluZyBgTkFOT19TVEFHRUQ9MGAgLyBgSFVTS1k9MGAgZXNjYXBlIGhhdGNoZXMsIGFuZCByZXVzZXMgdGhlaXIgbm90aW9uIG9mIGFuXG4gKiBcIm9mZlwiIHZhbHVlLCBzbyB0aGVyZSBpcyBhIHNpbmdsZSBhbnN3ZXIgdG8gd2hhdCBjb3VudHMgYXMgb2ZmIGFjcm9zcyB0aGUgd2hvbGUgdG9vbCBzZXQuXG4gKi9cblxuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcblxuLyoqXG4gKiBUaGUgdmFsdWVzIHRoYXQgc3dpdGNoIGEgdmFyaWFibGUgb2ZmLiBBbnl0aGluZyBlbHNlIFx1MjAxNCBpbmNsdWRpbmcgYW4gdW5zZXQgdmFyaWFibGUgXHUyMDE0IGxlYXZlcyBpdCBvbiwgc28gdGhlXG4gKiBkZWZhdWx0IGlzIGFsd2F5cyBcInJ1biB0aGUgc2NyaXB0XCIuXG4gKi9cbmNvbnN0IE9GRl9WQUxVRVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFsnMCcsICdmYWxzZScsICdubycsICdvZmYnXSk7XG5cbi8qKlxuICogVGhlIG9wdGlvbmFsIHBlci1kZXZlbG9wZXIgZW52aXJvbm1lbnQgZmlsZS4gTG9hZGVkIHZpYSBOb2RlJ3Mgb3duIGBwcm9jZXNzLmxvYWRFbnZGaWxlYCwgc28gaXQgYmVoYXZlc1xuICogdGhlIHNhbWUgb24gZXZlcnkgcGxhdGZvcm0gYW5kIHNoZWxsLlxuICovXG5jb25zdCBFTlZfRklMRV9QQVRIID0gJy5lbnYnO1xuXG4vKipcbiAqIE1hdGNoZXMgZXZlcnkgcnVuIG9mIGNoYXJhY3RlcnMgdGhhdCBjYW5ub3QgYXBwZWFyIGluIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUuXG4gKi9cbmNvbnN0IE5PTl9BTFBIQU5VTUVSSUNfUkVHX0VYUCA9IC9bXmEtejAtOV0rL2dpO1xuXG4vKipcbiAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBucG0gc2V0cyB0byB0aGUgbmFtZSBvZiB0aGUgc2NyaXB0IGl0IGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICovXG5jb25zdCBOUE1fU0NSSVBUX05BTUVfRU5WX1ZBUklBQkxFID0gJ25wbV9saWZlY3ljbGVfZXZlbnQnO1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBvZmYgc3dpdGNoIGZvciB0aGUgbnBtIHNjcmlwdCB0aGF0IGlzIGN1cnJlbnRseSBydW5uaW5nLCBsb2FkaW5nIHtAbGluayBFTlZfRklMRV9QQVRIfSBmaXJzdC5cbiAqXG4gKiBUaGUgc2NyaXB0IG5hbWUgY29tZXMgZnJvbSBucG0gaXRzZWxmLCBzbyBubyBzY3JpcHQgaGFzIHRvIGRlY2xhcmUgaXRzIG93biBzd2l0Y2guIFdoZW4gdGhlIHNjcmlwdCB3YXNcbiAqIHN0YXJ0ZWQgZGlyZWN0bHkgcmF0aGVyIHRoYW4gdGhyb3VnaCBucG0sIHRoZXJlIGlzIG5vIG5hbWUgdG8gZGVyaXZlIGZyb20gYW5kIG5vdGhpbmcgaXMgZXZlciBza2lwcGVkLlxuICpcbiAqIEByZXR1cm5zIFRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGF0IHN3aXRjaGVkIHRoZSBjdXJyZW50IHNjcmlwdCBvZmYsIG9yIGBudWxsYCB3aGVuIHRoZVxuICogc2NyaXB0IHNob3VsZCBydW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNhYmxlZFNjcmlwdEVudlZhcmlhYmxlTmFtZSgpOiBudWxsIHwgc3RyaW5nIHtcbiAgbG9hZEVudkZpbGVJZkV4aXN0cygpO1xuICBjb25zdCBzY3JpcHROYW1lID0gcHJvY2Vzcy5lbnZbTlBNX1NDUklQVF9OQU1FX0VOVl9WQVJJQUJMRV07XG4gIGlmICghc2NyaXB0TmFtZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgZW52VmFyaWFibGVOYW1lID0gdG9FbnZWYXJpYWJsZU5hbWUoc2NyaXB0TmFtZSk7XG4gIHJldHVybiBpc0VudlZhcmlhYmxlT2ZmKGVudlZhcmlhYmxlTmFtZSkgPyBlbnZWYXJpYWJsZU5hbWUgOiBudWxsO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0IHRvIGFuIG9mZiB2YWx1ZSAoYDBgLCBgZmFsc2VgLCBgbm9gLCBvciBgb2ZmYCxcbiAqIGNhc2UtaW5zZW5zaXRpdmVseSBhbmQgaWdub3Jpbmcgc3Vycm91bmRpbmcgd2hpdGVzcGFjZSkuXG4gKlxuICogQHBhcmFtIGVudlZhcmlhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMgYHRydWVgIHdoZW4gdGhlIHZhcmlhYmxlIGlzIHNldCB0byBhbiBvZmYgdmFsdWUsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbnZWYXJpYWJsZU9mZihlbnZWYXJpYWJsZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gT0ZGX1ZBTFVFUy5oYXMoKHByb2Nlc3MuZW52W2VudlZhcmlhYmxlTmFtZV0gPz8gJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtcbn1cblxuLyoqXG4gKiBMb2FkcyB0aGUgb3B0aW9uYWwge0BsaW5rIEVOVl9GSUxFX1BBVEh9IGZpbGUgaW50byBgcHJvY2Vzcy5lbnZgIHdoZW4gaXQgZXhpc3RzLCBzbyBhIGRldmVsb3BlciBjYW4gcGFyayBhXG4gKiBzd2l0Y2ggc3VjaCBhcyBgTElOVF9NRD0wYCB0aGVyZSBpbnN0ZWFkIG9mIHByZWZpeGluZyBldmVyeSBjb21tYW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZEVudkZpbGVJZkV4aXN0cygpOiB2b2lkIHtcbiAgaWYgKGV4aXN0c1N5bmMoRU5WX0ZJTEVfUEFUSCkpIHtcbiAgICBwcm9jZXNzLmxvYWRFbnZGaWxlKEVOVl9GSUxFX1BBVEgpO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gbnBtIHNjcmlwdCBuYW1lIGludG8gdGhlIG5hbWUgb2YgaXRzIG9mZiBzd2l0Y2guXG4gKlxuICogQHBhcmFtIHNjcmlwdE5hbWUgLSBUaGUgbnBtIHNjcmlwdCBuYW1lLCBlLmcuIGBsaW50Om1kOmZpeGAuXG4gKiBAcmV0dXJucyBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSwgZS5nLiBgTElOVF9NRF9GSVhgLlxuICovXG5mdW5jdGlvbiB0b0VudlZhcmlhYmxlTmFtZShzY3JpcHROYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcmVwbGFjZUFsbCh7XG4gICAgJHN0cmluZzogc2NyaXB0TmFtZSxcbiAgICByZXBsYWNlcjogJ18nLFxuICAgIHNlYXJjaFZhbHVlOiBOT05fQUxQSEFOVU1FUklDX1JFR19FWFBcbiAgfSkudG9VcHBlckNhc2UoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1CQSxvQkFBMkI7QUFDM0IscUJBQTJCO0FBQzNCLDBCQUFvQjtBQU1wQixNQUFNLGFBQWtDLG9CQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsTUFBTSxLQUFLLENBQUM7QUFNM0UsTUFBTSxnQkFBZ0I7QUFLdEIsTUFBTSwyQkFBMkI7QUFLakMsTUFBTSwrQkFBK0I7QUFXOUIsU0FBUyxtQ0FBa0Q7QUFDaEUsc0JBQW9CO0FBQ3BCLFFBQU0sYUFBYSxvQkFBQUEsUUFBUSxJQUFJLDRCQUE0QjtBQUMzRCxNQUFJLENBQUMsWUFBWTtBQUNmLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxrQkFBa0Isa0JBQWtCLFVBQVU7QUFDcEQsU0FBTyxpQkFBaUIsZUFBZSxJQUFJLGtCQUFrQjtBQUMvRDtBQVNPLFNBQVMsaUJBQWlCLGlCQUFrQztBQUNqRSxTQUFPLFdBQVcsS0FBSyxvQkFBQUEsUUFBUSxJQUFJLGVBQWUsS0FBSyxJQUFJLEtBQUssRUFBRSxZQUFZLENBQUM7QUFDakY7QUFNTyxTQUFTLHNCQUE0QjtBQUMxQyxVQUFJLDJCQUFXLGFBQWEsR0FBRztBQUM3Qix3QkFBQUEsUUFBUSxZQUFZLGFBQWE7QUFBQSxFQUNuQztBQUNGO0FBUUEsU0FBUyxrQkFBa0IsWUFBNEI7QUFDckQsYUFBTywwQkFBVztBQUFBLElBQ2hCLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLGFBQWE7QUFBQSxFQUNmLENBQUMsRUFBRSxZQUFZO0FBQ2pCOyIsCiAgIm5hbWVzIjogWyJwcm9jZXNzIl0KfQo=
@@ -0,0 +1,42 @@
1
+ /// <reference path="./library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Shared environment-variable off switches for the CLI scripts.
6
+ *
7
+ * Every npm script can be skipped by setting an environment variable named after it — the script name
8
+ * uppercased, with every non-alphanumeric character replaced by `_`:
9
+ *
10
+ * | Script | Switch |
11
+ * |---------------------|---------------------|
12
+ * | `lint` | `LINT=0` |
13
+ * | `lint:md:fix` | `LINT_MD_FIX=0` |
14
+ * | `format:check` | `FORMAT_CHECK=0` |
15
+ * | `find-overexposed` | `FIND_OVEREXPOSED=0`|
16
+ *
17
+ * This mirrors the pre-existing `NANO_STAGED=0` / `HUSKY=0` escape hatches, and reuses their notion of an
18
+ * "off" value, so there is a single answer to what counts as off across the whole tool set.
19
+ */
20
+ /**
21
+ * Resolves the off switch for the npm script that is currently running, loading {@link ENV_FILE_PATH} first.
22
+ *
23
+ * The script name comes from npm itself, so no script has to declare its own switch. When the script was
24
+ * started directly rather than through npm, there is no name to derive from and nothing is ever skipped.
25
+ *
26
+ * @returns The name of the environment variable that switched the current script off, or `null` when the
27
+ * script should run.
28
+ */
29
+ export declare function getDisabledScriptEnvVariableName(): null | string;
30
+ /**
31
+ * Determines whether the environment variable is set to an off value (`0`, `false`, `no`, or `off`,
32
+ * case-insensitively and ignoring surrounding whitespace).
33
+ *
34
+ * @param envVariableName - The name of the environment variable to inspect.
35
+ * @returns `true` when the variable is set to an off value, otherwise `false`.
36
+ */
37
+ export declare function isEnvVariableOff(envVariableName: string): boolean;
38
+ /**
39
+ * Loads the optional {@link ENV_FILE_PATH} file into `process.env` when it exists, so a developer can park a
40
+ * switch such as `LINT_MD=0` there instead of prefixing every command.
41
+ */
42
+ export declare function loadEnvFileIfExists(): void;