@mnaoumov/obsidian-dev-toolkit 0.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -1
  3. package/bundlers/esbuild/package.json +6 -0
  4. package/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin/package.json +6 -0
  5. package/bundlers/esbuild-impl/dependency/package.json +6 -0
  6. package/bundlers/esbuild-impl/fix-source-maps-plugin/package.json +6 -0
  7. package/bundlers/esbuild-impl/index/package.json +6 -0
  8. package/bundlers/esbuild-impl/obsidian-plugin-builder/package.json +6 -0
  9. package/bundlers/esbuild-impl/package.json +6 -0
  10. package/bundlers/esbuild-impl/preprocess-plugin/package.json +6 -0
  11. package/bundlers/esbuild-impl/rename-css-plugin/package.json +6 -0
  12. package/bundlers/index/package.json +6 -0
  13. package/bundlers/package.json +6 -0
  14. package/dist/demo-vault-helper/main.js +1264 -0
  15. package/dist/demo-vault-helper/manifest.json +9 -0
  16. package/dist/integration-test-plugin/main.js +54167 -0
  17. package/dist/integration-test-plugin/manifest.json +8 -0
  18. package/dist/lib/cjs/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.cjs +322 -0
  19. package/dist/lib/cjs/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.cts +38 -0
  20. package/dist/lib/cjs/bundlers/esbuild-impl/dependency.cjs +240 -0
  21. package/dist/lib/cjs/bundlers/esbuild-impl/dependency.d.cts +20 -0
  22. package/dist/lib/cjs/bundlers/esbuild-impl/fix-source-maps-plugin.cjs +213 -0
  23. package/dist/lib/cjs/bundlers/esbuild-impl/fix-source-maps-plugin.d.cts +34 -0
  24. package/dist/lib/cjs/bundlers/esbuild-impl/index.cjs +179 -0
  25. package/dist/lib/cjs/bundlers/esbuild-impl/index.d.cts +7 -0
  26. package/dist/lib/cjs/bundlers/esbuild-impl/obsidian-plugin-builder.cjs +362 -0
  27. package/dist/lib/cjs/bundlers/esbuild-impl/obsidian-plugin-builder.d.cts +98 -0
  28. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.cjs +234 -0
  29. package/dist/lib/cjs/bundlers/esbuild-impl/preprocess-plugin.d.cts +30 -0
  30. package/dist/lib/cjs/bundlers/esbuild-impl/rename-css-plugin.cjs +171 -0
  31. package/dist/lib/cjs/bundlers/esbuild-impl/rename-css-plugin.d.cts +14 -0
  32. package/dist/lib/cjs/bundlers/esbuild.cjs +164 -0
  33. package/dist/lib/cjs/bundlers/esbuild.d.cts +11 -0
  34. package/dist/lib/cjs/bundlers/index.cjs +167 -0
  35. package/dist/lib/cjs/bundlers/index.d.cts +3 -0
  36. package/dist/lib/cjs/demo-vault-app-json.cjs +186 -0
  37. package/dist/lib/cjs/demo-vault-app-json.d.cts +93 -0
  38. package/dist/lib/cjs/demo-vault-buttons.cjs +567 -0
  39. package/dist/lib/cjs/demo-vault-buttons.d.cts +259 -0
  40. package/dist/lib/cjs/demo-vault-coverage.cjs +713 -0
  41. package/dist/lib/cjs/demo-vault-coverage.d.cts +533 -0
  42. package/dist/lib/cjs/demo-vault.cjs +296 -0
  43. package/dist/lib/cjs/demo-vault.d.cts +33 -0
  44. package/dist/lib/cjs/formatters/dprint.cjs +160 -0
  45. package/dist/lib/cjs/formatters/dprint.d.cts +15 -0
  46. package/dist/lib/cjs/formatters/index.cjs +164 -0
  47. package/dist/lib/cjs/formatters/index.d.cts +2 -0
  48. package/dist/lib/cjs/index.cjs +194 -0
  49. package/dist/lib/cjs/index.d.cts +16 -0
  50. package/dist/lib/cjs/integration-test-setup.cjs +129 -0
  51. package/dist/lib/cjs/integration-test-setup.d.cts +33 -0
  52. package/dist/lib/cjs/integration-test-vitest-global-setup.cjs +163 -0
  53. package/dist/lib/cjs/integration-test-vitest-global-setup.d.cts +39 -0
  54. package/dist/lib/cjs/jest-setup.cjs +134 -0
  55. package/dist/lib/cjs/jest-setup.d.cts +13 -0
  56. package/dist/lib/cjs/linters/eslint-config.cjs +403 -0
  57. package/dist/lib/cjs/linters/eslint-config.d.cts +25 -0
  58. package/dist/lib/cjs/linters/eslint-rules/index.cjs +200 -0
  59. package/dist/lib/cjs/linters/eslint-rules/index.d.cts +14 -0
  60. package/dist/lib/cjs/linters/eslint-rules/manifest-description.cjs +255 -0
  61. package/dist/lib/cjs/linters/eslint-rules/manifest-description.d.cts +54 -0
  62. package/dist/lib/cjs/linters/eslint-rules/manifest-helpers.cjs +218 -0
  63. package/dist/lib/cjs/linters/eslint-rules/manifest-helpers.d.cts +141 -0
  64. package/dist/lib/cjs/linters/eslint-rules/manifest-id.cjs +215 -0
  65. package/dist/lib/cjs/linters/eslint-rules/manifest-id.d.cts +32 -0
  66. package/dist/lib/cjs/linters/eslint-rules/manifest-name.cjs +216 -0
  67. package/dist/lib/cjs/linters/eslint-rules/manifest-name.d.cts +30 -0
  68. package/dist/lib/cjs/linters/eslint-rules/manifest-schema.cjs +316 -0
  69. package/dist/lib/cjs/linters/eslint-rules/manifest-schema.d.cts +45 -0
  70. package/dist/lib/cjs/linters/eslint-rules/no-local-obsidian-internals.cjs +259 -0
  71. package/dist/lib/cjs/linters/eslint-rules/no-local-obsidian-internals.d.cts +10 -0
  72. package/dist/lib/cjs/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.cjs +657 -0
  73. package/dist/lib/cjs/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.d.cts +10 -0
  74. package/dist/lib/cjs/linters/eslint-rules/no-untrusted-input-events.cjs +247 -0
  75. package/dist/lib/cjs/linters/eslint-rules/no-untrusted-input-events.d.cts +10 -0
  76. package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +181 -0
  77. package/dist/lib/cjs/linters/eslint-rules/obsidian-dev-utils-plugin.d.cts +13 -0
  78. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code-in-ui.cjs +263 -0
  79. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code-in-ui.d.cts +30 -0
  80. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code.cjs +215 -0
  81. package/dist/lib/cjs/linters/eslint-rules/plugin-name-as-code.d.cts +29 -0
  82. package/dist/lib/cjs/linters/eslint-rules/require-component-suffix.cjs +278 -0
  83. package/dist/lib/cjs/linters/eslint-rules/require-component-suffix.d.cts +18 -0
  84. package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.cjs +306 -0
  85. package/dist/lib/cjs/linters/eslint-rules/require-plugin-api-contract-schemas.d.cts +10 -0
  86. package/dist/lib/cjs/linters/eslint.cjs +160 -0
  87. package/dist/lib/cjs/linters/eslint.d.cts +15 -0
  88. package/dist/lib/cjs/linters/index.cjs +185 -0
  89. package/dist/lib/cjs/linters/index.d.cts +9 -0
  90. package/dist/lib/cjs/linters/markdownlint-cli2-config.cjs +171 -0
  91. package/dist/lib/cjs/linters/markdownlint-cli2-config.d.cts +12 -0
  92. package/dist/lib/cjs/linters/markdownlint-rules/index.cjs +164 -0
  93. package/dist/lib/cjs/linters/markdownlint-rules/index.d.cts +2 -0
  94. package/dist/lib/cjs/linters/markdownlint-rules/plugin-name-as-code.cjs +246 -0
  95. package/dist/lib/cjs/linters/markdownlint-rules/plugin-name-as-code.d.cts +32 -0
  96. package/dist/lib/cjs/linters/markdownlint.cjs +160 -0
  97. package/dist/lib/cjs/linters/markdownlint.d.cts +15 -0
  98. package/dist/lib/cjs/linters/obsidianmd-rule-custom-message.cjs +176 -0
  99. package/dist/lib/cjs/linters/obsidianmd-rule-custom-message.d.cts +40 -0
  100. package/dist/lib/cjs/linters/plugin-names.cjs +249 -0
  101. package/dist/lib/cjs/linters/plugin-names.d.cts +81 -0
  102. package/dist/lib/cjs/obsidian-plugin-repo-paths.cjs +216 -0
  103. package/dist/lib/cjs/obsidian-plugin-repo-paths.d.cts +253 -0
  104. package/dist/lib/cjs/setup.cjs +163 -0
  105. package/dist/lib/cjs/setup.d.cts +21 -0
  106. package/dist/lib/cjs/templates.cjs +172 -0
  107. package/dist/lib/cjs/templates.d.cts +13 -0
  108. package/dist/lib/cjs/test-runners/index.cjs +170 -0
  109. package/dist/lib/cjs/test-runners/index.d.cts +4 -0
  110. package/dist/lib/cjs/test-runners/integration-test-plugin.cjs +211 -0
  111. package/dist/lib/cjs/test-runners/integration-test-plugin.d.cts +44 -0
  112. package/dist/lib/cjs/test-runners/performance-eval-cap.cjs +157 -0
  113. package/dist/lib/cjs/test-runners/performance-eval-cap.d.cts +27 -0
  114. package/dist/lib/cjs/test-runners/stale-build-global-setup.cjs +217 -0
  115. package/dist/lib/cjs/test-runners/stale-build-global-setup.d.cts +86 -0
  116. package/dist/lib/cjs/test-runners/vitest-config.cjs +484 -0
  117. package/dist/lib/cjs/test-runners/vitest-config.d.cts +200 -0
  118. package/dist/lib/cjs/version.cjs +262 -0
  119. package/dist/lib/cjs/version.d.cts +92 -0
  120. package/dist/lib/cjs/vitest-setup.cjs +134 -0
  121. package/dist/lib/cjs/vitest-setup.d.cts +11 -0
  122. package/dist/lib/esm/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.d.mts +38 -0
  123. package/dist/lib/esm/bundlers/esbuild-impl/copy-to-obsidian-plugins-folder-plugin.mjs +218 -0
  124. package/dist/lib/esm/bundlers/esbuild-impl/dependency.d.mts +20 -0
  125. package/dist/lib/esm/bundlers/esbuild-impl/dependency.mjs +130 -0
  126. package/dist/lib/esm/bundlers/esbuild-impl/fix-source-maps-plugin.d.mts +34 -0
  127. package/dist/lib/esm/bundlers/esbuild-impl/fix-source-maps-plugin.mjs +108 -0
  128. package/dist/lib/esm/bundlers/esbuild-impl/index.d.mts +7 -0
  129. package/dist/lib/esm/bundlers/esbuild-impl/index.mjs +56 -0
  130. package/dist/lib/esm/bundlers/esbuild-impl/obsidian-plugin-builder.d.mts +98 -0
  131. package/dist/lib/esm/bundlers/esbuild-impl/obsidian-plugin-builder.mjs +247 -0
  132. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.d.mts +30 -0
  133. package/dist/lib/esm/bundlers/esbuild-impl/preprocess-plugin.mjs +126 -0
  134. package/dist/lib/esm/bundlers/esbuild-impl/rename-css-plugin.d.mts +14 -0
  135. package/dist/lib/esm/bundlers/esbuild-impl/rename-css-plugin.mjs +63 -0
  136. package/dist/lib/esm/bundlers/esbuild.d.mts +11 -0
  137. package/dist/lib/esm/bundlers/esbuild.mjs +58 -0
  138. package/dist/lib/esm/bundlers/index.d.mts +3 -0
  139. package/dist/lib/esm/bundlers/index.mjs +48 -0
  140. package/dist/lib/esm/demo-vault-app-json.d.mts +93 -0
  141. package/dist/lib/esm/demo-vault-app-json.mjs +75 -0
  142. package/dist/lib/esm/demo-vault-buttons.d.mts +259 -0
  143. package/dist/lib/esm/demo-vault-buttons.mjs +452 -0
  144. package/dist/lib/esm/demo-vault-coverage.d.mts +533 -0
  145. package/dist/lib/esm/demo-vault-coverage.mjs +619 -0
  146. package/dist/lib/esm/demo-vault.d.mts +33 -0
  147. package/dist/lib/esm/demo-vault.mjs +197 -0
  148. package/dist/lib/esm/formatters/dprint.d.mts +15 -0
  149. package/dist/lib/esm/formatters/dprint.mjs +52 -0
  150. package/dist/lib/esm/formatters/index.d.mts +2 -0
  151. package/dist/lib/esm/formatters/index.mjs +46 -0
  152. package/dist/lib/esm/index.d.mts +16 -0
  153. package/dist/lib/esm/index.mjs +66 -0
  154. package/dist/lib/esm/integration-test-setup.d.mts +33 -0
  155. package/dist/lib/esm/integration-test-setup.mjs +44 -0
  156. package/dist/lib/esm/integration-test-vitest-global-setup.d.mts +39 -0
  157. package/dist/lib/esm/integration-test-vitest-global-setup.mjs +57 -0
  158. package/dist/lib/esm/jest-setup.d.mts +13 -0
  159. package/dist/lib/esm/jest-setup.mjs +53 -0
  160. package/dist/lib/esm/linters/eslint-config.d.mts +25 -0
  161. package/dist/lib/esm/linters/eslint-config.mjs +290 -0
  162. package/dist/lib/esm/linters/eslint-rules/index.d.mts +14 -0
  163. package/dist/lib/esm/linters/eslint-rules/index.mjs +70 -0
  164. package/dist/lib/esm/linters/eslint-rules/manifest-description.d.mts +54 -0
  165. package/dist/lib/esm/linters/eslint-rules/manifest-description.mjs +146 -0
  166. package/dist/lib/esm/linters/eslint-rules/manifest-helpers.d.mts +141 -0
  167. package/dist/lib/esm/linters/eslint-rules/manifest-helpers.mjs +90 -0
  168. package/dist/lib/esm/linters/eslint-rules/manifest-id.d.mts +32 -0
  169. package/dist/lib/esm/linters/eslint-rules/manifest-id.mjs +109 -0
  170. package/dist/lib/esm/linters/eslint-rules/manifest-name.d.mts +30 -0
  171. package/dist/lib/esm/linters/eslint-rules/manifest-name.mjs +110 -0
  172. package/dist/lib/esm/linters/eslint-rules/manifest-schema.d.mts +45 -0
  173. package/dist/lib/esm/linters/eslint-rules/manifest-schema.mjs +212 -0
  174. package/dist/lib/esm/linters/eslint-rules/no-local-obsidian-internals.d.mts +10 -0
  175. package/dist/lib/esm/linters/eslint-rules/no-local-obsidian-internals.mjs +150 -0
  176. package/dist/lib/esm/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.d.mts +10 -0
  177. package/dist/lib/esm/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian.mjs +551 -0
  178. package/dist/lib/esm/linters/eslint-rules/no-untrusted-input-events.d.mts +10 -0
  179. package/dist/lib/esm/linters/eslint-rules/no-untrusted-input-events.mjs +138 -0
  180. package/dist/lib/esm/linters/eslint-rules/obsidian-dev-utils-plugin.d.mts +13 -0
  181. package/dist/lib/esm/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +73 -0
  182. package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code-in-ui.d.mts +30 -0
  183. package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code-in-ui.mjs +157 -0
  184. package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code.d.mts +29 -0
  185. package/dist/lib/esm/linters/eslint-rules/plugin-name-as-code.mjs +108 -0
  186. package/dist/lib/esm/linters/eslint-rules/require-component-suffix.d.mts +18 -0
  187. package/dist/lib/esm/linters/eslint-rules/require-component-suffix.mjs +167 -0
  188. package/dist/lib/esm/linters/eslint-rules/require-plugin-api-contract-schemas.d.mts +10 -0
  189. package/dist/lib/esm/linters/eslint-rules/require-plugin-api-contract-schemas.mjs +197 -0
  190. package/dist/lib/esm/linters/eslint.d.mts +15 -0
  191. package/dist/lib/esm/linters/eslint.mjs +52 -0
  192. package/dist/lib/esm/linters/index.d.mts +9 -0
  193. package/dist/lib/esm/linters/index.mjs +60 -0
  194. package/dist/lib/esm/linters/markdownlint-cli2-config.d.mts +12 -0
  195. package/dist/lib/esm/linters/markdownlint-cli2-config.mjs +66 -0
  196. package/dist/lib/esm/linters/markdownlint-rules/index.d.mts +2 -0
  197. package/dist/lib/esm/linters/markdownlint-rules/index.mjs +46 -0
  198. package/dist/lib/esm/linters/markdownlint-rules/plugin-name-as-code.d.mts +32 -0
  199. package/dist/lib/esm/linters/markdownlint-rules/plugin-name-as-code.mjs +130 -0
  200. package/dist/lib/esm/linters/markdownlint.d.mts +15 -0
  201. package/dist/lib/esm/linters/markdownlint.mjs +52 -0
  202. package/dist/lib/esm/linters/obsidianmd-rule-custom-message.d.mts +40 -0
  203. package/dist/lib/esm/linters/obsidianmd-rule-custom-message.mjs +67 -0
  204. package/dist/lib/esm/linters/plugin-names.d.mts +81 -0
  205. package/dist/lib/esm/linters/plugin-names.mjs +141 -0
  206. package/dist/lib/esm/obsidian-plugin-repo-paths.d.mts +253 -0
  207. package/dist/lib/esm/obsidian-plugin-repo-paths.mjs +108 -0
  208. package/dist/lib/esm/setup.d.mts +21 -0
  209. package/dist/lib/esm/setup.mjs +55 -0
  210. package/dist/lib/esm/templates.d.mts +13 -0
  211. package/dist/lib/esm/templates.mjs +57 -0
  212. package/dist/lib/esm/test-runners/index.d.mts +4 -0
  213. package/dist/lib/esm/test-runners/index.mjs +50 -0
  214. package/dist/lib/esm/test-runners/integration-test-plugin.d.mts +44 -0
  215. package/dist/lib/esm/test-runners/integration-test-plugin.mjs +94 -0
  216. package/dist/lib/esm/test-runners/performance-eval-cap.d.mts +27 -0
  217. package/dist/lib/esm/test-runners/performance-eval-cap.mjs +48 -0
  218. package/dist/lib/esm/test-runners/stale-build-global-setup.d.mts +86 -0
  219. package/dist/lib/esm/test-runners/stale-build-global-setup.mjs +115 -0
  220. package/dist/lib/esm/test-runners/vitest-config.d.mts +200 -0
  221. package/dist/lib/esm/test-runners/vitest-config.mjs +369 -0
  222. package/dist/lib/esm/version.d.mts +92 -0
  223. package/dist/lib/esm/version.mjs +160 -0
  224. package/dist/lib/esm/vitest-setup.d.mts +11 -0
  225. package/dist/lib/esm/vitest-setup.mjs +53 -0
  226. package/dist/templates/.markdownlint-cli2.mjs +4 -0
  227. package/dist/templates/.nano-staged.mjs +4 -0
  228. package/dist/templates/commitlint.config.ts +3 -0
  229. package/dist/templates/dprint.json +26 -0
  230. package/dist/templates/eslint.config.mts +3 -0
  231. package/dist/templates/scripts/build/build-clean.ts +4 -0
  232. package/dist/templates/scripts/build/build-compile-svelte.ts +4 -0
  233. package/dist/templates/scripts/build/build-compile-typescript.ts +4 -0
  234. package/dist/templates/scripts/build/build-compile.ts +4 -0
  235. package/dist/templates/scripts/build/build-templates.ts +4 -0
  236. package/dist/templates/scripts/bundlers/esbuild/build.ts +4 -0
  237. package/dist/templates/scripts/bundlers/esbuild/dev.ts +4 -0
  238. package/dist/templates/scripts/commitlint-config.ts +3 -0
  239. package/dist/templates/scripts/eslint-config.ts +10 -0
  240. package/dist/templates/scripts/formatters/dprint/format-check.ts +8 -0
  241. package/dist/templates/scripts/formatters/dprint/format.ts +8 -0
  242. package/dist/templates/scripts/gate/gate.ts +10 -0
  243. package/dist/templates/scripts/linters/cspell/spellcheck.ts +8 -0
  244. package/dist/templates/scripts/linters/eslint/lint-fix.ts +8 -0
  245. package/dist/templates/scripts/linters/eslint/lint.ts +8 -0
  246. package/dist/templates/scripts/linters/markdownlint/lint-md-fix.ts +8 -0
  247. package/dist/templates/scripts/linters/markdownlint/lint-md.ts +8 -0
  248. package/dist/templates/scripts/linters/over-exposure/find-overexposed-fix.ts +25 -0
  249. package/dist/templates/scripts/linters/over-exposure/find-overexposed.ts +15 -0
  250. package/dist/templates/scripts/markdownlint-cli2-config.ts +3 -0
  251. package/dist/templates/scripts/nano-staged-config.ts +3 -0
  252. package/dist/templates/scripts/test-runners/vitest/test-coverage.ts +4 -0
  253. package/dist/templates/scripts/test-runners/vitest/test-watch.ts +4 -0
  254. package/dist/templates/scripts/test-runners/vitest/test.ts +4 -0
  255. package/dist/templates/scripts/version/version.ts +10 -0
  256. package/dist/templates/scripts/vitest-config.ts +3 -0
  257. package/dist/templates/vitest.config.ts +3 -0
  258. package/formatters/dprint/package.json +6 -0
  259. package/formatters/index/package.json +6 -0
  260. package/formatters/package.json +6 -0
  261. package/linters/eslint/package.json +6 -0
  262. package/linters/eslint-config/package.json +6 -0
  263. package/linters/eslint-rules/index/package.json +6 -0
  264. package/linters/eslint-rules/manifest-description/package.json +6 -0
  265. package/linters/eslint-rules/manifest-helpers/package.json +6 -0
  266. package/linters/eslint-rules/manifest-id/package.json +6 -0
  267. package/linters/eslint-rules/manifest-name/package.json +6 -0
  268. package/linters/eslint-rules/manifest-schema/package.json +6 -0
  269. package/linters/eslint-rules/no-local-obsidian-internals/package.json +6 -0
  270. package/linters/eslint-rules/no-over-cap-wait-in-eval-in-obsidian/package.json +6 -0
  271. package/linters/eslint-rules/no-untrusted-input-events/package.json +6 -0
  272. package/linters/eslint-rules/obsidian-dev-utils-plugin/package.json +6 -0
  273. package/linters/eslint-rules/package.json +6 -0
  274. package/linters/eslint-rules/plugin-name-as-code/package.json +6 -0
  275. package/linters/eslint-rules/plugin-name-as-code-in-ui/package.json +6 -0
  276. package/linters/eslint-rules/require-component-suffix/package.json +6 -0
  277. package/linters/eslint-rules/require-plugin-api-contract-schemas/package.json +6 -0
  278. package/linters/index/package.json +6 -0
  279. package/linters/markdownlint/package.json +6 -0
  280. package/linters/markdownlint-cli2-config/package.json +6 -0
  281. package/linters/markdownlint-rules/index/package.json +6 -0
  282. package/linters/markdownlint-rules/package.json +6 -0
  283. package/linters/markdownlint-rules/plugin-name-as-code/package.json +6 -0
  284. package/linters/obsidianmd-rule-custom-message/package.json +6 -0
  285. package/linters/package.json +6 -0
  286. package/linters/plugin-names/package.json +6 -0
  287. package/package.json +302 -13
  288. package/test-runners/index/package.json +6 -0
  289. package/test-runners/integration-test-plugin/package.json +6 -0
  290. package/test-runners/package.json +6 -0
  291. package/test-runners/performance-eval-cap/package.json +6 -0
  292. package/test-runners/stale-build-global-setup/package.json +6 -0
  293. package/test-runners/vitest-config/package.json +6 -0
@@ -0,0 +1,160 @@
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
+ const existingProcess = globalThis.process;
22
+ if (!existingProcess) {
23
+ globalThis.process = browserProcess;
24
+ return;
25
+ }
26
+ if (existingProcess.versions?.node) {
27
+ return;
28
+ }
29
+ const existingProcessRecord = existingProcess;
30
+ for (const [key, value] of Object.entries(browserProcess)) {
31
+ existingProcessRecord[key] ??= value;
32
+ }
33
+ existingProcessRecord["browser"] = true;
34
+ }
35
+
36
+ (function initEsm() {
37
+ ensureDisposeSymbols();
38
+ ensureBrowserProcess();
39
+ })();
40
+ })();
41
+
42
+ import { readdirPosix } from "@mnaoumov/typescript-dev-toolkit/fs";
43
+ import { editJson } from "@mnaoumov/typescript-dev-toolkit/json";
44
+ import { resolvePathFromRootSafe } from "@mnaoumov/typescript-dev-toolkit/root";
45
+ import {
46
+ isPreRelease,
47
+ toUpdateVersionOptions,
48
+ updateVersion as updateVersionGeneric,
49
+ VERSION_ARGUMENT_OPTIONS
50
+ } from "@mnaoumov/typescript-dev-toolkit/version";
51
+ import { join } from "@mnaoumov/typescript-lib/path";
52
+ import { ensureNonNullable } from "@mnaoumov/typescript-lib/type-guards";
53
+ import { existsSync } from "node:fs";
54
+ import {
55
+ cp,
56
+ rm
57
+ } from "node:fs/promises";
58
+ import { parseArgs } from "node:util";
59
+ import { archivePluginDemoVault } from "./demo-vault.mjs";
60
+ import { ObsidianPluginRepoPaths } from "./obsidian-plugin-repo-paths.mjs";
61
+ const DESKTOP_RELEASES_JSON_URL = "https://raw.githubusercontent.com/obsidianmd/obsidian-releases/master/desktop-releases.json";
62
+ async function copyUpdatedManifest() {
63
+ await cp(
64
+ resolvePathFromRootSafe({ path: ObsidianPluginRepoPaths.ManifestJson }),
65
+ resolvePathFromRootSafe({ path: join(ObsidianPluginRepoPaths.DistBuild, ObsidianPluginRepoPaths.ManifestJson) }),
66
+ { force: true }
67
+ );
68
+ }
69
+ function parseVersionArguments($arguments) {
70
+ const { positionals, values } = parseArgs({
71
+ allowPositionals: true,
72
+ // eslint-disable-next-line unicorn/name-replacements -- `args` is the option name Node's `parseArgs` reads.
73
+ args: $arguments,
74
+ options: {
75
+ ...VERSION_ARGUMENT_OPTIONS,
76
+ "min-app-version": { type: "string" },
77
+ "no-demo-vault": { type: "boolean" }
78
+ }
79
+ });
80
+ return {
81
+ options: {
82
+ ...toUpdateVersionOptions(values),
83
+ minAppVersion: values["min-app-version"],
84
+ shouldArchiveDemoVault: !(values["no-demo-vault"] ?? false)
85
+ },
86
+ versionUpdateType: positionals[0]
87
+ };
88
+ }
89
+ async function updateVersion(versionUpdateType, options = {}) {
90
+ const {
91
+ minAppVersion,
92
+ prepareGitHubRelease,
93
+ shouldArchiveDemoVault = true,
94
+ ...genericOptions
95
+ } = options;
96
+ await updateVersionGeneric(versionUpdateType, {
97
+ ...genericOptions,
98
+ getReleaseAssetPaths: getPluginReleaseAssetPaths,
99
+ async prepareGitHubRelease(newVersion) {
100
+ await prepareGitHubRelease?.(newVersion);
101
+ if (shouldArchiveDemoVault) {
102
+ await archivePluginDemoVault();
103
+ }
104
+ },
105
+ async updateVersionInExtraFiles(newVersion) {
106
+ await updateVersionInFilesForPlugin(newVersion, minAppVersion);
107
+ }
108
+ });
109
+ }
110
+ async function getLatestObsidianVersion() {
111
+ const response = await fetch(DESKTOP_RELEASES_JSON_URL);
112
+ const desktopReleasesJson = await response.json();
113
+ return ensureNonNullable(desktopReleasesJson.latestVersion, "Could not find the latest desktop Obsidian version");
114
+ }
115
+ async function getPluginReleaseAssetPaths() {
116
+ const buildFolder = resolvePathFromRootSafe({ path: ObsidianPluginRepoPaths.DistBuild });
117
+ const fileNames = await readdirPosix(buildFolder);
118
+ return fileNames.map((fileName) => join(buildFolder, fileName));
119
+ }
120
+ async function updateVersionInFilesForPlugin(newVersion, minAppVersion) {
121
+ const manifestBetaJsonPath = resolvePathFromRootSafe({ path: ObsidianPluginRepoPaths.ManifestBetaJson });
122
+ if (isPreRelease(newVersion)) {
123
+ await cp(
124
+ resolvePathFromRootSafe({ path: ObsidianPluginRepoPaths.ManifestJson }),
125
+ manifestBetaJsonPath,
126
+ { force: true }
127
+ );
128
+ await editJson({
129
+ editFunction: (manifest) => {
130
+ manifest.version = newVersion;
131
+ },
132
+ path: ObsidianPluginRepoPaths.ManifestBetaJson
133
+ });
134
+ } else {
135
+ const resolvedMinAppVersion = minAppVersion ?? await getLatestObsidianVersion();
136
+ await editJson({
137
+ editFunction: (manifest) => {
138
+ manifest.minAppVersion = resolvedMinAppVersion;
139
+ manifest.version = newVersion;
140
+ },
141
+ path: ObsidianPluginRepoPaths.ManifestJson
142
+ });
143
+ await editJson({
144
+ editFunction: (versions) => {
145
+ versions[newVersion] = resolvedMinAppVersion;
146
+ },
147
+ path: ObsidianPluginRepoPaths.VersionsJson
148
+ });
149
+ if (existsSync(manifestBetaJsonPath)) {
150
+ await rm(manifestBetaJsonPath);
151
+ }
152
+ }
153
+ await copyUpdatedManifest();
154
+ }
155
+ export {
156
+ copyUpdatedManifest,
157
+ parseVersionArguments,
158
+ updateVersion
159
+ };
160
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZlcnNpb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZWxlYXNlcyBhbiBPYnNpZGlhbiBwbHVnaW46IHRoZSBnZW5lcmljIHJlbGVhc2UgZnJvbSBgQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvdmVyc2lvbmAsIHBsdXMgd2hhdCBvbmx5IGFcbiAqIHBsdWdpbiBoYXMgXHUyMDE0IGBtYW5pZmVzdC5qc29uYCAoYW5kIGBtYW5pZmVzdC1iZXRhLmpzb25gIGZvciBhIHByZS1yZWxlYXNlKSBhbmQgYHZlcnNpb25zLmpzb25gIGJ1bXBlZCB3aXRoIHRoZVxuICogcGx1Z2luJ3MgYG1pbkFwcFZlcnNpb25gLCB0aGUgdXBkYXRlZCBtYW5pZmVzdCBjb3BpZWQgaW50byBgZGlzdC9idWlsZGAsIHRoZSBkZW1vIHZhdWx0IGFyY2hpdmVkIGFzIGEgcmVsZWFzZVxuICogYXNzZXQsIGFuZCB0aGUgZmlsZXMgaW4gYGRpc3QvYnVpbGRgIGF0dGFjaGVkIHRvIHRoZSBHaXRIdWIgcmVsZWFzZSBpbnN0ZWFkIG9mIGFuIGBucG0gcGFja2AgdGFyYmFsbC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBhcnNlZFZlcnNpb25Bcmd1bWVudHMgYXMgR2VuZXJpY1BhcnNlZFZlcnNpb25Bcmd1bWVudHMsXG4gIFVwZGF0ZVZlcnNpb25PcHRpb25zIGFzIEdlbmVyaWNVcGRhdGVWZXJzaW9uT3B0aW9uc1xufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC92ZXJzaW9uJztcblxuaW1wb3J0IHsgcmVhZGRpclBvc2l4IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvZnMnO1xuaW1wb3J0IHsgZWRpdEpzb24gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC9qc29uJztcbmltcG9ydCB7IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtZGV2LXRvb2xraXQvcm9vdCc7XG5pbXBvcnQge1xuICBpc1ByZVJlbGVhc2UsXG4gIHRvVXBkYXRlVmVyc2lvbk9wdGlvbnMsXG4gIHVwZGF0ZVZlcnNpb24gYXMgdXBkYXRlVmVyc2lvbkdlbmVyaWMsXG4gIFZFUlNJT05fQVJHVU1FTlRfT1BUSU9OU1xufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1kZXYtdG9vbGtpdC92ZXJzaW9uJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBjcCxcbiAgcm1cbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyBwYXJzZUFyZ3MgfSBmcm9tICdub2RlOnV0aWwnO1xuXG5pbXBvcnQgeyBhcmNoaXZlUGx1Z2luRGVtb1ZhdWx0IH0gZnJvbSAnLi9kZW1vLXZhdWx0LnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIHN0cnVjdHVyZSBvZiBPYnNpZGlhbidzIGBkZXNrdG9wLXJlbGVhc2VzLmpzb25gIGZlZWQuXG4gKlxuICogVGhpcyBpcyB0aGUgZmVlZCB0aGUgZGVza3RvcCBhcHAgaXRzZWxmIHVwZGF0ZXMgZnJvbSwgc28gaXQgaXMgdGhlIG9ubHkgc291cmNlIHRoYXQgc3RhdGVzIGEgdmVyc2lvblxuICogZGVza3RvcCB1c2VycyBjYW4gYWN0dWFsbHkgcnVuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc2t0b3BSZWxlYXNlc0pzb24ge1xuICAvKipcbiAgICogVGhlIGxhdGVzdCBPYnNpZGlhbiB2ZXJzaW9uIGF2YWlsYWJsZSBmb3IgZGVza3RvcC5cbiAgICovXG4gIGxhdGVzdFZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgbWFuaWZlc3QgZmlsZSBmb3JtYXQgZm9yIE9ic2lkaWFuIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3Qge1xuICAvKipcbiAgICogQSBtaW5pbXVtIE9ic2lkaWFuIHZlcnNpb24gcmVxdWlyZWQgZm9yIHRoZSBwbHVnaW4uXG4gICAqL1xuICBtaW5BcHBWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdmVyc2lvbiBvZiB0aGUgcGx1Z2luLlxuICAgKi9cbiAgdmVyc2lvbjogc3RyaW5nO1xufVxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgZm9yIGEgcGx1Z2luIHJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVmVyc2lvbkFyZ3VtZW50cyBleHRlbmRzIEdlbmVyaWNQYXJzZWRWZXJzaW9uQXJndW1lbnRzIHtcbiAgLyoqXG4gICAqIFRoZSB7QGxpbmsgVXBkYXRlVmVyc2lvbk9wdGlvbnN9IHBhcnNlZCBmcm9tIHRoZSBmbGFncy5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbnM6IFVwZGF0ZVZlcnNpb25PcHRpb25zO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayB1cGRhdGVWZXJzaW9ufTogdGhlIGdlbmVyaWMgcmVsZWFzZSBvcHRpb25zIHBsdXMgdGhlIHBsdWdpbidzIG93bi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVWZXJzaW9uT3B0aW9ucyBleHRlbmRzIEdlbmVyaWNVcGRhdGVWZXJzaW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbiBleHBsaWNpdCBgbWluQXBwVmVyc2lvbmAgdG8gd3JpdGUgaW50byB0aGUgcGx1Z2luJ3MgYG1hbmlmZXN0Lmpzb25gIGFuZCBpdHMgbmV3IGB2ZXJzaW9ucy5qc29uYFxuICAgKiBlbnRyeS4gV2hlbiBzZXQsIGl0IGlzIHVzZWQgdmVyYmF0aW0gYW5kIHRoZSBsYXRlc3QgT2JzaWRpYW4gZGVza3RvcCB2ZXJzaW9uIGlzIG5vdCBmZXRjaGVkIGF0IGFsbC5cbiAgICpcbiAgICogU2V0IHRoaXMgd2hlbiB0aGUgcGx1Z2luIGhhcyBhIGtub3duIG1pbmltdW0gaXQgYWN0dWFsbHkgcmVxdWlyZXMsIHJhdGhlciB0aGFuIHRyYWNraW5nIHdoYXRldmVyXG4gICAqIE9ic2lkaWFuIHJlbGVhc2VkIG1vc3QgcmVjZW50bHkuIE9ubHkgYXBwbGllcyB0byBub24tcHJlLXJlbGVhc2UgdmVyc2lvbnMgKGEgcHJlLXJlbGVhc2UgY29waWVzIHRoZVxuICAgKiBleGlzdGluZyBgbWFuaWZlc3QuanNvbmAgYW5kIG5ldmVyIHdyaXRlcyBgbWluQXBwVmVyc2lvbmApLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0aGUgbGF0ZXN0IE9ic2lkaWFuIGRlc2t0b3AgdmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgbWluQXBwVmVyc2lvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhcmNoaXZlIHRoZSBwbHVnaW4ncyBkZW1vIHZhdWx0IChgZGVtby12YXVsdC9gIGluIHRoZSByZXBvIHJvb3QpIGFzIGEgcmVsZWFzZSBhcnRpZmFjdC4gSWdub3JlZFxuICAgKiB3aGVuIHRoZSByZXBvIGhhcyBubyBgZGVtby12YXVsdC9gIGZvbGRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgYHRydWVgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRBcmNoaXZlRGVtb1ZhdWx0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgZmVlZCB0aGUgT2JzaWRpYW4gZGVza3RvcCBhcHAgdXBkYXRlcyBmcm9tLlxuICpcbiAqIERlbGliZXJhdGVseSBOT1QgdGhlIEdpdEh1YiBgcmVsZWFzZXMvbGF0ZXN0YCBBUEk6IHRoYXQgZW5kcG9pbnQgcmV0dXJucyB0aGUgbmV3ZXN0IHJlbGVhc2Ugb2YgYW55IGtpbmRcbiAqIGluIGBvYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzYCwgaW5jbHVkaW5nIG9uZSB3aG9zZSBvbmx5IGFzc2V0IGlzIHRoZSBBbmRyb2lkIEFQSywgd2hpY2ggbm8gZGVza3RvcFxuICogdXNlciBjYW4gaW5zdGFsbC4gU2VlIHtAbGluayBnZXRMYXRlc3RPYnNpZGlhblZlcnNpb259LlxuICovXG5jb25zdCBERVNLVE9QX1JFTEVBU0VTX0pTT05fVVJMID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzL21hc3Rlci9kZXNrdG9wLXJlbGVhc2VzLmpzb24nO1xuXG4vKipcbiAqIENvcGllcyB0aGUgdXBkYXRlZCBtYW5pZmVzdCBmaWxlIHRvIHRoZSBkaXN0cmlidXRpb24gYnVpbGQgZm9sZGVyLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgY29weSBvcGVyYXRpb24gaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb3B5VXBkYXRlZE1hbmlmZXN0KCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBjcChcbiAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiB9KSxcbiAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuRGlzdEJ1aWxkLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pIH0pLFxuICAgIHsgZm9yY2U6IHRydWUgfVxuICApO1xufVxuXG4vKipcbiAqIFBhcnNlcyB0aGUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBmb3IgYSBwbHVnaW4gcmVsZWFzZTogZXZlcnkgZmxhZyB0aGUgZ2VuZXJpYyBgcGFyc2VWZXJzaW9uQXJndW1lbnRzYFxuICogcmVjb2duaXplcywgcGx1cyB0d28gb2YgdGhlIHBsdWdpbidzIG93bjpcbiAqIC0gYC0tbWluLWFwcC12ZXJzaW9uPTx4Lnkuej5gIFx1MjAxNCB3cml0ZSB0aGlzIGBtaW5BcHBWZXJzaW9uYCBpbnRvIHRoZSBwbHVnaW4ncyBgbWFuaWZlc3QuanNvbmAgYW5kIGl0cyBuZXdcbiAqICAgYHZlcnNpb25zLmpzb25gIGVudHJ5IGluc3RlYWQgb2YgdHJhY2tpbmcgdGhlIGxhdGVzdCBPYnNpZGlhbiBkZXNrdG9wIHZlcnNpb24uXG4gKiAtIGAtLW5vLWRlbW8tdmF1bHRgIFx1MjAxNCBza2lwIGFyY2hpdmluZyB0aGUgcGx1Z2luJ3MgZGVtbyB2YXVsdCAoYGRlbW8tdmF1bHQvYCkgYXMgYSByZWxlYXNlIGFydGlmYWN0LlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gcGFyc2UgKHR5cGljYWxseSBgcHJvY2Vzcy5hcmd2LnNsaWNlKDIpYCkuXG4gKiBAcmV0dXJucyBUaGUge0BsaW5rIFBhcnNlZFZlcnNpb25Bcmd1bWVudHN9IGNvbnRhaW5pbmcgdGhlIHZlcnNpb24gdXBkYXRlIHR5cGUgYW5kIHRoZSBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VWZXJzaW9uQXJndW1lbnRzKCRhcmd1bWVudHM6IHN0cmluZ1tdKTogUGFyc2VkVmVyc2lvbkFyZ3VtZW50cyB7XG4gIGNvbnN0IHsgcG9zaXRpb25hbHMsIHZhbHVlcyB9ID0gcGFyc2VBcmdzKHtcbiAgICBhbGxvd1Bvc2l0aW9uYWxzOiB0cnVlLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25hbWUtcmVwbGFjZW1lbnRzIC0tIGBhcmdzYCBpcyB0aGUgb3B0aW9uIG5hbWUgTm9kZSdzIGBwYXJzZUFyZ3NgIHJlYWRzLlxuICAgIGFyZ3M6ICRhcmd1bWVudHMsXG4gICAgb3B0aW9uczoge1xuICAgICAgLi4uVkVSU0lPTl9BUkdVTUVOVF9PUFRJT05TLFxuICAgICAgJ21pbi1hcHAtdmVyc2lvbic6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICduby1kZW1vLXZhdWx0JzogeyB0eXBlOiAnYm9vbGVhbicgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBvcHRpb25zOiB7XG4gICAgICAuLi50b1VwZGF0ZVZlcnNpb25PcHRpb25zKHZhbHVlcyksXG4gICAgICBtaW5BcHBWZXJzaW9uOiB2YWx1ZXNbJ21pbi1hcHAtdmVyc2lvbiddLFxuICAgICAgc2hvdWxkQXJjaGl2ZURlbW9WYXVsdDogISh2YWx1ZXNbJ25vLWRlbW8tdmF1bHQnXSA/PyBmYWxzZSlcbiAgICB9LFxuICAgIHZlcnNpb25VcGRhdGVUeXBlOiBwb3NpdGlvbmFsc1swXVxuICB9O1xufVxuXG4vKipcbiAqIFJlbGVhc2VzIHRoZSBwbHVnaW4uIFNlZSB0aGUgYEBmaWxlYCBvdmVydmlldyBmb3Igd2hhdCBpdCBhZGRzIHRvIHRoZSBnZW5lcmljIHJlbGVhc2UuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgdG8gcGVyZm9ybSAobWFqb3IsIG1pbm9yLCBwYXRjaCwgcHJlbWFqb3IsIHByZW1pbm9yLCBwcmVwYXRjaCwgcHJlcmVsZWFzZSwgb3IgeC55LnpbLXN1ZmZpeF0pLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIFVwZGF0ZVZlcnNpb25PcHRpb25zfSBjb250cm9sbGluZyB0aGUgcmVsZWFzZSBiZWhhdmlvci5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcmVsZWFzZSBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVZlcnNpb24odmVyc2lvblVwZGF0ZVR5cGU/OiBzdHJpbmcsIG9wdGlvbnM6IFVwZGF0ZVZlcnNpb25PcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qge1xuICAgIG1pbkFwcFZlcnNpb24sXG4gICAgcHJlcGFyZUdpdEh1YlJlbGVhc2UsXG4gICAgc2hvdWxkQXJjaGl2ZURlbW9WYXVsdCA9IHRydWUsXG4gICAgLi4uZ2VuZXJpY09wdGlvbnNcbiAgfSA9IG9wdGlvbnM7XG5cbiAgYXdhaXQgdXBkYXRlVmVyc2lvbkdlbmVyaWModmVyc2lvblVwZGF0ZVR5cGUsIHtcbiAgICAuLi5nZW5lcmljT3B0aW9ucyxcbiAgICBnZXRSZWxlYXNlQXNzZXRQYXRoczogZ2V0UGx1Z2luUmVsZWFzZUFzc2V0UGF0aHMsXG4gICAgYXN5bmMgcHJlcGFyZUdpdEh1YlJlbGVhc2UobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBhd2FpdCBwcmVwYXJlR2l0SHViUmVsZWFzZT8uKG5ld1ZlcnNpb24pO1xuICAgICAgaWYgKHNob3VsZEFyY2hpdmVEZW1vVmF1bHQpIHtcbiAgICAgICAgYXdhaXQgYXJjaGl2ZVBsdWdpbkRlbW9WYXVsdCgpO1xuICAgICAgfVxuICAgIH0sXG4gICAgYXN5bmMgdXBkYXRlVmVyc2lvbkluRXh0cmFGaWxlcyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzRm9yUGx1Z2luKG5ld1ZlcnNpb24sIG1pbkFwcFZlcnNpb24pO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogRmV0Y2hlcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgT2JzaWRpYW4gdGhhdCB0aGUgZGVza3RvcCBhcHAgY2FuIGFjdHVhbGx5IHJ1bi5cbiAqXG4gKiBSZWFkcyB7QGxpbmsgREVTS1RPUF9SRUxFQVNFU19KU09OX1VSTH0sIG5vdCB0aGUgR2l0SHViIGByZWxlYXNlcy9sYXRlc3RgIEFQSS4gVGhlIEFQSSByZXR1cm5zIHRoZSBuZXdlc3RcbiAqIHJlbGVhc2Ugb2YgQU5ZIGtpbmQsIHNvIHdoZW5ldmVyIGEgbW9iaWxlLW9ubHkgcmVsZWFzZSAoYW4gQVBLLW9ubHkgYXNzZXQpIGlzIG5ld2VyIHRoYW4gdGhlIGRlc2t0b3Agb25lLFxuICogaXQgcmVwb3J0cyBhIHZlcnNpb24gdGhhdCBkb2VzIG5vdCBleGlzdCBmb3IgZGVza3RvcC4gQSBwbHVnaW4gcmVsZWFzZWQgaW4gdGhhdCB3aW5kb3cgZ2V0cyBhXG4gKiBgbWluQXBwVmVyc2lvbmAgbm8gZGVza3RvcCB1c2VyIGNhbiBzYXRpc2Z5LCBhbmQgT2JzaWRpYW4gc2lsZW50bHkga2VlcHMgb2ZmZXJpbmcgdGhlbSB0aGUgcHJldmlvdXNcbiAqIHJlbGVhc2UgaW5zdGVhZCBcdTIwMTQgdGhlIHJlbGVhc2Ugc3VjY2VlZHMgYW5kIHJlYWNoZXMgbm9ib2R5LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGxhdGVzdCBPYnNpZGlhbiB2ZXJzaW9uIGF2YWlsYWJsZSBmb3IgZGVza3RvcC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TGF0ZXN0T2JzaWRpYW5WZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gV2UgcnVuIHRoaXMgb3V0c2lkZSBvZiBPYnNpZGlhbiwgc28gd2UgZG9uJ3QgaGF2ZSBgcmVxdWVzdFVybCgpYC5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChERVNLVE9QX1JFTEVBU0VTX0pTT05fVVJMKTtcbiAgY29uc3QgZGVza3RvcFJlbGVhc2VzSnNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBQYXJ0aWFsPERlc2t0b3BSZWxlYXNlc0pzb24+O1xuICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUoZGVza3RvcFJlbGVhc2VzSnNvbi5sYXRlc3RWZXJzaW9uLCAnQ291bGQgbm90IGZpbmQgdGhlIGxhdGVzdCBkZXNrdG9wIE9ic2lkaWFuIHZlcnNpb24nKTtcbn1cbi8qKlxuICogVGhlIHBsdWdpbidzIHJlbGVhc2UgYXNzZXRzOiBldmVyeSBmaWxlIGluIGBkaXN0L2J1aWxkYC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYXNzZXQgcGF0aHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldFBsdWdpblJlbGVhc2VBc3NldFBhdGhzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgY29uc3QgYnVpbGRGb2xkZXIgPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCB9KTtcbiAgY29uc3QgZmlsZU5hbWVzID0gYXdhaXQgcmVhZGRpclBvc2l4KGJ1aWxkRm9sZGVyKTtcbiAgcmV0dXJuIGZpbGVOYW1lcy5tYXAoKGZpbGVOYW1lKSA9PiBqb2luKGJ1aWxkRm9sZGVyLCBmaWxlTmFtZSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiB1cGRhdGVWZXJzaW9uSW5GaWxlc0ZvclBsdWdpbihuZXdWZXJzaW9uOiBzdHJpbmcsIG1pbkFwcFZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtYW5pZmVzdEJldGFKc29uUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RCZXRhSnNvbiB9KTtcbiAgaWYgKGlzUHJlUmVsZWFzZShuZXdWZXJzaW9uKSkge1xuICAgIGF3YWl0IGNwKFxuICAgICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24gfSksXG4gICAgICBtYW5pZmVzdEJldGFKc29uUGF0aCxcbiAgICAgIHsgZm9yY2U6IHRydWUgfVxuICAgICk7XG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KHtcbiAgICAgIGVkaXRGdW5jdGlvbjogKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgIG1hbmlmZXN0LnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgICAgfSxcbiAgICAgIHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0QmV0YUpzb25cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZXNvbHZlZE1pbkFwcFZlcnNpb24gPSBtaW5BcHBWZXJzaW9uID8/IGF3YWl0IGdldExhdGVzdE9ic2lkaWFuVmVyc2lvbigpO1xuXG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KHtcbiAgICAgIGVkaXRGdW5jdGlvbjogKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgIG1hbmlmZXN0Lm1pbkFwcFZlcnNpb24gPSByZXNvbHZlZE1pbkFwcFZlcnNpb247XG4gICAgICAgIG1hbmlmZXN0LnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgICAgfSxcbiAgICAgIHBhdGg6IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvblxuICAgIH0pO1xuXG4gICAgYXdhaXQgZWRpdEpzb248UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oe1xuICAgICAgZWRpdEZ1bmN0aW9uOiAodmVyc2lvbnMpID0+IHtcbiAgICAgICAgdmVyc2lvbnNbbmV3VmVyc2lvbl0gPSByZXNvbHZlZE1pbkFwcFZlcnNpb247XG4gICAgICB9LFxuICAgICAgcGF0aDogT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuVmVyc2lvbnNKc29uXG4gICAgfSk7XG5cbiAgICBpZiAoZXhpc3RzU3luYyhtYW5pZmVzdEJldGFKc29uUGF0aCkpIHtcbiAgICAgIGF3YWl0IHJtKG1hbmlmZXN0QmV0YUpzb25QYXRoKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBjb3B5VXBkYXRlZE1hbmlmZXN0KCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztB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
@@ -0,0 +1,11 @@
1
+ /// <reference path="./index.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Vitest setup file for Obsidian plugins built on `@mnaoumov/obsidian-lib`.
6
+ *
7
+ * Add it to your Vitest config's `setupFiles` (or import it from another setup file). Before each
8
+ * test it resets the generic shared-state slot, the `__obsidianDevUtils` bag and the library contexts, and enables async-operation tracking; after each test it
9
+ * disables tracking, so tests can `await waitForAllAsyncOperations()` against isolated state.
10
+ */
11
+ export {};
@@ -0,0 +1,53 @@
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
+ const existingProcess = globalThis.process;
22
+ if (!existingProcess) {
23
+ globalThis.process = browserProcess;
24
+ return;
25
+ }
26
+ if (existingProcess.versions?.node) {
27
+ return;
28
+ }
29
+ const existingProcessRecord = existingProcess;
30
+ for (const [key, value] of Object.entries(browserProcess)) {
31
+ existingProcessRecord[key] ??= value;
32
+ }
33
+ existingProcessRecord["browser"] = true;
34
+ }
35
+
36
+ (function initEsm() {
37
+ ensureDisposeSymbols();
38
+ ensureBrowserProcess();
39
+ })();
40
+ })();
41
+
42
+ import {
43
+ afterAll,
44
+ afterEach,
45
+ beforeEach
46
+ } from "vitest";
47
+ import { setup } from "./setup.mjs";
48
+ setup({
49
+ afterAll,
50
+ afterEach,
51
+ beforeEach
52
+ });
53
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3ZpdGVzdC1zZXR1cC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFZpdGVzdCBzZXR1cCBmaWxlIGZvciBPYnNpZGlhbiBwbHVnaW5zIGJ1aWx0IG9uIGBAbW5hb3Vtb3Yvb2JzaWRpYW4tbGliYC5cbiAqXG4gKiBBZGQgaXQgdG8geW91ciBWaXRlc3QgY29uZmlnJ3MgYHNldHVwRmlsZXNgIChvciBpbXBvcnQgaXQgZnJvbSBhbm90aGVyIHNldHVwIGZpbGUpLiBCZWZvcmUgZWFjaFxuICogdGVzdCBpdCByZXNldHMgdGhlIGdlbmVyaWMgc2hhcmVkLXN0YXRlIHNsb3QsIHRoZSBgX19vYnNpZGlhbkRldlV0aWxzYCBiYWcgYW5kIHRoZSBsaWJyYXJ5IGNvbnRleHRzLCBhbmQgZW5hYmxlcyBhc3luYy1vcGVyYXRpb24gdHJhY2tpbmc7IGFmdGVyIGVhY2ggdGVzdCBpdFxuICogZGlzYWJsZXMgdHJhY2tpbmcsIHNvIHRlc3RzIGNhbiBgYXdhaXQgd2FpdEZvckFsbEFzeW5jT3BlcmF0aW9ucygpYCBhZ2FpbnN0IGlzb2xhdGVkIHN0YXRlLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBUaGluIFZpdGVzdCBzZXR1cC1maWxlIGdsdWU7IHNldHVwIGlzIHVuaXQtdGVzdGVkIHNlcGFyYXRlbHkuICovXG5pbXBvcnQge1xuICBhZnRlckFsbCxcbiAgYWZ0ZXJFYWNoLFxuICBiZWZvcmVFYWNoXG59IGZyb20gJ3ZpdGVzdCc7XG5cbmltcG9ydCB7IHNldHVwIH0gZnJvbSAnLi9zZXR1cC50cyc7XG5cbnNldHVwKHtcbiAgYWZ0ZXJBbGwsXG4gIGFmdGVyRWFjaCxcbiAgYmVmb3JlRWFjaFxufSk7XG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLGFBQWE7QUFFdEIsTUFBTTtBQUFBLEVBQ0o7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUNGLENBQUM7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,4 @@
1
+ import { createJiti } from 'jiti';
2
+ const jiti = createJiti(import.meta.url);
3
+ const { config } = await jiti.import('./scripts/markdownlint-cli2-config.ts');
4
+ export default config;
@@ -0,0 +1,4 @@
1
+ import { createJiti } from 'jiti';
2
+ const jiti = createJiti(import.meta.url);
3
+ const { config } = await jiti.import('./scripts/nano-staged-config.ts');
4
+ export default config;
@@ -0,0 +1,3 @@
1
+ import { config } from './scripts/commitlint-config.ts';
2
+
3
+ export default config;
@@ -0,0 +1,26 @@
1
+ {
2
+ "typescript": {
3
+ "bracePosition": "sameLine",
4
+ "constructSignature.spaceAfterNewKeyword": true,
5
+ "constructorType.spaceAfterNewKeyword": true,
6
+ "exportDeclaration.forceMultiLine": "whenMultiple",
7
+ "functionExpression.spaceAfterFunctionKeyword": true,
8
+ "importDeclaration.forceMultiLine": "whenMultiple",
9
+ "lineWidth": 1000,
10
+ "quoteStyle": "alwaysSingle",
11
+ "trailingCommas": "never"
12
+ },
13
+ "json": {},
14
+ "markdown": {},
15
+ // dprint respects .gitignore by default (--no-gitignore opts out), so dist and node_modules need no
16
+ // Entry here. Only paths git does NOT ignore belong below.
17
+ "excludes": [
18
+ "**/*-lock.json",
19
+ "**/*.md"
20
+ ],
21
+ "plugins": [
22
+ "https://plugins.dprint.dev/typescript-0.93.3.wasm",
23
+ "https://plugins.dprint.dev/json-0.19.4.wasm",
24
+ "https://plugins.dprint.dev/markdown-0.17.8.wasm"
25
+ ]
26
+ }
@@ -0,0 +1,3 @@
1
+ import { configs } from './scripts/eslint-config.ts';
2
+
3
+ export default configs;
@@ -0,0 +1,4 @@
1
+ import { buildClean } from '@mnaoumov/typescript-dev-toolkit/build';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+
4
+ await wrapCliTask(() => buildClean());
@@ -0,0 +1,4 @@
1
+ import { buildCompileSvelte } from '@mnaoumov/typescript-dev-toolkit/build';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+
4
+ await wrapCliTask(() => buildCompileSvelte());
@@ -0,0 +1,4 @@
1
+ import { buildCompileTypeScript } from '@mnaoumov/typescript-dev-toolkit/build';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+
4
+ await wrapCliTask(() => buildCompileTypeScript());
@@ -0,0 +1,4 @@
1
+ import { buildCompile } from '@mnaoumov/typescript-dev-toolkit/build';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+
4
+ await wrapCliTask(() => buildCompile());
@@ -0,0 +1,4 @@
1
+ import { buildTemplates } from '@mnaoumov/typescript-dev-toolkit/build';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+
4
+ await wrapCliTask(() => buildTemplates());
@@ -0,0 +1,4 @@
1
+ import { build } from '@mnaoumov/obsidian-dev-toolkit/bundlers/esbuild';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+
4
+ await wrapCliTask(() => build());
@@ -0,0 +1,4 @@
1
+ import { dev } from '@mnaoumov/obsidian-dev-toolkit/bundlers/esbuild';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+
4
+ await wrapCliTask(() => dev());
@@ -0,0 +1,3 @@
1
+ import { obsidianDevUtilsConfig } from '@mnaoumov/typescript-dev-toolkit/commitlint-config';
2
+
3
+ export const config = obsidianDevUtilsConfig;
@@ -0,0 +1,10 @@
1
+ import type { Linter } from 'eslint';
2
+
3
+ import { defineEslintConfigs } from '@mnaoumov/obsidian-dev-toolkit/linters/eslint-config';
4
+
5
+ export const configs: Linter.Config[] = defineEslintConfigs({
6
+ // Pass `customConfigs()` to add plugin-specific rules, e.g. brand names for `obsidianmd/ui/sentence-case`:
7
+ // customConfigs() {
8
+ // return defineConfig({ rules: { 'obsidianmd/ui/sentence-case': ['error', { brands: ['My Plugin'] }] } });
9
+ // }
10
+ });
@@ -0,0 +1,8 @@
1
+ import process from 'node:process';
2
+
3
+ import { format } from '@mnaoumov/obsidian-dev-toolkit/formatters/dprint';
4
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
5
+
6
+ const [, , ...paths] = process.argv;
7
+
8
+ await wrapCliTask(() => format({ paths, rewrite: false }));
@@ -0,0 +1,8 @@
1
+ import process from 'node:process';
2
+
3
+ import { format } from '@mnaoumov/obsidian-dev-toolkit/formatters/dprint';
4
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
5
+
6
+ const [, , ...paths] = process.argv;
7
+
8
+ await wrapCliTask(() => format({ paths }));
@@ -0,0 +1,10 @@
1
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
2
+ import {
3
+ gate,
4
+ parseGateArguments
5
+ } from '@mnaoumov/typescript-dev-toolkit/gate';
6
+ import process from 'node:process';
7
+
8
+ const [, , ...$arguments] = process.argv;
9
+ const options = parseGateArguments($arguments);
10
+ await wrapCliTask(() => gate(options));
@@ -0,0 +1,8 @@
1
+ import process from 'node:process';
2
+
3
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
4
+ import { spellcheck } from '@mnaoumov/typescript-dev-toolkit/linters/cspell';
5
+
6
+ const [, , ...paths] = process.argv;
7
+
8
+ await wrapCliTask(() => spellcheck({ paths }));
@@ -0,0 +1,8 @@
1
+ import process from 'node:process';
2
+
3
+ import { lint } from '@mnaoumov/obsidian-dev-toolkit/linters/eslint';
4
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
5
+
6
+ const [, , ...paths] = process.argv;
7
+
8
+ await wrapCliTask(() => lint({ paths, shouldFix: true }));
@@ -0,0 +1,8 @@
1
+ import process from 'node:process';
2
+
3
+ import { lint } from '@mnaoumov/obsidian-dev-toolkit/linters/eslint';
4
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
5
+
6
+ const [, , ...paths] = process.argv;
7
+
8
+ await wrapCliTask(() => lint({ paths }));
@@ -0,0 +1,8 @@
1
+ import process from 'node:process';
2
+
3
+ import { lint } from '@mnaoumov/obsidian-dev-toolkit/linters/markdownlint';
4
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
5
+
6
+ const [, , ...paths] = process.argv;
7
+
8
+ await wrapCliTask(() => lint({ paths, shouldFix: true }));
@@ -0,0 +1,8 @@
1
+ import process from 'node:process';
2
+
3
+ import { lint } from '@mnaoumov/obsidian-dev-toolkit/linters/markdownlint';
4
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
5
+
6
+ const [, , ...paths] = process.argv;
7
+
8
+ await wrapCliTask(() => lint({ paths }));
@@ -0,0 +1,25 @@
1
+ import {
2
+ CliTaskResult,
3
+ wrapCliTask
4
+ } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
5
+ import {
6
+ findOverExposure,
7
+ formatOverExposureFindings
8
+ } from '@mnaoumov/typescript-dev-toolkit/linters/over-exposure';
9
+ import process from 'node:process';
10
+ import { parseArgs } from 'node:util';
11
+
12
+ const [, , ...args] = process.argv;
13
+
14
+ const { values } = parseArgs({
15
+ args,
16
+ options: {
17
+ force: { type: 'boolean' }
18
+ }
19
+ });
20
+
21
+ await wrapCliTask(() => {
22
+ const findings = findOverExposure({ projectFolder: process.cwd(), shouldFix: true, shouldForce: values.force ?? false });
23
+ process.stdout.write(formatOverExposureFindings(findings, { baseFolder: process.cwd() }));
24
+ return CliTaskResult.Success(findings.every((finding) => finding.wasFixed));
25
+ });
@@ -0,0 +1,15 @@
1
+ import {
2
+ CliTaskResult,
3
+ wrapCliTask
4
+ } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
5
+ import {
6
+ findOverExposure,
7
+ formatOverExposureFindings
8
+ } from '@mnaoumov/typescript-dev-toolkit/linters/over-exposure';
9
+ import process from 'node:process';
10
+
11
+ await wrapCliTask(() => {
12
+ const findings = findOverExposure({ projectFolder: process.cwd() });
13
+ process.stdout.write(formatOverExposureFindings(findings, { baseFolder: process.cwd() }));
14
+ return CliTaskResult.Success(findings.length === 0);
15
+ });
@@ -0,0 +1,3 @@
1
+ import { obsidianMarkdownlintCli2Config } from '@mnaoumov/obsidian-dev-toolkit/linters/markdownlint-cli2-config';
2
+
3
+ export const config = obsidianMarkdownlintCli2Config;
@@ -0,0 +1,3 @@
1
+ import { getNanoStagedConfig } from '@mnaoumov/typescript-dev-toolkit/nano-staged-config';
2
+
3
+ export const config = getNanoStagedConfig();
@@ -0,0 +1,4 @@
1
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
2
+ import { testCoverage } from '@mnaoumov/typescript-dev-toolkit/test-runners/vitest';
3
+
4
+ await wrapCliTask(() => testCoverage());
@@ -0,0 +1,4 @@
1
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
2
+ import { testWatch } from '@mnaoumov/typescript-dev-toolkit/test-runners/vitest';
3
+
4
+ await wrapCliTask(() => testWatch());
@@ -0,0 +1,4 @@
1
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
2
+ import { test } from '@mnaoumov/typescript-dev-toolkit/test-runners/vitest';
3
+
4
+ await wrapCliTask(() => test());
@@ -0,0 +1,10 @@
1
+ import {
2
+ parseVersionArguments,
3
+ updateVersion
4
+ } from '@mnaoumov/obsidian-dev-toolkit/version';
5
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
6
+ import process from 'node:process';
7
+
8
+ const [, , ...$arguments] = process.argv;
9
+ const { options, versionUpdateType } = parseVersionArguments($arguments);
10
+ await wrapCliTask(() => updateVersion(versionUpdateType, options));
@@ -0,0 +1,3 @@
1
+ import { defineObsidianPluginVitestConfig } from '@mnaoumov/obsidian-dev-toolkit/test-runners/vitest-config';
2
+
3
+ export const config = defineObsidianPluginVitestConfig();
@@ -0,0 +1,3 @@
1
+ import { config } from './scripts/vitest-config.ts';
2
+
3
+ export default config;
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/formatters/dprint.cjs",
3
+ "module": "../../dist/lib/esm/formatters/dprint.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/formatters/dprint.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/formatters/index.cjs",
3
+ "module": "../../dist/lib/esm/formatters/index.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/formatters/index.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/lib/cjs/formatters/index.cjs",
3
+ "module": "../dist/lib/esm/formatters/index.mjs",
4
+ "type": "module",
5
+ "types": "../dist/lib/cjs/formatters/index.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/linters/eslint.cjs",
3
+ "module": "../../dist/lib/esm/linters/eslint.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/linters/eslint.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../dist/lib/cjs/linters/eslint-config.cjs",
3
+ "module": "../../dist/lib/esm/linters/eslint-config.mjs",
4
+ "type": "module",
5
+ "types": "../../dist/lib/cjs/linters/eslint-config.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../dist/lib/cjs/linters/eslint-rules/index.cjs",
3
+ "module": "../../../dist/lib/esm/linters/eslint-rules/index.mjs",
4
+ "type": "module",
5
+ "types": "../../../dist/lib/cjs/linters/eslint-rules/index.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../dist/lib/cjs/linters/eslint-rules/manifest-description.cjs",
3
+ "module": "../../../dist/lib/esm/linters/eslint-rules/manifest-description.mjs",
4
+ "type": "module",
5
+ "types": "../../../dist/lib/cjs/linters/eslint-rules/manifest-description.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../dist/lib/cjs/linters/eslint-rules/manifest-helpers.cjs",
3
+ "module": "../../../dist/lib/esm/linters/eslint-rules/manifest-helpers.mjs",
4
+ "type": "module",
5
+ "types": "../../../dist/lib/cjs/linters/eslint-rules/manifest-helpers.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../dist/lib/cjs/linters/eslint-rules/manifest-id.cjs",
3
+ "module": "../../../dist/lib/esm/linters/eslint-rules/manifest-id.mjs",
4
+ "type": "module",
5
+ "types": "../../../dist/lib/cjs/linters/eslint-rules/manifest-id.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../dist/lib/cjs/linters/eslint-rules/manifest-name.cjs",
3
+ "module": "../../../dist/lib/esm/linters/eslint-rules/manifest-name.mjs",
4
+ "type": "module",
5
+ "types": "../../../dist/lib/cjs/linters/eslint-rules/manifest-name.d.cts"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../dist/lib/cjs/linters/eslint-rules/manifest-schema.cjs",
3
+ "module": "../../../dist/lib/esm/linters/eslint-rules/manifest-schema.mjs",
4
+ "type": "module",
5
+ "types": "../../../dist/lib/cjs/linters/eslint-rules/manifest-schema.d.cts"
6
+ }