@mnaoumov/create-obsidian-plugin 1.0.2 → 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 (489) hide show
  1. package/README.md +38 -7
  2. package/dist/main.js +1068 -333
  3. package/package.json +13 -5
  4. package/src/main.ts +118 -11
  5. package/templates/default/.github/ISSUE_TEMPLATE/config.yml.ejs +4 -0
  6. package/templates/default/.github/workflows/attest-release-assets.yml.ejs +1 -11
  7. package/templates/default/.github/workflows/ci.yml_framework.ejs +19 -0
  8. package/templates/default/.github/workflows/ci.yml_framework@job-permissions_measured-coverage-badge.ejs +3 -0
  9. package/templates/default/.github/workflows/ci.yml_framework@with_measured-coverage-badge.ejs +1 -0
  10. package/templates/default/.github/workflows/{ci.yml.ejs → ci.yml_standalone.ejs} +1 -1
  11. package/templates/default/.github/workflows/release.yml_framework.ejs +19 -0
  12. package/templates/default/.github/workflows/{release.yml.ejs → release.yml_standalone.ejs} +1 -1
  13. package/templates/default/.gitignore_common.ejs +1 -0
  14. package/templates/default/.gitignore_wdio-obsidian.ejs +2 -0
  15. package/templates/default/.nvmrc.ejs +1 -0
  16. package/templates/default/.prettierignore.ejs +1 -0
  17. package/templates/default/.prettierignore@ignores_docs-showcase.ejs +3 -0
  18. package/templates/default/{CONTRIBUTING.md@demo-vault_dev-utils.ejs → CONTRIBUTING.md@demo-vault_framework.ejs} +1 -1
  19. package/templates/default/{README.md@demo-vault_dev-utils.ejs → README.md@demo-vault_framework.ejs} +1 -1
  20. package/templates/default/README.md@preset_docs-showcase.ejs +4 -0
  21. package/templates/default/{README.md@preset_dev-utils.ejs → README.md@preset_framework.ejs} +1 -1
  22. package/templates/default/biome.jsonc_framework.ejs +16 -0
  23. package/templates/default/biome.jsonc_framework@excludes_docs-showcase.ejs +1 -0
  24. package/templates/default/{biome.jsonc.ejs → biome.jsonc_standalone.ejs} +1 -1
  25. package/templates/default/cspell.json.ejs +10 -2
  26. package/templates/default/cspell.json@ignore-paths_docs-showcase.ejs +1 -0
  27. package/templates/default/demo-vault/.gitignore.ejs +4 -4
  28. package/templates/default/demo-vault/00 Start.md.ejs +1 -1
  29. package/templates/default/demo-vault/01 Sample commands.md.ejs +4 -4
  30. package/templates/default/demo-vault/02 Settings.md.ejs +2 -2
  31. package/templates/default/demo-vault/03 WebAssembly.md.ejs +2 -2
  32. package/templates/default/demo-vault/README.md.ejs +1 -1
  33. package/templates/default/demo-vault/_assets/CodeScriptToolkit/demoSetup.ts.ejs +1 -1
  34. package/templates/default/demo-vault/_assets/CodeScriptToolkit/startup.ts.ejs +4 -4
  35. package/templates/default/dprint.json_framework.ejs +10 -0
  36. package/templates/default/dprint.json_framework@excludes_docs-showcase.ejs +2 -0
  37. package/templates/default/dprint.json_standalone.ejs +1 -0
  38. package/templates/default/eslint.config.mts_standalone.ejs +9 -0
  39. package/templates/default/jest.config.ts_framework.ejs +31 -0
  40. package/templates/default/{scripts/rollup.config.ts@lint-out-dir_dev-utils.ejs → jest.config.ts_framework@lint-root-dir_framework.ejs} +1 -1
  41. package/templates/default/jest.config.ts_framework@ts-jest-tsconfig_solid.ejs +8 -0
  42. package/templates/default/{jest.config.ts.ejs → jest.config.ts_standalone.ejs} +0 -1
  43. package/templates/default/package.json@targets_parcel-targets.ejs +31 -0
  44. package/templates/default/package.json@targets_parcel.ejs +2 -33
  45. package/templates/default/parcel-transformer-inline-imports.cjs.ejs +1 -1
  46. package/templates/default/prettier.config.mjs_framework.ejs +3 -0
  47. package/templates/default/scripts/build-clean.ts.ejs +2 -2
  48. package/templates/default/scripts/build-compile-typescript.ts.ejs +14 -0
  49. package/templates/default/scripts/build-compile.ts.ejs +2 -2
  50. package/templates/default/scripts/build-options.ts.ejs +9 -0
  51. package/templates/default/scripts/build-styles.ts.ejs +4 -7
  52. package/templates/default/scripts/build.ts.ejs +2 -2
  53. package/templates/default/scripts/build.ts@bundler_adapter-cli.ejs +11 -0
  54. package/templates/default/scripts/build.ts@bundler_adapter-cli@run_rollup.ejs +1 -0
  55. package/templates/default/scripts/build.ts@bundler_adapter-cli@run_vite.ejs +1 -0
  56. package/templates/default/scripts/build.ts@bundler_adapter-cli@run_webpack.ejs +1 -0
  57. package/templates/default/scripts/build.ts@bundler_cli-bundler.ejs +1 -1
  58. package/templates/default/scripts/build.ts@bundler_cli-bundler@import_tailwind.ejs +0 -1
  59. package/templates/default/scripts/build.ts@bundler_esbuild.ejs +2 -2
  60. package/templates/default/scripts/build.ts@bundler_esbuild@preset_framework.ejs +5 -0
  61. package/templates/default/scripts/build.ts@bundler_parcel-adapter.ejs +5 -0
  62. package/templates/default/scripts/commit.ts_framework.ejs +3 -0
  63. package/templates/default/scripts/commitlint-config.ts_framework.ejs +1 -0
  64. package/templates/default/scripts/demo-vault-global-setup.ts.ejs +7 -4
  65. package/templates/default/scripts/dev.ts.ejs +1 -1
  66. package/templates/default/scripts/dev.ts@bundler_adapter-cli.ejs +6 -0
  67. package/templates/default/scripts/dev.ts@bundler_adapter-cli@run_rollup.ejs +3 -0
  68. package/templates/default/scripts/dev.ts@bundler_adapter-cli@run_vite.ejs +3 -0
  69. package/templates/default/scripts/dev.ts@bundler_adapter-cli@run_webpack.ejs +3 -0
  70. package/templates/default/scripts/dev.ts@bundler_esbuild.ejs +2 -2
  71. package/templates/default/scripts/dev.ts@bundler_esbuild@preset_framework.ejs +5 -0
  72. package/templates/default/scripts/dev.ts@bundler_parcel-adapter.ejs +5 -0
  73. package/templates/default/scripts/eslint-config.ts.ejs +3 -14
  74. package/templates/default/scripts/eslint-config.ts@ignores_docs-showcase.ejs +4 -0
  75. package/templates/default/scripts/find-overexposed-fix.ts.ejs +4 -4
  76. package/templates/default/scripts/find-overexposed.ts.ejs +3 -3
  77. package/templates/default/scripts/format-check.ts@tool_biome-formatter.ejs +3 -8
  78. package/templates/default/scripts/format-check.ts@tool_biome-formatter@preset_framework.ejs +7 -0
  79. package/templates/default/scripts/format-check.ts@tool_biome-formatter@preset_standalone.ejs +8 -0
  80. package/templates/default/scripts/format-check.ts@tool_dprint.ejs +2 -2
  81. package/templates/default/scripts/format-check.ts@tool_dprint@preset_framework.ejs +7 -0
  82. package/templates/default/scripts/format-check.ts@tool_prettier.ejs +3 -8
  83. package/templates/default/scripts/format-check.ts@tool_prettier@preset_framework.ejs +7 -0
  84. package/templates/default/scripts/format-check.ts@tool_prettier@preset_standalone.ejs +8 -0
  85. package/templates/default/scripts/format.ts@tool_biome-formatter.ejs +3 -8
  86. package/templates/default/scripts/format.ts@tool_biome-formatter@preset_framework.ejs +7 -0
  87. package/templates/default/scripts/format.ts@tool_biome-formatter@preset_standalone.ejs +8 -0
  88. package/templates/default/scripts/format.ts@tool_dprint.ejs +2 -2
  89. package/templates/default/scripts/format.ts@tool_dprint@preset_framework.ejs +7 -0
  90. package/templates/default/scripts/format.ts@tool_prettier.ejs +3 -8
  91. package/templates/default/scripts/format.ts@tool_prettier@preset_framework.ejs +7 -0
  92. package/templates/default/scripts/format.ts@tool_prettier@preset_standalone.ejs +8 -0
  93. package/templates/default/scripts/gate.ts.ejs +3 -3
  94. package/templates/default/scripts/lint-fix.ts.ejs +2 -2
  95. package/templates/default/scripts/lint-fix.ts@tool_biome-linter.ejs +3 -8
  96. package/templates/default/scripts/lint-fix.ts@tool_biome-linter@preset_framework.ejs +7 -0
  97. package/templates/default/scripts/lint-fix.ts@tool_biome-linter@preset_standalone.ejs +8 -0
  98. package/templates/default/scripts/lint-fix.ts@tool_eslint.ejs +2 -2
  99. package/templates/default/scripts/lint-fix.ts@tool_eslint@preset_framework.ejs +7 -0
  100. package/templates/default/scripts/lint-md-fix.ts_framework.ejs +7 -0
  101. package/templates/default/scripts/lint-md.ts_framework.ejs +7 -0
  102. package/templates/default/scripts/lint.ts.ejs +2 -2
  103. package/templates/default/scripts/lint.ts@tool_biome-linter.ejs +3 -8
  104. package/templates/default/scripts/lint.ts@tool_biome-linter@preset_framework.ejs +7 -0
  105. package/templates/default/scripts/lint.ts@tool_biome-linter@preset_standalone.ejs +8 -0
  106. package/templates/default/scripts/lint.ts@tool_eslint.ejs +2 -2
  107. package/templates/default/scripts/lint.ts@tool_eslint@preset_framework.ejs +7 -0
  108. package/templates/default/scripts/{markdownlint-cli2-config.ts_dev-utils.ejs → markdownlint-cli2-config.ts_framework.ejs} +4 -4
  109. package/templates/default/scripts/markdownlint-cli2-config.ts_standalone.ejs +0 -3
  110. package/templates/default/scripts/nano-staged-config.ts_toolkit-nano-staged.ejs +3 -0
  111. package/templates/default/scripts/prepare.ts_framework.ejs +3 -0
  112. package/templates/default/scripts/rollup.config.ts_framework.ejs +49 -0
  113. package/templates/default/scripts/rollup.config.ts_framework@plugin_rollup-json.ejs +2 -0
  114. package/templates/default/scripts/rollup.config.ts_framework@plugin_scss.ejs +3 -0
  115. package/templates/default/scripts/{rollup.config.ts.ejs → rollup.config.ts_standalone.ejs} +4 -4
  116. package/templates/default/scripts/rollup.config.ts_standalone@import_rollup-json.ejs +1 -0
  117. package/templates/default/scripts/rollup.config.ts_standalone@import_scss.ejs +1 -0
  118. package/templates/default/scripts/rollup.config.ts_standalone@unwrap_rollup-json.ejs +1 -0
  119. package/templates/default/scripts/rollup.config.ts_standalone@unwrap_scss.ejs +1 -0
  120. package/templates/default/scripts/spellcheck.ts_framework.ejs +7 -0
  121. package/templates/default/scripts/stylesheet-stub.ts.ejs +1 -1
  122. package/templates/default/scripts/test-coverage.ts.ejs +2 -8
  123. package/templates/default/scripts/test-coverage.ts@tool_jest.ejs +5 -0
  124. package/templates/default/scripts/test-coverage.ts@tool_vitest.ejs +8 -0
  125. package/templates/default/scripts/test-e2e.ts@tool_obsidian-test.ejs +2 -8
  126. package/templates/default/scripts/test-e2e.ts@tool_obsidian-test@preset_framework.ejs +4 -0
  127. package/templates/default/scripts/test-e2e.ts@tool_obsidian-test@preset_standalone.ejs +8 -0
  128. package/templates/default/scripts/test-e2e.ts@tool_wdio-obsidian.ejs +2 -8
  129. package/templates/default/scripts/test-e2e.ts@tool_wdio-obsidian@preset_framework.ejs +5 -0
  130. package/templates/default/scripts/test-e2e.ts@tool_wdio-obsidian@preset_standalone.ejs +8 -0
  131. package/templates/default/scripts/test-integration-android.ts.ejs +2 -2
  132. package/templates/default/scripts/test-integration-demo-vault.ts.ejs +2 -2
  133. package/templates/default/scripts/test-integration-desktop-performance.ts.ejs +2 -2
  134. package/templates/default/scripts/test-integration-desktop.ts.ejs +2 -2
  135. package/templates/default/scripts/test-integration-no-app.ts.ejs +2 -2
  136. package/templates/default/scripts/test-integration.ts.ejs +2 -2
  137. package/templates/default/scripts/test-watch.ts_framework@tool_jest.ejs +5 -0
  138. package/templates/default/scripts/test-watch.ts_framework@tool_vitest.ejs +8 -0
  139. package/templates/default/scripts/test.ts_framework@tool_jest.ejs +5 -0
  140. package/templates/default/scripts/test.ts_framework@tool_vitest.ejs +8 -0
  141. package/templates/default/scripts/{version.ts_dev-utils.ejs → version.ts_framework.ejs} +3 -3
  142. package/templates/default/scripts/vite.config.ts_framework.ejs +10 -0
  143. package/templates/default/scripts/{vite.config.ts.ejs → vite.config.ts_standalone.ejs} +5 -8
  144. package/templates/default/scripts/vitest-config.ts.ejs +3 -2
  145. package/templates/default/scripts/vitest-config.ts@edit-context_docs-showcase.ejs +3 -0
  146. package/templates/default/scripts/webpack.config.ts_framework.ejs +19 -0
  147. package/templates/default/scripts/webpack.config.ts_framework@import_scss.ejs +1 -0
  148. package/templates/default/scripts/webpack.config.ts_framework@plugin_scss.ejs +1 -0
  149. package/templates/default/scripts/webpack.config.ts_framework@rule_scss.ejs +4 -0
  150. package/templates/default/scripts/{webpack.config.ts.ejs → webpack.config.ts_standalone.ejs} +4 -4
  151. package/templates/default/src/demo-vault-buttons.demo-vault.integration.test.ts.ejs +2 -2
  152. package/templates/default/src/demo-vault.no-app.integration.test.ts.ejs +3 -3
  153. package/templates/default/src/docs-showcase.desktop.integration.test.ts.ejs +77 -0
  154. package/templates/default/src/editor-extensions/{sample-state-field.ts_dev-utils.ejs → sample-state-field.ts_framework.ejs} +1 -1
  155. package/templates/default/src/main.ts@import_tailwind.ejs +1 -1
  156. package/templates/default/src/main.ts@import_tailwind@preset_framework.ejs +1 -0
  157. package/templates/default/src/main.ts@import_tailwind@preset_standalone.ejs +1 -0
  158. package/templates/default/src/{plugin-settings-component.test.ts_enhanced.ejs → plugin-settings-component.test.ts_all-in-one.ejs} +4 -4
  159. package/templates/default/src/plugin-settings-component.test.ts_demo.ejs +5 -5
  160. package/templates/default/src/{plugin-settings-component.ts_enhanced.ejs → plugin-settings-component.ts_all-in-one.ejs} +3 -3
  161. package/templates/default/src/plugin-settings-component.ts_demo.ejs +7 -7
  162. package/templates/default/src/{plugin-settings-tab.ts_enhanced.ejs → plugin-settings-tab.ts_all-in-one.ejs} +1 -1
  163. package/templates/default/src/plugin-settings-tab.ts_demo.ejs +3 -3
  164. package/templates/default/src/plugin-settings.ts_demo.ejs +2 -2
  165. package/templates/default/src/{plugin.ts_enhanced.ejs → plugin.ts_all-in-one.ejs} +5 -5
  166. package/templates/default/src/plugin.ts_all-in-one@import2_css-modules.ejs +1 -0
  167. package/templates/default/src/plugin.ts_all-in-one@import2_docs-showcase.ejs +1 -0
  168. package/templates/default/src/plugin.ts_all-in-one@onload_css-modules.ejs +1 -0
  169. package/templates/default/src/plugin.ts_all-in-one@onload_docs-showcase.ejs +3 -0
  170. package/templates/default/src/plugin.ts_demo.ejs +16 -16
  171. package/templates/default/src/plugin.ts_demo@import_css-modules.ejs +1 -0
  172. package/templates/default/src/plugin.ts_demo@onload_css-modules.ejs +1 -0
  173. package/templates/default/src/plugin.ts_standalone.ejs +5 -3
  174. package/templates/default/src/plugin.ts_standalone@import_css-modules.ejs +1 -0
  175. package/templates/default/src/plugin.ts_standalone@onload_css-modules.ejs +1 -0
  176. package/templates/default/src/react-components/{sample-react-component.tsx_dev-utils.ejs → sample-react-component.tsx_framework.ejs} +1 -1
  177. package/templates/default/src/styles/css-modules.d.ts.ejs +9 -3
  178. package/templates/default/src/styles/{main.css_dev-utils.ejs → main.css_framework.ejs} +2 -2
  179. package/templates/default/src/styles/main.module.css.ejs +4 -2
  180. package/templates/default/src/styles/{main.scss_dev-utils.ejs → main.scss_framework.ejs} +2 -2
  181. package/templates/default/src/styles/sample-css-module-command.ts.ejs +30 -0
  182. package/templates/default/src/views/{sample-react-view.tsx_dev-utils.ejs → sample-react-view.tsx_framework.ejs} +1 -1
  183. package/templates/default/src/wasm/answer.ts_wasm-adapter.ejs +18 -0
  184. package/templates/default/{tsconfig.json_dev-utils.ejs → tsconfig.json_framework.ejs} +2 -2
  185. package/templates/default/tsconfig.json_framework@exclude_docs-showcase.ejs +4 -0
  186. package/templates/default/tsconfig.json_framework@include_wdio-obsidian.ejs +1 -0
  187. package/templates/default/tsconfig.json_framework@types_toolkit-styles.ejs +2 -0
  188. package/templates/default/tsconfig.json_framework@types_wasm.ejs +2 -0
  189. package/templates/default/tsconfig.json_standalone.ejs +1 -1
  190. package/templates/default/vitest.config.ts_standalone.ejs +11 -2
  191. package/templates/default/wdio.conf.mts.ejs +5 -0
  192. package/templates/default/wdio.conf.ts.ejs +4 -4
  193. package/templates/docs-showcase/files/src/docs/README.md +511 -0
  194. package/templates/docs-showcase/files/src/docs/entry.d.ts +8 -0
  195. package/templates/docs-showcase/files/src/docs/entry.js +4 -0
  196. package/templates/docs-showcase/files/src/docs/host.ts +449 -0
  197. package/templates/docs-showcase/files/src/docs/index.ts +699 -0
  198. package/templates/docs-showcase/files/src/docs/plugins/editor/communicating-with-editor-extensions/01-intro.ts +21 -0
  199. package/templates/docs-showcase/files/src/docs/plugins/editor/communicating-with-editor-extensions/03-state-field.ts +32 -0
  200. package/templates/docs-showcase/files/src/docs/plugins/editor/decorations/01-widgets.ts +23 -0
  201. package/templates/docs-showcase/files/src/docs/plugins/editor/decorations/02-widgets.ts +20 -0
  202. package/templates/docs-showcase/files/src/docs/plugins/editor/decorations/04-state-fields.ts +57 -0
  203. package/templates/docs-showcase/files/src/docs/plugins/editor/decorations/05-view-plugins.ts +79 -0
  204. package/templates/docs-showcase/files/src/docs/plugins/editor/editor/01-intro.ts +26 -0
  205. package/templates/docs-showcase/files/src/docs/plugins/editor/editor/03-replace-current-selection.ts +26 -0
  206. package/templates/docs-showcase/files/src/docs/plugins/editor/markdown-post-processing/01-intro.ts +39 -0
  207. package/templates/docs-showcase/files/src/docs/plugins/editor/state-fields/01-defining-state-effects.ts +19 -0
  208. package/templates/docs-showcase/files/src/docs/plugins/editor/state-fields/02-defining-a-state-field.ts +35 -0
  209. package/templates/docs-showcase/files/src/docs/plugins/editor/state-fields/04-dispatching-state-effects.ts +34 -0
  210. package/templates/docs-showcase/files/src/docs/plugins/editor/state-management/01-state-changes.ts +21 -0
  211. package/templates/docs-showcase/files/src/docs/plugins/editor/state-management/02-state-changes.ts +23 -0
  212. package/templates/docs-showcase/files/src/docs/plugins/editor/view-plugins/01-creating-a-view-plugin.ts +36 -0
  213. package/templates/docs-showcase/files/src/docs/plugins/events/01-intro.ts +21 -0
  214. package/templates/docs-showcase/files/src/docs/plugins/getting-started/anatomy-of-a-plugin/01-intro.ts +22 -0
  215. package/templates/docs-showcase/files/src/docs/plugins/getting-started/anatomy-of-a-plugin/02-plugin-lifecycle.ts +22 -0
  216. package/templates/docs-showcase/files/src/docs/plugins/getting-started/build-a-plugin/06-step-5-update-the-source-code.ts +19 -0
  217. package/templates/docs-showcase/files/src/docs/plugins/getting-started/build-a-plugin/07-step-5-update-the-source-code.ts +21 -0
  218. package/templates/docs-showcase/files/src/docs/plugins/getting-started/mobile-development/03-platform-specific-features.ts +25 -0
  219. package/templates/docs-showcase/files/src/docs/plugins/getting-started/use-react-in-your-plugin/03-configure-your-plugin.ts +23 -0
  220. package/templates/docs-showcase/files/src/docs/plugins/guides/build-a-bases-view/01-step-1-sample-plugin-setup.ts +18 -0
  221. package/templates/docs-showcase/files/src/docs/plugins/guides/build-a-bases-view/02-step-2-create-and-register-the-bases-vie.ts +46 -0
  222. package/templates/docs-showcase/files/src/docs/plugins/guides/build-a-bases-view/03-step-3-add-configuration.ts +40 -0
  223. package/templates/docs-showcase/files/src/docs/plugins/guides/defer-views/04-accessing-your-customview-without-reveal.ts +26 -0
  224. package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/01-overview.ts +26 -0
  225. package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/02-overview.ts +30 -0
  226. package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/03-automatic-resource-management-with-compo.ts +26 -0
  227. package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/04-registerevent-eventref.ts +22 -0
  228. package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/05-registerinterval-id.ts +21 -0
  229. package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/06-registerdomevent-el-event-handler.ts +20 -0
  230. package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/08-understanding-the-lifecycle-of-objects.ts +29 -0
  231. package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/14-componentized-modal-example.ts +37 -0
  232. package/templates/docs-showcase/files/src/docs/plugins/guides/optimize-plugin-load-time/01-option-a-check-if-the-layout-is-ready.ts +29 -0
  233. package/templates/docs-showcase/files/src/docs/plugins/guides/optimize-plugin-load-time/02-option-b-register-the-handler-once-the-l.ts +27 -0
  234. package/templates/docs-showcase/files/src/docs/plugins/guides/store-secrets/03-step-3-retrieve-the-secret-value.ts +22 -0
  235. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/01-use-setheading-instead-of-a-h1-h2.ts +20 -0
  236. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/03-clean-up-resources-when-plugin-unloads.ts +23 -0
  237. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/04-avoid-accessing-workspace-activeleaf-dir.ts +24 -0
  238. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/05-avoid-accessing-workspace-activeleaf-dir.ts +22 -0
  239. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/10-avoid-iterating-all-files-to-find-a-file.ts +20 -0
  240. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/11-avoid-iterating-all-files-to-find-a-file.ts +20 -0
  241. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/13-use-normalizepath-to-clean-up-user-defin.ts +18 -0
  242. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/15-no-hardcoded-styling.ts +21 -0
  243. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/16-no-hardcoded-styling.ts +19 -0
  244. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/17-no-hardcoded-styling.ts +14 -0
  245. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/18-prefer-async-await-over-promise.ts +24 -0
  246. package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/19-prefer-async-await-over-promise.ts +27 -0
  247. package/templates/docs-showcase/files/src/docs/plugins/user-interface/commands/01-intro.ts +25 -0
  248. package/templates/docs-showcase/files/src/docs/plugins/user-interface/commands/03-editor-commands.ts +27 -0
  249. package/templates/docs-showcase/files/src/docs/plugins/user-interface/commands/05-hot-keys.ts +25 -0
  250. package/templates/docs-showcase/files/src/docs/plugins/user-interface/context-menus/01-intro.ts +41 -0
  251. package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/02-create-html-elements-using-createel.ts +19 -0
  252. package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/03-create-html-elements-using-createel.ts +21 -0
  253. package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/04-style-your-elements.ts +14 -0
  254. package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/05-style-your-elements.ts +21 -0
  255. package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/06-conditional-styles.ts +19 -0
  256. package/templates/docs-showcase/files/src/docs/plugins/user-interface/icons/01-use-icons.ts +20 -0
  257. package/templates/docs-showcase/files/src/docs/plugins/user-interface/icons/02-use-icons.ts +14 -0
  258. package/templates/docs-showcase/files/src/docs/plugins/user-interface/icons/03-add-your-own-icon.ts +23 -0
  259. package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/01-intro.ts +20 -0
  260. package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/02-intro.ts +26 -0
  261. package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/03-accept-user-input.ts +38 -0
  262. package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/04-accept-user-input.ts +22 -0
  263. package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/05-select-from-list-of-suggestions.ts +56 -0
  264. package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/06-approximate-string-matching-results.ts +28 -0
  265. package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/07-custom-rendering-of-fuzzy-search-results.ts +41 -0
  266. package/templates/docs-showcase/files/src/docs/plugins/user-interface/ribbon-actions/01-intro.ts +21 -0
  267. package/templates/docs-showcase/files/src/docs/plugins/user-interface/right-to-left/01-use-fallback-values-when-necessary.ts +14 -0
  268. package/templates/docs-showcase/files/src/docs/plugins/user-interface/right-to-left/02-global-selectors.ts +14 -0
  269. package/templates/docs-showcase/files/src/docs/plugins/user-interface/right-to-left/03-icons-are-mirrored-automatically.ts +14 -0
  270. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/09-toggle.ts +20 -0
  271. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/10-text.ts +23 -0
  272. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/11-textarea.ts +23 -0
  273. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/12-number.ts +23 -0
  274. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/13-slider.ts +23 -0
  275. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/14-dropdown.ts +28 -0
  276. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/15-file.ts +27 -0
  277. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/16-folder.ts +23 -0
  278. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/17-color-picker.ts +20 -0
  279. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/18-validating-input.ts +28 -0
  280. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/23-groups.ts +27 -0
  281. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/32-cleanup.ts +30 -0
  282. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/33-no-top-level-heading.ts +27 -0
  283. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/34-headings-only-when-there-are-multiple-se.ts +26 -0
  284. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/36-headings.ts +20 -0
  285. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/38-moment-format.ts +42 -0
  286. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/39-buttons.ts +26 -0
  287. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/40-extra-button.ts +28 -0
  288. package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/41-progress-bar.ts +23 -0
  289. package/templates/docs-showcase/files/src/docs/plugins/user-interface/status-bar/01-intro.ts +20 -0
  290. package/templates/docs-showcase/files/src/docs/plugins/user-interface/status-bar/02-intro.ts +25 -0
  291. package/templates/docs-showcase/files/src/docs/plugins/user-interface/views/01-intro.ts +39 -0
  292. package/templates/docs-showcase/files/src/docs/plugins/user-interface/workspace/05-inspect-the-workspace.ts +23 -0
  293. package/templates/docs-showcase/files/src/docs/plugins/user-interface/workspace/06-leaf-groups.ts +19 -0
  294. package/templates/docs-showcase/files/src/docs/plugins/vault/02-read-files.ts +37 -0
  295. package/templates/docs-showcase/files/src/docs/plugins/vault/03-modify-files.ts +19 -0
  296. package/templates/docs-showcase/files/src/docs/plugins/vault/04-modify-files.ts +22 -0
  297. package/templates/docs-showcase/files/src/docs/plugins/vault/05-is-it-a-file-or-folder.ts +25 -0
  298. package/templates/docs-showcase/files/src/docs/reference/css-variables/about-styling/01-for-plugins.ts +14 -0
  299. package/templates/docs-showcase/files/src/docs/reference/css-variables/about-styling/02-for-themes-and-snippets.ts +14 -0
  300. package/templates/docs-showcase/files/src/docs/reference/css-variables/publish/site-fonts/01-intro.ts +14 -0
  301. package/templates/docs-showcase/files/src/docs/reference/typescript-api/command/callback/01-example.ts +24 -0
  302. package/templates/docs-showcase/files/src/docs/reference/typescript-api/debounce/01-example.ts +24 -0
  303. package/templates/docs-showcase/files/src/docs/reference/typescript-api/vault/process/01-example.ts +22 -0
  304. package/templates/docs-showcase/files/src/docs/themes/app-themes/build-a-theme/05-step-4-change-the-font.ts +14 -0
  305. package/templates/docs-showcase/files/src/docs/themes/app-themes/build-a-theme/06-step-5-change-the-background-color.ts +14 -0
  306. package/templates/docs-showcase/files/src/docs/themes/app-themes/build-a-theme/07-step-6-change-the-input-hover-border-col.ts +14 -0
  307. package/templates/docs-showcase/files/src/docs/themes/app-themes/build-a-theme/08-step-7-discover-css-variables-in-use.ts +14 -0
  308. package/templates/docs-showcase/files/src/docs/themes/app-themes/embed-fonts-and-images-in-your-theme/02-use-data-urls.ts +14 -0
  309. package/templates/docs-showcase/files/src/docs/themes/app-themes/theme-guidelines/01-use-css-variables.ts +14 -0
  310. package/templates/docs-showcase/files/src/docs/themes/obsidian-publish-themes/best-practices-for-publish-themes/01-small-screens-and-mobile-devices.ts +14 -0
  311. package/templates/docs-showcase/files/src/docs/themes/obsidian-publish-themes/build-a-publish-theme/01-intro.ts +14 -0
  312. package/templates/docs-showcase/files/src/docs/tsconfig.json +25 -0
  313. package/templates/docs-showcase/host/entry.d.ts +8 -0
  314. package/templates/docs-showcase/host/entry.js +4 -0
  315. package/templates/docs-showcase/host/host.ts +449 -0
  316. package/templates/docs-showcase/host/tsconfig.json +25 -0
  317. package/templates/docs-showcase/snippets.json +3566 -0
  318. package/templates/official-sample/README.md +9 -0
  319. package/templates/official-sample/files/.editorconfig.vendored +11 -0
  320. package/templates/official-sample/files/.github/workflows/lint.yml.vendored +27 -0
  321. package/templates/official-sample/files/.github/workflows/release.yml.vendored +50 -0
  322. package/templates/official-sample/files/.gitignore.vendored +22 -0
  323. package/templates/official-sample/files/.npmrc.vendored +1 -0
  324. package/templates/official-sample/files/AGENTS.md.vendored +269 -0
  325. package/templates/official-sample/files/LICENSE.vendored +5 -0
  326. package/templates/official-sample/files/README.md.vendored +92 -0
  327. package/templates/official-sample/files/esbuild.config.mjs.vendored +49 -0
  328. package/templates/official-sample/files/eslint.config.mts.vendored +32 -0
  329. package/templates/official-sample/files/manifest.json.vendored +11 -0
  330. package/templates/official-sample/files/package-lock.json.vendored +5053 -0
  331. package/templates/official-sample/files/package.json.vendored +27 -0
  332. package/templates/official-sample/files/src/main.ts.vendored +114 -0
  333. package/templates/official-sample/files/src/settings.ts.vendored +38 -0
  334. package/templates/official-sample/files/styles.css.vendored +8 -0
  335. package/templates/official-sample/files/tsconfig.json.vendored +19 -0
  336. package/templates/official-sample/files/version-bump.mjs.vendored +17 -0
  337. package/templates/official-sample/files/versions.json.vendored +3 -0
  338. package/upstreams.json +35 -0
  339. package/templates/default/dprint.json_dev-utils.ejs +0 -10
  340. package/templates/default/jest.config.ts@lint-root-dir_dev-utils.ejs +0 -1
  341. package/templates/default/scripts/build.ts@bundler_cli-bundler@lint-build-styles_dev-utils.ejs +0 -1
  342. package/templates/default/scripts/build.ts@bundler_esbuild@dev-utils-pre-build_tailwind.ejs +0 -2
  343. package/templates/default/scripts/build.ts@bundler_esbuild@lint-build-styles_dev-utils.ejs +0 -1
  344. package/templates/default/scripts/build.ts@bundler_esbuild@preset_dev-utils.ejs +0 -7
  345. package/templates/default/scripts/commit.ts_dev-utils.ejs +0 -3
  346. package/templates/default/scripts/dev.ts@bundler_esbuild@dev-utils-pre-build_tailwind.ejs +0 -2
  347. package/templates/default/scripts/dev.ts@bundler_esbuild@lint-build-styles_dev-utils.ejs +0 -1
  348. package/templates/default/scripts/dev.ts@bundler_esbuild@preset_dev-utils.ejs +0 -7
  349. package/templates/default/scripts/esbuild-plugins.ts.ejs +0 -20
  350. package/templates/default/scripts/esbuild-plugins.ts@dev-utils-import_vue.ejs +0 -2
  351. package/templates/default/scripts/esbuild-plugins.ts@dev-utils-plugin_vue.ejs +0 -1
  352. package/templates/default/scripts/esbuild-plugins.ts@dev-utils-plugin_wasm.ejs +0 -13
  353. package/templates/default/scripts/format-check.ts@tool_dprint@preset_dev-utils.ejs +0 -7
  354. package/templates/default/scripts/format.ts@tool_dprint@preset_dev-utils.ejs +0 -7
  355. package/templates/default/scripts/lint-fix.ts@tool_eslint@preset_dev-utils.ejs +0 -7
  356. package/templates/default/scripts/lint-md-fix.ts_dev-utils.ejs +0 -7
  357. package/templates/default/scripts/lint-md.ts_dev-utils.ejs +0 -7
  358. package/templates/default/scripts/lint.ts@tool_eslint@preset_dev-utils.ejs +0 -7
  359. package/templates/default/scripts/prepare.ts_dev-utils.ejs +0 -3
  360. package/templates/default/scripts/spellcheck.ts_dev-utils.ejs +0 -7
  361. package/templates/default/scripts/test-watch.ts_dev-utils@tool_jest.ejs +0 -13
  362. package/templates/default/scripts/test-watch.ts_dev-utils@tool_vitest.ejs +0 -8
  363. package/templates/default/scripts/test.ts_dev-utils@tool_jest.ejs +0 -13
  364. package/templates/default/scripts/test.ts_dev-utils@tool_vitest.ejs +0 -8
  365. package/templates/default/scripts/vite.config.ts@lint-empty-out-dir_dev-utils.ejs +0 -1
  366. package/templates/default/scripts/vite.config.ts@lint-out-dir_dev-utils.ejs +0 -1
  367. package/templates/default/scripts/webpack.config.ts@lint-webpack-default_dev-utils.ejs +0 -1
  368. package/templates/default/src/main.ts@import_css-modules.ejs +0 -1
  369. package/templates/default/src/views/sample-preact-view.tsx_dev-utils.ejs +0 -45
  370. package/templates/default/tsconfig.json_dev-utils@compiler-options_preact.ejs +0 -2
  371. package/templates/default/tsconfig.json_dev-utils@compiler-options_react.ejs +0 -1
  372. package/templates/default/tsconfig.json_dev-utils@compiler-options_solid.ejs +0 -2
  373. /package/templates/default/.github/workflows/{ci.yml@steps_biome-linter.ejs → ci.yml_standalone@steps_biome-linter.ejs} +0 -0
  374. /package/templates/default/.github/workflows/{ci.yml@steps_cspell.ejs → ci.yml_standalone@steps_cspell.ejs} +0 -0
  375. /package/templates/default/.github/workflows/{ci.yml@steps_dprint.ejs → ci.yml_standalone@steps_dprint.ejs} +0 -0
  376. /package/templates/default/.github/workflows/{ci.yml@steps_eslint.ejs → ci.yml_standalone@steps_eslint.ejs} +0 -0
  377. /package/templates/default/.github/workflows/{ci.yml@steps_jest.ejs → ci.yml_standalone@steps_jest.ejs} +0 -0
  378. /package/templates/default/.github/workflows/{ci.yml@steps_markdownlint.ejs → ci.yml_standalone@steps_markdownlint.ejs} +0 -0
  379. /package/templates/default/.github/workflows/{ci.yml@steps_prettier.ejs → ci.yml_standalone@steps_prettier.ejs} +0 -0
  380. /package/templates/default/.github/workflows/{ci.yml@steps_vitest.ejs → ci.yml_standalone@steps_vitest.ejs} +0 -0
  381. /package/templates/default/{.gitignore_tailwind.ejs → .gitignore_tailwind-cli.ejs} +0 -0
  382. /package/templates/default/{CONTRIBUTING.md@scripts_dev-utils.ejs → CONTRIBUTING.md@scripts_framework.ejs} +0 -0
  383. /package/templates/default/e2e/{sample.spec.ts_obsidian-test@lint-no-void-disable_dev-utils.ejs → sample.spec.ts_obsidian-test@lint-no-void-disable_framework.ejs} +0 -0
  384. /package/templates/default/e2e/{sample.spec.ts_obsidian-test@lint-no-void-enable_dev-utils.ejs → sample.spec.ts_obsidian-test@lint-no-void-enable_framework.ejs} +0 -0
  385. /package/templates/default/{eslint.config.mts_dev-utils.ejs → eslint.config.mts_framework.ejs} +0 -0
  386. /package/templates/default/{jest.config.ts@ts-jest-tsconfig_solid.ejs → jest.config.ts_standalone@ts-jest-tsconfig_solid.ejs} +0 -0
  387. /package/templates/default/{prettier.config.mjs.ejs → prettier.config.mjs_standalone.ejs} +0 -0
  388. /package/templates/default/scripts/{commitlint-config.ts.ejs → commitlint-config.ts_standalone.ejs} +0 -0
  389. /package/templates/default/scripts/{nano-staged-config.ts.ejs → nano-staged-config.ts_inline-nano-staged.ejs} +0 -0
  390. /package/templates/default/scripts/{rollup.config.ts@import_rollup-json.ejs → rollup.config.ts_framework@import_rollup-json.ejs} +0 -0
  391. /package/templates/default/scripts/{rollup.config.ts@import_scss.ejs → rollup.config.ts_framework@import_scss.ejs} +0 -0
  392. /package/templates/default/scripts/{rollup.config.ts@unwrap_rollup-json.ejs → rollup.config.ts_framework@unwrap_rollup-json.ejs} +0 -0
  393. /package/templates/default/scripts/{rollup.config.ts@unwrap_scss.ejs → rollup.config.ts_framework@unwrap_scss.ejs} +0 -0
  394. /package/templates/default/scripts/{rollup.config.ts@import_rollup-babel.ejs → rollup.config.ts_standalone@import_rollup-babel.ejs} +0 -0
  395. /package/templates/default/scripts/{rollup.config.ts@import_rollup-postcss.ejs → rollup.config.ts_standalone@import_rollup-postcss.ejs} +0 -0
  396. /package/templates/default/scripts/{rollup.config.ts@import_svelte.ejs → rollup.config.ts_standalone@import_svelte.ejs} +0 -0
  397. /package/templates/default/scripts/{rollup.config.ts@import_vue.ejs → rollup.config.ts_standalone@import_vue.ejs} +0 -0
  398. /package/templates/default/scripts/{rollup.config.ts@import_wasm.ejs → rollup.config.ts_standalone@import_wasm.ejs} +0 -0
  399. /package/templates/default/scripts/{rollup.config.ts@post-plugin_preact.ejs → rollup.config.ts_standalone@post-plugin_preact.ejs} +0 -0
  400. /package/templates/default/scripts/{rollup.config.ts@post-plugin_react.ejs → rollup.config.ts_standalone@post-plugin_react.ejs} +0 -0
  401. /package/templates/default/scripts/{rollup.config.ts@post-plugin_rollup-json.ejs → rollup.config.ts_standalone@post-plugin_rollup-json.ejs} +0 -0
  402. /package/templates/default/scripts/{rollup.config.ts@post-plugin_rollup-postcss.ejs → rollup.config.ts_standalone@post-plugin_rollup-postcss.ejs} +0 -0
  403. /package/templates/default/scripts/{rollup.config.ts@post-plugin_scss.ejs → rollup.config.ts_standalone@post-plugin_scss.ejs} +0 -0
  404. /package/templates/default/scripts/{rollup.config.ts@post-plugin_solid.ejs → rollup.config.ts_standalone@post-plugin_solid.ejs} +0 -0
  405. /package/templates/default/scripts/{rollup.config.ts@post-plugin_wasm.ejs → rollup.config.ts_standalone@post-plugin_wasm.ejs} +0 -0
  406. /package/templates/default/scripts/{rollup.config.ts@pre-plugin_svelte.ejs → rollup.config.ts_standalone@pre-plugin_svelte.ejs} +0 -0
  407. /package/templates/default/scripts/{rollup.config.ts@pre-plugin_vue.ejs → rollup.config.ts_standalone@pre-plugin_vue.ejs} +0 -0
  408. /package/templates/default/scripts/{rollup.config.ts@unwrap_rollup-babel.ejs → rollup.config.ts_standalone@unwrap_rollup-babel.ejs} +0 -0
  409. /package/templates/default/scripts/{rollup.config.ts@unwrap_rollup-postcss.ejs → rollup.config.ts_standalone@unwrap_rollup-postcss.ejs} +0 -0
  410. /package/templates/default/scripts/{rollup.config.ts@unwrap_svelte.ejs → rollup.config.ts_standalone@unwrap_svelte.ejs} +0 -0
  411. /package/templates/default/scripts/{rollup.config.ts@unwrap_vue.ejs → rollup.config.ts_standalone@unwrap_vue.ejs} +0 -0
  412. /package/templates/default/scripts/{rollup.config.ts@unwrap_wasm.ejs → rollup.config.ts_standalone@unwrap_wasm.ejs} +0 -0
  413. /package/templates/default/scripts/{test-watch.ts_dev-utils.ejs → test-watch.ts_framework.ejs} +0 -0
  414. /package/templates/default/scripts/{test.ts_dev-utils.ejs → test.ts_framework.ejs} +0 -0
  415. /package/templates/default/scripts/{vite.config.ts@import_preact.ejs → vite.config.ts_standalone@import_preact.ejs} +0 -0
  416. /package/templates/default/scripts/{vite.config.ts@import_react.ejs → vite.config.ts_standalone@import_react.ejs} +0 -0
  417. /package/templates/default/scripts/{vite.config.ts@import_solid.ejs → vite.config.ts_standalone@import_solid.ejs} +0 -0
  418. /package/templates/default/scripts/{vite.config.ts@import_svelte.ejs → vite.config.ts_standalone@import_svelte.ejs} +0 -0
  419. /package/templates/default/scripts/{vite.config.ts@import_vue.ejs → vite.config.ts_standalone@import_vue.ejs} +0 -0
  420. /package/templates/default/scripts/{vite.config.ts@plugin_preact.ejs → vite.config.ts_standalone@plugin_preact.ejs} +0 -0
  421. /package/templates/default/scripts/{vite.config.ts@plugin_react.ejs → vite.config.ts_standalone@plugin_react.ejs} +0 -0
  422. /package/templates/default/scripts/{vite.config.ts@plugin_solid.ejs → vite.config.ts_standalone@plugin_solid.ejs} +0 -0
  423. /package/templates/default/scripts/{vite.config.ts@plugin_svelte.ejs → vite.config.ts_standalone@plugin_svelte.ejs} +0 -0
  424. /package/templates/default/scripts/{vite.config.ts@plugin_vue.ejs → vite.config.ts_standalone@plugin_vue.ejs} +0 -0
  425. /package/templates/default/scripts/{webpack.config.ts@import_svelte.ejs → webpack.config.ts_standalone@import_svelte.ejs} +0 -0
  426. /package/templates/default/scripts/{webpack.config.ts@import_vue.ejs → webpack.config.ts_standalone@import_vue.ejs} +0 -0
  427. /package/templates/default/scripts/{webpack.config.ts@import_webpack-css-extract.ejs → webpack.config.ts_standalone@import_webpack-css-extract.ejs} +0 -0
  428. /package/templates/default/scripts/{webpack.config.ts@plugin_vue.ejs → webpack.config.ts_standalone@plugin_vue.ejs} +0 -0
  429. /package/templates/default/scripts/{webpack.config.ts@plugin_webpack-css-extract.ejs → webpack.config.ts_standalone@plugin_webpack-css-extract.ejs} +0 -0
  430. /package/templates/default/scripts/{webpack.config.ts@rule_css-modules.ejs → webpack.config.ts_standalone@rule_css-modules.ejs} +0 -0
  431. /package/templates/default/scripts/{webpack.config.ts@rule_css.ejs → webpack.config.ts_standalone@rule_css.ejs} +0 -0
  432. /package/templates/default/scripts/{webpack.config.ts@rule_postcss.ejs → webpack.config.ts_standalone@rule_postcss.ejs} +0 -0
  433. /package/templates/default/scripts/{webpack.config.ts@rule_scss.ejs → webpack.config.ts_standalone@rule_scss.ejs} +0 -0
  434. /package/templates/default/scripts/{webpack.config.ts@rule_solid.ejs → webpack.config.ts_standalone@rule_solid.ejs} +0 -0
  435. /package/templates/default/scripts/{webpack.config.ts@rule_svelte.ejs → webpack.config.ts_standalone@rule_svelte.ejs} +0 -0
  436. /package/templates/default/scripts/{webpack.config.ts@rule_tailwind.ejs → webpack.config.ts_standalone@rule_tailwind.ejs} +0 -0
  437. /package/templates/default/scripts/{webpack.config.ts@rule_vue.ejs → webpack.config.ts_standalone@rule_vue.ejs} +0 -0
  438. /package/templates/default/scripts/{webpack.config.ts@rule_wasm.ejs → webpack.config.ts_standalone@rule_wasm.ejs} +0 -0
  439. /package/templates/default/scripts/{webpack.config.ts@ts-loader-compiler-options_vue.ejs → webpack.config.ts_standalone@ts-loader-compiler-options_vue.ejs} +0 -0
  440. /package/templates/default/scripts/{webpack.config.ts@ts-loader-options_vue.ejs → webpack.config.ts_standalone@ts-loader-options_vue.ejs} +0 -0
  441. /package/templates/default/src/{plugin-settings-component.test.ts_enhanced@test-imports_vitest.ejs → plugin-settings-component.test.ts_all-in-one@test-imports_vitest.ejs} +0 -0
  442. /package/templates/default/src/{plugin-settings.ts_enhanced.ejs → plugin-settings.ts_all-in-one.ejs} +0 -0
  443. /package/templates/default/src/{plugin.ts_enhanced@import2_codemirror.ejs → plugin.ts_all-in-one@import2_codemirror.ejs} +0 -0
  444. /package/templates/default/src/{plugin.ts_enhanced@import2_i18next.ejs → plugin.ts_all-in-one@import2_i18next.ejs} +0 -0
  445. /package/templates/default/src/{plugin.ts_enhanced@import2_lit.ejs → plugin.ts_all-in-one@import2_lit.ejs} +0 -0
  446. /package/templates/default/src/{plugin.ts_enhanced@import2_preact.ejs → plugin.ts_all-in-one@import2_preact.ejs} +0 -0
  447. /package/templates/default/src/{plugin.ts_enhanced@import2_react.ejs → plugin.ts_all-in-one@import2_react.ejs} +0 -0
  448. /package/templates/default/src/{plugin.ts_enhanced@import2_solid.ejs → plugin.ts_all-in-one@import2_solid.ejs} +0 -0
  449. /package/templates/default/src/{plugin.ts_enhanced@import2_svelte.ejs → plugin.ts_all-in-one@import2_svelte.ejs} +0 -0
  450. /package/templates/default/src/{plugin.ts_enhanced@import2_typesafe-i18n.ejs → plugin.ts_all-in-one@import2_typesafe-i18n.ejs} +0 -0
  451. /package/templates/default/src/{plugin.ts_enhanced@import2_vue.ejs → plugin.ts_all-in-one@import2_vue.ejs} +0 -0
  452. /package/templates/default/src/{plugin.ts_enhanced@import2_wasm.ejs → plugin.ts_all-in-one@import2_wasm.ejs} +0 -0
  453. /package/templates/default/src/{plugin.ts_enhanced@method_ui-view.ejs → plugin.ts_all-in-one@method_ui-view.ejs} +0 -0
  454. /package/templates/default/src/{plugin.ts_enhanced@onload_codemirror.ejs → plugin.ts_all-in-one@onload_codemirror.ejs} +0 -0
  455. /package/templates/default/src/{plugin.ts_enhanced@onload_i18next.ejs → plugin.ts_all-in-one@onload_i18next.ejs} +0 -0
  456. /package/templates/default/src/{plugin.ts_enhanced@onload_lit.ejs → plugin.ts_all-in-one@onload_lit.ejs} +0 -0
  457. /package/templates/default/src/{plugin.ts_enhanced@onload_preact.ejs → plugin.ts_all-in-one@onload_preact.ejs} +0 -0
  458. /package/templates/default/src/{plugin.ts_enhanced@onload_react.ejs → plugin.ts_all-in-one@onload_react.ejs} +0 -0
  459. /package/templates/default/src/{plugin.ts_enhanced@onload_solid.ejs → plugin.ts_all-in-one@onload_solid.ejs} +0 -0
  460. /package/templates/default/src/{plugin.ts_enhanced@onload_svelte.ejs → plugin.ts_all-in-one@onload_svelte.ejs} +0 -0
  461. /package/templates/default/src/{plugin.ts_enhanced@onload_typesafe-i18n.ejs → plugin.ts_all-in-one@onload_typesafe-i18n.ejs} +0 -0
  462. /package/templates/default/src/{plugin.ts_enhanced@onload_vue.ejs → plugin.ts_all-in-one@onload_vue.ejs} +0 -0
  463. /package/templates/default/src/{plugin.ts_enhanced@onload_wasm.ejs → plugin.ts_all-in-one@onload_wasm.ejs} +0 -0
  464. /package/templates/default/src/preact-components/{sample-preact-component.tsx_dev-utils.ejs → sample-preact-component.tsx_framework.ejs} +0 -0
  465. /package/templates/default/src/solid-components/{sample-solid-component.tsx_dev-utils.ejs → sample-solid-component.tsx_framework.ejs} +0 -0
  466. /package/templates/default/src/styles/{main.css_dev-utils@content_tailwind.ejs → main.css_framework@content_tailwind.ejs} +0 -0
  467. /package/templates/default/src/views/{sample-lit-view.ts@lint-register-element_dev-utils.ejs → sample-lit-view.ts@lint-register-element_framework.ejs} +0 -0
  468. /package/templates/default/src/views/{sample-preact-view.tsx_standalone.ejs → sample-preact-view.tsx.ejs} +0 -0
  469. /package/templates/default/src/views/{sample-solid-view.tsx_dev-utils.ejs → sample-solid-view.tsx_framework.ejs} +0 -0
  470. /package/templates/default/src/wasm/{answer.ts_esbuild.ejs → answer.ts_wasm-esbuild.ejs} +0 -0
  471. /package/templates/default/src/wasm/{answer.ts_parcel.ejs → answer.ts_wasm-parcel.ejs} +0 -0
  472. /package/templates/default/src/wasm/{answer.ts_rollup.ejs → answer.ts_wasm-rollup.ejs} +0 -0
  473. /package/templates/default/src/wasm/{answer.ts_vite.ejs → answer.ts_wasm-vite.ejs} +0 -0
  474. /package/templates/default/src/wasm/{answer.ts_webpack.ejs → answer.ts_wasm-webpack.ejs} +0 -0
  475. /package/templates/default/src/{wasm.d.ts_esbuild.ejs → wasm.d.ts_wasm-esbuild.ejs} +0 -0
  476. /package/templates/default/src/{wasm.d.ts_parcel.ejs → wasm.d.ts_wasm-parcel.ejs} +0 -0
  477. /package/templates/default/src/{wasm.d.ts_rollup.ejs → wasm.d.ts_wasm-rollup.ejs} +0 -0
  478. /package/templates/default/src/{wasm.d.ts_vite.ejs → wasm.d.ts_wasm-vite.ejs} +0 -0
  479. /package/templates/default/src/{wasm.d.ts_webpack.ejs → wasm.d.ts_wasm-webpack.ejs} +0 -0
  480. /package/templates/default/{tsconfig.json_dev-utils@compiler-options_i18next.ejs → tsconfig.json_framework@compiler-options_i18next.ejs} +0 -0
  481. /package/templates/default/{tsconfig.json_dev-utils@compiler-options_lit.ejs → tsconfig.json_framework@compiler-options_lit.ejs} +0 -0
  482. /package/templates/default/{tsconfig.json_dev-utils@include_has-e2e.ejs → tsconfig.json_framework@include_has-e2e.ejs} +0 -0
  483. /package/templates/default/{tsconfig.json_dev-utils@include_svelte.ejs → tsconfig.json_framework@include_svelte.ejs} +0 -0
  484. /package/templates/default/{tsconfig.json_dev-utils@include_vue.ejs → tsconfig.json_framework@include_vue.ejs} +0 -0
  485. /package/templates/default/{tsconfig.json_dev-utils@types_jest.ejs → tsconfig.json_framework@types_jest.ejs} +0 -0
  486. /package/templates/default/{tsconfig.json_dev-utils@types_svelte.ejs → tsconfig.json_framework@types_svelte.ejs} +0 -0
  487. /package/templates/default/{tsconfig.json_dev-utils@types_wdio-obsidian.ejs → tsconfig.json_framework@types_wdio-obsidian.ejs} +0 -0
  488. /package/templates/default/{tsconfig.json_dev-utils@types_with-unofficial.ejs → tsconfig.json_framework@types_with-unofficial.ejs} +0 -0
  489. /package/templates/default/{vitest.config.ts_dev-utils.ejs → vitest.config.ts_framework.ejs} +0 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "./node_modules/@mnaoumov/obsidian-dev-toolkit/dist/templates/dprint.json",
3
+ "excludes": [
4
+ "dist",
5
+ "**/node_modules",
6
+ "**/*-lock.json",
7
+ "**/*.md",
8
+ "demo-vault"<%- render('excludes') %>
9
+ ]
10
+ }
@@ -6,6 +6,7 @@
6
6
  "exportDeclaration.forceMultiLine": "whenMultiple",
7
7
  "functionExpression.spaceAfterFunctionKeyword": true,
8
8
  "importDeclaration.forceMultiLine": "whenMultiple",
9
+ "jsx.quoteStyle": "preferDouble",
9
10
  "lineWidth": 1000,
10
11
  "quoteStyle": "alwaysSingle",
11
12
  "trailingCommas": "never"
@@ -97,6 +97,15 @@ export default defineConfig(
97
97
  'obsidianmd/rule-custom-message': 'off'
98
98
  }
99
99
  },
100
+ {
101
+ files: typeScriptFiles,
102
+ rules: {
103
+ // The compiler already reports an undefined name, and `no-undef` cannot see ambient types and
104
+ // Globals a test framework declares (`describe`, `browser`, `WebdriverIO`), so typescript-eslint
105
+ // Advises turning it off for TypeScript.
106
+ 'no-undef': 'off'
107
+ }
108
+ },
100
109
  {
101
110
  rules: {
102
111
  // `moment` is banned for bundle size, which does not apply here: Obsidian bundles it and
@@ -0,0 +1,31 @@
1
+ import { defineObsidianPluginJestConfig } from '@mnaoumov/obsidian-dev-toolkit/test-runners/jest-config';
2
+
3
+ // The toolkit's config runs ts-jest as ESM under jsdom, maps `obsidian` onto `obsidian-test-mocks` and loads
4
+ // Both setup files. What is left here is what only this project knows.
5
+ export default defineObsidianPluginJestConfig({
6
+ moduleNameMapper: {
7
+ // `src/main.ts` imports the stylesheet for its side effect, and jest would parse it as JavaScript.
8
+ '\\.(css|scss)$': '<rootDir>/scripts/stylesheet-stub.ts',
9
+ // Compiling a single-file component is the bundler's job, not the unit runner's. A unit test that reaches
10
+ // One through the plugin's module graph gets this stub instead, so the graph loads.
11
+ '\\.(svelte|vue)$': '<rootDir>/scripts/framework-component-stub.ts',
12
+ // Same decision for WebAssembly: loading a `.wasm` is the bundler's job.
13
+ '\\.wasm(\\?.*)?$': '<rootDir>/scripts/wasm-module-stub.ts',
14
+ '^data-url:': '<rootDir>/scripts/wasm-module-stub.ts',
15
+ // Svelte reaches its own runtime through Node subpath imports (`#client/constants`), and jest's ESM
16
+ // Resolver hands back the types entry for those, so the whole package goes to the stub too. It exports
17
+ // The `mount` / `unmount` the generated view uses.
18
+ '^svelte$': '<rootDir>/scripts/framework-component-stub.ts'
19
+ },
20
+ tsJestOptions: {
21
+ // Merged over `tsconfig.json`. `rootDir` is here rather than there because that file declares `noEmit: true`
22
+ // And is also read by the bundler, while ts-jest compiles WITH emit and so raises TS5011 on an inferred
23
+ // Common source directory.
24
+ tsconfig: {
25
+ isolatedModules: true,
26
+ <%- render('ts-jest-tsconfig') -%>
27
+ <%- render('lint-root-dir') -%>
28
+ rootDir: '.'
29
+ }
30
+ }
31
+ });
@@ -1 +1 @@
1
- // eslint-disable-next-line unicorn/name-replacements -- `outDir` is TypeScript's own compiler-option name.
1
+ // eslint-disable-next-line unicorn/name-replacements -- `rootDir` is TypeScript's own compiler-option name.
@@ -0,0 +1,8 @@
1
+ // Solid compiles its JSX with `babel-preset-solid`, so the project's own tsconfig sets
2
+ // `jsx: 'preserve'` and leaves the JSX in place for the bundler. ts-jest has no babel step, so
3
+ // Preserved JSX reaches jest as `SyntaxError: Unexpected token '<'`. The automatic runtime is
4
+ // What ts-jest can emit on its own, and `solid-js/h` is the entry point that has one -- plain
5
+ // `solid-js` publishes no `jsx-runtime`. Reactivity is not compiled in, which unit tests do not
6
+ // Need; rendering a Solid component is an integration-test job.
7
+ jsx: 'react-jsx',
8
+ jsxImportSource: 'solid-js/h',
@@ -46,7 +46,6 @@ const config: Config = {
46
46
  '^.+\\.tsx?$': ['ts-jest', {
47
47
  tsconfig: {
48
48
  <%- render('ts-jest-tsconfig') -%>
49
- <%- render('lint-root-dir') -%>
50
49
  rootDir: '.'
51
50
  },
52
51
  useESM: true
@@ -0,0 +1,31 @@
1
+ <%#
2
+ Parcel alone needs a declared target, for two reasons that both bite silently.
3
+
4
+ `"main": "main.js"` above is a Parcel TARGET as far as Parcel is concerned, with a dist directory of
5
+ `.` -- so `parcel build --dist-dir dist/build` wrote the bundle to the project root instead and left
6
+ `dist/build` holding nothing but `manifest.json`. Disabling that target is what lets `--dist-dir` apply.
7
+
8
+ The replacement target is `electron-renderer`, which is where Obsidian runs a plugin, and CommonJS.
9
+ Parcel counts that context as BOTH a browser and a node one, and each half is load-bearing:
10
+
11
+ - node: builtins stay external, and the resolver may exclude `obsidian` and CodeMirror, which the app
12
+ supplies at runtime. A plain browser target refuses outright to leave any module external.
13
+ - browser: package `exports` resolve the `browser` condition. A plain `node` context resolves `node`,
14
+ which is Solid's and Svelte's SERVER build -- a view whose `render` / `mount` never mounts anything.
15
+
16
+ `includeNodeModules` is what bundles the dependencies at all. A node-flavoured context defaults it to
17
+ false, which left every package a `require()` in `main.js` that nothing installs beside a plugin -- a
18
+ build that exited 0 and a plugin that failed to load.
19
+
20
+ -%>
21
+ "targets": {
22
+ "main": false,
23
+ "obsidianPlugin": {
24
+ "context": "electron-renderer",
25
+ "includeNodeModules": true,
26
+ "isLibrary": false,
27
+ "optimize": true,
28
+ "outputFormat": "commonjs",
29
+ "sourceMap": false
30
+ }
31
+ },
@@ -1,36 +1,5 @@
1
- <%#
2
- Parcel alone needs a declared target, for two reasons that both bite silently.
3
-
4
- `"main": "main.js"` above is a Parcel TARGET as far as Parcel is concerned, with a dist directory of
5
- `.` -- so `parcel build --dist-dir dist/build` wrote the bundle to the project root instead and left
6
- `dist/build` holding nothing but `manifest.json`. Disabling that target is what lets `--dist-dir` apply.
7
-
8
- The replacement target is `electron-renderer`, which is where Obsidian runs a plugin, and CommonJS.
9
- Parcel counts that context as BOTH a browser and a node one, and each half is load-bearing:
10
-
11
- - node: builtins stay external, and the resolver may exclude `obsidian` and CodeMirror, which the app
12
- supplies at runtime. A plain browser target refuses outright to leave any module external.
13
- - browser: package `exports` resolve the `browser` condition. A plain `node` context resolves `node`,
14
- which is Solid's and Svelte's SERVER build -- a view whose `render` / `mount` never mounts anything.
15
-
16
- `includeNodeModules` is what bundles the dependencies at all. A node-flavoured context defaults it to
17
- false, which left every package a `require()` in `main.js` that nothing installs beside a plugin -- a
18
- build that exited 0 and a plugin that failed to load.
19
-
20
- `packageExports` makes the resolver read package `exports`. Without it, a subpath such as
21
- `svelte/internal/client` does not resolve once the package is bundled rather than required.
22
- -%>
23
- "targets": {
24
- "main": false,
25
- "obsidianPlugin": {
26
- "context": "electron-renderer",
27
- "includeNodeModules": true,
28
- "isLibrary": false,
29
- "optimize": true,
30
- "outputFormat": "commonjs",
31
- "sourceMap": false
32
- }
33
- },
1
+ <%# `packageExports` makes the resolver read package `exports`. Without it, a subpath such as -%>
2
+ <%# `svelte/internal/client` does not resolve once the package is bundled rather than required. -%>
34
3
  "@parcel/resolver-default": {
35
4
  "packageExports": true
36
5
  },
@@ -6,7 +6,7 @@
6
6
  * new bundle root unconditionally, and has no option to inline one. The other bundlers each do:
7
7
  * rollup's `inlineDynamicImports`, vite's `rollupOptions.output.inlineDynamicImports`, webpack's
8
8
  * `asyncChunks: false`. This transformer is that option for Parcel, for the same reason
9
- * `parcel-resolver-obsidian.cjs` is its `external` list. obsidian-dev-utils is what needs it: it
9
+ * `parcel-resolver-obsidian.cjs` is its `external` list. obsidian-lib is what needs it: it
10
10
  * reaches its desktop-only modules through `await import(...)`.
11
11
  *
12
12
  * It runs before Parcel's own JavaScript transformer and rewrites `import('<literal>')` into a
@@ -0,0 +1,3 @@
1
+ import { getPrettierConfig } from '@mnaoumov/typescript-dev-toolkit/formatters/prettier';
2
+
3
+ export default { ...getPrettierConfig() };
@@ -1,4 +1,4 @@
1
- import { buildClean } from 'obsidian-dev-utils/script-utils/build';
2
- import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
1
+ import { buildClean } from '@mnaoumov/typescript-dev-toolkit/build';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
3
 
4
4
  await wrapCliTask(() => buildClean());
@@ -0,0 +1,14 @@
1
+ import { buildCompileTypeScript } from '@mnaoumov/typescript-dev-toolkit/build';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+ import { execFileSync } from 'node:child_process';
4
+ import { createRequire } from 'node:module';
5
+ import process from 'node:process';
6
+
7
+ await wrapCliTask(async () => {
8
+ await buildCompileTypeScript();
9
+ // `src/docs` holds the Obsidian developer docs' code blocks as the docs show them, so the project's strict
10
+ // `tsconfig.json` leaves the folder out, and the folder's own `tsconfig.json` checks it under the official sample
11
+ // plugin's compiler options.
12
+ const tscPath = createRequire(import.meta.url).resolve('typescript/bin/tsc');
13
+ execFileSync(process.execPath, [tscPath, '--project', 'src/docs/tsconfig.json'], { stdio: 'inherit' });
14
+ });
@@ -1,4 +1,4 @@
1
- import { buildCompile } from 'obsidian-dev-utils/script-utils/build';
2
- import { wrapCliTask } from 'obsidian-dev-utils/script-utils/cli-utils';
1
+ import { buildCompile } from '@mnaoumov/typescript-dev-toolkit/build';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
3
 
4
4
  await wrapCliTask(() => buildCompile());
@@ -0,0 +1,9 @@
1
+ import type { ObsidianPluginDeploymentOptions } from '@mnaoumov/obsidian-dev-toolkit/bundlers/obsidian-plugin-build';
2
+ import type { ObsidianPluginFeatureOptions } from '@mnaoumov/obsidian-dev-toolkit/bundlers/obsidian-plugin-features';
3
+
4
+ /**
5
+ * What obsidian-dev-toolkit builds this plugin with: its UI framework, how stylesheets are compiled, WebAssembly, and
6
+ * how a development build is reloaded. Every bundler adapter takes the same options, so `build` and `dev` read this one
7
+ * object whichever bundler runs them.
8
+ */
9
+ export const buildOptions: ObsidianPluginDeploymentOptions & ObsidianPluginFeatureOptions = <%- _buildOptionsLiteral %>;
@@ -1,12 +1,9 @@
1
1
  import { execSync } from 'node:child_process';
2
2
 
3
- // Tailwind 4 is compiled by its own CLI rather than through PostCSS, because PostCSS is not reachable on
4
- // Every path this generator emits: the obsidian-dev-utils presets call that library's esbuild build,
5
- // Which registers no PostCSS step at all AND registers `esbuild-sass-plugin` -- whose default filter is
6
- // `/\.(s[ac]ss|css)$/`, so it claims `.css` too -- ahead of the `customEsbuildPlugins` seam a project can
7
- // Add to. A PostCSS plugin appended there would never see the file. Running the CLI first sidesteps the
8
- // Question entirely: every bundler then receives ordinary, already-expanded CSS.
3
+ // Tailwind 4 is compiled by its own CLI rather than through PostCSS, because not every bundler this project can
4
+ // Use reaches PostCSS on its own. Running the CLI first means every bundler then receives ordinary,
5
+ // Already-expanded CSS.
9
6
  //
10
7
  // `src/styles/main.css` is the SOURCE (it carries `@import "tailwindcss"`); nothing imports it directly.
11
8
  // `src/main.ts` imports the generated file below, which is git-ignored.
12
- execSync('npx @tailwindcss/cli --input src/styles/main.css --output src/styles/tailwind.generated.css', { stdio: 'inherit' });
9
+ execSync('npx @tailwindcss/cli --input src/styles/main.css --output src/styles/tailwind.generated.css', { stdio: 'inherit' });
@@ -1,6 +1,6 @@
1
1
  <%# Keyed on the BUNDLER first, as the lint and format scripts are keyed on their tool. Only esbuild -%>
2
- <%# has a preset-specific build -- obsidian-dev-utils supplies one, and standalone inlines its own -- -%>
2
+ <%# has a preset-specific build -- obsidian-dev-toolkit supplies one, and standalone inlines its own -- -%>
3
3
  <%# so esbuild splits again underneath and the four CLI bundlers share one script. Splitting on the -%>
4
- <%# preset first is what made every obsidian-dev-utils preset run esbuild whatever was chosen, while -%>
4
+ <%# preset first is what made every toolkit preset run esbuild whatever was chosen, while -%>
5
5
  <%# still installing the chosen bundler and emitting its config for nothing to read. -%>
6
6
  <%- render('bundler') -%>
@@ -0,0 +1,11 @@
1
+ <%# vite, rollup and webpack run from their own command line, and obsidian-dev-toolkit's plugin in their config does -%>
2
+ <%# the Obsidian part: the dist folder, the manifest, the stylesheet name and the deployment into the vault. -%>
3
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
4
+ import { npmRun } from '@mnaoumov/typescript-dev-toolkit/npm-run';
5
+ import { execFromRoot } from '@mnaoumov/typescript-dev-toolkit/root';
6
+
7
+ await wrapCliTask(async () => {
8
+ // The bundler only strips the types, so the compile step checks them first.
9
+ await npmRun('build:compile');
10
+ <%- render('run') -%>
11
+ });
@@ -0,0 +1 @@
1
+ await execFromRoot(['rollup', '--config', 'rollup.config.mjs'], { isInteractive: true });
@@ -0,0 +1 @@
1
+ await execFromRoot(['vite', 'build'], { isInteractive: true });
@@ -0,0 +1 @@
1
+ await execFromRoot(['webpack', '--config', 'webpack.config.ts'], { isInteractive: true });
@@ -1,5 +1,5 @@
1
1
  <%# The relative imports go in a group of their own, after a blank line, which is what an import-sorting -%>
2
- <%# lint rule asks for -- and the dev-utils presets now run one. Emitted only when a partial contributes. -%>
2
+ <%# lint rule asks for -- and the framework presets now run one. Emitted only when a partial contributes. -%>
3
3
  <% const relativeImports = render('import'); -%>
4
4
  import { execSync } from 'node:child_process';
5
5
  import {
@@ -1,2 +1 @@
1
- <%- render('lint-build-styles') -%>
2
1
  import './build-styles.ts';
@@ -1,3 +1,3 @@
1
- <%# obsidian-dev-utils ships an esbuild build that already handles the dist folders, the manifest copy, -%>
2
- <%# hot reload and the plugins-folder copy; standalone has no dev-utils and does all of that inline. -%>
1
+ <%# obsidian-dev-toolkit ships an esbuild build that already handles the dist folders, the manifest copy, -%>
2
+ <%# hot reload and the plugins-folder copy; standalone has no framework and does all of that inline. -%>
3
3
  <%- render('preset') -%>
@@ -0,0 +1,5 @@
1
+ import { build } from '@mnaoumov/obsidian-dev-toolkit/bundlers/esbuild';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+ <%- _buildOptionsImport -%>
4
+
5
+ await wrapCliTask(() => build(<%- _buildOptionsArgument %>));
@@ -0,0 +1,5 @@
1
+ import { build } from '@mnaoumov/obsidian-dev-toolkit/bundlers/parcel';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+ <%- _buildOptionsImport -%>
4
+
5
+ await wrapCliTask(() => build(<%- _buildOptionsArgument %>));
@@ -0,0 +1,3 @@
1
+ import { exec } from '@mnaoumov/typescript-dev-toolkit/exec';
2
+
3
+ await exec('czg');
@@ -0,0 +1 @@
1
+ export { commitlintConfig as config } from '@mnaoumov/typescript-dev-toolkit/commitlint-config';
@@ -1,13 +1,13 @@
1
1
  import type { PopulateFilesParams } from 'obsidian-integration-testing';
2
2
 
3
+ import { CODE_SCRIPT_TOOLKIT_PLUGIN_ID } from '@mnaoumov/obsidian-dev-toolkit/demo-vault-buttons';
4
+ import { getRootFolder } from '@mnaoumov/typescript-dev-toolkit/root';
3
5
  import { join } from 'node:path';
4
6
  import process from 'node:process';
5
- import { CODE_SCRIPT_TOOLKIT_PLUGIN_ID } from 'obsidian-dev-utils/script-utils/demo-vault-buttons';
6
- import { getRootFolder } from 'obsidian-dev-utils/script-utils/root';
7
7
  import { buildDemoVaultPopulate } from 'obsidian-integration-testing';
8
8
  import { createSetup } from 'obsidian-integration-testing/vitest-global-setup-plugin';
9
9
 
10
- // CodeScript Toolkit is what turns a ```code-button fence into a button, and its root-relative
10
+ // `CodeScript Toolkit` is what turns a ```code-button fence into a button, and its root-relative
11
11
  // `require('/demoSetup.ts')` into a call. In real use the in-vault `demo-vault-helper` installs it from
12
12
  // The community registry on first launch — a NETWORK step. Seeding the copy it already installed into the
13
13
  // In-repo demo vault keeps this run hermetic and independent of that bootstrap, which is why the suite
@@ -24,12 +24,15 @@ function populate(): PopulateFilesParams {
24
24
  demoVaultPath: join(getRootFolder() ?? process.cwd(), 'demo-vault'),
25
25
  injectPlugins: [{
26
26
  data: CODE_SCRIPT_TOOLKIT_SETTINGS,
27
+ // `demoSetup.ts` imports `@mnaoumov/obsidian-lib`, which `CodeScript Toolkit` serves only from 13.8.0, so an
28
+ // older copy left installed in a warm checkout is re-downloaded rather than reused.
29
+ minVersion: '13.8.0',
27
30
  pluginId: CODE_SCRIPT_TOOLKIT_PLUGIN_ID
28
31
  }]
29
32
  });
30
33
  }
31
34
 
32
- // Pre-populates the whole `demo-vault/` tree (plus the CodeScript Toolkit binary and its settings) before
35
+ // Pre-populates the whole `demo-vault/` tree (plus the `CodeScript Toolkit` binary and its settings) before
33
36
  // Obsidian opens, so the startup scan indexes every note in one pass. Used by
34
37
  // `integration-tests:demo-vault`.
35
38
  const { setup, teardown } = createSetup({
@@ -1,6 +1,6 @@
1
1
  <%# The twin of build.ts.ejs, and it has to be: `dev` is `build` in watch mode, so the two scripts are -%>
2
2
  <%# one decision made once. Keyed on the BUNDLER first for that reason -- keying it on the PRESET is -%>
3
- <%# what left every obsidian-dev-utils preset watching with esbuild whatever bundler was answered, -%>
3
+ <%# what left every toolkit preset watching with esbuild whatever bundler was answered, -%>
4
4
  <%# while `npm run build` ran the answered one and the emitted config, loaders and plugins went unread -%>
5
5
  <%# by the path a developer actually spends the day in. -%>
6
6
  <%- render('bundler') -%>
@@ -0,0 +1,6 @@
1
+ <%# The development build is the bundler's watch mode, which obsidian-dev-toolkit's plugin builds into `dist/dev` and -%>
2
+ <%# deploys into the vault after every rebuild. -%>
3
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
4
+ import { execFromRoot } from '@mnaoumov/typescript-dev-toolkit/root';
5
+
6
+ <%- render('run') -%>
@@ -0,0 +1,3 @@
1
+ await wrapCliTask(async () => {
2
+ await execFromRoot(['rollup', '--config', 'rollup.config.mjs', '--watch'], { isInteractive: true });
3
+ });
@@ -0,0 +1,3 @@
1
+ await wrapCliTask(async () => {
2
+ await execFromRoot(['vite', 'build', '--watch'], { isInteractive: true });
3
+ });
@@ -0,0 +1,3 @@
1
+ await wrapCliTask(async () => {
2
+ await execFromRoot(['webpack', '--config', 'webpack.config.ts', '--watch'], { isInteractive: true });
3
+ });
@@ -1,3 +1,3 @@
1
- <%# obsidian-dev-utils ships an esbuild `dev()` that watches, restarts on node_modules changes and -%>
2
- <%# re-runs build:compile; standalone has no dev-utils and its own build script is already the watcher. -%>
1
+ <%# obsidian-dev-toolkit ships an esbuild `dev()` that watches, restarts on node_modules changes and -%>
2
+ <%# re-runs build:compile; standalone has no framework and its own build script is already the watcher. -%>
3
3
  <%- render('preset') -%>
@@ -0,0 +1,5 @@
1
+ import { dev } from '@mnaoumov/obsidian-dev-toolkit/bundlers/esbuild';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+ <%- _buildOptionsImport -%>
4
+
5
+ await wrapCliTask(() => dev(<%- _buildOptionsArgument %>));
@@ -0,0 +1,5 @@
1
+ import { dev } from '@mnaoumov/obsidian-dev-toolkit/bundlers/parcel';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+ <%- _buildOptionsImport -%>
4
+
5
+ await wrapCliTask(() => dev(<%- _buildOptionsArgument %>));
@@ -1,10 +1,10 @@
1
1
  import type { Linter } from 'eslint';
2
2
 
3
+ import { defineEslintConfigs } from '@mnaoumov/obsidian-dev-toolkit/linters/eslint-config';
3
4
  import {
4
5
  defineConfig,
5
6
  globalIgnores
6
7
  } from 'eslint/config';
7
- import { defineEslintConfigs } from 'obsidian-dev-utils/script-utils/linters/eslint-config';
8
8
 
9
9
  export const configs: Linter.Config[] = defineEslintConfigs({
10
10
  customConfigs(context) {
@@ -18,7 +18,7 @@ export const configs: Linter.Config[] = defineEslintConfigs({
18
18
  '**/*.cjs',
19
19
  '**/*.js',
20
20
  '**/*.mjs',
21
- 'demo-vault/**'
21
+ 'demo-vault/**'<%- render('ignores') %>
22
22
  ]),
23
23
  {
24
24
  files: context.allFiles(),
@@ -60,17 +60,6 @@ export const configs: Linter.Config[] = defineEslintConfigs({
60
60
  ]
61
61
  }
62
62
  },
63
- {
64
- // Two imports only a build or a bundler can resolve. `src/main.ts` imports the stylesheet
65
- // `npm run build:styles` writes, which is absent until the first build and present after it -- so an
66
- // Inline disable is wrong in both states, an unresolved import before and an unused directive after.
67
- // `data-url:` is a parcel scheme that only parcel's own resolver knows. Both patterns are named
68
- // Whether or not the answer that emits them was chosen: a pattern matching nothing costs nothing.
69
- files: context.sourceFiles,
70
- rules: {
71
- 'import-x/no-unresolved': ['error', { ignore: ['^data-url:', String.raw`tailwind\.generated\.css$`] }]
72
- }
73
- },
74
63
  {
75
64
  // Files whose default export is dictated from outside, the way the shared config already exempts
76
65
  // The root configs and `src/main.ts`. An ambient `declare module` describes how a `.wasm`, a CSS
@@ -99,7 +88,7 @@ export const configs: Linter.Config[] = defineEslintConfigs({
99
88
  );
100
89
  },
101
90
  editContext(context) {
102
- // The shared config's root-config list is the three a plugin built on `obsidian-dev-utils` always has
91
+ // The shared config's root-config list is the three a plugin built on the toolkit always has
103
92
  // (`commitlint.config.ts`, `eslint.config.mts`, `vitest.config.ts`). This project may also have a root
104
93
  // Wrapper for another runner, and a root `*.ts` that ESLint reaches but no config object matches is a
105
94
  // File linted with nothing. Named unconditionally: a glob matching no emitted file costs nothing, and
@@ -0,0 +1,4 @@
1
+ ,
2
+ // The Obsidian developer docs' code blocks, kept as the docs show them. `src/docs/tsconfig.json` type-checks
3
+ // Them under the official sample plugin's compiler options instead.
4
+ 'src/docs/**'
@@ -1,13 +1,13 @@
1
- import process from 'node:process';
2
- import { parseArgs } from 'node:util';
3
1
  import {
4
2
  CliTaskResult,
5
3
  wrapCliTask
6
- } from 'obsidian-dev-utils/script-utils/cli-utils';
4
+ } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
7
5
  import {
8
6
  findOverExposure,
9
7
  formatOverExposureFindings
10
- } from 'obsidian-dev-utils/script-utils/linters/over-exposure';
8
+ } from '@mnaoumov/typescript-dev-toolkit/linters/over-exposure';
9
+ import process from 'node:process';
10
+ import { parseArgs } from 'node:util';
11
11
 
12
12
  const [, , ...$arguments] = process.argv;
13
13
 
@@ -1,12 +1,12 @@
1
- import process from 'node:process';
2
1
  import {
3
2
  CliTaskResult,
4
3
  wrapCliTask
5
- } from 'obsidian-dev-utils/script-utils/cli-utils';
4
+ } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
6
5
  import {
7
6
  findOverExposure,
8
7
  formatOverExposureFindings
9
- } from 'obsidian-dev-utils/script-utils/linters/over-exposure';
8
+ } from '@mnaoumov/typescript-dev-toolkit/linters/over-exposure';
9
+ import process from 'node:process';
10
10
 
11
11
  await wrapCliTask(() => {
12
12
  const findings = findOverExposure({ projectFolder: process.cwd() });
@@ -1,8 +1,3 @@
1
- import { execSync } from 'node:child_process';
2
- import process from 'node:process';
3
-
4
- try {
5
- execSync('biome format .', { stdio: 'inherit' });
6
- } catch {
7
- process.exit(1);
8
- }
1
+ <%# The framework presets go through the toolkit runner, which takes the staged paths; standalone has no -%>
2
+ <%# framework and shells out directly. -%>
3
+ <%- render('preset') -%>
@@ -0,0 +1,7 @@
1
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
2
+ import { format } from '@mnaoumov/typescript-dev-toolkit/formatters/biome';
3
+ import process from 'node:process';
4
+
5
+ const [, , ...paths] = process.argv;
6
+
7
+ await wrapCliTask(() => format({ paths, rewrite: false }));
@@ -0,0 +1,8 @@
1
+ import { execSync } from 'node:child_process';
2
+ import process from 'node:process';
3
+
4
+ try {
5
+ execSync('biome format .', { stdio: 'inherit' });
6
+ } catch {
7
+ process.exit(1);
8
+ }
@@ -1,3 +1,3 @@
1
- <%# The dev-utils presets go through the dev-utils runner, which resolves `dprint.json` from the repo root -%>
2
- <%# and falls back to the bundled one; standalone has no dev-utils and shells out directly. -%>
1
+ <%# The framework presets go through the framework runner, which resolves `dprint.json` from the repo root -%>
2
+ <%# and falls back to the bundled one; standalone has no framework and shells out directly. -%>
3
3
  <%- render('preset') -%>
@@ -0,0 +1,7 @@
1
+ import { format } from '@mnaoumov/obsidian-dev-toolkit/formatters/dprint';
2
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
3
+ import process from 'node:process';
4
+
5
+ const [, , ...paths] = process.argv;
6
+
7
+ await wrapCliTask(() => format({ paths, rewrite: false }));
@@ -1,8 +1,3 @@
1
- import { execSync } from 'node:child_process';
2
- import process from 'node:process';
3
-
4
- try {
5
- execSync('prettier --check .', { stdio: 'inherit' });
6
- } catch {
7
- process.exit(1);
8
- }
1
+ <%# The framework presets go through the toolkit runner, which takes the staged paths; standalone has no -%>
2
+ <%# framework and shells out directly. -%>
3
+ <%- render('preset') -%>
@@ -0,0 +1,7 @@
1
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
2
+ import { format } from '@mnaoumov/typescript-dev-toolkit/formatters/prettier';
3
+ import process from 'node:process';
4
+
5
+ const [, , ...paths] = process.argv;
6
+
7
+ await wrapCliTask(() => format({ paths, rewrite: false }));
@@ -0,0 +1,8 @@
1
+ import { execSync } from 'node:child_process';
2
+ import process from 'node:process';
3
+
4
+ try {
5
+ execSync('prettier --check .', { stdio: 'inherit' });
6
+ } catch {
7
+ process.exit(1);
8
+ }
@@ -1,8 +1,3 @@
1
- import { execSync } from 'node:child_process';
2
- import process from 'node:process';
3
-
4
- try {
5
- execSync('biome format --write .', { stdio: 'inherit' });
6
- } catch {
7
- process.exit(1);
8
- }
1
+ <%# The framework presets go through the toolkit runner, which takes the staged paths; standalone has no -%>
2
+ <%# framework and shells out directly. -%>
3
+ <%- render('preset') -%>
@@ -0,0 +1,7 @@
1
+ import { wrapCliTask } from '@mnaoumov/typescript-dev-toolkit/cli-utils';
2
+ import { format } from '@mnaoumov/typescript-dev-toolkit/formatters/biome';
3
+ import process from 'node:process';
4
+
5
+ const [, , ...paths] = process.argv;
6
+
7
+ await wrapCliTask(() => format({ paths }));