Chore(deps-dev): bump typescript from 5.9.3 to 7.0.2 - #95
Conversation
👁️ Tuffgal visual regressionOutcome: no-results
The run wrote no |
|
Deferred from the #98 dependency-bump consolidation — left open intentionally. TypeScript 7.0 is the native (Go) rewrite and ships the
Holding this until the Compiler API returns (TS 7.1) or the Nest CLI adds native-tsc support. Not a bump we can take without a migration, which is out of scope for a deps chore. |
* Chore(deps): bump 9 dependencies Consolidates 5 of 6 open Dependabot bumps onto one branch. Validated with build + test on both workspaces (all green); root overrides verified intact via `npm ls`. Landed: | Package | From | To | Dependabot | | ------------------- | ------ | ------ | ---------- | | docker/login-action | 4.5.1 | 4.5.2 | #92 | | @prisma/adapter-pg | 7.9.0 | 7.9.1 | #93 | | @prisma/client | 7.9.0 | 7.9.1 | #93 | | prisma | 7.9.0 | 7.9.1 | #93 | | @types/node | 26.1.1 | 26.1.2 | #93 | | globals | 17.7.0 | 17.8.0 | #93 | | dotenv | 16.6.1 | 17.4.2 | #94 | | @types/supertest | 6.0.2 | 7.2.1 | #96 | | jsdom | 27.3.0 | 30.0.0 | #97 | The allowScripts pins for prisma and @prisma/engines were moved to 7.9.1 in lockstep with the prisma bump. Deferred: - typescript 7.0.2 (#95): TS7's native rewrite ships only the tsc binary and drops the programmatic compiler API the Nest CLI needs (returns in 7.1), so `nest build` fails. Kept at 5.x. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Chore(deps): align apps/api globals range with #93 Dependabot #93 bumps globals to ^17.8.0 in both apps/api and apps/web; the consolidation commit moved only apps/web. Match the api manifest so #98 fully supersedes #93. Lockfile already resolved 17.8.0 via caret, so this is a range-only change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
* Chore(api): switch nest build to the SWC builder
Swap the api's `nest build` from the default tsc compiler to the SWC
builder for faster builds. SWC strips types and emits decorator
metadata, which NestJS DI, class-validator, and @nestjs/swagger all
depend on at runtime, so the change only ships because the built dist
was proven to work.
What changed:
- apps/api/.swcrc: typescript parser with decorators, plus legacyDecorator
and decoratorMetadata (the DI/validation/swagger metadata). target
es2023 matches tsconfig; module.type es6 because the api is an ESM
package ("type": "module", started via `node dist/main`). Spec files
are excluded so test code stays out of dist.
- apps/api/nest-cli.json: builder set to swc with stripLeadingPaths so
the entry lands at dist/main.js (nest's swc default keeps a dist/src/
prefix when tsconfig sets rootDir).
- @swc/core and @swc/cli added as root devDependencies. nest's swc
builder resolves @swc/cli from the root-hoisted @nestjs/cli; declaring
them in the api workspace nests @swc/cli unreachably under apps/api.
- New typecheck script (tsc --noEmit -p tsconfig.build.json) and a CI
step, since SWC no longer type-checks the build.
Build time: tsc 3.0s to SWC 1.4s wall (the swc compile itself is 73ms).
Proving the dist good: a throwaway script (removed) booted the SWC-built
dist. design:paramtypes on LinksService resolved to [PrismaService,
QueueService]; CreateLinkDto rejected a bad url via @IsUrl/@IsPublicUrl
and accepted a valid one; SwaggerModule.createDocument produced 7 /links
paths; and a full NestFactory.create(AppModule) initialized the whole
container against the dev DB. Jest (921 tests) and the new typecheck are
both green.
TypeScript stays on 5.x. This unblocks the separate TS7 task (#95).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Chore(api): tidy SWC builder conventions (script order, docs, CI style)
Move the api typecheck script after test:watch to restore A-Z order.
Document `npm run typecheck --workspace @linklater/api` in Key commands.
Rewrite the CI type-check step to working-directory + raw npm run.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* formatting
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
@dependabot rebase |
6050b29 to
23c9dfd
Compare
Swap the api's `nest build` from the default tsc compiler to the SWC
builder for faster builds. SWC strips types and emits decorator
metadata, which NestJS DI, class-validator, and @nestjs/swagger all
depend on at runtime, so the change only ships because the built dist
was proven to work.
What changed:
- apps/api/.swcrc: typescript parser with decorators, plus legacyDecorator
and decoratorMetadata (the DI/validation/swagger metadata). target
es2023 matches tsconfig; module.type es6 because the api is an ESM
package ("type": "module", started via `node dist/main`). Spec files
are excluded so test code stays out of dist.
- apps/api/nest-cli.json: builder set to swc with stripLeadingPaths so
the entry lands at dist/main.js (nest's swc default keeps a dist/src/
prefix when tsconfig sets rootDir).
- @swc/core and @swc/cli added as root devDependencies. nest's swc
builder resolves @swc/cli from the root-hoisted @nestjs/cli; declaring
them in the api workspace nests @swc/cli unreachably under apps/api.
- New typecheck script (tsc --noEmit -p tsconfig.build.json) and a CI
step, since SWC no longer type-checks the build.
Build time: tsc 3.0s to SWC 1.4s wall (the swc compile itself is 73ms).
Proving the dist good: a throwaway script (removed) booted the SWC-built
dist. design:paramtypes on LinksService resolved to [PrismaService,
QueueService]; CreateLinkDto rejected a bad url via @IsUrl/@IsPublicUrl
and accepted a valid one; SwaggerModule.createDocument produced 7 /links
paths; and a full NestFactory.create(AppModule) initialized the whole
container against the dev DB. Jest (921 tests) and the new typecheck are
both green.
TypeScript stays on 5.x. This unblocks the separate TS7 task (#95).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Chore(api): switch nest build to the SWC builder
Swap the api's `nest build` from the default tsc compiler to the SWC
builder for faster builds. SWC strips types and emits decorator
metadata, which NestJS DI, class-validator, and @nestjs/swagger all
depend on at runtime, so the change only ships because the built dist
was proven to work.
What changed:
- apps/api/.swcrc: typescript parser with decorators, plus legacyDecorator
and decoratorMetadata (the DI/validation/swagger metadata). target
es2023 matches tsconfig; module.type es6 because the api is an ESM
package ("type": "module", started via `node dist/main`). Spec files
are excluded so test code stays out of dist.
- apps/api/nest-cli.json: builder set to swc with stripLeadingPaths so
the entry lands at dist/main.js (nest's swc default keeps a dist/src/
prefix when tsconfig sets rootDir).
- @swc/core and @swc/cli added as root devDependencies. nest's swc
builder resolves @swc/cli from the root-hoisted @nestjs/cli; declaring
them in the api workspace nests @swc/cli unreachably under apps/api.
- New typecheck script (tsc --noEmit -p tsconfig.build.json) and a CI
step, since SWC no longer type-checks the build.
Build time: tsc 3.0s to SWC 1.4s wall (the swc compile itself is 73ms).
Proving the dist good: a throwaway script (removed) booted the SWC-built
dist. design:paramtypes on LinksService resolved to [PrismaService,
QueueService]; CreateLinkDto rejected a bad url via @IsUrl/@IsPublicUrl
and accepted a valid one; SwaggerModule.createDocument produced 7 /links
paths; and a full NestFactory.create(AppModule) initialized the whole
container against the dev DB. Jest (921 tests) and the new typecheck are
both green.
TypeScript stays on 5.x. This unblocks the separate TS7 task (#95).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Chore(api): tidy SWC builder conventions (script order, docs, CI style)
Move the api typecheck script after test:watch to restore A-Z order.
Document `npm run typecheck --workspace @linklater/api` in Key commands.
Rewrite the CI type-check step to working-directory + raw npm run.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Chore(api): keep build-only deps out of the prod image + type-gate the build
Two hardening changes to apps/api/Dockerfile, both verified against a real
image build plus migrate/boot smoke on Docker (colima).
W1 - prune build-only deps from the runtime image
- New `proddeps` stage runs `npm ci --omit=dev`; the runtime stage copies
node_modules from it instead of whole from the builder, dropping the SWC
build toolchain (@swc/cli's ~143-package downloader stack + @swc/core), the
Nest CLI, and jest from the production image.
- Promote `prisma` (exact pin 7.9.1) from apps/api devDependencies to
dependencies: the deploy workflow runs `prisma migrate deploy` against this
image, so the CLI and its native schema engine are honestly prod deps.
- Promote root `patch-package` to dependencies so the root postinstall runs
under `npm ci --omit=dev` (Prisma's engine postinstall must run, so the
install is not --ignore-scripts). Rename the brace-expansion patch to
`.dev.patch`: it targets a dev-only transitive, so patch-package skips it
silently on a prod install instead of erroring.
- Install openssl in the proddeps stage so @prisma/engines bakes the
runtime-matching schema engine (openssl-3.0.x) at build time, keeping
migrate deploy self-contained (no deploy-time engine download).
Image size: 1.59GB -> 975MB (~38% smaller).
W2 - restore the build-time type gate
- The SWC builder strips types without checking them, so the builder stage
now runs `npm run typecheck && npm run build`; a type-broken image is
unbuildable again. The tag-triggered deploy path does not otherwise run
CI's typecheck step.
Migrate smoke (hardened image, non-root `node` user, ephemeral postgres:16):
36 migrations found in prisma/migrations
Applying migration `20251209224756_init`
... (34 more) ...
Applying migration `20260723050000_add_user_dyslexic_font`
All migrations have been successfully applied.
Boot smoke: GET /health -> {"status":"ok","database":"up","queue":"up"};
"Nest application successfully started".
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* update Dockerfile comments
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
23c9dfd to
ad00e89
Compare
|
@dependabot rebase |
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.3 to 7.0.2. - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) --- updated-dependencies: - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
ad00e89 to
e333b40
Compare
Bumps typescript from 5.9.3 to 7.0.2.
Release notes
Sourced from typescript's releases.
Commits
Maintainer changes
This version was pushed to npm by microsoft1es, a new releaser for typescript since your current version.