Skip to content

chore: centralize typescript version with pnpm catalog#645

Open
Shinyaigeek wants to merge 2 commits into
thesysdev:mainfrom
Shinyaigeek:chore/centralize-typescript-pnpm-catalog
Open

chore: centralize typescript version with pnpm catalog#645
Shinyaigeek wants to merge 2 commits into
thesysdev:mainfrom
Shinyaigeek:chore/centralize-typescript-pnpm-catalog

Conversation

@Shinyaigeek

Copy link
Copy Markdown
Contributor

What

typescript was declared as a devDependency with divergent specs across the library packages and the monorepo root. Move the version into the pnpm catalog and reference it via the catalog: protocol so the toolchain version lives in one place — mirroring #612 / #624 / #634.

Cataloged spec: ^5.9.3 (the root's existing spec).

manifest before after
package.json (root) ^5.9.3 catalog:
packages/react-email ^5 catalog:
packages/svelte-lang ^5.0.0 catalog:
packages/vue-lang ^5.0.0 catalog:

No resolved-version change

Every importer already resolved to typescript@5.9.3, so this only tightens the declared specs onto the single catalog entry — the lockfile diff is just the four specifiers flipping to catalog: plus the new catalog entry. examples/ and docs/ keep their inline ^5 / ~5.9.2 specs, matching #612's library-only scope.

Drive-by fix

fix(svelte-lang): the test src/__tests__/library.test.ts used dot access on lib.components (a string-index-signature type), which noPropertyAccessFromIndexSignature (set in the root tsconfig) rejects. Switched to bracket access, matching the parallel vue-lang test. This was already failing svelte-check on main; surfaced while verifying this change.

Verification

  • react-email, svelte-lang, vue-lang: build + typecheck/check pass with typescript@5.9.3 resolved from the catalog.
  • svelte-lang vitest: 30/30 pass.
  • pnpm install --frozen-lockfile: clean (lockfile consistent with manifests).

🤖 Generated with Claude Code

Shinyaigeek and others added 2 commits June 11, 2026 22:50
typescript was declared as a devDependency with divergent specs across
the library packages and the monorepo root (`^5.9.3`, `^5`, `^5.0.0`).
Move the version into the pnpm catalog and reference it via the
"catalog:" protocol so the toolchain version lives in one place,
mirroring thesysdev#612/thesysdev#624/thesysdev#634.

Cataloged spec: `^5.9.3` (the root's existing spec).

- package.json                     `^5.9.3` -> catalog:
- packages/react-email             `^5`     -> catalog:
- packages/svelte-lang             `^5.0.0` -> catalog:
- packages/vue-lang                `^5.0.0` -> catalog:

No resolved-version change: every importer already resolved to
typescript@5.9.3, so this only tightens the declared specs onto the
single catalog entry. examples/ and docs/ keep their inline `^5`/`~5.9.2`
specs, matching thesysdev#612's library-only scope.

Verified: react-email/svelte-lang/vue-lang build + typecheck pass with
typescript 5.9.3 resolved from the catalog.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`svelte-check` failed on src/__tests__/library.test.ts: the root tsconfig
enables `noPropertyAccessFromIndexSignature`, and `lib.components` carries
a string index signature, so dot access (`lib.components.TextContent`) is
rejected. The parallel vue-lang test already uses bracket access; bring
svelte-lang in line.

Pre-existing on main, surfaced while verifying the catalog change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant