@cbnventures/nova 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -0
- package/bin/nova.mjs +3 -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 +504 -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 +446 -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 +535 -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 +336 -0
- package/build/src/types/cli/generate/must-haves/agent-conventions.d.ts +43 -0
- package/build/src/types/cli/generate/must-haves/dotenv.d.ts +414 -0
- package/build/src/types/cli/generate/must-haves/editorconfig.d.ts +33 -0
- package/build/src/types/cli/generate/must-haves/gitignore.d.ts +344 -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 +175 -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 +342 -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 +724 -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/.novaignore +0 -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/.cursorrules +54 -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/dotenv/.env.sample +14 -0
- package/build/templates/generators/must-haves/editorconfig/.editorconfig +212 -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/static/.gitkeep +0 -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,257 @@
|
|
|
1
|
+
# PHP Conventions
|
|
2
|
+
|
|
3
|
+
Quotes: Single (non-interpolated). Indentation: 4-space. File naming: PascalCase (PSR-4) or snake_case (e.g., `EntityRepository.php`).
|
|
4
|
+
|
|
5
|
+
## Documentation Style
|
|
6
|
+
|
|
7
|
+
- Comment syntax: `/** */`
|
|
8
|
+
- Padding tag: `@since 1.0.0` (PHPDoc)
|
|
9
|
+
- Param format: `@param type $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
|
+
```php
|
|
16
|
+
/**
|
|
17
|
+
* Backup Config File.
|
|
18
|
+
*
|
|
19
|
+
* @param string $backup_name - Backup name.
|
|
20
|
+
* @param string $conf_path - Conf path.
|
|
21
|
+
* @param string $backup_path - Backup path.
|
|
22
|
+
*
|
|
23
|
+
* @return void
|
|
24
|
+
*
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
*/
|
|
27
|
+
function backup_config_file(
|
|
28
|
+
string $backup_name,
|
|
29
|
+
string $conf_path,
|
|
30
|
+
string $backup_path
|
|
31
|
+
): void { ... }
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Code Style
|
|
35
|
+
|
|
36
|
+
### Strict Types Declaration
|
|
37
|
+
|
|
38
|
+
Every PHP file starts with `declare(strict_types=1)` immediately after the opening `<?php` tag.
|
|
39
|
+
|
|
40
|
+
```php
|
|
41
|
+
<?php
|
|
42
|
+
|
|
43
|
+
declare(strict_types=1);
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Explicit Access Modifiers
|
|
47
|
+
|
|
48
|
+
All class members require explicit `public`, `private`, or `protected`. Never rely on PHP's implicit public.
|
|
49
|
+
|
|
50
|
+
```php
|
|
51
|
+
// BAD — implicit public
|
|
52
|
+
function processData(string $input): void { ... }
|
|
53
|
+
|
|
54
|
+
// GOOD — explicit modifier
|
|
55
|
+
public function processData(string $input): void { ... }
|
|
56
|
+
private function validateInput(string $input): void { ... }
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Type Declarations Everywhere
|
|
60
|
+
|
|
61
|
+
All function parameters, return types, and class properties must have explicit type declarations. Use union types (`string|int`) and nullable types (`?string`) where needed.
|
|
62
|
+
|
|
63
|
+
```php
|
|
64
|
+
// BAD — no type declarations
|
|
65
|
+
function findById($id) { ... }
|
|
66
|
+
|
|
67
|
+
// GOOD — fully typed
|
|
68
|
+
public function findById(string $id): ?Entity { ... }
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### `readonly` Properties
|
|
72
|
+
|
|
73
|
+
Use `readonly` on properties assigned once in the constructor, never reassigned after (PHP 8.1+).
|
|
74
|
+
|
|
75
|
+
```php
|
|
76
|
+
public function __construct(
|
|
77
|
+
private readonly Database $database,
|
|
78
|
+
private readonly Logger $logger,
|
|
79
|
+
) { ... }
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Method Ordering
|
|
83
|
+
|
|
84
|
+
1. Public methods first.
|
|
85
|
+
2. Private methods second.
|
|
86
|
+
|
|
87
|
+
Each method separated by a blank line. No blank line after opening brace or before closing brace of the class.
|
|
88
|
+
|
|
89
|
+
### `match` Expression — Always Include `default`
|
|
90
|
+
|
|
91
|
+
Prefer `match` over `switch` for value mapping. Always include a `default` arm.
|
|
92
|
+
|
|
93
|
+
```php
|
|
94
|
+
$label = match ($category) {
|
|
95
|
+
'added' => 'New feature',
|
|
96
|
+
'fixed' => 'Bug fix',
|
|
97
|
+
default => 'Unknown',
|
|
98
|
+
};
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
For side-effect branches, use `switch` with block-scoped `case` and always include `default`:
|
|
102
|
+
|
|
103
|
+
```php
|
|
104
|
+
switch ($category) {
|
|
105
|
+
case 'added': {
|
|
106
|
+
$logger->info('New feature.');
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
case 'fixed': {
|
|
111
|
+
$logger->info('Bug fix.');
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
default: {
|
|
116
|
+
$logger->warn('Unknown category.');
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Explicit Null Checks
|
|
123
|
+
|
|
124
|
+
Always use explicit comparisons. No truthy/falsy shortcuts.
|
|
125
|
+
|
|
126
|
+
- `=== null` — not set.
|
|
127
|
+
- `!== null` — present.
|
|
128
|
+
- `=== ''` — explicit empty string check.
|
|
129
|
+
- `count($array) > 0` — explicit array length check.
|
|
130
|
+
- `??` — null coalescing for defaults (fine to use).
|
|
131
|
+
|
|
132
|
+
```php
|
|
133
|
+
// BAD — truthy check
|
|
134
|
+
if ($name) { ... }
|
|
135
|
+
|
|
136
|
+
// GOOD — explicit checks
|
|
137
|
+
if ($name !== null) { ... }
|
|
138
|
+
if ($name !== '') { ... }
|
|
139
|
+
if (count($items) > 0) { ... }
|
|
140
|
+
|
|
141
|
+
// GOOD — null coalescing for defaults
|
|
142
|
+
$timeout = $options['timeout'] ?? 5000;
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Array Functions vs `foreach`
|
|
146
|
+
|
|
147
|
+
- `array_filter()`, `array_map()` — transforming or searching, returns a new value.
|
|
148
|
+
- `foreach` — side effects (logging, mutating external state).
|
|
149
|
+
- `array_reduce()` — acceptable, but `foreach` with a mutable accumulator is also fine.
|
|
150
|
+
|
|
151
|
+
### Descriptive Callback Parameter Names
|
|
152
|
+
|
|
153
|
+
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.
|
|
154
|
+
|
|
155
|
+
```php
|
|
156
|
+
// BAD
|
|
157
|
+
array_filter($valid_categories, fn($c) => $c === $value);
|
|
158
|
+
|
|
159
|
+
// GOOD
|
|
160
|
+
array_filter(
|
|
161
|
+
$valid_categories,
|
|
162
|
+
fn(string $valid_category) => $valid_category === $value
|
|
163
|
+
);
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Arrow Functions vs Anonymous Functions
|
|
167
|
+
|
|
168
|
+
- **Arrow function** (`fn() =>`): Single expression, no side effects.
|
|
169
|
+
- **Anonymous function** (`function() { }`): Multiple statements or side effects.
|
|
170
|
+
|
|
171
|
+
```php
|
|
172
|
+
// Arrow function — single expression
|
|
173
|
+
$names = array_map(
|
|
174
|
+
fn(Item $item) => $item->getName(),
|
|
175
|
+
$items
|
|
176
|
+
);
|
|
177
|
+
|
|
178
|
+
// Anonymous function — multiple statements
|
|
179
|
+
$results = array_map(
|
|
180
|
+
function (Item $item) {
|
|
181
|
+
$item_name = $item->getName();
|
|
182
|
+
$item_role = $item->getRole();
|
|
183
|
+
|
|
184
|
+
return new ItemResult($item_name, $item_role);
|
|
185
|
+
},
|
|
186
|
+
$items
|
|
187
|
+
);
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Variable Names Chain from Parent
|
|
191
|
+
|
|
192
|
+
When extracting properties from an object, the variable name chains from the parent variable name.
|
|
193
|
+
|
|
194
|
+
```php
|
|
195
|
+
$workspace_config = $workspace->getConfig();
|
|
196
|
+
$workspace_config_name = $workspace_config->getName();
|
|
197
|
+
$workspace_config_role = $workspace_config->getRole();
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Comment Placement in Method Bodies
|
|
201
|
+
|
|
202
|
+
Comments describe the process/intent. Placement rules:
|
|
203
|
+
- Comment sits above the code block it describes.
|
|
204
|
+
- Blank line before the comment (except at the start of a scope).
|
|
205
|
+
- No comment needed on the first block if it's self-explanatory.
|
|
206
|
+
- No trailing comments (same-line comments after code). Exception: multi-line conditions may use inline `//` comments after each condition line to explain the check.
|
|
207
|
+
|
|
208
|
+
### No Stacked Comments
|
|
209
|
+
|
|
210
|
+
One descriptive comment per code block. No consecutive comments without code between them.
|
|
211
|
+
|
|
212
|
+
### Quote File Names in Comments and Log Messages
|
|
213
|
+
|
|
214
|
+
Wrap file names in double quotes inside comments and log strings (e.g., `"config.json"`, `"CHANGELOG.md"`).
|
|
215
|
+
|
|
216
|
+
### Blank Lines between Distinct Operations
|
|
217
|
+
|
|
218
|
+
Separate function calls and different logical blocks with blank lines. Variable declarations and loops also need blank line separation.
|
|
219
|
+
|
|
220
|
+
### Bare Side-Effect Statements Get Their Own Visual Group
|
|
221
|
+
|
|
222
|
+
When a function call has no assignment (return value unused), separate it from surrounding assignments with a blank line.
|
|
223
|
+
|
|
224
|
+
### Return Directly When Immediately Returned
|
|
225
|
+
|
|
226
|
+
Don't assign to an intermediate variable just to return it on the next line.
|
|
227
|
+
|
|
228
|
+
### Extract Nested Function Calls into Variables
|
|
229
|
+
|
|
230
|
+
Don't nest function calls as arguments to other function calls. Extract into its own named variable for readability.
|
|
231
|
+
|
|
232
|
+
### One Entry per Line in Collections
|
|
233
|
+
|
|
234
|
+
Array literals and similar collections use one entry per line in multiline constructs.
|
|
235
|
+
|
|
236
|
+
### Mixed Logical Conditions
|
|
237
|
+
|
|
238
|
+
When mixing `&&`/`||`, parenthesized groups go on their own lines, each condition on its own line.
|
|
239
|
+
|
|
240
|
+
### No Multi-Line Boolean Variable Assignments for `if`
|
|
241
|
+
|
|
242
|
+
Don't extract a multi-condition boolean into a named variable just to check it once. Inline conditions directly in `if` blocks.
|
|
243
|
+
|
|
244
|
+
### Ternary Expressions
|
|
245
|
+
|
|
246
|
+
- No nested ternaries.
|
|
247
|
+
- No ternaries inside string interpolation — extract to a variable first.
|
|
248
|
+
|
|
249
|
+
### Readability — All Generated Code Must Be Human-Readable
|
|
250
|
+
|
|
251
|
+
Don't inline complex expressions into string interpolation or other expressions. Break them into named variables so each step is clear.
|
|
252
|
+
|
|
253
|
+
### Error Handling
|
|
254
|
+
|
|
255
|
+
- **Creator** (function designer): may design a function to throw on failure — that's the API contract.
|
|
256
|
+
- **Consumer** (function caller): always wraps calls to throwing functions in try/catch.
|
|
257
|
+
- CLI entry points never throw — set the appropriate exit code with `exit()` and return.
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
# Python Conventions
|
|
2
|
+
|
|
3
|
+
Quotes: Double (Black/Google convention). Indentation: 4-space. File naming: snake_case (PEP 8) (e.g., `entity_repository.py`).
|
|
4
|
+
|
|
5
|
+
## Documentation Style
|
|
6
|
+
|
|
7
|
+
- Comment syntax: `"""` (Google-style)
|
|
8
|
+
- Padding tag: `Version:\n 1.0.0` (Google-style custom section)
|
|
9
|
+
- Param format: `Args:\n name: Name.` (description matches the parameter name, capitalized, with a trailing period)
|
|
10
|
+
- Return format: `Returns:\n Type.`
|
|
11
|
+
- Docstring starts with `"""` then a newline before the summary line.
|
|
12
|
+
- No `@private` tag; use `_` prefix naming instead.
|
|
13
|
+
|
|
14
|
+
### Example
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
class EntityRepository:
|
|
18
|
+
"""
|
|
19
|
+
Entity Repository.
|
|
20
|
+
|
|
21
|
+
Version:
|
|
22
|
+
1.0.0
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
def __init__(self, database):
|
|
26
|
+
"""
|
|
27
|
+
Entity Repository - Constructor.
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
database: Database.
|
|
31
|
+
|
|
32
|
+
Version:
|
|
33
|
+
1.0.0
|
|
34
|
+
"""
|
|
35
|
+
self._database = database
|
|
36
|
+
|
|
37
|
+
def find_by_id(self, entity_id):
|
|
38
|
+
"""
|
|
39
|
+
Entity Repository - Find By ID.
|
|
40
|
+
|
|
41
|
+
Args:
|
|
42
|
+
entity_id: ID.
|
|
43
|
+
|
|
44
|
+
Returns:
|
|
45
|
+
Entity.
|
|
46
|
+
|
|
47
|
+
Version:
|
|
48
|
+
1.0.0
|
|
49
|
+
"""
|
|
50
|
+
return self._database.get(entity_id)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Code Style
|
|
54
|
+
|
|
55
|
+
### Private Members — `_` Prefix Convention
|
|
56
|
+
|
|
57
|
+
Use `_` prefix for private methods and attributes. Use `__` (name mangling) only when subclass collision avoidance is genuinely needed.
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
# GOOD — single underscore for private
|
|
61
|
+
self._database = database
|
|
62
|
+
self._cache = {}
|
|
63
|
+
|
|
64
|
+
def _validate_input(self, value):
|
|
65
|
+
...
|
|
66
|
+
|
|
67
|
+
# Only when subclass collision is a real concern
|
|
68
|
+
def __internal_reset(self):
|
|
69
|
+
...
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Type Hints Everywhere
|
|
73
|
+
|
|
74
|
+
All function parameters, return types, and class attributes must have type hints. Use `from __future__ import annotations` for forward references.
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
from __future__ import annotations
|
|
78
|
+
|
|
79
|
+
def find_by_id(self, entity_id: str) -> Entity | None:
|
|
80
|
+
...
|
|
81
|
+
|
|
82
|
+
def process_items(self, items: list[Item]) -> list[Result]:
|
|
83
|
+
...
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### `Final` and Immutability
|
|
87
|
+
|
|
88
|
+
Use `typing.Final` for constants that should never be reassigned. Python has no `const` — `Final` is the closest equivalent.
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
from typing import Final
|
|
92
|
+
|
|
93
|
+
MAX_RETRIES: Final[int] = 3
|
|
94
|
+
DEFAULT_TIMEOUT: Final[int] = 5000
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Method Ordering
|
|
98
|
+
|
|
99
|
+
1. Public methods first.
|
|
100
|
+
2. Private methods second (prefix `_`).
|
|
101
|
+
|
|
102
|
+
Each method separated by a blank line. No blank line after class declaration or before closing of the class.
|
|
103
|
+
|
|
104
|
+
### `match` Statement — Always Include Wildcard
|
|
105
|
+
|
|
106
|
+
Always include a `case _` wildcard (Python 3.10+). Each case uses a block.
|
|
107
|
+
|
|
108
|
+
```python
|
|
109
|
+
match category:
|
|
110
|
+
case "added":
|
|
111
|
+
logger.info("New feature.")
|
|
112
|
+
|
|
113
|
+
case "fixed":
|
|
114
|
+
logger.info("Bug fix.")
|
|
115
|
+
|
|
116
|
+
case _:
|
|
117
|
+
logger.warning("Unknown category.")
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Explicit `None` Checks — No Truthy/Falsy
|
|
121
|
+
|
|
122
|
+
Always use explicit comparisons. No truthy/falsy shortcuts.
|
|
123
|
+
|
|
124
|
+
- `is None` — not set.
|
|
125
|
+
- `is not None` — present.
|
|
126
|
+
- `== ""` — explicit empty string.
|
|
127
|
+
- `len(items) > 0` — explicit length check.
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
# BAD — truthy check
|
|
131
|
+
if name:
|
|
132
|
+
...
|
|
133
|
+
|
|
134
|
+
# GOOD — explicit checks
|
|
135
|
+
if name is not None:
|
|
136
|
+
...
|
|
137
|
+
if name != "":
|
|
138
|
+
...
|
|
139
|
+
if len(items) > 0:
|
|
140
|
+
...
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### List Comprehensions vs `map`/`filter` vs `for` Loop
|
|
144
|
+
|
|
145
|
+
- List comprehensions — transforming or filtering, returns a new list. Prefer over `map()`/`filter()`.
|
|
146
|
+
- `for` loop — side effects (logging, mutating external collections, async operations).
|
|
147
|
+
- `functools.reduce()` — acceptable, but `for` with a mutable accumulator is also fine.
|
|
148
|
+
|
|
149
|
+
```python
|
|
150
|
+
# GOOD — list comprehension for transformation
|
|
151
|
+
names = [item.name for item in items if item.is_active]
|
|
152
|
+
|
|
153
|
+
# GOOD — for loop for side effects
|
|
154
|
+
for item in items:
|
|
155
|
+
logger.info(item.name)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Descriptive Loop Variable Names
|
|
159
|
+
|
|
160
|
+
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.
|
|
161
|
+
|
|
162
|
+
```python
|
|
163
|
+
# BAD
|
|
164
|
+
for c in valid_categories:
|
|
165
|
+
...
|
|
166
|
+
|
|
167
|
+
# GOOD
|
|
168
|
+
for valid_category in valid_categories:
|
|
169
|
+
...
|
|
170
|
+
|
|
171
|
+
# More examples
|
|
172
|
+
for raw_path in raw_paths:
|
|
173
|
+
...
|
|
174
|
+
for allowed_policy in allowed_policies:
|
|
175
|
+
...
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Variable Names Chain from Parent
|
|
179
|
+
|
|
180
|
+
When extracting properties from an object, the variable name chains from the parent variable name.
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
workspace_config = workspace.config
|
|
184
|
+
workspace_config_name = workspace_config.name
|
|
185
|
+
workspace_config_role = workspace_config.role
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Comment Placement in Method Bodies
|
|
189
|
+
|
|
190
|
+
Comments describe the process/intent. Placement rules:
|
|
191
|
+
- Comment sits above the code block it describes.
|
|
192
|
+
- Blank line before the comment (except at the start of a scope).
|
|
193
|
+
- No comment needed on the first block if it's self-explanatory.
|
|
194
|
+
- No trailing comments (same-line comments after code). Exception: multi-line conditions may use inline `#` comments after each condition line to explain the check.
|
|
195
|
+
|
|
196
|
+
### No Stacked Comments
|
|
197
|
+
|
|
198
|
+
One descriptive comment per code block. No consecutive comments without code between them.
|
|
199
|
+
|
|
200
|
+
### Quote File Names in Comments and Log Messages
|
|
201
|
+
|
|
202
|
+
Wrap file names in double quotes inside comments and log strings (e.g., `"config.json"`, `"CHANGELOG.md"`).
|
|
203
|
+
|
|
204
|
+
### Blank Lines between Distinct Operations
|
|
205
|
+
|
|
206
|
+
Separate function calls, `await` statements, and different logical blocks with blank lines. Variable declarations and loops also need blank line separation.
|
|
207
|
+
|
|
208
|
+
```python
|
|
209
|
+
# BAD — everything stuck together
|
|
210
|
+
config_raw = path.read_text()
|
|
211
|
+
config = parser.parse(config_raw)
|
|
212
|
+
filtered = filter_items(config.items)
|
|
213
|
+
|
|
214
|
+
# GOOD — each operation gets breathing room
|
|
215
|
+
config_raw = path.read_text()
|
|
216
|
+
|
|
217
|
+
config = parser.parse(config_raw)
|
|
218
|
+
|
|
219
|
+
filtered = filter_items(config.items)
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Bare Side-Effect Statements Get Their Own Visual Group
|
|
223
|
+
|
|
224
|
+
When a function call has no assignment (return value unused), separate it from surrounding assignments with a blank line.
|
|
225
|
+
|
|
226
|
+
### Return Directly When Immediately Returned
|
|
227
|
+
|
|
228
|
+
Don't assign to an intermediate variable just to return it on the next line.
|
|
229
|
+
|
|
230
|
+
### Extract Nested Function Calls into Variables
|
|
231
|
+
|
|
232
|
+
Don't nest function calls as arguments to other function calls. Extract into its own named variable for readability.
|
|
233
|
+
|
|
234
|
+
### One Entry per Line in Collections
|
|
235
|
+
|
|
236
|
+
List literals, dict literals, and similar collections use one entry per line in multiline constructs.
|
|
237
|
+
|
|
238
|
+
### Mixed Logical Conditions
|
|
239
|
+
|
|
240
|
+
When mixing `and`/`or`, parenthesized groups go on their own lines, each condition on its own line.
|
|
241
|
+
|
|
242
|
+
### No Multi-Line Boolean Variable Assignments for `if`
|
|
243
|
+
|
|
244
|
+
Don't extract a multi-condition boolean into a named variable just to check it once. Inline conditions directly in `if` blocks.
|
|
245
|
+
|
|
246
|
+
### Inline `if`/`else` Expressions
|
|
247
|
+
|
|
248
|
+
Python's ternary is `value_a if condition else value_b`. Same rules apply:
|
|
249
|
+
- No nested inline `if`/`else` chains.
|
|
250
|
+
- No inline `if`/`else` inside f-strings — extract to a variable first.
|
|
251
|
+
|
|
252
|
+
### Readability — All Generated Code Must Be Human-Readable
|
|
253
|
+
|
|
254
|
+
Don't inline complex expressions into f-strings or other expressions. Break them into named variables so each step is clear.
|
|
255
|
+
|
|
256
|
+
### Error Handling
|
|
257
|
+
|
|
258
|
+
- **Creator** (function designer): may design a function to raise on failure — that's the API contract.
|
|
259
|
+
- **Consumer** (function caller): always wraps calls to raising functions in `try`/`except`.
|
|
260
|
+
- CLI entry points never raise — set the appropriate exit code with `sys.exit()` and return.
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Shell Conventions
|
|
2
|
+
|
|
3
|
+
Quotes: Double (for variable expansion). Indentation: 2-space. File naming: kebab-case (e.g., `backup-config.sh`).
|
|
4
|
+
|
|
5
|
+
## Documentation Style
|
|
6
|
+
|
|
7
|
+
Section banners and inline comments only. No doc comment blocks. Shell uses `#` with `=` borders:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# ============================
|
|
11
|
+
# Section Title
|
|
12
|
+
# ============================
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Code Style
|
|
16
|
+
|
|
17
|
+
### Strict Mode
|
|
18
|
+
|
|
19
|
+
Every shell script starts with `set -euo pipefail` after the shebang.
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
#!/usr/bin/env bash
|
|
23
|
+
set -euo pipefail
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### `SCRIPT_DIR` Detection
|
|
27
|
+
|
|
28
|
+
Every script that references relative paths must detect its own directory.
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### `main()` Entry Point
|
|
35
|
+
|
|
36
|
+
Scripts use a `main()` function as the entry point, called at the bottom of the file.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
main() {
|
|
40
|
+
# Script logic here.
|
|
41
|
+
...
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
main "$@"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Variable Quoting
|
|
48
|
+
|
|
49
|
+
Always double-quote variables. Unquoted variables cause word splitting and glob expansion.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# BAD — unquoted
|
|
53
|
+
cp $source_file $dest_dir
|
|
54
|
+
|
|
55
|
+
# GOOD — quoted
|
|
56
|
+
cp "${source_file}" "${dest_dir}"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Variable Naming
|
|
60
|
+
|
|
61
|
+
- Local variables: `snake_case` (lowercase).
|
|
62
|
+
- Environment/exported variables: `UPPER_SNAKE_CASE`.
|
|
63
|
+
- Use `local` for function-scoped variables.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# GOOD
|
|
67
|
+
local config_path="${SCRIPT_DIR}/config.json"
|
|
68
|
+
local output_dir="${1:-./output}"
|
|
69
|
+
|
|
70
|
+
export APP_VERSION="1.0.0"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Descriptive Loop Variable Names
|
|
74
|
+
|
|
75
|
+
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.
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# BAD
|
|
79
|
+
for f in "${workflow_files[@]}"; do
|
|
80
|
+
|
|
81
|
+
# GOOD
|
|
82
|
+
for workflow_file in "${workflow_files[@]}"; do
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Comment Placement
|
|
86
|
+
|
|
87
|
+
Comments describe the process/intent. Placement rules:
|
|
88
|
+
- Comment sits above the code block it describes.
|
|
89
|
+
- Blank line before the comment (except at the start of a scope).
|
|
90
|
+
- No comment needed on the first block if it's self-explanatory.
|
|
91
|
+
- No trailing comments (same-line comments after code). Exception: multi-line conditions may use inline `#` comments after each condition line to explain the check.
|
|
92
|
+
|
|
93
|
+
### No Stacked Comments
|
|
94
|
+
|
|
95
|
+
One descriptive comment per code block. No consecutive comments without code between them.
|
|
96
|
+
|
|
97
|
+
### Quote File Names in Comments and Log Messages
|
|
98
|
+
|
|
99
|
+
Wrap file names in double quotes inside comments and log strings (e.g., `"config.json"`, `"CHANGELOG.md"`).
|
|
100
|
+
|
|
101
|
+
### Blank Lines between Distinct Operations
|
|
102
|
+
|
|
103
|
+
Separate commands and different logical blocks with blank lines. Variable declarations and loops also need blank line separation.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# BAD — everything stuck together
|
|
107
|
+
local config_raw
|
|
108
|
+
config_raw="$(cat "${config_path}")"
|
|
109
|
+
local items
|
|
110
|
+
items="$(echo "${config_raw}" | jq '.items')"
|
|
111
|
+
process_items "${items}"
|
|
112
|
+
|
|
113
|
+
# GOOD — each operation gets breathing room
|
|
114
|
+
local config_raw
|
|
115
|
+
config_raw="$(cat "${config_path}")"
|
|
116
|
+
|
|
117
|
+
local items
|
|
118
|
+
items="$(echo "${config_raw}" | jq '.items')"
|
|
119
|
+
|
|
120
|
+
process_items "${items}"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Return Directly When Immediately Returned
|
|
124
|
+
|
|
125
|
+
Don't assign to an intermediate variable just to echo it on the next line.
|
|
126
|
+
|
|
127
|
+
### Extract Nested Commands into Variables
|
|
128
|
+
|
|
129
|
+
Don't nest command substitutions. Extract into its own named variable for readability.
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# BAD — nested substitutions
|
|
133
|
+
local result
|
|
134
|
+
result="$(basename "$(dirname "${file_path}")")"
|
|
135
|
+
|
|
136
|
+
# GOOD — extracted
|
|
137
|
+
local parent_dir
|
|
138
|
+
parent_dir="$(dirname "${file_path}")"
|
|
139
|
+
|
|
140
|
+
local result
|
|
141
|
+
result="$(basename "${parent_dir}")"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### One Entry per Line in Arrays
|
|
145
|
+
|
|
146
|
+
Array literals use one entry per line in multiline constructs.
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
local platforms=(
|
|
150
|
+
"nodejs"
|
|
151
|
+
"swift"
|
|
152
|
+
"kotlin"
|
|
153
|
+
"docker"
|
|
154
|
+
)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Conditional Expressions
|
|
158
|
+
|
|
159
|
+
Use `[[ ]]` over `[ ]`. Always use explicit comparisons.
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# BAD — single bracket, implicit check
|
|
163
|
+
if [ $name ]; then
|
|
164
|
+
|
|
165
|
+
# GOOD — double bracket, explicit check
|
|
166
|
+
if [[ -n "${name}" ]]; then
|
|
167
|
+
if [[ "${count}" -gt 0 ]]; then
|
|
168
|
+
if [[ "${value}" == "expected" ]]; then
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### `case` Statement — Always Include Wildcard
|
|
172
|
+
|
|
173
|
+
Always include a `*)` wildcard. Each pattern uses `;;` terminator.
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
case "${category}" in
|
|
177
|
+
"added")
|
|
178
|
+
info "New feature."
|
|
179
|
+
;;
|
|
180
|
+
|
|
181
|
+
"fixed")
|
|
182
|
+
info "Bug fix."
|
|
183
|
+
;;
|
|
184
|
+
|
|
185
|
+
*)
|
|
186
|
+
warn "Unknown category."
|
|
187
|
+
;;
|
|
188
|
+
esac
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Error Handling
|
|
192
|
+
|
|
193
|
+
- Functions that can fail should return non-zero exit codes.
|
|
194
|
+
- Callers check return codes or use `||` for error handling.
|
|
195
|
+
- Scripts never leave errors unhandled — `set -e` catches unchecked failures.
|
|
196
|
+
- Use `trap` for cleanup on exit.
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
trap cleanup EXIT
|
|
200
|
+
|
|
201
|
+
cleanup() {
|
|
202
|
+
# Remove temporary files.
|
|
203
|
+
rm -f "${tmp_file}"
|
|
204
|
+
}
|
|
205
|
+
```
|