@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,169 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ function keepName($unknown) {
43
+ return $unknown;
44
+ }
45
+
46
+ (function initCjs() {
47
+ const globalThisRecord = globalThis;
48
+ ensureDisposeSymbols();
49
+ globalThisRecord['__name'] ??= keepName;
50
+ globalThisRecord['__extractDefault'] ??= extractDefault;
51
+
52
+ ensureBrowserProcess();
53
+
54
+ // eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
55
+ function extractDefault(module) {
56
+ return module && module.__esModule && 'default' in module ? module.default : module;
57
+ }
58
+ })();
59
+ })();
60
+
61
+ "use strict";
62
+ var __create = Object.create;
63
+ var __defProp = Object.defineProperty;
64
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
65
+ var __getOwnPropNames = Object.getOwnPropertyNames;
66
+ var __getProtoOf = Object.getPrototypeOf;
67
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
68
+ var __export = (target, all) => {
69
+ for (var name in all)
70
+ __defProp(target, name, { get: all[name], enumerable: true });
71
+ };
72
+ var __copyProps = (to, from, except, desc) => {
73
+ if (from && typeof from === "object" || typeof from === "function") {
74
+ for (let key of __getOwnPropNames(from))
75
+ if (!__hasOwnProp.call(to, key) && key !== except)
76
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
77
+ }
78
+ return to;
79
+ };
80
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
81
+ // If the importer is in node compatibility mode or this is not an ESM
82
+ // file that has been converted to a CommonJS file using a Babel-
83
+ // compatible transform (i.e. "__esModule" has not been set), then set
84
+ // "default" to the CommonJS "module.exports" for node compatibility.
85
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
86
+ mod
87
+ ));
88
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
89
+ var markdownlint_cli2_config_exports = {};
90
+ __export(markdownlint_cli2_config_exports, {
91
+ obsidianDevUtilsConfig: () => obsidianDevUtilsConfig
92
+ });
93
+ module.exports = __toCommonJS(markdownlint_cli2_config_exports);
94
+ var import_markdownlint_rule_relative_links = __toESM(__extractDefault(require('markdownlint-rule-relative-links')), 1);
95
+ var import_lint_ignores = require('./lint-ignores.cjs');
96
+ var import_markdownlint_ignores = require('./markdownlint-ignores.cjs');
97
+ var import_no_soft_break_in_paragraph = require('./markdownlint-rules/no-soft-break-in-paragraph.cjs');
98
+ const obsidianDevUtilsConfig = {
99
+ config: {
100
+ "MD013": false,
101
+ "MD024": {
102
+ // eslint-disable-next-line camelcase -- That's how it is defined in the schema.
103
+ siblings_only: true
104
+ },
105
+ "MD025": {
106
+ // `MD025` counts a front matter `title` property as the document's top-level heading, so a note carrying
107
+ // both that property and an `# H1` is reported as having two. In an Obsidian vault that premise is false:
108
+ // Obsidian titles a note by its FILENAME and does nothing with a `title` property, so a vault that uses
109
+ // one as a name-bearing property would trip this rule on every note that is not wrong. Emptying
110
+ // `front_matter_title` disables only the front matter half of the rule — two `# H1`s in one document are
111
+ // still reported, which is the half worth keeping.
112
+ // eslint-disable-next-line camelcase -- That's how it is defined in the schema.
113
+ front_matter_title: ""
114
+ },
115
+ "MD052": {
116
+ // eslint-disable-next-line camelcase -- That's how it is defined in the schema.
117
+ ignored_labels: [
118
+ // GitHub's five alert types, all of which Obsidian renders as callouts. markdownlint reads the
119
+ // bracketed marker opening one as a shortcut reference link, so each has to be ignored explicitly.
120
+ "!caution",
121
+ "!important",
122
+ "!note",
123
+ "!tip",
124
+ "!warning",
125
+ // Preserve markdownlint's default ignored label so GFM task-list items (`- [x]`) are not flagged as undefined shortcut references.
126
+ "x"
127
+ ],
128
+ // eslint-disable-next-line camelcase -- That's how it is defined in the schema.
129
+ shortcut_syntax: true
130
+ },
131
+ // Registered but OFF by default. markdownlint enables an unlisted custom rule by default, so landing it
132
+ // silent has to be said out loud. Every repo in this config's reach was hard-wrapped somewhere when this
133
+ // landed, and the count is not knowable from a wrapped-line heuristic — one measured against a
134
+ // heuristic's own top ten over-counted six files and under-counted four, worst cases 158 against 776 and
135
+ // 74 against 34. So a repo measures itself with the rule, unwraps, and turns it on by overriding this one
136
+ // key in its own `scripts/markdownlint-cli2-config.ts` — the same seam this repo uses for `ignores`.
137
+ // This repo's own override does exactly that, and is the worked example.
138
+ "no-soft-break-in-paragraph": false,
139
+ "relative-links": true
140
+ },
141
+ customRules: [
142
+ import_no_soft_break_in_paragraph.noSoftBreakInParagraphRule,
143
+ import_markdownlint_rule_relative_links.default
144
+ ],
145
+ // Every `.gitignore` in the tree, and up to the repository root — git's own default behavior. A path git
146
+ // ignores is a path we do not lint, so `node_modules` (including the nested ones under test fixtures),
147
+ // `dist`, and every generated folder are skipped without anyone maintaining a list that can drift.
148
+ gitignore: true,
149
+ globs: [
150
+ "**/*.md"
151
+ ],
152
+ // The residual, explicit list — everything `.gitignore` cannot express for us. Git never "ignores"
153
+ // `.git` itself (it is simply outside the working tree), and a repository can deliberately TRACK a
154
+ // vendored `node_modules` tree, whose third-party markdown is not ours to lint. See
155
+ // `markdownlint-ignores.ts`.
156
+ // Claude Code's worktree folder is the third case, and a different one again: `gitignore: true` reads
157
+ // only `.gitignore` files, while git excludes that folder through `.git/info/exclude`.
158
+ // See `lint-ignores.ts`.
159
+ ignores: [
160
+ ".git/**",
161
+ import_lint_ignores.CLAUDE_WORKTREES_IGNORE_GLOB,
162
+ import_markdownlint_ignores.NODE_MODULES_IGNORE_GLOB
163
+ ]
164
+ };
165
+ // Annotate the CommonJS export names for ESM import in node:
166
+ 0 && (module.exports = {
167
+ obsidianDevUtilsConfig
168
+ });
169
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvbWFya2Rvd25saW50LWNsaTItY29uZmlnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogRGVmYXVsdCBtYXJrZG93bmxpbnQtY2xpMiBjb25maWd1cmF0aW9uIGZvciB0aGUgT2JzaWRpYW4gRGV2IFV0aWxzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWNsYXJhdGl2ZSBtYXJrZG93bmxpbnQtY2xpMiBydWxlL3BsdWdpbiBjb25maWd1cmF0aW9uOyBjb3JyZWN0bmVzcyBpcyB2ZXJpZmllZCBieSBydW5uaW5nIG1hcmtkb3dubGludCwgbm90IHVuaXQgdGVzdHMuICovXG5cbmltcG9ydCByZWxhdGl2ZUxpbmtzUnVsZSBmcm9tICdtYXJrZG93bmxpbnQtcnVsZS1yZWxhdGl2ZS1saW5rcyc7XG5cbmltcG9ydCB0eXBlIHsgTWFya2Rvd25saW50Q2xpMkNvbmZpZ3VyYXRpb25TY2hlbWEgYXMgTWFya2Rvd25saW50Q2xpMkNvbmZpZ1NjaGVtYSB9IGZyb20gJy4vbWFya2Rvd25saW50LXR5cGVzL0B0eXBlcy9tYXJrZG93bmxpbnQtY2xpMi1jb25maWctc2NoZW1hLmQudHMnO1xuXG5pbXBvcnQgeyBDTEFVREVfV09SS1RSRUVTX0lHTk9SRV9HTE9CIH0gZnJvbSAnLi9saW50LWlnbm9yZXMudHMnO1xuaW1wb3J0IHsgTk9ERV9NT0RVTEVTX0lHTk9SRV9HTE9CIH0gZnJvbSAnLi9tYXJrZG93bmxpbnQtaWdub3Jlcy50cyc7XG5pbXBvcnQgeyBub1NvZnRCcmVha0luUGFyYWdyYXBoUnVsZSB9IGZyb20gJy4vbWFya2Rvd25saW50LXJ1bGVzL25vLXNvZnQtYnJlYWstaW4tcGFyYWdyYXBoLnRzJztcblxuLyoqXG4gKiBEZWZhdWx0IG1hcmtkb3dubGludC1jbGkyIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBPYnNpZGlhbiBEZXYgVXRpbHMuXG4gKi9cbmV4cG9ydCBjb25zdCBvYnNpZGlhbkRldlV0aWxzQ29uZmlnOiBNYXJrZG93bmxpbnRDbGkyQ29uZmlnU2NoZW1hID0ge1xuICBjb25maWc6IHtcbiAgICAnTUQwMTMnOiBmYWxzZSxcbiAgICAnTUQwMjQnOiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlIC0tIFRoYXQncyBob3cgaXQgaXMgZGVmaW5lZCBpbiB0aGUgc2NoZW1hLlxuICAgICAgc2libGluZ3Nfb25seTogdHJ1ZVxuICAgIH0sXG4gICAgJ01EMDI1Jzoge1xuICAgICAgLy8gYE1EMDI1YCBjb3VudHMgYSBmcm9udCBtYXR0ZXIgYHRpdGxlYCBwcm9wZXJ0eSBhcyB0aGUgZG9jdW1lbnQncyB0b3AtbGV2ZWwgaGVhZGluZywgc28gYSBub3RlIGNhcnJ5aW5nXG4gICAgICAvLyBib3RoIHRoYXQgcHJvcGVydHkgYW5kIGFuIGAjIEgxYCBpcyByZXBvcnRlZCBhcyBoYXZpbmcgdHdvLiBJbiBhbiBPYnNpZGlhbiB2YXVsdCB0aGF0IHByZW1pc2UgaXMgZmFsc2U6XG4gICAgICAvLyBPYnNpZGlhbiB0aXRsZXMgYSBub3RlIGJ5IGl0cyBGSUxFTkFNRSBhbmQgZG9lcyBub3RoaW5nIHdpdGggYSBgdGl0bGVgIHByb3BlcnR5LCBzbyBhIHZhdWx0IHRoYXQgdXNlc1xuICAgICAgLy8gb25lIGFzIGEgbmFtZS1iZWFyaW5nIHByb3BlcnR5IHdvdWxkIHRyaXAgdGhpcyBydWxlIG9uIGV2ZXJ5IG5vdGUgdGhhdCBpcyBub3Qgd3JvbmcuIEVtcHR5aW5nXG4gICAgICAvLyBgZnJvbnRfbWF0dGVyX3RpdGxlYCBkaXNhYmxlcyBvbmx5IHRoZSBmcm9udCBtYXR0ZXIgaGFsZiBvZiB0aGUgcnVsZSBcdTIwMTQgdHdvIGAjIEgxYHMgaW4gb25lIGRvY3VtZW50IGFyZVxuICAgICAgLy8gc3RpbGwgcmVwb3J0ZWQsIHdoaWNoIGlzIHRoZSBoYWxmIHdvcnRoIGtlZXBpbmcuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2FtZWxjYXNlIC0tIFRoYXQncyBob3cgaXQgaXMgZGVmaW5lZCBpbiB0aGUgc2NoZW1hLlxuICAgICAgZnJvbnRfbWF0dGVyX3RpdGxlOiAnJ1xuICAgIH0sXG4gICAgJ01EMDUyJzoge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZSAtLSBUaGF0J3MgaG93IGl0IGlzIGRlZmluZWQgaW4gdGhlIHNjaGVtYS5cbiAgICAgIGlnbm9yZWRfbGFiZWxzOiBbXG4gICAgICAgIC8vIEdpdEh1YidzIGZpdmUgYWxlcnQgdHlwZXMsIGFsbCBvZiB3aGljaCBPYnNpZGlhbiByZW5kZXJzIGFzIGNhbGxvdXRzLiBtYXJrZG93bmxpbnQgcmVhZHMgdGhlXG4gICAgICAgIC8vIGJyYWNrZXRlZCBtYXJrZXIgb3BlbmluZyBvbmUgYXMgYSBzaG9ydGN1dCByZWZlcmVuY2UgbGluaywgc28gZWFjaCBoYXMgdG8gYmUgaWdub3JlZCBleHBsaWNpdGx5LlxuICAgICAgICAnIWNhdXRpb24nLFxuICAgICAgICAnIWltcG9ydGFudCcsXG4gICAgICAgICchbm90ZScsXG4gICAgICAgICchdGlwJyxcbiAgICAgICAgJyF3YXJuaW5nJyxcbiAgICAgICAgLy8gUHJlc2VydmUgbWFya2Rvd25saW50J3MgZGVmYXVsdCBpZ25vcmVkIGxhYmVsIHNvIEdGTSB0YXNrLWxpc3QgaXRlbXMgKGAtIFt4XWApIGFyZSBub3QgZmxhZ2dlZCBhcyB1bmRlZmluZWQgc2hvcnRjdXQgcmVmZXJlbmNlcy5cbiAgICAgICAgJ3gnXG4gICAgICBdLFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZSAtLSBUaGF0J3MgaG93IGl0IGlzIGRlZmluZWQgaW4gdGhlIHNjaGVtYS5cbiAgICAgIHNob3J0Y3V0X3N5bnRheDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gUmVnaXN0ZXJlZCBidXQgT0ZGIGJ5IGRlZmF1bHQuIG1hcmtkb3dubGludCBlbmFibGVzIGFuIHVubGlzdGVkIGN1c3RvbSBydWxlIGJ5IGRlZmF1bHQsIHNvIGxhbmRpbmcgaXRcbiAgICAvLyBzaWxlbnQgaGFzIHRvIGJlIHNhaWQgb3V0IGxvdWQuIEV2ZXJ5IHJlcG8gaW4gdGhpcyBjb25maWcncyByZWFjaCB3YXMgaGFyZC13cmFwcGVkIHNvbWV3aGVyZSB3aGVuIHRoaXNcbiAgICAvLyBsYW5kZWQsIGFuZCB0aGUgY291bnQgaXMgbm90IGtub3dhYmxlIGZyb20gYSB3cmFwcGVkLWxpbmUgaGV1cmlzdGljIFx1MjAxNCBvbmUgbWVhc3VyZWQgYWdhaW5zdCBhXG4gICAgLy8gaGV1cmlzdGljJ3Mgb3duIHRvcCB0ZW4gb3Zlci1jb3VudGVkIHNpeCBmaWxlcyBhbmQgdW5kZXItY291bnRlZCBmb3VyLCB3b3JzdCBjYXNlcyAxNTggYWdhaW5zdCA3NzYgYW5kXG4gICAgLy8gNzQgYWdhaW5zdCAzNC4gU28gYSByZXBvIG1lYXN1cmVzIGl0c2VsZiB3aXRoIHRoZSBydWxlLCB1bndyYXBzLCBhbmQgdHVybnMgaXQgb24gYnkgb3ZlcnJpZGluZyB0aGlzIG9uZVxuICAgIC8vIGtleSBpbiBpdHMgb3duIGBzY3JpcHRzL21hcmtkb3dubGludC1jbGkyLWNvbmZpZy50c2AgXHUyMDE0IHRoZSBzYW1lIHNlYW0gdGhpcyByZXBvIHVzZXMgZm9yIGBpZ25vcmVzYC5cbiAgICAvLyBUaGlzIHJlcG8ncyBvd24gb3ZlcnJpZGUgZG9lcyBleGFjdGx5IHRoYXQsIGFuZCBpcyB0aGUgd29ya2VkIGV4YW1wbGUuXG4gICAgJ25vLXNvZnQtYnJlYWstaW4tcGFyYWdyYXBoJzogZmFsc2UsXG4gICAgJ3JlbGF0aXZlLWxpbmtzJzogdHJ1ZVxuICB9LFxuICBjdXN0b21SdWxlczogW1xuICAgIG5vU29mdEJyZWFrSW5QYXJhZ3JhcGhSdWxlLFxuICAgIHJlbGF0aXZlTGlua3NSdWxlXG4gIF0sXG4gIC8vIEV2ZXJ5IGAuZ2l0aWdub3JlYCBpbiB0aGUgdHJlZSwgYW5kIHVwIHRvIHRoZSByZXBvc2l0b3J5IHJvb3QgXHUyMDE0IGdpdCdzIG93biBkZWZhdWx0IGJlaGF2aW9yLiBBIHBhdGggZ2l0XG4gIC8vIGlnbm9yZXMgaXMgYSBwYXRoIHdlIGRvIG5vdCBsaW50LCBzbyBgbm9kZV9tb2R1bGVzYCAoaW5jbHVkaW5nIHRoZSBuZXN0ZWQgb25lcyB1bmRlciB0ZXN0IGZpeHR1cmVzKSxcbiAgLy8gYGRpc3RgLCBhbmQgZXZlcnkgZ2VuZXJhdGVkIGZvbGRlciBhcmUgc2tpcHBlZCB3aXRob3V0IGFueW9uZSBtYWludGFpbmluZyBhIGxpc3QgdGhhdCBjYW4gZHJpZnQuXG4gIGdpdGlnbm9yZTogdHJ1ZSxcbiAgZ2xvYnM6IFtcbiAgICAnKiovKi5tZCdcbiAgXSxcbiAgLy8gVGhlIHJlc2lkdWFsLCBleHBsaWNpdCBsaXN0IFx1MjAxNCBldmVyeXRoaW5nIGAuZ2l0aWdub3JlYCBjYW5ub3QgZXhwcmVzcyBmb3IgdXMuIEdpdCBuZXZlciBcImlnbm9yZXNcIlxuICAvLyBgLmdpdGAgaXRzZWxmIChpdCBpcyBzaW1wbHkgb3V0c2lkZSB0aGUgd29ya2luZyB0cmVlKSwgYW5kIGEgcmVwb3NpdG9yeSBjYW4gZGVsaWJlcmF0ZWx5IFRSQUNLIGFcbiAgLy8gdmVuZG9yZWQgYG5vZGVfbW9kdWxlc2AgdHJlZSwgd2hvc2UgdGhpcmQtcGFydHkgbWFya2Rvd24gaXMgbm90IG91cnMgdG8gbGludC4gU2VlXG4gIC8vIGBtYXJrZG93bmxpbnQtaWdub3Jlcy50c2AuXG4gIC8vIENsYXVkZSBDb2RlJ3Mgd29ya3RyZWUgZm9sZGVyIGlzIHRoZSB0aGlyZCBjYXNlLCBhbmQgYSBkaWZmZXJlbnQgb25lIGFnYWluOiBgZ2l0aWdub3JlOiB0cnVlYCByZWFkc1xuICAvLyBvbmx5IGAuZ2l0aWdub3JlYCBmaWxlcywgd2hpbGUgZ2l0IGV4Y2x1ZGVzIHRoYXQgZm9sZGVyIHRocm91Z2ggYC5naXQvaW5mby9leGNsdWRlYC5cbiAgLy8gU2VlIGBsaW50LWlnbm9yZXMudHNgLlxuICBpZ25vcmVzOiBbXG4gICAgJy5naXQvKionLFxuICAgIENMQVVERV9XT1JLVFJFRVNfSUdOT1JFX0dMT0IsXG4gICAgTk9ERV9NT0RVTEVTX0lHTk9SRV9HTE9CXG4gIF1cbn07XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLDhDQUE4QjtBQUk5QiwwQkFBNkM7QUFDN0Msa0NBQXlDO0FBQ3pDLHdDQUEyQztBQUtwQyxNQUFNLHlCQUF1RDtBQUFBLEVBQ2xFLFFBQVE7QUFBQSxJQUNOLFNBQVM7QUFBQSxJQUNULFNBQVM7QUFBQTtBQUFBLE1BRVAsZUFBZTtBQUFBLElBQ2pCO0FBQUEsSUFDQSxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQVFQLG9CQUFvQjtBQUFBLElBQ3RCO0FBQUEsSUFDQSxTQUFTO0FBQUE7QUFBQSxNQUVQLGdCQUFnQjtBQUFBO0FBQUE7QUFBQSxRQUdkO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBO0FBQUEsUUFFQTtBQUFBLE1BQ0Y7QUFBQTtBQUFBLE1BRUEsaUJBQWlCO0FBQUEsSUFDbkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBUUEsOEJBQThCO0FBQUEsSUFDOUIsa0JBQWtCO0FBQUEsRUFDcEI7QUFBQSxFQUNBLGFBQWE7QUFBQSxJQUNYO0FBQUEsSUFDQSx3Q0FBQUE7QUFBQSxFQUNGO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJQSxXQUFXO0FBQUEsRUFDWCxPQUFPO0FBQUEsSUFDTDtBQUFBLEVBQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUUEsU0FBUztBQUFBLElBQ1A7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFsicmVsYXRpdmVMaW5rc1J1bGUiXQp9Cg==
@@ -0,0 +1,11 @@
1
+ /// <reference path="../index.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Default markdownlint-cli2 configuration for the Obsidian Dev Utils.
6
+ */
7
+ import type { MarkdownlintCli2ConfigurationSchema as MarkdownlintCli2ConfigSchema } from './markdownlint-types/@types/markdownlint-cli2-config-schema.d.cjs';
8
+ /**
9
+ * Default markdownlint-cli2 configuration for the Obsidian Dev Utils.
10
+ */
11
+ export declare const obsidianDevUtilsConfig: MarkdownlintCli2ConfigSchema;
@@ -0,0 +1,120 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ function keepName($unknown) {
43
+ return $unknown;
44
+ }
45
+
46
+ (function initCjs() {
47
+ const globalThisRecord = globalThis;
48
+ ensureDisposeSymbols();
49
+ globalThisRecord['__name'] ??= keepName;
50
+ globalThisRecord['__extractDefault'] ??= extractDefault;
51
+
52
+ ensureBrowserProcess();
53
+
54
+ // eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
55
+ function extractDefault(module) {
56
+ return module && module.__esModule && 'default' in module ? module.default : module;
57
+ }
58
+ })();
59
+ })();
60
+
61
+ "use strict";
62
+ var __defProp = Object.defineProperty;
63
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
64
+ var __getOwnPropNames = Object.getOwnPropertyNames;
65
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
66
+ var __export = (target, all) => {
67
+ for (var name in all)
68
+ __defProp(target, name, { get: all[name], enumerable: true });
69
+ };
70
+ var __copyProps = (to, from, except, desc) => {
71
+ if (from && typeof from === "object" || typeof from === "function") {
72
+ for (let key of __getOwnPropNames(from))
73
+ if (!__hasOwnProp.call(to, key) && key !== except)
74
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
75
+ }
76
+ return to;
77
+ };
78
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
79
+ var markdownlint_content_exports = {};
80
+ __export(markdownlint_content_exports, {
81
+ lintMarkdownContent: () => lintMarkdownContent
82
+ });
83
+ module.exports = __toCommonJS(markdownlint_content_exports);
84
+ var import_debug = require('@mnaoumov/typescript-lib/debug');
85
+ var import_path = require('@mnaoumov/typescript-lib/path');
86
+ var import_markdownlint_cli2 = require('markdownlint-cli2');
87
+ var import_root = require('../root.cjs');
88
+ var import_markdownlint_cli2_config = require('./markdownlint-cli2-config.cjs');
89
+ const SUCCESS_EXIT_CODE = 0;
90
+ async function lintMarkdownContent(params) {
91
+ const { content, cwd, filePath } = params;
92
+ const findings = [];
93
+ const contentDebugger = (0, import_debug.getLibDebugger)("markdownlint:lintMarkdownContent");
94
+ const exitCode = await (0, import_markdownlint_cli2.main)({
95
+ directory: (0, import_root.getRootFolder)(cwd) ?? cwd ?? process.cwd(),
96
+ logError: (message) => {
97
+ findings.push(message);
98
+ },
99
+ logMessage: (message) => {
100
+ contentDebugger(message);
101
+ },
102
+ // The content is the only input. Without this the configuration's own `globs` would be expanded too, and
103
+ // a check on one document would lint the whole repository — slowly, and reporting findings its caller has
104
+ // no business failing on.
105
+ noGlobs: true,
106
+ nonFileContents: { [(0, import_path.toPosixPath)(filePath)]: content },
107
+ // The BASE the repository's own configuration is merged over, which matters for a repository that has none
108
+ // yet: `lint()` copies the template configuration in — which is built on this one — before it lints, so a
109
+ // run without it would apply markdownlint's stock defaults instead, and `MD013/line-length` would fail at
110
+ // 80 columns on an ordinary release note that `lint:md` is perfectly happy with. Since a repository's own
111
+ // configuration overrides this key by key, the worst a mismatch can do is miss a finding, never invent one.
112
+ optionsDefault: import_markdownlint_cli2_config.obsidianDevUtilsConfig
113
+ });
114
+ return exitCode === SUCCESS_EXIT_CODE ? [] : findings;
115
+ }
116
+ // Annotate the CommonJS export names for ESM import in node:
117
+ 0 && (module.exports = {
118
+ lintMarkdownContent
119
+ });
120
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvbWFya2Rvd25saW50LWNvbnRlbnQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBMaW50cyBtYXJrZG93biB0aGF0IGlzIHN0aWxsIGluIG1lbW9yeSwgd2l0aCB0aGUgcmVwb3NpdG9yeSdzIG93biBgbGludDptZGAgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBgbGludDptZGAgY2FuIG9ubHkgYW5zd2VyIGZvciB3aGF0IGlzIGFscmVhZHkgb24gZGlzaywgd2hpY2ggbGVhdmVzIGV2ZXJ5IGRvY3VtZW50IGNvbXBvc2VkIGR1cmluZyBhIHJ1blxuICogdW5jaGVja2VkIHVudGlsIHRoZSBuZXh0IGdhdGUgXHUyMDE0IHRoZSByZWxlYXNlJ3MgY2hhbmdlbG9nIGJlaW5nIHRoZSBvbmUgdGhhdCBjb3N0cyBhIHJlZCBgbWFpbmAuIFRoaXMgbW9kdWxlXG4gKiBpcyB0aGUgc2FtZSBjaGVjayBvbmUgc3RlcCBlYXJsaWVyOiB0aGUgdGV4dCBpcyBsaW50ZWQgYXMgdGhlIHBhdGggaXQgaXMgZGVzdGluZWQgZm9yLCBhbmQgYSBjYWxsZXIgdGhhdFxuICogZG9lcyBub3QgbGlrZSB0aGUgYW5zd2VyIGNhbiBzdG9wIGJlZm9yZSB3cml0aW5nIGFueXRoaW5nLlxuICpcbiAqIEl0IGdvZXMgdGhyb3VnaCBgbWFya2Rvd25saW50LWNsaTJgIHJhdGhlciB0aGFuIGBtYXJrZG93bmxpbnRgJ3Mgb3duIHN0cmluZyBBUEksIGFuZCB0aGF0IGlzIHRoZSB3aG9sZVxuICogcG9pbnQgb2YgdGhlIG1vZHVsZS4gVGhlIHF1ZXN0aW9uIGEgY2FsbGVyIGlzIGFza2luZyBpcyAqXCJ3b3VsZCBgbGludDptZGAgaGF2ZSBmYWlsZWQgb24gdGhpcyB0ZXh0P1wiKiwgYW5kXG4gKiBvbmx5IHRoZSBgbWFya2Rvd25saW50LWNsaTJgIGxheWVyIGtub3dzOiBpdCBpcyB3aGF0IGZpbmRzIGAubWFya2Rvd25saW50LWNsaTIubWpzYCAodGhyb3VnaCBgaml0aWAsIGZvclxuICogdGhlIFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiB0aGlzIHdvcmtzcGFjZSB3cml0ZXMpLCBtZXJnZXMgdGhlIHJlcG9zaXRvcnkncyBvd24gb3ZlcnJpZGVzIG92ZXIgdGhlIHNoYXJlZFxuICogZGVmYXVsdHMsIGFuZCBsb2FkcyB0aGUgY3VzdG9tIHJ1bGVzLiBSZWFjaGluZyBmb3IgdGhlIHN0cmluZyBBUEkgbWVhbnMgaGFuZC1yb2xsaW5nIHRoYXQgcmVzb2x1dGlvbiBvdmVyXG4gKiBmaXZlIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3JtYXRzLCB3aGljaCBpcyBhIGNvcHkgb2YgYG1hcmtkb3dubGludC1jbGkyYCB0aGF0IGNhbiBvbmx5IGV2ZXIgZHJpZnQgZnJvbSBpdC5cbiAqL1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9kZWJ1Zyc7XG5pbXBvcnQgeyB0b1Bvc2l4UGF0aCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9wYXRoJztcbmltcG9ydCB7IG1haW4gYXMgbWFya2Rvd25saW50Q2xpMiB9IGZyb20gJ21hcmtkb3dubGludC1jbGkyJztcblxuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgb2JzaWRpYW5EZXZVdGlsc0NvbmZpZyB9IGZyb20gJy4vbWFya2Rvd25saW50LWNsaTItY29uZmlnLnRzJztcblxuLyoqXG4gKiBUaGUgZXhpdCBjb2RlIGBtYXJrZG93bmxpbnQtY2xpMmAgcmV0dXJucyB3aGVuIGl0IHJlcG9ydGVkIG5vdGhpbmcgdGhhdCBjb3VudHMgYXMgYSBmYWlsdXJlLlxuICovXG5jb25zdCBTVUNDRVNTX0VYSVRfQ09ERSA9IDA7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGxpbnRNYXJrZG93bkNvbnRlbnR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRNYXJrZG93bkNvbnRlbnRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIG1hcmtkb3duIHRvIGxpbnQuXG4gICAqL1xuICByZWFkb25seSBjb250ZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZm9sZGVyIGluc2lkZSB0aGUgcHJvamVjdCB3aG9zZSBtYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBhcHBsaWVzLiBEZWZhdWx0cyB0byB0aGUgY3VycmVudCB3b3JraW5nIGZvbGRlci5cbiAgICogSW4gYSB3b3Jrc3BhY2UsIGEgcGFja2FnZSdzIG93biBmb2xkZXIgaGFzIG5vIGNvbmZpZ3VyYXRpb24gb2YgaXRzIG93biwgc28gYSBjYWxsZXIgbGludGluZyBmb3IgdGhlXG4gICAqIHdvcmtzcGFjZSByb290IG5hbWVzIGl0IGhlcmUuXG4gICAqL1xuICByZWFkb25seSBjd2Q/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIHRoZSBjb250ZW50IGlzIGxpbnRlZCBBUyBcdTIwMTQgbm9ybWFsbHkgdGhlIHBhdGggaXQgaXMgYWJvdXQgdG8gYmUgd3JpdHRlbiB0by4gSXQgZGVjaWRlcyBob3cgdGhlXG4gICAqIHBhdGgtcmVsYXRpdmUgcnVsZXMgcmVzb2x2ZSAoYHJlbGF0aXZlLWxpbmtzYCB3YWxrcyBmcm9tIHRoZSBmaWxlJ3Mgb3duIGZvbGRlciksIGFuZCBpdCBpcyB3aGF0IGV2ZXJ5XG4gICAqIHJlcG9ydGVkIGZpbmRpbmcgaXMgbmFtZWQgYWZ0ZXIuXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIExpbnRzIG1hcmtkb3duIGNvbnRlbnQgdGhhdCBpcyBub3Qgb24gZGlzaywgd2l0aCB0aGUgY29uZmlndXJhdGlvbiBgbGludDptZGAgd291bGQgaGF2ZSB1c2VkIGZvciBpdC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBMaW50TWFya2Rvd25Db250ZW50UGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGZpbmRpbmdzLCBlYWNoIG9uZSB0aGUgbGluZSB0aGUgYGxpbnQ6bWRgIG91dHB1dCB3b3VsZCBoYXZlXG4gKiBjYXJyaWVkIFx1MjAxNCBgPHBhdGg+OjxsaW5lPls6PGNvbHVtbj5dIGVycm9yIDxydWxlPiA8ZGVzY3JpcHRpb24+YCBcdTIwMTQgb3IgYW4gZW1wdHkgYXJyYXkgd2hlbiB0aGVyZSBhcmUgbm9uZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnRNYXJrZG93bkNvbnRlbnQocGFyYW1zOiBMaW50TWFya2Rvd25Db250ZW50UGFyYW1zKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCB7IGNvbnRlbnQsIGN3ZCwgZmlsZVBhdGggfSA9IHBhcmFtcztcbiAgY29uc3QgZmluZGluZ3M6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGNvbnRlbnREZWJ1Z2dlciA9IGdldExpYkRlYnVnZ2VyKCdtYXJrZG93bmxpbnQ6bGludE1hcmtkb3duQ29udGVudCcpO1xuXG4gIGNvbnN0IGV4aXRDb2RlID0gYXdhaXQgbWFya2Rvd25saW50Q2xpMih7XG4gICAgZGlyZWN0b3J5OiBnZXRSb290Rm9sZGVyKGN3ZCkgPz8gY3dkID8/IHByb2Nlc3MuY3dkKCksXG4gICAgbG9nRXJyb3I6IChtZXNzYWdlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgIGZpbmRpbmdzLnB1c2gobWVzc2FnZSk7XG4gICAgfSxcbiAgICBsb2dNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICBjb250ZW50RGVidWdnZXIobWVzc2FnZSk7XG4gICAgfSxcbiAgICAvLyBUaGUgY29udGVudCBpcyB0aGUgb25seSBpbnB1dC4gV2l0aG91dCB0aGlzIHRoZSBjb25maWd1cmF0aW9uJ3Mgb3duIGBnbG9ic2Agd291bGQgYmUgZXhwYW5kZWQgdG9vLCBhbmRcbiAgICAvLyBhIGNoZWNrIG9uIG9uZSBkb2N1bWVudCB3b3VsZCBsaW50IHRoZSB3aG9sZSByZXBvc2l0b3J5IFx1MjAxNCBzbG93bHksIGFuZCByZXBvcnRpbmcgZmluZGluZ3MgaXRzIGNhbGxlciBoYXNcbiAgICAvLyBubyBidXNpbmVzcyBmYWlsaW5nIG9uLlxuICAgIG5vR2xvYnM6IHRydWUsXG4gICAgbm9uRmlsZUNvbnRlbnRzOiB7IFt0b1Bvc2l4UGF0aChmaWxlUGF0aCldOiBjb250ZW50IH0sXG4gICAgLy8gVGhlIEJBU0UgdGhlIHJlcG9zaXRvcnkncyBvd24gY29uZmlndXJhdGlvbiBpcyBtZXJnZWQgb3Zlciwgd2hpY2ggbWF0dGVycyBmb3IgYSByZXBvc2l0b3J5IHRoYXQgaGFzIG5vbmVcbiAgICAvLyB5ZXQ6IGBsaW50KClgIGNvcGllcyB0aGUgdGVtcGxhdGUgY29uZmlndXJhdGlvbiBpbiBcdTIwMTQgd2hpY2ggaXMgYnVpbHQgb24gdGhpcyBvbmUgXHUyMDE0IGJlZm9yZSBpdCBsaW50cywgc28gYVxuICAgIC8vIHJ1biB3aXRob3V0IGl0IHdvdWxkIGFwcGx5IG1hcmtkb3dubGludCdzIHN0b2NrIGRlZmF1bHRzIGluc3RlYWQsIGFuZCBgTUQwMTMvbGluZS1sZW5ndGhgIHdvdWxkIGZhaWwgYXRcbiAgICAvLyA4MCBjb2x1bW5zIG9uIGFuIG9yZGluYXJ5IHJlbGVhc2Ugbm90ZSB0aGF0IGBsaW50Om1kYCBpcyBwZXJmZWN0bHkgaGFwcHkgd2l0aC4gU2luY2UgYSByZXBvc2l0b3J5J3Mgb3duXG4gICAgLy8gY29uZmlndXJhdGlvbiBvdmVycmlkZXMgdGhpcyBrZXkgYnkga2V5LCB0aGUgd29yc3QgYSBtaXNtYXRjaCBjYW4gZG8gaXMgbWlzcyBhIGZpbmRpbmcsIG5ldmVyIGludmVudCBvbmUuXG4gICAgb3B0aW9uc0RlZmF1bHQ6IG9ic2lkaWFuRGV2VXRpbHNDb25maWdcbiAgfSk7XG5cbiAgLy8gV2hldGhlciB0aGlzIGlzIGEgRkFJTFVSRSBpcyB0aGUgdG9vbCdzIG93biBhbnN3ZXIsIG5vdCBhIGNvdW50IG9mIHRoZSBsaW5lcyBpdCBwcmludGVkOiBhIHJ1bGUgY29uZmlndXJlZFxuICAvLyB3aXRoIGBzZXZlcml0eTogd2FybmluZ2AgaXMgcHJpbnRlZCB0aHJvdWdoIGBsb2dFcnJvcmAgbGlrZSBhbnkgb3RoZXIgYW5kIHN0aWxsIGV4aXRzIGAwYCwgc28gcmV0dXJuaW5nIHRoZVxuICAvLyBsaW5lcyBhbG9uZSB3b3VsZCBmYWlsIGEgcmVsZWFzZSBvbiBzb21ldGhpbmcgYGxpbnQ6bWRgIGl0c2VsZiBwYXNzZXMuXG4gIHJldHVybiBleGl0Q29kZSA9PT0gU1VDQ0VTU19FWElUX0NPREUgPyBbXSA6IGZpbmRpbmdzO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtCQSxtQkFBK0I7QUFDL0Isa0JBQTRCO0FBQzVCLCtCQUF5QztBQUV6QyxrQkFBOEI7QUFDOUIsc0NBQXVDO0FBS3ZDLE1BQU0sb0JBQW9CO0FBaUMxQixlQUFzQixvQkFBb0IsUUFBc0Q7QUFDOUYsUUFBTSxFQUFFLFNBQVMsS0FBSyxTQUFTLElBQUk7QUFDbkMsUUFBTSxXQUFxQixDQUFDO0FBQzVCLFFBQU0sc0JBQWtCLDZCQUFlLGtDQUFrQztBQUV6RSxRQUFNLFdBQVcsVUFBTSx5QkFBQUEsTUFBaUI7QUFBQSxJQUN0QyxlQUFXLDJCQUFjLEdBQUcsS0FBSyxPQUFPLFFBQVEsSUFBSTtBQUFBLElBQ3BELFVBQVUsQ0FBQyxZQUEwQjtBQUNuQyxlQUFTLEtBQUssT0FBTztBQUFBLElBQ3ZCO0FBQUEsSUFDQSxZQUFZLENBQUMsWUFBMEI7QUFDckMsc0JBQWdCLE9BQU87QUFBQSxJQUN6QjtBQUFBO0FBQUE7QUFBQTtBQUFBLElBSUEsU0FBUztBQUFBLElBQ1QsaUJBQWlCLEVBQUUsS0FBQyx5QkFBWSxRQUFRLENBQUMsR0FBRyxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBTXBELGdCQUFnQjtBQUFBLEVBQ2xCLENBQUM7QUFLRCxTQUFPLGFBQWEsb0JBQW9CLENBQUMsSUFBSTtBQUMvQzsiLAogICJuYW1lcyI6IFsibWFya2Rvd25saW50Q2xpMiJdCn0K
@@ -0,0 +1,47 @@
1
+ /// <reference path="../index.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Lints markdown that is still in memory, with the repository's own `lint:md` configuration.
6
+ *
7
+ * `lint:md` can only answer for what is already on disk, which leaves every document composed during a run
8
+ * unchecked until the next gate — the release's changelog being the one that costs a red `main`. This module
9
+ * is the same check one step earlier: the text is linted as the path it is destined for, and a caller that
10
+ * does not like the answer can stop before writing anything.
11
+ *
12
+ * It goes through `markdownlint-cli2` rather than `markdownlint`'s own string API, and that is the whole
13
+ * point of the module. The question a caller is asking is *"would `lint:md` have failed on this text?"*, and
14
+ * only the `markdownlint-cli2` layer knows: it is what finds `.markdownlint-cli2.mjs` (through `jiti`, for
15
+ * the TypeScript configuration this workspace writes), merges the repository's own overrides over the shared
16
+ * defaults, and loads the custom rules. Reaching for the string API means hand-rolling that resolution over
17
+ * five configuration file formats, which is a copy of `markdownlint-cli2` that can only ever drift from it.
18
+ */
19
+ /**
20
+ * Parameters for {@link lintMarkdownContent}.
21
+ */
22
+ export interface LintMarkdownContentParams {
23
+ /**
24
+ * The markdown to lint.
25
+ */
26
+ readonly content: string;
27
+ /**
28
+ * A folder inside the project whose markdownlint configuration applies. Defaults to the current working folder.
29
+ * In a workspace, a package's own folder has no configuration of its own, so a caller linting for the
30
+ * workspace root names it here.
31
+ */
32
+ readonly cwd?: string | undefined;
33
+ /**
34
+ * The path the content is linted AS — normally the path it is about to be written to. It decides how the
35
+ * path-relative rules resolve (`relative-links` walks from the file's own folder), and it is what every
36
+ * reported finding is named after.
37
+ */
38
+ readonly filePath: string;
39
+ }
40
+ /**
41
+ * Lints markdown content that is not on disk, with the configuration `lint:md` would have used for it.
42
+ *
43
+ * @param params - The {@link LintMarkdownContentParams}.
44
+ * @returns A {@link Promise} that resolves to the findings, each one the line the `lint:md` output would have
45
+ * carried — `<path>:<line>[:<column>] error <rule> <description>` — or an empty array when there are none.
46
+ */
47
+ export declare function lintMarkdownContent(params: LintMarkdownContentParams): Promise<string[]>;
@@ -0,0 +1,95 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ function keepName($unknown) {
43
+ return $unknown;
44
+ }
45
+
46
+ (function initCjs() {
47
+ const globalThisRecord = globalThis;
48
+ ensureDisposeSymbols();
49
+ globalThisRecord['__name'] ??= keepName;
50
+ globalThisRecord['__extractDefault'] ??= extractDefault;
51
+
52
+ ensureBrowserProcess();
53
+
54
+ // eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
55
+ function extractDefault(module) {
56
+ return module && module.__esModule && 'default' in module ? module.default : module;
57
+ }
58
+ })();
59
+ })();
60
+
61
+ "use strict";
62
+ var __defProp = Object.defineProperty;
63
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
64
+ var __getOwnPropNames = Object.getOwnPropertyNames;
65
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
66
+ var __export = (target, all) => {
67
+ for (var name in all)
68
+ __defProp(target, name, { get: all[name], enumerable: true });
69
+ };
70
+ var __copyProps = (to, from, except, desc) => {
71
+ if (from && typeof from === "object" || typeof from === "function") {
72
+ for (let key of __getOwnPropNames(from))
73
+ if (!__hasOwnProp.call(to, key) && key !== except)
74
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
75
+ }
76
+ return to;
77
+ };
78
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
79
+ var markdownlint_ignores_exports = {};
80
+ __export(markdownlint_ignores_exports, {
81
+ NODE_MODULES_IGNORE_GLOB: () => NODE_MODULES_IGNORE_GLOB,
82
+ checkIsInNodeModules: () => checkIsInNodeModules
83
+ });
84
+ module.exports = __toCommonJS(markdownlint_ignores_exports);
85
+ const NODE_MODULES_IGNORE_GLOB = "**/node_modules/**";
86
+ const NODE_MODULES_FOLDER_NAME = "node_modules";
87
+ function checkIsInNodeModules(path) {
88
+ return path.split("/").includes(NODE_MODULES_FOLDER_NAME);
89
+ }
90
+ // Annotate the CommonJS export names for ESM import in node:
91
+ 0 && (module.exports = {
92
+ NODE_MODULES_IGNORE_GLOB,
93
+ checkIsInNodeModules
94
+ });
95
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvbWFya2Rvd25saW50LWlnbm9yZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBUaGUgbWFya2Rvd24gcGF0aHMgYGxpbnQ6bWRgIHNraXBzIE9OIFRPUCBvZiB0aGUgb25lcyBgLmdpdGlnbm9yZWAgYWxyZWFkeSBleGNsdWRlcy5cbiAqXG4gKiBEZXJpdmluZyB0aGUgaWdub3JlIHNldCBmcm9tIGAuZ2l0aWdub3JlYCBpcyByaWdodCBhbmQgc3RheXMgXHUyMDE0IGdpdCdzIG93biBzZW1hbnRpY3MsIG5lc3RlZCBpZ25vcmUgZmlsZXNcbiAqIGFuZCBhbGwsIHdpdGggbm8gaGFuZC1tYWludGFpbmVkIGxpc3QgdG8gZHJpZnQuIEJ1dCBpdCBjYW4gb25seSBldmVyIHNraXAgd2hhdCBnaXQgc2tpcHMsIGFuZCBhXG4gKiByZXBvc2l0b3J5IGNhbiAqKmRlbGliZXJhdGVseSB0cmFjayoqIGEgdmVuZG9yZWQgYG5vZGVfbW9kdWxlc2AgdHJlZS4gYG9ic2lkaWFuLWNvZGVzY3JpcHQtdG9vbGtpdGBcbiAqIGRvZXM6IGBkZW1vLXZhdWx0Ly5naXRpZ25vcmVgIHJlLWluY2x1ZGVzIGBfYXNzZXRzL0NvZGVTY3JpcHRUb29sa2l0L25vZGVfbW9kdWxlcy9gIG9uIHB1cnBvc2UsIHNvIHRoZVxuICogZGVtbyB2YXVsdCdzIFwiTlBNIG1vZHVsZXNcIiBub3RlIGNhbiBgcmVxdWlyZSgndXVpZCcpYCBvZmZsaW5lLiBgbGludDptZGAgdGhlbiBsaW50ZWQgYSB0aGlyZC1wYXJ0eVxuICogUkVBRE1FIGFuZCBmYWlsZWQgdGhlIHdob2xlIGdhdGUgb24gaXRzIHRhYmxlIHN0eWxlLCBpdHMgaW5saW5lIEhUTUwsIGFuZCBhIHJlbGF0aXZlIGxpbmsgdG8gYSBmaWxlXG4gKiB0aGF0IG9ubHkgZXhpc3RzIGluIHRoZSB1cHN0cmVhbSByZXBvc2l0b3J5IFx1MjAxNCBub25lIG9mIHdoaWNoIGlzIHRoaXMgcHJvamVjdCdzIHRvIGZpeC5cbiAqXG4gKiBTbyB0aGUgc2hhcmVkIGhlbHBlciBpcyBcImAuZ2l0aWdub3JlYCAqKnBsdXMqKiB0aGVzZVwiLCB3aGljaCBpcyB3aGF0IHRoZSBgLmdpdGlnbm9yZWAtZGVyaXZlZCB3b3JrXG4gKiBhbnRpY2lwYXRlZC4gVGhpcyBpcyBOT1QgYSByZXR1cm4gdG8gdGhlIGhhbmQtbWFpbnRhaW5lZCBnbG9icyB0aGF0IHByZWNlZGVkIGl0OiB0aG9zZSB3ZXJlIHJlbW92ZWRcbiAqIGJlY2F1c2UgdGhleSBEVVBMSUNBVEVEIGAuZ2l0aWdub3JlYCwgbm90IGJlY2F1c2UgYW4gZXhwbGljaXQgZW50cnkgaXMgZXZlciB3cm9uZy5cbiAqXG4gKiBCb3RoIGhhbHZlcyBvZiBgbGludDptZGAgcmVhZCBmcm9tIGhlcmUgc28gdGhleSBjYW5ub3QgZGlzYWdyZWUgXHUyMDE0IG1hcmtkb3dubGludC1jbGkyIHRha2VzIGFuIGlnbm9yZVxuICogY29uZmlndXJhdGlvbiwgd2hpbGUgYGxpbmtpbmF0b3JgIHRha2VzIGEgZmlsZSBsaXN0IGFuZCBoYXMgdG8gYmUgZmlsdGVyZWQgYmVmb3JlIGl0IGlzIGludm9rZWQuXG4gKi9cblxuLyoqXG4gKiBUaGUgZ2xvYiBmb3JtLCBmb3IgbWFya2Rvd25saW50LWNsaTIncyBgaWdub3Jlc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBOT0RFX01PRFVMRVNfSUdOT1JFX0dMT0IgPSAnKiovbm9kZV9tb2R1bGVzLyoqJztcblxuLyoqXG4gKiBUaGUgZGlyZWN0b3J5IG5hbWUgdGhlIGdsb2IgYWJvdmUgbWF0Y2hlcy5cbiAqL1xuY29uc3QgTk9ERV9NT0RVTEVTX0ZPTERFUl9OQU1FID0gJ25vZGVfbW9kdWxlcyc7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBwYXRoIHNpdHMgaW5zaWRlIGEgYG5vZGVfbW9kdWxlc2AgZm9sZGVyIGF0IGFueSBkZXB0aC5cbiAqXG4gKiBNYXRjaGVzIG9uIGEgZnVsbCBwYXRoIFNFR01FTlQgcmF0aGVyIHRoYW4gYSBzdWJzdHJpbmcsIHNvIGEgZmlsZSB3aG9zZSBvd24gbmFtZSBtZXJlbHkgY29udGFpbnMgdGhlXG4gKiB3b3JkIChgbm9kZV9tb2R1bGVzLW1pZ3JhdGlvbi5tZGApIGlzIG5vdCBzd2VwdCB1cCB3aXRoIGl0LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gQSBwYXRoIHJlbGF0aXZlIHRvIHRoZSByZXBvc2l0b3J5IHJvb3QsIHNlcGFyYXRlZCBieSBgL2AgKHRoZSBmb3JtIGBnaXQgbHMtZmlsZXNgIGVtaXRzKS5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSBwYXRoIGlzIGluc2lkZSBhIGBub2RlX21vZHVsZXNgIGZvbGRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSXNJbk5vZGVNb2R1bGVzKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gcGF0aC5zcGxpdCgnLycpLmluY2x1ZGVzKE5PREVfTU9EVUxFU19GT0xERVJfTkFNRSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF3Qk8sTUFBTSwyQkFBMkI7QUFLeEMsTUFBTSwyQkFBMkI7QUFXMUIsU0FBUyxxQkFBcUIsTUFBdUI7QUFDMUQsU0FBTyxLQUFLLE1BQU0sR0FBRyxFQUFFLFNBQVMsd0JBQXdCO0FBQzFEOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,35 @@
1
+ /// <reference path="../index.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * The markdown paths `lint:md` skips ON TOP of the ones `.gitignore` already excludes.
6
+ *
7
+ * Deriving the ignore set from `.gitignore` is right and stays — git's own semantics, nested ignore files
8
+ * and all, with no hand-maintained list to drift. But it can only ever skip what git skips, and a
9
+ * repository can **deliberately track** a vendored `node_modules` tree. `obsidian-codescript-toolkit`
10
+ * does: `demo-vault/.gitignore` re-includes `_assets/CodeScriptToolkit/node_modules/` on purpose, so the
11
+ * demo vault's "NPM modules" note can `require('uuid')` offline. `lint:md` then linted a third-party
12
+ * README and failed the whole gate on its table style, its inline HTML, and a relative link to a file
13
+ * that only exists in the upstream repository — none of which is this project's to fix.
14
+ *
15
+ * So the shared helper is "`.gitignore` **plus** these", which is what the `.gitignore`-derived work
16
+ * anticipated. This is NOT a return to the hand-maintained globs that preceded it: those were removed
17
+ * because they DUPLICATED `.gitignore`, not because an explicit entry is ever wrong.
18
+ *
19
+ * Both halves of `lint:md` read from here so they cannot disagree — markdownlint-cli2 takes an ignore
20
+ * configuration, while `linkinator` takes a file list and has to be filtered before it is invoked.
21
+ */
22
+ /**
23
+ * The glob form, for markdownlint-cli2's `ignores`.
24
+ */
25
+ export declare const NODE_MODULES_IGNORE_GLOB = "**/node_modules/**";
26
+ /**
27
+ * Checks whether a path sits inside a `node_modules` folder at any depth.
28
+ *
29
+ * Matches on a full path SEGMENT rather than a substring, so a file whose own name merely contains the
30
+ * word (`node_modules-migration.md`) is not swept up with it.
31
+ *
32
+ * @param path - A path relative to the repository root, separated by `/` (the form `git ls-files` emits).
33
+ * @returns `true` when the path is inside a `node_modules` folder.
34
+ */
35
+ export declare function checkIsInNodeModules(path: string): boolean;
@@ -0,0 +1,99 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ const existingProcess = globalThis.process;
23
+
24
+ if (!existingProcess) {
25
+ globalThis.process = browserProcess;
26
+ return;
27
+ }
28
+
29
+ if (existingProcess.versions?.node) {
30
+ return;
31
+ }
32
+
33
+ const existingProcessRecord = existingProcess;
34
+
35
+ for (const [key, value] of Object.entries(browserProcess)) {
36
+ existingProcessRecord[key] ??= value;
37
+ }
38
+
39
+ existingProcessRecord['browser'] = true;
40
+ }
41
+
42
+ function keepName($unknown) {
43
+ return $unknown;
44
+ }
45
+
46
+ (function initCjs() {
47
+ const globalThisRecord = globalThis;
48
+ ensureDisposeSymbols();
49
+ globalThisRecord['__name'] ??= keepName;
50
+ globalThisRecord['__extractDefault'] ??= extractDefault;
51
+
52
+ ensureBrowserProcess();
53
+
54
+ // eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
55
+ function extractDefault(module) {
56
+ return module && module.__esModule && 'default' in module ? module.default : module;
57
+ }
58
+ })();
59
+ })();
60
+
61
+ "use strict";
62
+ var __create = Object.create;
63
+ var __defProp = Object.defineProperty;
64
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
65
+ var __getOwnPropNames = Object.getOwnPropertyNames;
66
+ var __getProtoOf = Object.getPrototypeOf;
67
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
68
+ var __export = (target, all) => {
69
+ for (var name in all)
70
+ __defProp(target, name, { get: all[name], enumerable: true });
71
+ };
72
+ var __copyProps = (to, from, except, desc) => {
73
+ if (from && typeof from === "object" || typeof from === "function") {
74
+ for (let key of __getOwnPropNames(from))
75
+ if (!__hasOwnProp.call(to, key) && key !== except)
76
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
77
+ }
78
+ return to;
79
+ };
80
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
81
+ // If the importer is in node compatibility mode or this is not an ESM
82
+ // file that has been converted to a CommonJS file using a Babel-
83
+ // compatible transform (i.e. "__esModule" has not been set), then set
84
+ // "default" to the CommonJS "module.exports" for node compatibility.
85
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
86
+ mod
87
+ ));
88
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
89
+ var markdownlint_rules_exports = {};
90
+ __export(markdownlint_rules_exports, {
91
+ "no-soft-break-in-paragraph": () => no_soft_break_in_paragraph
92
+ });
93
+ module.exports = __toCommonJS(markdownlint_rules_exports);
94
+ var no_soft_break_in_paragraph = __toESM(__extractDefault(require('./no-soft-break-in-paragraph.cjs')), 1);
95
+ // Annotate the CommonJS export names for ESM import in node:
96
+ 0 && (module.exports = {
97
+ "no-soft-break-in-paragraph": null
98
+ });
99
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpbnRlcnMvbWFya2Rvd25saW50LXJ1bGVzL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ25vLXNvZnQtYnJlYWstaW4tcGFyYWdyYXBoJyBmcm9tICcuL25vLXNvZnQtYnJlYWstaW4tcGFyYWdyYXBoLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUEsc0NBQUFBO0FBQUE7QUFBQTtBQUVBLElBQUFBLDZCQUE4QzsiLAogICJuYW1lcyI6IFsibm8tc29mdC1icmVhay1pbi1wYXJhZ3JhcGgiXQp9Cg==
@@ -0,0 +1,2 @@
1
+ /// <reference path="../../index.d.cts" />
2
+ export * as 'no-soft-break-in-paragraph' from './no-soft-break-in-paragraph.cjs';