@mnaoumov/typescript-dev-toolkit 0.0.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) 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 +475 -0
  61. package/dist/lib/cjs/library-build.d.cts +97 -0
  62. package/dist/lib/cjs/linters/cspell-content.cjs +124 -0
  63. package/dist/lib/cjs/linters/cspell-content.d.cts +46 -0
  64. package/dist/lib/cjs/linters/cspell.cjs +103 -0
  65. package/dist/lib/cjs/linters/cspell.d.cts +36 -0
  66. package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.cjs +94 -0
  67. package/dist/lib/cjs/linters/eslint-agnostic-core-boundary.d.cts +49 -0
  68. package/dist/lib/cjs/linters/eslint-config.cjs +1068 -0
  69. package/dist/lib/cjs/linters/eslint-config.d.cts +123 -0
  70. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.cjs +130 -0
  71. package/dist/lib/cjs/linters/eslint-no-restricted-syntax.d.cts +27 -0
  72. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.cjs +116 -0
  73. package/dist/lib/cjs/linters/eslint-rules/in-house-plugin.d.cts +26 -0
  74. package/dist/lib/cjs/linters/eslint-rules/index.cjs +132 -0
  75. package/dist/lib/cjs/linters/eslint-rules/index.d.cts +13 -0
  76. package/dist/lib/cjs/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +175 -0
  77. package/dist/lib/cjs/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +10 -0
  78. package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.cjs +290 -0
  79. package/dist/lib/cjs/linters/eslint-rules/no-unresolved-jsdoc-link.d.cts +10 -0
  80. package/dist/lib/cjs/linters/eslint-rules/no-unused-params-members.cjs +265 -0
  81. package/dist/lib/cjs/linters/eslint-rules/no-unused-params-members.d.cts +41 -0
  82. package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.cjs +134 -0
  83. package/dist/lib/cjs/linters/eslint-rules/no-used-underscore-variables.d.cts +20 -0
  84. package/dist/lib/cjs/linters/eslint-rules/params-options-name-match.cjs +217 -0
  85. package/dist/lib/cjs/linters/eslint-rules/params-options-name-match.d.cts +36 -0
  86. package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.cjs +126 -0
  87. package/dist/lib/cjs/linters/eslint-rules/prefer-noop-async.d.cts +10 -0
  88. package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.cjs +125 -0
  89. package/dist/lib/cjs/linters/eslint-rules/readonly-params-options-result-members.d.cts +20 -0
  90. package/dist/lib/cjs/linters/eslint-rules/require-method-template.cjs +181 -0
  91. package/dist/lib/cjs/linters/eslint-rules/require-method-template.d.cts +14 -0
  92. package/dist/lib/cjs/linters/eslint-rules/require-super-call.cjs +217 -0
  93. package/dist/lib/cjs/linters/eslint-rules/require-super-call.d.cts +10 -0
  94. package/dist/lib/cjs/linters/eslint-rules/rule-tester-helper.cjs +92 -0
  95. package/dist/lib/cjs/linters/eslint-rules/rule-tester-helper.d.cts +18 -0
  96. package/dist/lib/cjs/linters/eslint-rules/ts-estree-node.cjs +92 -0
  97. package/dist/lib/cjs/linters/eslint-rules/ts-estree-node.d.cts +23 -0
  98. package/dist/lib/cjs/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.cts +20 -0
  99. package/dist/lib/cjs/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.cts +17 -0
  100. package/dist/lib/cjs/linters/eslint.cjs +122 -0
  101. package/dist/lib/cjs/linters/eslint.d.cts +35 -0
  102. package/dist/lib/cjs/linters/index.cjs +138 -0
  103. package/dist/lib/cjs/linters/index.d.cts +15 -0
  104. package/dist/lib/cjs/linters/lint-ignores.cjs +91 -0
  105. package/dist/lib/cjs/linters/lint-ignores.d.cts +30 -0
  106. package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +169 -0
  107. package/dist/lib/cjs/linters/markdownlint-cli2-config.d.cts +11 -0
  108. package/dist/lib/cjs/linters/markdownlint-content.cjs +120 -0
  109. package/dist/lib/cjs/linters/markdownlint-content.d.cts +47 -0
  110. package/dist/lib/cjs/linters/markdownlint-ignores.cjs +95 -0
  111. package/dist/lib/cjs/linters/markdownlint-ignores.d.cts +35 -0
  112. package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +99 -0
  113. package/dist/lib/cjs/linters/markdownlint-rules/index.d.cts +2 -0
  114. package/dist/lib/cjs/linters/markdownlint-rules/no-soft-break-in-paragraph.cjs +152 -0
  115. package/dist/lib/cjs/linters/markdownlint-rules/no-soft-break-in-paragraph.d.cts +35 -0
  116. package/dist/lib/cjs/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.cts +1344 -0
  117. package/dist/lib/cjs/linters/markdownlint-types/@types/markdownlint-cli2.d.cts +67 -0
  118. package/dist/lib/cjs/linters/markdownlint.cjs +151 -0
  119. package/dist/lib/cjs/linters/markdownlint.d.cts +32 -0
  120. package/dist/lib/cjs/linters/over-exposure.cjs +685 -0
  121. package/dist/lib/cjs/linters/over-exposure.d.cts +357 -0
  122. package/dist/lib/cjs/nano-staged-config.cjs +148 -0
  123. package/dist/lib/cjs/nano-staged-config.d.cts +54 -0
  124. package/dist/lib/cjs/npm-publish.cjs +93 -0
  125. package/dist/lib/cjs/npm-publish.d.cts +19 -0
  126. package/dist/lib/cjs/npm-run.cjs +120 -0
  127. package/dist/lib/cjs/npm-run.d.cts +34 -0
  128. package/dist/lib/cjs/npm.cjs +200 -0
  129. package/dist/lib/cjs/npm.d.cts +168 -0
  130. package/dist/lib/cjs/package-lock-integrity.cjs +134 -0
  131. package/dist/lib/cjs/package-lock-integrity.d.cts +38 -0
  132. package/dist/lib/cjs/package-manager.cjs +291 -0
  133. package/dist/lib/cjs/package-manager.d.cts +93 -0
  134. package/dist/lib/cjs/released-issues.cjs +178 -0
  135. package/dist/lib/cjs/released-issues.d.cts +79 -0
  136. package/dist/lib/cjs/repo-paths.cjs +167 -0
  137. package/dist/lib/cjs/repo-paths.d.cts +318 -0
  138. package/dist/lib/cjs/root.cjs +150 -0
  139. package/dist/lib/cjs/root.d.cts +107 -0
  140. package/dist/lib/cjs/test-runners/index.cjs +102 -0
  141. package/dist/lib/cjs/test-runners/index.d.cts +3 -0
  142. package/dist/lib/cjs/test-runners/vitest-config.cjs +126 -0
  143. package/dist/lib/cjs/test-runners/vitest-config.d.cts +90 -0
  144. package/dist/lib/cjs/test-runners/vitest.cjs +115 -0
  145. package/dist/lib/cjs/test-runners/vitest.d.cts +52 -0
  146. package/dist/lib/cjs/validate-declarations.cjs +120 -0
  147. package/dist/lib/cjs/validate-declarations.d.cts +37 -0
  148. package/dist/lib/cjs/version.cjs +758 -0
  149. package/dist/lib/cjs/version.d.cts +418 -0
  150. package/dist/lib/esm/build.d.mts +59 -0
  151. package/dist/lib/esm/build.mjs +165 -0
  152. package/dist/lib/esm/bundlers/esbuild-impl/change-extension-plugin.d.mts +25 -0
  153. package/dist/lib/esm/bundlers/esbuild-impl/change-extension-plugin.mjs +101 -0
  154. package/dist/lib/esm/bundlers/esbuild-impl/custom-esbuild-options-plugin.d.mts +14 -0
  155. package/dist/lib/esm/bundlers/esbuild-impl/custom-esbuild-options-plugin.mjs +59 -0
  156. package/dist/lib/esm/bundlers/esbuild-impl/fix-esm-plugin.d.mts +13 -0
  157. package/dist/lib/esm/bundlers/esbuild-impl/fix-esm-plugin.mjs +69 -0
  158. package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +6 -0
  159. package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +60 -0
  160. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +143 -0
  161. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +176 -0
  162. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.d.mts +14 -0
  163. package/dist/lib/esm/bundlers/esbuild-impl/svelte-wrapper-plugin.mjs +82 -0
  164. package/dist/lib/esm/bundlers/index.d.mts +2 -0
  165. package/dist/lib/esm/bundlers/index.mjs +52 -0
  166. package/dist/lib/esm/check-project-types.d.mts +92 -0
  167. package/dist/lib/esm/check-project-types.mjs +123 -0
  168. package/dist/lib/esm/cli-utils.d.mts +123 -0
  169. package/dist/lib/esm/cli-utils.mjs +225 -0
  170. package/dist/lib/esm/code-generator.d.mts +14 -0
  171. package/dist/lib/esm/code-generator.mjs +59 -0
  172. package/dist/lib/esm/commitlint-config.d.mts +14 -0
  173. package/dist/lib/esm/commitlint-config.mjs +79 -0
  174. package/dist/lib/esm/commitlint-forbidden-patterns.d.mts +37 -0
  175. package/dist/lib/esm/commitlint-forbidden-patterns.mjs +75 -0
  176. package/dist/lib/esm/commitlint-spellcheck-header.d.mts +40 -0
  177. package/dist/lib/esm/commitlint-spellcheck-header.mjs +87 -0
  178. package/dist/lib/esm/env-toggle.d.mts +42 -0
  179. package/dist/lib/esm/env-toggle.mjs +84 -0
  180. package/dist/lib/esm/exec.d.mts +162 -0
  181. package/dist/lib/esm/exec.mjs +410 -0
  182. package/dist/lib/esm/forbidden-patterns.d.mts +57 -0
  183. package/dist/lib/esm/forbidden-patterns.mjs +108 -0
  184. package/dist/lib/esm/formatters/dprint.d.mts +33 -0
  185. package/dist/lib/esm/formatters/dprint.mjs +75 -0
  186. package/dist/lib/esm/formatters/index.d.mts +2 -0
  187. package/dist/lib/esm/formatters/index.mjs +52 -0
  188. package/dist/lib/esm/fs.d.mts +80 -0
  189. package/dist/lib/esm/fs.mjs +89 -0
  190. package/dist/lib/esm/gate.d.mts +93 -0
  191. package/dist/lib/esm/gate.mjs +106 -0
  192. package/dist/lib/esm/git.d.mts +37 -0
  193. package/dist/lib/esm/git.mjs +72 -0
  194. package/dist/lib/esm/index.d.mts +35 -0
  195. package/dist/lib/esm/index.mjs +110 -0
  196. package/dist/lib/esm/json.d.mts +102 -0
  197. package/dist/lib/esm/json.mjs +106 -0
  198. package/dist/lib/esm/library-build.d.mts +97 -0
  199. package/dist/lib/esm/library-build.mjs +435 -0
  200. package/dist/lib/esm/linters/cspell-content.d.mts +46 -0
  201. package/dist/lib/esm/linters/cspell-content.mjs +87 -0
  202. package/dist/lib/esm/linters/cspell.d.mts +36 -0
  203. package/dist/lib/esm/linters/cspell.mjs +69 -0
  204. package/dist/lib/esm/linters/eslint-agnostic-core-boundary.d.mts +49 -0
  205. package/dist/lib/esm/linters/eslint-agnostic-core-boundary.mjs +57 -0
  206. package/dist/lib/esm/linters/eslint-config.d.mts +123 -0
  207. package/dist/lib/esm/linters/eslint-config.mjs +1022 -0
  208. package/dist/lib/esm/linters/eslint-no-restricted-syntax.d.mts +27 -0
  209. package/dist/lib/esm/linters/eslint-no-restricted-syntax.mjs +93 -0
  210. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.d.mts +26 -0
  211. package/dist/lib/esm/linters/eslint-rules/in-house-plugin.mjs +77 -0
  212. package/dist/lib/esm/linters/eslint-rules/index.d.mts +13 -0
  213. package/dist/lib/esm/linters/eslint-rules/index.mjs +74 -0
  214. package/dist/lib/esm/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +10 -0
  215. package/dist/lib/esm/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +144 -0
  216. package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.d.mts +10 -0
  217. package/dist/lib/esm/linters/eslint-rules/no-unresolved-jsdoc-link.mjs +277 -0
  218. package/dist/lib/esm/linters/eslint-rules/no-unused-params-members.d.mts +41 -0
  219. package/dist/lib/esm/linters/eslint-rules/no-unused-params-members.mjs +227 -0
  220. package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.d.mts +20 -0
  221. package/dist/lib/esm/linters/eslint-rules/no-used-underscore-variables.mjs +96 -0
  222. package/dist/lib/esm/linters/eslint-rules/params-options-name-match.d.mts +36 -0
  223. package/dist/lib/esm/linters/eslint-rules/params-options-name-match.mjs +179 -0
  224. package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.d.mts +10 -0
  225. package/dist/lib/esm/linters/eslint-rules/prefer-noop-async.mjs +88 -0
  226. package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.d.mts +20 -0
  227. package/dist/lib/esm/linters/eslint-rules/readonly-params-options-result-members.mjs +87 -0
  228. package/dist/lib/esm/linters/eslint-rules/require-method-template.d.mts +14 -0
  229. package/dist/lib/esm/linters/eslint-rules/require-method-template.mjs +142 -0
  230. package/dist/lib/esm/linters/eslint-rules/require-super-call.d.mts +10 -0
  231. package/dist/lib/esm/linters/eslint-rules/require-super-call.mjs +183 -0
  232. package/dist/lib/esm/linters/eslint-rules/rule-tester-helper.d.mts +18 -0
  233. package/dist/lib/esm/linters/eslint-rules/rule-tester-helper.mjs +55 -0
  234. package/dist/lib/esm/linters/eslint-rules/ts-estree-node.d.mts +23 -0
  235. package/dist/lib/esm/linters/eslint-rules/ts-estree-node.mjs +55 -0
  236. package/dist/lib/esm/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs.d.mts +20 -0
  237. package/dist/lib/esm/linters/eslint-types/@types/eslint-plugin-verify-tsdoc.d.mts +17 -0
  238. package/dist/lib/esm/linters/eslint.d.mts +35 -0
  239. package/dist/lib/esm/linters/eslint.mjs +88 -0
  240. package/dist/lib/esm/linters/index.d.mts +15 -0
  241. package/dist/lib/esm/linters/index.mjs +78 -0
  242. package/dist/lib/esm/linters/lint-ignores.d.mts +30 -0
  243. package/dist/lib/esm/linters/lint-ignores.mjs +54 -0
  244. package/dist/lib/esm/linters/markdownlint-cli2-config.d.mts +11 -0
  245. package/dist/lib/esm/linters/markdownlint-cli2-config.mjs +122 -0
  246. package/dist/lib/esm/linters/markdownlint-content.d.mts +47 -0
  247. package/dist/lib/esm/linters/markdownlint-content.mjs +83 -0
  248. package/dist/lib/esm/linters/markdownlint-ignores.d.mts +35 -0
  249. package/dist/lib/esm/linters/markdownlint-ignores.mjs +57 -0
  250. package/dist/lib/esm/linters/markdownlint-rules/index.d.mts +2 -0
  251. package/dist/lib/esm/linters/markdownlint-rules/index.mjs +52 -0
  252. package/dist/lib/esm/linters/markdownlint-rules/no-soft-break-in-paragraph.d.mts +35 -0
  253. package/dist/lib/esm/linters/markdownlint-rules/no-soft-break-in-paragraph.mjs +114 -0
  254. package/dist/lib/esm/linters/markdownlint-types/@types/markdownlint-cli2-config-schema.d.mts +1344 -0
  255. package/dist/lib/esm/linters/markdownlint-types/@types/markdownlint-cli2.d.mts +67 -0
  256. package/dist/lib/esm/linters/markdownlint.d.mts +32 -0
  257. package/dist/lib/esm/linters/markdownlint.mjs +124 -0
  258. package/dist/lib/esm/linters/over-exposure.d.mts +357 -0
  259. package/dist/lib/esm/linters/over-exposure.mjs +672 -0
  260. package/dist/lib/esm/nano-staged-config.d.mts +54 -0
  261. package/dist/lib/esm/nano-staged-config.mjs +103 -0
  262. package/dist/lib/esm/npm-publish.d.mts +19 -0
  263. package/dist/lib/esm/npm-publish.mjs +56 -0
  264. package/dist/lib/esm/npm-run.d.mts +34 -0
  265. package/dist/lib/esm/npm-run.mjs +81 -0
  266. package/dist/lib/esm/npm.d.mts +168 -0
  267. package/dist/lib/esm/npm.mjs +155 -0
  268. package/dist/lib/esm/package-lock-integrity.d.mts +38 -0
  269. package/dist/lib/esm/package-lock-integrity.mjs +99 -0
  270. package/dist/lib/esm/package-manager.d.mts +93 -0
  271. package/dist/lib/esm/package-manager.mjs +245 -0
  272. package/dist/lib/esm/released-issues.d.mts +79 -0
  273. package/dist/lib/esm/released-issues.mjs +143 -0
  274. package/dist/lib/esm/repo-paths.d.mts +318 -0
  275. package/dist/lib/esm/repo-paths.mjs +130 -0
  276. package/dist/lib/esm/root.d.mts +107 -0
  277. package/dist/lib/esm/root.mjs +115 -0
  278. package/dist/lib/esm/test-runners/index.d.mts +3 -0
  279. package/dist/lib/esm/test-runners/index.mjs +54 -0
  280. package/dist/lib/esm/test-runners/vitest-config.d.mts +90 -0
  281. package/dist/lib/esm/test-runners/vitest-config.mjs +86 -0
  282. package/dist/lib/esm/test-runners/vitest.d.mts +52 -0
  283. package/dist/lib/esm/test-runners/vitest.mjs +76 -0
  284. package/dist/lib/esm/validate-declarations.d.mts +37 -0
  285. package/dist/lib/esm/validate-declarations.mjs +87 -0
  286. package/dist/lib/esm/version.d.mts +418 -0
  287. package/dist/lib/esm/version.mjs +723 -0
  288. package/formatters/dprint/package.json +6 -0
  289. package/formatters/index/package.json +6 -0
  290. package/formatters/package.json +6 -0
  291. package/linters/cspell/package.json +6 -0
  292. package/linters/cspell-content/package.json +6 -0
  293. package/linters/eslint/package.json +6 -0
  294. package/linters/eslint-agnostic-core-boundary/package.json +6 -0
  295. package/linters/eslint-config/package.json +6 -0
  296. package/linters/eslint-no-restricted-syntax/package.json +6 -0
  297. package/linters/eslint-rules/in-house-plugin/package.json +6 -0
  298. package/linters/eslint-rules/index/package.json +6 -0
  299. package/linters/eslint-rules/no-async-callback-to-unsafe-return/package.json +6 -0
  300. package/linters/eslint-rules/no-unresolved-jsdoc-link/package.json +6 -0
  301. package/linters/eslint-rules/no-unused-params-members/package.json +6 -0
  302. package/linters/eslint-rules/no-used-underscore-variables/package.json +6 -0
  303. package/linters/eslint-rules/package.json +6 -0
  304. package/linters/eslint-rules/params-options-name-match/package.json +6 -0
  305. package/linters/eslint-rules/prefer-noop-async/package.json +6 -0
  306. package/linters/eslint-rules/readonly-params-options-result-members/package.json +6 -0
  307. package/linters/eslint-rules/require-method-template/package.json +6 -0
  308. package/linters/eslint-rules/require-super-call/package.json +6 -0
  309. package/linters/eslint-rules/rule-tester-helper/package.json +6 -0
  310. package/linters/eslint-rules/ts-estree-node/package.json +6 -0
  311. package/linters/eslint-types/@types/@eslint-community__eslint-plugin-eslint-comments__configs/package.json +4 -0
  312. package/linters/eslint-types/@types/eslint-plugin-verify-tsdoc/package.json +4 -0
  313. package/linters/index/package.json +6 -0
  314. package/linters/lint-ignores/package.json +6 -0
  315. package/linters/markdownlint/package.json +6 -0
  316. package/linters/markdownlint-cli2-config/package.json +6 -0
  317. package/linters/markdownlint-content/package.json +6 -0
  318. package/linters/markdownlint-ignores/package.json +6 -0
  319. package/linters/markdownlint-rules/index/package.json +6 -0
  320. package/linters/markdownlint-rules/no-soft-break-in-paragraph/package.json +6 -0
  321. package/linters/markdownlint-rules/package.json +6 -0
  322. package/linters/markdownlint-types/@types/markdownlint-cli2/package.json +4 -0
  323. package/linters/markdownlint-types/@types/markdownlint-cli2-config-schema/package.json +4 -0
  324. package/linters/over-exposure/package.json +6 -0
  325. package/linters/package.json +6 -0
  326. package/package.json +329 -13
  327. package/test-runners/index/package.json +6 -0
  328. package/test-runners/package.json +6 -0
  329. package/test-runners/vitest/package.json +6 -0
  330. package/test-runners/vitest-config/package.json +6 -0
@@ -0,0 +1,54 @@
1
+ /// <reference path="./index.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Shared nano-staged configuration for pre-commit hooks.
6
+ */
7
+ /**
8
+ * Options for {@link getNanoStagedConfig}.
9
+ */
10
+ export interface GetNanoStagedConfigOptions {
11
+ /**
12
+ * Repo-specific file-rewriting tasks, keyed by the nano-staged pattern that claims their files.
13
+ *
14
+ * Each gets spellcheck appended and its files removed from the spellcheck-only key, exactly like the shared
15
+ * writers. A pattern must not contain `/`, and must not repeat a shared writer pattern.
16
+ */
17
+ readonly additionalWriterTasks?: Readonly<Record<string, readonly string[]>>;
18
+ }
19
+ /**
20
+ * Nano-staged configuration that runs file-based lint, format, and spellcheck on staged files.
21
+ *
22
+ * Only includes tools that can operate on individual files. Whole-project checks
23
+ * (TypeScript compilation, unit tests) are left to CI.
24
+ *
25
+ * Commands run through the package manager that owns the tree — `npm run ... --`, `bun run ... --`, and
26
+ * so on — so nano-staged file paths are forwarded as CLI arguments.
27
+ *
28
+ * Spellcheck is partitioned across the keys rather than given a catch-all `'*'` key (see
29
+ * `partitionSpellcheck`). A repo adding a file-rewriting task of its own passes it to
30
+ * {@link getNanoStagedConfig} as `additionalWriterTasks` rather than spreading this object and adding a key,
31
+ * which would reintroduce the overlap for that key's files.
32
+ */
33
+ export declare const obsidianDevUtilsConfig: Record<string, string[]>;
34
+ /**
35
+ * Resolves the nano-staged configuration to use, honoring a per-developer opt-out.
36
+ *
37
+ * Loads a gitignored `.env` if present, then — when `NANO_STAGED` is set to an off value (`0`, `false`,
38
+ * `off`, or `no`) — prints a notice and exits the process successfully so the pre-commit checks are
39
+ * skipped. This mirrors husky's own `HUSKY=0` switch, but scoped to the nano-staged step (so the
40
+ * commit-msg hook still runs). Otherwise it returns {@link obsidianDevUtilsConfig}, or — when
41
+ * `additionalWriterTasks` are given — the same configuration re-partitioned with those writers added.
42
+ *
43
+ * `NANO_STAGED` is not an npm script, so it carries its own switch rather than the script-name-derived one
44
+ * every npm script gets — but both share the same notion of an off value, via {@link isEnvVariableOff}.
45
+ *
46
+ * This is a function rather than module-level code so importing the package barrel never triggers the
47
+ * `.env` read or the process exit; call it from the thin `scripts/nano-staged-config.ts` entry. Resolving the
48
+ * package manager is the one thing that does run at module scope, and it does neither of those two
49
+ * things — it only probes for a lockfile.
50
+ *
51
+ * @param options - The optional options.
52
+ * @returns The nano-staged task configuration. Does not return when the opt-out is active.
53
+ */
54
+ export declare function getNanoStagedConfig(options?: GetNanoStagedConfigOptions): Record<string, string[]>;
@@ -0,0 +1,103 @@
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 initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ import process from "node:process";
49
+ import {
50
+ isEnvVariableOff,
51
+ loadEnvFileIfExists
52
+ } from "./env-toggle.mjs";
53
+ import { getPackageManagerRunCommand } from "./package-manager.mjs";
54
+ const PACKAGE_MANAGER_RUN_COMMAND = getPackageManagerRunCommand().join(" ");
55
+ const SPELLCHECK_COMMAND = `${PACKAGE_MANAGER_RUN_COMMAND} spellcheck --`;
56
+ const WRITER_TASKS = {
57
+ "*.{ts,tsx,mts}": [
58
+ `${PACKAGE_MANAGER_RUN_COMMAND} lint:fix --`,
59
+ `${PACKAGE_MANAGER_RUN_COMMAND} format --`
60
+ ],
61
+ "*.md": [
62
+ `${PACKAGE_MANAGER_RUN_COMMAND} lint:md:fix --`
63
+ ]
64
+ };
65
+ const obsidianDevUtilsConfig = partitionSpellcheck(WRITER_TASKS);
66
+ const NANO_STAGED_ENV_VARIABLE = "NANO_STAGED";
67
+ function getNanoStagedConfig(options) {
68
+ loadEnvFileIfExists();
69
+ if (isEnvVariableOff(NANO_STAGED_ENV_VARIABLE)) {
70
+ process.stdout.write(`nano-staged: skipped (${NANO_STAGED_ENV_VARIABLE} is off).
71
+ `);
72
+ process.exit(0);
73
+ }
74
+ const additionalWriterTasks = options?.additionalWriterTasks ?? {};
75
+ if (Object.keys(additionalWriterTasks).length === 0) {
76
+ return obsidianDevUtilsConfig;
77
+ }
78
+ const duplicatePattern = Object.keys(additionalWriterTasks).find((pattern) => Object.hasOwn(WRITER_TASKS, pattern));
79
+ if (duplicatePattern !== void 0) {
80
+ throw new Error(`nano-staged writer pattern '${duplicatePattern}' is already a shared writer pattern.`);
81
+ }
82
+ return partitionSpellcheck({ ...WRITER_TASKS, ...additionalWriterTasks });
83
+ }
84
+ function partitionSpellcheck(writerTasks) {
85
+ const patterns = Object.keys(writerTasks);
86
+ const patternWithSlash = patterns.find((pattern) => pattern.includes("/"));
87
+ if (patternWithSlash !== void 0) {
88
+ throw new Error(`nano-staged writer pattern '${patternWithSlash}' contains '/', which the spellcheck partition cannot express.`);
89
+ }
90
+ const complementPattern = `!(${patterns.map((pattern) => `${pattern}!(?)`).join("|")})*`;
91
+ const config = {
92
+ [complementPattern]: [SPELLCHECK_COMMAND]
93
+ };
94
+ for (const [pattern, commands] of Object.entries(writerTasks)) {
95
+ config[pattern] = [...commands, SPELLCHECK_COMMAND];
96
+ }
97
+ return config;
98
+ }
99
+ export {
100
+ getNanoStagedConfig,
101
+ obsidianDevUtilsConfig
102
+ };
103
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL25hbm8tc3RhZ2VkLWNvbmZpZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFNoYXJlZCBuYW5vLXN0YWdlZCBjb25maWd1cmF0aW9uIGZvciBwcmUtY29tbWl0IGhvb2tzLlxuICovXG5cbmltcG9ydCBwcm9jZXNzIGZyb20gJ25vZGU6cHJvY2Vzcyc7XG5cbmltcG9ydCB7XG4gIGlzRW52VmFyaWFibGVPZmYsXG4gIGxvYWRFbnZGaWxlSWZFeGlzdHNcbn0gZnJvbSAnLi9lbnYtdG9nZ2xlLnRzJztcbmltcG9ydCB7IGdldFBhY2thZ2VNYW5hZ2VyUnVuQ29tbWFuZCB9IGZyb20gJy4vcGFja2FnZS1tYW5hZ2VyLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZ2V0TmFub1N0YWdlZENvbmZpZ30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TmFub1N0YWdlZENvbmZpZ09wdGlvbnMge1xuICAvKipcbiAgICogUmVwby1zcGVjaWZpYyBmaWxlLXJld3JpdGluZyB0YXNrcywga2V5ZWQgYnkgdGhlIG5hbm8tc3RhZ2VkIHBhdHRlcm4gdGhhdCBjbGFpbXMgdGhlaXIgZmlsZXMuXG4gICAqXG4gICAqIEVhY2ggZ2V0cyBzcGVsbGNoZWNrIGFwcGVuZGVkIGFuZCBpdHMgZmlsZXMgcmVtb3ZlZCBmcm9tIHRoZSBzcGVsbGNoZWNrLW9ubHkga2V5LCBleGFjdGx5IGxpa2UgdGhlIHNoYXJlZFxuICAgKiB3cml0ZXJzLiBBIHBhdHRlcm4gbXVzdCBub3QgY29udGFpbiBgL2AsIGFuZCBtdXN0IG5vdCByZXBlYXQgYSBzaGFyZWQgd3JpdGVyIHBhdHRlcm4uXG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsV3JpdGVyVGFza3M/OiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCByZWFkb25seSBzdHJpbmdbXT4+O1xufVxuXG4vKipcbiAqIFRoZSBgPG1hbmFnZXI+IHJ1bmAgcHJlZml4IGV2ZXJ5IHRhc2sgYmVsb3cgaXMgYnVpbHQgb24sIHJlc29sdmVkIG9uY2UgZm9yIHRoZSBwcm9jZXNzLlxuICpcbiAqIERldGVjdGlvbiBwcm9iZXMgZm9yIGEgbG9ja2ZpbGUgYmVzaWRlIGBwYWNrYWdlLmpzb25gLCBzbyBpdCBpcyBhIGhhbmRmdWwgb2YgYGV4aXN0c1N5bmNgIGNhbGxzIGFuZFxuICogbm90aGluZyBtb3JlIFx1MjAxNCBubyBgLmVudmAgcmVhZCBhbmQgbm8gYHByb2Nlc3MuZXhpdGAsIHdoaWNoIGlzIHdoYXQgbGV0cyBpdCBzaXQgYXQgbW9kdWxlIHNjb3BlLlxuICovXG5jb25zdCBQQUNLQUdFX01BTkFHRVJfUlVOX0NPTU1BTkQgPSBnZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQoKS5qb2luKCcgJyk7XG5cbmNvbnN0IFNQRUxMQ0hFQ0tfQ09NTUFORCA9IGAke1BBQ0tBR0VfTUFOQUdFUl9SVU5fQ09NTUFORH0gc3BlbGxjaGVjayAtLWA7XG5cbi8qKlxuICogVGhlIHRhc2tzIHRoYXQgUkVXUklURSBhIHN0YWdlZCBmaWxlLCBrZXllZCBieSB0aGUgbmFuby1zdGFnZWQgcGF0dGVybiB0aGF0IGNsYWltcyBpdC5cbiAqXG4gKiBgbGludDpmaXhgIGFuZCBgZm9ybWF0YCBib3RoIHJld3JpdGUgdGhlIGZpbGUsIHNvIHRoZXkgaGF2ZSB0byBzaGFyZSBvbmUga2V5OiBuYW5vLXN0YWdlZCBydW5zIGl0c1xuICogcGVyLXBhdHRlcm4gZ3JvdXBzIHVuZGVyIGBQcm9taXNlLmFsbGAgKGBydW4oKWAgaW4gYG5hbm8tc3RhZ2VkL2xpYi9jbWQtcnVubmVyLmpzYCksIGFuZCBzZXF1ZW5jZXMgb25seVxuICogdGhlIGNvbW1hbmRzIElOU0lERSBhIHNpbmdsZSBrZXkncyBhcnJheSAoYHJ1blRhc2soKWAsIGEgYGZvciAuLi4gb2YgYXdhaXRgKS4gU3BsaXQgYWNyb3NzIHR3byBrZXlzIHRoZXlcbiAqIHJhY2UsIHdoaWNoZXZlciBmaW5pc2hlcyBsYXN0IHdpbnMsIGFuZCB0aGUgY29tbWl0IHN0YWdlcyBieXRlcyB0aGF0IG5laXRoZXIgdG9vbCB3b3VsZCBoYXZlIHByb2R1Y2VkIG9uXG4gKiBpdHMgb3duLlxuICpcbiAqIFNvIGRvIE5PVCBleHByZXNzIGEgZGlyZWN0b3J5IGV4Y2x1c2lvbiBieSBnaXZpbmcgb25lIG9mIHRoZXNlIHR3byBpdHMgb3duIG5lZ2F0ZWQga2V5IC0tIHRoYXQgc2lsZW50bHlcbiAqIHRha2VzIHRoZSBvcmRlcmluZyBhd2F5LiBBbiBleGNsdXNpb24gYmVsb25ncyBpbiB0aGUgZXhjbHVkZWQgdG9vbCdzIG93biBjb25maWcsIHdoZXJlIEVTTGludCdzXG4gKiBgZ2xvYmFsSWdub3Jlc2AgYWxyZWFkeSBwdXRzIGl0OiBhIHBhdGggRVNMaW50IGlnbm9yZXMgaXMgcmVwb3J0ZWQgYXMgYSB3YXJuaW5nIGFuZCBleGl0cyAwIHdoZW4gaXQgaXNcbiAqIHBhc3NlZCBleHBsaWNpdGx5LCBzbyBpdCBjb3N0cyBhIGNvbnNvbGUgbGluZSByYXRoZXIgdGhhbiBhIGZhaWxlZCBjb21taXQgYW5kIG5lZWRzIG5vIGtleSBoZXJlLlxuICovXG5jb25zdCBXUklURVJfVEFTS1M6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHJlYWRvbmx5IHN0cmluZ1tdPj4gPSB7XG4gICcqLnt0cyx0c3gsbXRzfSc6IFtcbiAgICBgJHtQQUNLQUdFX01BTkFHRVJfUlVOX0NPTU1BTkR9IGxpbnQ6Zml4IC0tYCxcbiAgICBgJHtQQUNLQUdFX01BTkFHRVJfUlVOX0NPTU1BTkR9IGZvcm1hdCAtLWBcbiAgXSxcbiAgJyoubWQnOiBbXG4gICAgYCR7UEFDS0FHRV9NQU5BR0VSX1JVTl9DT01NQU5EfSBsaW50Om1kOmZpeCAtLWBcbiAgXVxufTtcblxuLyoqXG4gKiBOYW5vLXN0YWdlZCBjb25maWd1cmF0aW9uIHRoYXQgcnVucyBmaWxlLWJhc2VkIGxpbnQsIGZvcm1hdCwgYW5kIHNwZWxsY2hlY2sgb24gc3RhZ2VkIGZpbGVzLlxuICpcbiAqIE9ubHkgaW5jbHVkZXMgdG9vbHMgdGhhdCBjYW4gb3BlcmF0ZSBvbiBpbmRpdmlkdWFsIGZpbGVzLiBXaG9sZS1wcm9qZWN0IGNoZWNrc1xuICogKFR5cGVTY3JpcHQgY29tcGlsYXRpb24sIHVuaXQgdGVzdHMpIGFyZSBsZWZ0IHRvIENJLlxuICpcbiAqIENvbW1hbmRzIHJ1biB0aHJvdWdoIHRoZSBwYWNrYWdlIG1hbmFnZXIgdGhhdCBvd25zIHRoZSB0cmVlIFx1MjAxNCBgbnBtIHJ1biAuLi4gLS1gLCBgYnVuIHJ1biAuLi4gLS1gLCBhbmRcbiAqIHNvIG9uIFx1MjAxNCBzbyBuYW5vLXN0YWdlZCBmaWxlIHBhdGhzIGFyZSBmb3J3YXJkZWQgYXMgQ0xJIGFyZ3VtZW50cy5cbiAqXG4gKiBTcGVsbGNoZWNrIGlzIHBhcnRpdGlvbmVkIGFjcm9zcyB0aGUga2V5cyByYXRoZXIgdGhhbiBnaXZlbiBhIGNhdGNoLWFsbCBgJyonYCBrZXkgKHNlZVxuICogYHBhcnRpdGlvblNwZWxsY2hlY2tgKS4gQSByZXBvIGFkZGluZyBhIGZpbGUtcmV3cml0aW5nIHRhc2sgb2YgaXRzIG93biBwYXNzZXMgaXQgdG9cbiAqIHtAbGluayBnZXROYW5vU3RhZ2VkQ29uZmlnfSBhcyBgYWRkaXRpb25hbFdyaXRlclRhc2tzYCByYXRoZXIgdGhhbiBzcHJlYWRpbmcgdGhpcyBvYmplY3QgYW5kIGFkZGluZyBhIGtleSxcbiAqIHdoaWNoIHdvdWxkIHJlaW50cm9kdWNlIHRoZSBvdmVybGFwIGZvciB0aGF0IGtleSdzIGZpbGVzLlxuICovXG5leHBvcnQgY29uc3Qgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0gcGFydGl0aW9uU3BlbGxjaGVjayhXUklURVJfVEFTS1MpO1xuXG5jb25zdCBOQU5PX1NUQUdFRF9FTlZfVkFSSUFCTEUgPSAnTkFOT19TVEFHRUQnO1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBuYW5vLXN0YWdlZCBjb25maWd1cmF0aW9uIHRvIHVzZSwgaG9ub3JpbmcgYSBwZXItZGV2ZWxvcGVyIG9wdC1vdXQuXG4gKlxuICogTG9hZHMgYSBnaXRpZ25vcmVkIGAuZW52YCBpZiBwcmVzZW50LCB0aGVuIFx1MjAxNCB3aGVuIGBOQU5PX1NUQUdFRGAgaXMgc2V0IHRvIGFuIG9mZiB2YWx1ZSAoYDBgLCBgZmFsc2VgLFxuICogYG9mZmAsIG9yIGBub2ApIFx1MjAxNCBwcmludHMgYSBub3RpY2UgYW5kIGV4aXRzIHRoZSBwcm9jZXNzIHN1Y2Nlc3NmdWxseSBzbyB0aGUgcHJlLWNvbW1pdCBjaGVja3MgYXJlXG4gKiBza2lwcGVkLiBUaGlzIG1pcnJvcnMgaHVza3kncyBvd24gYEhVU0tZPTBgIHN3aXRjaCwgYnV0IHNjb3BlZCB0byB0aGUgbmFuby1zdGFnZWQgc3RlcCAoc28gdGhlXG4gKiBjb21taXQtbXNnIGhvb2sgc3RpbGwgcnVucykuIE90aGVyd2lzZSBpdCByZXR1cm5zIHtAbGluayBvYnNpZGlhbkRldlV0aWxzQ29uZmlnfSwgb3IgXHUyMDE0IHdoZW5cbiAqIGBhZGRpdGlvbmFsV3JpdGVyVGFza3NgIGFyZSBnaXZlbiBcdTIwMTQgdGhlIHNhbWUgY29uZmlndXJhdGlvbiByZS1wYXJ0aXRpb25lZCB3aXRoIHRob3NlIHdyaXRlcnMgYWRkZWQuXG4gKlxuICogYE5BTk9fU1RBR0VEYCBpcyBub3QgYW4gbnBtIHNjcmlwdCwgc28gaXQgY2FycmllcyBpdHMgb3duIHN3aXRjaCByYXRoZXIgdGhhbiB0aGUgc2NyaXB0LW5hbWUtZGVyaXZlZCBvbmVcbiAqIGV2ZXJ5IG5wbSBzY3JpcHQgZ2V0cyBcdTIwMTQgYnV0IGJvdGggc2hhcmUgdGhlIHNhbWUgbm90aW9uIG9mIGFuIG9mZiB2YWx1ZSwgdmlhIHtAbGluayBpc0VudlZhcmlhYmxlT2ZmfS5cbiAqXG4gKiBUaGlzIGlzIGEgZnVuY3Rpb24gcmF0aGVyIHRoYW4gbW9kdWxlLWxldmVsIGNvZGUgc28gaW1wb3J0aW5nIHRoZSBwYWNrYWdlIGJhcnJlbCBuZXZlciB0cmlnZ2VycyB0aGVcbiAqIGAuZW52YCByZWFkIG9yIHRoZSBwcm9jZXNzIGV4aXQ7IGNhbGwgaXQgZnJvbSB0aGUgdGhpbiBgc2NyaXB0cy9uYW5vLXN0YWdlZC1jb25maWcudHNgIGVudHJ5LiBSZXNvbHZpbmcgdGhlXG4gKiBwYWNrYWdlIG1hbmFnZXIgaXMgdGhlIG9uZSB0aGluZyB0aGF0IGRvZXMgcnVuIGF0IG1vZHVsZSBzY29wZSwgYW5kIGl0IGRvZXMgbmVpdGhlciBvZiB0aG9zZSB0d29cbiAqIHRoaW5ncyBcdTIwMTQgaXQgb25seSBwcm9iZXMgZm9yIGEgbG9ja2ZpbGUuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9uYWwgb3B0aW9ucy5cbiAqIEByZXR1cm5zIFRoZSBuYW5vLXN0YWdlZCB0YXNrIGNvbmZpZ3VyYXRpb24uIERvZXMgbm90IHJldHVybiB3aGVuIHRoZSBvcHQtb3V0IGlzIGFjdGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbm9TdGFnZWRDb25maWcob3B0aW9ucz86IEdldE5hbm9TdGFnZWRDb25maWdPcHRpb25zKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHtcbiAgbG9hZEVudkZpbGVJZkV4aXN0cygpO1xuXG4gIGlmIChpc0VudlZhcmlhYmxlT2ZmKE5BTk9fU1RBR0VEX0VOVl9WQVJJQUJMRSkpIHtcbiAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgbmFuby1zdGFnZWQ6IHNraXBwZWQgKCR7TkFOT19TVEFHRURfRU5WX1ZBUklBQkxFfSBpcyBvZmYpLlxcbmApO1xuICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgfVxuXG4gIGNvbnN0IGFkZGl0aW9uYWxXcml0ZXJUYXNrcyA9IG9wdGlvbnM/LmFkZGl0aW9uYWxXcml0ZXJUYXNrcyA/PyB7fTtcbiAgaWYgKE9iamVjdC5rZXlzKGFkZGl0aW9uYWxXcml0ZXJUYXNrcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG9ic2lkaWFuRGV2VXRpbHNDb25maWc7XG4gIH1cblxuICBjb25zdCBkdXBsaWNhdGVQYXR0ZXJuID0gT2JqZWN0LmtleXMoYWRkaXRpb25hbFdyaXRlclRhc2tzKS5maW5kKChwYXR0ZXJuKSA9PiBPYmplY3QuaGFzT3duKFdSSVRFUl9UQVNLUywgcGF0dGVybikpO1xuICBpZiAoZHVwbGljYXRlUGF0dGVybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBuYW5vLXN0YWdlZCB3cml0ZXIgcGF0dGVybiAnJHtkdXBsaWNhdGVQYXR0ZXJufScgaXMgYWxyZWFkeSBhIHNoYXJlZCB3cml0ZXIgcGF0dGVybi5gKTtcbiAgfVxuXG4gIHJldHVybiBwYXJ0aXRpb25TcGVsbGNoZWNrKHsgLi4uV1JJVEVSX1RBU0tTLCAuLi5hZGRpdGlvbmFsV3JpdGVyVGFza3MgfSk7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgbmFuby1zdGFnZWQgY29uZmlndXJhdGlvbiBpbiB3aGljaCBzcGVsbGNoZWNrIG5ldmVyIHJlYWRzIGEgZmlsZSB3aGlsZSBhbm90aGVyIHRhc2sgcmV3cml0ZXMgaXQuXG4gKlxuICogVGhlIHNhbWUgYFByb21pc2UuYWxsYCB0aGF0IGZvcmNlcyB0d28gd3JpdGVycyBpbnRvIG9uZSBrZXkgbWFrZXMgYSBjYXRjaC1hbGwgYCcqJ2Agc3BlbGxjaGVjayBrZXkgcnVuXG4gKiBDT05DVVJSRU5UTFkgd2l0aCBldmVyeSB3cml0ZXIga2V5LCBzbyBjc3BlbGwgd291bGQgcmVhZCBhIGZpbGUgdGhhdCBFU0xpbnQgb3IgZHByaW50IGlzIHJld3JpdGluZyBpblxuICogcGxhY2UgLS0gYSBzcHVyaW91cyBmaW5kaW5nIG9uIGEgaGFsZi13cml0dGVuIGZpbGUsIG9yIGEgcGFzcyBvdmVyIGNvbnRlbnQgdGhhdCBpcyBub3Qgd2hhdCBnZXRzXG4gKiBjb21taXR0ZWQuIFNvIHRoZSBzdGFnZWQgZmlsZXMgYXJlIFBBUlRJVElPTkVEIGluc3RlYWQ6XG4gKlxuICogLSBldmVyeSB3cml0ZXIga2V5IGdldHMgc3BlbGxjaGVjayBhcHBlbmRlZCBhcyBpdHMgTEFTVCBjb21tYW5kLCBzbyBpdCByZWFkcyB0aGF0IGtleSdzIGZpbGVzIGFmdGVyIHRoZXlcbiAqICAgaGF2ZSBiZWVuIHJld3JpdHRlbjtcbiAqIC0gb25lIGNvbXBsZW1lbnQga2V5IHNwZWxsY2hlY2tzIGV4YWN0bHkgdGhlIGZpbGVzIG5vIHdyaXRlciBrZXkgY2xhaW1zLlxuICpcbiAqIFRoZSBjb21wbGVtZW50IGlzIHdyaXR0ZW4gaW4gbmFuby1zdGFnZWQncyBvd24gZ2xvYiBkaWFsZWN0LCB3aGljaCBjb21waWxlcyBgISguLi4pYCB0byBhIGxvb2thaGVhZCB0aGF0XG4gKiBpcyBOT1QgYW5jaG9yZWQgYXQgdGhlIGVuZCBvZiB0aGUgcGF0aDogYCEoKi5tZCkqYCB3b3VsZCBleGNsdWRlIGBub3Rlcy5tZC5iYWtgIHRvby4gQSBuZXN0ZWQgYCEoPylgXG4gKiBjb21waWxlcyB0byBgKD8hLilgLCB3aGljaCBJUyBhbiBlbmQgYW5jaG9yLCBzbyBlYWNoIGFsdGVybmF0aXZlIGlzIHN1ZmZpeGVkIHdpdGggaXQuIEEgd3JpdGVyIHBhdHRlcm5cbiAqIGNvbnRhaW5pbmcgYC9gIHdvdWxkIHN3aXRjaCBuYW5vLXN0YWdlZCBpbnRvIGdsb2JzdGFyIG1vZGUsIHdoZXJlIGAqYCBzdG9wcyBjcm9zc2luZyBkaXJlY3RvcmllcyBhbmQgdGhlXG4gKiBjb25zdHJ1Y3Rpb24gbm8gbG9uZ2VyIGhvbGRzIC0tIGhlbmNlIHRoZSB0aHJvdy4gVGhlIHVuaXQgdGVzdCBwaW5zIHRoZSBwYXJ0aXRpb24gYWdhaW5zdCB0aGUgaW5zdGFsbGVkXG4gKiBuYW5vLXN0YWdlZCBjb21waWxlciwgc28gYSByZWxlYXNlIHRoYXQgY2hhbmdlcyBpdHMgZGlhbGVjdCBmYWlscyB0aGVyZSByYXRoZXIgdGhhbiBpbiBhIGNvbW1pdC5cbiAqXG4gKiBAcGFyYW0gd3JpdGVyVGFza3MgLSBUaGUgZmlsZS1yZXdyaXRpbmcgdGFza3MsIGtleWVkIGJ5IHRoZSBwYXR0ZXJuIHRoYXQgY2xhaW1zIHRoZWlyIGZpbGVzLlxuICogQHJldHVybnMgVGhlIGNvbmZpZ3VyYXRpb24sIHdpdGggdGhlIHNwZWxsY2hlY2sgc3RlcCBwYXJ0aXRpb25lZCBhY3Jvc3MgdGhlIGtleXMuXG4gKi9cbmZ1bmN0aW9uIHBhcnRpdGlvblNwZWxsY2hlY2sod3JpdGVyVGFza3M6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHJlYWRvbmx5IHN0cmluZ1tdPj4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4ge1xuICBjb25zdCBwYXR0ZXJucyA9IE9iamVjdC5rZXlzKHdyaXRlclRhc2tzKTtcbiAgY29uc3QgcGF0dGVybldpdGhTbGFzaCA9IHBhdHRlcm5zLmZpbmQoKHBhdHRlcm4pID0+IHBhdHRlcm4uaW5jbHVkZXMoJy8nKSk7XG4gIGlmIChwYXR0ZXJuV2l0aFNsYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG5hbm8tc3RhZ2VkIHdyaXRlciBwYXR0ZXJuICcke3BhdHRlcm5XaXRoU2xhc2h9JyBjb250YWlucyAnLycsIHdoaWNoIHRoZSBzcGVsbGNoZWNrIHBhcnRpdGlvbiBjYW5ub3QgZXhwcmVzcy5gKTtcbiAgfVxuXG4gIGNvbnN0IGNvbXBsZW1lbnRQYXR0ZXJuID0gYCEoJHtwYXR0ZXJucy5tYXAoKHBhdHRlcm4pID0+IGAke3BhdHRlcm59ISg/KWApLmpvaW4oJ3wnKX0pKmA7XG4gIGNvbnN0IGNvbmZpZzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge1xuICAgIFtjb21wbGVtZW50UGF0dGVybl06IFtTUEVMTENIRUNLX0NPTU1BTkRdXG4gIH07XG5cbiAgZm9yIChjb25zdCBbcGF0dGVybiwgY29tbWFuZHNdIG9mIE9iamVjdC5lbnRyaWVzKHdyaXRlclRhc2tzKSkge1xuICAgIGNvbmZpZ1twYXR0ZXJuXSA9IFsuLi5jb21tYW5kcywgU1BFTExDSEVDS19DT01NQU5EXTtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLE9BQU8sYUFBYTtBQUVwQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsbUNBQW1DO0FBcUI1QyxNQUFNLDhCQUE4Qiw0QkFBNEIsRUFBRSxLQUFLLEdBQUc7QUFFMUUsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkI7QUFnQnpELE1BQU0sZUFBNEQ7QUFBQSxFQUNoRSxrQkFBa0I7QUFBQSxJQUNoQixHQUFHLDJCQUEyQjtBQUFBLElBQzlCLEdBQUcsMkJBQTJCO0FBQUEsRUFDaEM7QUFBQSxFQUNBLFFBQVE7QUFBQSxJQUNOLEdBQUcsMkJBQTJCO0FBQUEsRUFDaEM7QUFDRjtBQWdCTyxNQUFNLHlCQUFtRCxvQkFBb0IsWUFBWTtBQUVoRyxNQUFNLDJCQUEyQjtBQXNCMUIsU0FBUyxvQkFBb0IsU0FBZ0U7QUFDbEcsc0JBQW9CO0FBRXBCLE1BQUksaUJBQWlCLHdCQUF3QixHQUFHO0FBQzlDLFlBQVEsT0FBTyxNQUFNLHlCQUF5Qix3QkFBd0I7QUFBQSxDQUFhO0FBQ25GLFlBQVEsS0FBSyxDQUFDO0FBQUEsRUFDaEI7QUFFQSxRQUFNLHdCQUF3QixTQUFTLHlCQUF5QixDQUFDO0FBQ2pFLE1BQUksT0FBTyxLQUFLLHFCQUFxQixFQUFFLFdBQVcsR0FBRztBQUNuRCxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sbUJBQW1CLE9BQU8sS0FBSyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsWUFBWSxPQUFPLE9BQU8sY0FBYyxPQUFPLENBQUM7QUFDbEgsTUFBSSxxQkFBcUIsUUFBVztBQUNsQyxVQUFNLElBQUksTUFBTSwrQkFBK0IsZ0JBQWdCLHVDQUF1QztBQUFBLEVBQ3hHO0FBRUEsU0FBTyxvQkFBb0IsRUFBRSxHQUFHLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQztBQUMxRTtBQXdCQSxTQUFTLG9CQUFvQixhQUFvRjtBQUMvRyxRQUFNLFdBQVcsT0FBTyxLQUFLLFdBQVc7QUFDeEMsUUFBTSxtQkFBbUIsU0FBUyxLQUFLLENBQUMsWUFBWSxRQUFRLFNBQVMsR0FBRyxDQUFDO0FBQ3pFLE1BQUkscUJBQXFCLFFBQVc7QUFDbEMsVUFBTSxJQUFJLE1BQU0sK0JBQStCLGdCQUFnQixnRUFBZ0U7QUFBQSxFQUNqSTtBQUVBLFFBQU0sb0JBQW9CLEtBQUssU0FBUyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sTUFBTSxFQUFFLEtBQUssR0FBRyxDQUFDO0FBQ3BGLFFBQU0sU0FBbUM7QUFBQSxJQUN2QyxDQUFDLGlCQUFpQixHQUFHLENBQUMsa0JBQWtCO0FBQUEsRUFDMUM7QUFFQSxhQUFXLENBQUMsU0FBUyxRQUFRLEtBQUssT0FBTyxRQUFRLFdBQVcsR0FBRztBQUM3RCxXQUFPLE9BQU8sSUFBSSxDQUFDLEdBQUcsVUFBVSxrQkFBa0I7QUFBQSxFQUNwRDtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,19 @@
1
+ /// <reference path="./index.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Contains utility functions for NPM publish.
6
+ */
7
+ /**
8
+ * Publish to NPM.
9
+ *
10
+ * Authentication is intentionally not handled here. The publish is expected to run from a CI job
11
+ * configured as a {@link https://docs.npmjs.com/trusted-publishers | trusted publisher} on npmjs.com,
12
+ * where the npm CLI exchanges the job's short-lived OIDC token for a publish grant on its own. No NPM
13
+ * token is read, written, or stored, and the published package gets provenance for free.
14
+ *
15
+ * Requires npm `11.5.1` or later.
16
+ *
17
+ * @param isBeta - Whether to publish to the beta NPM registry.
18
+ */
19
+ export declare function publish(isBeta?: boolean): Promise<void>;
@@ -0,0 +1,56 @@
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 initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ import { execFromRoot } from "./root.mjs";
49
+ async function publish(isBeta) {
50
+ const tag = isBeta ? "beta" : "latest";
51
+ await execFromRoot(["npm", "publish", "--tag", tag]);
52
+ }
53
+ export {
54
+ publish
55
+ };
56
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL25wbS1wdWJsaXNoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIE5QTSBwdWJsaXNoLlxuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogUHVibGlzaCB0byBOUE0uXG4gKlxuICogQXV0aGVudGljYXRpb24gaXMgaW50ZW50aW9uYWxseSBub3QgaGFuZGxlZCBoZXJlLiBUaGUgcHVibGlzaCBpcyBleHBlY3RlZCB0byBydW4gZnJvbSBhIENJIGpvYlxuICogY29uZmlndXJlZCBhcyBhIHtAbGluayBodHRwczovL2RvY3MubnBtanMuY29tL3RydXN0ZWQtcHVibGlzaGVycyB8IHRydXN0ZWQgcHVibGlzaGVyfSBvbiBucG1qcy5jb20sXG4gKiB3aGVyZSB0aGUgbnBtIENMSSBleGNoYW5nZXMgdGhlIGpvYidzIHNob3J0LWxpdmVkIE9JREMgdG9rZW4gZm9yIGEgcHVibGlzaCBncmFudCBvbiBpdHMgb3duLiBObyBOUE1cbiAqIHRva2VuIGlzIHJlYWQsIHdyaXR0ZW4sIG9yIHN0b3JlZCwgYW5kIHRoZSBwdWJsaXNoZWQgcGFja2FnZSBnZXRzIHByb3ZlbmFuY2UgZm9yIGZyZWUuXG4gKlxuICogUmVxdWlyZXMgbnBtIGAxMS41LjFgIG9yIGxhdGVyLlxuICpcbiAqIEBwYXJhbSBpc0JldGEgLSBXaGV0aGVyIHRvIHB1Ymxpc2ggdG8gdGhlIGJldGEgTlBNIHJlZ2lzdHJ5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVibGlzaChpc0JldGE/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHRhZyA9IGlzQmV0YSA/ICdiZXRhJyA6ICdsYXRlc3QnO1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWyducG0nLCAncHVibGlzaCcsICctLXRhZycsIHRhZ10pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxTQUFTLG9CQUFvQjtBQWM3QixlQUFzQixRQUFRLFFBQWlDO0FBQzdELFFBQU0sTUFBTSxTQUFTLFNBQVM7QUFDOUIsUUFBTSxhQUFhLENBQUMsT0FBTyxXQUFXLFNBQVMsR0FBRyxDQUFDO0FBQ3JEOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,34 @@
1
+ /// <reference path="./index.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * NPM run utilities.
6
+ */
7
+ /**
8
+ * The result of running an optional npm command.
9
+ */
10
+ export declare enum NpmRunOptionalResult {
11
+ /**
12
+ * The command was skipped because it was not defined in the package.json scripts.
13
+ */
14
+ Skipped = "skipped",
15
+ /**
16
+ * The command was found and run successfully.
17
+ */
18
+ Success = "success"
19
+ }
20
+ /**
21
+ * Runs a command using npm checking if the command is overridden in the package.json.
22
+ *
23
+ * @param command - The command to run.
24
+ */
25
+ export declare function npmRun(command: string): Promise<void>;
26
+ /**
27
+ * Runs a command using npm only if the command is defined in the package.json scripts.
28
+ * If the command is not defined, it is silently skipped.
29
+ *
30
+ * @param command - The command to run.
31
+ * @returns A {@link Promise} that resolves to {@link NpmRunOptionalResult.Success} if the command was
32
+ * found and run, or {@link NpmRunOptionalResult.Skipped} otherwise.
33
+ */
34
+ export declare function npmRunOptional(command: string): Promise<NpmRunOptionalResult>;
@@ -0,0 +1,81 @@
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 initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ import { getLibDebugger } from "@mnaoumov/typescript-lib/debug";
49
+ import { readPackageJson } from "./npm.mjs";
50
+ import { getPackageManagerRunCommand } from "./package-manager.mjs";
51
+ import { execFromRoot } from "./root.mjs";
52
+ var NpmRunOptionalResult = /* @__PURE__ */ ((NpmRunOptionalResult2) => {
53
+ NpmRunOptionalResult2["Skipped"] = "skipped";
54
+ NpmRunOptionalResult2["Success"] = "success";
55
+ return NpmRunOptionalResult2;
56
+ })(NpmRunOptionalResult || {});
57
+ async function npmRun(command) {
58
+ const packageJson = await readPackageJson();
59
+ const isKnownCommand = Object.keys(packageJson.scripts ?? {}).includes(command);
60
+ if (isKnownCommand) {
61
+ await execFromRoot([...getPackageManagerRunCommand(), command]);
62
+ } else {
63
+ throw new Error(`Command ${command} is not defined in the package.json`);
64
+ }
65
+ }
66
+ async function npmRunOptional(command) {
67
+ const packageJson = await readPackageJson();
68
+ const isKnownCommand = Object.keys(packageJson.scripts ?? {}).includes(command);
69
+ if (isKnownCommand) {
70
+ await execFromRoot([...getPackageManagerRunCommand(), command]);
71
+ return "success" /* Success */;
72
+ }
73
+ getLibDebugger("npmRunOptional")(`Command ${command} is not defined in the package.json, skipping`);
74
+ return "skipped" /* Skipped */;
75
+ }
76
+ export {
77
+ NpmRunOptionalResult,
78
+ npmRun,
79
+ npmRunOptional
80
+ };
81
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL25wbS1ydW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOUE0gcnVuIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9kZWJ1Zyc7XG5cbmltcG9ydCB7IHJlYWRQYWNrYWdlSnNvbiB9IGZyb20gJy4vbnBtLnRzJztcbmltcG9ydCB7IGdldFBhY2thZ2VNYW5hZ2VyUnVuQ29tbWFuZCB9IGZyb20gJy4vcGFja2FnZS1tYW5hZ2VyLnRzJztcbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogVGhlIHJlc3VsdCBvZiBydW5uaW5nIGFuIG9wdGlvbmFsIG5wbSBjb21tYW5kLlxuICovXG5leHBvcnQgZW51bSBOcG1SdW5PcHRpb25hbFJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZCB3YXMgc2tpcHBlZCBiZWNhdXNlIGl0IHdhcyBub3QgZGVmaW5lZCBpbiB0aGUgcGFja2FnZS5qc29uIHNjcmlwdHMuXG4gICAqL1xuICBTa2lwcGVkID0gJ3NraXBwZWQnLFxuXG4gIC8qKlxuICAgKiBUaGUgY29tbWFuZCB3YXMgZm91bmQgYW5kIHJ1biBzdWNjZXNzZnVsbHkuXG4gICAqL1xuICBTdWNjZXNzID0gJ3N1Y2Nlc3MnXG59XG5cbi8qKlxuICogUnVucyBhIGNvbW1hbmQgdXNpbmcgbnBtIGNoZWNraW5nIGlmIHRoZSBjb21tYW5kIGlzIG92ZXJyaWRkZW4gaW4gdGhlIHBhY2thZ2UuanNvbi5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIHRvIHJ1bi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG5wbVJ1bihjb21tYW5kOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgY29uc3QgaXNLbm93bkNvbW1hbmQgPSBPYmplY3Qua2V5cyhwYWNrYWdlSnNvbi5zY3JpcHRzID8/IHt9KS5pbmNsdWRlcyhjb21tYW5kKTtcbiAgaWYgKGlzS25vd25Db21tYW5kKSB7XG4gICAgYXdhaXQgZXhlY0Zyb21Sb290KFsuLi5nZXRQYWNrYWdlTWFuYWdlclJ1bkNvbW1hbmQoKSwgY29tbWFuZF0pO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ29tbWFuZCAke2NvbW1hbmR9IGlzIG5vdCBkZWZpbmVkIGluIHRoZSBwYWNrYWdlLmpzb25gKTtcbiAgfVxufVxuXG4vKipcbiAqIFJ1bnMgYSBjb21tYW5kIHVzaW5nIG5wbSBvbmx5IGlmIHRoZSBjb21tYW5kIGlzIGRlZmluZWQgaW4gdGhlIHBhY2thZ2UuanNvbiBzY3JpcHRzLlxuICogSWYgdGhlIGNvbW1hbmQgaXMgbm90IGRlZmluZWQsIGl0IGlzIHNpbGVudGx5IHNraXBwZWQuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgY29tbWFuZCB0byBydW4uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHtAbGluayBOcG1SdW5PcHRpb25hbFJlc3VsdC5TdWNjZXNzfSBpZiB0aGUgY29tbWFuZCB3YXNcbiAqIGZvdW5kIGFuZCBydW4sIG9yIHtAbGluayBOcG1SdW5PcHRpb25hbFJlc3VsdC5Ta2lwcGVkfSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBucG1SdW5PcHRpb25hbChjb21tYW5kOiBzdHJpbmcpOiBQcm9taXNlPE5wbVJ1bk9wdGlvbmFsUmVzdWx0PiB7XG4gIGNvbnN0IHBhY2thZ2VKc29uID0gYXdhaXQgcmVhZFBhY2thZ2VKc29uKCk7XG4gIGNvbnN0IGlzS25vd25Db21tYW5kID0gT2JqZWN0LmtleXMocGFja2FnZUpzb24uc2NyaXB0cyA/PyB7fSkuaW5jbHVkZXMoY29tbWFuZCk7XG4gIGlmIChpc0tub3duQ29tbWFuZCkge1xuICAgIGF3YWl0IGV4ZWNGcm9tUm9vdChbLi4uZ2V0UGFja2FnZU1hbmFnZXJSdW5Db21tYW5kKCksIGNvbW1hbmRdKTtcbiAgICByZXR1cm4gTnBtUnVuT3B0aW9uYWxSZXN1bHQuU3VjY2VzcztcbiAgfVxuICBnZXRMaWJEZWJ1Z2dlcignbnBtUnVuT3B0aW9uYWwnKShgQ29tbWFuZCAke2NvbW1hbmR9IGlzIG5vdCBkZWZpbmVkIGluIHRoZSBwYWNrYWdlLmpzb24sIHNraXBwaW5nYCk7XG4gIHJldHVybiBOcG1SdW5PcHRpb25hbFJlc3VsdC5Ta2lwcGVkO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxTQUFTLHNCQUFzQjtBQUUvQixTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLG1DQUFtQztBQUM1QyxTQUFTLG9CQUFvQjtBQUt0QixJQUFLLHVCQUFMLGtCQUFLQSwwQkFBTDtBQUlMLEVBQUFBLHNCQUFBLGFBQVU7QUFLVixFQUFBQSxzQkFBQSxhQUFVO0FBVEEsU0FBQUE7QUFBQSxHQUFBO0FBaUJaLGVBQXNCLE9BQU8sU0FBZ0M7QUFDM0QsUUFBTSxjQUFjLE1BQU0sZ0JBQWdCO0FBQzFDLFFBQU0saUJBQWlCLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxPQUFPO0FBQzlFLE1BQUksZ0JBQWdCO0FBQ2xCLFVBQU0sYUFBYSxDQUFDLEdBQUcsNEJBQTRCLEdBQUcsT0FBTyxDQUFDO0FBQUEsRUFDaEUsT0FBTztBQUNMLFVBQU0sSUFBSSxNQUFNLFdBQVcsT0FBTyxxQ0FBcUM7QUFBQSxFQUN6RTtBQUNGO0FBVUEsZUFBc0IsZUFBZSxTQUFnRDtBQUNuRixRQUFNLGNBQWMsTUFBTSxnQkFBZ0I7QUFDMUMsUUFBTSxpQkFBaUIsT0FBTyxLQUFLLFlBQVksV0FBVyxDQUFDLENBQUMsRUFBRSxTQUFTLE9BQU87QUFDOUUsTUFBSSxnQkFBZ0I7QUFDbEIsVUFBTSxhQUFhLENBQUMsR0FBRyw0QkFBNEIsR0FBRyxPQUFPLENBQUM7QUFDOUQsV0FBTztBQUFBLEVBQ1Q7QUFDQSxpQkFBZSxnQkFBZ0IsRUFBRSxXQUFXLE9BQU8sK0NBQStDO0FBQ2xHLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFsiTnBtUnVuT3B0aW9uYWxSZXN1bHQiXQp9Cg==
@@ -0,0 +1,168 @@
1
+ /// <reference path="./index.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Contains utility functions for NPM package.json.
6
+ */
7
+ import type { PackageJson, Promisable } from 'type-fest';
8
+ /**
9
+ * Options for {@link editNpmShrinkWrapJson}.
10
+ */
11
+ export type EditNpmShrinkWrapJsonOptions = EditPackageJsonOptions;
12
+ /**
13
+ * Options for {@link editPackageJson}.
14
+ */
15
+ export interface EditPackageJsonOptions {
16
+ /**
17
+ * A current working folder where `package.json` is located.
18
+ */
19
+ readonly cwd?: string;
20
+ /**
21
+ * If `true`, skips editing if the file does not exist.
22
+ *
23
+ * @default `false`
24
+ */
25
+ readonly shouldSkipIfMissing?: boolean;
26
+ }
27
+ /**
28
+ * Options for {@link editPackageJsonSync}.
29
+ */
30
+ export type EditPackageJsonSyncOptions = EditPackageJsonOptions;
31
+ /**
32
+ * Options for {@link editPackageLockJson}.
33
+ */
34
+ export type EditPackageLockJsonOptions = EditPackageJsonOptions;
35
+ /**
36
+ * Options for {@link editPackageLockJsonSync}.
37
+ */
38
+ export type EditPackageLockJsonSyncOptions = EditPackageJsonOptions;
39
+ /**
40
+ * A type of the `package.json` file.
41
+ */
42
+ /**
43
+ * A type of the `package-lock.json` file.
44
+ */
45
+ export interface PackageLockJson extends Partial<PackageJson> {
46
+ /**
47
+ * Packages in the `package-lock.json` file.
48
+ */
49
+ packages?: Record<string, PackageJson>;
50
+ }
51
+ /**
52
+ * Reads, edits, and writes back the `package-lock.json` file using the provided edit function.
53
+ *
54
+ * @param editFunction - The function to edit the parsed `PackageJson` object.
55
+ * @param options - Additional options for editing.
56
+ * @returns A {@link Promise} that resolves when the file has been edited and written.
57
+ */
58
+ export declare function editNpmShrinkWrapJson(editFunction: (packageLockJson: PackageLockJson) => Promisable<void>, options?: EditNpmShrinkWrapJsonOptions): Promise<void>;
59
+ /**
60
+ * Reads, edits, and writes back the `package.json` file using the provided edit function.
61
+ *
62
+ * @param editFunction - The function to edit the parsed `PackageJson` object.
63
+ * @param options - Additional options for editing.
64
+ * @returns A {@link Promise} that resolves when the file has been edited and written.
65
+ */
66
+ export declare function editPackageJson(editFunction: (packageJson: PackageJson) => Promisable<void>, options?: EditPackageJsonOptions): Promise<void>;
67
+ /**
68
+ * Reads, edits, and writes back the `package.json` file using the provided edit function.
69
+ *
70
+ * @param editFunction - The function to edit the parsed `PackageJson` object.
71
+ * @param options - Additional options for editing.
72
+ */
73
+ export declare function editPackageJsonSync(editFunction: (packageJson: PackageJson) => void, options?: EditPackageJsonSyncOptions): void;
74
+ /**
75
+ * Reads, edits, and writes back the `package-lock.json` file using the provided edit function.
76
+ *
77
+ * @param editFunction - The function to edit the parsed `PackageJson` object.
78
+ * @param options - Additional options for editing.
79
+ * @returns A {@link Promise} that resolves when the file has been edited and written.
80
+ */
81
+ export declare function editPackageLockJson(editFunction: (packageLockJson: PackageLockJson) => Promisable<void>, options?: EditPackageLockJsonOptions): Promise<void>;
82
+ /**
83
+ * Reads, edits, and writes back the `package-lock.json` file using the provided edit function.
84
+ *
85
+ * @param editFunction - The function to edit the parsed `PackageLockJson` object.
86
+ * @param options - Additional options for editing.
87
+ */
88
+ export declare function editPackageLockJsonSync(editFunction: (packageLockJson: PackageLockJson) => void, options?: EditPackageLockJsonSyncOptions): void;
89
+ /**
90
+ * Resolves the path to the `npm-shrinkwrap.json` file in the specified folder or in the root if no folder is specified.
91
+ *
92
+ * @param cwd - The current working folder where `npm-shrinkwrap.json` is located.
93
+ * @returns The resolved path to the `npm-shrinkwrap.json` file.
94
+ */
95
+ export declare function getNpmShrinkWrapJsonPath(cwd?: string): string;
96
+ /**
97
+ * Resolves the path to the `package.json` file in the specified folder or in the root if no folder is specified.
98
+ *
99
+ * @param cwd - The current working folder where `package.json` is located.
100
+ * @returns The resolved path to the `package.json` file.
101
+ */
102
+ export declare function getPackageJsonPath(cwd?: string): string;
103
+ /**
104
+ * Resolves the path to the `package-lock.json` file in the specified folder or in the root if no folder is specified.
105
+ *
106
+ * @param cwd - The current working folder where `package-lock.json` is located.
107
+ * @returns The resolved path to the `package-lock.json` file.
108
+ */
109
+ export declare function getPackageLockJsonPath(cwd?: string): string;
110
+ /**
111
+ * Reads the `package.json` file from the specified folder or from the root if no folder is specified.
112
+ *
113
+ * @param cwd - The current working folder where `package.json` is located.
114
+ * @returns A {@link Promise} that resolves with the parsed `PackageJson` object.
115
+ */
116
+ export declare function readPackageJson(cwd?: string): Promise<PackageJson>;
117
+ /**
118
+ * Reads the `package.json` file from the specified folder or from the root if no folder is specified.
119
+ *
120
+ * @param cwd - The current working folder where `package.json` is located.
121
+ * @returns The parsed `PackageJson` object.
122
+ */
123
+ export declare function readPackageJsonSync(cwd?: string): PackageJson;
124
+ /**
125
+ * Reads the `package-lock.json` file from the specified folder or from the root if no folder is specified.
126
+ *
127
+ * @param cwd - The current working folder where `package-lock.json` is located.
128
+ * @returns A {@link Promise} that resolves with the parsed `PackageJson` object.
129
+ */
130
+ export declare function readPackageLockJson(cwd?: string): Promise<PackageLockJson>;
131
+ /**
132
+ * Reads the `package-lock.json` file from the specified folder or from the root if no folder is specified.
133
+ *
134
+ * @param cwd - The current working folder where `package-lock.json` is located.
135
+ * @returns The parsed `PackageLockJson` object.
136
+ */
137
+ export declare function readPackageLockJsonSync(cwd?: string): PackageLockJson;
138
+ /**
139
+ * Writes the provided `PackageJson` object to the `package.json` file in the specified folder or in the root.
140
+ *
141
+ * @param packageJson - The `PackageJson` object to write.
142
+ * @param cwd - The current working folder where `package.json` is located.
143
+ * @returns A {@link Promise} that resolves when the file has been written.
144
+ */
145
+ export declare function writePackageJson(packageJson: PackageJson, cwd?: string): Promise<void>;
146
+ /**
147
+ * Writes the provided `PackageJson` object to the `package.json` file in the specified folder or in the root.
148
+ *
149
+ * @param packageJson - The `PackageJson` object to write.
150
+ * @param cwd - The current working folder where `package.json` is located.
151
+ */
152
+ export declare function writePackageJsonSync(packageJson: PackageJson, cwd?: string): void;
153
+ /**
154
+ * Writes the provided `PackageJson` object to the `package-lock.json` file in the specified folder or in the root.
155
+ *
156
+ * @param packageLockJson - The `PackageLockJson` object to write.
157
+ * @param cwd - The current working folder where `package-lock.json` is located.
158
+ * @returns A {@link Promise} that resolves when the file has been written.
159
+ */
160
+ export declare function writePackageLockJson(packageLockJson: PackageLockJson, cwd?: string): Promise<void>;
161
+ /**
162
+ * Writes the provided `PackageLockJson` object to the `package-lock.json` file in the specified folder or in the root.
163
+ *
164
+ * @param packageLockJson - The `PackageLockJson` object to write.
165
+ * @param cwd - The current working folder where `package-lock.json` is located.
166
+ */
167
+ export declare function writePackageLockJsonSync(packageLockJson: PackageLockJson, cwd?: string): void;
168
+ export type { PackageJson };