Releases: cbnventures/nova
Releases · cbnventures/nova
v0.14.0
UPDATED
- Renamed CLI aliases from 2-letter initials to readable word fragments (e.g.,
pvtopkg,cltolog,tctotype-chk). - Renamed ESLint config files from
eslint.config.tstoeslint.config.mjs. - Updated
nova.config.jsonworkspace schema, replacingpinVersions,syncLtsEngines, andsyncPropertieswith a unifiedrecipesobject. - Reorganized ESLint rules into subcategories:
formatting/,nova/,patterns/,regex/, andtypescript/. - Updated
initializeutility to configure recipes instead of legacypinVersions,syncLtsEngines, andsyncPropertiesflags.
FIXED
- Renamed mismatched TSConfig preset doc filenames from
dx-code-style.mdxtodx-essentials.mdxanddx-ignore.mdxtodx-strict.mdx. - Fixed incorrect import paths in setup and presets docs from
@cbnventures/nova/eslintand@cbnventures/nova/tsconfig/to@cbnventures/nova/presets/eslintand@cbnventures/nova/presets/tsconfig/. - Fixed local install command in setup docs from
npm i -Dtonpm isince Nova's toolkit exports are used at runtime.
ADDED
- Added
no-destructuringESLint rule to ban destructuring in callbacks, loops, functions, declarations, and assignments. - Added
no-implicit-booleanESLint rule to require explicit comparisons instead of truthy/falsy coercion. - Added
no-shared-type-importESLint rule to prevent code files from importing shared type files directly. - Added 9 granular
package-jsonrecipes:cleanup,normalize-artifacts,normalize-bundler,normalize-dependencies,normalize-modules,normalize-tooling,sync-environment,sync-identity, andsync-ownership. - Added
require-padding-linesESLint rule to enforce blank lines between specific statement patterns. - Added
no-assign-then-returnESLint rule to flag assign-then-return patterns. - Added
run-scriptsutility command to run package.json scripts by pattern in sequential or parallel mode. - Added
no-bracket-assignmentESLint rule to enforceReflect.set()over bracket notation assignment. - Added
no-inline-type-annotationESLint rule to enforce named type aliases over inline type annotations. - Added
transpileCLI utility to compile TypeScript projects using the TypeScript compiler API. - Added
no-catch-unknown-annotationESLint rule to flag redundant: unknownannotations on catch clause variables. - Added
no-ternary-in-template-literalESLint rule to disallow ternary expressions inside template literals. - Added
run-recipesCLI utility to orchestrate all enabled package-json recipes in sequence. - Added
betweenSwitchCasesoption to therequire-padding-linesESLint rule, enforcing blank lines between non-empty switch cases while allowing grouped empty fallthrough cases.
REMOVED
- Removed
jitidevDependency from rootpackage.json. - Removed
tsc-aliasdevDependency, replaced by built-infix-aliases.mjsscript. - Removed
npm-run-alldependency, replaced by built-inrun-scriptsutility. - Removed
pin-versions,sync-lts-engines, andsync-packagesrecipes. Their functionality has been split into 8 granularpackage-jsonrecipes.
v0.13.1
FIXED
- Removed the unnecessary
./prefix from thebinpath inpackage.json. - Fixed incorrect toolkit export paths pointing to ./build/src/presets/toolkit/ instead of ./build/src/toolkit/
v0.13.0
UPDATED
- Broadened
engines.nodefrom^22to^20 || ^22 || ^24to support all active Node.js LTS versions. skipLibCheckwill now be set tofalsefordx-strict.jsonTSConfig presets. To suppress type checks outside of project files, use thenova utility type-checkcommand instead.- Enabled
allowSyntheticDefaultImportsin thedx-strict.jsonTSConfig preset. - Renamed item pretty name exports for consistency (e.g.
itemBrandPrettyNamestoitemPrettyNamesBrand). - Renamed
HttpUrlFieldtoUrlProtocolto better distinguish repository and generic URLs. - Replaced validation in favor for normalization in the "nova utility initialize" command.
- Changed the CLI command
sync-metadatatosync-packagesto represent a broader view ofpackage.jsonsyncing. - Updated project scaffolding files, GitHub issue templates, and CI/CD workflows.
- Removed padding from logs that aren't directly related to UI (e.g., limit padding for prompts only).
- Replaced inline
no-restricted-syntaxconfigs indx-code-styleandlang-mdxpresets with dedicated ESLint rules. - Stricter
ImportDeclarationformatting indx-code-stylepreset.
FIXED
- Fixed an issue where the
nova utility initializecommand would crash because the existing workspace does not exist in thenova.config.jsonfile. - Made types clearer for
ItemAllowedPoliciesByRolebecause it was usingExcludeinstead ofExtract. - Fixed documentation typos, grammar, and voice consistency across CLI, toolkit, and quickstart pages.
ADDED
- Added version range regex patterns (
PATTERN_DIGITS,PATTERN_RANGE_GREATER_EQUAL_MAJOR,PATTERN_RANGE_MAJOR) for engine constraint parsing. - Added
nova utility changelogcommand withrecordandreleasesubcommands for managing release notes. - Added
nova utility type-checkcommand. WidenedCLIExecuteCommandOptionstoPartial<Options>. - Added
nova recipe sync-lts-enginescommand for syncingengines.nodeto the current Node.js LTS constraint. - Added
no-regex-literals,no-regex-literal-flags, andno-raw-text-in-codeESLint rules. - Added an
interactiveoption to the CLIHeader battery for plain-text output in non-TTY environments. - Added
nova recipe pin-versionscommand for stripping range prefixes from dependency versions. - Added a "switch-case-blocks" ESLint rule for enforcing blocks inside switch cases.
- Added an "emails" section into Nova configuration (support for additional canonical contact methods).
- Added runtime API modules for SPDX license validation and Node.js LTS version detection.
- Added a
--replace-fileoption for the CLInova utility initializecommand. - Added
pinVersionsandsyncLtsEnginesworkspace options to the Nova configuration. - Added a
templaterole withfreezablepolicy for those who would like to create templates/examples in their monorepo. - Added a "syncProperties" option for each workspace in the Nova configuration.
- Added shared utilities
isPlainObject,isProjectRoot,loadWorkspaceManifests, andsaveWorkspaceManifestfor recipe commands. - Added a shared utility
isFileIdenticalfor checking identical files before editing them. - Added a shared utility
renameFileWithDatefor commands that make file modifications.
REMOVED
- Removed the
sync-versionsCLI command. ItspackageManagervalidation is now part ofsync-packages.
v0.12.0
Minor Changes
- Added a
Logger.devfeature where a developer can use that in replacement ofconsole.log. - Added custom ESLint rules to be exported for usage (starting with the
no-logger-devrule). Logger.customizenow has the ability for developer to declare the type and purpose of logging (in addition to the function name).
Patch Changes
- Running ESLint during builds will now treat warnings as errors (for
@cbnventures/novapackage). - Added tests (to test for the
discoverPathsWithFile).
v0.11.0
Minor Changes
- Renamed "Foundation Nova" to "Nova".
- Removed
freeze-depsandsync-pkg-mgrrecipe subcommands in favor ofsync-metadataandsync-versionsrecipe subcommands. - Added
workspacessupport for Nova config to better manage apps/packages inside the monorepo.
Patch Changes
- Fixed
engines.nodeto be consistent with^22(The latest LTS version for Node.js). - Made a minor change to prefer shorthand properties (where key value pairs are the same visually).
- Made a minor change to prefer template literals (instead of "string + concatenation").
- Grouped type declaration files to its "types" respective folders.
- Fixed logo SVG to include a newline at end of the file.
- Refactored code that used CRLF to now use LF for modern reasons.
- Changed "DiscoverPackageJsons" to a more versatile "DiscoverPathsWithFile" internal utility function.
- Refactored the "initialize" command to remove garbage code generated by AI.
- Changed "HttpUrlField" type to accept "generic" instead of "fundSources" (because too vague).