@cbnventures/nova 0.14.0 → 0.15.1
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 +48 -0
- package/bin/nova.mjs +16 -0
- package/build/package.json +33 -23
- package/build/src/api/node-releases.d.ts +4 -4
- package/build/src/api/node-releases.d.ts.map +1 -1
- package/build/src/api/node-releases.js +31 -26
- package/build/src/api/node-releases.js.map +1 -1
- package/build/src/api/spdx-licenses.d.ts +4 -4
- package/build/src/api/spdx-licenses.d.ts.map +1 -1
- package/build/src/api/spdx-licenses.js +21 -18
- package/build/src/api/spdx-licenses.js.map +1 -1
- package/build/src/cli/generate/github/funding.d.ts +5 -0
- package/build/src/cli/generate/github/funding.d.ts.map +1 -0
- package/build/src/cli/generate/github/funding.js +68 -0
- package/build/src/cli/generate/github/funding.js.map +1 -0
- package/build/src/cli/generate/github/issue-template.d.ts +5 -0
- package/build/src/cli/generate/github/issue-template.d.ts.map +1 -0
- package/build/src/cli/generate/github/issue-template.js +267 -0
- package/build/src/cli/generate/github/issue-template.js.map +1 -0
- package/build/src/cli/generate/github/workflows.d.ts +10 -0
- package/build/src/cli/generate/github/workflows.d.ts.map +1 -0
- package/build/src/cli/generate/github/workflows.js +464 -0
- package/build/src/cli/generate/github/workflows.js.map +1 -0
- package/build/src/cli/generate/must-haves/agent-conventions.d.ts +5 -0
- package/build/src/cli/generate/must-haves/agent-conventions.d.ts.map +1 -0
- package/build/src/cli/generate/must-haves/agent-conventions.js +114 -0
- package/build/src/cli/generate/must-haves/agent-conventions.js.map +1 -0
- package/build/src/cli/generate/must-haves/dotenv.d.ts +12 -0
- package/build/src/cli/generate/must-haves/dotenv.d.ts.map +1 -0
- package/build/src/cli/generate/must-haves/dotenv.js +490 -0
- package/build/src/cli/generate/must-haves/dotenv.js.map +1 -0
- package/build/src/cli/generate/must-haves/editorconfig.d.ts +5 -0
- package/build/src/cli/generate/must-haves/editorconfig.d.ts.map +1 -0
- package/build/src/cli/generate/must-haves/editorconfig.js +37 -0
- package/build/src/cli/generate/must-haves/editorconfig.js.map +1 -0
- package/build/src/cli/generate/must-haves/gitignore.d.ts +13 -0
- package/build/src/cli/generate/must-haves/gitignore.d.ts.map +1 -0
- package/build/src/cli/generate/must-haves/gitignore.js +439 -0
- package/build/src/cli/generate/must-haves/gitignore.js.map +1 -0
- package/build/src/cli/generate/must-haves/license.d.ts +5 -0
- package/build/src/cli/generate/must-haves/license.d.ts.map +1 -0
- package/build/src/cli/generate/must-haves/license.js +131 -0
- package/build/src/cli/generate/must-haves/license.js.map +1 -0
- package/build/src/cli/generate/must-haves/read-me.d.ts +8 -0
- package/build/src/cli/generate/must-haves/read-me.d.ts.map +1 -0
- package/build/src/cli/generate/must-haves/read-me.js +255 -0
- package/build/src/cli/generate/must-haves/read-me.js.map +1 -0
- package/build/src/cli/index.js +298 -100
- package/build/src/cli/index.js.map +1 -1
- package/build/src/cli/recipe/index.d.ts +2 -2
- package/build/src/cli/recipe/index.d.ts.map +1 -1
- package/build/src/cli/recipe/index.js +19 -19
- package/build/src/cli/recipe/index.js.map +1 -1
- package/build/src/cli/recipe/package-json/cleanup.d.ts +3 -3
- package/build/src/cli/recipe/package-json/cleanup.d.ts.map +1 -1
- package/build/src/cli/recipe/package-json/cleanup.js +59 -50
- package/build/src/cli/recipe/package-json/cleanup.js.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-artifacts.d.ts +3 -3
- package/build/src/cli/recipe/package-json/normalize-artifacts.d.ts.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-artifacts.js +120 -112
- package/build/src/cli/recipe/package-json/normalize-artifacts.js.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-bundler.d.ts +3 -3
- package/build/src/cli/recipe/package-json/normalize-bundler.d.ts.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-bundler.js +36 -35
- package/build/src/cli/recipe/package-json/normalize-bundler.js.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-dependencies.d.ts +3 -3
- package/build/src/cli/recipe/package-json/normalize-dependencies.d.ts.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-dependencies.js +70 -64
- package/build/src/cli/recipe/package-json/normalize-dependencies.js.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-modules.d.ts +3 -3
- package/build/src/cli/recipe/package-json/normalize-modules.d.ts.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-modules.js +156 -142
- package/build/src/cli/recipe/package-json/normalize-modules.js.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-tooling.d.ts +3 -3
- package/build/src/cli/recipe/package-json/normalize-tooling.d.ts.map +1 -1
- package/build/src/cli/recipe/package-json/normalize-tooling.js +52 -57
- package/build/src/cli/recipe/package-json/normalize-tooling.js.map +1 -1
- package/build/src/cli/recipe/package-json/sync-environment.d.ts +3 -3
- package/build/src/cli/recipe/package-json/sync-environment.d.ts.map +1 -1
- package/build/src/cli/recipe/package-json/sync-environment.js +94 -97
- package/build/src/cli/recipe/package-json/sync-environment.js.map +1 -1
- package/build/src/cli/recipe/package-json/sync-identity.d.ts +3 -3
- package/build/src/cli/recipe/package-json/sync-identity.d.ts.map +1 -1
- package/build/src/cli/recipe/package-json/sync-identity.js +67 -62
- package/build/src/cli/recipe/package-json/sync-identity.js.map +1 -1
- package/build/src/cli/recipe/package-json/sync-ownership.d.ts +3 -3
- package/build/src/cli/recipe/package-json/sync-ownership.d.ts.map +1 -1
- package/build/src/cli/recipe/package-json/sync-ownership.js +106 -106
- package/build/src/cli/recipe/package-json/sync-ownership.js.map +1 -1
- package/build/src/cli/scaffold/app/expressjs.d.ts +5 -0
- package/build/src/cli/scaffold/app/expressjs.d.ts.map +1 -0
- package/build/src/cli/scaffold/app/expressjs.js +8 -0
- package/build/src/cli/scaffold/app/expressjs.js.map +1 -0
- package/build/src/cli/scaffold/app/nextjs.d.ts +5 -0
- package/build/src/cli/scaffold/app/nextjs.d.ts.map +1 -0
- package/build/src/cli/scaffold/app/nextjs.js +8 -0
- package/build/src/cli/scaffold/app/nextjs.js.map +1 -0
- package/build/src/cli/scaffold/app/vite.d.ts +5 -0
- package/build/src/cli/scaffold/app/vite.d.ts.map +1 -0
- package/build/src/cli/scaffold/app/vite.js +8 -0
- package/build/src/cli/scaffold/app/vite.js.map +1 -0
- package/build/src/cli/scaffold/app/workers.d.ts +5 -0
- package/build/src/cli/scaffold/app/workers.d.ts.map +1 -0
- package/build/src/cli/scaffold/app/workers.js +8 -0
- package/build/src/cli/scaffold/app/workers.js.map +1 -0
- package/build/src/cli/scaffold/docs/docusaurus.d.ts +5 -0
- package/build/src/cli/scaffold/docs/docusaurus.d.ts.map +1 -0
- package/build/src/cli/scaffold/docs/docusaurus.js +8 -0
- package/build/src/cli/scaffold/docs/docusaurus.js.map +1 -0
- package/build/src/cli/scaffold/starter/base.d.ts +5 -0
- package/build/src/cli/scaffold/starter/base.d.ts.map +1 -0
- package/build/src/cli/scaffold/starter/base.js +132 -0
- package/build/src/cli/scaffold/starter/base.js.map +1 -0
- package/build/src/cli/utility/changelog.d.ts +3 -3
- package/build/src/cli/utility/changelog.d.ts.map +1 -1
- package/build/src/cli/utility/changelog.js +206 -172
- package/build/src/cli/utility/changelog.js.map +1 -1
- package/build/src/cli/utility/initialize.d.ts +6 -3
- package/build/src/cli/utility/initialize.d.ts.map +1 -1
- package/build/src/cli/utility/initialize.js +990 -265
- package/build/src/cli/utility/initialize.js.map +1 -1
- package/build/src/cli/utility/run-recipes.d.ts +3 -3
- package/build/src/cli/utility/run-recipes.d.ts.map +1 -1
- package/build/src/cli/utility/run-recipes.js +15 -14
- package/build/src/cli/utility/run-recipes.js.map +1 -1
- package/build/src/cli/utility/run-scripts.d.ts +4 -4
- package/build/src/cli/utility/run-scripts.d.ts.map +1 -1
- package/build/src/cli/utility/run-scripts.js +167 -70
- package/build/src/cli/utility/run-scripts.js.map +1 -1
- package/build/src/cli/utility/transpile.d.ts +3 -3
- package/build/src/cli/utility/transpile.d.ts.map +1 -1
- package/build/src/cli/utility/transpile.js +24 -19
- package/build/src/cli/utility/transpile.js.map +1 -1
- package/build/src/cli/utility/type-check.d.ts +3 -3
- package/build/src/cli/utility/type-check.d.ts.map +1 -1
- package/build/src/cli/utility/type-check.js +24 -19
- package/build/src/cli/utility/type-check.js.map +1 -1
- package/build/src/cli/utility/version.d.ts +3 -3
- package/build/src/cli/utility/version.d.ts.map +1 -1
- package/build/src/cli/utility/version.js +126 -68
- package/build/src/cli/utility/version.js.map +1 -1
- package/build/src/lib/item.d.ts +31 -29
- package/build/src/lib/item.d.ts.map +1 -1
- package/build/src/lib/item.js +106 -43
- package/build/src/lib/item.js.map +1 -1
- package/build/src/lib/nova-config.d.ts +6 -5
- package/build/src/lib/nova-config.d.ts.map +1 -1
- package/build/src/lib/nova-config.js +217 -59
- package/build/src/lib/nova-config.js.map +1 -1
- package/build/src/lib/regex.d.ts +92 -26
- package/build/src/lib/regex.d.ts.map +1 -1
- package/build/src/lib/regex.js +92 -26
- package/build/src/lib/regex.js.map +1 -1
- package/build/src/lib/scaffold.d.ts +10 -0
- package/build/src/lib/scaffold.d.ts.map +1 -0
- package/build/src/lib/scaffold.js +542 -0
- package/build/src/lib/scaffold.js.map +1 -0
- package/build/src/lib/schema.d.ts +2 -9
- package/build/src/lib/schema.d.ts.map +1 -1
- package/build/src/lib/schema.js +6 -8
- package/build/src/lib/schema.js.map +1 -1
- package/build/src/lib/utility.d.ts +21 -18
- package/build/src/lib/utility.d.ts.map +1 -1
- package/build/src/lib/utility.js +173 -79
- package/build/src/lib/utility.js.map +1 -1
- package/build/src/lib/workflow-templates.d.ts +3 -0
- package/build/src/lib/workflow-templates.d.ts.map +1 -0
- package/build/src/lib/workflow-templates.js +187 -0
- package/build/src/lib/workflow-templates.js.map +1 -0
- package/build/src/presets/eslint/dx-code-style.d.ts +4 -0
- package/build/src/presets/eslint/dx-code-style.d.ts.map +1 -0
- package/build/src/presets/eslint/dx-code-style.js +523 -0
- package/build/src/presets/eslint/dx-code-style.js.map +1 -0
- package/build/src/presets/eslint/dx-ignore.d.ts +4 -0
- package/build/src/presets/eslint/dx-ignore.d.ts.map +1 -0
- package/build/src/presets/eslint/{dx-ignore.mjs → dx-ignore.js} +1 -1
- package/build/src/presets/eslint/dx-ignore.js.map +1 -0
- package/build/src/presets/eslint/fw-docusaurus.d.ts +4 -0
- package/build/src/presets/eslint/fw-docusaurus.d.ts.map +1 -0
- package/build/src/presets/eslint/fw-docusaurus.js +6 -0
- package/build/src/presets/eslint/fw-docusaurus.js.map +1 -0
- package/build/src/presets/eslint/fw-expressjs.d.ts +4 -0
- package/build/src/presets/eslint/fw-expressjs.d.ts.map +1 -0
- package/build/src/presets/eslint/{fw-expressjs.mjs → fw-expressjs.js} +3 -5
- package/build/src/presets/eslint/fw-expressjs.js.map +1 -0
- package/build/src/presets/eslint/fw-nextjs.d.ts +4 -0
- package/build/src/presets/eslint/fw-nextjs.d.ts.map +1 -0
- package/build/src/presets/eslint/{fw-nextjs.mjs → fw-nextjs.js} +3 -5
- package/build/src/presets/eslint/fw-nextjs.js.map +1 -0
- package/build/src/presets/eslint/index.d.ts +16 -0
- package/build/src/presets/eslint/index.d.ts.map +1 -0
- package/build/src/presets/eslint/index.js +16 -0
- package/build/src/presets/eslint/index.js.map +1 -0
- package/build/src/presets/eslint/lang-javascript.d.ts +4 -0
- package/build/src/presets/eslint/lang-javascript.d.ts.map +1 -0
- package/build/src/presets/eslint/lang-javascript.js +34 -0
- package/build/src/presets/eslint/lang-javascript.js.map +1 -0
- package/build/src/presets/eslint/lang-mdx.d.ts +4 -0
- package/build/src/presets/eslint/lang-mdx.d.ts.map +1 -0
- package/build/src/presets/eslint/{lang-mdx.mjs → lang-mdx.js} +4 -8
- package/build/src/presets/eslint/lang-mdx.js.map +1 -0
- package/build/src/presets/eslint/lang-typescript.d.ts +4 -0
- package/build/src/presets/eslint/lang-typescript.d.ts.map +1 -0
- package/build/src/presets/eslint/lang-typescript.js +148 -0
- package/build/src/presets/eslint/lang-typescript.js.map +1 -0
- package/build/src/presets/eslint/runtime-browser.d.ts +4 -0
- package/build/src/presets/eslint/runtime-browser.d.ts.map +1 -0
- package/build/src/presets/eslint/{env-web-worker.mjs → runtime-browser.js} +1 -1
- package/build/src/presets/eslint/runtime-browser.js.map +1 -0
- package/build/src/presets/eslint/runtime-cloudflare-workers.d.ts +4 -0
- package/build/src/presets/eslint/runtime-cloudflare-workers.d.ts.map +1 -0
- package/build/src/presets/eslint/runtime-cloudflare-workers.js +6 -0
- package/build/src/presets/eslint/runtime-cloudflare-workers.js.map +1 -0
- package/build/src/presets/eslint/runtime-edge.d.ts +4 -0
- package/build/src/presets/eslint/runtime-edge.d.ts.map +1 -0
- package/build/src/presets/eslint/{env-edge.mjs → runtime-edge.js} +1 -1
- package/build/src/presets/eslint/runtime-edge.js.map +1 -0
- package/build/src/presets/eslint/runtime-node.d.ts +4 -0
- package/build/src/presets/eslint/runtime-node.d.ts.map +1 -0
- package/build/src/presets/eslint/{env-node.mjs → runtime-node.js} +4 -4
- package/build/src/presets/eslint/runtime-node.js.map +1 -0
- package/build/src/presets/eslint/runtime-service-worker.d.ts +4 -0
- package/build/src/presets/eslint/runtime-service-worker.d.ts.map +1 -0
- package/build/src/presets/eslint/runtime-service-worker.js +3 -0
- package/build/src/presets/eslint/runtime-service-worker.js.map +1 -0
- package/build/src/presets/eslint/runtime-web-worker.d.ts +4 -0
- package/build/src/presets/eslint/runtime-web-worker.d.ts.map +1 -0
- package/build/src/presets/eslint/runtime-web-worker.js +3 -0
- package/build/src/presets/eslint/runtime-web-worker.js.map +1 -0
- package/build/src/presets/eslint/tool-vite.d.ts +4 -0
- package/build/src/presets/eslint/tool-vite.d.ts.map +1 -0
- package/build/src/presets/eslint/{tool-vite.mjs → tool-vite.js} +3 -5
- package/build/src/presets/eslint/tool-vite.js.map +1 -0
- package/build/src/presets/tsconfig/dx-strict.json +1 -0
- package/build/src/presets/tsconfig/runtime-cloudflare-workers.json +12 -0
- package/build/src/presets/tsconfig/{platform-cloudflare-workers.json → runtime-web-worker.json} +2 -2
- package/build/src/rules/eslint/conventions/no-default-export-declaration.d.ts +11 -0
- package/build/src/rules/eslint/conventions/no-default-export-declaration.d.ts.map +1 -0
- package/build/src/rules/eslint/conventions/no-default-export-declaration.js +73 -0
- package/build/src/rules/eslint/conventions/no-default-export-declaration.js.map +1 -0
- package/build/src/rules/eslint/conventions/no-implicit-boolean.d.ts +15 -0
- package/build/src/rules/eslint/conventions/no-implicit-boolean.d.ts.map +1 -0
- package/build/src/rules/eslint/conventions/no-implicit-boolean.js +140 -0
- package/build/src/rules/eslint/conventions/no-implicit-boolean.js.map +1 -0
- package/build/src/rules/eslint/conventions/require-explicit-return.d.ts +15 -0
- package/build/src/rules/eslint/conventions/require-explicit-return.d.ts.map +1 -0
- package/build/src/rules/eslint/conventions/require-explicit-return.js +184 -0
- package/build/src/rules/eslint/conventions/require-explicit-return.js.map +1 -0
- package/build/src/rules/eslint/conventions/require-hash-private.d.ts +12 -0
- package/build/src/rules/eslint/conventions/require-hash-private.d.ts.map +1 -0
- package/build/src/rules/eslint/conventions/require-hash-private.js +67 -0
- package/build/src/rules/eslint/conventions/require-hash-private.js.map +1 -0
- package/build/src/rules/eslint/conventions/require-kebab-case-filename.d.ts +14 -0
- package/build/src/rules/eslint/conventions/require-kebab-case-filename.d.ts.map +1 -0
- package/build/src/rules/eslint/conventions/require-kebab-case-filename.js +95 -0
- package/build/src/rules/eslint/conventions/require-kebab-case-filename.js.map +1 -0
- package/build/src/rules/eslint/conventions/require-naming-convention.d.ts +34 -0
- package/build/src/rules/eslint/conventions/require-naming-convention.d.ts.map +1 -0
- package/build/src/rules/eslint/conventions/require-naming-convention.js +382 -0
- package/build/src/rules/eslint/conventions/require-naming-convention.js.map +1 -0
- package/build/src/rules/eslint/conventions/require-undefined-init.d.ts +11 -0
- package/build/src/rules/eslint/conventions/require-undefined-init.d.ts.map +1 -0
- package/build/src/rules/eslint/conventions/require-undefined-init.js +71 -0
- package/build/src/rules/eslint/conventions/require-undefined-init.js.map +1 -0
- package/build/src/rules/eslint/conventions/switch-case-blocks.d.ts +13 -0
- package/build/src/rules/eslint/conventions/switch-case-blocks.d.ts.map +1 -0
- package/build/src/rules/eslint/conventions/switch-case-blocks.js +82 -0
- package/build/src/rules/eslint/conventions/switch-case-blocks.js.map +1 -0
- package/build/src/rules/eslint/formatting/no-complex-arrow-concise.d.ts +15 -0
- package/build/src/rules/eslint/formatting/no-complex-arrow-concise.d.ts.map +1 -0
- package/build/src/rules/eslint/formatting/no-complex-arrow-concise.js +166 -0
- package/build/src/rules/eslint/formatting/no-complex-arrow-concise.js.map +1 -0
- package/build/src/rules/eslint/formatting/no-multiline-strings.d.ts +15 -0
- package/build/src/rules/eslint/formatting/no-multiline-strings.d.ts.map +1 -0
- package/build/src/rules/eslint/formatting/no-multiline-strings.js +162 -0
- package/build/src/rules/eslint/formatting/no-multiline-strings.js.map +1 -0
- package/build/src/rules/eslint/formatting/no-raw-text-in-code.d.ts +9 -4
- package/build/src/rules/eslint/formatting/no-raw-text-in-code.d.ts.map +1 -1
- package/build/src/rules/eslint/formatting/no-raw-text-in-code.js +53 -30
- package/build/src/rules/eslint/formatting/no-raw-text-in-code.js.map +1 -1
- package/build/src/rules/eslint/formatting/no-ternary-in-template-literal.d.ts +11 -0
- package/build/src/rules/eslint/formatting/no-ternary-in-template-literal.d.ts.map +1 -0
- package/build/src/rules/eslint/formatting/no-ternary-in-template-literal.js +55 -0
- package/build/src/rules/eslint/formatting/no-ternary-in-template-literal.js.map +1 -0
- package/build/src/rules/eslint/formatting/require-import-order.d.ts +14 -0
- package/build/src/rules/eslint/formatting/require-import-order.d.ts.map +1 -0
- package/build/src/rules/eslint/formatting/require-import-order.js +187 -0
- package/build/src/rules/eslint/formatting/require-import-order.js.map +1 -0
- package/build/src/rules/eslint/formatting/require-multiline-condition-groups.d.ts +13 -0
- package/build/src/rules/eslint/formatting/require-multiline-condition-groups.d.ts.map +1 -0
- package/build/src/rules/eslint/formatting/require-multiline-condition-groups.js +138 -0
- package/build/src/rules/eslint/formatting/require-multiline-condition-groups.js.map +1 -0
- package/build/src/rules/eslint/formatting/require-multiline-conditions.d.ts +13 -0
- package/build/src/rules/eslint/formatting/require-multiline-conditions.d.ts.map +1 -0
- package/build/src/rules/eslint/formatting/require-multiline-conditions.js +94 -0
- package/build/src/rules/eslint/formatting/require-multiline-conditions.js.map +1 -0
- package/build/src/rules/eslint/formatting/require-padding-lines.d.ts +23 -11
- package/build/src/rules/eslint/formatting/require-padding-lines.d.ts.map +1 -1
- package/build/src/rules/eslint/formatting/require-padding-lines.js +291 -155
- package/build/src/rules/eslint/formatting/require-padding-lines.js.map +1 -1
- package/build/src/rules/eslint/formatting/require-ternary-parens.d.ts +11 -0
- package/build/src/rules/eslint/formatting/require-ternary-parens.d.ts.map +1 -0
- package/build/src/rules/eslint/formatting/require-ternary-parens.js +76 -0
- package/build/src/rules/eslint/formatting/require-ternary-parens.js.map +1 -0
- package/build/src/rules/eslint/index.d.ts +44 -14
- package/build/src/rules/eslint/index.d.ts.map +1 -1
- package/build/src/rules/eslint/index.js +44 -14
- package/build/src/rules/eslint/index.js.map +1 -1
- package/build/src/rules/eslint/jsdoc/require-jsdoc-body.d.ts +15 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-body.d.ts.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-body.js +176 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-body.js.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-hierarchy.d.ts +26 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-hierarchy.d.ts.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-hierarchy.js +495 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-hierarchy.js.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-param-alignment.d.ts +12 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-param-alignment.d.ts.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-param-alignment.js +144 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-param-alignment.js.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-param-name.d.ts +12 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-param-name.d.ts.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-param-name.js +97 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-param-name.js.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-private.d.ts +11 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-private.d.ts.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-private.js +90 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-private.js.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-since.d.ts +11 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-since.d.ts.map +1 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-since.js +88 -0
- package/build/src/rules/eslint/jsdoc/require-jsdoc-since.js.map +1 -0
- package/build/src/rules/eslint/nova/no-logger-dev.d.ts +11 -4
- package/build/src/rules/eslint/nova/no-logger-dev.d.ts.map +1 -1
- package/build/src/rules/eslint/nova/no-logger-dev.js +104 -82
- package/build/src/rules/eslint/nova/no-logger-dev.js.map +1 -1
- package/build/src/rules/eslint/patterns/no-assign-then-return.d.ts +9 -4
- package/build/src/rules/eslint/patterns/no-assign-then-return.d.ts.map +1 -1
- package/build/src/rules/eslint/patterns/no-assign-then-return.js +92 -51
- package/build/src/rules/eslint/patterns/no-assign-then-return.js.map +1 -1
- package/build/src/rules/eslint/patterns/no-await-in-loop.d.ts +17 -0
- package/build/src/rules/eslint/patterns/no-await-in-loop.d.ts.map +1 -0
- package/build/src/rules/eslint/patterns/no-await-in-loop.js +103 -0
- package/build/src/rules/eslint/patterns/no-await-in-loop.js.map +1 -0
- package/build/src/rules/eslint/patterns/no-boolean-var-for-if.d.ts +11 -0
- package/build/src/rules/eslint/patterns/no-boolean-var-for-if.d.ts.map +1 -0
- package/build/src/rules/eslint/patterns/no-boolean-var-for-if.js +100 -0
- package/build/src/rules/eslint/patterns/no-boolean-var-for-if.js.map +1 -0
- package/build/src/rules/eslint/patterns/no-bracket-assignment.d.ts +9 -4
- package/build/src/rules/eslint/patterns/no-bracket-assignment.d.ts.map +1 -1
- package/build/src/rules/eslint/patterns/no-bracket-assignment.js +60 -22
- package/build/src/rules/eslint/patterns/no-bracket-assignment.js.map +1 -1
- package/build/src/rules/eslint/patterns/no-bracket-method-call.d.ts +12 -0
- package/build/src/rules/eslint/patterns/no-bracket-method-call.d.ts.map +1 -0
- package/build/src/rules/eslint/patterns/no-bracket-method-call.js +86 -0
- package/build/src/rules/eslint/patterns/no-bracket-method-call.js.map +1 -0
- package/build/src/rules/eslint/patterns/no-template-curly-in-string.d.ts +11 -0
- package/build/src/rules/eslint/patterns/no-template-curly-in-string.d.ts.map +1 -0
- package/build/src/rules/eslint/patterns/no-template-curly-in-string.js +77 -0
- package/build/src/rules/eslint/patterns/no-template-curly-in-string.js.map +1 -0
- package/build/src/rules/eslint/patterns/no-use-before-define.d.ts +15 -0
- package/build/src/rules/eslint/patterns/no-use-before-define.d.ts.map +1 -0
- package/build/src/rules/eslint/patterns/no-use-before-define.js +148 -0
- package/build/src/rules/eslint/patterns/no-use-before-define.js.map +1 -0
- package/build/src/rules/eslint/regex/no-regex-literal-flags.d.ts +9 -4
- package/build/src/rules/eslint/regex/no-regex-literal-flags.d.ts.map +1 -1
- package/build/src/rules/eslint/regex/no-regex-literal-flags.js +51 -26
- package/build/src/rules/eslint/regex/no-regex-literal-flags.js.map +1 -1
- package/build/src/rules/eslint/regex/no-regex-literals.d.ts +10 -7
- package/build/src/rules/eslint/regex/no-regex-literals.d.ts.map +1 -1
- package/build/src/rules/eslint/regex/no-regex-literals.js +62 -45
- package/build/src/rules/eslint/regex/no-regex-literals.js.map +1 -1
- package/build/src/rules/eslint/safety/no-script-url.d.ts +12 -0
- package/build/src/rules/eslint/safety/no-script-url.d.ts.map +1 -0
- package/build/src/rules/eslint/safety/no-script-url.js +71 -0
- package/build/src/rules/eslint/safety/no-script-url.js.map +1 -0
- package/build/src/rules/eslint/syntax/no-destructuring.d.ts +21 -0
- package/build/src/rules/eslint/syntax/no-destructuring.d.ts.map +1 -0
- package/build/src/rules/eslint/syntax/no-destructuring.js +219 -0
- package/build/src/rules/eslint/syntax/no-destructuring.js.map +1 -0
- package/build/src/rules/eslint/syntax/no-numeric-literals.d.ts +14 -0
- package/build/src/rules/eslint/syntax/no-numeric-literals.d.ts.map +1 -0
- package/build/src/rules/eslint/syntax/no-numeric-literals.js +108 -0
- package/build/src/rules/eslint/syntax/no-numeric-literals.js.map +1 -0
- package/build/src/rules/eslint/syntax/no-optional-chaining.d.ts +11 -0
- package/build/src/rules/eslint/syntax/no-optional-chaining.d.ts.map +1 -0
- package/build/src/rules/eslint/syntax/no-optional-chaining.js +51 -0
- package/build/src/rules/eslint/syntax/no-optional-chaining.js.map +1 -0
- package/build/src/rules/eslint/syntax/no-rest-params.d.ts +15 -0
- package/build/src/rules/eslint/syntax/no-rest-params.d.ts.map +1 -0
- package/build/src/rules/eslint/syntax/no-rest-params.js +158 -0
- package/build/src/rules/eslint/syntax/no-rest-params.js.map +1 -0
- package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.d.ts +9 -4
- package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.d.ts.map +1 -1
- package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.js +61 -34
- package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.js.map +1 -1
- package/build/src/rules/eslint/typescript/no-explicit-any.d.ts +11 -0
- package/build/src/rules/eslint/typescript/no-explicit-any.d.ts.map +1 -0
- package/build/src/rules/eslint/typescript/no-explicit-any.js +51 -0
- package/build/src/rules/eslint/typescript/no-explicit-any.js.map +1 -0
- package/build/src/rules/eslint/typescript/no-inline-type-annotation.d.ts +14 -4
- package/build/src/rules/eslint/typescript/no-inline-type-annotation.d.ts.map +1 -1
- package/build/src/rules/eslint/typescript/no-inline-type-annotation.js +180 -30
- package/build/src/rules/eslint/typescript/no-inline-type-annotation.js.map +1 -1
- package/build/src/rules/eslint/typescript/no-shared-type-import.d.ts +10 -7
- package/build/src/rules/eslint/typescript/no-shared-type-import.d.ts.map +1 -1
- package/build/src/rules/eslint/typescript/no-shared-type-import.js +65 -51
- package/build/src/rules/eslint/typescript/no-shared-type-import.js.map +1 -1
- package/build/src/rules/eslint/typescript/require-bracket-property-access.d.ts +12 -0
- package/build/src/rules/eslint/typescript/require-bracket-property-access.d.ts.map +1 -0
- package/build/src/rules/eslint/typescript/require-bracket-property-access.js +115 -0
- package/build/src/rules/eslint/typescript/require-bracket-property-access.js.map +1 -0
- package/build/src/rules/eslint/typescript/require-type-naming.d.ts +12 -0
- package/build/src/rules/eslint/typescript/require-type-naming.d.ts.map +1 -0
- package/build/src/rules/eslint/typescript/require-type-naming.js +98 -0
- package/build/src/rules/eslint/typescript/require-type-naming.js.map +1 -0
- package/build/src/toolkit/bootstrap.d.ts +13 -0
- package/build/src/toolkit/bootstrap.d.ts.map +1 -0
- package/build/src/toolkit/bootstrap.js +175 -0
- package/build/src/toolkit/bootstrap.js.map +1 -0
- package/build/src/toolkit/cli-header.d.ts +5 -4
- package/build/src/toolkit/cli-header.d.ts.map +1 -1
- package/build/src/toolkit/cli-header.js +76 -62
- package/build/src/toolkit/cli-header.js.map +1 -1
- package/build/src/toolkit/index.d.ts +1 -0
- package/build/src/toolkit/index.d.ts.map +1 -1
- package/build/src/toolkit/index.js +1 -0
- package/build/src/toolkit/index.js.map +1 -1
- package/build/src/toolkit/logger.d.ts +9 -8
- package/build/src/toolkit/logger.d.ts.map +1 -1
- package/build/src/toolkit/logger.js +51 -32
- package/build/src/toolkit/logger.js.map +1 -1
- package/build/src/toolkit/markdown-table.d.ts +6 -5
- package/build/src/toolkit/markdown-table.d.ts.map +1 -1
- package/build/src/toolkit/markdown-table.js +36 -20
- package/build/src/toolkit/markdown-table.js.map +1 -1
- package/build/src/types/api/node-releases.d.ts +51 -0
- package/build/src/types/api/spdx-licenses.d.ts +41 -0
- package/build/src/types/cli/generate/github/funding.d.ts +59 -0
- package/build/src/types/cli/generate/github/issue-template.d.ts +142 -0
- package/build/src/types/cli/generate/github/workflows.d.ts +338 -0
- package/build/src/types/cli/generate/must-haves/agent-conventions.d.ts +45 -0
- package/build/src/types/cli/generate/must-haves/dotenv.d.ts +421 -0
- package/build/src/types/cli/generate/must-haves/editorconfig.d.ts +35 -0
- package/build/src/types/cli/generate/must-haves/gitignore.d.ts +346 -0
- package/build/src/types/cli/generate/must-haves/license.d.ts +72 -0
- package/build/src/types/cli/generate/must-haves/read-me.d.ts +176 -0
- package/build/src/types/cli/index.d.ts +182 -0
- package/build/src/types/cli/recipe/index.d.ts +36 -0
- package/build/src/types/cli/recipe/package-json/cleanup.d.ts +125 -0
- package/build/src/types/cli/recipe/package-json/normalize-artifacts.d.ts +104 -0
- package/build/src/types/cli/recipe/package-json/normalize-bundler.d.ts +78 -0
- package/build/src/types/cli/recipe/package-json/normalize-dependencies.d.ts +150 -0
- package/build/src/types/cli/recipe/package-json/normalize-modules.d.ts +76 -0
- package/build/src/types/cli/recipe/package-json/normalize-tooling.d.ts +89 -0
- package/build/src/types/cli/recipe/package-json/sync-environment.d.ts +140 -0
- package/build/src/types/cli/recipe/package-json/sync-identity.d.ts +107 -0
- package/build/src/types/cli/recipe/package-json/sync-ownership.d.ts +152 -0
- package/build/src/types/cli/scaffold/app/expressjs.d.ts +21 -0
- package/build/src/types/cli/scaffold/app/nextjs.d.ts +21 -0
- package/build/src/types/cli/scaffold/app/vite.d.ts +21 -0
- package/build/src/types/cli/scaffold/app/workers.d.ts +21 -0
- package/build/src/types/cli/scaffold/docs/docusaurus.d.ts +21 -0
- package/build/src/types/cli/scaffold/starter/base.d.ts +57 -0
- package/build/src/types/cli/utility/changelog.d.ts +381 -0
- package/build/src/types/cli/utility/initialize.d.ts +1185 -0
- package/build/src/types/cli/utility/run-recipes.d.ts +25 -0
- package/build/src/types/cli/utility/run-scripts.d.ts +133 -0
- package/build/src/types/cli/utility/transpile.d.ts +90 -0
- package/build/src/types/cli/utility/type-check.d.ts +88 -0
- package/build/src/types/cli/utility/version.d.ts +286 -0
- package/build/src/types/fetch-response.d.ts +12 -0
- package/build/src/types/lib/item.d.ts +536 -0
- package/build/src/types/lib/nova-config.d.ts +421 -0
- package/build/src/types/lib/scaffold.d.ts +344 -0
- package/build/src/types/lib/utility.d.ts +486 -0
- package/build/src/types/lib/workflow-templates.d.ts +48 -0
- package/build/src/types/presets/eslint/dx-code-style.d.ts +8 -0
- package/build/src/types/presets/eslint/dx-ignore.d.ts +8 -0
- package/build/src/types/presets/eslint/fw-docusaurus.d.ts +8 -0
- package/build/src/types/presets/eslint/fw-expressjs.d.ts +8 -0
- package/build/src/types/presets/eslint/fw-nextjs.d.ts +8 -0
- package/build/src/types/presets/eslint/lang-javascript.d.ts +8 -0
- package/build/src/types/presets/eslint/lang-mdx.d.ts +8 -0
- package/build/src/types/presets/eslint/lang-typescript.d.ts +8 -0
- package/build/src/types/presets/eslint/runtime-browser.d.ts +8 -0
- package/build/src/types/presets/eslint/runtime-cloudflare-workers.d.ts +8 -0
- package/build/src/types/presets/eslint/runtime-edge.d.ts +8 -0
- package/build/src/types/presets/eslint/runtime-node.d.ts +8 -0
- package/build/src/types/presets/eslint/runtime-service-worker.d.ts +8 -0
- package/build/src/types/presets/eslint/runtime-web-worker.d.ts +8 -0
- package/build/src/types/presets/eslint/tool-vite.d.ts +8 -0
- package/build/src/types/rules/eslint/conventions/no-default-export-declaration.d.ts +32 -0
- package/build/src/types/rules/eslint/conventions/no-implicit-boolean.d.ts +72 -0
- package/build/src/types/rules/eslint/conventions/require-explicit-return.d.ts +73 -0
- package/build/src/types/rules/eslint/conventions/require-hash-private.d.ts +31 -0
- package/build/src/types/rules/eslint/conventions/require-kebab-case-filename.d.ts +64 -0
- package/build/src/types/rules/eslint/conventions/require-naming-convention.d.ts +265 -0
- package/build/src/types/rules/eslint/conventions/require-undefined-init.d.ts +30 -0
- package/build/src/types/rules/eslint/conventions/switch-case-blocks.d.ts +48 -0
- package/build/src/types/rules/eslint/formatting/no-complex-arrow-concise.d.ts +74 -0
- package/build/src/types/rules/eslint/formatting/no-multiline-strings.d.ts +104 -0
- package/build/src/types/rules/eslint/formatting/no-raw-text-in-code.d.ts +28 -0
- package/build/src/types/rules/eslint/formatting/no-ternary-in-template-literal.d.ts +26 -0
- package/build/src/types/rules/eslint/formatting/require-import-order.d.ts +91 -0
- package/build/src/types/rules/eslint/formatting/require-multiline-condition-groups.d.ts +64 -0
- package/build/src/types/rules/eslint/formatting/require-multiline-conditions.d.ts +52 -0
- package/build/src/types/rules/eslint/formatting/require-padding-lines.d.ts +212 -0
- package/build/src/types/rules/eslint/formatting/require-ternary-parens.d.ts +32 -0
- package/build/src/types/rules/eslint/jsdoc/require-jsdoc-body.d.ts +56 -0
- package/build/src/types/rules/eslint/jsdoc/require-jsdoc-hierarchy.d.ts +302 -0
- package/build/src/types/rules/eslint/jsdoc/require-jsdoc-param-alignment.d.ts +108 -0
- package/build/src/types/rules/eslint/jsdoc/require-jsdoc-param-name.d.ts +61 -0
- package/build/src/types/rules/eslint/jsdoc/require-jsdoc-private.d.ts +40 -0
- package/build/src/types/rules/eslint/jsdoc/require-jsdoc-since.d.ts +30 -0
- package/build/src/types/rules/eslint/nova/no-logger-dev.d.ts +60 -0
- package/build/src/types/rules/eslint/patterns/no-assign-then-return.d.ts +42 -0
- package/build/src/types/rules/eslint/patterns/no-await-in-loop.d.ts +87 -0
- package/build/src/types/rules/eslint/patterns/no-boolean-var-for-if.d.ts +48 -0
- package/build/src/types/rules/eslint/patterns/no-bracket-assignment.d.ts +34 -0
- package/build/src/types/rules/eslint/patterns/no-bracket-method-call.d.ts +46 -0
- package/build/src/types/rules/eslint/patterns/no-template-curly-in-string.d.ts +32 -0
- package/build/src/types/rules/eslint/patterns/no-use-before-define.d.ts +84 -0
- package/build/src/types/rules/eslint/regex/no-regex-literal-flags.d.ts +26 -0
- package/build/src/types/rules/eslint/regex/no-regex-literals.d.ts +40 -0
- package/build/src/types/rules/eslint/safety/no-script-url.d.ts +37 -0
- package/build/src/types/rules/eslint/syntax/no-destructuring.d.ts +131 -0
- package/build/src/types/rules/eslint/syntax/no-numeric-literals.d.ts +57 -0
- package/build/src/types/rules/eslint/syntax/no-optional-chaining.d.ts +26 -0
- package/build/src/types/rules/eslint/syntax/no-rest-params.d.ts +78 -0
- package/build/src/types/rules/eslint/typescript/no-catch-unknown-annotation.d.ts +30 -0
- package/build/src/types/rules/eslint/typescript/no-explicit-any.d.ts +26 -0
- package/build/src/types/rules/eslint/typescript/no-inline-type-annotation.d.ts +94 -0
- package/build/src/types/rules/eslint/typescript/no-shared-type-import.d.ts +43 -0
- package/build/src/types/rules/eslint/typescript/require-bracket-property-access.d.ts +53 -0
- package/build/src/types/rules/eslint/typescript/require-type-naming.d.ts +51 -0
- package/build/src/types/shared.d.ts +731 -0
- package/build/src/types/tests/api/node-releases.test.d.ts +14 -0
- package/build/src/types/tests/api/spdx-licenses.test.d.ts +18 -0
- package/build/src/types/tests/cli/generate/github/funding.test.d.ts +26 -0
- package/build/src/types/tests/cli/generate/github/issue-template.test.d.ts +14 -0
- package/build/src/types/tests/cli/generate/github/workflows.test.d.ts +38 -0
- package/build/src/types/tests/cli/generate/must-haves/agent-conventions.test.d.ts +32 -0
- package/build/src/types/tests/cli/generate/must-haves/dotenv.test.d.ts +14 -0
- package/build/src/types/tests/cli/generate/must-haves/editorconfig.test.d.ts +22 -0
- package/build/src/types/tests/cli/generate/must-haves/gitignore.test.d.ts +14 -0
- package/build/src/types/tests/cli/generate/must-haves/license.test.d.ts +26 -0
- package/build/src/types/tests/cli/generate/must-haves/read-me.test.d.ts +26 -0
- package/build/src/types/tests/cli/recipe/package-json/cleanup.test.d.ts +42 -0
- package/build/src/types/tests/cli/recipe/package-json/normalize-artifacts.test.d.ts +32 -0
- package/build/src/types/tests/cli/recipe/package-json/normalize-bundler.test.d.ts +32 -0
- package/build/src/types/tests/cli/recipe/package-json/normalize-dependencies.test.d.ts +40 -0
- package/build/src/types/tests/cli/recipe/package-json/normalize-modules.test.d.ts +32 -0
- package/build/src/types/tests/cli/recipe/package-json/normalize-tooling.test.d.ts +32 -0
- package/build/src/types/tests/cli/recipe/package-json/sync-environment.test.d.ts +32 -0
- package/build/src/types/tests/cli/recipe/package-json/sync-identity.test.d.ts +32 -0
- package/build/src/types/tests/cli/recipe/package-json/sync-ownership.test.d.ts +32 -0
- package/build/src/types/tests/cli/scaffold/app/expressjs.test.d.ts +40 -0
- package/build/src/types/tests/cli/scaffold/app/nextjs.test.d.ts +42 -0
- package/build/src/types/tests/cli/scaffold/app/vite.test.d.ts +42 -0
- package/build/src/types/tests/cli/scaffold/app/workers.test.d.ts +40 -0
- package/build/src/types/tests/cli/scaffold/docs/docusaurus.test.d.ts +40 -0
- package/build/src/types/tests/cli/scaffold/starter/base.test.d.ts +40 -0
- package/build/src/types/tests/cli/utility/changelog.test.d.ts +68 -0
- package/build/src/types/tests/cli/utility/initialize.test.d.ts +14 -0
- package/build/src/types/tests/cli/utility/run-recipes.test.d.ts +22 -0
- package/build/src/types/tests/cli/utility/run-scripts.test.d.ts +52 -0
- package/build/src/types/tests/cli/utility/transpile.test.d.ts +26 -0
- package/build/src/types/tests/cli/utility/type-check.test.d.ts +22 -0
- package/build/src/types/tests/cli/utility/version.test.d.ts +12 -0
- package/build/src/types/tests/lib/item.test.d.ts +88 -0
- package/build/src/types/tests/lib/nova-config.test.d.ts +138 -0
- package/build/src/types/tests/lib/regex.test.d.ts +122 -0
- package/build/src/types/tests/lib/scaffold.test.d.ts +26 -0
- package/build/src/types/tests/lib/schema.test.d.ts +36 -0
- package/build/src/types/tests/lib/utility.test.d.ts +324 -0
- package/build/src/types/tests/lib/workflow-templates.test.d.ts +77 -0
- package/build/src/types/tests/rules/eslint/conventions/no-default-export-declaration.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/conventions/no-implicit-boolean.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/conventions/require-explicit-return.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/conventions/require-hash-private.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/conventions/require-kebab-case-filename.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/conventions/require-naming-convention.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/conventions/require-undefined-init.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/conventions/switch-case-blocks.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/formatting/no-complex-arrow-concise.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/formatting/no-multiline-strings.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/formatting/no-raw-text-in-code.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/formatting/no-ternary-in-template-literal.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/formatting/require-import-order.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/formatting/require-multiline-condition-groups.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/formatting/require-multiline-conditions.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/formatting/require-padding-lines.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/formatting/require-ternary-parens.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-body.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-hierarchy.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-param-alignment.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-param-name.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-private.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-since.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/nova/no-logger-dev.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/patterns/no-assign-then-return.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/patterns/no-await-in-loop.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/patterns/no-boolean-var-for-if.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/patterns/no-bracket-assignment.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/patterns/no-bracket-method-call.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/patterns/no-template-curly-in-string.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/patterns/no-use-before-define.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/regex/no-regex-literal-flags.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/regex/no-regex-literals.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/safety/no-script-url.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/syntax/no-destructuring.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/syntax/no-numeric-literals.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/syntax/no-optional-chaining.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/syntax/no-rest-params.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/typescript/no-explicit-any.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/typescript/no-inline-type-annotation.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/typescript/no-shared-type-import.test.d.ts +8 -0
- package/build/src/types/tests/rules/eslint/typescript/require-bracket-property-access.test.d.ts +12 -0
- package/build/src/types/tests/rules/eslint/typescript/require-type-naming.test.d.ts +8 -0
- package/build/src/types/tests/toolkit/bootstrap.test.d.ts +108 -0
- package/build/src/types/tests/toolkit/cli-header.test.d.ts +46 -0
- package/build/src/types/tests/toolkit/logger.test.d.ts +20 -0
- package/build/src/types/tests/toolkit/markdown-table.test.d.ts +65 -0
- package/build/src/types/tests/type-declarations.test.d.ts +564 -0
- package/build/src/types/toolkit/bootstrap.d.ts +133 -0
- package/build/src/types/toolkit/cli-header.d.ts +203 -0
- package/build/src/types/toolkit/logger.d.ts +160 -0
- package/build/src/types/toolkit/markdown-table.d.ts +159 -0
- package/build/templates/generators/github/funding/FUNDING.yml +12 -0
- package/build/templates/generators/github/issue-template/BUG-REPORT.yml +86 -0
- package/build/templates/generators/github/issue-template/FEATURE-REQUEST.yml +61 -0
- package/build/templates/generators/github/issue-template/SUPPORT-REQUEST.yml +50 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/android.yml +16 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/apple.yml +23 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/csharp.yml +20 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/docker.yml +33 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/homebridge.yml +16 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/nodejs.yml +8 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/pfsense.yml +8 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/php.yml +8 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/python.yml +8 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/screenshots.yml +7 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/synology.yml +8 -0
- package/build/templates/generators/github/issue-template/bug-report-fields/web.yml +21 -0
- package/build/templates/generators/github/issue-template/config.yml +1 -0
- package/build/templates/generators/github/issue-template/legal-agreements/bug-report.yml +8 -0
- package/build/templates/generators/github/issue-template/legal-agreements/feature-request.yml +8 -0
- package/build/templates/generators/github/issue-template/legal-agreements/support-request.yml +8 -0
- package/build/templates/generators/github/workflows/check-sponsor-gated-issues/base.yml +57 -0
- package/build/templates/generators/github/workflows/lock-inactive-issues/base.yml +43 -0
- package/build/templates/generators/github/workflows/lock-inactive-issues/triggers/schedule.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-aws-amplify-nextjs/base.yml +53 -0
- package/build/templates/generators/github/workflows/publish-to-aws-amplify-nextjs/triggers/push.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-aws-amplify-nextjs/triggers/release.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-cloudflare-pages-docusaurus/base.yml +62 -0
- package/build/templates/generators/github/workflows/publish-to-cloudflare-pages-docusaurus/triggers/push.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-cloudflare-pages-docusaurus/triggers/release.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-docker-hub/base.yml +58 -0
- package/build/templates/generators/github/workflows/publish-to-docker-hub/triggers/release.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-docker-hub/triggers/workflow-run-any.yml +7 -0
- package/build/templates/generators/github/workflows/publish-to-docker-hub/triggers/workflow-run-failure.yml +8 -0
- package/build/templates/generators/github/workflows/publish-to-docker-hub/triggers/workflow-run-success.yml +8 -0
- package/build/templates/generators/github/workflows/publish-to-github-packages/base.yml +108 -0
- package/build/templates/generators/github/workflows/publish-to-github-packages/triggers/release.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-github-packages/triggers/workflow-run-any.yml +7 -0
- package/build/templates/generators/github/workflows/publish-to-github-packages/triggers/workflow-run-failure.yml +8 -0
- package/build/templates/generators/github/workflows/publish-to-github-packages/triggers/workflow-run-success.yml +8 -0
- package/build/templates/generators/github/workflows/publish-to-github-pages-docusaurus/base.yml +79 -0
- package/build/templates/generators/github/workflows/publish-to-github-pages-docusaurus/triggers/push.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-github-pages-docusaurus/triggers/release.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-npm/base.yml +91 -0
- package/build/templates/generators/github/workflows/publish-to-npm/triggers/release.yml +5 -0
- package/build/templates/generators/github/workflows/publish-to-npm/triggers/workflow-run-any.yml +7 -0
- package/build/templates/generators/github/workflows/publish-to-npm/triggers/workflow-run-failure.yml +8 -0
- package/build/templates/generators/github/workflows/publish-to-npm/triggers/workflow-run-success.yml +8 -0
- package/build/templates/generators/must-haves/agent-conventions/AGENTS.md +54 -0
- package/build/templates/generators/must-haves/agent-conventions/CLAUDE.md +54 -0
- package/build/templates/generators/must-haves/agent-conventions/PROJECT_RULES.md +290 -0
- package/build/templates/generators/must-haves/agent-conventions/VISION.md +62 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/csharp.md +317 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/css.md +188 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/docker.md +131 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/documentation.md +615 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/java.md +285 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/kotlin.md +297 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/php.md +257 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/python.md +260 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/shell.md +205 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/swift.md +312 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/typescript.md +1530 -0
- package/build/templates/generators/must-haves/agent-conventions/conventions/universal.md +202 -0
- package/build/templates/generators/must-haves/license/AGPL-3.0 +662 -0
- package/build/templates/generators/must-haves/license/Apache-2.0 +202 -0
- package/build/templates/generators/must-haves/license/BSD-2-Clause +25 -0
- package/build/templates/generators/must-haves/license/BSD-3-Clause +29 -0
- package/build/templates/generators/must-haves/license/BSL-1.0 +24 -0
- package/build/templates/generators/must-haves/license/CC0-1.0 +122 -0
- package/build/templates/generators/must-haves/license/EPL-2.0 +278 -0
- package/build/templates/generators/must-haves/license/GPL-2.0 +340 -0
- package/build/templates/generators/must-haves/license/GPL-3.0 +675 -0
- package/build/templates/generators/must-haves/license/LGPL-2.1 +505 -0
- package/build/templates/generators/must-haves/license/MIT +22 -0
- package/build/templates/generators/must-haves/license/MPL-2.0 +374 -0
- package/build/templates/generators/must-haves/license/Proprietary +22 -0
- package/build/templates/generators/must-haves/license/Unlicense +25 -0
- package/build/templates/generators/must-haves/read-me/README.md +17 -0
- package/build/templates/scaffold/app/express/package.json +20 -0
- package/build/templates/scaffold/app/express/src/index.ts +12 -0
- package/build/templates/scaffold/app/express/tsconfig.json +15 -0
- package/build/templates/scaffold/app/nextjs/next.config.mjs +4 -0
- package/build/templates/scaffold/app/nextjs/package.json +22 -0
- package/build/templates/scaffold/app/nextjs/src/app/globals.css +11 -0
- package/build/templates/scaffold/app/nextjs/src/app/layout.tsx +18 -0
- package/build/templates/scaffold/app/nextjs/src/app/page.tsx +8 -0
- package/build/templates/scaffold/app/nextjs/tsconfig.json +26 -0
- package/build/templates/scaffold/app/vite/index.html +12 -0
- package/build/templates/scaffold/app/vite/package.json +17 -0
- package/build/templates/scaffold/app/vite/src/main.ts +5 -0
- package/build/templates/scaffold/app/vite/tsconfig.json +16 -0
- package/build/templates/scaffold/app/vite/vite.config.mts +3 -0
- package/build/templates/scaffold/app/workers/package.json +16 -0
- package/build/templates/scaffold/app/workers/src/index.ts +13 -0
- package/build/templates/scaffold/app/workers/tsconfig.json +17 -0
- package/build/templates/scaffold/app/workers/wrangler.toml +3 -0
- package/build/templates/scaffold/docs/docusaurus/docs/intro.md +9 -0
- package/build/templates/scaffold/docs/docusaurus/docusaurus.config.ts +33 -0
- package/build/templates/scaffold/docs/docusaurus/package.json +20 -0
- package/build/templates/scaffold/docs/docusaurus/sidebars.ts +9 -0
- package/build/templates/scaffold/docs/docusaurus/tsconfig.json +8 -0
- package/package.json +33 -23
- package/build/src/presets/eslint/dx-code-style.d.mts +0 -4
- package/build/src/presets/eslint/dx-code-style.d.mts.map +0 -1
- package/build/src/presets/eslint/dx-code-style.mjs +0 -211
- package/build/src/presets/eslint/dx-code-style.mjs.map +0 -1
- package/build/src/presets/eslint/dx-ignore.d.mts +0 -4
- package/build/src/presets/eslint/dx-ignore.d.mts.map +0 -1
- package/build/src/presets/eslint/dx-ignore.mjs.map +0 -1
- package/build/src/presets/eslint/env-browser.d.mts +0 -4
- package/build/src/presets/eslint/env-browser.d.mts.map +0 -1
- package/build/src/presets/eslint/env-browser.mjs +0 -3
- package/build/src/presets/eslint/env-browser.mjs.map +0 -1
- package/build/src/presets/eslint/env-edge.d.mts +0 -4
- package/build/src/presets/eslint/env-edge.d.mts.map +0 -1
- package/build/src/presets/eslint/env-edge.mjs.map +0 -1
- package/build/src/presets/eslint/env-node.d.mts +0 -4
- package/build/src/presets/eslint/env-node.d.mts.map +0 -1
- package/build/src/presets/eslint/env-node.mjs.map +0 -1
- package/build/src/presets/eslint/env-service-worker.d.mts +0 -4
- package/build/src/presets/eslint/env-service-worker.d.mts.map +0 -1
- package/build/src/presets/eslint/env-service-worker.mjs +0 -3
- package/build/src/presets/eslint/env-service-worker.mjs.map +0 -1
- package/build/src/presets/eslint/env-web-worker.d.mts +0 -4
- package/build/src/presets/eslint/env-web-worker.d.mts.map +0 -1
- package/build/src/presets/eslint/env-web-worker.mjs.map +0 -1
- package/build/src/presets/eslint/fw-docusaurus.d.mts +0 -4
- package/build/src/presets/eslint/fw-docusaurus.d.mts.map +0 -1
- package/build/src/presets/eslint/fw-docusaurus.mjs +0 -10
- package/build/src/presets/eslint/fw-docusaurus.mjs.map +0 -1
- package/build/src/presets/eslint/fw-expressjs.d.mts +0 -4
- package/build/src/presets/eslint/fw-expressjs.d.mts.map +0 -1
- package/build/src/presets/eslint/fw-expressjs.mjs.map +0 -1
- package/build/src/presets/eslint/fw-nextjs.d.mts +0 -4
- package/build/src/presets/eslint/fw-nextjs.d.mts.map +0 -1
- package/build/src/presets/eslint/fw-nextjs.mjs.map +0 -1
- package/build/src/presets/eslint/index.d.mts +0 -16
- package/build/src/presets/eslint/index.d.mts.map +0 -1
- package/build/src/presets/eslint/index.mjs +0 -16
- package/build/src/presets/eslint/index.mjs.map +0 -1
- package/build/src/presets/eslint/lang-javascript.d.mts +0 -4
- package/build/src/presets/eslint/lang-javascript.d.mts.map +0 -1
- package/build/src/presets/eslint/lang-javascript.mjs +0 -3
- package/build/src/presets/eslint/lang-javascript.mjs.map +0 -1
- package/build/src/presets/eslint/lang-mdx.d.mts +0 -4
- package/build/src/presets/eslint/lang-mdx.d.mts.map +0 -1
- package/build/src/presets/eslint/lang-mdx.mjs.map +0 -1
- package/build/src/presets/eslint/lang-typescript.d.mts +0 -4
- package/build/src/presets/eslint/lang-typescript.d.mts.map +0 -1
- package/build/src/presets/eslint/lang-typescript.mjs +0 -88
- package/build/src/presets/eslint/lang-typescript.mjs.map +0 -1
- package/build/src/presets/eslint/platform-cloudflare-workers.d.mts +0 -4
- package/build/src/presets/eslint/platform-cloudflare-workers.d.mts.map +0 -1
- package/build/src/presets/eslint/platform-cloudflare-workers.mjs +0 -8
- package/build/src/presets/eslint/platform-cloudflare-workers.mjs.map +0 -1
- package/build/src/presets/eslint/tool-vite.d.mts +0 -4
- package/build/src/presets/eslint/tool-vite.d.mts.map +0 -1
- package/build/src/presets/eslint/tool-vite.mjs.map +0 -1
- package/build/src/presets/tsconfig/env-web-worker.json +0 -12
- package/build/src/rules/eslint/patterns/no-destructuring.d.ts +0 -13
- package/build/src/rules/eslint/patterns/no-destructuring.d.ts.map +0 -1
- package/build/src/rules/eslint/patterns/no-destructuring.js +0 -177
- package/build/src/rules/eslint/patterns/no-destructuring.js.map +0 -1
- package/build/src/rules/eslint/patterns/no-implicit-boolean.d.ts +0 -6
- package/build/src/rules/eslint/patterns/no-implicit-boolean.d.ts.map +0 -1
- package/build/src/rules/eslint/patterns/no-implicit-boolean.js +0 -62
- package/build/src/rules/eslint/patterns/no-implicit-boolean.js.map +0 -1
- package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.d.ts +0 -6
- package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.d.ts.map +0 -1
- package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.js +0 -32
- package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.js.map +0 -1
- package/build/src/rules/eslint/patterns/switch-case-blocks.d.ts +0 -6
- package/build/src/rules/eslint/patterns/switch-case-blocks.d.ts.map +0 -1
- package/build/src/rules/eslint/patterns/switch-case-blocks.js +0 -36
- package/build/src/rules/eslint/patterns/switch-case-blocks.js.map +0 -1
- package/build/src/tests/api/node-releases.test.d.ts +0 -2
- package/build/src/tests/api/node-releases.test.d.ts.map +0 -1
- package/build/src/tests/api/node-releases.test.js +0 -193
- package/build/src/tests/api/node-releases.test.js.map +0 -1
- package/build/src/tests/api/spdx-licenses.test.d.ts +0 -2
- package/build/src/tests/api/spdx-licenses.test.d.ts.map +0 -1
- package/build/src/tests/api/spdx-licenses.test.js +0 -91
- package/build/src/tests/api/spdx-licenses.test.js.map +0 -1
- package/build/src/tests/cli/recipe/package-json/cleanup.test.d.ts +0 -2
- package/build/src/tests/cli/recipe/package-json/cleanup.test.d.ts.map +0 -1
- package/build/src/tests/cli/recipe/package-json/cleanup.test.js +0 -240
- package/build/src/tests/cli/recipe/package-json/cleanup.test.js.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.d.ts +0 -2
- package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.d.ts.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.js +0 -161
- package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.js.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.d.ts +0 -2
- package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.d.ts.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.js +0 -161
- package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.js.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.d.ts +0 -2
- package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.d.ts.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.js +0 -175
- package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.js.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-modules.test.d.ts +0 -2
- package/build/src/tests/cli/recipe/package-json/normalize-modules.test.d.ts.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-modules.test.js +0 -164
- package/build/src/tests/cli/recipe/package-json/normalize-modules.test.js.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.d.ts +0 -2
- package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.d.ts.map +0 -1
- package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.js +0 -193
- package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.js.map +0 -1
- package/build/src/tests/cli/recipe/package-json/sync-environment.test.d.ts +0 -2
- package/build/src/tests/cli/recipe/package-json/sync-environment.test.d.ts.map +0 -1
- package/build/src/tests/cli/recipe/package-json/sync-environment.test.js +0 -158
- package/build/src/tests/cli/recipe/package-json/sync-environment.test.js.map +0 -1
- package/build/src/tests/cli/recipe/package-json/sync-identity.test.d.ts +0 -2
- package/build/src/tests/cli/recipe/package-json/sync-identity.test.d.ts.map +0 -1
- package/build/src/tests/cli/recipe/package-json/sync-identity.test.js +0 -156
- package/build/src/tests/cli/recipe/package-json/sync-identity.test.js.map +0 -1
- package/build/src/tests/cli/recipe/package-json/sync-ownership.test.d.ts +0 -2
- package/build/src/tests/cli/recipe/package-json/sync-ownership.test.d.ts.map +0 -1
- package/build/src/tests/cli/recipe/package-json/sync-ownership.test.js +0 -164
- package/build/src/tests/cli/recipe/package-json/sync-ownership.test.js.map +0 -1
- package/build/src/tests/cli/utility/changelog.test.d.ts +0 -2
- package/build/src/tests/cli/utility/changelog.test.d.ts.map +0 -1
- package/build/src/tests/cli/utility/changelog.test.js +0 -274
- package/build/src/tests/cli/utility/changelog.test.js.map +0 -1
- package/build/src/tests/cli/utility/initialize.test.d.ts +0 -2
- package/build/src/tests/cli/utility/initialize.test.d.ts.map +0 -1
- package/build/src/tests/cli/utility/initialize.test.js +0 -27
- package/build/src/tests/cli/utility/initialize.test.js.map +0 -1
- package/build/src/tests/cli/utility/run-recipes.test.d.ts +0 -2
- package/build/src/tests/cli/utility/run-recipes.test.d.ts.map +0 -1
- package/build/src/tests/cli/utility/run-recipes.test.js +0 -41
- package/build/src/tests/cli/utility/run-recipes.test.js.map +0 -1
- package/build/src/tests/cli/utility/run-scripts.test.d.ts +0 -2
- package/build/src/tests/cli/utility/run-scripts.test.d.ts.map +0 -1
- package/build/src/tests/cli/utility/run-scripts.test.js +0 -153
- package/build/src/tests/cli/utility/run-scripts.test.js.map +0 -1
- package/build/src/tests/cli/utility/transpile.test.d.ts +0 -2
- package/build/src/tests/cli/utility/transpile.test.d.ts.map +0 -1
- package/build/src/tests/cli/utility/transpile.test.js +0 -65
- package/build/src/tests/cli/utility/transpile.test.js.map +0 -1
- package/build/src/tests/cli/utility/type-check.test.d.ts +0 -2
- package/build/src/tests/cli/utility/type-check.test.d.ts.map +0 -1
- package/build/src/tests/cli/utility/type-check.test.js +0 -63
- package/build/src/tests/cli/utility/type-check.test.js.map +0 -1
- package/build/src/tests/cli/utility/version.test.d.ts +0 -2
- package/build/src/tests/cli/utility/version.test.d.ts.map +0 -1
- package/build/src/tests/cli/utility/version.test.js +0 -38
- package/build/src/tests/cli/utility/version.test.js.map +0 -1
- package/build/src/tests/lib/item.test.d.ts +0 -2
- package/build/src/tests/lib/item.test.d.ts.map +0 -1
- package/build/src/tests/lib/item.test.js +0 -142
- package/build/src/tests/lib/item.test.js.map +0 -1
- package/build/src/tests/lib/nova-config.test.d.ts +0 -2
- package/build/src/tests/lib/nova-config.test.d.ts.map +0 -1
- package/build/src/tests/lib/nova-config.test.js +0 -516
- package/build/src/tests/lib/nova-config.test.js.map +0 -1
- package/build/src/tests/lib/regex.test.d.ts +0 -2
- package/build/src/tests/lib/regex.test.d.ts.map +0 -1
- package/build/src/tests/lib/regex.test.js +0 -342
- package/build/src/tests/lib/regex.test.js.map +0 -1
- package/build/src/tests/lib/schema.test.d.ts +0 -2
- package/build/src/tests/lib/schema.test.d.ts.map +0 -1
- package/build/src/tests/lib/schema.test.js +0 -260
- package/build/src/tests/lib/schema.test.js.map +0 -1
- package/build/src/tests/lib/utility.test.d.ts +0 -2
- package/build/src/tests/lib/utility.test.d.ts.map +0 -1
- package/build/src/tests/lib/utility.test.js +0 -744
- package/build/src/tests/lib/utility.test.js.map +0 -1
- package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.js +0 -47
- package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.js.map +0 -1
- package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.js +0 -131
- package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.js.map +0 -1
- package/build/src/tests/rules/eslint/nova/no-logger-dev.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/nova/no-logger-dev.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/nova/no-logger-dev.test.js +0 -55
- package/build/src/tests/rules/eslint/nova/no-logger-dev.test.js.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.js +0 -39
- package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.js.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.js +0 -40
- package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.js.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-destructuring.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/patterns/no-destructuring.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-destructuring.test.js +0 -86
- package/build/src/tests/rules/eslint/patterns/no-destructuring.test.js.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.js +0 -76
- package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.js.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.js +0 -42
- package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.js.map +0 -1
- package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.js +0 -43
- package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.js.map +0 -1
- package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.js +0 -47
- package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.js.map +0 -1
- package/build/src/tests/rules/eslint/regex/no-regex-literals.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/regex/no-regex-literals.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/regex/no-regex-literals.test.js +0 -49
- package/build/src/tests/rules/eslint/regex/no-regex-literals.test.js.map +0 -1
- package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.js +0 -34
- package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.js.map +0 -1
- package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.js +0 -55
- package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.js.map +0 -1
- package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.d.ts +0 -2
- package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.d.ts.map +0 -1
- package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.js +0 -51
- package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.js.map +0 -1
- package/build/src/tests/toolkit/cli-header.test.d.ts +0 -2
- package/build/src/tests/toolkit/cli-header.test.d.ts.map +0 -1
- package/build/src/tests/toolkit/cli-header.test.js +0 -143
- package/build/src/tests/toolkit/cli-header.test.js.map +0 -1
- package/build/src/tests/toolkit/logger.test.d.ts +0 -2
- package/build/src/tests/toolkit/logger.test.d.ts.map +0 -1
- package/build/src/tests/toolkit/logger.test.js +0 -96
- package/build/src/tests/toolkit/logger.test.js.map +0 -1
- package/build/src/tests/toolkit/markdown-table.test.d.ts +0 -2
- package/build/src/tests/toolkit/markdown-table.test.d.ts.map +0 -1
- package/build/src/tests/toolkit/markdown-table.test.js +0 -138
- package/build/src/tests/toolkit/markdown-table.test.js.map +0 -1
- /package/build/src/presets/tsconfig/{env-browser.json → runtime-browser.json} +0 -0
- /package/build/src/presets/tsconfig/{env-edge.json → runtime-edge.json} +0 -0
- /package/build/src/presets/tsconfig/{env-node.json → runtime-node.json} +0 -0
- /package/build/src/presets/tsconfig/{env-service-worker.json → runtime-service-worker.json} +0 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
# PROJECT_RULES.md
|
|
2
|
+
|
|
3
|
+
## Project Identity
|
|
4
|
+
|
|
5
|
+
### Name and Description
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
The canonical project name, a one-line description, and the primary programming language.
|
|
9
|
+
|
|
10
|
+
- **Project name:** Name
|
|
11
|
+
- **Description:** One-line description.
|
|
12
|
+
- **Primary language:** Language
|
|
13
|
+
- **Framework / runtime:** Framework or runtime (e.g. Next.js, Express, SwiftUI, Spring Boot)
|
|
14
|
+
-->
|
|
15
|
+
|
|
16
|
+
### Repository URL
|
|
17
|
+
|
|
18
|
+
<!--
|
|
19
|
+
The full GitHub URL for this repository.
|
|
20
|
+
|
|
21
|
+
- **URL:** https://github.com/owner/repo
|
|
22
|
+
-->
|
|
23
|
+
|
|
24
|
+
## Repository Layout
|
|
25
|
+
|
|
26
|
+
<!--
|
|
27
|
+
A top-level directory tree showing every folder at the first two levels. Annotate each entry with a short description. Files that live at the root level should also be listed.
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
repo-root/
|
|
31
|
+
├── .github/ — GitHub Actions workflows, issue templates, funding
|
|
32
|
+
├── docs/ — Documentation site source (Docusaurus)
|
|
33
|
+
├── src/ — Application source code
|
|
34
|
+
│ ├── lib/ — Shared libraries and utilities
|
|
35
|
+
│ ├── cli/ — CLI entry points and commands
|
|
36
|
+
│ ├── types/ — TypeScript type definitions (.d.ts)
|
|
37
|
+
│ └── tests/ — Unit and integration tests
|
|
38
|
+
├── scripts/ — Build, deploy, and maintenance scripts
|
|
39
|
+
├── .editorconfig — Editor formatting rules
|
|
40
|
+
├── .gitignore — Git ignore patterns
|
|
41
|
+
├── CHANGELOG.md — Release history
|
|
42
|
+
├── LICENSE — MIT license
|
|
43
|
+
├── README.md — Project overview and badges
|
|
44
|
+
├── package.json — Node.js manifest and scripts
|
|
45
|
+
└── tsconfig.json — TypeScript compiler configuration
|
|
46
|
+
```
|
|
47
|
+
-->
|
|
48
|
+
|
|
49
|
+
## Source Structure
|
|
50
|
+
|
|
51
|
+
<!--
|
|
52
|
+
A detailed directory tree of the primary source folder (e.g. `src/`, `app/`, `lib/`). Go as deep as needed to show every module, grouped by domain. Annotate each file or folder with its responsibility.
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
src/
|
|
56
|
+
├── cli/
|
|
57
|
+
│ ├── commands/
|
|
58
|
+
│ │ ├── build.ts — `build` command handler
|
|
59
|
+
│ │ └── publish.ts — `publish` command handler
|
|
60
|
+
│ └── index.ts — CLI entry point, argument parsing
|
|
61
|
+
├── lib/
|
|
62
|
+
│ ├── config.ts — Configuration loader and validator
|
|
63
|
+
│ ├── schema.ts — Zod schemas for external API responses
|
|
64
|
+
│ └── regex.ts — Shared regex patterns
|
|
65
|
+
├── toolkit/
|
|
66
|
+
│ ├── logger.ts — Structured logging utility
|
|
67
|
+
│ ├── markdown-table.ts — Markdown table builder
|
|
68
|
+
│ └── index.ts — Barrel exports for toolkit
|
|
69
|
+
├── types/
|
|
70
|
+
│ ├── cli/
|
|
71
|
+
│ │ └── commands.d.ts — Types for CLI commands
|
|
72
|
+
│ ├── lib/
|
|
73
|
+
│ │ └── config.d.ts — Types for configuration
|
|
74
|
+
│ └── shared.d.ts — Shared type aliases
|
|
75
|
+
└── tests/
|
|
76
|
+
├── cli/
|
|
77
|
+
│ └── commands.test.ts
|
|
78
|
+
└── lib/
|
|
79
|
+
└── config.test.ts
|
|
80
|
+
```
|
|
81
|
+
-->
|
|
82
|
+
|
|
83
|
+
## Key Files
|
|
84
|
+
|
|
85
|
+
<!--
|
|
86
|
+
List the most important files a contributor or AI agent should know about. Include the file path, what it does, and when you would need to touch it.
|
|
87
|
+
|
|
88
|
+
| File | Purpose | When to modify |
|
|
89
|
+
|---------------------|-----------------|--------------------------------------------------------|
|
|
90
|
+
| `src/cli/index.ts` | CLI entry point | Adding or changing CLI commands |
|
|
91
|
+
| `src/lib/config.ts` | Config loader | Changing configuration shape or defaults |
|
|
92
|
+
| `package.json` | Manifest | Adding dependencies, changing scripts, bumping version |
|
|
93
|
+
| `tsconfig.json` | TS config | Changing compiler options or path aliases |
|
|
94
|
+
| `CHANGELOG.md` | Release notes | Every user-facing change |
|
|
95
|
+
-->
|
|
96
|
+
|
|
97
|
+
## Build and Tooling
|
|
98
|
+
|
|
99
|
+
### Prerequisites
|
|
100
|
+
|
|
101
|
+
<!--
|
|
102
|
+
List every tool that must be installed before building, with minimum version requirements.
|
|
103
|
+
|
|
104
|
+
| Tool | Version | Purpose |
|
|
105
|
+
|---------|---------|-----------------------------|
|
|
106
|
+
| Node.js | >= 22.x | Runtime |
|
|
107
|
+
| npm | >= 10.x | Package manager |
|
|
108
|
+
| Docker | >= 27.x | Container builds (optional) |
|
|
109
|
+
-->
|
|
110
|
+
|
|
111
|
+
### Commands
|
|
112
|
+
|
|
113
|
+
<!--
|
|
114
|
+
List every build, test, lint, and dev command available. Use the exact command the developer runs.
|
|
115
|
+
|
|
116
|
+
| Command | What it does |
|
|
117
|
+
|-----------------|------------------------------------------|
|
|
118
|
+
| `npm install` | Install all dependencies |
|
|
119
|
+
| `npm run build` | Compile TypeScript to JavaScript |
|
|
120
|
+
| `npm run dev` | Start development server with hot reload |
|
|
121
|
+
| `npm run lint` | Run ESLint across the project |
|
|
122
|
+
| `npm test` | Run the test suite |
|
|
123
|
+
-->
|
|
124
|
+
|
|
125
|
+
### Environment Variables
|
|
126
|
+
|
|
127
|
+
<!--
|
|
128
|
+
List every environment variable the project reads, its purpose, and whether it is required or optional.
|
|
129
|
+
|
|
130
|
+
| Variable | Required | Purpose |
|
|
131
|
+
|-------------|----------|-------------------------------------------|
|
|
132
|
+
| `API_KEY` | Yes | Authentication token for the external API |
|
|
133
|
+
| `LOG_LEVEL` | No | Logging verbosity (default: `info`) |
|
|
134
|
+
-->
|
|
135
|
+
|
|
136
|
+
## Workspace Rules
|
|
137
|
+
|
|
138
|
+
### Naming Conventions
|
|
139
|
+
|
|
140
|
+
<!--
|
|
141
|
+
Summarize the naming rules that apply specifically to this project (beyond the universal conventions). Include examples.
|
|
142
|
+
|
|
143
|
+
| Entity | Convention | Example |
|
|
144
|
+
|-----------------|-------------------|------------------------------------|
|
|
145
|
+
| CLI commands | kebab-case verb | `sync-packages`, `write-changelog` |
|
|
146
|
+
| Config keys | camelCase | `workingDir`, `packageName` |
|
|
147
|
+
| Database tables | snake_case plural | `user_sessions`, `api_tokens` |
|
|
148
|
+
-->
|
|
149
|
+
|
|
150
|
+
### Do / Don't
|
|
151
|
+
|
|
152
|
+
<!--
|
|
153
|
+
Project-specific rules that are not covered by the language convention files. These are guardrails for contributors and AI agents.
|
|
154
|
+
|
|
155
|
+
**Do:**
|
|
156
|
+
- Rule with rationale.
|
|
157
|
+
- Rule with rationale.
|
|
158
|
+
|
|
159
|
+
**Don't:**
|
|
160
|
+
- Anti-pattern with explanation of why.
|
|
161
|
+
- Anti-pattern with explanation of why.
|
|
162
|
+
-->
|
|
163
|
+
|
|
164
|
+
## Project-Specific Patterns
|
|
165
|
+
|
|
166
|
+
### Architecture
|
|
167
|
+
|
|
168
|
+
<!--
|
|
169
|
+
Describe the high-level architecture pattern this project follows (e.g. layered, hexagonal, MVC, CLI pipeline). Include a diagram if helpful.
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
User Input
|
|
173
|
+
│
|
|
174
|
+
▼
|
|
175
|
+
CLI Layer (argument parsing, validation)
|
|
176
|
+
│
|
|
177
|
+
▼
|
|
178
|
+
Service Layer (business logic, orchestration)
|
|
179
|
+
│
|
|
180
|
+
▼
|
|
181
|
+
Data Layer (file I/O, API calls, database)
|
|
182
|
+
```
|
|
183
|
+
-->
|
|
184
|
+
|
|
185
|
+
### Data Flow
|
|
186
|
+
|
|
187
|
+
<!--
|
|
188
|
+
Describe how data moves through the system from input to output. Name the key stages and the module responsible for each.
|
|
189
|
+
|
|
190
|
+
1. **Input** — Where data enters (CLI args, HTTP request, file read). Module: `src/cli/index.ts`.
|
|
191
|
+
2. **Validation** — How input is validated. Module: `src/lib/config.ts`.
|
|
192
|
+
3. **Processing** — Core transformation or business logic. Module: `src/lib/processor.ts`.
|
|
193
|
+
4. **Output** — Where results go (stdout, file write, API call). Module: `src/cli/index.ts`.
|
|
194
|
+
-->
|
|
195
|
+
|
|
196
|
+
### Error Strategy
|
|
197
|
+
|
|
198
|
+
<!--
|
|
199
|
+
How does this project handle errors at each layer? List the approach per layer.
|
|
200
|
+
|
|
201
|
+
| Layer | Strategy |
|
|
202
|
+
|--------------------|------------------------------------------------------|
|
|
203
|
+
| CLI entry point | Catch all, log, set `process.exitCode = 1`, return |
|
|
204
|
+
| Service functions | Throw on failure (caller catches) |
|
|
205
|
+
| External API calls | Zod `.parse()` for validation, try/catch for network |
|
|
206
|
+
| File I/O | try/catch, descriptive error message with file path |
|
|
207
|
+
-->
|
|
208
|
+
|
|
209
|
+
## Documentation Site
|
|
210
|
+
|
|
211
|
+
### Framework
|
|
212
|
+
|
|
213
|
+
<!--
|
|
214
|
+
Which documentation framework is used, and where its source lives.
|
|
215
|
+
|
|
216
|
+
- **Framework:** Docusaurus / None
|
|
217
|
+
- **Source directory:** `docs/`
|
|
218
|
+
- **Build output:** `docs/build/`
|
|
219
|
+
-->
|
|
220
|
+
|
|
221
|
+
### Site Structure
|
|
222
|
+
|
|
223
|
+
<!--
|
|
224
|
+
A directory tree of the documentation source showing every page and sidebar category.
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
docs/
|
|
228
|
+
├── docusaurus.config.ts — Site configuration
|
|
229
|
+
├── sidebars.ts — Sidebar navigation structure
|
|
230
|
+
├── docs/
|
|
231
|
+
│ ├── intro.md — Getting started guide
|
|
232
|
+
│ ├── installation.md — Installation instructions
|
|
233
|
+
│ ├── configuration.md — Configuration reference
|
|
234
|
+
│ └── api/
|
|
235
|
+
│ ├── overview.md — API overview
|
|
236
|
+
│ └── endpoints.md — Endpoint reference
|
|
237
|
+
└── static/
|
|
238
|
+
└── img/ — Static images
|
|
239
|
+
```
|
|
240
|
+
-->
|
|
241
|
+
|
|
242
|
+
### Commands
|
|
243
|
+
|
|
244
|
+
<!--
|
|
245
|
+
Commands for building and previewing the documentation site locally.
|
|
246
|
+
|
|
247
|
+
| Command | What it does |
|
|
248
|
+
|----------------------|----------------------------------------|
|
|
249
|
+
| `npm run docs:dev` | Start local dev server with hot reload |
|
|
250
|
+
| `npm run docs:build` | Build the static site for production |
|
|
251
|
+
-->
|
|
252
|
+
|
|
253
|
+
## Publishing and Deployment
|
|
254
|
+
|
|
255
|
+
### Release Process
|
|
256
|
+
|
|
257
|
+
<!--
|
|
258
|
+
Step-by-step description of how a new version goes from code to release.
|
|
259
|
+
|
|
260
|
+
1. All changes committed, `git status --short` is clean.
|
|
261
|
+
2. Changelog consolidated, version bumped, build number recalculated (if applicable).
|
|
262
|
+
3. Commit with version subject line.
|
|
263
|
+
4. Tag the commit (e.g. `v1.2.0`).
|
|
264
|
+
5. Push commit and tag.
|
|
265
|
+
6. GitHub Release triggers CI workflows.
|
|
266
|
+
-->
|
|
267
|
+
|
|
268
|
+
### CI/CD Workflows
|
|
269
|
+
|
|
270
|
+
<!--
|
|
271
|
+
Map each GitHub Actions workflow to what it does and when it runs.
|
|
272
|
+
|
|
273
|
+
| Workflow file | Trigger | What it does |
|
|
274
|
+
|-----------------------------|-------------------|----------------------------------|
|
|
275
|
+
| `publish-to-npm.yml` | Release published | Build and publish to npm |
|
|
276
|
+
| `publish-to-docker-hub.yml` | Release published | Multi-arch Docker build and push |
|
|
277
|
+
| `lock-inactive-issues.yml` | Weekly cron | Lock issues inactive > 30 days |
|
|
278
|
+
-->
|
|
279
|
+
|
|
280
|
+
### Environments
|
|
281
|
+
|
|
282
|
+
<!--
|
|
283
|
+
List every deployment target and its URL or identifier.
|
|
284
|
+
|
|
285
|
+
| Environment | URL / Identifier | Purpose |
|
|
286
|
+
|--------------|---------------------------------------|-------------------------|
|
|
287
|
+
| npm | `https://www.npmjs.com/package/name` | Public package registry |
|
|
288
|
+
| Docker Hub | `https://hub.docker.com/r/owner/name` | Container registry |
|
|
289
|
+
| GitHub Pages | `https://owner.github.io/repo` | Documentation site |
|
|
290
|
+
-->
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# VISION.md
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
### Problem Statement
|
|
6
|
+
|
|
7
|
+
<!-- What specific problem, pain point, or unmet need does this project address? Be precise about the gap in existing solutions. -->
|
|
8
|
+
|
|
9
|
+
### Target Audience
|
|
10
|
+
|
|
11
|
+
<!--
|
|
12
|
+
Who are the primary users of this project? List each audience segment and their relationship to the problem.
|
|
13
|
+
|
|
14
|
+
- **Segment name** — Description of who they are and why they need this.
|
|
15
|
+
- **Segment name** — Description of who they are and why they need this.
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
### Value Proposition
|
|
19
|
+
|
|
20
|
+
<!-- What makes this project the right solution? In 2-3 sentences, state what the project does and why it is better than the alternatives (or why no real alternative exists). -->
|
|
21
|
+
|
|
22
|
+
## Marketing Copy
|
|
23
|
+
|
|
24
|
+
### Tagline
|
|
25
|
+
|
|
26
|
+
<!-- One sentence (under 15 words) that captures the essence of the project. This appears in social cards, repo descriptions, and badges. -->
|
|
27
|
+
|
|
28
|
+
### Elevator Pitch
|
|
29
|
+
|
|
30
|
+
<!-- A short paragraph (3-5 sentences) suitable for a README introduction, conference talk abstract, or landing page hero section. Cover what it does, who it is for, and one compelling differentiator. -->
|
|
31
|
+
|
|
32
|
+
### Key Features
|
|
33
|
+
|
|
34
|
+
<!--
|
|
35
|
+
List the headline features a new user would care about most. Use action-oriented language.
|
|
36
|
+
|
|
37
|
+
- **Feature name** — What it does and why it matters.
|
|
38
|
+
- **Feature name** — What it does and why it matters.
|
|
39
|
+
- **Feature name** — What it does and why it matters.
|
|
40
|
+
-->
|
|
41
|
+
|
|
42
|
+
### Differentiators
|
|
43
|
+
|
|
44
|
+
<!--
|
|
45
|
+
What sets this project apart from comparable tools or services? Focus on architectural decisions, performance characteristics, developer experience, or ecosystem fit.
|
|
46
|
+
|
|
47
|
+
| This project | Alternatives |
|
|
48
|
+
|--------------------------------|------------------------------|
|
|
49
|
+
| Difference this project offers | What alternatives do instead |
|
|
50
|
+
| Difference this project offers | What alternatives do instead |
|
|
51
|
+
-->
|
|
52
|
+
|
|
53
|
+
## Glossary
|
|
54
|
+
|
|
55
|
+
<!--
|
|
56
|
+
Define every domain-specific term, abbreviation, and concept used in this project. The AI agent and all contributors should use these terms consistently.
|
|
57
|
+
|
|
58
|
+
| Term | Definition |
|
|
59
|
+
|------|-----------------------------------------------|
|
|
60
|
+
| Term | What it means in the context of this project. |
|
|
61
|
+
| Term | What it means in the context of this project. |
|
|
62
|
+
-->
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# C# Conventions
|
|
2
|
+
|
|
3
|
+
Quotes: Double (only option). Indentation: 4-space. File naming: PascalCase matching class name (e.g., `EntityRepository.cs`).
|
|
4
|
+
|
|
5
|
+
## Documentation Style
|
|
6
|
+
|
|
7
|
+
- Comment syntax: `///`
|
|
8
|
+
- Padding tag: `<remarks>Since v1.0.0</remarks>` (XML doc tag)
|
|
9
|
+
- Param format: `<param name="x">X</param>` (description matches the parameter name, capitalized, no trailing period inside XML tags)
|
|
10
|
+
- Return format: `<returns>Type</returns>`
|
|
11
|
+
- Blank `///` at top and bottom of every comment block.
|
|
12
|
+
- No `@private` tag needed (access control is in the declaration).
|
|
13
|
+
|
|
14
|
+
### Example
|
|
15
|
+
|
|
16
|
+
```csharp
|
|
17
|
+
///
|
|
18
|
+
/// Entity Repository.
|
|
19
|
+
///
|
|
20
|
+
/// <remarks>Since v1.0.0</remarks>
|
|
21
|
+
///
|
|
22
|
+
public class EntityRepository {
|
|
23
|
+
///
|
|
24
|
+
/// Entity Repository - Database.
|
|
25
|
+
///
|
|
26
|
+
/// <remarks>Since v1.0.0</remarks>
|
|
27
|
+
///
|
|
28
|
+
private readonly Database _database;
|
|
29
|
+
|
|
30
|
+
///
|
|
31
|
+
/// Entity Repository - Constructor.
|
|
32
|
+
///
|
|
33
|
+
/// <param name="database">Database</param>
|
|
34
|
+
///
|
|
35
|
+
/// <remarks>Since v1.0.0</remarks>
|
|
36
|
+
///
|
|
37
|
+
public EntityRepository(Database database) { ... }
|
|
38
|
+
|
|
39
|
+
///
|
|
40
|
+
/// Entity Repository - Find By ID.
|
|
41
|
+
///
|
|
42
|
+
/// <param name="id">ID</param>
|
|
43
|
+
///
|
|
44
|
+
/// <returns>Entity?</returns>
|
|
45
|
+
///
|
|
46
|
+
/// <remarks>Since v1.0.0</remarks>
|
|
47
|
+
///
|
|
48
|
+
public async Task<Entity?> FindById(Guid id) { ... }
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Code Style
|
|
53
|
+
|
|
54
|
+
### Explicit Access Modifiers
|
|
55
|
+
|
|
56
|
+
All class members require explicit `public`, `private`, `protected`, or `internal`. Never rely on C#'s default `private` for members or `internal` for types.
|
|
57
|
+
|
|
58
|
+
```csharp
|
|
59
|
+
// BAD — implicit private
|
|
60
|
+
void ProcessData(string input) { ... }
|
|
61
|
+
|
|
62
|
+
// GOOD — explicit modifier
|
|
63
|
+
public void ProcessData(string input) { ... }
|
|
64
|
+
private void ValidateInput(string input) { ... }
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### `readonly` on Fields
|
|
68
|
+
|
|
69
|
+
Use `readonly` for fields assigned once in the constructor, never reassigned after.
|
|
70
|
+
|
|
71
|
+
```csharp
|
|
72
|
+
// GOOD — assigned once, never reassigned
|
|
73
|
+
private readonly Database _database;
|
|
74
|
+
|
|
75
|
+
// No readonly — reassigned during lifecycle
|
|
76
|
+
private string _selectedCategory;
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Method Overloads vs Generic Parameters
|
|
80
|
+
|
|
81
|
+
Prefer overloads when the return type or behavior differs per input type. A single parameter type (e.g., `object`) is fine when the handling is identical regardless of input type.
|
|
82
|
+
|
|
83
|
+
```csharp
|
|
84
|
+
// GOOD — overloads (different behavior per type)
|
|
85
|
+
private static string Format(string value) {
|
|
86
|
+
return value.Trim();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private static string Format(int value) {
|
|
90
|
+
return value.ToString("F2");
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// GOOD — single param (same handling regardless)
|
|
94
|
+
private static bool Validate(object value) {
|
|
95
|
+
return value != null;
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Method Ordering
|
|
100
|
+
|
|
101
|
+
1. Public methods first.
|
|
102
|
+
2. Private methods second (async grouped, then non-async grouped).
|
|
103
|
+
|
|
104
|
+
Each method separated by a blank line. No blank line after opening brace or before closing brace of the class.
|
|
105
|
+
|
|
106
|
+
### Expression-Bodied Members
|
|
107
|
+
|
|
108
|
+
Use expression body (`=>`) for single-expression methods, properties, and read-only accessors. Use block body for anything with multiple statements.
|
|
109
|
+
|
|
110
|
+
```csharp
|
|
111
|
+
// GOOD — expression-bodied property
|
|
112
|
+
public string FullName => $"{FirstName} {LastName}";
|
|
113
|
+
|
|
114
|
+
// GOOD — expression-bodied simple method
|
|
115
|
+
public bool IsActive() => Status == Status.Active;
|
|
116
|
+
|
|
117
|
+
// GOOD — block body for multiple statements
|
|
118
|
+
public async Task<Entity?> FindById(Guid id) {
|
|
119
|
+
var entity = await _database.GetAsync(id);
|
|
120
|
+
|
|
121
|
+
return entity;
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Switch Statements — Always Block-Scoped
|
|
126
|
+
|
|
127
|
+
Every `case` and `default` uses block scoping with `{ }`. Always include a `default` case, even if there's nothing to handle. Prefer `switch` expressions with pattern matching where appropriate.
|
|
128
|
+
|
|
129
|
+
```csharp
|
|
130
|
+
switch (category) {
|
|
131
|
+
case "added": {
|
|
132
|
+
logger.Info("New feature.");
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
case "fixed": {
|
|
137
|
+
logger.Info("Bug fix.");
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
default: {
|
|
142
|
+
logger.Warn("Unknown category.");
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Switch expression — acceptable for value mapping
|
|
148
|
+
var label = category switch {
|
|
149
|
+
"added" => "New feature",
|
|
150
|
+
"fixed" => "Bug fix",
|
|
151
|
+
_ => "Unknown",
|
|
152
|
+
};
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Explicit Null Checks — Avoid Optional Chaining
|
|
156
|
+
|
|
157
|
+
Avoid `?.` chaining — prefer explicit null checks with early returns. Nullish coalescing (`??`) is fine for providing defaults. Don't combine them.
|
|
158
|
+
|
|
159
|
+
```csharp
|
|
160
|
+
// BAD — optional chaining
|
|
161
|
+
var name = config?.Name;
|
|
162
|
+
|
|
163
|
+
// GOOD — explicit check
|
|
164
|
+
if (config == null) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
var name = config.Name;
|
|
169
|
+
|
|
170
|
+
// GOOD — null coalescing for defaults
|
|
171
|
+
var timeout = options.Timeout ?? 5000;
|
|
172
|
+
var label = config.Name ?? "default";
|
|
173
|
+
|
|
174
|
+
// BAD — chained together
|
|
175
|
+
var name = config?.Name ?? "default";
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### `var` vs Explicit Type
|
|
179
|
+
|
|
180
|
+
Use `var` when the type is obvious from the right-hand side. Use explicit types when the type is not immediately clear.
|
|
181
|
+
|
|
182
|
+
```csharp
|
|
183
|
+
// GOOD — type obvious from constructor/method
|
|
184
|
+
var config = new Config();
|
|
185
|
+
var items = GetItems();
|
|
186
|
+
|
|
187
|
+
// GOOD — explicit type when not obvious
|
|
188
|
+
List<string> names = ParseNames(rawInput);
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### LINQ Method Syntax vs Query Syntax
|
|
192
|
+
|
|
193
|
+
Prefer method syntax (`.Where()`, `.Select()`, `.FirstOrDefault()`). Query syntax is acceptable for complex joins.
|
|
194
|
+
|
|
195
|
+
- `.Where()`, `.Select()`, `.FirstOrDefault()` — transforming or searching, returns a new value.
|
|
196
|
+
- `foreach` — side effects (logging, mutating external collections, async operations).
|
|
197
|
+
- `.Aggregate()` — acceptable, but `foreach` with a mutable accumulator is also fine.
|
|
198
|
+
|
|
199
|
+
### Block Body vs Expression Body in Lambdas
|
|
200
|
+
|
|
201
|
+
- **Block body** (`=> { ... }`): When accessing properties of the param, or when multiple statements needed.
|
|
202
|
+
- **Expression body** (`=> expression`): When the lambda is a direct comparison or single method call.
|
|
203
|
+
|
|
204
|
+
```csharp
|
|
205
|
+
// Block body — accessing properties, multiple operations
|
|
206
|
+
items.Select(item => {
|
|
207
|
+
var itemName = item.Name;
|
|
208
|
+
var itemRole = item.Role;
|
|
209
|
+
|
|
210
|
+
return new ItemResult(itemName, itemRole);
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
// Expression body — direct comparison
|
|
214
|
+
validCategories.FirstOrDefault(
|
|
215
|
+
validCategory => validCategory == value
|
|
216
|
+
);
|
|
217
|
+
|
|
218
|
+
// Expression body — single property check
|
|
219
|
+
items.Where(item => item.IsActive);
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Descriptive Lambda Parameter Names
|
|
223
|
+
|
|
224
|
+
Derive from the collection name in singular form. Array and iterable variable names must end with a plural noun so the singular form can be derived naturally. No single-letter abbreviations.
|
|
225
|
+
|
|
226
|
+
```csharp
|
|
227
|
+
// BAD
|
|
228
|
+
validCategories.Where(c => c == value);
|
|
229
|
+
|
|
230
|
+
// GOOD
|
|
231
|
+
validCategories.Where(validCategory => validCategory == value);
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Variable Names Chain from Parent
|
|
235
|
+
|
|
236
|
+
When extracting properties from an object, the variable name chains from the parent variable name.
|
|
237
|
+
|
|
238
|
+
```csharp
|
|
239
|
+
var workspaceConfig = workspace.Config;
|
|
240
|
+
var workspaceConfigName = workspaceConfig.Name;
|
|
241
|
+
var workspaceConfigRole = workspaceConfig.Role;
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### `async`/`await` Patterns
|
|
245
|
+
|
|
246
|
+
Use `Task.WhenAll` for parallel execution. Suffix async methods with `Async`.
|
|
247
|
+
|
|
248
|
+
```csharp
|
|
249
|
+
// GOOD — parallel execution
|
|
250
|
+
var (data, configRaw) = await (
|
|
251
|
+
FetchDataAsync(),
|
|
252
|
+
File.ReadAllTextAsync(configPath)
|
|
253
|
+
);
|
|
254
|
+
|
|
255
|
+
// GOOD — Async suffix convention
|
|
256
|
+
public async Task<Entity?> FindByIdAsync(Guid id) { ... }
|
|
257
|
+
private async Task<Config> LoadConfigAsync() { ... }
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Comment Placement in Method Bodies
|
|
261
|
+
|
|
262
|
+
Comments describe the process/intent. Placement rules:
|
|
263
|
+
- Comment sits above the code block it describes.
|
|
264
|
+
- Blank line before the comment (except at the start of a scope).
|
|
265
|
+
- No comment needed on the first block if it's self-explanatory.
|
|
266
|
+
- No trailing comments (same-line comments after code). Exception: multi-line conditions may use inline `//` comments after each condition line to explain the check.
|
|
267
|
+
|
|
268
|
+
### No Stacked Comments
|
|
269
|
+
|
|
270
|
+
One descriptive comment per code block. No consecutive comments without code between them.
|
|
271
|
+
|
|
272
|
+
### Quote File Names in Comments and Log Messages
|
|
273
|
+
|
|
274
|
+
Wrap file names in double quotes inside comments and log strings (e.g., `"config.json"`, `"CHANGELOG.md"`).
|
|
275
|
+
|
|
276
|
+
### Blank Lines between Distinct Operations
|
|
277
|
+
|
|
278
|
+
Separate method calls, `await` statements, and different logical blocks with blank lines. Variable declarations and loops also need blank line separation.
|
|
279
|
+
|
|
280
|
+
### Bare Side-Effect Statements Get Their Own Visual Group
|
|
281
|
+
|
|
282
|
+
When a method call has no assignment (return value unused), separate it from surrounding assignments with a blank line.
|
|
283
|
+
|
|
284
|
+
### Return Directly When Immediately Returned
|
|
285
|
+
|
|
286
|
+
Don't assign to an intermediate variable just to return it on the next line.
|
|
287
|
+
|
|
288
|
+
### Extract Nested Function Calls into Variables
|
|
289
|
+
|
|
290
|
+
Don't nest function calls as arguments to other function calls. Extract into its own named variable for readability.
|
|
291
|
+
|
|
292
|
+
### One Entry per Line in Collections
|
|
293
|
+
|
|
294
|
+
Array initializers, list initializers, and similar collections use one entry per line in multiline constructs.
|
|
295
|
+
|
|
296
|
+
### Mixed Logical Conditions
|
|
297
|
+
|
|
298
|
+
When mixing `&&`/`||`, parenthesized groups go on their own lines, each condition on its own line.
|
|
299
|
+
|
|
300
|
+
### No Multi-Line Boolean Variable Assignments for `if`
|
|
301
|
+
|
|
302
|
+
Don't extract a multi-condition boolean into a named variable just to check it once. Inline conditions directly in `if` blocks.
|
|
303
|
+
|
|
304
|
+
### Ternary Expressions
|
|
305
|
+
|
|
306
|
+
- No nested ternaries.
|
|
307
|
+
- No ternaries inside string interpolation — extract to a variable first.
|
|
308
|
+
|
|
309
|
+
### Readability — All Generated Code Must Be Human-Readable
|
|
310
|
+
|
|
311
|
+
Don't inline complex expressions into string interpolation or other expressions. Break them into named variables so each step is clear.
|
|
312
|
+
|
|
313
|
+
### Error Handling
|
|
314
|
+
|
|
315
|
+
- **Creator** (method designer): may design a method to throw on failure — that's the API contract.
|
|
316
|
+
- **Consumer** (method caller): always wraps calls to throwing methods in try/catch.
|
|
317
|
+
- CLI entry points never throw — set the appropriate exit code with `Environment.ExitCode` and return.
|