Skip to content

chore: migrate to TypeScript 7 - #428

Merged
chybisov merged 2 commits into
mainfrom
chore/typescript-7
Jul 13, 2026
Merged

chore: migrate to TypeScript 7#428
chybisov merged 2 commits into
mainfrom
chore/typescript-7

Conversation

@chybisov

Copy link
Copy Markdown
Member

Summary

Migrates the toolchain to TypeScript 7 (7.0.2, npm latest) — the native Go compiler.

  • typescript ^6.0.3^7.0.2 in the root + all packages
  • tsdown ^0.22.3^0.22.7 (root + tron) — its 0.22.7 peer range adds ^7; pulls rolldown-plugin-dts 0.27.8 (also TS7-aware)
  • pnpm-lock.yaml + pnpm-workspace.yaml — pnpm auto-added minimumReleaseAge supply-chain exclusions (exact-version pins) for the new toolchain packages, deliberately fast-tracking these reviewed versions past the age gate

typescript@7 ships only the native tsc binary (the JS compiler API is gone), but nothing on our path needs it: check:types is tsc --noEmit (drop-in), and tsdown + oxc handle bundling and isolated-declaration .d.ts generation. devDependencies only — no runtime dependencies changed.

Verification (full CI sequence, native compiler)

Step Result
pnpm check (biome)
pnpm build (tsdown/oxc) ✅ dts fully populated
pnpm check:types (tsc --noEmit) ✅ 0 errors
pnpm test ✅ 434 passed
pnpm check:circular-deps (madge) ✅ (benign peer warning)
pnpm install --frozen-lockfile

Integration impact — none

Built the identical source on TS6 vs TS7 and diffed dist/:

  • Published types unchanged: across all 455 .d.ts files, 0 differ after normalizing whitespace/comment formatting (the only deltas are rolldown-plugin-dts 0.27 cosmetics). Partners on any TS version are unaffected and do not need TS7 themselves.
  • Runtime behavior unchanged: 4 .js files differ only by the newer oxc transpiler hoisting an await/subexpression into a named const — semantically identical; no files added/removed.
  • Invisible to consumers: the publish transform strips devDependencies, so typescript/tsdown never appear in the published artifact.

Release

Tooling-only chore — no publishable surface, so no changeset and no version bump (not a minor: there is no new functionality to ship).

Bump typescript ^6.0.3 -> ^7.0.2 (the native Go compiler) across the root
and all packages, and tsdown ^0.22.3 -> ^0.22.7 whose peer range now allows
^7 (pulls rolldown-plugin-dts 0.27.8, also TS7-aware).

`tsc --noEmit` runs the native compiler as a drop-in for check:types; tsdown
+ oxc continue to handle bundling and isolated-declaration d.ts generation
(the TS JS compiler API is not shipped in typescript@7, but it isn't needed
on this path). pnpm auto-added supply-chain (minimumReleaseAge) exclusions
for the new toolchain packages.

Verified locally: check, build, check:types, and test all pass on the
native compiler. Building identical source on TS6 vs TS7 produces byte-
identical published .d.ts (modulo comment/whitespace formatting) and
semantically identical JS, so there is no consumer-facing impact.

Tooling-only devDependency change: no changeset (devDependencies are
stripped from published packages).
@changeset-bot

changeset-bot Bot commented Jul 13, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 3581b7f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@chybisov chybisov mentioned this pull request Jul 13, 2026
@chybisov
chybisov force-pushed the chore/typescript-7 branch from 80dacde to 5b26a72 Compare July 13, 2026 11:17
# Conflicts:
#	package.json
#	packages/sdk-provider-bitcoin/package.json
#	packages/sdk-provider-ethereum/package.json
#	packages/sdk-provider-solana/package.json
#	packages/sdk-provider-sui/package.json
#	packages/sdk-provider-tron/package.json
#	packages/sdk/package.json
#	pnpm-lock.yaml
@chybisov
chybisov merged commit fe9b9be into main Jul 13, 2026
2 checks passed
@chybisov
chybisov deleted the chore/typescript-7 branch July 13, 2026 11:43
chybisov added a commit to lifinance/bigmi that referenced this pull request Jul 13, 2026
Mirrors lifinance/sdk#428. The org's minimumReleaseAge supply-chain gate
blocks the <24h-old @yuku / rolldown-plugin-dts@0.27.8 / tsdown@0.22.7
transitive deps pulled in by the TS7 toolchain. pnpm auto-generates this
exclude block on install; keep it committed (it was wrongly reverted as an
artifact) so 'pnpm install --frozen-lockfile' passes on CI and locally.
chybisov added a commit to lifinance/bigmi that referenced this pull request Jul 13, 2026
…es, bump actions) (#63)

* ci: fix pnpm 11.12 setup, bump pinned actions, run Verify on PRs

The release pipeline broke after pnpm was bumped to 11.12.0: pnpm/action-setup's
npm-based self-installer crashes installing that version ("Cannot use 'in'
operator to search for 'integrity' in undefined").

- pnpm/action-setup 6.0.8 -> 6.0.9 + standalone: true (fetch the prebuilt
  binary, bypassing the failing self-installer) -- the actual fix
- bump remaining pinned actions to latest: actions/checkout 6.0.2 -> 7.0.0,
  changesets/action 1.8.0 -> 1.9.0, linear/linear-release-action 0.14.0 -> 0.14.5
  (actions/setup-node already at 6.4.0)
- run the Verify job on pull_request (opened/synchronize/reopened) so
  toolchain/CI changes are validated pre-merge; guard Version/Publish to
  push/dispatch only so a passing PR Verify never triggers a release

pnpm stays at 11.12.0 (no revert).

* ci: drop standalone from pnpm/action-setup

Test whether v6.0.9's newer bootstrap (11.7.0) installs pnpm 11.12.0 via the
plain path. standalone:true installed 11.12.0 fine but collided with the
runner's pre-existing PNPM_HOME (v10 layout), breaking @pnpm/exe exec.

* chore: pin pnpm to 11.10.0

pnpm 11.12.0 breaks pnpm/action-setup's self-installer ('Cannot use in
operator ... integrity'). 11.10.0 is structurally identical to the
proven-good 11.9.0 (no optionalDependencies) and installs via action-setup.

* ci: restore minimumReleaseAgeExclude for fresh toolchain deps

Mirrors lifinance/sdk#428. The org's minimumReleaseAge supply-chain gate
blocks the <24h-old @yuku / rolldown-plugin-dts@0.27.8 / tsdown@0.22.7
transitive deps pulled in by the TS7 toolchain. pnpm auto-generates this
exclude block on install; keep it committed (it was wrongly reverted as an
artifact) so 'pnpm install --frozen-lockfile' passes on CI and locally.
chybisov added a commit that referenced this pull request Jul 15, 2026
Resolve pnpm-lock.yaml conflict by regenerating from merged package.json
files (base: main's lockfile + Stellar provider deps).

Align sdk-provider-stellar with main's TypeScript 7 migration (#428):
bump typescript devDep ^6.0.3 -> ^7.0.2. Verified: check:types, unit
tests, and build pass under tsc 7.0.2; pnpm install --frozen-lockfile
is consistent.
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