@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,285 @@
|
|
|
1
|
+
# Java Conventions
|
|
2
|
+
|
|
3
|
+
Quotes: Double (only option). Indentation: 4-space. File naming: PascalCase matching class name (e.g., `EntityRepository.java`).
|
|
4
|
+
|
|
5
|
+
## Documentation Style
|
|
6
|
+
|
|
7
|
+
- Comment syntax: `/** */`
|
|
8
|
+
- Padding tag: `@since 1.0.0` (Javadoc)
|
|
9
|
+
- Param format: `@param name - Name.` (description matches the parameter name, capitalized, with a trailing period)
|
|
10
|
+
- Return format: `@return Type`
|
|
11
|
+
|
|
12
|
+
### Example
|
|
13
|
+
|
|
14
|
+
```java
|
|
15
|
+
/**
|
|
16
|
+
* Entity Repository.
|
|
17
|
+
*
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
*/
|
|
20
|
+
public class EntityRepository {
|
|
21
|
+
/**
|
|
22
|
+
* Entity Repository - Database.
|
|
23
|
+
*
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
*/
|
|
26
|
+
private final Database database;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Entity Repository - Constructor.
|
|
30
|
+
*
|
|
31
|
+
* @param database - Database.
|
|
32
|
+
*
|
|
33
|
+
* @since 1.0.0
|
|
34
|
+
*/
|
|
35
|
+
public EntityRepository(Database database) { ... }
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Entity Repository - Find By ID.
|
|
39
|
+
*
|
|
40
|
+
* @param id - ID.
|
|
41
|
+
*
|
|
42
|
+
* @return Entity
|
|
43
|
+
*
|
|
44
|
+
* @since 1.0.0
|
|
45
|
+
*/
|
|
46
|
+
public Entity findById(UUID id) { ... }
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Code Style
|
|
51
|
+
|
|
52
|
+
### Explicit Access Modifiers
|
|
53
|
+
|
|
54
|
+
All class members require explicit `public`, `private`, or `protected`. Never rely on package-private (default) access.
|
|
55
|
+
|
|
56
|
+
```java
|
|
57
|
+
// BAD — package-private (implicit)
|
|
58
|
+
void processData(String input) { ... }
|
|
59
|
+
|
|
60
|
+
// GOOD — explicit modifier
|
|
61
|
+
public void processData(String input) { ... }
|
|
62
|
+
private void validateInput(String input) { ... }
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### `final` on Local Variables
|
|
66
|
+
|
|
67
|
+
Use `final` for variables that are assigned once and never reassigned. Equivalent to `const` in TypeScript.
|
|
68
|
+
|
|
69
|
+
```java
|
|
70
|
+
// GOOD — assigned once, never reassigned
|
|
71
|
+
final String configPath = resolve("config.json");
|
|
72
|
+
final String configRaw = Files.readString(Path.of(configPath));
|
|
73
|
+
|
|
74
|
+
// No final — reassigned later
|
|
75
|
+
String selectedCategory = null;
|
|
76
|
+
selectedCategory = matchedCategory;
|
|
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
|
+
```java
|
|
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 String.valueOf(value);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// GOOD — single param (same handling regardless)
|
|
94
|
+
private static boolean validate(Object value) {
|
|
95
|
+
return value != null;
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Method Ordering
|
|
100
|
+
|
|
101
|
+
1. Public methods first.
|
|
102
|
+
2. Private methods second.
|
|
103
|
+
|
|
104
|
+
Each method separated by a blank line. No blank line after opening brace or before closing brace of the class.
|
|
105
|
+
|
|
106
|
+
### Switch Statements — Always Block-Scoped
|
|
107
|
+
|
|
108
|
+
Every `case` and `default` uses block scoping with `{ }`. Always include a `default` case, even if there's nothing to handle.
|
|
109
|
+
|
|
110
|
+
```java
|
|
111
|
+
switch (category) {
|
|
112
|
+
case "added": {
|
|
113
|
+
logger.info("New feature.");
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
case "fixed": {
|
|
118
|
+
logger.info("Bug fix.");
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
default: {
|
|
123
|
+
logger.warn("Unknown category.");
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Explicit Null Checks — No Truthy/Falsy
|
|
130
|
+
|
|
131
|
+
Always use explicit comparisons. Prefer explicit null checks over `Optional` wrapping for simple cases.
|
|
132
|
+
|
|
133
|
+
- `== null` — not initialized / absent.
|
|
134
|
+
- `!= null` — present.
|
|
135
|
+
- `.equals()` — value comparison for objects.
|
|
136
|
+
- `.isEmpty()` — explicit empty check for strings and collections.
|
|
137
|
+
|
|
138
|
+
```java
|
|
139
|
+
// BAD — truthy-style string check
|
|
140
|
+
if (name) { ... }
|
|
141
|
+
|
|
142
|
+
// GOOD — explicit checks
|
|
143
|
+
if (name != null) { ... }
|
|
144
|
+
if (!name.isEmpty()) { ... }
|
|
145
|
+
if (items.size() > 0) { ... }
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Stream API vs `for` Loop
|
|
149
|
+
|
|
150
|
+
- `.filter()`, `.map()`, `.findFirst()` — transforming or searching, returns a new value.
|
|
151
|
+
- `for` / `for-each` — side effects (logging, mutating external collections).
|
|
152
|
+
- `.reduce()` — acceptable, but `for-each` with a mutable accumulator is also fine.
|
|
153
|
+
|
|
154
|
+
```java
|
|
155
|
+
// GOOD — stream for transformation
|
|
156
|
+
final List<String> names = items.stream()
|
|
157
|
+
.filter(item -> item.isActive())
|
|
158
|
+
.map(item -> item.getName())
|
|
159
|
+
.toList();
|
|
160
|
+
|
|
161
|
+
// GOOD — for-each for side effects
|
|
162
|
+
for (final Item item : items) {
|
|
163
|
+
logger.info(item.getName());
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Block Body vs Expression Body in Lambdas
|
|
168
|
+
|
|
169
|
+
- **Block body** (`-> { ... }`): When accessing properties of the param, or when multiple statements needed.
|
|
170
|
+
- **Expression body** (`-> expression`): When the lambda is a direct comparison or single method call.
|
|
171
|
+
|
|
172
|
+
```java
|
|
173
|
+
// Block body — accessing properties, multiple operations
|
|
174
|
+
items.stream().map(item -> {
|
|
175
|
+
final String itemName = item.getName();
|
|
176
|
+
final String itemRole = item.getRole();
|
|
177
|
+
|
|
178
|
+
return new ItemResult(itemName, itemRole);
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
// Expression body — direct comparison
|
|
182
|
+
validCategories.stream().filter(
|
|
183
|
+
validCategory -> validCategory.equals(value)
|
|
184
|
+
);
|
|
185
|
+
|
|
186
|
+
// Expression body — single method call
|
|
187
|
+
items.stream().map(item -> item.getName());
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Descriptive Lambda Parameter Names
|
|
191
|
+
|
|
192
|
+
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.
|
|
193
|
+
|
|
194
|
+
```java
|
|
195
|
+
// BAD
|
|
196
|
+
validCategories.stream().filter(c -> c.equals(value));
|
|
197
|
+
|
|
198
|
+
// GOOD
|
|
199
|
+
validCategories.stream().filter(
|
|
200
|
+
validCategory -> validCategory.equals(value)
|
|
201
|
+
);
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Variable Names Chain from Parent
|
|
205
|
+
|
|
206
|
+
When extracting properties from an object, the variable name chains from the parent variable name.
|
|
207
|
+
|
|
208
|
+
```java
|
|
209
|
+
final Config workspaceConfig = workspace.getConfig();
|
|
210
|
+
final String workspaceConfigName = workspaceConfig.getName();
|
|
211
|
+
final String workspaceConfigRole = workspaceConfig.getRole();
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Comment Placement in Method Bodies
|
|
215
|
+
|
|
216
|
+
Comments describe the process/intent. Placement rules:
|
|
217
|
+
- Comment sits above the code block it describes.
|
|
218
|
+
- Blank line before the comment (except at the start of a scope).
|
|
219
|
+
- No comment needed on the first block if it's self-explanatory.
|
|
220
|
+
- No trailing comments (same-line comments after code). Exception: multi-line conditions may use inline `//` comments after each condition line to explain the check.
|
|
221
|
+
|
|
222
|
+
### No Stacked Comments
|
|
223
|
+
|
|
224
|
+
One descriptive comment per code block. No consecutive comments without code between them.
|
|
225
|
+
|
|
226
|
+
### Quote File Names in Comments and Log Messages
|
|
227
|
+
|
|
228
|
+
Wrap file names in double quotes inside comments and log strings (e.g., `"config.json"`, `"CHANGELOG.md"`).
|
|
229
|
+
|
|
230
|
+
### Blank Lines between Distinct Operations
|
|
231
|
+
|
|
232
|
+
Separate method calls and different logical blocks with blank lines. Variable declarations and loops also need blank line separation.
|
|
233
|
+
|
|
234
|
+
```java
|
|
235
|
+
// BAD — everything stuck together
|
|
236
|
+
final String configRaw = Files.readString(configPath);
|
|
237
|
+
final Config config = parser.parse(configRaw);
|
|
238
|
+
final List<Item> filtered = filterItems(config.getItems());
|
|
239
|
+
|
|
240
|
+
// GOOD — each operation gets breathing room
|
|
241
|
+
final String configRaw = Files.readString(configPath);
|
|
242
|
+
|
|
243
|
+
final Config config = parser.parse(configRaw);
|
|
244
|
+
|
|
245
|
+
final List<Item> filtered = filterItems(config.getItems());
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Bare Side-Effect Statements Get Their Own Visual Group
|
|
249
|
+
|
|
250
|
+
When a method call has no assignment (return value unused), separate it from surrounding assignments with a blank line.
|
|
251
|
+
|
|
252
|
+
### Return Directly When Immediately Returned
|
|
253
|
+
|
|
254
|
+
Don't assign to an intermediate variable just to return it on the next line.
|
|
255
|
+
|
|
256
|
+
### Extract Nested Function Calls into Variables
|
|
257
|
+
|
|
258
|
+
Don't nest function calls as arguments to other function calls. Extract into its own named variable for readability.
|
|
259
|
+
|
|
260
|
+
### One Entry per Line in Collections
|
|
261
|
+
|
|
262
|
+
Array literals, list literals, and similar collections use one entry per line in multiline constructs.
|
|
263
|
+
|
|
264
|
+
### Mixed Logical Conditions
|
|
265
|
+
|
|
266
|
+
When mixing `&&`/`||`, parenthesized groups go on their own lines, each condition on its own line.
|
|
267
|
+
|
|
268
|
+
### No Multi-Line Boolean Variable Assignments for `if`
|
|
269
|
+
|
|
270
|
+
Don't extract a multi-condition boolean into a named variable just to check it once. Inline conditions directly in `if` blocks.
|
|
271
|
+
|
|
272
|
+
### Ternary Expressions
|
|
273
|
+
|
|
274
|
+
- No nested ternaries.
|
|
275
|
+
- No ternaries inside string concatenation — extract to a variable first.
|
|
276
|
+
|
|
277
|
+
### Readability — All Generated Code Must Be Human-Readable
|
|
278
|
+
|
|
279
|
+
Don't inline complex expressions into string concatenation or other expressions. Break them into named variables so each step is clear.
|
|
280
|
+
|
|
281
|
+
### Error Handling
|
|
282
|
+
|
|
283
|
+
- **Creator** (method designer): may design a method to throw on failure — that's the API contract. Prefer unchecked exceptions (`RuntimeException` subclasses) for programming errors. Use checked exceptions only for recoverable conditions the caller must handle.
|
|
284
|
+
- **Consumer** (method caller): always wraps calls to throwing methods in try/catch.
|
|
285
|
+
- CLI entry points never throw — set the appropriate exit code with `System.exit()` and return.
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# Kotlin Conventions
|
|
2
|
+
|
|
3
|
+
Quotes: Double (only option). Indentation: 4-space. File naming: PascalCase matching class name (e.g., `EntityRepository.kt`).
|
|
4
|
+
|
|
5
|
+
## Documentation Style
|
|
6
|
+
|
|
7
|
+
- Comment syntax: `/** */`
|
|
8
|
+
- Padding tag: `@since 1.0.0` (KDoc)
|
|
9
|
+
- Param format: `@param name - Name.` (description matches the parameter name, capitalized, with a trailing period)
|
|
10
|
+
- Return format: `@return Type?`
|
|
11
|
+
- Include `@private` tag for private members.
|
|
12
|
+
|
|
13
|
+
### Example
|
|
14
|
+
|
|
15
|
+
```kotlin
|
|
16
|
+
/**
|
|
17
|
+
* Entity Repository.
|
|
18
|
+
*
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
*/
|
|
21
|
+
class EntityRepository(
|
|
22
|
+
/**
|
|
23
|
+
* Entity Repository - Database.
|
|
24
|
+
*
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
*/
|
|
27
|
+
private val database: Database,
|
|
28
|
+
) {
|
|
29
|
+
/**
|
|
30
|
+
* Entity Repository - Find By ID.
|
|
31
|
+
*
|
|
32
|
+
* @param id - ID.
|
|
33
|
+
*
|
|
34
|
+
* @return Entity?
|
|
35
|
+
*
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
*/
|
|
38
|
+
suspend fun findById(id: UUID): Entity? { ... }
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Code Style
|
|
43
|
+
|
|
44
|
+
### Explicit Visibility Modifiers
|
|
45
|
+
|
|
46
|
+
All class members require explicit `public`, `private`, `protected`, or `internal`. Never rely on Kotlin's default `public`.
|
|
47
|
+
|
|
48
|
+
```kotlin
|
|
49
|
+
// BAD — implicit public
|
|
50
|
+
fun processData(input: String) { ... }
|
|
51
|
+
|
|
52
|
+
// GOOD — explicit modifier
|
|
53
|
+
public fun processData(input: String) { ... }
|
|
54
|
+
private fun validateInput(input: String) { ... }
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### `val` over `var`
|
|
58
|
+
|
|
59
|
+
Default to `val` (immutable). Use `var` only when reassignment is needed.
|
|
60
|
+
|
|
61
|
+
```kotlin
|
|
62
|
+
// GOOD — assigned once
|
|
63
|
+
val configPath = resolve("config.json")
|
|
64
|
+
val configRaw = File(configPath).readText()
|
|
65
|
+
|
|
66
|
+
// var — reassigned later
|
|
67
|
+
var selectedCategory: String? = null
|
|
68
|
+
selectedCategory = matchedCategory
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Method Overloads vs Generic Parameters
|
|
72
|
+
|
|
73
|
+
Prefer overloads when the return type or behavior differs per input type. A single parameter type (e.g., `Any`) is fine when the handling is identical regardless of input type.
|
|
74
|
+
|
|
75
|
+
```kotlin
|
|
76
|
+
// GOOD — overloads (different behavior per type)
|
|
77
|
+
private fun format(value: String): String {
|
|
78
|
+
return value.trim()
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private fun format(value: Int): String {
|
|
82
|
+
return value.toString()
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// GOOD — single param (same handling regardless)
|
|
86
|
+
private fun validate(value: Any?): Boolean {
|
|
87
|
+
return value != null
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Method Ordering
|
|
92
|
+
|
|
93
|
+
1. Public methods first.
|
|
94
|
+
2. Private methods second.
|
|
95
|
+
|
|
96
|
+
Each method separated by a blank line. No blank line after opening brace or before closing brace of the class.
|
|
97
|
+
|
|
98
|
+
### Expression Functions vs Block Body
|
|
99
|
+
|
|
100
|
+
- **Expression function** (`= expression`): Only for single-expression methods that are simple and short.
|
|
101
|
+
- **Block body** (`{ ... }`): For anything with multiple statements or complex logic.
|
|
102
|
+
|
|
103
|
+
```kotlin
|
|
104
|
+
// GOOD — expression function for simple getter
|
|
105
|
+
public fun isActive(): Boolean = status == Status.ACTIVE
|
|
106
|
+
|
|
107
|
+
// GOOD — block body for anything with logic
|
|
108
|
+
public fun findById(id: UUID): Entity? {
|
|
109
|
+
val entity = database.get(id)
|
|
110
|
+
|
|
111
|
+
return entity
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### `when` Expression — Always Include `else`
|
|
116
|
+
|
|
117
|
+
Always include an `else` branch, even if there's nothing to handle. Each branch uses block scoping with `{ }`.
|
|
118
|
+
|
|
119
|
+
```kotlin
|
|
120
|
+
when (category) {
|
|
121
|
+
"added" -> {
|
|
122
|
+
logger.info("New feature.")
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
"fixed" -> {
|
|
126
|
+
logger.info("Bug fix.")
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
else -> {
|
|
130
|
+
logger.warn("Unknown category.")
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Explicit Null Checks — Avoid Optional Chaining
|
|
136
|
+
|
|
137
|
+
Avoid `?.` chaining — prefer explicit null checks with early returns. Nullish coalescing (`?:`) is fine for providing defaults. Don't combine them.
|
|
138
|
+
|
|
139
|
+
```kotlin
|
|
140
|
+
// BAD — optional chaining
|
|
141
|
+
val name = config?.name
|
|
142
|
+
|
|
143
|
+
// GOOD — explicit check
|
|
144
|
+
if (config == null) {
|
|
145
|
+
return
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
val name = config.name
|
|
149
|
+
|
|
150
|
+
// GOOD — Elvis operator for defaults
|
|
151
|
+
val timeout = options.timeout ?: 5000
|
|
152
|
+
val label = config.name ?: "default"
|
|
153
|
+
|
|
154
|
+
// BAD — chained together
|
|
155
|
+
val name = config?.name ?: "default"
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Scope Functions — Use Sparingly
|
|
159
|
+
|
|
160
|
+
Prefer explicit variable assignments over scope functions (`let`, `apply`, `also`, `run`, `with`). Use scope functions only when they genuinely improve readability — typically `apply` for object configuration.
|
|
161
|
+
|
|
162
|
+
```kotlin
|
|
163
|
+
// GOOD — apply for builder-style configuration
|
|
164
|
+
val config = Config().apply {
|
|
165
|
+
name = "nova"
|
|
166
|
+
version = "1.0.0"
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// BAD — let for simple null check (use explicit if instead)
|
|
170
|
+
config?.let { processConfig(it) }
|
|
171
|
+
|
|
172
|
+
// GOOD — explicit null check
|
|
173
|
+
if (config != null) {
|
|
174
|
+
processConfig(config)
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Named Lambda Parameters over `it`
|
|
179
|
+
|
|
180
|
+
Always name lambda parameters explicitly. Never use implicit `it`.
|
|
181
|
+
|
|
182
|
+
```kotlin
|
|
183
|
+
// BAD — implicit it
|
|
184
|
+
items.filter { it.isActive() }
|
|
185
|
+
|
|
186
|
+
// GOOD — named parameter
|
|
187
|
+
items.filter { item -> item.isActive() }
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Collection Operations vs `for` Loop
|
|
191
|
+
|
|
192
|
+
- `.filter()`, `.map()`, `.find()` — transforming or searching, returns a new value.
|
|
193
|
+
- `for` loop — side effects (logging, mutating external collections, coroutine operations).
|
|
194
|
+
- `.fold()` — acceptable, but `for` with a mutable accumulator is also fine.
|
|
195
|
+
|
|
196
|
+
### Block Body vs Expression Body in Lambdas
|
|
197
|
+
|
|
198
|
+
- **Block body** (`{ param -> ... }`): When accessing properties of the param, or when multiple statements needed.
|
|
199
|
+
- **Expression body** (`{ param -> expression }`): When the lambda is a direct comparison or single method call.
|
|
200
|
+
|
|
201
|
+
```kotlin
|
|
202
|
+
// Block body — accessing properties, multiple operations
|
|
203
|
+
items.map { item ->
|
|
204
|
+
val itemName = item.name
|
|
205
|
+
val itemRole = item.role
|
|
206
|
+
|
|
207
|
+
ItemResult(title = itemName, description = itemRole)
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Expression body — direct comparison
|
|
211
|
+
validCategories.find { validCategory -> validCategory == value }
|
|
212
|
+
|
|
213
|
+
// Expression body — single property check
|
|
214
|
+
results.filter { result -> result.status == "fulfilled" }
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Descriptive Lambda Parameter Names
|
|
218
|
+
|
|
219
|
+
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.
|
|
220
|
+
|
|
221
|
+
```kotlin
|
|
222
|
+
// BAD
|
|
223
|
+
validCategories.filter { c -> c == value }
|
|
224
|
+
|
|
225
|
+
// GOOD
|
|
226
|
+
validCategories.filter { validCategory -> validCategory == value }
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Variable Names Chain from Parent
|
|
230
|
+
|
|
231
|
+
When extracting properties from an object, the variable name chains from the parent variable name.
|
|
232
|
+
|
|
233
|
+
```kotlin
|
|
234
|
+
val workspaceConfig = workspace.config
|
|
235
|
+
val workspaceConfigName = workspaceConfig.name
|
|
236
|
+
val workspaceConfigRole = workspaceConfig.role
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Comment Placement in Method Bodies
|
|
240
|
+
|
|
241
|
+
Comments describe the process/intent. Placement rules:
|
|
242
|
+
- Comment sits above the code block it describes.
|
|
243
|
+
- Blank line before the comment (except at the start of a scope).
|
|
244
|
+
- No comment needed on the first block if it's self-explanatory.
|
|
245
|
+
- No trailing comments (same-line comments after code). Exception: multi-line conditions may use inline `//` comments after each condition line to explain the check.
|
|
246
|
+
|
|
247
|
+
### No Stacked Comments
|
|
248
|
+
|
|
249
|
+
One descriptive comment per code block. No consecutive comments without code between them.
|
|
250
|
+
|
|
251
|
+
### Quote File Names in Comments and Log Messages
|
|
252
|
+
|
|
253
|
+
Wrap file names in double quotes inside comments and log strings (e.g., `"config.json"`, `"CHANGELOG.md"`).
|
|
254
|
+
|
|
255
|
+
### Blank Lines between Distinct Operations
|
|
256
|
+
|
|
257
|
+
Separate method calls, suspend calls, and different logical blocks with blank lines. Variable declarations and loops also need blank line separation.
|
|
258
|
+
|
|
259
|
+
### Bare Side-Effect Statements Get Their Own Visual Group
|
|
260
|
+
|
|
261
|
+
When a function call has no assignment (return value unused), separate it from surrounding assignments with a blank line.
|
|
262
|
+
|
|
263
|
+
### Return Directly When Immediately Returned
|
|
264
|
+
|
|
265
|
+
Don't assign to an intermediate variable just to return it on the next line.
|
|
266
|
+
|
|
267
|
+
### Extract Nested Function Calls into Variables
|
|
268
|
+
|
|
269
|
+
Don't nest function calls as arguments to other function calls. Extract into its own named variable for readability.
|
|
270
|
+
|
|
271
|
+
### One Entry per Line in Collections
|
|
272
|
+
|
|
273
|
+
List literals, map literals, and similar collections use one entry per line in multiline constructs.
|
|
274
|
+
|
|
275
|
+
### Mixed Logical Conditions
|
|
276
|
+
|
|
277
|
+
When mixing `&&`/`||`, parenthesized groups go on their own lines, each condition on its own line.
|
|
278
|
+
|
|
279
|
+
### No Multi-Line Boolean Variable Assignments for `if`
|
|
280
|
+
|
|
281
|
+
Don't extract a multi-condition boolean into a named variable just to check it once. Inline conditions directly in `if` blocks.
|
|
282
|
+
|
|
283
|
+
### Ternary Expressions
|
|
284
|
+
|
|
285
|
+
Kotlin uses `if`/`else` expressions instead of ternary. Same rules apply:
|
|
286
|
+
- No nested `if`/`else` expression chains.
|
|
287
|
+
- No `if`/`else` expressions inside string templates — extract to a variable first.
|
|
288
|
+
|
|
289
|
+
### Readability — All Generated Code Must Be Human-Readable
|
|
290
|
+
|
|
291
|
+
Don't inline complex expressions into string templates or other expressions. Break them into named variables so each step is clear.
|
|
292
|
+
|
|
293
|
+
### Error Handling
|
|
294
|
+
|
|
295
|
+
- **Creator** (function designer): may design a function to throw on failure — that's the API contract.
|
|
296
|
+
- **Consumer** (function caller): always wraps calls to throwing functions in try/catch.
|
|
297
|
+
- CLI entry points never throw — set the appropriate exit code with `exitProcess()` and return.
|