@cbnventures/nova 0.14.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (969) hide show
  1. package/README.md +48 -0
  2. package/bin/nova.mjs +16 -0
  3. package/build/package.json +33 -23
  4. package/build/src/api/node-releases.d.ts +4 -4
  5. package/build/src/api/node-releases.d.ts.map +1 -1
  6. package/build/src/api/node-releases.js +31 -26
  7. package/build/src/api/node-releases.js.map +1 -1
  8. package/build/src/api/spdx-licenses.d.ts +4 -4
  9. package/build/src/api/spdx-licenses.d.ts.map +1 -1
  10. package/build/src/api/spdx-licenses.js +21 -18
  11. package/build/src/api/spdx-licenses.js.map +1 -1
  12. package/build/src/cli/generate/github/funding.d.ts +5 -0
  13. package/build/src/cli/generate/github/funding.d.ts.map +1 -0
  14. package/build/src/cli/generate/github/funding.js +68 -0
  15. package/build/src/cli/generate/github/funding.js.map +1 -0
  16. package/build/src/cli/generate/github/issue-template.d.ts +5 -0
  17. package/build/src/cli/generate/github/issue-template.d.ts.map +1 -0
  18. package/build/src/cli/generate/github/issue-template.js +267 -0
  19. package/build/src/cli/generate/github/issue-template.js.map +1 -0
  20. package/build/src/cli/generate/github/workflows.d.ts +10 -0
  21. package/build/src/cli/generate/github/workflows.d.ts.map +1 -0
  22. package/build/src/cli/generate/github/workflows.js +464 -0
  23. package/build/src/cli/generate/github/workflows.js.map +1 -0
  24. package/build/src/cli/generate/must-haves/agent-conventions.d.ts +5 -0
  25. package/build/src/cli/generate/must-haves/agent-conventions.d.ts.map +1 -0
  26. package/build/src/cli/generate/must-haves/agent-conventions.js +114 -0
  27. package/build/src/cli/generate/must-haves/agent-conventions.js.map +1 -0
  28. package/build/src/cli/generate/must-haves/dotenv.d.ts +12 -0
  29. package/build/src/cli/generate/must-haves/dotenv.d.ts.map +1 -0
  30. package/build/src/cli/generate/must-haves/dotenv.js +490 -0
  31. package/build/src/cli/generate/must-haves/dotenv.js.map +1 -0
  32. package/build/src/cli/generate/must-haves/editorconfig.d.ts +5 -0
  33. package/build/src/cli/generate/must-haves/editorconfig.d.ts.map +1 -0
  34. package/build/src/cli/generate/must-haves/editorconfig.js +37 -0
  35. package/build/src/cli/generate/must-haves/editorconfig.js.map +1 -0
  36. package/build/src/cli/generate/must-haves/gitignore.d.ts +13 -0
  37. package/build/src/cli/generate/must-haves/gitignore.d.ts.map +1 -0
  38. package/build/src/cli/generate/must-haves/gitignore.js +439 -0
  39. package/build/src/cli/generate/must-haves/gitignore.js.map +1 -0
  40. package/build/src/cli/generate/must-haves/license.d.ts +5 -0
  41. package/build/src/cli/generate/must-haves/license.d.ts.map +1 -0
  42. package/build/src/cli/generate/must-haves/license.js +131 -0
  43. package/build/src/cli/generate/must-haves/license.js.map +1 -0
  44. package/build/src/cli/generate/must-haves/read-me.d.ts +8 -0
  45. package/build/src/cli/generate/must-haves/read-me.d.ts.map +1 -0
  46. package/build/src/cli/generate/must-haves/read-me.js +255 -0
  47. package/build/src/cli/generate/must-haves/read-me.js.map +1 -0
  48. package/build/src/cli/index.js +298 -100
  49. package/build/src/cli/index.js.map +1 -1
  50. package/build/src/cli/recipe/index.d.ts +2 -2
  51. package/build/src/cli/recipe/index.d.ts.map +1 -1
  52. package/build/src/cli/recipe/index.js +19 -19
  53. package/build/src/cli/recipe/index.js.map +1 -1
  54. package/build/src/cli/recipe/package-json/cleanup.d.ts +3 -3
  55. package/build/src/cli/recipe/package-json/cleanup.d.ts.map +1 -1
  56. package/build/src/cli/recipe/package-json/cleanup.js +59 -50
  57. package/build/src/cli/recipe/package-json/cleanup.js.map +1 -1
  58. package/build/src/cli/recipe/package-json/normalize-artifacts.d.ts +3 -3
  59. package/build/src/cli/recipe/package-json/normalize-artifacts.d.ts.map +1 -1
  60. package/build/src/cli/recipe/package-json/normalize-artifacts.js +120 -112
  61. package/build/src/cli/recipe/package-json/normalize-artifacts.js.map +1 -1
  62. package/build/src/cli/recipe/package-json/normalize-bundler.d.ts +3 -3
  63. package/build/src/cli/recipe/package-json/normalize-bundler.d.ts.map +1 -1
  64. package/build/src/cli/recipe/package-json/normalize-bundler.js +36 -35
  65. package/build/src/cli/recipe/package-json/normalize-bundler.js.map +1 -1
  66. package/build/src/cli/recipe/package-json/normalize-dependencies.d.ts +3 -3
  67. package/build/src/cli/recipe/package-json/normalize-dependencies.d.ts.map +1 -1
  68. package/build/src/cli/recipe/package-json/normalize-dependencies.js +70 -64
  69. package/build/src/cli/recipe/package-json/normalize-dependencies.js.map +1 -1
  70. package/build/src/cli/recipe/package-json/normalize-modules.d.ts +3 -3
  71. package/build/src/cli/recipe/package-json/normalize-modules.d.ts.map +1 -1
  72. package/build/src/cli/recipe/package-json/normalize-modules.js +156 -142
  73. package/build/src/cli/recipe/package-json/normalize-modules.js.map +1 -1
  74. package/build/src/cli/recipe/package-json/normalize-tooling.d.ts +3 -3
  75. package/build/src/cli/recipe/package-json/normalize-tooling.d.ts.map +1 -1
  76. package/build/src/cli/recipe/package-json/normalize-tooling.js +52 -57
  77. package/build/src/cli/recipe/package-json/normalize-tooling.js.map +1 -1
  78. package/build/src/cli/recipe/package-json/sync-environment.d.ts +3 -3
  79. package/build/src/cli/recipe/package-json/sync-environment.d.ts.map +1 -1
  80. package/build/src/cli/recipe/package-json/sync-environment.js +94 -97
  81. package/build/src/cli/recipe/package-json/sync-environment.js.map +1 -1
  82. package/build/src/cli/recipe/package-json/sync-identity.d.ts +3 -3
  83. package/build/src/cli/recipe/package-json/sync-identity.d.ts.map +1 -1
  84. package/build/src/cli/recipe/package-json/sync-identity.js +67 -62
  85. package/build/src/cli/recipe/package-json/sync-identity.js.map +1 -1
  86. package/build/src/cli/recipe/package-json/sync-ownership.d.ts +3 -3
  87. package/build/src/cli/recipe/package-json/sync-ownership.d.ts.map +1 -1
  88. package/build/src/cli/recipe/package-json/sync-ownership.js +106 -106
  89. package/build/src/cli/recipe/package-json/sync-ownership.js.map +1 -1
  90. package/build/src/cli/scaffold/app/expressjs.d.ts +5 -0
  91. package/build/src/cli/scaffold/app/expressjs.d.ts.map +1 -0
  92. package/build/src/cli/scaffold/app/expressjs.js +8 -0
  93. package/build/src/cli/scaffold/app/expressjs.js.map +1 -0
  94. package/build/src/cli/scaffold/app/nextjs.d.ts +5 -0
  95. package/build/src/cli/scaffold/app/nextjs.d.ts.map +1 -0
  96. package/build/src/cli/scaffold/app/nextjs.js +8 -0
  97. package/build/src/cli/scaffold/app/nextjs.js.map +1 -0
  98. package/build/src/cli/scaffold/app/vite.d.ts +5 -0
  99. package/build/src/cli/scaffold/app/vite.d.ts.map +1 -0
  100. package/build/src/cli/scaffold/app/vite.js +8 -0
  101. package/build/src/cli/scaffold/app/vite.js.map +1 -0
  102. package/build/src/cli/scaffold/app/workers.d.ts +5 -0
  103. package/build/src/cli/scaffold/app/workers.d.ts.map +1 -0
  104. package/build/src/cli/scaffold/app/workers.js +8 -0
  105. package/build/src/cli/scaffold/app/workers.js.map +1 -0
  106. package/build/src/cli/scaffold/docs/docusaurus.d.ts +5 -0
  107. package/build/src/cli/scaffold/docs/docusaurus.d.ts.map +1 -0
  108. package/build/src/cli/scaffold/docs/docusaurus.js +8 -0
  109. package/build/src/cli/scaffold/docs/docusaurus.js.map +1 -0
  110. package/build/src/cli/scaffold/starter/base.d.ts +5 -0
  111. package/build/src/cli/scaffold/starter/base.d.ts.map +1 -0
  112. package/build/src/cli/scaffold/starter/base.js +132 -0
  113. package/build/src/cli/scaffold/starter/base.js.map +1 -0
  114. package/build/src/cli/utility/changelog.d.ts +3 -3
  115. package/build/src/cli/utility/changelog.d.ts.map +1 -1
  116. package/build/src/cli/utility/changelog.js +206 -172
  117. package/build/src/cli/utility/changelog.js.map +1 -1
  118. package/build/src/cli/utility/initialize.d.ts +6 -3
  119. package/build/src/cli/utility/initialize.d.ts.map +1 -1
  120. package/build/src/cli/utility/initialize.js +990 -265
  121. package/build/src/cli/utility/initialize.js.map +1 -1
  122. package/build/src/cli/utility/run-recipes.d.ts +3 -3
  123. package/build/src/cli/utility/run-recipes.d.ts.map +1 -1
  124. package/build/src/cli/utility/run-recipes.js +15 -14
  125. package/build/src/cli/utility/run-recipes.js.map +1 -1
  126. package/build/src/cli/utility/run-scripts.d.ts +4 -4
  127. package/build/src/cli/utility/run-scripts.d.ts.map +1 -1
  128. package/build/src/cli/utility/run-scripts.js +167 -70
  129. package/build/src/cli/utility/run-scripts.js.map +1 -1
  130. package/build/src/cli/utility/transpile.d.ts +3 -3
  131. package/build/src/cli/utility/transpile.d.ts.map +1 -1
  132. package/build/src/cli/utility/transpile.js +24 -19
  133. package/build/src/cli/utility/transpile.js.map +1 -1
  134. package/build/src/cli/utility/type-check.d.ts +3 -3
  135. package/build/src/cli/utility/type-check.d.ts.map +1 -1
  136. package/build/src/cli/utility/type-check.js +24 -19
  137. package/build/src/cli/utility/type-check.js.map +1 -1
  138. package/build/src/cli/utility/version.d.ts +3 -3
  139. package/build/src/cli/utility/version.d.ts.map +1 -1
  140. package/build/src/cli/utility/version.js +126 -68
  141. package/build/src/cli/utility/version.js.map +1 -1
  142. package/build/src/lib/item.d.ts +31 -29
  143. package/build/src/lib/item.d.ts.map +1 -1
  144. package/build/src/lib/item.js +106 -43
  145. package/build/src/lib/item.js.map +1 -1
  146. package/build/src/lib/nova-config.d.ts +6 -5
  147. package/build/src/lib/nova-config.d.ts.map +1 -1
  148. package/build/src/lib/nova-config.js +217 -59
  149. package/build/src/lib/nova-config.js.map +1 -1
  150. package/build/src/lib/regex.d.ts +92 -26
  151. package/build/src/lib/regex.d.ts.map +1 -1
  152. package/build/src/lib/regex.js +92 -26
  153. package/build/src/lib/regex.js.map +1 -1
  154. package/build/src/lib/scaffold.d.ts +10 -0
  155. package/build/src/lib/scaffold.d.ts.map +1 -0
  156. package/build/src/lib/scaffold.js +542 -0
  157. package/build/src/lib/scaffold.js.map +1 -0
  158. package/build/src/lib/schema.d.ts +2 -9
  159. package/build/src/lib/schema.d.ts.map +1 -1
  160. package/build/src/lib/schema.js +6 -8
  161. package/build/src/lib/schema.js.map +1 -1
  162. package/build/src/lib/utility.d.ts +21 -18
  163. package/build/src/lib/utility.d.ts.map +1 -1
  164. package/build/src/lib/utility.js +173 -79
  165. package/build/src/lib/utility.js.map +1 -1
  166. package/build/src/lib/workflow-templates.d.ts +3 -0
  167. package/build/src/lib/workflow-templates.d.ts.map +1 -0
  168. package/build/src/lib/workflow-templates.js +187 -0
  169. package/build/src/lib/workflow-templates.js.map +1 -0
  170. package/build/src/presets/eslint/dx-code-style.d.ts +4 -0
  171. package/build/src/presets/eslint/dx-code-style.d.ts.map +1 -0
  172. package/build/src/presets/eslint/dx-code-style.js +523 -0
  173. package/build/src/presets/eslint/dx-code-style.js.map +1 -0
  174. package/build/src/presets/eslint/dx-ignore.d.ts +4 -0
  175. package/build/src/presets/eslint/dx-ignore.d.ts.map +1 -0
  176. package/build/src/presets/eslint/{dx-ignore.mjs → dx-ignore.js} +1 -1
  177. package/build/src/presets/eslint/dx-ignore.js.map +1 -0
  178. package/build/src/presets/eslint/fw-docusaurus.d.ts +4 -0
  179. package/build/src/presets/eslint/fw-docusaurus.d.ts.map +1 -0
  180. package/build/src/presets/eslint/fw-docusaurus.js +6 -0
  181. package/build/src/presets/eslint/fw-docusaurus.js.map +1 -0
  182. package/build/src/presets/eslint/fw-expressjs.d.ts +4 -0
  183. package/build/src/presets/eslint/fw-expressjs.d.ts.map +1 -0
  184. package/build/src/presets/eslint/{fw-expressjs.mjs → fw-expressjs.js} +3 -5
  185. package/build/src/presets/eslint/fw-expressjs.js.map +1 -0
  186. package/build/src/presets/eslint/fw-nextjs.d.ts +4 -0
  187. package/build/src/presets/eslint/fw-nextjs.d.ts.map +1 -0
  188. package/build/src/presets/eslint/{fw-nextjs.mjs → fw-nextjs.js} +3 -5
  189. package/build/src/presets/eslint/fw-nextjs.js.map +1 -0
  190. package/build/src/presets/eslint/index.d.ts +16 -0
  191. package/build/src/presets/eslint/index.d.ts.map +1 -0
  192. package/build/src/presets/eslint/index.js +16 -0
  193. package/build/src/presets/eslint/index.js.map +1 -0
  194. package/build/src/presets/eslint/lang-javascript.d.ts +4 -0
  195. package/build/src/presets/eslint/lang-javascript.d.ts.map +1 -0
  196. package/build/src/presets/eslint/lang-javascript.js +34 -0
  197. package/build/src/presets/eslint/lang-javascript.js.map +1 -0
  198. package/build/src/presets/eslint/lang-mdx.d.ts +4 -0
  199. package/build/src/presets/eslint/lang-mdx.d.ts.map +1 -0
  200. package/build/src/presets/eslint/{lang-mdx.mjs → lang-mdx.js} +4 -8
  201. package/build/src/presets/eslint/lang-mdx.js.map +1 -0
  202. package/build/src/presets/eslint/lang-typescript.d.ts +4 -0
  203. package/build/src/presets/eslint/lang-typescript.d.ts.map +1 -0
  204. package/build/src/presets/eslint/lang-typescript.js +148 -0
  205. package/build/src/presets/eslint/lang-typescript.js.map +1 -0
  206. package/build/src/presets/eslint/runtime-browser.d.ts +4 -0
  207. package/build/src/presets/eslint/runtime-browser.d.ts.map +1 -0
  208. package/build/src/presets/eslint/{env-web-worker.mjs → runtime-browser.js} +1 -1
  209. package/build/src/presets/eslint/runtime-browser.js.map +1 -0
  210. package/build/src/presets/eslint/runtime-cloudflare-workers.d.ts +4 -0
  211. package/build/src/presets/eslint/runtime-cloudflare-workers.d.ts.map +1 -0
  212. package/build/src/presets/eslint/runtime-cloudflare-workers.js +6 -0
  213. package/build/src/presets/eslint/runtime-cloudflare-workers.js.map +1 -0
  214. package/build/src/presets/eslint/runtime-edge.d.ts +4 -0
  215. package/build/src/presets/eslint/runtime-edge.d.ts.map +1 -0
  216. package/build/src/presets/eslint/{env-edge.mjs → runtime-edge.js} +1 -1
  217. package/build/src/presets/eslint/runtime-edge.js.map +1 -0
  218. package/build/src/presets/eslint/runtime-node.d.ts +4 -0
  219. package/build/src/presets/eslint/runtime-node.d.ts.map +1 -0
  220. package/build/src/presets/eslint/{env-node.mjs → runtime-node.js} +4 -4
  221. package/build/src/presets/eslint/runtime-node.js.map +1 -0
  222. package/build/src/presets/eslint/runtime-service-worker.d.ts +4 -0
  223. package/build/src/presets/eslint/runtime-service-worker.d.ts.map +1 -0
  224. package/build/src/presets/eslint/runtime-service-worker.js +3 -0
  225. package/build/src/presets/eslint/runtime-service-worker.js.map +1 -0
  226. package/build/src/presets/eslint/runtime-web-worker.d.ts +4 -0
  227. package/build/src/presets/eslint/runtime-web-worker.d.ts.map +1 -0
  228. package/build/src/presets/eslint/runtime-web-worker.js +3 -0
  229. package/build/src/presets/eslint/runtime-web-worker.js.map +1 -0
  230. package/build/src/presets/eslint/tool-vite.d.ts +4 -0
  231. package/build/src/presets/eslint/tool-vite.d.ts.map +1 -0
  232. package/build/src/presets/eslint/{tool-vite.mjs → tool-vite.js} +3 -5
  233. package/build/src/presets/eslint/tool-vite.js.map +1 -0
  234. package/build/src/presets/tsconfig/dx-strict.json +1 -0
  235. package/build/src/presets/tsconfig/runtime-cloudflare-workers.json +12 -0
  236. package/build/src/presets/tsconfig/{platform-cloudflare-workers.json → runtime-web-worker.json} +2 -2
  237. package/build/src/rules/eslint/conventions/no-default-export-declaration.d.ts +11 -0
  238. package/build/src/rules/eslint/conventions/no-default-export-declaration.d.ts.map +1 -0
  239. package/build/src/rules/eslint/conventions/no-default-export-declaration.js +73 -0
  240. package/build/src/rules/eslint/conventions/no-default-export-declaration.js.map +1 -0
  241. package/build/src/rules/eslint/conventions/no-implicit-boolean.d.ts +15 -0
  242. package/build/src/rules/eslint/conventions/no-implicit-boolean.d.ts.map +1 -0
  243. package/build/src/rules/eslint/conventions/no-implicit-boolean.js +140 -0
  244. package/build/src/rules/eslint/conventions/no-implicit-boolean.js.map +1 -0
  245. package/build/src/rules/eslint/conventions/require-explicit-return.d.ts +15 -0
  246. package/build/src/rules/eslint/conventions/require-explicit-return.d.ts.map +1 -0
  247. package/build/src/rules/eslint/conventions/require-explicit-return.js +184 -0
  248. package/build/src/rules/eslint/conventions/require-explicit-return.js.map +1 -0
  249. package/build/src/rules/eslint/conventions/require-hash-private.d.ts +12 -0
  250. package/build/src/rules/eslint/conventions/require-hash-private.d.ts.map +1 -0
  251. package/build/src/rules/eslint/conventions/require-hash-private.js +67 -0
  252. package/build/src/rules/eslint/conventions/require-hash-private.js.map +1 -0
  253. package/build/src/rules/eslint/conventions/require-kebab-case-filename.d.ts +14 -0
  254. package/build/src/rules/eslint/conventions/require-kebab-case-filename.d.ts.map +1 -0
  255. package/build/src/rules/eslint/conventions/require-kebab-case-filename.js +95 -0
  256. package/build/src/rules/eslint/conventions/require-kebab-case-filename.js.map +1 -0
  257. package/build/src/rules/eslint/conventions/require-naming-convention.d.ts +34 -0
  258. package/build/src/rules/eslint/conventions/require-naming-convention.d.ts.map +1 -0
  259. package/build/src/rules/eslint/conventions/require-naming-convention.js +382 -0
  260. package/build/src/rules/eslint/conventions/require-naming-convention.js.map +1 -0
  261. package/build/src/rules/eslint/conventions/require-undefined-init.d.ts +11 -0
  262. package/build/src/rules/eslint/conventions/require-undefined-init.d.ts.map +1 -0
  263. package/build/src/rules/eslint/conventions/require-undefined-init.js +71 -0
  264. package/build/src/rules/eslint/conventions/require-undefined-init.js.map +1 -0
  265. package/build/src/rules/eslint/conventions/switch-case-blocks.d.ts +13 -0
  266. package/build/src/rules/eslint/conventions/switch-case-blocks.d.ts.map +1 -0
  267. package/build/src/rules/eslint/conventions/switch-case-blocks.js +82 -0
  268. package/build/src/rules/eslint/conventions/switch-case-blocks.js.map +1 -0
  269. package/build/src/rules/eslint/formatting/no-complex-arrow-concise.d.ts +15 -0
  270. package/build/src/rules/eslint/formatting/no-complex-arrow-concise.d.ts.map +1 -0
  271. package/build/src/rules/eslint/formatting/no-complex-arrow-concise.js +166 -0
  272. package/build/src/rules/eslint/formatting/no-complex-arrow-concise.js.map +1 -0
  273. package/build/src/rules/eslint/formatting/no-multiline-strings.d.ts +15 -0
  274. package/build/src/rules/eslint/formatting/no-multiline-strings.d.ts.map +1 -0
  275. package/build/src/rules/eslint/formatting/no-multiline-strings.js +162 -0
  276. package/build/src/rules/eslint/formatting/no-multiline-strings.js.map +1 -0
  277. package/build/src/rules/eslint/formatting/no-raw-text-in-code.d.ts +9 -4
  278. package/build/src/rules/eslint/formatting/no-raw-text-in-code.d.ts.map +1 -1
  279. package/build/src/rules/eslint/formatting/no-raw-text-in-code.js +53 -30
  280. package/build/src/rules/eslint/formatting/no-raw-text-in-code.js.map +1 -1
  281. package/build/src/rules/eslint/formatting/no-ternary-in-template-literal.d.ts +11 -0
  282. package/build/src/rules/eslint/formatting/no-ternary-in-template-literal.d.ts.map +1 -0
  283. package/build/src/rules/eslint/formatting/no-ternary-in-template-literal.js +55 -0
  284. package/build/src/rules/eslint/formatting/no-ternary-in-template-literal.js.map +1 -0
  285. package/build/src/rules/eslint/formatting/require-import-order.d.ts +14 -0
  286. package/build/src/rules/eslint/formatting/require-import-order.d.ts.map +1 -0
  287. package/build/src/rules/eslint/formatting/require-import-order.js +187 -0
  288. package/build/src/rules/eslint/formatting/require-import-order.js.map +1 -0
  289. package/build/src/rules/eslint/formatting/require-multiline-condition-groups.d.ts +13 -0
  290. package/build/src/rules/eslint/formatting/require-multiline-condition-groups.d.ts.map +1 -0
  291. package/build/src/rules/eslint/formatting/require-multiline-condition-groups.js +138 -0
  292. package/build/src/rules/eslint/formatting/require-multiline-condition-groups.js.map +1 -0
  293. package/build/src/rules/eslint/formatting/require-multiline-conditions.d.ts +13 -0
  294. package/build/src/rules/eslint/formatting/require-multiline-conditions.d.ts.map +1 -0
  295. package/build/src/rules/eslint/formatting/require-multiline-conditions.js +94 -0
  296. package/build/src/rules/eslint/formatting/require-multiline-conditions.js.map +1 -0
  297. package/build/src/rules/eslint/formatting/require-padding-lines.d.ts +23 -11
  298. package/build/src/rules/eslint/formatting/require-padding-lines.d.ts.map +1 -1
  299. package/build/src/rules/eslint/formatting/require-padding-lines.js +291 -155
  300. package/build/src/rules/eslint/formatting/require-padding-lines.js.map +1 -1
  301. package/build/src/rules/eslint/formatting/require-ternary-parens.d.ts +11 -0
  302. package/build/src/rules/eslint/formatting/require-ternary-parens.d.ts.map +1 -0
  303. package/build/src/rules/eslint/formatting/require-ternary-parens.js +76 -0
  304. package/build/src/rules/eslint/formatting/require-ternary-parens.js.map +1 -0
  305. package/build/src/rules/eslint/index.d.ts +44 -14
  306. package/build/src/rules/eslint/index.d.ts.map +1 -1
  307. package/build/src/rules/eslint/index.js +44 -14
  308. package/build/src/rules/eslint/index.js.map +1 -1
  309. package/build/src/rules/eslint/jsdoc/require-jsdoc-body.d.ts +15 -0
  310. package/build/src/rules/eslint/jsdoc/require-jsdoc-body.d.ts.map +1 -0
  311. package/build/src/rules/eslint/jsdoc/require-jsdoc-body.js +176 -0
  312. package/build/src/rules/eslint/jsdoc/require-jsdoc-body.js.map +1 -0
  313. package/build/src/rules/eslint/jsdoc/require-jsdoc-hierarchy.d.ts +26 -0
  314. package/build/src/rules/eslint/jsdoc/require-jsdoc-hierarchy.d.ts.map +1 -0
  315. package/build/src/rules/eslint/jsdoc/require-jsdoc-hierarchy.js +495 -0
  316. package/build/src/rules/eslint/jsdoc/require-jsdoc-hierarchy.js.map +1 -0
  317. package/build/src/rules/eslint/jsdoc/require-jsdoc-param-alignment.d.ts +12 -0
  318. package/build/src/rules/eslint/jsdoc/require-jsdoc-param-alignment.d.ts.map +1 -0
  319. package/build/src/rules/eslint/jsdoc/require-jsdoc-param-alignment.js +144 -0
  320. package/build/src/rules/eslint/jsdoc/require-jsdoc-param-alignment.js.map +1 -0
  321. package/build/src/rules/eslint/jsdoc/require-jsdoc-param-name.d.ts +12 -0
  322. package/build/src/rules/eslint/jsdoc/require-jsdoc-param-name.d.ts.map +1 -0
  323. package/build/src/rules/eslint/jsdoc/require-jsdoc-param-name.js +97 -0
  324. package/build/src/rules/eslint/jsdoc/require-jsdoc-param-name.js.map +1 -0
  325. package/build/src/rules/eslint/jsdoc/require-jsdoc-private.d.ts +11 -0
  326. package/build/src/rules/eslint/jsdoc/require-jsdoc-private.d.ts.map +1 -0
  327. package/build/src/rules/eslint/jsdoc/require-jsdoc-private.js +90 -0
  328. package/build/src/rules/eslint/jsdoc/require-jsdoc-private.js.map +1 -0
  329. package/build/src/rules/eslint/jsdoc/require-jsdoc-since.d.ts +11 -0
  330. package/build/src/rules/eslint/jsdoc/require-jsdoc-since.d.ts.map +1 -0
  331. package/build/src/rules/eslint/jsdoc/require-jsdoc-since.js +88 -0
  332. package/build/src/rules/eslint/jsdoc/require-jsdoc-since.js.map +1 -0
  333. package/build/src/rules/eslint/nova/no-logger-dev.d.ts +11 -4
  334. package/build/src/rules/eslint/nova/no-logger-dev.d.ts.map +1 -1
  335. package/build/src/rules/eslint/nova/no-logger-dev.js +104 -82
  336. package/build/src/rules/eslint/nova/no-logger-dev.js.map +1 -1
  337. package/build/src/rules/eslint/patterns/no-assign-then-return.d.ts +9 -4
  338. package/build/src/rules/eslint/patterns/no-assign-then-return.d.ts.map +1 -1
  339. package/build/src/rules/eslint/patterns/no-assign-then-return.js +92 -51
  340. package/build/src/rules/eslint/patterns/no-assign-then-return.js.map +1 -1
  341. package/build/src/rules/eslint/patterns/no-await-in-loop.d.ts +17 -0
  342. package/build/src/rules/eslint/patterns/no-await-in-loop.d.ts.map +1 -0
  343. package/build/src/rules/eslint/patterns/no-await-in-loop.js +103 -0
  344. package/build/src/rules/eslint/patterns/no-await-in-loop.js.map +1 -0
  345. package/build/src/rules/eslint/patterns/no-boolean-var-for-if.d.ts +11 -0
  346. package/build/src/rules/eslint/patterns/no-boolean-var-for-if.d.ts.map +1 -0
  347. package/build/src/rules/eslint/patterns/no-boolean-var-for-if.js +100 -0
  348. package/build/src/rules/eslint/patterns/no-boolean-var-for-if.js.map +1 -0
  349. package/build/src/rules/eslint/patterns/no-bracket-assignment.d.ts +9 -4
  350. package/build/src/rules/eslint/patterns/no-bracket-assignment.d.ts.map +1 -1
  351. package/build/src/rules/eslint/patterns/no-bracket-assignment.js +60 -22
  352. package/build/src/rules/eslint/patterns/no-bracket-assignment.js.map +1 -1
  353. package/build/src/rules/eslint/patterns/no-bracket-method-call.d.ts +12 -0
  354. package/build/src/rules/eslint/patterns/no-bracket-method-call.d.ts.map +1 -0
  355. package/build/src/rules/eslint/patterns/no-bracket-method-call.js +86 -0
  356. package/build/src/rules/eslint/patterns/no-bracket-method-call.js.map +1 -0
  357. package/build/src/rules/eslint/patterns/no-template-curly-in-string.d.ts +11 -0
  358. package/build/src/rules/eslint/patterns/no-template-curly-in-string.d.ts.map +1 -0
  359. package/build/src/rules/eslint/patterns/no-template-curly-in-string.js +77 -0
  360. package/build/src/rules/eslint/patterns/no-template-curly-in-string.js.map +1 -0
  361. package/build/src/rules/eslint/patterns/no-use-before-define.d.ts +15 -0
  362. package/build/src/rules/eslint/patterns/no-use-before-define.d.ts.map +1 -0
  363. package/build/src/rules/eslint/patterns/no-use-before-define.js +148 -0
  364. package/build/src/rules/eslint/patterns/no-use-before-define.js.map +1 -0
  365. package/build/src/rules/eslint/regex/no-regex-literal-flags.d.ts +9 -4
  366. package/build/src/rules/eslint/regex/no-regex-literal-flags.d.ts.map +1 -1
  367. package/build/src/rules/eslint/regex/no-regex-literal-flags.js +51 -26
  368. package/build/src/rules/eslint/regex/no-regex-literal-flags.js.map +1 -1
  369. package/build/src/rules/eslint/regex/no-regex-literals.d.ts +10 -7
  370. package/build/src/rules/eslint/regex/no-regex-literals.d.ts.map +1 -1
  371. package/build/src/rules/eslint/regex/no-regex-literals.js +62 -45
  372. package/build/src/rules/eslint/regex/no-regex-literals.js.map +1 -1
  373. package/build/src/rules/eslint/safety/no-script-url.d.ts +12 -0
  374. package/build/src/rules/eslint/safety/no-script-url.d.ts.map +1 -0
  375. package/build/src/rules/eslint/safety/no-script-url.js +71 -0
  376. package/build/src/rules/eslint/safety/no-script-url.js.map +1 -0
  377. package/build/src/rules/eslint/syntax/no-destructuring.d.ts +21 -0
  378. package/build/src/rules/eslint/syntax/no-destructuring.d.ts.map +1 -0
  379. package/build/src/rules/eslint/syntax/no-destructuring.js +219 -0
  380. package/build/src/rules/eslint/syntax/no-destructuring.js.map +1 -0
  381. package/build/src/rules/eslint/syntax/no-numeric-literals.d.ts +14 -0
  382. package/build/src/rules/eslint/syntax/no-numeric-literals.d.ts.map +1 -0
  383. package/build/src/rules/eslint/syntax/no-numeric-literals.js +108 -0
  384. package/build/src/rules/eslint/syntax/no-numeric-literals.js.map +1 -0
  385. package/build/src/rules/eslint/syntax/no-optional-chaining.d.ts +11 -0
  386. package/build/src/rules/eslint/syntax/no-optional-chaining.d.ts.map +1 -0
  387. package/build/src/rules/eslint/syntax/no-optional-chaining.js +51 -0
  388. package/build/src/rules/eslint/syntax/no-optional-chaining.js.map +1 -0
  389. package/build/src/rules/eslint/syntax/no-rest-params.d.ts +15 -0
  390. package/build/src/rules/eslint/syntax/no-rest-params.d.ts.map +1 -0
  391. package/build/src/rules/eslint/syntax/no-rest-params.js +158 -0
  392. package/build/src/rules/eslint/syntax/no-rest-params.js.map +1 -0
  393. package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.d.ts +9 -4
  394. package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.d.ts.map +1 -1
  395. package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.js +61 -34
  396. package/build/src/rules/eslint/typescript/no-catch-unknown-annotation.js.map +1 -1
  397. package/build/src/rules/eslint/typescript/no-explicit-any.d.ts +11 -0
  398. package/build/src/rules/eslint/typescript/no-explicit-any.d.ts.map +1 -0
  399. package/build/src/rules/eslint/typescript/no-explicit-any.js +51 -0
  400. package/build/src/rules/eslint/typescript/no-explicit-any.js.map +1 -0
  401. package/build/src/rules/eslint/typescript/no-inline-type-annotation.d.ts +14 -4
  402. package/build/src/rules/eslint/typescript/no-inline-type-annotation.d.ts.map +1 -1
  403. package/build/src/rules/eslint/typescript/no-inline-type-annotation.js +180 -30
  404. package/build/src/rules/eslint/typescript/no-inline-type-annotation.js.map +1 -1
  405. package/build/src/rules/eslint/typescript/no-shared-type-import.d.ts +10 -7
  406. package/build/src/rules/eslint/typescript/no-shared-type-import.d.ts.map +1 -1
  407. package/build/src/rules/eslint/typescript/no-shared-type-import.js +65 -51
  408. package/build/src/rules/eslint/typescript/no-shared-type-import.js.map +1 -1
  409. package/build/src/rules/eslint/typescript/require-bracket-property-access.d.ts +12 -0
  410. package/build/src/rules/eslint/typescript/require-bracket-property-access.d.ts.map +1 -0
  411. package/build/src/rules/eslint/typescript/require-bracket-property-access.js +115 -0
  412. package/build/src/rules/eslint/typescript/require-bracket-property-access.js.map +1 -0
  413. package/build/src/rules/eslint/typescript/require-type-naming.d.ts +12 -0
  414. package/build/src/rules/eslint/typescript/require-type-naming.d.ts.map +1 -0
  415. package/build/src/rules/eslint/typescript/require-type-naming.js +98 -0
  416. package/build/src/rules/eslint/typescript/require-type-naming.js.map +1 -0
  417. package/build/src/toolkit/bootstrap.d.ts +13 -0
  418. package/build/src/toolkit/bootstrap.d.ts.map +1 -0
  419. package/build/src/toolkit/bootstrap.js +175 -0
  420. package/build/src/toolkit/bootstrap.js.map +1 -0
  421. package/build/src/toolkit/cli-header.d.ts +5 -4
  422. package/build/src/toolkit/cli-header.d.ts.map +1 -1
  423. package/build/src/toolkit/cli-header.js +76 -62
  424. package/build/src/toolkit/cli-header.js.map +1 -1
  425. package/build/src/toolkit/index.d.ts +1 -0
  426. package/build/src/toolkit/index.d.ts.map +1 -1
  427. package/build/src/toolkit/index.js +1 -0
  428. package/build/src/toolkit/index.js.map +1 -1
  429. package/build/src/toolkit/logger.d.ts +9 -8
  430. package/build/src/toolkit/logger.d.ts.map +1 -1
  431. package/build/src/toolkit/logger.js +51 -32
  432. package/build/src/toolkit/logger.js.map +1 -1
  433. package/build/src/toolkit/markdown-table.d.ts +6 -5
  434. package/build/src/toolkit/markdown-table.d.ts.map +1 -1
  435. package/build/src/toolkit/markdown-table.js +36 -20
  436. package/build/src/toolkit/markdown-table.js.map +1 -1
  437. package/build/src/types/api/node-releases.d.ts +51 -0
  438. package/build/src/types/api/spdx-licenses.d.ts +41 -0
  439. package/build/src/types/cli/generate/github/funding.d.ts +59 -0
  440. package/build/src/types/cli/generate/github/issue-template.d.ts +142 -0
  441. package/build/src/types/cli/generate/github/workflows.d.ts +338 -0
  442. package/build/src/types/cli/generate/must-haves/agent-conventions.d.ts +45 -0
  443. package/build/src/types/cli/generate/must-haves/dotenv.d.ts +421 -0
  444. package/build/src/types/cli/generate/must-haves/editorconfig.d.ts +35 -0
  445. package/build/src/types/cli/generate/must-haves/gitignore.d.ts +346 -0
  446. package/build/src/types/cli/generate/must-haves/license.d.ts +72 -0
  447. package/build/src/types/cli/generate/must-haves/read-me.d.ts +176 -0
  448. package/build/src/types/cli/index.d.ts +182 -0
  449. package/build/src/types/cli/recipe/index.d.ts +36 -0
  450. package/build/src/types/cli/recipe/package-json/cleanup.d.ts +125 -0
  451. package/build/src/types/cli/recipe/package-json/normalize-artifacts.d.ts +104 -0
  452. package/build/src/types/cli/recipe/package-json/normalize-bundler.d.ts +78 -0
  453. package/build/src/types/cli/recipe/package-json/normalize-dependencies.d.ts +150 -0
  454. package/build/src/types/cli/recipe/package-json/normalize-modules.d.ts +76 -0
  455. package/build/src/types/cli/recipe/package-json/normalize-tooling.d.ts +89 -0
  456. package/build/src/types/cli/recipe/package-json/sync-environment.d.ts +140 -0
  457. package/build/src/types/cli/recipe/package-json/sync-identity.d.ts +107 -0
  458. package/build/src/types/cli/recipe/package-json/sync-ownership.d.ts +152 -0
  459. package/build/src/types/cli/scaffold/app/expressjs.d.ts +21 -0
  460. package/build/src/types/cli/scaffold/app/nextjs.d.ts +21 -0
  461. package/build/src/types/cli/scaffold/app/vite.d.ts +21 -0
  462. package/build/src/types/cli/scaffold/app/workers.d.ts +21 -0
  463. package/build/src/types/cli/scaffold/docs/docusaurus.d.ts +21 -0
  464. package/build/src/types/cli/scaffold/starter/base.d.ts +57 -0
  465. package/build/src/types/cli/utility/changelog.d.ts +381 -0
  466. package/build/src/types/cli/utility/initialize.d.ts +1185 -0
  467. package/build/src/types/cli/utility/run-recipes.d.ts +25 -0
  468. package/build/src/types/cli/utility/run-scripts.d.ts +133 -0
  469. package/build/src/types/cli/utility/transpile.d.ts +90 -0
  470. package/build/src/types/cli/utility/type-check.d.ts +88 -0
  471. package/build/src/types/cli/utility/version.d.ts +286 -0
  472. package/build/src/types/fetch-response.d.ts +12 -0
  473. package/build/src/types/lib/item.d.ts +536 -0
  474. package/build/src/types/lib/nova-config.d.ts +421 -0
  475. package/build/src/types/lib/scaffold.d.ts +344 -0
  476. package/build/src/types/lib/utility.d.ts +486 -0
  477. package/build/src/types/lib/workflow-templates.d.ts +48 -0
  478. package/build/src/types/presets/eslint/dx-code-style.d.ts +8 -0
  479. package/build/src/types/presets/eslint/dx-ignore.d.ts +8 -0
  480. package/build/src/types/presets/eslint/fw-docusaurus.d.ts +8 -0
  481. package/build/src/types/presets/eslint/fw-expressjs.d.ts +8 -0
  482. package/build/src/types/presets/eslint/fw-nextjs.d.ts +8 -0
  483. package/build/src/types/presets/eslint/lang-javascript.d.ts +8 -0
  484. package/build/src/types/presets/eslint/lang-mdx.d.ts +8 -0
  485. package/build/src/types/presets/eslint/lang-typescript.d.ts +8 -0
  486. package/build/src/types/presets/eslint/runtime-browser.d.ts +8 -0
  487. package/build/src/types/presets/eslint/runtime-cloudflare-workers.d.ts +8 -0
  488. package/build/src/types/presets/eslint/runtime-edge.d.ts +8 -0
  489. package/build/src/types/presets/eslint/runtime-node.d.ts +8 -0
  490. package/build/src/types/presets/eslint/runtime-service-worker.d.ts +8 -0
  491. package/build/src/types/presets/eslint/runtime-web-worker.d.ts +8 -0
  492. package/build/src/types/presets/eslint/tool-vite.d.ts +8 -0
  493. package/build/src/types/rules/eslint/conventions/no-default-export-declaration.d.ts +32 -0
  494. package/build/src/types/rules/eslint/conventions/no-implicit-boolean.d.ts +72 -0
  495. package/build/src/types/rules/eslint/conventions/require-explicit-return.d.ts +73 -0
  496. package/build/src/types/rules/eslint/conventions/require-hash-private.d.ts +31 -0
  497. package/build/src/types/rules/eslint/conventions/require-kebab-case-filename.d.ts +64 -0
  498. package/build/src/types/rules/eslint/conventions/require-naming-convention.d.ts +265 -0
  499. package/build/src/types/rules/eslint/conventions/require-undefined-init.d.ts +30 -0
  500. package/build/src/types/rules/eslint/conventions/switch-case-blocks.d.ts +48 -0
  501. package/build/src/types/rules/eslint/formatting/no-complex-arrow-concise.d.ts +74 -0
  502. package/build/src/types/rules/eslint/formatting/no-multiline-strings.d.ts +104 -0
  503. package/build/src/types/rules/eslint/formatting/no-raw-text-in-code.d.ts +28 -0
  504. package/build/src/types/rules/eslint/formatting/no-ternary-in-template-literal.d.ts +26 -0
  505. package/build/src/types/rules/eslint/formatting/require-import-order.d.ts +91 -0
  506. package/build/src/types/rules/eslint/formatting/require-multiline-condition-groups.d.ts +64 -0
  507. package/build/src/types/rules/eslint/formatting/require-multiline-conditions.d.ts +52 -0
  508. package/build/src/types/rules/eslint/formatting/require-padding-lines.d.ts +212 -0
  509. package/build/src/types/rules/eslint/formatting/require-ternary-parens.d.ts +32 -0
  510. package/build/src/types/rules/eslint/jsdoc/require-jsdoc-body.d.ts +56 -0
  511. package/build/src/types/rules/eslint/jsdoc/require-jsdoc-hierarchy.d.ts +302 -0
  512. package/build/src/types/rules/eslint/jsdoc/require-jsdoc-param-alignment.d.ts +108 -0
  513. package/build/src/types/rules/eslint/jsdoc/require-jsdoc-param-name.d.ts +61 -0
  514. package/build/src/types/rules/eslint/jsdoc/require-jsdoc-private.d.ts +40 -0
  515. package/build/src/types/rules/eslint/jsdoc/require-jsdoc-since.d.ts +30 -0
  516. package/build/src/types/rules/eslint/nova/no-logger-dev.d.ts +60 -0
  517. package/build/src/types/rules/eslint/patterns/no-assign-then-return.d.ts +42 -0
  518. package/build/src/types/rules/eslint/patterns/no-await-in-loop.d.ts +87 -0
  519. package/build/src/types/rules/eslint/patterns/no-boolean-var-for-if.d.ts +48 -0
  520. package/build/src/types/rules/eslint/patterns/no-bracket-assignment.d.ts +34 -0
  521. package/build/src/types/rules/eslint/patterns/no-bracket-method-call.d.ts +46 -0
  522. package/build/src/types/rules/eslint/patterns/no-template-curly-in-string.d.ts +32 -0
  523. package/build/src/types/rules/eslint/patterns/no-use-before-define.d.ts +84 -0
  524. package/build/src/types/rules/eslint/regex/no-regex-literal-flags.d.ts +26 -0
  525. package/build/src/types/rules/eslint/regex/no-regex-literals.d.ts +40 -0
  526. package/build/src/types/rules/eslint/safety/no-script-url.d.ts +37 -0
  527. package/build/src/types/rules/eslint/syntax/no-destructuring.d.ts +131 -0
  528. package/build/src/types/rules/eslint/syntax/no-numeric-literals.d.ts +57 -0
  529. package/build/src/types/rules/eslint/syntax/no-optional-chaining.d.ts +26 -0
  530. package/build/src/types/rules/eslint/syntax/no-rest-params.d.ts +78 -0
  531. package/build/src/types/rules/eslint/typescript/no-catch-unknown-annotation.d.ts +30 -0
  532. package/build/src/types/rules/eslint/typescript/no-explicit-any.d.ts +26 -0
  533. package/build/src/types/rules/eslint/typescript/no-inline-type-annotation.d.ts +94 -0
  534. package/build/src/types/rules/eslint/typescript/no-shared-type-import.d.ts +43 -0
  535. package/build/src/types/rules/eslint/typescript/require-bracket-property-access.d.ts +53 -0
  536. package/build/src/types/rules/eslint/typescript/require-type-naming.d.ts +51 -0
  537. package/build/src/types/shared.d.ts +731 -0
  538. package/build/src/types/tests/api/node-releases.test.d.ts +14 -0
  539. package/build/src/types/tests/api/spdx-licenses.test.d.ts +18 -0
  540. package/build/src/types/tests/cli/generate/github/funding.test.d.ts +26 -0
  541. package/build/src/types/tests/cli/generate/github/issue-template.test.d.ts +14 -0
  542. package/build/src/types/tests/cli/generate/github/workflows.test.d.ts +38 -0
  543. package/build/src/types/tests/cli/generate/must-haves/agent-conventions.test.d.ts +32 -0
  544. package/build/src/types/tests/cli/generate/must-haves/dotenv.test.d.ts +14 -0
  545. package/build/src/types/tests/cli/generate/must-haves/editorconfig.test.d.ts +22 -0
  546. package/build/src/types/tests/cli/generate/must-haves/gitignore.test.d.ts +14 -0
  547. package/build/src/types/tests/cli/generate/must-haves/license.test.d.ts +26 -0
  548. package/build/src/types/tests/cli/generate/must-haves/read-me.test.d.ts +26 -0
  549. package/build/src/types/tests/cli/recipe/package-json/cleanup.test.d.ts +42 -0
  550. package/build/src/types/tests/cli/recipe/package-json/normalize-artifacts.test.d.ts +32 -0
  551. package/build/src/types/tests/cli/recipe/package-json/normalize-bundler.test.d.ts +32 -0
  552. package/build/src/types/tests/cli/recipe/package-json/normalize-dependencies.test.d.ts +40 -0
  553. package/build/src/types/tests/cli/recipe/package-json/normalize-modules.test.d.ts +32 -0
  554. package/build/src/types/tests/cli/recipe/package-json/normalize-tooling.test.d.ts +32 -0
  555. package/build/src/types/tests/cli/recipe/package-json/sync-environment.test.d.ts +32 -0
  556. package/build/src/types/tests/cli/recipe/package-json/sync-identity.test.d.ts +32 -0
  557. package/build/src/types/tests/cli/recipe/package-json/sync-ownership.test.d.ts +32 -0
  558. package/build/src/types/tests/cli/scaffold/app/expressjs.test.d.ts +40 -0
  559. package/build/src/types/tests/cli/scaffold/app/nextjs.test.d.ts +42 -0
  560. package/build/src/types/tests/cli/scaffold/app/vite.test.d.ts +42 -0
  561. package/build/src/types/tests/cli/scaffold/app/workers.test.d.ts +40 -0
  562. package/build/src/types/tests/cli/scaffold/docs/docusaurus.test.d.ts +40 -0
  563. package/build/src/types/tests/cli/scaffold/starter/base.test.d.ts +40 -0
  564. package/build/src/types/tests/cli/utility/changelog.test.d.ts +68 -0
  565. package/build/src/types/tests/cli/utility/initialize.test.d.ts +14 -0
  566. package/build/src/types/tests/cli/utility/run-recipes.test.d.ts +22 -0
  567. package/build/src/types/tests/cli/utility/run-scripts.test.d.ts +52 -0
  568. package/build/src/types/tests/cli/utility/transpile.test.d.ts +26 -0
  569. package/build/src/types/tests/cli/utility/type-check.test.d.ts +22 -0
  570. package/build/src/types/tests/cli/utility/version.test.d.ts +12 -0
  571. package/build/src/types/tests/lib/item.test.d.ts +88 -0
  572. package/build/src/types/tests/lib/nova-config.test.d.ts +138 -0
  573. package/build/src/types/tests/lib/regex.test.d.ts +122 -0
  574. package/build/src/types/tests/lib/scaffold.test.d.ts +26 -0
  575. package/build/src/types/tests/lib/schema.test.d.ts +36 -0
  576. package/build/src/types/tests/lib/utility.test.d.ts +324 -0
  577. package/build/src/types/tests/lib/workflow-templates.test.d.ts +77 -0
  578. package/build/src/types/tests/rules/eslint/conventions/no-default-export-declaration.test.d.ts +8 -0
  579. package/build/src/types/tests/rules/eslint/conventions/no-implicit-boolean.test.d.ts +8 -0
  580. package/build/src/types/tests/rules/eslint/conventions/require-explicit-return.test.d.ts +8 -0
  581. package/build/src/types/tests/rules/eslint/conventions/require-hash-private.test.d.ts +8 -0
  582. package/build/src/types/tests/rules/eslint/conventions/require-kebab-case-filename.test.d.ts +8 -0
  583. package/build/src/types/tests/rules/eslint/conventions/require-naming-convention.test.d.ts +8 -0
  584. package/build/src/types/tests/rules/eslint/conventions/require-undefined-init.test.d.ts +8 -0
  585. package/build/src/types/tests/rules/eslint/conventions/switch-case-blocks.test.d.ts +8 -0
  586. package/build/src/types/tests/rules/eslint/formatting/no-complex-arrow-concise.test.d.ts +8 -0
  587. package/build/src/types/tests/rules/eslint/formatting/no-multiline-strings.test.d.ts +8 -0
  588. package/build/src/types/tests/rules/eslint/formatting/no-raw-text-in-code.test.d.ts +8 -0
  589. package/build/src/types/tests/rules/eslint/formatting/no-ternary-in-template-literal.test.d.ts +8 -0
  590. package/build/src/types/tests/rules/eslint/formatting/require-import-order.test.d.ts +8 -0
  591. package/build/src/types/tests/rules/eslint/formatting/require-multiline-condition-groups.test.d.ts +8 -0
  592. package/build/src/types/tests/rules/eslint/formatting/require-multiline-conditions.test.d.ts +8 -0
  593. package/build/src/types/tests/rules/eslint/formatting/require-padding-lines.test.d.ts +8 -0
  594. package/build/src/types/tests/rules/eslint/formatting/require-ternary-parens.test.d.ts +8 -0
  595. package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-body.test.d.ts +8 -0
  596. package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-hierarchy.test.d.ts +8 -0
  597. package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-param-alignment.test.d.ts +8 -0
  598. package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-param-name.test.d.ts +8 -0
  599. package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-private.test.d.ts +8 -0
  600. package/build/src/types/tests/rules/eslint/jsdoc/require-jsdoc-since.test.d.ts +8 -0
  601. package/build/src/types/tests/rules/eslint/nova/no-logger-dev.test.d.ts +8 -0
  602. package/build/src/types/tests/rules/eslint/patterns/no-assign-then-return.test.d.ts +8 -0
  603. package/build/src/types/tests/rules/eslint/patterns/no-await-in-loop.test.d.ts +8 -0
  604. package/build/src/types/tests/rules/eslint/patterns/no-boolean-var-for-if.test.d.ts +8 -0
  605. package/build/src/types/tests/rules/eslint/patterns/no-bracket-assignment.test.d.ts +8 -0
  606. package/build/src/types/tests/rules/eslint/patterns/no-bracket-method-call.test.d.ts +8 -0
  607. package/build/src/types/tests/rules/eslint/patterns/no-template-curly-in-string.test.d.ts +8 -0
  608. package/build/src/types/tests/rules/eslint/patterns/no-use-before-define.test.d.ts +8 -0
  609. package/build/src/types/tests/rules/eslint/regex/no-regex-literal-flags.test.d.ts +8 -0
  610. package/build/src/types/tests/rules/eslint/regex/no-regex-literals.test.d.ts +8 -0
  611. package/build/src/types/tests/rules/eslint/safety/no-script-url.test.d.ts +8 -0
  612. package/build/src/types/tests/rules/eslint/syntax/no-destructuring.test.d.ts +8 -0
  613. package/build/src/types/tests/rules/eslint/syntax/no-numeric-literals.test.d.ts +8 -0
  614. package/build/src/types/tests/rules/eslint/syntax/no-optional-chaining.test.d.ts +8 -0
  615. package/build/src/types/tests/rules/eslint/syntax/no-rest-params.test.d.ts +8 -0
  616. package/build/src/types/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.d.ts +8 -0
  617. package/build/src/types/tests/rules/eslint/typescript/no-explicit-any.test.d.ts +8 -0
  618. package/build/src/types/tests/rules/eslint/typescript/no-inline-type-annotation.test.d.ts +8 -0
  619. package/build/src/types/tests/rules/eslint/typescript/no-shared-type-import.test.d.ts +8 -0
  620. package/build/src/types/tests/rules/eslint/typescript/require-bracket-property-access.test.d.ts +12 -0
  621. package/build/src/types/tests/rules/eslint/typescript/require-type-naming.test.d.ts +8 -0
  622. package/build/src/types/tests/toolkit/bootstrap.test.d.ts +108 -0
  623. package/build/src/types/tests/toolkit/cli-header.test.d.ts +46 -0
  624. package/build/src/types/tests/toolkit/logger.test.d.ts +20 -0
  625. package/build/src/types/tests/toolkit/markdown-table.test.d.ts +65 -0
  626. package/build/src/types/tests/type-declarations.test.d.ts +564 -0
  627. package/build/src/types/toolkit/bootstrap.d.ts +133 -0
  628. package/build/src/types/toolkit/cli-header.d.ts +203 -0
  629. package/build/src/types/toolkit/logger.d.ts +160 -0
  630. package/build/src/types/toolkit/markdown-table.d.ts +159 -0
  631. package/build/templates/generators/github/funding/FUNDING.yml +12 -0
  632. package/build/templates/generators/github/issue-template/BUG-REPORT.yml +86 -0
  633. package/build/templates/generators/github/issue-template/FEATURE-REQUEST.yml +61 -0
  634. package/build/templates/generators/github/issue-template/SUPPORT-REQUEST.yml +50 -0
  635. package/build/templates/generators/github/issue-template/bug-report-fields/android.yml +16 -0
  636. package/build/templates/generators/github/issue-template/bug-report-fields/apple.yml +23 -0
  637. package/build/templates/generators/github/issue-template/bug-report-fields/csharp.yml +20 -0
  638. package/build/templates/generators/github/issue-template/bug-report-fields/docker.yml +33 -0
  639. package/build/templates/generators/github/issue-template/bug-report-fields/homebridge.yml +16 -0
  640. package/build/templates/generators/github/issue-template/bug-report-fields/nodejs.yml +8 -0
  641. package/build/templates/generators/github/issue-template/bug-report-fields/pfsense.yml +8 -0
  642. package/build/templates/generators/github/issue-template/bug-report-fields/php.yml +8 -0
  643. package/build/templates/generators/github/issue-template/bug-report-fields/python.yml +8 -0
  644. package/build/templates/generators/github/issue-template/bug-report-fields/screenshots.yml +7 -0
  645. package/build/templates/generators/github/issue-template/bug-report-fields/synology.yml +8 -0
  646. package/build/templates/generators/github/issue-template/bug-report-fields/web.yml +21 -0
  647. package/build/templates/generators/github/issue-template/config.yml +1 -0
  648. package/build/templates/generators/github/issue-template/legal-agreements/bug-report.yml +8 -0
  649. package/build/templates/generators/github/issue-template/legal-agreements/feature-request.yml +8 -0
  650. package/build/templates/generators/github/issue-template/legal-agreements/support-request.yml +8 -0
  651. package/build/templates/generators/github/workflows/check-sponsor-gated-issues/base.yml +57 -0
  652. package/build/templates/generators/github/workflows/lock-inactive-issues/base.yml +43 -0
  653. package/build/templates/generators/github/workflows/lock-inactive-issues/triggers/schedule.yml +5 -0
  654. package/build/templates/generators/github/workflows/publish-to-aws-amplify-nextjs/base.yml +53 -0
  655. package/build/templates/generators/github/workflows/publish-to-aws-amplify-nextjs/triggers/push.yml +5 -0
  656. package/build/templates/generators/github/workflows/publish-to-aws-amplify-nextjs/triggers/release.yml +5 -0
  657. package/build/templates/generators/github/workflows/publish-to-cloudflare-pages-docusaurus/base.yml +62 -0
  658. package/build/templates/generators/github/workflows/publish-to-cloudflare-pages-docusaurus/triggers/push.yml +5 -0
  659. package/build/templates/generators/github/workflows/publish-to-cloudflare-pages-docusaurus/triggers/release.yml +5 -0
  660. package/build/templates/generators/github/workflows/publish-to-docker-hub/base.yml +58 -0
  661. package/build/templates/generators/github/workflows/publish-to-docker-hub/triggers/release.yml +5 -0
  662. package/build/templates/generators/github/workflows/publish-to-docker-hub/triggers/workflow-run-any.yml +7 -0
  663. package/build/templates/generators/github/workflows/publish-to-docker-hub/triggers/workflow-run-failure.yml +8 -0
  664. package/build/templates/generators/github/workflows/publish-to-docker-hub/triggers/workflow-run-success.yml +8 -0
  665. package/build/templates/generators/github/workflows/publish-to-github-packages/base.yml +108 -0
  666. package/build/templates/generators/github/workflows/publish-to-github-packages/triggers/release.yml +5 -0
  667. package/build/templates/generators/github/workflows/publish-to-github-packages/triggers/workflow-run-any.yml +7 -0
  668. package/build/templates/generators/github/workflows/publish-to-github-packages/triggers/workflow-run-failure.yml +8 -0
  669. package/build/templates/generators/github/workflows/publish-to-github-packages/triggers/workflow-run-success.yml +8 -0
  670. package/build/templates/generators/github/workflows/publish-to-github-pages-docusaurus/base.yml +79 -0
  671. package/build/templates/generators/github/workflows/publish-to-github-pages-docusaurus/triggers/push.yml +5 -0
  672. package/build/templates/generators/github/workflows/publish-to-github-pages-docusaurus/triggers/release.yml +5 -0
  673. package/build/templates/generators/github/workflows/publish-to-npm/base.yml +91 -0
  674. package/build/templates/generators/github/workflows/publish-to-npm/triggers/release.yml +5 -0
  675. package/build/templates/generators/github/workflows/publish-to-npm/triggers/workflow-run-any.yml +7 -0
  676. package/build/templates/generators/github/workflows/publish-to-npm/triggers/workflow-run-failure.yml +8 -0
  677. package/build/templates/generators/github/workflows/publish-to-npm/triggers/workflow-run-success.yml +8 -0
  678. package/build/templates/generators/must-haves/agent-conventions/AGENTS.md +54 -0
  679. package/build/templates/generators/must-haves/agent-conventions/CLAUDE.md +54 -0
  680. package/build/templates/generators/must-haves/agent-conventions/PROJECT_RULES.md +290 -0
  681. package/build/templates/generators/must-haves/agent-conventions/VISION.md +62 -0
  682. package/build/templates/generators/must-haves/agent-conventions/conventions/csharp.md +317 -0
  683. package/build/templates/generators/must-haves/agent-conventions/conventions/css.md +188 -0
  684. package/build/templates/generators/must-haves/agent-conventions/conventions/docker.md +131 -0
  685. package/build/templates/generators/must-haves/agent-conventions/conventions/documentation.md +615 -0
  686. package/build/templates/generators/must-haves/agent-conventions/conventions/java.md +285 -0
  687. package/build/templates/generators/must-haves/agent-conventions/conventions/kotlin.md +297 -0
  688. package/build/templates/generators/must-haves/agent-conventions/conventions/php.md +257 -0
  689. package/build/templates/generators/must-haves/agent-conventions/conventions/python.md +260 -0
  690. package/build/templates/generators/must-haves/agent-conventions/conventions/shell.md +205 -0
  691. package/build/templates/generators/must-haves/agent-conventions/conventions/swift.md +312 -0
  692. package/build/templates/generators/must-haves/agent-conventions/conventions/typescript.md +1530 -0
  693. package/build/templates/generators/must-haves/agent-conventions/conventions/universal.md +202 -0
  694. package/build/templates/generators/must-haves/license/AGPL-3.0 +662 -0
  695. package/build/templates/generators/must-haves/license/Apache-2.0 +202 -0
  696. package/build/templates/generators/must-haves/license/BSD-2-Clause +25 -0
  697. package/build/templates/generators/must-haves/license/BSD-3-Clause +29 -0
  698. package/build/templates/generators/must-haves/license/BSL-1.0 +24 -0
  699. package/build/templates/generators/must-haves/license/CC0-1.0 +122 -0
  700. package/build/templates/generators/must-haves/license/EPL-2.0 +278 -0
  701. package/build/templates/generators/must-haves/license/GPL-2.0 +340 -0
  702. package/build/templates/generators/must-haves/license/GPL-3.0 +675 -0
  703. package/build/templates/generators/must-haves/license/LGPL-2.1 +505 -0
  704. package/build/templates/generators/must-haves/license/MIT +22 -0
  705. package/build/templates/generators/must-haves/license/MPL-2.0 +374 -0
  706. package/build/templates/generators/must-haves/license/Proprietary +22 -0
  707. package/build/templates/generators/must-haves/license/Unlicense +25 -0
  708. package/build/templates/generators/must-haves/read-me/README.md +17 -0
  709. package/build/templates/scaffold/app/express/package.json +20 -0
  710. package/build/templates/scaffold/app/express/src/index.ts +12 -0
  711. package/build/templates/scaffold/app/express/tsconfig.json +15 -0
  712. package/build/templates/scaffold/app/nextjs/next.config.mjs +4 -0
  713. package/build/templates/scaffold/app/nextjs/package.json +22 -0
  714. package/build/templates/scaffold/app/nextjs/src/app/globals.css +11 -0
  715. package/build/templates/scaffold/app/nextjs/src/app/layout.tsx +18 -0
  716. package/build/templates/scaffold/app/nextjs/src/app/page.tsx +8 -0
  717. package/build/templates/scaffold/app/nextjs/tsconfig.json +26 -0
  718. package/build/templates/scaffold/app/vite/index.html +12 -0
  719. package/build/templates/scaffold/app/vite/package.json +17 -0
  720. package/build/templates/scaffold/app/vite/src/main.ts +5 -0
  721. package/build/templates/scaffold/app/vite/tsconfig.json +16 -0
  722. package/build/templates/scaffold/app/vite/vite.config.mts +3 -0
  723. package/build/templates/scaffold/app/workers/package.json +16 -0
  724. package/build/templates/scaffold/app/workers/src/index.ts +13 -0
  725. package/build/templates/scaffold/app/workers/tsconfig.json +17 -0
  726. package/build/templates/scaffold/app/workers/wrangler.toml +3 -0
  727. package/build/templates/scaffold/docs/docusaurus/docs/intro.md +9 -0
  728. package/build/templates/scaffold/docs/docusaurus/docusaurus.config.ts +33 -0
  729. package/build/templates/scaffold/docs/docusaurus/package.json +20 -0
  730. package/build/templates/scaffold/docs/docusaurus/sidebars.ts +9 -0
  731. package/build/templates/scaffold/docs/docusaurus/tsconfig.json +8 -0
  732. package/package.json +33 -23
  733. package/build/src/presets/eslint/dx-code-style.d.mts +0 -4
  734. package/build/src/presets/eslint/dx-code-style.d.mts.map +0 -1
  735. package/build/src/presets/eslint/dx-code-style.mjs +0 -211
  736. package/build/src/presets/eslint/dx-code-style.mjs.map +0 -1
  737. package/build/src/presets/eslint/dx-ignore.d.mts +0 -4
  738. package/build/src/presets/eslint/dx-ignore.d.mts.map +0 -1
  739. package/build/src/presets/eslint/dx-ignore.mjs.map +0 -1
  740. package/build/src/presets/eslint/env-browser.d.mts +0 -4
  741. package/build/src/presets/eslint/env-browser.d.mts.map +0 -1
  742. package/build/src/presets/eslint/env-browser.mjs +0 -3
  743. package/build/src/presets/eslint/env-browser.mjs.map +0 -1
  744. package/build/src/presets/eslint/env-edge.d.mts +0 -4
  745. package/build/src/presets/eslint/env-edge.d.mts.map +0 -1
  746. package/build/src/presets/eslint/env-edge.mjs.map +0 -1
  747. package/build/src/presets/eslint/env-node.d.mts +0 -4
  748. package/build/src/presets/eslint/env-node.d.mts.map +0 -1
  749. package/build/src/presets/eslint/env-node.mjs.map +0 -1
  750. package/build/src/presets/eslint/env-service-worker.d.mts +0 -4
  751. package/build/src/presets/eslint/env-service-worker.d.mts.map +0 -1
  752. package/build/src/presets/eslint/env-service-worker.mjs +0 -3
  753. package/build/src/presets/eslint/env-service-worker.mjs.map +0 -1
  754. package/build/src/presets/eslint/env-web-worker.d.mts +0 -4
  755. package/build/src/presets/eslint/env-web-worker.d.mts.map +0 -1
  756. package/build/src/presets/eslint/env-web-worker.mjs.map +0 -1
  757. package/build/src/presets/eslint/fw-docusaurus.d.mts +0 -4
  758. package/build/src/presets/eslint/fw-docusaurus.d.mts.map +0 -1
  759. package/build/src/presets/eslint/fw-docusaurus.mjs +0 -10
  760. package/build/src/presets/eslint/fw-docusaurus.mjs.map +0 -1
  761. package/build/src/presets/eslint/fw-expressjs.d.mts +0 -4
  762. package/build/src/presets/eslint/fw-expressjs.d.mts.map +0 -1
  763. package/build/src/presets/eslint/fw-expressjs.mjs.map +0 -1
  764. package/build/src/presets/eslint/fw-nextjs.d.mts +0 -4
  765. package/build/src/presets/eslint/fw-nextjs.d.mts.map +0 -1
  766. package/build/src/presets/eslint/fw-nextjs.mjs.map +0 -1
  767. package/build/src/presets/eslint/index.d.mts +0 -16
  768. package/build/src/presets/eslint/index.d.mts.map +0 -1
  769. package/build/src/presets/eslint/index.mjs +0 -16
  770. package/build/src/presets/eslint/index.mjs.map +0 -1
  771. package/build/src/presets/eslint/lang-javascript.d.mts +0 -4
  772. package/build/src/presets/eslint/lang-javascript.d.mts.map +0 -1
  773. package/build/src/presets/eslint/lang-javascript.mjs +0 -3
  774. package/build/src/presets/eslint/lang-javascript.mjs.map +0 -1
  775. package/build/src/presets/eslint/lang-mdx.d.mts +0 -4
  776. package/build/src/presets/eslint/lang-mdx.d.mts.map +0 -1
  777. package/build/src/presets/eslint/lang-mdx.mjs.map +0 -1
  778. package/build/src/presets/eslint/lang-typescript.d.mts +0 -4
  779. package/build/src/presets/eslint/lang-typescript.d.mts.map +0 -1
  780. package/build/src/presets/eslint/lang-typescript.mjs +0 -88
  781. package/build/src/presets/eslint/lang-typescript.mjs.map +0 -1
  782. package/build/src/presets/eslint/platform-cloudflare-workers.d.mts +0 -4
  783. package/build/src/presets/eslint/platform-cloudflare-workers.d.mts.map +0 -1
  784. package/build/src/presets/eslint/platform-cloudflare-workers.mjs +0 -8
  785. package/build/src/presets/eslint/platform-cloudflare-workers.mjs.map +0 -1
  786. package/build/src/presets/eslint/tool-vite.d.mts +0 -4
  787. package/build/src/presets/eslint/tool-vite.d.mts.map +0 -1
  788. package/build/src/presets/eslint/tool-vite.mjs.map +0 -1
  789. package/build/src/presets/tsconfig/env-web-worker.json +0 -12
  790. package/build/src/rules/eslint/patterns/no-destructuring.d.ts +0 -13
  791. package/build/src/rules/eslint/patterns/no-destructuring.d.ts.map +0 -1
  792. package/build/src/rules/eslint/patterns/no-destructuring.js +0 -177
  793. package/build/src/rules/eslint/patterns/no-destructuring.js.map +0 -1
  794. package/build/src/rules/eslint/patterns/no-implicit-boolean.d.ts +0 -6
  795. package/build/src/rules/eslint/patterns/no-implicit-boolean.d.ts.map +0 -1
  796. package/build/src/rules/eslint/patterns/no-implicit-boolean.js +0 -62
  797. package/build/src/rules/eslint/patterns/no-implicit-boolean.js.map +0 -1
  798. package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.d.ts +0 -6
  799. package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.d.ts.map +0 -1
  800. package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.js +0 -32
  801. package/build/src/rules/eslint/patterns/no-ternary-in-template-literal.js.map +0 -1
  802. package/build/src/rules/eslint/patterns/switch-case-blocks.d.ts +0 -6
  803. package/build/src/rules/eslint/patterns/switch-case-blocks.d.ts.map +0 -1
  804. package/build/src/rules/eslint/patterns/switch-case-blocks.js +0 -36
  805. package/build/src/rules/eslint/patterns/switch-case-blocks.js.map +0 -1
  806. package/build/src/tests/api/node-releases.test.d.ts +0 -2
  807. package/build/src/tests/api/node-releases.test.d.ts.map +0 -1
  808. package/build/src/tests/api/node-releases.test.js +0 -193
  809. package/build/src/tests/api/node-releases.test.js.map +0 -1
  810. package/build/src/tests/api/spdx-licenses.test.d.ts +0 -2
  811. package/build/src/tests/api/spdx-licenses.test.d.ts.map +0 -1
  812. package/build/src/tests/api/spdx-licenses.test.js +0 -91
  813. package/build/src/tests/api/spdx-licenses.test.js.map +0 -1
  814. package/build/src/tests/cli/recipe/package-json/cleanup.test.d.ts +0 -2
  815. package/build/src/tests/cli/recipe/package-json/cleanup.test.d.ts.map +0 -1
  816. package/build/src/tests/cli/recipe/package-json/cleanup.test.js +0 -240
  817. package/build/src/tests/cli/recipe/package-json/cleanup.test.js.map +0 -1
  818. package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.d.ts +0 -2
  819. package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.d.ts.map +0 -1
  820. package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.js +0 -161
  821. package/build/src/tests/cli/recipe/package-json/normalize-artifacts.test.js.map +0 -1
  822. package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.d.ts +0 -2
  823. package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.d.ts.map +0 -1
  824. package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.js +0 -161
  825. package/build/src/tests/cli/recipe/package-json/normalize-bundler.test.js.map +0 -1
  826. package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.d.ts +0 -2
  827. package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.d.ts.map +0 -1
  828. package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.js +0 -175
  829. package/build/src/tests/cli/recipe/package-json/normalize-dependencies.test.js.map +0 -1
  830. package/build/src/tests/cli/recipe/package-json/normalize-modules.test.d.ts +0 -2
  831. package/build/src/tests/cli/recipe/package-json/normalize-modules.test.d.ts.map +0 -1
  832. package/build/src/tests/cli/recipe/package-json/normalize-modules.test.js +0 -164
  833. package/build/src/tests/cli/recipe/package-json/normalize-modules.test.js.map +0 -1
  834. package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.d.ts +0 -2
  835. package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.d.ts.map +0 -1
  836. package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.js +0 -193
  837. package/build/src/tests/cli/recipe/package-json/normalize-tooling.test.js.map +0 -1
  838. package/build/src/tests/cli/recipe/package-json/sync-environment.test.d.ts +0 -2
  839. package/build/src/tests/cli/recipe/package-json/sync-environment.test.d.ts.map +0 -1
  840. package/build/src/tests/cli/recipe/package-json/sync-environment.test.js +0 -158
  841. package/build/src/tests/cli/recipe/package-json/sync-environment.test.js.map +0 -1
  842. package/build/src/tests/cli/recipe/package-json/sync-identity.test.d.ts +0 -2
  843. package/build/src/tests/cli/recipe/package-json/sync-identity.test.d.ts.map +0 -1
  844. package/build/src/tests/cli/recipe/package-json/sync-identity.test.js +0 -156
  845. package/build/src/tests/cli/recipe/package-json/sync-identity.test.js.map +0 -1
  846. package/build/src/tests/cli/recipe/package-json/sync-ownership.test.d.ts +0 -2
  847. package/build/src/tests/cli/recipe/package-json/sync-ownership.test.d.ts.map +0 -1
  848. package/build/src/tests/cli/recipe/package-json/sync-ownership.test.js +0 -164
  849. package/build/src/tests/cli/recipe/package-json/sync-ownership.test.js.map +0 -1
  850. package/build/src/tests/cli/utility/changelog.test.d.ts +0 -2
  851. package/build/src/tests/cli/utility/changelog.test.d.ts.map +0 -1
  852. package/build/src/tests/cli/utility/changelog.test.js +0 -274
  853. package/build/src/tests/cli/utility/changelog.test.js.map +0 -1
  854. package/build/src/tests/cli/utility/initialize.test.d.ts +0 -2
  855. package/build/src/tests/cli/utility/initialize.test.d.ts.map +0 -1
  856. package/build/src/tests/cli/utility/initialize.test.js +0 -27
  857. package/build/src/tests/cli/utility/initialize.test.js.map +0 -1
  858. package/build/src/tests/cli/utility/run-recipes.test.d.ts +0 -2
  859. package/build/src/tests/cli/utility/run-recipes.test.d.ts.map +0 -1
  860. package/build/src/tests/cli/utility/run-recipes.test.js +0 -41
  861. package/build/src/tests/cli/utility/run-recipes.test.js.map +0 -1
  862. package/build/src/tests/cli/utility/run-scripts.test.d.ts +0 -2
  863. package/build/src/tests/cli/utility/run-scripts.test.d.ts.map +0 -1
  864. package/build/src/tests/cli/utility/run-scripts.test.js +0 -153
  865. package/build/src/tests/cli/utility/run-scripts.test.js.map +0 -1
  866. package/build/src/tests/cli/utility/transpile.test.d.ts +0 -2
  867. package/build/src/tests/cli/utility/transpile.test.d.ts.map +0 -1
  868. package/build/src/tests/cli/utility/transpile.test.js +0 -65
  869. package/build/src/tests/cli/utility/transpile.test.js.map +0 -1
  870. package/build/src/tests/cli/utility/type-check.test.d.ts +0 -2
  871. package/build/src/tests/cli/utility/type-check.test.d.ts.map +0 -1
  872. package/build/src/tests/cli/utility/type-check.test.js +0 -63
  873. package/build/src/tests/cli/utility/type-check.test.js.map +0 -1
  874. package/build/src/tests/cli/utility/version.test.d.ts +0 -2
  875. package/build/src/tests/cli/utility/version.test.d.ts.map +0 -1
  876. package/build/src/tests/cli/utility/version.test.js +0 -38
  877. package/build/src/tests/cli/utility/version.test.js.map +0 -1
  878. package/build/src/tests/lib/item.test.d.ts +0 -2
  879. package/build/src/tests/lib/item.test.d.ts.map +0 -1
  880. package/build/src/tests/lib/item.test.js +0 -142
  881. package/build/src/tests/lib/item.test.js.map +0 -1
  882. package/build/src/tests/lib/nova-config.test.d.ts +0 -2
  883. package/build/src/tests/lib/nova-config.test.d.ts.map +0 -1
  884. package/build/src/tests/lib/nova-config.test.js +0 -516
  885. package/build/src/tests/lib/nova-config.test.js.map +0 -1
  886. package/build/src/tests/lib/regex.test.d.ts +0 -2
  887. package/build/src/tests/lib/regex.test.d.ts.map +0 -1
  888. package/build/src/tests/lib/regex.test.js +0 -342
  889. package/build/src/tests/lib/regex.test.js.map +0 -1
  890. package/build/src/tests/lib/schema.test.d.ts +0 -2
  891. package/build/src/tests/lib/schema.test.d.ts.map +0 -1
  892. package/build/src/tests/lib/schema.test.js +0 -260
  893. package/build/src/tests/lib/schema.test.js.map +0 -1
  894. package/build/src/tests/lib/utility.test.d.ts +0 -2
  895. package/build/src/tests/lib/utility.test.d.ts.map +0 -1
  896. package/build/src/tests/lib/utility.test.js +0 -744
  897. package/build/src/tests/lib/utility.test.js.map +0 -1
  898. package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.d.ts +0 -2
  899. package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.d.ts.map +0 -1
  900. package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.js +0 -47
  901. package/build/src/tests/rules/eslint/formatting/no-raw-text-in-code.test.js.map +0 -1
  902. package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.d.ts +0 -2
  903. package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.d.ts.map +0 -1
  904. package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.js +0 -131
  905. package/build/src/tests/rules/eslint/formatting/require-padding-lines.test.js.map +0 -1
  906. package/build/src/tests/rules/eslint/nova/no-logger-dev.test.d.ts +0 -2
  907. package/build/src/tests/rules/eslint/nova/no-logger-dev.test.d.ts.map +0 -1
  908. package/build/src/tests/rules/eslint/nova/no-logger-dev.test.js +0 -55
  909. package/build/src/tests/rules/eslint/nova/no-logger-dev.test.js.map +0 -1
  910. package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.d.ts +0 -2
  911. package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.d.ts.map +0 -1
  912. package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.js +0 -39
  913. package/build/src/tests/rules/eslint/patterns/no-assign-then-return.test.js.map +0 -1
  914. package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.d.ts +0 -2
  915. package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.d.ts.map +0 -1
  916. package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.js +0 -40
  917. package/build/src/tests/rules/eslint/patterns/no-bracket-assignment.test.js.map +0 -1
  918. package/build/src/tests/rules/eslint/patterns/no-destructuring.test.d.ts +0 -2
  919. package/build/src/tests/rules/eslint/patterns/no-destructuring.test.d.ts.map +0 -1
  920. package/build/src/tests/rules/eslint/patterns/no-destructuring.test.js +0 -86
  921. package/build/src/tests/rules/eslint/patterns/no-destructuring.test.js.map +0 -1
  922. package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.d.ts +0 -2
  923. package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.d.ts.map +0 -1
  924. package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.js +0 -76
  925. package/build/src/tests/rules/eslint/patterns/no-implicit-boolean.test.js.map +0 -1
  926. package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.d.ts +0 -2
  927. package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.d.ts.map +0 -1
  928. package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.js +0 -42
  929. package/build/src/tests/rules/eslint/patterns/no-ternary-in-template-literal.test.js.map +0 -1
  930. package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.d.ts +0 -2
  931. package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.d.ts.map +0 -1
  932. package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.js +0 -43
  933. package/build/src/tests/rules/eslint/patterns/switch-case-blocks.test.js.map +0 -1
  934. package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.d.ts +0 -2
  935. package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.d.ts.map +0 -1
  936. package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.js +0 -47
  937. package/build/src/tests/rules/eslint/regex/no-regex-literal-flags.test.js.map +0 -1
  938. package/build/src/tests/rules/eslint/regex/no-regex-literals.test.d.ts +0 -2
  939. package/build/src/tests/rules/eslint/regex/no-regex-literals.test.d.ts.map +0 -1
  940. package/build/src/tests/rules/eslint/regex/no-regex-literals.test.js +0 -49
  941. package/build/src/tests/rules/eslint/regex/no-regex-literals.test.js.map +0 -1
  942. package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.d.ts +0 -2
  943. package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.d.ts.map +0 -1
  944. package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.js +0 -34
  945. package/build/src/tests/rules/eslint/typescript/no-catch-unknown-annotation.test.js.map +0 -1
  946. package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.d.ts +0 -2
  947. package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.d.ts.map +0 -1
  948. package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.js +0 -55
  949. package/build/src/tests/rules/eslint/typescript/no-inline-type-annotation.test.js.map +0 -1
  950. package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.d.ts +0 -2
  951. package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.d.ts.map +0 -1
  952. package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.js +0 -51
  953. package/build/src/tests/rules/eslint/typescript/no-shared-type-import.test.js.map +0 -1
  954. package/build/src/tests/toolkit/cli-header.test.d.ts +0 -2
  955. package/build/src/tests/toolkit/cli-header.test.d.ts.map +0 -1
  956. package/build/src/tests/toolkit/cli-header.test.js +0 -143
  957. package/build/src/tests/toolkit/cli-header.test.js.map +0 -1
  958. package/build/src/tests/toolkit/logger.test.d.ts +0 -2
  959. package/build/src/tests/toolkit/logger.test.d.ts.map +0 -1
  960. package/build/src/tests/toolkit/logger.test.js +0 -96
  961. package/build/src/tests/toolkit/logger.test.js.map +0 -1
  962. package/build/src/tests/toolkit/markdown-table.test.d.ts +0 -2
  963. package/build/src/tests/toolkit/markdown-table.test.d.ts.map +0 -1
  964. package/build/src/tests/toolkit/markdown-table.test.js +0 -138
  965. package/build/src/tests/toolkit/markdown-table.test.js.map +0 -1
  966. /package/build/src/presets/tsconfig/{env-browser.json → runtime-browser.json} +0 -0
  967. /package/build/src/presets/tsconfig/{env-edge.json → runtime-edge.json} +0 -0
  968. /package/build/src/presets/tsconfig/{env-node.json → runtime-node.json} +0 -0
  969. /package/build/src/presets/tsconfig/{env-service-worker.json → runtime-service-worker.json} +0 -0
@@ -0,0 +1,615 @@
1
+ # Documentation Conventions
2
+
3
+ Rules for writing Docusaurus MDX documentation pages.
4
+
5
+ ## General Rules
6
+
7
+ ### Opening Paragraph
8
+
9
+ - Every page starts with a single sentence after imports, before any heading.
10
+ - Verb-first, states what the feature does.
11
+
12
+ ```mdx
13
+ <!-- GOOD — verb-first, single sentence -->
14
+ Require blank lines between specific statement patterns so code stays visually organized and easy to scan.
15
+
16
+ <!-- BAD — noun-first, passive -->
17
+ A blank-line enforcement rule that keeps code visually organized.
18
+
19
+ <!-- BAD — starts with "This page" -->
20
+ This page explains how to require blank lines between statement patterns.
21
+ ```
22
+
23
+ ### Paragraph Length
24
+
25
+ - No paragraph has more than 2 sentences. Start a new paragraph or bullet at the third sentence.
26
+ - Bullet points are strictly limited to 2 sentences.
27
+
28
+ ### Scannable Structure
29
+
30
+ - Prefer bullet lists over paragraphs for sequential or parallel points.
31
+ - One idea per bullet.
32
+ - Long sections (more than 10 lines of prose) should break into H3 subsections.
33
+
34
+ ### Voice and Tone
35
+
36
+ - Recommends, never commands. Use "it is recommended" over imperative "Always do X."
37
+ - Address the reader as "you" (second person).
38
+ - Contractions allowed ("don't", "you're", "it's").
39
+ - Present tense, active voice.
40
+ - Benefits first, mechanics second.
41
+
42
+ ```mdx
43
+ <!-- GOOD — recommends, benefit-focused -->
44
+ Keeps your imports organized so you can find modules at a glance.
45
+
46
+ <!-- BAD — commands, consequence-focused -->
47
+ You must organize your imports. Failure to do so will result in messy code.
48
+ ```
49
+
50
+ ## Audience and Technical Depth
51
+
52
+ Every page has a primary audience. Pick it before writing, then calibrate vocabulary, examples, and assumed prerequisites to match.
53
+
54
+ The right reader should feel informed; the wrong reader should not feel talked down to or scared off.
55
+
56
+ ### Tiers
57
+
58
+ | Tier | Reader profile | Assumed knowledge | Jargon policy |
59
+ |--------------------------|-------------------------------------------------------------------------|--------------------------------------------------------------|-----------------------------------------------------------------------------|
60
+ | End user | Interacts with the final product — UI, generated output, deployed site. | None beyond the product's own surface. | No implementation terms. Describe outcomes and visible behavior only. |
61
+ | Moderately technical | Runs commands, edits config files, follows setup steps. | Terminal basics, JSON/YAML, environment variables. | Domain terms allowed if wrapped in `<Term>`. No internal module names. |
62
+ | Developer | Consumes the public API in their own code. | The host language and framework. Reads types and signatures. | Public API names, types, and framework terms expected. No internals. |
63
+ | Contributor / Maintainer | Modifies the source of the project or package the page describes. | Repository layout, build tooling, testing conventions. | Internal architecture, private modules, and build pipeline details allowed. |
64
+
65
+ ### Page Type → Default Tier
66
+
67
+ | Page Type | Default Tier |
68
+ |--------------------------|--------------------------|
69
+ | Landing / overview | End user |
70
+ | Quickstart | Moderately technical |
71
+ | Installation / setup | Moderately technical |
72
+ | CLI command | Developer |
73
+ | ESLint rule | Developer |
74
+ | Toolkit battery | Developer |
75
+ | Preset | Developer |
76
+ | Configuration reference | Developer |
77
+ | Architecture / internals | Contributor / Maintainer |
78
+ | Contributing guide | Contributor / Maintainer |
79
+
80
+ ### Rules
81
+
82
+ - **Signal the tier through vocabulary, not a header.** Readers should never have to be told "this page is for developers" — the prose tells them.
83
+ - **Do not mix tiers within a section.** If a page must serve two tiers, lead with the higher-level framing and push lower-level detail into a later section (e.g., "How It Works") or an `:::info` admonition.
84
+ - **Implementation detail a reader cannot touch stays out.** Private classes, non-exported helpers, internal build steps, and paths outside the public surface do not appear on End-user or Moderately-technical pages. On Developer pages, mention them only when they affect observable behavior, and label them as internal when you do.
85
+ - **Do not punch up or down.** Developer pages should not explain what a terminal is; End-user pages should not assume familiarity with package managers.
86
+ - **When a feature spans tiers, split it.** Prefer two focused pages over one sprawling page that tries to be everything to everyone.
87
+
88
+ ## Frontmatter
89
+
90
+ Every MDX page requires these fields:
91
+
92
+ - `id` — kebab-case, matches filename without extension. No prefixes. For `index.mdx` files that serve as a category landing page, use a descriptive id that reflects the page's purpose (e.g., `overview`) instead of `index`.
93
+ - `title` — Title Case, 2-5 words. No trailing periods.
94
+ - `description` — One sentence, 50-160 characters, SEO-optimized. Starts with a verb or feature name.
95
+ - `keywords` — 5-15 terms. Always include the project name first, then the feature name, category, synonyms, and related concepts. Focused pages naturally have fewer keywords; do not pad with filler.
96
+ - `tags` — 3-7 terms. First tag is the category (cli, rules, toolkit, quickstart).
97
+
98
+ ```yaml
99
+ ---
100
+ id: require-padding-lines
101
+ title: Require Padding Lines
102
+ description: Require blank lines between specific statement patterns for improved readability and visual organization.
103
+ keywords:
104
+ - nova
105
+ - eslint rule
106
+ - padding lines
107
+ - blank lines
108
+ - readability
109
+ - code style
110
+ - linting
111
+ tags:
112
+ - rules
113
+ - eslint
114
+ - code style
115
+ ---
116
+ ```
117
+
118
+ ## SEO
119
+
120
+ - `description` reads as a natural sentence that a search engine would display as a snippet.
121
+ - Start with a verb or the feature name, never "This page explains..." or "Learn how to..."
122
+ - `keywords` include the feature name, category, synonyms, and related concepts. Do not repeat the same word in different forms (e.g., "lint" and "linting").
123
+ - `tags` are optimized for Docusaurus local search, not external SEO.
124
+
125
+ ## Page Templates
126
+
127
+ ### Universal Base
128
+
129
+ Every documentation page requires these sections:
130
+
131
+ 1. **Opening paragraph** — verb-first, single sentence, no heading.
132
+ 2. **Why Use This ___?** — Numbered list, benefit-focused. 3-5 items.
133
+ 3. **Usage** or **Examples** — Code samples showing how to use the feature.
134
+
135
+ Pages within the same group should share a similar section order and structure for visual consistency.
136
+
137
+ ### Fallback
138
+
139
+ Pages that don't fit a category template must still follow:
140
+
141
+ - Opening paragraph (verb-first, single sentence).
142
+ - At least one H2 section.
143
+ - Voice and tone rules.
144
+ - Frontmatter rules.
145
+
146
+ ### CLI Command Docs
147
+
148
+ Includes recipe docs (`nova recipe` commands).
149
+
150
+ **Required:**
151
+
152
+ 1. Opening paragraph
153
+ 2. Why Use This Command? (numbered list)
154
+ 3. Requirements (bold-label bullets)
155
+ 4. Usage (tabs: installed vs npx)
156
+ 5. Options (table)
157
+
158
+ **Optional (include when applicable):**
159
+
160
+ - **Config Fields** — when the command reads from `nova.config.json`.
161
+ - **Output Files** — when the command creates files on disk.
162
+ - **Supported ___** — when the command offers a curated selection (e.g., licenses, workflows).
163
+ - **How It Works** — when the command has complex behavior worth explaining with H3 subsections.
164
+
165
+ ### ESLint Rule Docs
166
+
167
+ **Required:**
168
+
169
+ 1. Opening paragraph
170
+ 2. Summary (2-5 bullets)
171
+ 3. Why Use This Rule? (numbered list)
172
+ 4. Examples (tabs: Correct / Incorrect)
173
+ 5. Configuration
174
+ 6. Troubleshooting (3-7 bullet items)
175
+
176
+ ### Toolkit Battery Docs
177
+
178
+ **Required:**
179
+
180
+ 1. Opening paragraph
181
+ 2. Summary (2-5 bullets)
182
+ 3. Why Use This Battery? (numbered list)
183
+ 4. Usage (tabs by feature area)
184
+ 5. Settings (table)
185
+ 6. Output Examples (tabs)
186
+
187
+ ## Section Formatting
188
+
189
+ ### Why Use This ___?
190
+
191
+ Heading changes by page type:
192
+
193
+ | Page Type | Heading |
194
+ |-----------------|---------------------------|
195
+ | CLI command | Why Use This Command? |
196
+ | ESLint rule | Why Use This Rule? |
197
+ | Toolkit battery | Why Use This Battery? |
198
+ | Preset | Why Use This Preset? |
199
+ | Quickstart | (no "Why" section needed) |
200
+
201
+ Content is a bulleted list. Each item follows the pattern: [Feature/capability] so [benefit]. Use bullets (not numbered lists) because the reasons are independent and unordered — rearranging them does not change meaning.
202
+
203
+ ```mdx
204
+ ## Why Use This Command?
205
+
206
+ - Supports 13 open-source licenses so you can pick the right one from the config.
207
+ - Auto-fills legal boilerplate so the license stays accurate when the year rolls over or ownership changes.
208
+ - Pulls the license type, author name, and starting year directly from `nova.config.json`, eliminating manual edits.
209
+ ```
210
+
211
+ ### Requirements
212
+
213
+ Bold label + em-dash + explanation.
214
+
215
+ ```mdx
216
+ ## Requirements
217
+
218
+ - **Node.js runtime** — Use any Node.js LTS release.
219
+ - **Project root** — Run the command from the directory containing the top-level `package.json`.
220
+ - **`nova.config.json`** — A valid config file must exist at the project root with the fields listed below.
221
+ ```
222
+
223
+ ### Usage
224
+
225
+ Tabs with exact structure. `groupId` is `"install-state"`. Show both original and shorthand commands inside each tab.
226
+
227
+ ````mdx
228
+ <Tabs groupId="install-state">
229
+ <TabItem value="nova" label="nova (installed)" default>
230
+
231
+ ```bash
232
+ # Original
233
+ nova generate must-haves license
234
+
235
+ # Shorthand
236
+ nova gen must lic
237
+ ```
238
+
239
+ </TabItem>
240
+ <TabItem value="npx" label="npx (no install)">
241
+
242
+ ```bash
243
+ # Original
244
+ npx --yes @cbnventures/nova@latest generate must-haves license
245
+
246
+ # Shorthand
247
+ npx --yes @cbnventures/nova@latest gen must lic
248
+ ```
249
+
250
+ </TabItem>
251
+ </Tabs>
252
+ ````
253
+
254
+ ## Components
255
+
256
+ ### Tabs
257
+
258
+ **Required for:**
259
+
260
+ - CLI usage — `groupId="install-state"` with labels `"nova (installed)"` and `"npx (no install)"`.
261
+ - ESLint examples — `groupId="{page-id}-examples"` with labels `"Correct"` and `"Incorrect"`.
262
+
263
+ **Plain code blocks for:**
264
+
265
+ - Single code examples.
266
+ - Configuration snippets.
267
+ - Inline demonstrations.
268
+
269
+ ### Admonitions
270
+
271
+ - `:::danger` — Non-zero exit codes, data loss, breaking changes. State only the risk, do not append general advice.
272
+ - `:::warning` — Important caveats, deprecations, required manual steps. Single concern per box.
273
+ - `:::tip` — Best practices, shortcuts, recommendations. May include gentle guidance.
274
+ - `:::info` — Neutral context, background, "good to know" details.
275
+
276
+ Do not repeat the same advice across multiple admonitions on the same page. Each admonition addresses a single concern.
277
+
278
+ ### Tables
279
+
280
+ - Left-align all columns, except emoji columns (checkmarks, x-marks) which are centered.
281
+ - Use backticks for code values, field names, and types in cells.
282
+ - Options tables use two columns: Flag | Description.
283
+ - Config tables use two columns: Field | Description.
284
+ - Maximum 4-5 columns. If more data is needed, use subsections instead.
285
+ - Pad columns for visual alignment in source markdown.
286
+
287
+ ```markdown
288
+ <!-- GOOD — left-aligned text columns, centered emoji columns -->
289
+ | Feature | macOS | Linux | Windows |
290
+ |-------------|:-----:|:-----:|:-------:|
291
+ | Auto-detect | ✓ | ✓ | ✗ |
292
+ | Hot reload | ✓ | ✓ | ✓ |
293
+ ```
294
+
295
+ ### Glossary Terms
296
+
297
+ Use the `<Term>` component for domain-specific jargon. Link to the terminology page with the appropriate anchor.
298
+
299
+ What counts as domain-specific jargon is tier-relative — see **Audience and Technical Depth**. A term that is table stakes for the page's tier does not need `<Term>`.
300
+
301
+ - Use `<Term>` on every occurrence of the word, not just the first. Readers should not have to scroll back to find a definition.
302
+ - `title` text is a brief definition (under 10 words).
303
+ - `to` path always points to `/docs/quickstart/terminology` with the section anchor.
304
+
305
+ ```mdx
306
+ <Term title="long term support" to="/docs/quickstart/terminology#fundamentals">LTS</Term>
307
+ <Term title="command line interface" to="/docs/quickstart/terminology#fundamentals">CLI</Term>
308
+ <Term title="Nova config" to="/docs/quickstart/terminology#nova-concepts">`nova.config.json`</Term>
309
+ ```
310
+
311
+ ### Links
312
+
313
+ - Internal links use absolute paths from the docs root: `/docs/path/to/page`.
314
+ - Always include anchors for specific sections: `/docs/path/to/page#section`.
315
+ - External links use the full URL.
316
+ - Do not use relative paths for cross-page links.
317
+
318
+ ### Images
319
+
320
+ - Store images in an `_assets_/` subdirectory adjacent to the MDX file.
321
+ - File names follow the MDX file name with a numeric suffix (e.g., `logger.mdx` → `logger-1.png`, `logger-2.png`).
322
+ - Import images as React components at the top of the file.
323
+ - Always include `alt`, `width`, `height`, and `style={{maxWidth: '100%', height: 'auto'}}`.
324
+
325
+ ```mdx
326
+ import loggerBasics from './_assets_/logger-1.png';
327
+
328
+ <img src={loggerBasics} alt="Logger basics preview" width={792} height={435} style={{maxWidth: '100%', height: 'auto'}} />
329
+ ```
330
+
331
+ ### Code Blocks
332
+
333
+ - Always include a language identifier after the opening triple backticks (`ts`, `bash`, `json`, `yaml`, `markdown`).
334
+ - Use the `title` attribute for file paths or filenames.
335
+ - Use inline comments for context within the code, not prose above the block.
336
+ - Do not use line highlighting (Docusaurus `{1,3-5}` syntax). Keep blocks short enough that the relevant lines are obvious.
337
+
338
+ ````mdx
339
+ ```ts title="src/cli/index.ts"
340
+ // Register the generate command group.
341
+ const generate = program
342
+ .command('generate')
343
+ .alias('gen');
344
+ ```
345
+ ````
346
+
347
+ ## Full Examples
348
+
349
+ ### CLI Command Page
350
+
351
+ ````mdx
352
+ ---
353
+ id: license
354
+ title: License (LICENSE)
355
+ description: Generate a LICENSE file populated with license type, author, and year information from nova.config.json.
356
+ keywords:
357
+ - nova
358
+ - nova generate
359
+ - license
360
+ - mit
361
+ - apache
362
+ - gpl
363
+ - bsd
364
+ - copyright
365
+ - legal
366
+ tags:
367
+ - cli
368
+ - generator
369
+ - must-haves
370
+ ---
371
+
372
+ import Tabs from '@theme/Tabs';
373
+ import TabItem from '@theme/TabItem';
374
+
375
+ Create a `LICENSE` file populated with the chosen license type, author legal name, and year range from the Nova config.
376
+
377
+ ## Why Use This Command?
378
+
379
+ 1. Supports 13 open-source licenses so you can pick the right one from the config.
380
+ 2. Auto-fills legal boilerplate so the license stays accurate when the year rolls over or ownership changes.
381
+ 3. Pulls the license type, author name, and starting year directly from `nova.config.json`, eliminating manual edits.
382
+
383
+ ## Requirements
384
+
385
+ - **Node.js runtime** — Use any Node.js <Term title="long term support" to="/docs/quickstart/terminology#fundamentals">LTS</Term> release.
386
+ - **Project root** — Run the command from the directory containing the top-level `package.json`.
387
+ - **<Term title="Nova config" to="/docs/quickstart/terminology#nova-concepts">`nova.config.json`</Term>** — A valid config file must exist at the project root with the fields listed below.
388
+
389
+ ## Usage
390
+
391
+ <Tabs groupId="install-state">
392
+ <TabItem value="nova" label="nova (installed)" default>
393
+
394
+ ```bash
395
+ # Original
396
+ nova generate must-haves license
397
+
398
+ # Shorthand
399
+ nova gen must lic
400
+ ```
401
+
402
+ </TabItem>
403
+ <TabItem value="npx" label="npx (no install)">
404
+
405
+ ```bash
406
+ # Original
407
+ npx --yes @cbnventures/nova@latest generate must-haves license
408
+
409
+ # Shorthand
410
+ npx --yes @cbnventures/nova@latest gen must lic
411
+ ```
412
+
413
+ </TabItem>
414
+ </Tabs>
415
+
416
+ ## Options
417
+
418
+ | Flag | Description |
419
+ |----------------------|------------------------------------------------------------------------|
420
+ | `-d, --dry-run` | Preview the target file path without writing anything to disk. |
421
+ | `-r, --replace-file` | Overwrite the existing file instead of creating a `.nova-backup` copy. |
422
+
423
+ ## Config Fields
424
+
425
+ | Field | Description |
426
+ |------------------------|------------------------------------------------------------------------------------------|
427
+ | `project.legalName` | The legal name used in the copyright notice. |
428
+ | `project.license` | SPDX license identifier. If not set, you are prompted to select a license interactively. |
429
+ | `project.startingYear` | The year the project was first published (defaults to now). |
430
+
431
+ ## Output Files
432
+
433
+ | File | Description |
434
+ |-----------|---------------------------------------------------------|
435
+ | `LICENSE` | License file populated with author name and year range. |
436
+ ````
437
+
438
+ ### ESLint Rule Page
439
+
440
+ ````mdx
441
+ ---
442
+ id: require-padding-lines
443
+ title: Require Padding Lines
444
+ description: Require blank lines between specific statement patterns for improved readability and visual organization.
445
+ keywords:
446
+ - nova
447
+ - eslint rule
448
+ - padding lines
449
+ - blank lines
450
+ - readability
451
+ - code style
452
+ - linting
453
+ tags:
454
+ - rules
455
+ - eslint
456
+ - code style
457
+ ---
458
+
459
+ import Tabs from '@theme/Tabs';
460
+ import TabItem from '@theme/TabItem';
461
+
462
+ Require blank lines between specific statement patterns so code stays visually organized and easy to scan.
463
+
464
+ ## Summary
465
+
466
+ - Enforces blank lines before and after `return`, `throw`, `if`, `for`, `switch`, and other block-level statements.
467
+ - Keeps code visually grouped by intent rather than letting everything run together.
468
+
469
+ ## Why Use This Rule?
470
+
471
+ 1. Prevents walls of code where unrelated operations blur together.
472
+ 2. Makes control flow boundaries visible at a glance so reviewers can scan faster.
473
+ 3. Produces consistent spacing across the entire codebase without manual effort.
474
+
475
+ ## Examples
476
+
477
+ <Tabs groupId="require-padding-lines-examples">
478
+ <TabItem value="correct" label="Correct" default>
479
+
480
+ ```ts
481
+ const config = loadConfig();
482
+
483
+ if (config === undefined) {
484
+ return;
485
+ }
486
+
487
+ const items = config.items;
488
+ ```
489
+
490
+ </TabItem>
491
+ <TabItem value="incorrect" label="Incorrect">
492
+
493
+ ```ts
494
+ const config = loadConfig();
495
+ if (config === undefined) {
496
+ return;
497
+ }
498
+ const items = config.items;
499
+ ```
500
+
501
+ </TabItem>
502
+ </Tabs>
503
+
504
+ ## Configuration
505
+
506
+ Enable the rule in your ESLint flat config:
507
+
508
+ ```ts title="eslint.config.ts"
509
+ import { novaRules } from '@cbnventures/nova';
510
+
511
+ export default [
512
+ ...novaRules,
513
+ ];
514
+ ```
515
+
516
+ ## Troubleshooting
517
+
518
+ - **False positives in object literals** — The rule does not apply inside object or array literals. Check that the flagged line is a statement, not a property.
519
+ - **Conflicts with Prettier** — Disable Prettier's blank-line collapsing for the affected file or section.
520
+ ````
521
+
522
+ ### Toolkit Battery Page
523
+
524
+ ````mdx
525
+ ---
526
+ id: logger
527
+ title: Logger
528
+ description: Deliver consistent log output across local runs and CI without wiring custom formatting by hand.
529
+ keywords:
530
+ - nova
531
+ - toolkit
532
+ - logger
533
+ - logging
534
+ - console
535
+ - output
536
+ - cli
537
+ tags:
538
+ - toolkit
539
+ - logging
540
+ - battery
541
+ ---
542
+
543
+ import Tabs from '@theme/Tabs';
544
+ import TabItem from '@theme/TabItem';
545
+
546
+ Deliver consistent log output across local runs and CI without wiring custom formatting by hand.
547
+
548
+ ## Summary
549
+
550
+ - Formats log messages with a consistent prefix, timestamp, and log level.
551
+ - Supports scoped loggers for isolating output by module or command.
552
+ - Automatically adjusts verbosity based on the `LOG_LEVEL` environment variable.
553
+
554
+ ## Why Use This Battery?
555
+
556
+ 1. Eliminates hand-rolled `console.log` wrappers so every module logs the same way.
557
+ 2. Scoped loggers let you filter noise during debugging without editing source files.
558
+ 3. Works out of the box with zero configuration for the default use case.
559
+
560
+ ## Usage
561
+
562
+ <Tabs groupId="logger-usage">
563
+ <TabItem value="basics" label="Basics" default>
564
+
565
+ ```ts
566
+ import { Logger } from '@cbnventures/nova';
567
+
568
+ Logger.info('Build complete.');
569
+ Logger.warn('Deprecated option used.');
570
+ Logger.error('Failed to read config.');
571
+ ```
572
+
573
+ </TabItem>
574
+ <TabItem value="scoped" label="Scoped logger">
575
+
576
+ ```ts
577
+ import { Logger } from '@cbnventures/nova';
578
+
579
+ Logger.customize({
580
+ name: 'CLIUtilityChangelog.run',
581
+ purpose: 'release',
582
+ }).info('Changelog generated.');
583
+ ```
584
+
585
+ </TabItem>
586
+ </Tabs>
587
+
588
+ ## Settings
589
+
590
+ | Setting | Type | Default | Description |
591
+ |-------------|----------|----------|-----------------------------------------|
592
+ | `name` | `string` | `"Nova"` | Logger name displayed in the prefix. |
593
+ | `purpose` | `string` | `""` | Purpose label appended after the name. |
594
+ | `padTop` | `number` | `0` | Blank lines printed before the message. |
595
+ | `padBottom` | `number` | `0` | Blank lines printed after the message. |
596
+
597
+ ## Output Examples
598
+
599
+ <Tabs groupId="logger-output">
600
+ <TabItem value="info" label="Info" default>
601
+
602
+ ```
603
+ [Nova] Build complete.
604
+ ```
605
+
606
+ </TabItem>
607
+ <TabItem value="scoped" label="Scoped">
608
+
609
+ ```
610
+ [CLIUtilityChangelog.run · release] Changelog generated.
611
+ ```
612
+
613
+ </TabItem>
614
+ </Tabs>
615
+ ````