@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,106 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ (function initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ import { parseArgs } from "node:util";
49
+ import { isEnvVariableOff } from "./env-toggle.mjs";
50
+ import {
51
+ npmRun,
52
+ npmRunOptional,
53
+ NpmRunOptionalResult
54
+ } from "./npm-run.mjs";
55
+ import { assertPackageLockIntegrity } from "./package-lock-integrity.mjs";
56
+ const PACKAGE_LOCK_INTEGRITY_ENV_VARIABLE = "PACKAGE_LOCK_INTEGRITY";
57
+ async function gate(options = {}) {
58
+ const {
59
+ shouldBuild = true,
60
+ shouldRunChecks = true,
61
+ shouldRunIntegrationTests = false
62
+ } = options;
63
+ if (shouldRunChecks) {
64
+ if (!isEnvVariableOff(PACKAGE_LOCK_INTEGRITY_ENV_VARIABLE)) {
65
+ await assertPackageLockIntegrity();
66
+ }
67
+ await npmRunOptional("format:check");
68
+ await npmRunOptional("spellcheck");
69
+ await npmRunOptional("lint:md");
70
+ }
71
+ if (shouldBuild) {
72
+ await npmRun("build");
73
+ }
74
+ if (!shouldRunChecks) {
75
+ return;
76
+ }
77
+ await npmRunOptional("lint");
78
+ await npmRunOptional("find-overexposed");
79
+ if (await npmRunOptional("test:coverage") === NpmRunOptionalResult.Skipped) {
80
+ await npmRunOptional("test");
81
+ }
82
+ if (shouldRunIntegrationTests) {
83
+ await npmRunOptional("test:integration");
84
+ }
85
+ }
86
+ function parseGateArguments($arguments) {
87
+ const { values } = parseArgs({
88
+ // eslint-disable-next-line unicorn/name-replacements -- `args` is the option name Node's `parseArgs` reads.
89
+ args: $arguments,
90
+ options: {
91
+ "integration": { type: "boolean" },
92
+ "no-build": { type: "boolean" },
93
+ "no-checks": { type: "boolean" }
94
+ }
95
+ });
96
+ return {
97
+ shouldBuild: !(values["no-build"] ?? false),
98
+ shouldRunChecks: !(values["no-checks"] ?? false),
99
+ shouldRunIntegrationTests: values.integration ?? false
100
+ };
101
+ }
102
+ export {
103
+ gate,
104
+ parseGateArguments
105
+ };
106
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dhdGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGUgYnJhbmNoIGdhdGU6IHRoZSB2ZXJpZmljYXRpb24gc2VxdWVuY2UgdGhhdCBgdXBkYXRlVmVyc2lvbmAgcnVucyBhcyBpdHMgcmVsZWFzZSBwcmVmbGlnaHQsIGF2YWlsYWJsZVxuICogYXMgYSBjb21tYW5kIG9mIGl0cyBvd24uXG4gKlxuICogRm91ciBvZiB0aGUgcHJlZmxpZ2h0J3MgY2hlY2tzIFx1MjAxNCBgZm9ybWF0OmNoZWNrYCwgYHNwZWxsY2hlY2tgLCBgZmluZC1vdmVyZXhwb3NlZGAgYW5kIGB0ZXN0OmNvdmVyYWdlYCBcdTIwMTRcbiAqIGFyZSByZWFjaGFibGUgYnkgbm8gb3RoZXIgcm91dGluZSBjb21tYW5kLiBTbyB0aGUgbmF0dXJhbCBicmFuY2ggZ2F0ZSAoYnVpbGQsIGxpbnQsIHRlc3QpIGNhbiBiZSBncmVlblxuICogd2hpbGUgdGhlIHJlbGVhc2UgaXMgc3RpbGwgZ29pbmcgdG8gZmFpbCwgYW5kIHRoZSBmYWlsdXJlIGFycml2ZXMgYXQgcmVsZWFzZSB0aW1lIHJhdGhlciB0aGFuIGluIHNlY29uZHNcbiAqIG9uIHRoZSBicmFuY2guXG4gKlxuICogVGhpcyBtb2R1bGUgZXhpc3RzIHNvIHRoZSB0d28gYXJlIHRoZSBzYW1lIGNvZGUgcmF0aGVyIHRoYW4gdHdvIGxpc3RzIHRoYXQgYWdyZWUgdG9kYXk6IGB1cGRhdGVWZXJzaW9uYFxuICogY2FsbHMge0BsaW5rIGdhdGV9LCBhbmQgYSBjaGVjayBhZGRlZCBoZXJlIGlzIHJlYWNoYWJsZSBmcm9tIGJvdGguIFdoYXQgdGhlIGdhdGUgZGVsaWJlcmF0ZWx5IGxlYXZlcyB0b1xuICogdGhlIHJlbGVhc2UgcGF0aCBpcyB0aGUgY2xlYW4tcmVwbyBhc3NlcnRpb24gXHUyMDE0IGEgYnJhbmNoIGdhdGUgaXMgcnVuIG9uIGEgZGlydHkgdHJlZSwgd2hpY2ggaXMgdGhlIHdob2xlXG4gKiBwb2ludCBvZiBydW5uaW5nIGl0IGJlZm9yZSBjb21taXR0aW5nIFx1MjAxNCBhbmQgdGhlIGludGVncmF0aW9uIHN1aXRlLCB3aGljaCBpcyB0aGUgb25lIHByZWZsaWdodCBzdGVwIHRoYXRcbiAqIGFscmVhZHkgaGFzIGEgcm91dGluZSBjb21tYW5kIG9mIGl0cyBvd24gKGBucG0gcnVuIHRlc3Q6aW50ZWdyYXRpb25gKSBhbmQgc28gaXMgbm90IGluIHRoZSBjbGFzcyB0aGlzXG4gKiBtb2R1bGUgZXhpc3RzIGZvci5cbiAqXG4gKiBUaGUgdGVzdHMgcnVuIE9OQ0UsIHRocm91Z2ggYHRlc3Q6Y292ZXJhZ2VgIHdoZXJlIHRoZSBwcm9qZWN0IGRlZmluZXMgaXQgYW5kIHRocm91Z2ggYHRlc3RgIG90aGVyd2lzZS5cbiAqIFJ1bm5pbmcgYm90aCwgYXMgdGhpcyBkaWQgdW50aWwgMjAyNi0wOS0wNSwgd2FzIGEgZHVwbGljYXRlIGV2ZXJ5d2hlcmUgaXQgbWF0dGVyZWQ6IGEgcHJvamVjdCBzY29wZXMgaXRzXG4gKiB0d28gdGVzdCBzY3JpcHRzIHRvIHRoZSBzYW1lIHZpdGVzdCBwcm9qZWN0cyBcdTIwMTQgZXZlcnkgcmVwbyBpbiB0aGlzIHdvcmtzcGFjZSBwYXNzZXMgdGhlIHNhbWUgYHByb2plY3RzYFxuICogYXJyYXkgdG8gYm90aCBcdTIwMTQgc28gYHRlc3Q6Y292ZXJhZ2VgIGlzIGB0ZXN0YCBwbHVzIHRoZSB0aHJlc2hvbGQgZmxhZ3MsIG92ZXIgdGhlIGlkZW50aWNhbCBmaWxlcy4gSXQgYnV5c1xuICogbm8gZmFpbC1mYXN0IGVpdGhlciwgYmVjYXVzZSB0aGUgY292ZXJhZ2UgcnVuIGZhaWxzIG9uIGV4YWN0bHkgdGhlIGZhaWx1cmVzIHRoZSBwbGFpbiBydW4gd291bGQgaGF2ZVxuICogY2F1Z2h0LiBUaGUgb25lIHRoaW5nIGxvc3QgaXMgdGhlIGFiaWxpdHkgdG8gc3dpdGNoIG9mZiBvbmx5IHRoZSBjb3ZlcmFnZSBoYWxmOiBgVEVTVF9DT1ZFUkFHRT0wYCBub3dcbiAqIHR1cm5zIG9mZiB0aGUgZ2F0ZSdzIHdob2xlIHRlc3Qgc3RlcCByYXRoZXIgdGhhbiBkZW1vdGluZyBpdCB0byBgdGVzdGAuXG4gKi9cblxuaW1wb3J0IHsgcGFyc2VBcmdzIH0gZnJvbSAnbm9kZTp1dGlsJztcblxuaW1wb3J0IHsgaXNFbnZWYXJpYWJsZU9mZiB9IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5pbXBvcnQge1xuICBucG1SdW4sXG4gIG5wbVJ1bk9wdGlvbmFsLFxuICBOcG1SdW5PcHRpb25hbFJlc3VsdFxufSBmcm9tICcuL25wbS1ydW4udHMnO1xuaW1wb3J0IHsgYXNzZXJ0UGFja2FnZUxvY2tJbnRlZ3JpdHkgfSBmcm9tICcuL3BhY2thZ2UtbG9jay1pbnRlZ3JpdHkudHMnO1xuXG4vKipcbiAqIFRoZSBvZmYgc3dpdGNoIGZvciB0aGUgbG9ja2ZpbGUgY2hlY2suIFRoZSBjaGVjayBpcyBubyBucG0gc2NyaXB0LCBzbyBucG0gY2Fubm90IGRlcml2ZSBhIHN3aXRjaCBmcm9tIGFcbiAqIHNjcmlwdCBuYW1lIGZvciBpdCwgYnV0IHRoZSBuYW1lIGZvbGxvd3MgdGhlIHNhbWUgcGF0dGVybi5cbiAqL1xuY29uc3QgUEFDS0FHRV9MT0NLX0lOVEVHUklUWV9FTlZfVkFSSUFCTEUgPSAnUEFDS0FHRV9MT0NLX0lOVEVHUklUWSc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdhdGV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBidWlsZC4gVGhlIGJ1aWxkIGlzIG5vdCBhIHZlcmlmaWNhdGlvbiBjaGVjayBcdTIwMTQgaXQgaXMga2VwdCBpbiB0aGUgZ2F0ZSBiZWNhdXNlIGl0IGlzXG4gICAqIHRoZSBvbmx5IHN0ZXAgdGhhdCB0eXBlLWNoZWNrcyB0aGUgcHJvamVjdCwgYW5kIGEgZ3JlZW4gbGludCBpcyBub3QgYSB0eXBlLWNoZWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZEJ1aWxkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBydW4gdGhlIHZlcmlmaWNhdGlvbiBjaGVja3MuIFdoZW4gYGZhbHNlYCwgb25seSB0aGUgYnVpbGQgcnVucywgd2hpY2ggaXMgd2hhdFxuICAgKiBgbnBtIHJ1biB2ZXJzaW9uIC0tIC0tbm8tY2hlY2tzYCBkb2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFJ1bkNoZWNrcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0IHN1aXRlLiBPZmYgYnkgZGVmYXVsdCwgb24gdHdvIHJlYXNvbnMgdGhhdCBhcmUgYWJvdXQgQ09TVCByYXRoZXJcbiAgICogdGhhbiBhYm91dCBjb250ZW50aW9uIFx1MjAxNCBkZXNrdG9wIHJ1bnMgc3RvcHBlZCBjb250ZW5kaW5nIGluIGBvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nYCA1LjAuMCwgd2hpY2hcbiAgICogZ2l2ZXMgZXZlcnkgcnVuIGl0cyBvd24gdXNlci1kYXRhIGRpciBhbmQgQ0RQIHBvcnQsIGFuZCB0aGUgQW5kcm9pZCBlbXVsYXRvciB0aGF0IGlzIHN0aWxsIHNoYXJlZCBpc1xuICAgKiBzZXJpYWxpemVkIGJ5IHRoYXQgcGFja2FnZSdzIG93biBgYW5kcm9pZGAgc2V0dXAgbG9jaywgd2hpY2ggd2FpdHMgcmF0aGVyIHRoYW4gZmFpbGluZy5cbiAgICpcbiAgICogVGhlIHJlYXNvbnMgdGhhdCBkbyBob2xkOiBgdGVzdDppbnRlZ3JhdGlvbmAgaXMgdGhlIG9uZSBwcmVmbGlnaHQgc3RlcCByZWFjaGFibGUgYnkgYSByb3V0aW5lIGNvbW1hbmRcbiAgICogb2YgaXRzIG93biwgdW5saWtlIHRoZSBmb3VyIHRoaXMgZ2F0ZSBleGlzdHMgZm9yOyBhbmQgaW4gYSBwcm9qZWN0IHdob3NlIHN1aXRlIGluY2x1ZGVzIGFuIEFuZHJvaWRcbiAgICogdGVzdCBpdCBib290cyBhbiBBVkQgYW5kIGFuIEFwcGl1bSBzZXJ2ZXIsIHRoZW4gcXVldWVzIGJlaGluZCBhbnkgb3RoZXIgQW5kcm9pZCBydW4gZm9yIHVwIHRvIHRoYXRcbiAgICogbG9jaydzIGhvdXItbG9uZyBhY3F1aXNpdGlvbiB0aW1lb3V0LiBBIGNvbW1hbmQgd2hvc2Ugd2hvbGUgc2VsbGluZyBwb2ludCBpcyBhbnN3ZXJpbmcgaW4gc2Vjb25kcyBtdXN0XG4gICAqIG5vdCBzdGFydCBvbmUgdW5hc2tlZC4gVGhlIHJlbGVhc2UgcGF0aCBvcHRzIGluLCBzbyBub3RoaW5nIGlzIHNraXBwZWQgYmVmb3JlIGEgcHVibGlzaC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUnVuSW50ZWdyYXRpb25UZXN0cz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUnVucyB0aGUgdmVyaWZpY2F0aW9uIHNlcXVlbmNlIHRoYXQgYG5wbSBydW4gdmVyc2lvbmAgcnVucyBhcyBpdHMgcHJlZmxpZ2h0LlxuICpcbiAqIFRoZSBvcmRlciBpcyBkZWxpYmVyYXRlLiBUaGUgbG9ja2ZpbGUgY2hlY2sgKHtAbGluayBhc3NlcnRQYWNrYWdlTG9ja0ludGVncml0eX0pIGNvbWVzIGZpcnN0LCBiZWNhdXNlIGl0XG4gKiBpcyBhbiBpbi1wcm9jZXNzIEpTT04gcmVhZCB0aGF0IHRha2VzIHdlbGwgdW5kZXIgYSBzZWNvbmQuIFRoZW4gY29tZSB0aGUgY2hlY2tzIHRoYXQgZmluaXNoIGluIHNlY29uZHMgKGBmb3JtYXQ6Y2hlY2tgLCBgc3BlbGxjaGVja2AsIGBsaW50Om1kYCkgcnVuXG4gKiBmaXJzdCwgc28gYSB0eXBvIGZhaWxzIHRoZSBnYXRlIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YgYWZ0ZXIgdGhlIGNvdmVyYWdlIHJ1bi4gRWFjaCBzdGVwIGlzIGRpc3BhdGNoZWRcbiAqIHRocm91Z2ggdGhlIHBhY2thZ2UgbWFuYWdlciwgc28gYSBwcm9qZWN0IG92ZXJyaWRpbmcgb25lIG9mIHRoZXNlIHNjcmlwdHMgZ2V0cyBpdHMgb3duIHZlcnNpb24sIGFuZCBlYWNoXG4gKiBzdGVwIGNhcnJpZXMgaXRzIG93biBlbnZpcm9ubWVudCBvZmYgc3dpdGNoLlxuICpcbiAqIEV2ZXJ5IHN0ZXAgYnV0IGBidWlsZGAgaXMgcnVuIHdpdGgge0BsaW5rIG5wbVJ1bk9wdGlvbmFsfSwgc28gaXQgaXMgc2tpcHBlZCB3aGVuIHRoZSBwcm9qZWN0IGRvZXMgbm90IGRlZmluZVxuICogaXQ6IGEgcHJvamVjdCB0aGF0IGNob3NlIG5vIGZvcm1hdHRlciwgc3BlbGwgY2hlY2tlciwgbWFya2Rvd24gbGludGVyIG9yIGxpbnRlciBoYXMgbm90aGluZyB0byBjaGVjayB0aGVyZSxcbiAqIGFuZCByZXF1aXJpbmcgdGhvc2Ugc2NyaXB0cyBtYWRlIGBucG0gcnVuIHZlcnNpb25gIGRpZSBvbiBpdHMgZmlyc3Qgc3RlcCBpbiBleGFjdGx5IHRob3NlIHByb2plY3RzLiBgYnVpbGRgXG4gKiBzdGF5cyByZXF1aXJlZCwgYmVjYXVzZSBhIHJlbGVhc2Ugd2l0aCBub3RoaW5nIGJ1aWx0IGhhcyBub3RoaW5nIHRvIHNoaXAuIFRoZSB0ZXN0IHN0ZXAgaXMgdGhlIG9uZSBwbGFjZSB0aGF0IHJlYWRzIHRoYXQgc2tpcDogYHRlc3Q6Y292ZXJhZ2VgIGlzIHByZWZlcnJlZCwgYW5kXG4gKiBgdGVzdGAgcnVucyBvbmx5IGFzIGl0cyBmYWxsYmFjaywgc28gdGhlIHN1aXRlIGlzIG5ldmVyIHJ1biB0d2ljZS4gVGhlIHVuaXQgdGVzdHMgc3RheSBhaGVhZCBvZlxuICogYHRlc3Q6aW50ZWdyYXRpb25gIGZvciB0aGUgc2FtZSBmYXN0ZXN0LWZpcnN0IHJlYXNvbiBcdTIwMTQgYSBicm9rZW4gdW5pdCB0ZXN0IHNob3VsZCBmYWlsIGJlZm9yZSBhblxuICogaW50ZWdyYXRpb24gc3VpdGUgaXMgc3RhcnRlZCwgbm90IGFmdGVyLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBHYXRlT3B0aW9uc30gY29udHJvbGxpbmcgd2hpY2ggc3RlcHMgcnVuLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIGV2ZXJ5IHN0ZXAgaGFzIHBhc3NlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdhdGUob3B0aW9uczogR2F0ZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgc2hvdWxkQnVpbGQgPSB0cnVlLFxuICAgIHNob3VsZFJ1bkNoZWNrcyA9IHRydWUsXG4gICAgc2hvdWxkUnVuSW50ZWdyYXRpb25UZXN0cyA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmIChzaG91bGRSdW5DaGVja3MpIHtcbiAgICBpZiAoIWlzRW52VmFyaWFibGVPZmYoUEFDS0FHRV9MT0NLX0lOVEVHUklUWV9FTlZfVkFSSUFCTEUpKSB7XG4gICAgICBhd2FpdCBhc3NlcnRQYWNrYWdlTG9ja0ludGVncml0eSgpO1xuICAgIH1cblxuICAgIGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdmb3JtYXQ6Y2hlY2snKTtcbiAgICBhd2FpdCBucG1SdW5PcHRpb25hbCgnc3BlbGxjaGVjaycpO1xuICAgIGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdsaW50Om1kJyk7XG4gIH1cblxuICBpZiAoc2hvdWxkQnVpbGQpIHtcbiAgICBhd2FpdCBucG1SdW4oJ2J1aWxkJyk7XG4gIH1cblxuICBpZiAoIXNob3VsZFJ1bkNoZWNrcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdsaW50Jyk7XG4gIGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCdmaW5kLW92ZXJleHBvc2VkJyk7XG5cbiAgaWYgKGF3YWl0IG5wbVJ1bk9wdGlvbmFsKCd0ZXN0OmNvdmVyYWdlJykgPT09IE5wbVJ1bk9wdGlvbmFsUmVzdWx0LlNraXBwZWQpIHtcbiAgICBhd2FpdCBucG1SdW5PcHRpb25hbCgndGVzdCcpO1xuICB9XG5cbiAgaWYgKHNob3VsZFJ1bkludGVncmF0aW9uVGVzdHMpIHtcbiAgICBhd2FpdCBucG1SdW5PcHRpb25hbCgndGVzdDppbnRlZ3JhdGlvbicpO1xuICB9XG59XG5cbi8qKlxuICogUGFyc2VzIHRoZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGZvciB0aGUgZ2F0ZSBzY3JpcHQuXG4gKlxuICogVGhlIHR3byBgLS1uby1gIGZsYWdzIHN3aXRjaCBvZmYgc3RlcHMgdGhhdCBhcmUgb247IGAtLWludGVncmF0aW9uYCBpcyB0aGUgb25lIHRoYXQgc3dpdGNoZXMgYSBzdGVwIE9OLFxuICogYmVjYXVzZSB7QGxpbmsgR2F0ZU9wdGlvbnMuc2hvdWxkUnVuSW50ZWdyYXRpb25UZXN0c30gaXMgb2ZmIGJ5IGRlZmF1bHQgZm9yIGNvc3QuIEl0IGV4aXN0cyBzbyB0aGF0XG4gKiBkZWZhdWx0IGlzIGEgY2hvaWNlIHRoZSBjYWxsZXIgY2FuIG1ha2UgcGVyIHJ1biByYXRoZXIgdGhhbiBvbmUgb25seSBhIHByb2dyYW1tYXRpYyBjYWxsZXIgY2FuIHJlYWNoLlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gcGFyc2UuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIHtAbGluayBHYXRlT3B0aW9uc30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUdhdGVBcmd1bWVudHMoJGFyZ3VtZW50czogc3RyaW5nW10pOiBHYXRlT3B0aW9ucyB7XG4gIGNvbnN0IHsgdmFsdWVzIH0gPSBwYXJzZUFyZ3Moe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25hbWUtcmVwbGFjZW1lbnRzIC0tIGBhcmdzYCBpcyB0aGUgb3B0aW9uIG5hbWUgTm9kZSdzIGBwYXJzZUFyZ3NgIHJlYWRzLlxuICAgIGFyZ3M6ICRhcmd1bWVudHMsXG4gICAgb3B0aW9uczoge1xuICAgICAgJ2ludGVncmF0aW9uJzogeyB0eXBlOiAnYm9vbGVhbicgfSxcbiAgICAgICduby1idWlsZCc6IHsgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgICAnbm8tY2hlY2tzJzogeyB0eXBlOiAnYm9vbGVhbicgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzaG91bGRCdWlsZDogISh2YWx1ZXNbJ25vLWJ1aWxkJ10gPz8gZmFsc2UpLFxuICAgIHNob3VsZFJ1bkNoZWNrczogISh2YWx1ZXNbJ25vLWNoZWNrcyddID8/IGZhbHNlKSxcbiAgICBzaG91bGRSdW5JbnRlZ3JhdGlvblRlc3RzOiB2YWx1ZXMuaW50ZWdyYXRpb24gPz8gZmFsc2VcbiAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkJBLFNBQVMsaUJBQWlCO0FBRTFCLFNBQVMsd0JBQXdCO0FBQ2pDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsa0NBQWtDO0FBTTNDLE1BQU0sc0NBQXNDO0FBMkQ1QyxlQUFzQixLQUFLLFVBQXVCLENBQUMsR0FBa0I7QUFDbkUsUUFBTTtBQUFBLElBQ0osY0FBYztBQUFBLElBQ2Qsa0JBQWtCO0FBQUEsSUFDbEIsNEJBQTRCO0FBQUEsRUFDOUIsSUFBSTtBQUVKLE1BQUksaUJBQWlCO0FBQ25CLFFBQUksQ0FBQyxpQkFBaUIsbUNBQW1DLEdBQUc7QUFDMUQsWUFBTSwyQkFBMkI7QUFBQSxJQUNuQztBQUVBLFVBQU0sZUFBZSxjQUFjO0FBQ25DLFVBQU0sZUFBZSxZQUFZO0FBQ2pDLFVBQU0sZUFBZSxTQUFTO0FBQUEsRUFDaEM7QUFFQSxNQUFJLGFBQWE7QUFDZixVQUFNLE9BQU8sT0FBTztBQUFBLEVBQ3RCO0FBRUEsTUFBSSxDQUFDLGlCQUFpQjtBQUNwQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLGVBQWUsTUFBTTtBQUMzQixRQUFNLGVBQWUsa0JBQWtCO0FBRXZDLE1BQUksTUFBTSxlQUFlLGVBQWUsTUFBTSxxQkFBcUIsU0FBUztBQUMxRSxVQUFNLGVBQWUsTUFBTTtBQUFBLEVBQzdCO0FBRUEsTUFBSSwyQkFBMkI7QUFDN0IsVUFBTSxlQUFlLGtCQUFrQjtBQUFBLEVBQ3pDO0FBQ0Y7QUFZTyxTQUFTLG1CQUFtQixZQUFtQztBQUNwRSxRQUFNLEVBQUUsT0FBTyxJQUFJLFVBQVU7QUFBQTtBQUFBLElBRTNCLE1BQU07QUFBQSxJQUNOLFNBQVM7QUFBQSxNQUNQLGVBQWUsRUFBRSxNQUFNLFVBQVU7QUFBQSxNQUNqQyxZQUFZLEVBQUUsTUFBTSxVQUFVO0FBQUEsTUFDOUIsYUFBYSxFQUFFLE1BQU0sVUFBVTtBQUFBLElBQ2pDO0FBQUEsRUFDRixDQUFDO0FBRUQsU0FBTztBQUFBLElBQ0wsYUFBYSxFQUFFLE9BQU8sVUFBVSxLQUFLO0FBQUEsSUFDckMsaUJBQWlCLEVBQUUsT0FBTyxXQUFXLEtBQUs7QUFBQSxJQUMxQywyQkFBMkIsT0FBTyxlQUFlO0FBQUEsRUFDbkQ7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,37 @@
1
+ /// <reference path="./index.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Git-derived file listings for the repo-walking scripts.
6
+ *
7
+ * Tooling that walks the repository must skip whatever `.gitignore` skips — otherwise every script grows its
8
+ * own hand-maintained ignore list, the lists drift apart, and a path that is gitignored but not enumerated
9
+ * (a nested `node_modules` under a test fixture, say) is walked anyway. Most tools have a native switch for
10
+ * this; the ones that do not take a file list instead, and that is what this module produces.
11
+ *
12
+ * Asking git rather than parsing `.gitignore` is deliberate: it honors nested ignore files, `!` negations,
13
+ * `.git/info/exclude`, and the user's global excludes, at no cost to us.
14
+ */
15
+ /**
16
+ * Options for {@link getNonIgnoredFiles}.
17
+ */
18
+ export interface GetNonIgnoredFilesOptions {
19
+ /**
20
+ * Git pathspecs limiting the listing, e.g. `['*.md']`. When omitted, every non-ignored file is listed.
21
+ *
22
+ * @default `[]`
23
+ */
24
+ readonly patterns?: readonly string[] | undefined;
25
+ }
26
+ /**
27
+ * Lists the repository files that `.gitignore` does not exclude.
28
+ *
29
+ * Covers both tracked files and untracked-but-not-ignored ones, so a brand-new file is checked before it is
30
+ * ever committed.
31
+ *
32
+ * @param options - The {@link GetNonIgnoredFilesOptions}.
33
+ * @returns A {@link Promise} that resolves with the matching paths, relative to the root folder and
34
+ * separated by `/`; or with `null` when git cannot answer — it is not installed, or the project is not a
35
+ * git repository (a tarball checkout, for instance). Callers fall back to their own listing in that case.
36
+ */
37
+ export declare function getNonIgnoredFiles(options?: GetNonIgnoredFilesOptions): Promise<null | string[]>;
@@ -0,0 +1,72 @@
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
+ const NUL_SEPARATOR = "\0";
50
+ async function getNonIgnoredFiles(options) {
51
+ const { patterns = [] } = options ?? {};
52
+ const command = [
53
+ "git",
54
+ "ls-files",
55
+ "--cached",
56
+ "--others",
57
+ "--exclude-standard",
58
+ "-z",
59
+ ...patterns.length > 0 ? ["--", ...patterns] : []
60
+ ];
61
+ let stdout;
62
+ try {
63
+ stdout = await execFromRoot(command, { isQuiet: true });
64
+ } catch {
65
+ return null;
66
+ }
67
+ return [...new Set(stdout.split(NUL_SEPARATOR).filter((path) => path !== ""))];
68
+ }
69
+ export {
70
+ getNonIgnoredFiles
71
+ };
72
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEdpdC1kZXJpdmVkIGZpbGUgbGlzdGluZ3MgZm9yIHRoZSByZXBvLXdhbGtpbmcgc2NyaXB0cy5cbiAqXG4gKiBUb29saW5nIHRoYXQgd2Fsa3MgdGhlIHJlcG9zaXRvcnkgbXVzdCBza2lwIHdoYXRldmVyIGAuZ2l0aWdub3JlYCBza2lwcyBcdTIwMTQgb3RoZXJ3aXNlIGV2ZXJ5IHNjcmlwdCBncm93cyBpdHNcbiAqIG93biBoYW5kLW1haW50YWluZWQgaWdub3JlIGxpc3QsIHRoZSBsaXN0cyBkcmlmdCBhcGFydCwgYW5kIGEgcGF0aCB0aGF0IGlzIGdpdGlnbm9yZWQgYnV0IG5vdCBlbnVtZXJhdGVkXG4gKiAoYSBuZXN0ZWQgYG5vZGVfbW9kdWxlc2AgdW5kZXIgYSB0ZXN0IGZpeHR1cmUsIHNheSkgaXMgd2Fsa2VkIGFueXdheS4gTW9zdCB0b29scyBoYXZlIGEgbmF0aXZlIHN3aXRjaCBmb3JcbiAqIHRoaXM7IHRoZSBvbmVzIHRoYXQgZG8gbm90IHRha2UgYSBmaWxlIGxpc3QgaW5zdGVhZCwgYW5kIHRoYXQgaXMgd2hhdCB0aGlzIG1vZHVsZSBwcm9kdWNlcy5cbiAqXG4gKiBBc2tpbmcgZ2l0IHJhdGhlciB0aGFuIHBhcnNpbmcgYC5naXRpZ25vcmVgIGlzIGRlbGliZXJhdGU6IGl0IGhvbm9ycyBuZXN0ZWQgaWdub3JlIGZpbGVzLCBgIWAgbmVnYXRpb25zLFxuICogYC5naXQvaW5mby9leGNsdWRlYCwgYW5kIHRoZSB1c2VyJ3MgZ2xvYmFsIGV4Y2x1ZGVzLCBhdCBubyBjb3N0IHRvIHVzLlxuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdldE5vbklnbm9yZWRGaWxlc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Tm9uSWdub3JlZEZpbGVzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHaXQgcGF0aHNwZWNzIGxpbWl0aW5nIHRoZSBsaXN0aW5nLCBlLmcuIGBbJyoubWQnXWAuIFdoZW4gb21pdHRlZCwgZXZlcnkgbm9uLWlnbm9yZWQgZmlsZSBpcyBsaXN0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbXWBcbiAgICovXG4gIHJlYWRvbmx5IHBhdHRlcm5zPzogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogU2VwYXJhdGVzIHRoZSBwYXRocyBpbiBgZ2l0IGxzLWZpbGVzIC16YCBvdXRwdXQuIFVzaW5nIHRoZSBOVUwgZm9ybSBhdm9pZHMgZ2l0J3MgcXVvdGluZyBvZiBwYXRocyB0aGF0XG4gKiBjb250YWluIHVudXN1YWwgY2hhcmFjdGVycywgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gYmUgdW5lc2NhcGVkLlxuICovXG5jb25zdCBOVUxfU0VQQVJBVE9SID0gJ1xcMCc7XG5cbi8qKlxuICogTGlzdHMgdGhlIHJlcG9zaXRvcnkgZmlsZXMgdGhhdCBgLmdpdGlnbm9yZWAgZG9lcyBub3QgZXhjbHVkZS5cbiAqXG4gKiBDb3ZlcnMgYm90aCB0cmFja2VkIGZpbGVzIGFuZCB1bnRyYWNrZWQtYnV0LW5vdC1pZ25vcmVkIG9uZXMsIHNvIGEgYnJhbmQtbmV3IGZpbGUgaXMgY2hlY2tlZCBiZWZvcmUgaXQgaXNcbiAqIGV2ZXIgY29tbWl0dGVkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBHZXROb25JZ25vcmVkRmlsZXNPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbWF0Y2hpbmcgcGF0aHMsIHJlbGF0aXZlIHRvIHRoZSByb290IGZvbGRlciBhbmRcbiAqIHNlcGFyYXRlZCBieSBgL2A7IG9yIHdpdGggYG51bGxgIHdoZW4gZ2l0IGNhbm5vdCBhbnN3ZXIgXHUyMDE0IGl0IGlzIG5vdCBpbnN0YWxsZWQsIG9yIHRoZSBwcm9qZWN0IGlzIG5vdCBhXG4gKiBnaXQgcmVwb3NpdG9yeSAoYSB0YXJiYWxsIGNoZWNrb3V0LCBmb3IgaW5zdGFuY2UpLiBDYWxsZXJzIGZhbGwgYmFjayB0byB0aGVpciBvd24gbGlzdGluZyBpbiB0aGF0IGNhc2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXROb25JZ25vcmVkRmlsZXMob3B0aW9ucz86IEdldE5vbklnbm9yZWRGaWxlc09wdGlvbnMpOiBQcm9taXNlPG51bGwgfCBzdHJpbmdbXT4ge1xuICBjb25zdCB7IHBhdHRlcm5zID0gW10gfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbW1hbmQgPSBbXG4gICAgJ2dpdCcsXG4gICAgJ2xzLWZpbGVzJyxcbiAgICAnLS1jYWNoZWQnLFxuICAgICctLW90aGVycycsXG4gICAgJy0tZXhjbHVkZS1zdGFuZGFyZCcsXG4gICAgJy16JyxcbiAgICAuLi5wYXR0ZXJucy5sZW5ndGggPiAwID8gWyctLScsIC4uLnBhdHRlcm5zXSA6IFtdXG4gIF07XG5cbiAgbGV0IHN0ZG91dDogc3RyaW5nO1xuICB0cnkge1xuICAgIHN0ZG91dCA9IGF3YWl0IGV4ZWNGcm9tUm9vdChjb21tYW5kLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gYC0tY2FjaGVkIC0tb3RoZXJzYCBjYW4gbmFtZSB0aGUgc2FtZSBwYXRoIHR3aWNlIChlLmcuIGEgZmlsZSBzdGFnZWQgZm9yIGRlbGV0aW9uIHRoYXQgaXMgc3RpbGwgb24gZGlzaykuXG4gIHJldHVybiBbLi4ubmV3IFNldChzdGRvdXQuc3BsaXQoTlVMX1NFUEFSQVRPUikuZmlsdGVyKChwYXRoKSA9PiBwYXRoICE9PSAnJykpXTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsU0FBUyxvQkFBb0I7QUFrQjdCLE1BQU0sZ0JBQWdCO0FBYXRCLGVBQXNCLG1CQUFtQixTQUErRDtBQUN0RyxRQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUM7QUFDdEMsUUFBTSxVQUFVO0FBQUEsSUFDZDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFHLFNBQVMsU0FBUyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsSUFBSSxDQUFDO0FBQUEsRUFDbEQ7QUFFQSxNQUFJO0FBQ0osTUFBSTtBQUNGLGFBQVMsTUFBTSxhQUFhLFNBQVMsRUFBRSxTQUFTLEtBQUssQ0FBQztBQUFBLEVBQ3hELFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUdBLFNBQU8sQ0FBQyxHQUFHLElBQUksSUFBSSxPQUFPLE1BQU0sYUFBYSxFQUFFLE9BQU8sQ0FBQyxTQUFTLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFDL0U7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,35 @@
1
+ /// <reference lib="dom" />
2
+ /// <reference lib="dom.iterable" />
3
+ /// <reference lib="es2022" />
4
+ /// <reference lib="esnext.disposable" />
5
+ /// <reference types="node" />
6
+ export * as 'build' from './build.mjs';
7
+ export * as 'bundlers' from './bundlers/index.mjs';
8
+ export * as 'check-project-types' from './check-project-types.mjs';
9
+ export * as 'cli-utils' from './cli-utils.mjs';
10
+ export * as 'code-generator' from './code-generator.mjs';
11
+ export * as 'commitlint-config' from './commitlint-config.mjs';
12
+ export * as 'commitlint-forbidden-patterns' from './commitlint-forbidden-patterns.mjs';
13
+ export * as 'commitlint-spellcheck-header' from './commitlint-spellcheck-header.mjs';
14
+ export * as 'env-toggle' from './env-toggle.mjs';
15
+ export * as 'exec' from './exec.mjs';
16
+ export * as 'forbidden-patterns' from './forbidden-patterns.mjs';
17
+ export * as 'formatters' from './formatters/index.mjs';
18
+ export * as 'fs' from './fs.mjs';
19
+ export * as 'gate' from './gate.mjs';
20
+ export * as 'git' from './git.mjs';
21
+ export * as 'json' from './json.mjs';
22
+ export * as 'library-build' from './library-build.mjs';
23
+ export * as 'linters' from './linters/index.mjs';
24
+ export * as 'nano-staged-config' from './nano-staged-config.mjs';
25
+ export * as 'npm-publish' from './npm-publish.mjs';
26
+ export * as 'npm-run' from './npm-run.mjs';
27
+ export * as 'npm' from './npm.mjs';
28
+ export * as 'package-lock-integrity' from './package-lock-integrity.mjs';
29
+ export * as 'package-manager' from './package-manager.mjs';
30
+ export * as 'released-issues' from './released-issues.mjs';
31
+ export * as 'repo-paths' from './repo-paths.mjs';
32
+ export * as 'root' from './root.mjs';
33
+ export * as 'test-runners' from './test-runners/index.mjs';
34
+ export * as 'validate-declarations' from './validate-declarations.mjs';
35
+ export * as 'version' from './version.mjs';
@@ -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 initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ import * as build from "./build.mjs";
49
+ import * as bundlers from "./bundlers/index.mjs";
50
+ import * as check_project_types from "./check-project-types.mjs";
51
+ import * as cli_utils from "./cli-utils.mjs";
52
+ import * as code_generator from "./code-generator.mjs";
53
+ import * as commitlint_config from "./commitlint-config.mjs";
54
+ import * as commitlint_forbidden_patterns from "./commitlint-forbidden-patterns.mjs";
55
+ import * as commitlint_spellcheck_header from "./commitlint-spellcheck-header.mjs";
56
+ import * as env_toggle from "./env-toggle.mjs";
57
+ import * as exec from "./exec.mjs";
58
+ import * as forbidden_patterns from "./forbidden-patterns.mjs";
59
+ import * as formatters from "./formatters/index.mjs";
60
+ import * as fs from "./fs.mjs";
61
+ import * as gate from "./gate.mjs";
62
+ import * as git from "./git.mjs";
63
+ import * as json from "./json.mjs";
64
+ import * as library_build from "./library-build.mjs";
65
+ import * as linters from "./linters/index.mjs";
66
+ import * as nano_staged_config from "./nano-staged-config.mjs";
67
+ import * as npm_publish from "./npm-publish.mjs";
68
+ import * as npm_run from "./npm-run.mjs";
69
+ import * as npm from "./npm.mjs";
70
+ import * as package_lock_integrity from "./package-lock-integrity.mjs";
71
+ import * as package_manager from "./package-manager.mjs";
72
+ import * as released_issues from "./released-issues.mjs";
73
+ import * as repo_paths from "./repo-paths.mjs";
74
+ import * as root from "./root.mjs";
75
+ import * as test_runners from "./test-runners/index.mjs";
76
+ import * as validate_declarations from "./validate-declarations.mjs";
77
+ import * as version from "./version.mjs";
78
+ export {
79
+ build,
80
+ bundlers,
81
+ check_project_types as "check-project-types",
82
+ cli_utils as "cli-utils",
83
+ code_generator as "code-generator",
84
+ commitlint_config as "commitlint-config",
85
+ commitlint_forbidden_patterns as "commitlint-forbidden-patterns",
86
+ commitlint_spellcheck_header as "commitlint-spellcheck-header",
87
+ env_toggle as "env-toggle",
88
+ exec,
89
+ forbidden_patterns as "forbidden-patterns",
90
+ formatters,
91
+ fs,
92
+ gate,
93
+ git,
94
+ json,
95
+ library_build as "library-build",
96
+ linters,
97
+ nano_staged_config as "nano-staged-config",
98
+ npm,
99
+ npm_publish as "npm-publish",
100
+ npm_run as "npm-run",
101
+ package_lock_integrity as "package-lock-integrity",
102
+ package_manager as "package-manager",
103
+ released_issues as "released-issues",
104
+ repo_paths as "repo-paths",
105
+ root,
106
+ test_runners as "test-runners",
107
+ validate_declarations as "validate-declarations",
108
+ version
109
+ };
110
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2J1aWxkJyBmcm9tICcuL2J1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdidW5kbGVycycgZnJvbSAnLi9idW5kbGVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY2hlY2stcHJvamVjdC10eXBlcycgZnJvbSAnLi9jaGVjay1wcm9qZWN0LXR5cGVzLnRzJztcbmV4cG9ydCAqIGFzICdjbGktdXRpbHMnIGZyb20gJy4vY2xpLXV0aWxzLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWdlbmVyYXRvcicgZnJvbSAnLi9jb2RlLWdlbmVyYXRvci50cyc7XG5leHBvcnQgKiBhcyAnY29tbWl0bGludC1jb25maWcnIGZyb20gJy4vY29tbWl0bGludC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zJyBmcm9tICcuL2NvbW1pdGxpbnQtZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyJyBmcm9tICcuL2NvbW1pdGxpbnQtc3BlbGxjaGVjay1oZWFkZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Vudi10b2dnbGUnIGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5leHBvcnQgKiBhcyAnZXhlYycgZnJvbSAnLi9leGVjLnRzJztcbmV4cG9ydCAqIGFzICdmb3JiaWRkZW4tcGF0dGVybnMnIGZyb20gJy4vZm9yYmlkZGVuLXBhdHRlcm5zLnRzJztcbmV4cG9ydCAqIGFzICdmb3JtYXR0ZXJzJyBmcm9tICcuL2Zvcm1hdHRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2ZzJyBmcm9tICcuL2ZzLnRzJztcbmV4cG9ydCAqIGFzICdnYXRlJyBmcm9tICcuL2dhdGUudHMnO1xuZXhwb3J0ICogYXMgJ2dpdCcgZnJvbSAnLi9naXQudHMnO1xuZXhwb3J0ICogYXMgJ2pzb24nIGZyb20gJy4vanNvbi50cyc7XG5leHBvcnQgKiBhcyAnbGlicmFyeS1idWlsZCcgZnJvbSAnLi9saWJyYXJ5LWJ1aWxkLnRzJztcbmV4cG9ydCAqIGFzICdsaW50ZXJzJyBmcm9tICcuL2xpbnRlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25hbm8tc3RhZ2VkLWNvbmZpZycgZnJvbSAnLi9uYW5vLXN0YWdlZC1jb25maWcudHMnO1xuZXhwb3J0ICogYXMgJ25wbS1wdWJsaXNoJyBmcm9tICcuL25wbS1wdWJsaXNoLnRzJztcbmV4cG9ydCAqIGFzICducG0tcnVuJyBmcm9tICcuL25wbS1ydW4udHMnO1xuZXhwb3J0ICogYXMgJ25wbScgZnJvbSAnLi9ucG0udHMnO1xuZXhwb3J0ICogYXMgJ3BhY2thZ2UtbG9jay1pbnRlZ3JpdHknIGZyb20gJy4vcGFja2FnZS1sb2NrLWludGVncml0eS50cyc7XG5leHBvcnQgKiBhcyAncGFja2FnZS1tYW5hZ2VyJyBmcm9tICcuL3BhY2thZ2UtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZWQtaXNzdWVzJyBmcm9tICcuL3JlbGVhc2VkLWlzc3Vlcy50cyc7XG5leHBvcnQgKiBhcyAncmVwby1wYXRocycgZnJvbSAnLi9yZXBvLXBhdGhzLnRzJztcbmV4cG9ydCAqIGFzICdyb290JyBmcm9tICcuL3Jvb3QudHMnO1xuZXhwb3J0ICogYXMgJ3Rlc3QtcnVubmVycycgZnJvbSAnLi90ZXN0LXJ1bm5lcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRlLWRlY2xhcmF0aW9ucycgZnJvbSAnLi92YWxpZGF0ZS1kZWNsYXJhdGlvbnMudHMnO1xuZXhwb3J0ICogYXMgJ3ZlcnNpb24nIGZyb20gJy4vdmVyc2lvbi50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFlBQVksV0FBYTtBQUN6QixZQUFZLGNBQWdCO0FBQzVCLFlBQVlBLHlCQUEyQjtBQUN2QyxZQUFZQyxlQUFpQjtBQUM3QixZQUFZQyxvQkFBc0I7QUFDbEMsWUFBWUMsdUJBQXlCO0FBQ3JDLFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyxrQ0FBb0M7QUFDaEQsWUFBWUMsZ0JBQWtCO0FBQzlCLFlBQVksVUFBWTtBQUN4QixZQUFZQyx3QkFBMEI7QUFDdEMsWUFBWSxnQkFBa0I7QUFDOUIsWUFBWSxRQUFVO0FBQ3RCLFlBQVksVUFBWTtBQUN4QixZQUFZLFNBQVc7QUFDdkIsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLG1CQUFxQjtBQUNqQyxZQUFZLGFBQWU7QUFDM0IsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLGlCQUFtQjtBQUMvQixZQUFZQyxhQUFlO0FBQzNCLFlBQVksU0FBVztBQUN2QixZQUFZQyw0QkFBOEI7QUFDMUMsWUFBWUMscUJBQXVCO0FBQ25DLFlBQVlDLHFCQUF1QjtBQUNuQyxZQUFZQyxnQkFBa0I7QUFDOUIsWUFBWSxVQUFZO0FBQ3hCLFlBQVlDLGtCQUFvQjtBQUNoQyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWSxhQUFlOyIsCiAgIm5hbWVzIjogWyJjaGVjay1wcm9qZWN0LXR5cGVzIiwgImNsaS11dGlscyIsICJjb2RlLWdlbmVyYXRvciIsICJjb21taXRsaW50LWNvbmZpZyIsICJjb21taXRsaW50LWZvcmJpZGRlbi1wYXR0ZXJucyIsICJjb21taXRsaW50LXNwZWxsY2hlY2staGVhZGVyIiwgImVudi10b2dnbGUiLCAiZm9yYmlkZGVuLXBhdHRlcm5zIiwgImxpYnJhcnktYnVpbGQiLCAibmFuby1zdGFnZWQtY29uZmlnIiwgIm5wbS1wdWJsaXNoIiwgIm5wbS1ydW4iLCAicGFja2FnZS1sb2NrLWludGVncml0eSIsICJwYWNrYWdlLW1hbmFnZXIiLCAicmVsZWFzZWQtaXNzdWVzIiwgInJlcG8tcGF0aHMiLCAidGVzdC1ydW5uZXJzIiwgInZhbGlkYXRlLWRlY2xhcmF0aW9ucyJdCn0K
@@ -0,0 +1,102 @@
1
+ /// <reference path="./index.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Contains utility functions for JSON.
6
+ */
7
+ import type { Promisable } from 'type-fest';
8
+ /**
9
+ * Options for {@link editJson}.
10
+ */
11
+ export interface EditJsonOptions {
12
+ /**
13
+ * If `true`, skips editing if the file does not exist.
14
+ *
15
+ * @default `false`
16
+ */
17
+ readonly shouldSkipIfMissing?: boolean;
18
+ }
19
+ /**
20
+ * Parameters for {@link editJson}.
21
+ *
22
+ * @typeParam T - The type of the data to be edited.
23
+ */
24
+ export interface EditJsonParams<T> extends EditJsonOptions {
25
+ /**
26
+ * The function to edit the parsed JSON data.
27
+ *
28
+ * @param data - The parsed JSON data to edit.
29
+ */
30
+ readonly editFunction: (data: T) => Promisable<void>;
31
+ /**
32
+ * The path to the JSON file.
33
+ */
34
+ readonly path: string;
35
+ }
36
+ /**
37
+ * Options for {@link editJsonSync}.
38
+ */
39
+ export type EditJsonSyncOptions = EditJsonOptions;
40
+ /**
41
+ * Parameters for {@link editJsonSync}.
42
+ *
43
+ * @typeParam T - The type of the data to be edited.
44
+ */
45
+ export interface EditJsonSyncParams<T> extends EditJsonSyncOptions {
46
+ /**
47
+ * The function to edit the parsed JSON data.
48
+ *
49
+ * @param data - The parsed JSON data to edit.
50
+ */
51
+ readonly editFunction: (data: T) => void;
52
+ /**
53
+ * The path to the JSON file.
54
+ */
55
+ readonly path: string;
56
+ }
57
+ /**
58
+ * Reads, edits, and writes back a JSON file using a provided edit function.
59
+ *
60
+ * @typeParam T - The type of the data to be edited.
61
+ * @param params - The parameters for the function.
62
+ * @returns A {@link Promise} that resolves when the file has been edited and written.
63
+ */
64
+ export declare function editJson<T>(params: EditJsonParams<T>): Promise<void>;
65
+ /**
66
+ * Reads, edits, and writes back a JSON file using a provided edit function.
67
+ *
68
+ * @typeParam T - The type of the data to be edited.
69
+ * @param params - The parameters for the function.
70
+ */
71
+ export declare function editJsonSync<T>(params: EditJsonSyncParams<T>): void;
72
+ /**
73
+ * Reads a JSON file and parses its contents into a JavaScript object of type `T`.
74
+ *
75
+ * @typeParam T - The type to which the JSON content will be parsed.
76
+ * @param path - The path to the JSON file.
77
+ * @returns A {@link Promise} that resolves with the parsed JSON object of type `T`.
78
+ */
79
+ export declare function readJson<T>(path: string): Promise<T>;
80
+ /**
81
+ * Reads a JSON file and parses its contents into a JavaScript object of type `T`.
82
+ *
83
+ * @typeParam T - The type to which the JSON content will be parsed.
84
+ * @param path - The path to the JSON file.
85
+ * @returns The parsed JSON object of type `T`.
86
+ */
87
+ export declare function readJsonSync<T>(path: string): T;
88
+ /**
89
+ * Writes a JavaScript object to a JSON file.
90
+ *
91
+ * @param path - The path to the JSON file.
92
+ * @param data - The data to write to the JSON file.
93
+ * @returns A {@link Promise} that resolves when the file has been written.
94
+ */
95
+ export declare function writeJson(path: string, data: unknown): Promise<void>;
96
+ /**
97
+ * Writes a JavaScript object to a JSON file.
98
+ *
99
+ * @param path - The path to the JSON file.
100
+ * @param data - The data to write to the JSON file.
101
+ */
102
+ export declare function writeJsonSync(path: string, data: unknown): void;
@@ -0,0 +1,106 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ (function initEsm() {
43
+ ensureDisposeSymbols();
44
+ ensureBrowserProcess();
45
+ })();
46
+ })();
47
+
48
+ import { toJson } from "@mnaoumov/typescript-lib/object-utils";
49
+ import {
50
+ existsSync,
51
+ readFileSync,
52
+ writeFileSync
53
+ } from "node:fs";
54
+ import {
55
+ readFile,
56
+ writeFile
57
+ } from "node:fs/promises";
58
+ async function editJson(params) {
59
+ const {
60
+ editFunction,
61
+ path,
62
+ shouldSkipIfMissing
63
+ } = params;
64
+ if (shouldSkipIfMissing && !existsSync(path)) {
65
+ return;
66
+ }
67
+ const data = await readJson(path);
68
+ await editFunction(data);
69
+ await writeJson(path, data);
70
+ }
71
+ function editJsonSync(params) {
72
+ const {
73
+ editFunction,
74
+ path,
75
+ shouldSkipIfMissing
76
+ } = params;
77
+ if (shouldSkipIfMissing && !existsSync(path)) {
78
+ return;
79
+ }
80
+ const data = readJsonSync(path);
81
+ editFunction(data);
82
+ writeJsonSync(path, data);
83
+ }
84
+ async function readJson(path) {
85
+ return JSON.parse(await readFile(path, "utf-8"));
86
+ }
87
+ function readJsonSync(path) {
88
+ return JSON.parse(readFileSync(path, "utf-8"));
89
+ }
90
+ async function writeJson(path, data) {
91
+ await writeFile(path, `${toJson(data)}
92
+ `);
93
+ }
94
+ function writeJsonSync(path, data) {
95
+ writeFileSync(path, `${toJson(data)}
96
+ `);
97
+ }
98
+ export {
99
+ editJson,
100
+ editJsonSync,
101
+ readJson,
102
+ readJsonSync,
103
+ writeJson,
104
+ writeJsonSync
105
+ };
106
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2pzb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgSlNPTi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyB0b0pzb24gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvb2JqZWN0LXV0aWxzJztcbmltcG9ydCB7XG4gIGV4aXN0c1N5bmMsXG4gIHJlYWRGaWxlU3luYyxcbiAgd3JpdGVGaWxlU3luY1xufSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIHJlYWRGaWxlLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGVkaXRKc29ufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0SnNvbk9wdGlvbnMge1xuICAvKipcbiAgICogSWYgYHRydWVgLCBza2lwcyBlZGl0aW5nIGlmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwSWZNaXNzaW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZWRpdEpzb259LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBkYXRhIHRvIGJlIGVkaXRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0SnNvblBhcmFtczxUPiBleHRlbmRzIEVkaXRKc29uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIEpTT04gZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgcGFyc2VkIEpTT04gZGF0YSB0byBlZGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdEZ1bmN0aW9uOiAoZGF0YTogVCkgPT4gUHJvbWlzYWJsZTx2b2lkPjtcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZWRpdEpzb25TeW5jfS5cbiAqL1xuZXhwb3J0IHR5cGUgRWRpdEpzb25TeW5jT3B0aW9ucyA9IEVkaXRKc29uT3B0aW9ucztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZWRpdEpzb25TeW5jfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgZGF0YSB0byBiZSBlZGl0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdEpzb25TeW5jUGFyYW1zPFQ+IGV4dGVuZHMgRWRpdEpzb25TeW5jT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24gdG8gZWRpdCB0aGUgcGFyc2VkIEpTT04gZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgcGFyc2VkIEpTT04gZGF0YSB0byBlZGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdEZ1bmN0aW9uOiAoZGF0YTogVCkgPT4gdm9pZDtcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWFkcywgZWRpdHMsIGFuZCB3cml0ZXMgYmFjayBhIEpTT04gZmlsZSB1c2luZyBhIHByb3ZpZGVkIGVkaXQgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIGRhdGEgdG8gYmUgZWRpdGVkLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGFuZCB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZWRpdEpzb248VD4ocGFyYW1zOiBFZGl0SnNvblBhcmFtczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgZWRpdEZ1bmN0aW9uLFxuICAgIHBhdGgsXG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gcGFyYW1zO1xuICBpZiAoc2hvdWxkU2tpcElmTWlzc2luZyAmJiAhZXhpc3RzU3luYyhwYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBkYXRhID0gYXdhaXQgcmVhZEpzb248VD4ocGF0aCk7XG4gIGF3YWl0IGVkaXRGdW5jdGlvbihkYXRhKTtcbiAgYXdhaXQgd3JpdGVKc29uKHBhdGgsIGRhdGEpO1xufVxuXG4vKipcbiAqIFJlYWRzLCBlZGl0cywgYW5kIHdyaXRlcyBiYWNrIGEgSlNPTiBmaWxlIHVzaW5nIGEgcHJvdmlkZWQgZWRpdCBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgZGF0YSB0byBiZSBlZGl0ZWQuXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRKc29uU3luYzxUPihwYXJhbXM6IEVkaXRKc29uU3luY1BhcmFtczxUPik6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZWRpdEZ1bmN0aW9uLFxuICAgIHBhdGgsXG4gICAgc2hvdWxkU2tpcElmTWlzc2luZ1xuICB9ID0gcGFyYW1zO1xuICBpZiAoc2hvdWxkU2tpcElmTWlzc2luZyAmJiAhZXhpc3RzU3luYyhwYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBkYXRhID0gcmVhZEpzb25TeW5jPFQ+KHBhdGgpO1xuICBlZGl0RnVuY3Rpb24oZGF0YSk7XG4gIHdyaXRlSnNvblN5bmMocGF0aCwgZGF0YSk7XG59XG5cbi8qKlxuICogUmVhZHMgYSBKU09OIGZpbGUgYW5kIHBhcnNlcyBpdHMgY29udGVudHMgaW50byBhIEphdmFTY3JpcHQgb2JqZWN0IG9mIHR5cGUgYFRgLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIHRvIHdoaWNoIHRoZSBKU09OIGNvbnRlbnQgd2lsbCBiZSBwYXJzZWQuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBKU09OIGZpbGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHBhcnNlZCBKU09OIG9iamVjdCBvZiB0eXBlIGBUYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRKc29uPFQ+KHBhdGg6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICByZXR1cm4gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShwYXRoLCAndXRmLTgnKSkgYXMgVDtcbn1cblxuLyoqXG4gKiBSZWFkcyBhIEpTT04gZmlsZSBhbmQgcGFyc2VzIGl0cyBjb250ZW50cyBpbnRvIGEgSmF2YVNjcmlwdCBvYmplY3Qgb2YgdHlwZSBgVGAuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgdG8gd2hpY2ggdGhlIEpTT04gY29udGVudCB3aWxsIGJlIHBhcnNlZC5cbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgSlNPTiBvYmplY3Qgb2YgdHlwZSBgVGAuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkdW1teSBwYXJhbWV0ZXIgdG8gZ2V0IHR5cGUgaW5mZXJlbmNlLlxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRKc29uU3luYzxUPihwYXRoOiBzdHJpbmcpOiBUIHtcbiAgcmV0dXJuIEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKHBhdGgsICd1dGYtOCcpKSBhcyBUO1xufVxuXG4vKipcbiAqIFdyaXRlcyBhIEphdmFTY3JpcHQgb2JqZWN0IHRvIGEgSlNPTiBmaWxlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gd3JpdGUgdG8gdGhlIEpTT04gZmlsZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZSBoYXMgYmVlbiB3cml0dGVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVKc29uKHBhdGg6IHN0cmluZywgZGF0YTogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCB3cml0ZUZpbGUocGF0aCwgYCR7dG9Kc29uKGRhdGEpfVxcbmApO1xufVxuXG4vKipcbiAqIFdyaXRlcyBhIEphdmFTY3JpcHQgb2JqZWN0IHRvIGEgSlNPTiBmaWxlLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggdG8gdGhlIEpTT04gZmlsZS5cbiAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gd3JpdGUgdG8gdGhlIEpTT04gZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyaXRlSnNvblN5bmMocGF0aDogc3RyaW5nLCBkYXRhOiB1bmtub3duKTogdm9pZCB7XG4gIHdyaXRlRmlsZVN5bmMocGF0aCwgYCR7dG9Kc29uKGRhdGEpfVxcbmApO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRQSxTQUFTLGNBQWM7QUFDdkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFnRVAsZUFBc0IsU0FBWSxRQUEwQztBQUMxRSxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osTUFBSSx1QkFBdUIsQ0FBQyxXQUFXLElBQUksR0FBRztBQUM1QztBQUFBLEVBQ0Y7QUFDQSxRQUFNLE9BQU8sTUFBTSxTQUFZLElBQUk7QUFDbkMsUUFBTSxhQUFhLElBQUk7QUFDdkIsUUFBTSxVQUFVLE1BQU0sSUFBSTtBQUM1QjtBQVFPLFNBQVMsYUFBZ0IsUUFBcUM7QUFDbkUsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLE1BQUksdUJBQXVCLENBQUMsV0FBVyxJQUFJLEdBQUc7QUFDNUM7QUFBQSxFQUNGO0FBQ0EsUUFBTSxPQUFPLGFBQWdCLElBQUk7QUFDakMsZUFBYSxJQUFJO0FBQ2pCLGdCQUFjLE1BQU0sSUFBSTtBQUMxQjtBQVNBLGVBQXNCLFNBQVksTUFBMEI7QUFDMUQsU0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLE1BQU0sT0FBTyxDQUFDO0FBQ2pEO0FBVU8sU0FBUyxhQUFnQixNQUFpQjtBQUMvQyxTQUFPLEtBQUssTUFBTSxhQUFhLE1BQU0sT0FBTyxDQUFDO0FBQy9DO0FBU0EsZUFBc0IsVUFBVSxNQUFjLE1BQThCO0FBQzFFLFFBQU0sVUFBVSxNQUFNLEdBQUcsT0FBTyxJQUFJLENBQUM7QUFBQSxDQUFJO0FBQzNDO0FBUU8sU0FBUyxjQUFjLE1BQWMsTUFBcUI7QUFDL0QsZ0JBQWMsTUFBTSxHQUFHLE9BQU8sSUFBSSxDQUFDO0FBQUEsQ0FBSTtBQUN6QzsiLAogICJuYW1lcyI6IFtdCn0K