@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.
- package/README.md +38 -7
- package/dist/main.js +1068 -333
- package/package.json +13 -5
- package/src/main.ts +118 -11
- package/templates/default/.github/ISSUE_TEMPLATE/config.yml.ejs +4 -0
- package/templates/default/.github/workflows/attest-release-assets.yml.ejs +1 -11
- package/templates/default/.github/workflows/ci.yml_framework.ejs +19 -0
- package/templates/default/.github/workflows/ci.yml_framework@job-permissions_measured-coverage-badge.ejs +3 -0
- package/templates/default/.github/workflows/ci.yml_framework@with_measured-coverage-badge.ejs +1 -0
- package/templates/default/.github/workflows/{ci.yml.ejs → ci.yml_standalone.ejs} +1 -1
- package/templates/default/.github/workflows/release.yml_framework.ejs +19 -0
- package/templates/default/.github/workflows/{release.yml.ejs → release.yml_standalone.ejs} +1 -1
- package/templates/default/.gitignore_common.ejs +1 -0
- package/templates/default/.gitignore_wdio-obsidian.ejs +2 -0
- package/templates/default/.nvmrc.ejs +1 -0
- package/templates/default/.prettierignore.ejs +1 -0
- package/templates/default/.prettierignore@ignores_docs-showcase.ejs +3 -0
- package/templates/default/{CONTRIBUTING.md@demo-vault_dev-utils.ejs → CONTRIBUTING.md@demo-vault_framework.ejs} +1 -1
- package/templates/default/{README.md@demo-vault_dev-utils.ejs → README.md@demo-vault_framework.ejs} +1 -1
- package/templates/default/README.md@preset_docs-showcase.ejs +4 -0
- package/templates/default/{README.md@preset_dev-utils.ejs → README.md@preset_framework.ejs} +1 -1
- package/templates/default/biome.jsonc_framework.ejs +16 -0
- package/templates/default/biome.jsonc_framework@excludes_docs-showcase.ejs +1 -0
- package/templates/default/{biome.jsonc.ejs → biome.jsonc_standalone.ejs} +1 -1
- package/templates/default/cspell.json.ejs +10 -2
- package/templates/default/cspell.json@ignore-paths_docs-showcase.ejs +1 -0
- package/templates/default/demo-vault/.gitignore.ejs +4 -4
- package/templates/default/demo-vault/00 Start.md.ejs +1 -1
- package/templates/default/demo-vault/01 Sample commands.md.ejs +4 -4
- package/templates/default/demo-vault/02 Settings.md.ejs +2 -2
- package/templates/default/demo-vault/03 WebAssembly.md.ejs +2 -2
- package/templates/default/demo-vault/README.md.ejs +1 -1
- package/templates/default/demo-vault/_assets/CodeScriptToolkit/demoSetup.ts.ejs +1 -1
- package/templates/default/demo-vault/_assets/CodeScriptToolkit/startup.ts.ejs +4 -4
- package/templates/default/dprint.json_framework.ejs +10 -0
- package/templates/default/dprint.json_framework@excludes_docs-showcase.ejs +2 -0
- package/templates/default/dprint.json_standalone.ejs +1 -0
- package/templates/default/eslint.config.mts_standalone.ejs +9 -0
- package/templates/default/jest.config.ts_framework.ejs +31 -0
- package/templates/default/{scripts/rollup.config.ts@lint-out-dir_dev-utils.ejs → jest.config.ts_framework@lint-root-dir_framework.ejs} +1 -1
- package/templates/default/jest.config.ts_framework@ts-jest-tsconfig_solid.ejs +8 -0
- package/templates/default/{jest.config.ts.ejs → jest.config.ts_standalone.ejs} +0 -1
- package/templates/default/package.json@targets_parcel-targets.ejs +31 -0
- package/templates/default/package.json@targets_parcel.ejs +2 -33
- package/templates/default/parcel-transformer-inline-imports.cjs.ejs +1 -1
- package/templates/default/prettier.config.mjs_framework.ejs +3 -0
- package/templates/default/scripts/build-clean.ts.ejs +2 -2
- package/templates/default/scripts/build-compile-typescript.ts.ejs +14 -0
- package/templates/default/scripts/build-compile.ts.ejs +2 -2
- package/templates/default/scripts/build-options.ts.ejs +9 -0
- package/templates/default/scripts/build-styles.ts.ejs +4 -7
- package/templates/default/scripts/build.ts.ejs +2 -2
- package/templates/default/scripts/build.ts@bundler_adapter-cli.ejs +11 -0
- package/templates/default/scripts/build.ts@bundler_adapter-cli@run_rollup.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_adapter-cli@run_vite.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_adapter-cli@run_webpack.ejs +1 -0
- package/templates/default/scripts/build.ts@bundler_cli-bundler.ejs +1 -1
- package/templates/default/scripts/build.ts@bundler_cli-bundler@import_tailwind.ejs +0 -1
- package/templates/default/scripts/build.ts@bundler_esbuild.ejs +2 -2
- package/templates/default/scripts/build.ts@bundler_esbuild@preset_framework.ejs +5 -0
- package/templates/default/scripts/build.ts@bundler_parcel-adapter.ejs +5 -0
- package/templates/default/scripts/commit.ts_framework.ejs +3 -0
- package/templates/default/scripts/commitlint-config.ts_framework.ejs +1 -0
- package/templates/default/scripts/demo-vault-global-setup.ts.ejs +7 -4
- package/templates/default/scripts/dev.ts.ejs +1 -1
- package/templates/default/scripts/dev.ts@bundler_adapter-cli.ejs +6 -0
- package/templates/default/scripts/dev.ts@bundler_adapter-cli@run_rollup.ejs +3 -0
- package/templates/default/scripts/dev.ts@bundler_adapter-cli@run_vite.ejs +3 -0
- package/templates/default/scripts/dev.ts@bundler_adapter-cli@run_webpack.ejs +3 -0
- package/templates/default/scripts/dev.ts@bundler_esbuild.ejs +2 -2
- package/templates/default/scripts/dev.ts@bundler_esbuild@preset_framework.ejs +5 -0
- package/templates/default/scripts/dev.ts@bundler_parcel-adapter.ejs +5 -0
- package/templates/default/scripts/eslint-config.ts.ejs +3 -14
- package/templates/default/scripts/eslint-config.ts@ignores_docs-showcase.ejs +4 -0
- package/templates/default/scripts/find-overexposed-fix.ts.ejs +4 -4
- package/templates/default/scripts/find-overexposed.ts.ejs +3 -3
- package/templates/default/scripts/format-check.ts@tool_biome-formatter.ejs +3 -8
- package/templates/default/scripts/format-check.ts@tool_biome-formatter@preset_framework.ejs +7 -0
- package/templates/default/scripts/format-check.ts@tool_biome-formatter@preset_standalone.ejs +8 -0
- package/templates/default/scripts/format-check.ts@tool_dprint.ejs +2 -2
- package/templates/default/scripts/format-check.ts@tool_dprint@preset_framework.ejs +7 -0
- package/templates/default/scripts/format-check.ts@tool_prettier.ejs +3 -8
- package/templates/default/scripts/format-check.ts@tool_prettier@preset_framework.ejs +7 -0
- package/templates/default/scripts/format-check.ts@tool_prettier@preset_standalone.ejs +8 -0
- package/templates/default/scripts/format.ts@tool_biome-formatter.ejs +3 -8
- package/templates/default/scripts/format.ts@tool_biome-formatter@preset_framework.ejs +7 -0
- package/templates/default/scripts/format.ts@tool_biome-formatter@preset_standalone.ejs +8 -0
- package/templates/default/scripts/format.ts@tool_dprint.ejs +2 -2
- package/templates/default/scripts/format.ts@tool_dprint@preset_framework.ejs +7 -0
- package/templates/default/scripts/format.ts@tool_prettier.ejs +3 -8
- package/templates/default/scripts/format.ts@tool_prettier@preset_framework.ejs +7 -0
- package/templates/default/scripts/format.ts@tool_prettier@preset_standalone.ejs +8 -0
- package/templates/default/scripts/gate.ts.ejs +3 -3
- package/templates/default/scripts/lint-fix.ts.ejs +2 -2
- package/templates/default/scripts/lint-fix.ts@tool_biome-linter.ejs +3 -8
- package/templates/default/scripts/lint-fix.ts@tool_biome-linter@preset_framework.ejs +7 -0
- package/templates/default/scripts/lint-fix.ts@tool_biome-linter@preset_standalone.ejs +8 -0
- package/templates/default/scripts/lint-fix.ts@tool_eslint.ejs +2 -2
- package/templates/default/scripts/lint-fix.ts@tool_eslint@preset_framework.ejs +7 -0
- package/templates/default/scripts/lint-md-fix.ts_framework.ejs +7 -0
- package/templates/default/scripts/lint-md.ts_framework.ejs +7 -0
- package/templates/default/scripts/lint.ts.ejs +2 -2
- package/templates/default/scripts/lint.ts@tool_biome-linter.ejs +3 -8
- package/templates/default/scripts/lint.ts@tool_biome-linter@preset_framework.ejs +7 -0
- package/templates/default/scripts/lint.ts@tool_biome-linter@preset_standalone.ejs +8 -0
- package/templates/default/scripts/lint.ts@tool_eslint.ejs +2 -2
- package/templates/default/scripts/lint.ts@tool_eslint@preset_framework.ejs +7 -0
- package/templates/default/scripts/{markdownlint-cli2-config.ts_dev-utils.ejs → markdownlint-cli2-config.ts_framework.ejs} +4 -4
- package/templates/default/scripts/markdownlint-cli2-config.ts_standalone.ejs +0 -3
- package/templates/default/scripts/nano-staged-config.ts_toolkit-nano-staged.ejs +3 -0
- package/templates/default/scripts/prepare.ts_framework.ejs +3 -0
- package/templates/default/scripts/rollup.config.ts_framework.ejs +49 -0
- package/templates/default/scripts/rollup.config.ts_framework@plugin_rollup-json.ejs +2 -0
- package/templates/default/scripts/rollup.config.ts_framework@plugin_scss.ejs +3 -0
- package/templates/default/scripts/{rollup.config.ts.ejs → rollup.config.ts_standalone.ejs} +4 -4
- package/templates/default/scripts/rollup.config.ts_standalone@import_rollup-json.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts_standalone@import_scss.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts_standalone@unwrap_rollup-json.ejs +1 -0
- package/templates/default/scripts/rollup.config.ts_standalone@unwrap_scss.ejs +1 -0
- package/templates/default/scripts/spellcheck.ts_framework.ejs +7 -0
- package/templates/default/scripts/stylesheet-stub.ts.ejs +1 -1
- package/templates/default/scripts/test-coverage.ts.ejs +2 -8
- package/templates/default/scripts/test-coverage.ts@tool_jest.ejs +5 -0
- package/templates/default/scripts/test-coverage.ts@tool_vitest.ejs +8 -0
- package/templates/default/scripts/test-e2e.ts@tool_obsidian-test.ejs +2 -8
- package/templates/default/scripts/test-e2e.ts@tool_obsidian-test@preset_framework.ejs +4 -0
- package/templates/default/scripts/test-e2e.ts@tool_obsidian-test@preset_standalone.ejs +8 -0
- package/templates/default/scripts/test-e2e.ts@tool_wdio-obsidian.ejs +2 -8
- package/templates/default/scripts/test-e2e.ts@tool_wdio-obsidian@preset_framework.ejs +5 -0
- package/templates/default/scripts/test-e2e.ts@tool_wdio-obsidian@preset_standalone.ejs +8 -0
- package/templates/default/scripts/test-integration-android.ts.ejs +2 -2
- package/templates/default/scripts/test-integration-demo-vault.ts.ejs +2 -2
- package/templates/default/scripts/test-integration-desktop-performance.ts.ejs +2 -2
- package/templates/default/scripts/test-integration-desktop.ts.ejs +2 -2
- package/templates/default/scripts/test-integration-no-app.ts.ejs +2 -2
- package/templates/default/scripts/test-integration.ts.ejs +2 -2
- package/templates/default/scripts/test-watch.ts_framework@tool_jest.ejs +5 -0
- package/templates/default/scripts/test-watch.ts_framework@tool_vitest.ejs +8 -0
- package/templates/default/scripts/test.ts_framework@tool_jest.ejs +5 -0
- package/templates/default/scripts/test.ts_framework@tool_vitest.ejs +8 -0
- package/templates/default/scripts/{version.ts_dev-utils.ejs → version.ts_framework.ejs} +3 -3
- package/templates/default/scripts/vite.config.ts_framework.ejs +10 -0
- package/templates/default/scripts/{vite.config.ts.ejs → vite.config.ts_standalone.ejs} +5 -8
- package/templates/default/scripts/vitest-config.ts.ejs +3 -2
- package/templates/default/scripts/vitest-config.ts@edit-context_docs-showcase.ejs +3 -0
- package/templates/default/scripts/webpack.config.ts_framework.ejs +19 -0
- package/templates/default/scripts/webpack.config.ts_framework@import_scss.ejs +1 -0
- package/templates/default/scripts/webpack.config.ts_framework@plugin_scss.ejs +1 -0
- package/templates/default/scripts/webpack.config.ts_framework@rule_scss.ejs +4 -0
- package/templates/default/scripts/{webpack.config.ts.ejs → webpack.config.ts_standalone.ejs} +4 -4
- package/templates/default/src/demo-vault-buttons.demo-vault.integration.test.ts.ejs +2 -2
- package/templates/default/src/demo-vault.no-app.integration.test.ts.ejs +3 -3
- package/templates/default/src/docs-showcase.desktop.integration.test.ts.ejs +77 -0
- package/templates/default/src/editor-extensions/{sample-state-field.ts_dev-utils.ejs → sample-state-field.ts_framework.ejs} +1 -1
- package/templates/default/src/main.ts@import_tailwind.ejs +1 -1
- package/templates/default/src/main.ts@import_tailwind@preset_framework.ejs +1 -0
- package/templates/default/src/main.ts@import_tailwind@preset_standalone.ejs +1 -0
- package/templates/default/src/{plugin-settings-component.test.ts_enhanced.ejs → plugin-settings-component.test.ts_all-in-one.ejs} +4 -4
- package/templates/default/src/plugin-settings-component.test.ts_demo.ejs +5 -5
- package/templates/default/src/{plugin-settings-component.ts_enhanced.ejs → plugin-settings-component.ts_all-in-one.ejs} +3 -3
- package/templates/default/src/plugin-settings-component.ts_demo.ejs +7 -7
- package/templates/default/src/{plugin-settings-tab.ts_enhanced.ejs → plugin-settings-tab.ts_all-in-one.ejs} +1 -1
- package/templates/default/src/plugin-settings-tab.ts_demo.ejs +3 -3
- package/templates/default/src/plugin-settings.ts_demo.ejs +2 -2
- package/templates/default/src/{plugin.ts_enhanced.ejs → plugin.ts_all-in-one.ejs} +5 -5
- package/templates/default/src/plugin.ts_all-in-one@import2_css-modules.ejs +1 -0
- package/templates/default/src/plugin.ts_all-in-one@import2_docs-showcase.ejs +1 -0
- package/templates/default/src/plugin.ts_all-in-one@onload_css-modules.ejs +1 -0
- package/templates/default/src/plugin.ts_all-in-one@onload_docs-showcase.ejs +3 -0
- package/templates/default/src/plugin.ts_demo.ejs +16 -16
- package/templates/default/src/plugin.ts_demo@import_css-modules.ejs +1 -0
- package/templates/default/src/plugin.ts_demo@onload_css-modules.ejs +1 -0
- package/templates/default/src/plugin.ts_standalone.ejs +5 -3
- package/templates/default/src/plugin.ts_standalone@import_css-modules.ejs +1 -0
- package/templates/default/src/plugin.ts_standalone@onload_css-modules.ejs +1 -0
- package/templates/default/src/react-components/{sample-react-component.tsx_dev-utils.ejs → sample-react-component.tsx_framework.ejs} +1 -1
- package/templates/default/src/styles/css-modules.d.ts.ejs +9 -3
- package/templates/default/src/styles/{main.css_dev-utils.ejs → main.css_framework.ejs} +2 -2
- package/templates/default/src/styles/main.module.css.ejs +4 -2
- package/templates/default/src/styles/{main.scss_dev-utils.ejs → main.scss_framework.ejs} +2 -2
- package/templates/default/src/styles/sample-css-module-command.ts.ejs +30 -0
- package/templates/default/src/views/{sample-react-view.tsx_dev-utils.ejs → sample-react-view.tsx_framework.ejs} +1 -1
- package/templates/default/src/wasm/answer.ts_wasm-adapter.ejs +18 -0
- package/templates/default/{tsconfig.json_dev-utils.ejs → tsconfig.json_framework.ejs} +2 -2
- package/templates/default/tsconfig.json_framework@exclude_docs-showcase.ejs +4 -0
- package/templates/default/tsconfig.json_framework@include_wdio-obsidian.ejs +1 -0
- package/templates/default/tsconfig.json_framework@types_toolkit-styles.ejs +2 -0
- package/templates/default/tsconfig.json_framework@types_wasm.ejs +2 -0
- package/templates/default/tsconfig.json_standalone.ejs +1 -1
- package/templates/default/vitest.config.ts_standalone.ejs +11 -2
- package/templates/default/wdio.conf.mts.ejs +5 -0
- package/templates/default/wdio.conf.ts.ejs +4 -4
- package/templates/docs-showcase/files/src/docs/README.md +511 -0
- package/templates/docs-showcase/files/src/docs/entry.d.ts +8 -0
- package/templates/docs-showcase/files/src/docs/entry.js +4 -0
- package/templates/docs-showcase/files/src/docs/host.ts +449 -0
- package/templates/docs-showcase/files/src/docs/index.ts +699 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/communicating-with-editor-extensions/01-intro.ts +21 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/communicating-with-editor-extensions/03-state-field.ts +32 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/decorations/01-widgets.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/decorations/02-widgets.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/decorations/04-state-fields.ts +57 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/decorations/05-view-plugins.ts +79 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/editor/01-intro.ts +26 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/editor/03-replace-current-selection.ts +26 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/markdown-post-processing/01-intro.ts +39 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/state-fields/01-defining-state-effects.ts +19 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/state-fields/02-defining-a-state-field.ts +35 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/state-fields/04-dispatching-state-effects.ts +34 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/state-management/01-state-changes.ts +21 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/state-management/02-state-changes.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/editor/view-plugins/01-creating-a-view-plugin.ts +36 -0
- package/templates/docs-showcase/files/src/docs/plugins/events/01-intro.ts +21 -0
- package/templates/docs-showcase/files/src/docs/plugins/getting-started/anatomy-of-a-plugin/01-intro.ts +22 -0
- package/templates/docs-showcase/files/src/docs/plugins/getting-started/anatomy-of-a-plugin/02-plugin-lifecycle.ts +22 -0
- package/templates/docs-showcase/files/src/docs/plugins/getting-started/build-a-plugin/06-step-5-update-the-source-code.ts +19 -0
- package/templates/docs-showcase/files/src/docs/plugins/getting-started/build-a-plugin/07-step-5-update-the-source-code.ts +21 -0
- package/templates/docs-showcase/files/src/docs/plugins/getting-started/mobile-development/03-platform-specific-features.ts +25 -0
- package/templates/docs-showcase/files/src/docs/plugins/getting-started/use-react-in-your-plugin/03-configure-your-plugin.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/build-a-bases-view/01-step-1-sample-plugin-setup.ts +18 -0
- 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
- package/templates/docs-showcase/files/src/docs/plugins/guides/build-a-bases-view/03-step-3-add-configuration.ts +40 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/defer-views/04-accessing-your-customview-without-reveal.ts +26 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/01-overview.ts +26 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/02-overview.ts +30 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/03-automatic-resource-management-with-compo.ts +26 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/04-registerevent-eventref.ts +22 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/05-registerinterval-id.ts +21 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/06-registerdomevent-el-event-handler.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/08-understanding-the-lifecycle-of-objects.ts +29 -0
- package/templates/docs-showcase/files/src/docs/plugins/guides/manage-plugin-lifecycle/14-componentized-modal-example.ts +37 -0
- 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
- 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
- package/templates/docs-showcase/files/src/docs/plugins/guides/store-secrets/03-step-3-retrieve-the-secret-value.ts +22 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/01-use-setheading-instead-of-a-h1-h2.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/03-clean-up-resources-when-plugin-unloads.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/04-avoid-accessing-workspace-activeleaf-dir.ts +24 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/05-avoid-accessing-workspace-activeleaf-dir.ts +22 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/10-avoid-iterating-all-files-to-find-a-file.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/11-avoid-iterating-all-files-to-find-a-file.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/13-use-normalizepath-to-clean-up-user-defin.ts +18 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/15-no-hardcoded-styling.ts +21 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/16-no-hardcoded-styling.ts +19 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/17-no-hardcoded-styling.ts +14 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/18-prefer-async-await-over-promise.ts +24 -0
- package/templates/docs-showcase/files/src/docs/plugins/releasing/plugin-guidelines/19-prefer-async-await-over-promise.ts +27 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/commands/01-intro.ts +25 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/commands/03-editor-commands.ts +27 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/commands/05-hot-keys.ts +25 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/context-menus/01-intro.ts +41 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/02-create-html-elements-using-createel.ts +19 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/03-create-html-elements-using-createel.ts +21 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/04-style-your-elements.ts +14 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/05-style-your-elements.ts +21 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/html-elements/06-conditional-styles.ts +19 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/icons/01-use-icons.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/icons/02-use-icons.ts +14 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/icons/03-add-your-own-icon.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/01-intro.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/02-intro.ts +26 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/03-accept-user-input.ts +38 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/04-accept-user-input.ts +22 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/05-select-from-list-of-suggestions.ts +56 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/06-approximate-string-matching-results.ts +28 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/modals/07-custom-rendering-of-fuzzy-search-results.ts +41 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/ribbon-actions/01-intro.ts +21 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/right-to-left/01-use-fallback-values-when-necessary.ts +14 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/right-to-left/02-global-selectors.ts +14 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/right-to-left/03-icons-are-mirrored-automatically.ts +14 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/09-toggle.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/10-text.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/11-textarea.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/12-number.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/13-slider.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/14-dropdown.ts +28 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/15-file.ts +27 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/16-folder.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/17-color-picker.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/18-validating-input.ts +28 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/23-groups.ts +27 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/32-cleanup.ts +30 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/33-no-top-level-heading.ts +27 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/34-headings-only-when-there-are-multiple-se.ts +26 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/36-headings.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/38-moment-format.ts +42 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/39-buttons.ts +26 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/40-extra-button.ts +28 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/settings/41-progress-bar.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/status-bar/01-intro.ts +20 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/status-bar/02-intro.ts +25 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/views/01-intro.ts +39 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/workspace/05-inspect-the-workspace.ts +23 -0
- package/templates/docs-showcase/files/src/docs/plugins/user-interface/workspace/06-leaf-groups.ts +19 -0
- package/templates/docs-showcase/files/src/docs/plugins/vault/02-read-files.ts +37 -0
- package/templates/docs-showcase/files/src/docs/plugins/vault/03-modify-files.ts +19 -0
- package/templates/docs-showcase/files/src/docs/plugins/vault/04-modify-files.ts +22 -0
- package/templates/docs-showcase/files/src/docs/plugins/vault/05-is-it-a-file-or-folder.ts +25 -0
- package/templates/docs-showcase/files/src/docs/reference/css-variables/about-styling/01-for-plugins.ts +14 -0
- package/templates/docs-showcase/files/src/docs/reference/css-variables/about-styling/02-for-themes-and-snippets.ts +14 -0
- package/templates/docs-showcase/files/src/docs/reference/css-variables/publish/site-fonts/01-intro.ts +14 -0
- package/templates/docs-showcase/files/src/docs/reference/typescript-api/command/callback/01-example.ts +24 -0
- package/templates/docs-showcase/files/src/docs/reference/typescript-api/debounce/01-example.ts +24 -0
- package/templates/docs-showcase/files/src/docs/reference/typescript-api/vault/process/01-example.ts +22 -0
- package/templates/docs-showcase/files/src/docs/themes/app-themes/build-a-theme/05-step-4-change-the-font.ts +14 -0
- package/templates/docs-showcase/files/src/docs/themes/app-themes/build-a-theme/06-step-5-change-the-background-color.ts +14 -0
- 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
- package/templates/docs-showcase/files/src/docs/themes/app-themes/build-a-theme/08-step-7-discover-css-variables-in-use.ts +14 -0
- package/templates/docs-showcase/files/src/docs/themes/app-themes/embed-fonts-and-images-in-your-theme/02-use-data-urls.ts +14 -0
- package/templates/docs-showcase/files/src/docs/themes/app-themes/theme-guidelines/01-use-css-variables.ts +14 -0
- 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
- package/templates/docs-showcase/files/src/docs/themes/obsidian-publish-themes/build-a-publish-theme/01-intro.ts +14 -0
- package/templates/docs-showcase/files/src/docs/tsconfig.json +25 -0
- package/templates/docs-showcase/host/entry.d.ts +8 -0
- package/templates/docs-showcase/host/entry.js +4 -0
- package/templates/docs-showcase/host/host.ts +449 -0
- package/templates/docs-showcase/host/tsconfig.json +25 -0
- package/templates/docs-showcase/snippets.json +3566 -0
- package/templates/official-sample/README.md +9 -0
- package/templates/official-sample/files/.editorconfig.vendored +11 -0
- package/templates/official-sample/files/.github/workflows/lint.yml.vendored +27 -0
- package/templates/official-sample/files/.github/workflows/release.yml.vendored +50 -0
- package/templates/official-sample/files/.gitignore.vendored +22 -0
- package/templates/official-sample/files/.npmrc.vendored +1 -0
- package/templates/official-sample/files/AGENTS.md.vendored +269 -0
- package/templates/official-sample/files/LICENSE.vendored +5 -0
- package/templates/official-sample/files/README.md.vendored +92 -0
- package/templates/official-sample/files/esbuild.config.mjs.vendored +49 -0
- package/templates/official-sample/files/eslint.config.mts.vendored +32 -0
- package/templates/official-sample/files/manifest.json.vendored +11 -0
- package/templates/official-sample/files/package-lock.json.vendored +5053 -0
- package/templates/official-sample/files/package.json.vendored +27 -0
- package/templates/official-sample/files/src/main.ts.vendored +114 -0
- package/templates/official-sample/files/src/settings.ts.vendored +38 -0
- package/templates/official-sample/files/styles.css.vendored +8 -0
- package/templates/official-sample/files/tsconfig.json.vendored +19 -0
- package/templates/official-sample/files/version-bump.mjs.vendored +17 -0
- package/templates/official-sample/files/versions.json.vendored +3 -0
- package/upstreams.json +35 -0
- package/templates/default/dprint.json_dev-utils.ejs +0 -10
- package/templates/default/jest.config.ts@lint-root-dir_dev-utils.ejs +0 -1
- package/templates/default/scripts/build.ts@bundler_cli-bundler@lint-build-styles_dev-utils.ejs +0 -1
- package/templates/default/scripts/build.ts@bundler_esbuild@dev-utils-pre-build_tailwind.ejs +0 -2
- package/templates/default/scripts/build.ts@bundler_esbuild@lint-build-styles_dev-utils.ejs +0 -1
- package/templates/default/scripts/build.ts@bundler_esbuild@preset_dev-utils.ejs +0 -7
- package/templates/default/scripts/commit.ts_dev-utils.ejs +0 -3
- package/templates/default/scripts/dev.ts@bundler_esbuild@dev-utils-pre-build_tailwind.ejs +0 -2
- package/templates/default/scripts/dev.ts@bundler_esbuild@lint-build-styles_dev-utils.ejs +0 -1
- package/templates/default/scripts/dev.ts@bundler_esbuild@preset_dev-utils.ejs +0 -7
- package/templates/default/scripts/esbuild-plugins.ts.ejs +0 -20
- package/templates/default/scripts/esbuild-plugins.ts@dev-utils-import_vue.ejs +0 -2
- package/templates/default/scripts/esbuild-plugins.ts@dev-utils-plugin_vue.ejs +0 -1
- package/templates/default/scripts/esbuild-plugins.ts@dev-utils-plugin_wasm.ejs +0 -13
- package/templates/default/scripts/format-check.ts@tool_dprint@preset_dev-utils.ejs +0 -7
- package/templates/default/scripts/format.ts@tool_dprint@preset_dev-utils.ejs +0 -7
- package/templates/default/scripts/lint-fix.ts@tool_eslint@preset_dev-utils.ejs +0 -7
- package/templates/default/scripts/lint-md-fix.ts_dev-utils.ejs +0 -7
- package/templates/default/scripts/lint-md.ts_dev-utils.ejs +0 -7
- package/templates/default/scripts/lint.ts@tool_eslint@preset_dev-utils.ejs +0 -7
- package/templates/default/scripts/prepare.ts_dev-utils.ejs +0 -3
- package/templates/default/scripts/spellcheck.ts_dev-utils.ejs +0 -7
- package/templates/default/scripts/test-watch.ts_dev-utils@tool_jest.ejs +0 -13
- package/templates/default/scripts/test-watch.ts_dev-utils@tool_vitest.ejs +0 -8
- package/templates/default/scripts/test.ts_dev-utils@tool_jest.ejs +0 -13
- package/templates/default/scripts/test.ts_dev-utils@tool_vitest.ejs +0 -8
- package/templates/default/scripts/vite.config.ts@lint-empty-out-dir_dev-utils.ejs +0 -1
- package/templates/default/scripts/vite.config.ts@lint-out-dir_dev-utils.ejs +0 -1
- package/templates/default/scripts/webpack.config.ts@lint-webpack-default_dev-utils.ejs +0 -1
- package/templates/default/src/main.ts@import_css-modules.ejs +0 -1
- package/templates/default/src/views/sample-preact-view.tsx_dev-utils.ejs +0 -45
- package/templates/default/tsconfig.json_dev-utils@compiler-options_preact.ejs +0 -2
- package/templates/default/tsconfig.json_dev-utils@compiler-options_react.ejs +0 -1
- package/templates/default/tsconfig.json_dev-utils@compiler-options_solid.ejs +0 -2
- /package/templates/default/.github/workflows/{ci.yml@steps_biome-linter.ejs → ci.yml_standalone@steps_biome-linter.ejs} +0 -0
- /package/templates/default/.github/workflows/{ci.yml@steps_cspell.ejs → ci.yml_standalone@steps_cspell.ejs} +0 -0
- /package/templates/default/.github/workflows/{ci.yml@steps_dprint.ejs → ci.yml_standalone@steps_dprint.ejs} +0 -0
- /package/templates/default/.github/workflows/{ci.yml@steps_eslint.ejs → ci.yml_standalone@steps_eslint.ejs} +0 -0
- /package/templates/default/.github/workflows/{ci.yml@steps_jest.ejs → ci.yml_standalone@steps_jest.ejs} +0 -0
- /package/templates/default/.github/workflows/{ci.yml@steps_markdownlint.ejs → ci.yml_standalone@steps_markdownlint.ejs} +0 -0
- /package/templates/default/.github/workflows/{ci.yml@steps_prettier.ejs → ci.yml_standalone@steps_prettier.ejs} +0 -0
- /package/templates/default/.github/workflows/{ci.yml@steps_vitest.ejs → ci.yml_standalone@steps_vitest.ejs} +0 -0
- /package/templates/default/{.gitignore_tailwind.ejs → .gitignore_tailwind-cli.ejs} +0 -0
- /package/templates/default/{CONTRIBUTING.md@scripts_dev-utils.ejs → CONTRIBUTING.md@scripts_framework.ejs} +0 -0
- /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
- /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
- /package/templates/default/{eslint.config.mts_dev-utils.ejs → eslint.config.mts_framework.ejs} +0 -0
- /package/templates/default/{jest.config.ts@ts-jest-tsconfig_solid.ejs → jest.config.ts_standalone@ts-jest-tsconfig_solid.ejs} +0 -0
- /package/templates/default/{prettier.config.mjs.ejs → prettier.config.mjs_standalone.ejs} +0 -0
- /package/templates/default/scripts/{commitlint-config.ts.ejs → commitlint-config.ts_standalone.ejs} +0 -0
- /package/templates/default/scripts/{nano-staged-config.ts.ejs → nano-staged-config.ts_inline-nano-staged.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@import_rollup-json.ejs → rollup.config.ts_framework@import_rollup-json.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@import_scss.ejs → rollup.config.ts_framework@import_scss.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@unwrap_rollup-json.ejs → rollup.config.ts_framework@unwrap_rollup-json.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@unwrap_scss.ejs → rollup.config.ts_framework@unwrap_scss.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@import_rollup-babel.ejs → rollup.config.ts_standalone@import_rollup-babel.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@import_rollup-postcss.ejs → rollup.config.ts_standalone@import_rollup-postcss.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@import_svelte.ejs → rollup.config.ts_standalone@import_svelte.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@import_vue.ejs → rollup.config.ts_standalone@import_vue.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@import_wasm.ejs → rollup.config.ts_standalone@import_wasm.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@post-plugin_preact.ejs → rollup.config.ts_standalone@post-plugin_preact.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@post-plugin_react.ejs → rollup.config.ts_standalone@post-plugin_react.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@post-plugin_rollup-json.ejs → rollup.config.ts_standalone@post-plugin_rollup-json.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@post-plugin_rollup-postcss.ejs → rollup.config.ts_standalone@post-plugin_rollup-postcss.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@post-plugin_scss.ejs → rollup.config.ts_standalone@post-plugin_scss.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@post-plugin_solid.ejs → rollup.config.ts_standalone@post-plugin_solid.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@post-plugin_wasm.ejs → rollup.config.ts_standalone@post-plugin_wasm.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@pre-plugin_svelte.ejs → rollup.config.ts_standalone@pre-plugin_svelte.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@pre-plugin_vue.ejs → rollup.config.ts_standalone@pre-plugin_vue.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@unwrap_rollup-babel.ejs → rollup.config.ts_standalone@unwrap_rollup-babel.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@unwrap_rollup-postcss.ejs → rollup.config.ts_standalone@unwrap_rollup-postcss.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@unwrap_svelte.ejs → rollup.config.ts_standalone@unwrap_svelte.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@unwrap_vue.ejs → rollup.config.ts_standalone@unwrap_vue.ejs} +0 -0
- /package/templates/default/scripts/{rollup.config.ts@unwrap_wasm.ejs → rollup.config.ts_standalone@unwrap_wasm.ejs} +0 -0
- /package/templates/default/scripts/{test-watch.ts_dev-utils.ejs → test-watch.ts_framework.ejs} +0 -0
- /package/templates/default/scripts/{test.ts_dev-utils.ejs → test.ts_framework.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@import_preact.ejs → vite.config.ts_standalone@import_preact.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@import_react.ejs → vite.config.ts_standalone@import_react.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@import_solid.ejs → vite.config.ts_standalone@import_solid.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@import_svelte.ejs → vite.config.ts_standalone@import_svelte.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@import_vue.ejs → vite.config.ts_standalone@import_vue.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@plugin_preact.ejs → vite.config.ts_standalone@plugin_preact.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@plugin_react.ejs → vite.config.ts_standalone@plugin_react.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@plugin_solid.ejs → vite.config.ts_standalone@plugin_solid.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@plugin_svelte.ejs → vite.config.ts_standalone@plugin_svelte.ejs} +0 -0
- /package/templates/default/scripts/{vite.config.ts@plugin_vue.ejs → vite.config.ts_standalone@plugin_vue.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@import_svelte.ejs → webpack.config.ts_standalone@import_svelte.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@import_vue.ejs → webpack.config.ts_standalone@import_vue.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@import_webpack-css-extract.ejs → webpack.config.ts_standalone@import_webpack-css-extract.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@plugin_vue.ejs → webpack.config.ts_standalone@plugin_vue.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@plugin_webpack-css-extract.ejs → webpack.config.ts_standalone@plugin_webpack-css-extract.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@rule_css-modules.ejs → webpack.config.ts_standalone@rule_css-modules.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@rule_css.ejs → webpack.config.ts_standalone@rule_css.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@rule_postcss.ejs → webpack.config.ts_standalone@rule_postcss.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@rule_scss.ejs → webpack.config.ts_standalone@rule_scss.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@rule_solid.ejs → webpack.config.ts_standalone@rule_solid.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@rule_svelte.ejs → webpack.config.ts_standalone@rule_svelte.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@rule_tailwind.ejs → webpack.config.ts_standalone@rule_tailwind.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@rule_vue.ejs → webpack.config.ts_standalone@rule_vue.ejs} +0 -0
- /package/templates/default/scripts/{webpack.config.ts@rule_wasm.ejs → webpack.config.ts_standalone@rule_wasm.ejs} +0 -0
- /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
- /package/templates/default/scripts/{webpack.config.ts@ts-loader-options_vue.ejs → webpack.config.ts_standalone@ts-loader-options_vue.ejs} +0 -0
- /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
- /package/templates/default/src/{plugin-settings.ts_enhanced.ejs → plugin-settings.ts_all-in-one.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_codemirror.ejs → plugin.ts_all-in-one@import2_codemirror.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_i18next.ejs → plugin.ts_all-in-one@import2_i18next.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_lit.ejs → plugin.ts_all-in-one@import2_lit.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_preact.ejs → plugin.ts_all-in-one@import2_preact.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_react.ejs → plugin.ts_all-in-one@import2_react.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_solid.ejs → plugin.ts_all-in-one@import2_solid.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_svelte.ejs → plugin.ts_all-in-one@import2_svelte.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_typesafe-i18n.ejs → plugin.ts_all-in-one@import2_typesafe-i18n.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_vue.ejs → plugin.ts_all-in-one@import2_vue.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@import2_wasm.ejs → plugin.ts_all-in-one@import2_wasm.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@method_ui-view.ejs → plugin.ts_all-in-one@method_ui-view.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_codemirror.ejs → plugin.ts_all-in-one@onload_codemirror.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_i18next.ejs → plugin.ts_all-in-one@onload_i18next.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_lit.ejs → plugin.ts_all-in-one@onload_lit.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_preact.ejs → plugin.ts_all-in-one@onload_preact.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_react.ejs → plugin.ts_all-in-one@onload_react.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_solid.ejs → plugin.ts_all-in-one@onload_solid.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_svelte.ejs → plugin.ts_all-in-one@onload_svelte.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_typesafe-i18n.ejs → plugin.ts_all-in-one@onload_typesafe-i18n.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_vue.ejs → plugin.ts_all-in-one@onload_vue.ejs} +0 -0
- /package/templates/default/src/{plugin.ts_enhanced@onload_wasm.ejs → plugin.ts_all-in-one@onload_wasm.ejs} +0 -0
- /package/templates/default/src/preact-components/{sample-preact-component.tsx_dev-utils.ejs → sample-preact-component.tsx_framework.ejs} +0 -0
- /package/templates/default/src/solid-components/{sample-solid-component.tsx_dev-utils.ejs → sample-solid-component.tsx_framework.ejs} +0 -0
- /package/templates/default/src/styles/{main.css_dev-utils@content_tailwind.ejs → main.css_framework@content_tailwind.ejs} +0 -0
- /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
- /package/templates/default/src/views/{sample-preact-view.tsx_standalone.ejs → sample-preact-view.tsx.ejs} +0 -0
- /package/templates/default/src/views/{sample-solid-view.tsx_dev-utils.ejs → sample-solid-view.tsx_framework.ejs} +0 -0
- /package/templates/default/src/wasm/{answer.ts_esbuild.ejs → answer.ts_wasm-esbuild.ejs} +0 -0
- /package/templates/default/src/wasm/{answer.ts_parcel.ejs → answer.ts_wasm-parcel.ejs} +0 -0
- /package/templates/default/src/wasm/{answer.ts_rollup.ejs → answer.ts_wasm-rollup.ejs} +0 -0
- /package/templates/default/src/wasm/{answer.ts_vite.ejs → answer.ts_wasm-vite.ejs} +0 -0
- /package/templates/default/src/wasm/{answer.ts_webpack.ejs → answer.ts_wasm-webpack.ejs} +0 -0
- /package/templates/default/src/{wasm.d.ts_esbuild.ejs → wasm.d.ts_wasm-esbuild.ejs} +0 -0
- /package/templates/default/src/{wasm.d.ts_parcel.ejs → wasm.d.ts_wasm-parcel.ejs} +0 -0
- /package/templates/default/src/{wasm.d.ts_rollup.ejs → wasm.d.ts_wasm-rollup.ejs} +0 -0
- /package/templates/default/src/{wasm.d.ts_vite.ejs → wasm.d.ts_wasm-vite.ejs} +0 -0
- /package/templates/default/src/{wasm.d.ts_webpack.ejs → wasm.d.ts_wasm-webpack.ejs} +0 -0
- /package/templates/default/{tsconfig.json_dev-utils@compiler-options_i18next.ejs → tsconfig.json_framework@compiler-options_i18next.ejs} +0 -0
- /package/templates/default/{tsconfig.json_dev-utils@compiler-options_lit.ejs → tsconfig.json_framework@compiler-options_lit.ejs} +0 -0
- /package/templates/default/{tsconfig.json_dev-utils@include_has-e2e.ejs → tsconfig.json_framework@include_has-e2e.ejs} +0 -0
- /package/templates/default/{tsconfig.json_dev-utils@include_svelte.ejs → tsconfig.json_framework@include_svelte.ejs} +0 -0
- /package/templates/default/{tsconfig.json_dev-utils@include_vue.ejs → tsconfig.json_framework@include_vue.ejs} +0 -0
- /package/templates/default/{tsconfig.json_dev-utils@types_jest.ejs → tsconfig.json_framework@types_jest.ejs} +0 -0
- /package/templates/default/{tsconfig.json_dev-utils@types_svelte.ejs → tsconfig.json_framework@types_svelte.ejs} +0 -0
- /package/templates/default/{tsconfig.json_dev-utils@types_wdio-obsidian.ejs → tsconfig.json_framework@types_wdio-obsidian.ejs} +0 -0
- /package/templates/default/{tsconfig.json_dev-utils@types_with-unofficial.ejs → tsconfig.json_framework@types_with-unofficial.ejs} +0 -0
- /package/templates/default/{vitest.config.ts_dev-utils.ejs → vitest.config.ts_framework.ejs} +0 -0
|
@@ -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 -- `
|
|
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',
|
|
@@ -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
|
-
|
|
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-
|
|
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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buildClean } from '
|
|
2
|
-
import { wrapCliTask } from '
|
|
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 '
|
|
2
|
-
import { wrapCliTask } from '
|
|
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
|
|
4
|
-
//
|
|
5
|
-
//
|
|
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-
|
|
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
|
|
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
|
|
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,3 +1,3 @@
|
|
|
1
|
-
<%# obsidian-dev-
|
|
2
|
-
<%# hot reload and the plugins-folder copy; standalone has no
|
|
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 @@
|
|
|
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
|
|
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') -%>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<%# obsidian-dev-
|
|
2
|
-
<%# re-runs build:compile; standalone has no
|
|
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') -%>
|
|
@@ -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
|
|
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
|
|
@@ -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 '
|
|
4
|
+
} from '@mnaoumov/typescript-dev-toolkit/cli-utils';
|
|
7
5
|
import {
|
|
8
6
|
findOverExposure,
|
|
9
7
|
formatOverExposureFindings
|
|
10
|
-
} from '
|
|
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 '
|
|
4
|
+
} from '@mnaoumov/typescript-dev-toolkit/cli-utils';
|
|
6
5
|
import {
|
|
7
6
|
findOverExposure,
|
|
8
7
|
formatOverExposureFindings
|
|
9
|
-
} from '
|
|
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
|
-
|
|
2
|
-
|
|
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 }));
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<%# The
|
|
2
|
-
<%# and falls back to the bundled one; standalone has no
|
|
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
|
-
|
|
2
|
-
|
|
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 }));
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 }));
|