Skip to content

feat: add i18next-type-generator#30

Open
RedStar071 wants to merge 6 commits into
mainfrom
feat/add-i18next-type-generator
Open

feat: add i18next-type-generator#30
RedStar071 wants to merge 6 commits into
mainfrom
feat/add-i18next-type-generator

Conversation

@RedStar071

@RedStar071 RedStar071 commented Jun 8, 2026

Copy link
Copy Markdown
Member

🔗 Linked issue

Port of skyra-project/archid-components#273

🧭 Context

The original ArchId Network monorepo introduced @skyra/i18next-type-generator to replace hand-maintained LanguageKeys and legacy T/FT type helpers with i18next v23+ native TypeScript support. This PR ports that work to stars-components under the @wolfstar scope.

📚 Description

Adds @wolfstar/i18next-type-generator, a CLI that walks locale JSON files and emits an i18next CustomTypeOptions augmentation. Updates @wolfstar/http-framework-i18n to i18next v25 with namespace-aware getT / getSupportedLanguageT helpers, and removes the deprecated T, FT, resolveKey, and resolveUserKey APIs. @wolfstar/shared-http-pieces drops LanguageKeys in favour of generated types and direct TFunction<'commands/shared'> usage.

Key changes

Area Before After
Type generation Manual LanguageKeys + T()/FT() @wolfstar/i18next-type-generator CLI
http-framework-i18n i18next v22, custom TFunction augmentation i18next v25, namespace generics
shared-http-pieces LanguageKeys.Commands.Shared.* keys t('infoFieldUptimeTitle') with typed namespace
Build tooling N/A tsdown (ESM CLI), lockstep 3.0.1 semver

Type of Change

  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation change
  • Workflow / CI change

Pre-flight Checklist

  • I have read the Contributing Guidelines (if applicable)
  • My code follows the code style of this project
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have updated the documentation accordingly

Summary by CodeRabbit

  • New Features
    • Added the @wolfstar/i18next-type-generator CLI for generating i18next TypeScript declaration files from locale JSON.
    • Improved localization helpers with namespace-aware translator generation and optional namespace support.
  • Breaking Changes
    • Localization type/key utilities were streamlined to a LocalePrefixKey-style key approach; some previous helper exports and LanguageKeys-style constants were removed/updated.
  • Documentation
    • Refreshed READMEs, badges, and i18next integration examples; added clearer CLI documentation.
  • Tests
    • Added tests for generated-file formatter/linter annotations.
  • Chores
    • Updated i18next dependency and added automation to generate i18n typings.

Port archid-components#273 to @wolfstar scope: new CLI for i18next type
augmentations, remove LanguageKeys/T/FT helpers, and adopt namespace-aware
TFunction typing across http-framework-i18n and shared-http-pieces.

Co-authored-by: Cursor <cursoragent@cursor.com>
@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@RedStar071, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 32 minutes and 23 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 14a712af-ebbd-4d07-ba08-9a2f425bd5da

📥 Commits

Reviewing files that changed from the base of the PR and between 3c43053 and f5da3a7.

📒 Files selected for processing (5)
  • packages/i18next-type-generator/src/cli.ts
  • packages/i18next-type-generator/tests/cli.test.ts
  • packages/i18next-type-generator/tests/generate-formatter-fallback.test.ts
  • packages/i18next-type-generator/tests/generate-prettier-fallback.test.ts
  • packages/i18next-type-generator/tests/generate.test.ts

Walkthrough

Introduces a new @wolfstar/i18next-type-generator CLI package that scans JSON locale directories and emits i18next CustomTypeOptions module augmentations. Simultaneously overhauls @wolfstar/http-framework-i18n to remove the TypedT/FT/resolveKey pattern in favor of namespace-generic TFunction, and migrates shared-http-pieces to use the new API with generated type declarations.

Changes

i18next type generation and http-framework-i18n API overhaul

Layer / File(s) Summary
New i18next-type-generator package and CLI
packages/i18next-type-generator/package.json, packages/i18next-type-generator/tsdown.config.ts, packages/i18next-type-generator/src/cli.ts, packages/i18next-type-generator/src/generate.ts, packages/i18next-type-generator/tests/generate.test.ts, packages/i18next-type-generator/vitest.config.ts, packages/i18next-type-generator/CHANGELOG.md, packages/i18next-type-generator/README.md
New ESM CLI package that recursively scans .json locale files and writes an i18next CustomTypeOptions module augmentation .d.ts. CLI accepts source and destination paths with --indentation, --verbose, --prettier, and --oxfmt options. Generator supports both Prettier and oxfmt for formatting output.
http-framework-i18n API contract overhaul
packages/http-framework-i18n/package.json, packages/http-framework-i18n/src/index.ts, packages/http-framework-i18n/src/lib/registry.ts, packages/http-framework-i18n/src/lib/utils.ts, packages/http-framework-i18n/README.md
Removes TypedT, TypedFT, T, FT, resolveKey, resolveUserKey, and the TFunction module augmentation from entry point. getT and getSupportedLanguageT/getSupportedUserLanguageT become namespace-generic with optional Ns parameter returning TFunction<Ns>. All localization-builder helpers switch to LocalePrefixKey type. i18next bumped to ^25.10.10.
shared-http-pieces migration to new API
packages/shared-http-pieces/package.json, packages/shared-http-pieces/src/@types/i18next.d.ts, packages/shared-http-pieces/src/@types/i18next-custom.d.ts, packages/shared-http-pieces/src/commands/info.ts, packages/shared-http-pieces/src/index.ts, packages/shared-http-pieces/src/lib/i18n/LanguageKeys/...
Removes entire LanguageKeys.Commands.Shared constant tree and its re-export chain. Adds generated i18next.d.ts and handwritten i18next-custom.d.ts type augmentations for commands/shared namespace. Migrates info.ts command to derive locale via getSupportedUserLanguageName, create per-namespace translator with getT(lng, 'commands/shared'), and use string literal translation keys. Adds generate:i18n script and @wolfstar/i18next-type-generator devDependency. Re-exports Sentry namespace in index.
Repo-level integration
scripts/clean.mjs, .npm-deprecaterc.yml, README.md
Adds i18next-type-generator dist and turbo cache paths to clean script. Registers new package in npm deprecation config for next scope. Adds npm badge for @wolfstar/i18next-type-generator to root README.

Sequence Diagram(s)

sequenceDiagram
  rect rgba(99, 179, 237, 0.5)
    Note over Developer,Output: Type generation (build-time)
    Developer->>CLI: i18next-type-generator src/locales/en-US src/@types/i18next.d.ts
    CLI->>generate: generate([source, dest], {verbose, prettier, oxfmt})
    generate->>FS: recurse(source) — read all .json namespace files
    FS-->>generate: namespace/key entries
    generate->>Prettier: attempt oxfmt, fall back to Prettier
    Prettier-->>generate: formatted TypeScript
    generate->>Output: annotate + write CustomTypeOptions module
  end

  rect rgba(154, 205, 50, 0.5)
    Note over SharedCommand,i18next: Runtime translation (Discord interaction)
    SharedCommand->>getSupportedUserLanguageName: interaction → lng
    getSupportedUserLanguageName-->>SharedCommand: locale string
    SharedCommand->>getT: getT(lng, 'commands/shared')
    getT->>i18next: getFixedT(locale, namespace)
    i18next-->>getT: TFunction~'commands/shared'~
    SharedCommand->>t: t('infoEmbedDescription', {...})
    t-->>SharedCommand: localized translated string
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Poem

🐇 Hop hop, the keys are free!
No more TypedT or FT,
A generator script now runs the show,
JSON locales — watch the types grow!
getT(lng, 'commands/shared') is the way,
The rabbit typed and saved the day. ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 35.29% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'feat: add i18next-type-generator' clearly and concisely summarizes the primary change: introducing a new CLI tool package for generating TypeScript type augmentations from i18next locale files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/add-i18next-type-generator

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sentry

sentry Bot commented Jun 8, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.51163% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 54.98%. Comparing base (476a1ed) to head (f5da3a7).
⚠️ Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
packages/i18next-type-generator/src/generate.ts 95.45% 0 Missing and 3 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #30      +/-   ##
==========================================
+ Coverage   51.00%   54.98%   +3.98%     
==========================================
  Files          51       53       +2     
  Lines         896      982      +86     
  Branches      202      231      +29     
==========================================
+ Hits          457      540      +83     
  Misses        435      435              
- Partials        4        7       +3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@RedStar071

Copy link
Copy Markdown
Member Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit a59e63d. Configure here.

Comment thread packages/i18next-type-generator/src/generate.ts Outdated
The CLI parsed --indentation but generate ignored it and always used
hardcoded tab indentation for the output structure and embedded JSON.
@RedStar071
RedStar071 marked this pull request as ready for review June 18, 2026 11:44
cursor[bot]
cursor Bot approved these changes Jun 18, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
packages/http-framework-i18n/package.json (1)

19-23: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add the missing homepage field to satisfy package metadata requirements.

This manifest currently omits homepage, which is required by the package.json guideline.

Suggested change
 	"repository": {
 		"type": "git",
 		"url": "git+https://github.com/wolfstar-project/stars-components.git",
 		"directory": "packages/http-framework-i18n"
 	},
+	"homepage": "https://github.com/wolfstar-project/stars-components/tree/main/packages/http-framework-i18n",

As per coding guidelines, "Each package must declare: name, author (scope handle), repository.url, bugs.url, homepage, and keywords in package.json."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/http-framework-i18n/package.json` around lines 19 - 23, The
package.json file for http-framework-i18n is missing the required `homepage`
field at the root level of the manifest. Add the `homepage` field to the
package.json to include a URL pointing to the package's directory in the GitHub
repository. This field should be placed alongside other metadata fields like
repository, bugs, and keywords to satisfy the package metadata requirements
guideline.

Source: Coding guidelines

packages/shared-http-pieces/package.json (1)

2-23: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add missing homepage metadata in this package manifest.

packages/shared-http-pieces/package.json is missing the required homepage field.

Proposed fix
 	"bugs": {
 		"url": "https://github.com/wolfstar-project/stars-components/issues"
 	},
+	"homepage": "https://github.com/wolfstar-project/stars-components/tree/main/packages/shared-http-pieces",
 	"license": "Apache-2.0",

As per coding guidelines, packages/*/package.json: "Each package must declare: name, author (scope handle), repository.url, bugs.url, homepage, and keywords in package.json".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/shared-http-pieces/package.json` around lines 2 - 23, The
packages/shared-http-pieces/package.json file is missing the required `homepage`
field as mandated by the coding guidelines for package manifests. Add a
`homepage` field to the package.json file with an appropriate value that
references the GitHub repository URL for this package directory, following the
pattern of the existing repository.url and directory fields. This field should
be placed among the other metadata fields like author, bugs, and repository to
maintain consistency with the package manifest structure.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/i18next-type-generator/CHANGELOG.md`:
- Around line 3-5: The CHANGELOG.md file in packages/i18next-type-generator
contains version entries (the "3.0.1" header and "Initial release under the
`@wolfstar` scope." text) that should be removed according to coding guidelines.
Delete all version and body entries from this CHANGELOG file, leaving only the
package header as specified in the guidelines. The file should contain only the
header section with no version history entries.

In `@packages/i18next-type-generator/package.json`:
- Around line 15-24: The package.json for packages/i18next-type-generator is
missing the required homepage field. Add a homepage field to the package
manifest that points to the repository's homepage URL (typically derived from
the repository URL already present in the file). This field is mandatory
according to the repository's coding guidelines for all package.json files in
the packages directory.

In `@packages/i18next-type-generator/README.md`:
- Around line 14-18: The README is missing documentation for the `-i,
--indentation` option that the CLI now supports. Add this option to the options
list in the README (in the same format as the other options like --no-prettier)
to include both the short form -i and long form --indentation with a
description. Additionally, locate the paragraph around line 43 that states
formatting options are not provided and update it to acknowledge that the
indentation option is now available as a formatting option.

In `@packages/i18next-type-generator/src/cli.ts`:
- Around line 12-17: In the indentationParser function, after parsing the value
to a number and checking for NaN, add additional validation to ensure the parsed
number is both non-negative and an integer before calling the repeat method. If
the number is negative or not an integer (such as 2.5 or Infinity), throw an
InvalidArgumentError with a descriptive message explaining that indentation must
be a non-negative integer or the string "tabs". This prevents RangeError
exceptions from repeat() and rejects silently truncated decimal values.
- Around line 27-29: The cli.parse() method is being used with an async action
handler that calls the generate function, which returns a Promise. Replace
cli.parse(process.argv) with cli.parseAsync(process.argv) to properly handle the
asynchronous command action and ensure that any errors from the generate
function are consistently propagated by Commander.

In `@packages/i18next-type-generator/src/generate.ts`:
- Around line 21-34: The current code iterates through directory entries in the
order returned by opendir, which is filesystem-dependent and causes
non-deterministic output. To fix this, collect all directory entries from the
opendir call into an array, sort that array by the dirent.name property, and
then iterate through the sorted array in the for loop. This ensures that files
and directories are always processed in the same consistent order regardless of
the filesystem, making the generated .d.ts output deterministic across different
machines and CI environments.
- Around line 27-30: The key assignment in the file processing logic emits
unquoted keys for root-level files (when namespace is falsy), which generates
invalid TypeScript for filenames containing special characters like hyphens. In
the line where the key constant is assigned, wrap the name value in quotes for
both the namespace and non-namespace cases by changing the conditional to always
produce a quoted string literal, ensuring filenames like my-file.json generate
'my-file' instead of an unquoted my-file.
- Around line 68-76: The prettier import and formatting logic in the if
(options.prettier) block will crash if prettier is not installed, even though it
is declared as an optional dependency. Wrap the entire block containing the
await import('prettier') statement and the subsequent format call in a try-catch
block to gracefully handle the case where prettier is unavailable. In the catch
block, log a warning or error message (using the verbose flag if appropriate)
and allow the generation to continue with the unformatted source instead of
crashing.

In `@packages/shared-http-pieces/src/`@types/i18next-custom.d.ts:
- Around line 5-9: The CustomTypeOptions.resources interface for
'commands/shared' is currently split across the auto-generated i18next.d.ts file
and this manual i18next-custom.d.ts file, creating maintenance friction. Remove
the infoEmbedDescription property definition from the
resources['commands/shared'] object in this custom augmentation and instead add
it to the source locale JSON file that generates i18next.d.ts. Then regenerate
i18next.d.ts to include the infoEmbedDescription property definition in a single
consolidated location. This ensures all type definitions for commands/shared
resources are maintained in one place rather than split across auto-generated
and manual files.

---

Outside diff comments:
In `@packages/http-framework-i18n/package.json`:
- Around line 19-23: The package.json file for http-framework-i18n is missing
the required `homepage` field at the root level of the manifest. Add the
`homepage` field to the package.json to include a URL pointing to the package's
directory in the GitHub repository. This field should be placed alongside other
metadata fields like repository, bugs, and keywords to satisfy the package
metadata requirements guideline.

In `@packages/shared-http-pieces/package.json`:
- Around line 2-23: The packages/shared-http-pieces/package.json file is missing
the required `homepage` field as mandated by the coding guidelines for package
manifests. Add a `homepage` field to the package.json file with an appropriate
value that references the GitHub repository URL for this package directory,
following the pattern of the existing repository.url and directory fields. This
field should be placed among the other metadata fields like author, bugs, and
repository to maintain consistency with the package manifest structure.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: d8ae9fe4-b9c4-46e8-915d-2fde62e8a3b1

📥 Commits

Reviewing files that changed from the base of the PR and between 84da787 and 1990dee.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (25)
  • .npm-deprecaterc.yml
  • README.md
  • packages/http-framework-i18n/README.md
  • packages/http-framework-i18n/package.json
  • packages/http-framework-i18n/src/index.ts
  • packages/http-framework-i18n/src/lib/functions.ts
  • packages/http-framework-i18n/src/lib/registry.ts
  • packages/http-framework-i18n/src/lib/types.ts
  • packages/http-framework-i18n/src/lib/utils.ts
  • packages/i18next-type-generator/CHANGELOG.md
  • packages/i18next-type-generator/README.md
  • packages/i18next-type-generator/package.json
  • packages/i18next-type-generator/src/cli.ts
  • packages/i18next-type-generator/src/generate.ts
  • packages/i18next-type-generator/tsdown.config.ts
  • packages/shared-http-pieces/package.json
  • packages/shared-http-pieces/src/@types/i18next-custom.d.ts
  • packages/shared-http-pieces/src/@types/i18next.d.ts
  • packages/shared-http-pieces/src/commands/info.ts
  • packages/shared-http-pieces/src/index.ts
  • packages/shared-http-pieces/src/lib/i18n/LanguageKeys.ts
  • packages/shared-http-pieces/src/lib/i18n/LanguageKeys/All.ts
  • packages/shared-http-pieces/src/lib/i18n/LanguageKeys/Commands/All.ts
  • packages/shared-http-pieces/src/lib/i18n/LanguageKeys/Commands/Shared.ts
  • scripts/clean.mjs
💤 Files with no reviewable changes (8)
  • packages/shared-http-pieces/src/lib/i18n/LanguageKeys/All.ts
  • packages/http-framework-i18n/src/lib/functions.ts
  • packages/shared-http-pieces/src/index.ts
  • packages/shared-http-pieces/src/lib/i18n/LanguageKeys.ts
  • packages/shared-http-pieces/src/lib/i18n/LanguageKeys/Commands/Shared.ts
  • packages/http-framework-i18n/src/lib/types.ts
  • packages/http-framework-i18n/src/index.ts
  • packages/shared-http-pieces/src/lib/i18n/LanguageKeys/Commands/All.ts

Comment thread packages/i18next-type-generator/CHANGELOG.md Outdated
Comment thread packages/i18next-type-generator/package.json
Comment thread packages/i18next-type-generator/README.md
Comment thread packages/i18next-type-generator/src/cli.ts Outdated
Comment thread packages/i18next-type-generator/src/cli.ts Outdated
Comment thread packages/i18next-type-generator/src/generate.ts
Comment thread packages/i18next-type-generator/src/generate.ts
Comment thread packages/i18next-type-generator/src/generate.ts Outdated
Comment thread packages/shared-http-pieces/src/@types/i18next-custom.d.ts
- Replace `commander` with `citty` for command-line interface handling.
- Add support for `oxfmt` and `prettier` formatting options in the generation process.
- Introduce file annotations to suppress linting and formatting issues in generated files.
- Update package dependencies and scripts, including the addition of a test script using `vitest`.
- Improve README documentation to reflect new features and usage instructions.
cursor[bot]
cursor Bot approved these changes Jun 18, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/i18next-type-generator/src/cli.ts`:
- Around line 35-40: The default value for the indentation option is set to a
literal tab character `'\t'`, but the parseIndentation function expects the
sentinel string `'tabs'` to recognize and properly handle tab indentation.
Change the default value from `'\t'` to `'tabs'` in the indentation option
definition to ensure it matches what parseIndentation expects. This same
inconsistency also appears at another location in the file (lines 62-63) so
apply the same fix there as well.

In `@packages/shared-http-pieces/src/`@types/i18next.d.ts:
- Around line 10-26: The translation key infoEmbedDescription is referenced in
the info.ts file but is missing from both the type definitions and locale files.
Add the infoEmbedDescription key to the CustomTypeOptions interface under the
"commands/shared" resources object in the i18next.d.ts file (similar to the
other keys shown in the diff like infoName, infoDescription, etc.) with an
appropriate string value. Additionally, add the infoEmbedDescription translation
key to all locale JSON files located in src/locales/*/commands/shared.json with
appropriate translations for each language to ensure the type definitions and
runtime translations are synchronized.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 372c0e9f-4a05-4471-a54e-b4592e68161c

📥 Commits

Reviewing files that changed from the base of the PR and between 1990dee and 2ae20d3.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (7)
  • packages/i18next-type-generator/README.md
  • packages/i18next-type-generator/package.json
  • packages/i18next-type-generator/src/cli.ts
  • packages/i18next-type-generator/src/generate.ts
  • packages/i18next-type-generator/tests/generate.test.ts
  • packages/i18next-type-generator/vitest.config.ts
  • packages/shared-http-pieces/src/@types/i18next.d.ts

Comment thread packages/i18next-type-generator/src/cli.ts
Comment thread packages/shared-http-pieces/src/@types/i18next.d.ts
- Remove initial release notes from CHANGELOG.md for clarity.
- Update README.md to include the new `--indentation` option for controlling output formatting.
cursor[bot]
cursor Bot approved these changes Jun 18, 2026
cursor[bot]
cursor Bot approved these changes Jun 18, 2026
…eration features

- Introduce tests for CLI commands including version and help flags.
- Validate type generation with various indentation options and error handling for invalid inputs.
- Implement tests for fallback mechanisms when formatting fails with `oxfmt` and `prettier`.
- Ensure cleanup of temporary directories after tests to maintain isolation.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. Cursor Bugbot is not running on this push; the prior Bugbot finding is resolved and all review threads are closed. CI lint, build, tests, and CodeRabbit pass on the latest commit; no additional reviewers assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Approver

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

2 participants