@lenne.tech/nest-server 11.36.2 → 11.36.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/.claude/rules/better-auth.md +54 -0
  2. package/.claude/rules/configurable-features.md +1 -1
  3. package/.claude/rules/testing.md +88 -4
  4. package/CLAUDE.md +1 -0
  5. package/FRAMEWORK-API.md +1 -1
  6. package/dist/core/modules/better-auth/better-auth.types.d.ts +4 -0
  7. package/dist/core/modules/better-auth/better-auth.types.js +9 -0
  8. package/dist/core/modules/better-auth/better-auth.types.js.map +1 -1
  9. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.d.ts +1 -1
  10. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js +16 -6
  11. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js.map +1 -1
  12. package/dist/core/modules/better-auth/core-better-auth-token.helper.d.ts +1 -0
  13. package/dist/core/modules/better-auth/core-better-auth-token.helper.js +4 -0
  14. package/dist/core/modules/better-auth/core-better-auth-token.helper.js.map +1 -1
  15. package/dist/core/modules/better-auth/core-better-auth.controller.d.ts +1 -0
  16. package/dist/core/modules/better-auth/core-better-auth.controller.js +9 -4
  17. package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -1
  18. package/dist/core/modules/better-auth/core-better-auth.resolver.js +1 -1
  19. package/dist/core/modules/better-auth/core-better-auth.resolver.js.map +1 -1
  20. package/dist/core/modules/better-auth/core-better-auth.service.js +2 -1
  21. package/dist/core/modules/better-auth/core-better-auth.service.js.map +1 -1
  22. package/dist/tsconfig.build.tsbuildinfo +1 -1
  23. package/docs/REQUEST-LIFECYCLE.md +8 -0
  24. package/migration-guides/11.36.2-to-11.36.3.md +131 -0
  25. package/migration-guides/11.36.3-to-11.36.4.md +145 -0
  26. package/package.json +1 -1
  27. package/src/core/modules/better-auth/CUSTOMIZATION.md +25 -0
  28. package/src/core/modules/better-auth/INTEGRATION-CHECKLIST.md +6 -0
  29. package/src/core/modules/better-auth/README.md +4 -4
  30. package/src/core/modules/better-auth/better-auth.types.ts +30 -0
  31. package/src/core/modules/better-auth/core-better-auth-cookie.helper.ts +49 -7
  32. package/src/core/modules/better-auth/core-better-auth-token.helper.ts +16 -0
  33. package/src/core/modules/better-auth/core-better-auth.controller.ts +53 -7
  34. package/src/core/modules/better-auth/core-better-auth.resolver.ts +6 -1
  35. package/src/core/modules/better-auth/core-better-auth.service.ts +5 -2
@@ -372,6 +372,59 @@ this question.
372
372
  > marked `@deprecated` and exist **only** for external deep importers. Never use them from inside
373
373
  > the module — that is precisely the path that re-creates the cycle.
374
374
 
375
+ ## 7. Session Cookie vs. Body Token — Never the Same Value
376
+
377
+ The session cookie and the token in the response body are **two different things** whenever both
378
+ delivery modes are active at once (`cookies: { exposeTokenInBody: true }`).
379
+
380
+ | Carrier | Value | Why |
381
+ |---|---|---|
382
+ | `Set-Cookie: <prefix>.session_token` | the **opaque session token** | Better-Auth resolves a session by exactly this value |
383
+ | response body `token` | a **JWT** (via `resolveJwtToken`) — **only when the JWT plugin is enabled** | what a bearer-using client needs |
384
+
385
+ `shouldConvertSessionTokenToJwt()` turns the session token into a JWT as soon as the body is meant
386
+ to carry one **and** the JWT plugin is active. With `exposeTokenInBody` but no JWT plugin, no
387
+ conversion happens and both carriers hold the same value — the divergence needs all three. Writing that JWT into the cookie is silent and catastrophic: the sign-in itself
388
+ succeeds, and **every request afterwards is anonymous** — `/iam/session` answers `success: false`
389
+ for a session that plainly exists in the database. A browser client is therefore logged out again
390
+ the moment it navigates.
391
+
392
+ The failure hides especially well because `cookies`-only mode (the usual `local` baseline) is
393
+ unaffected — there the two values are the same thing. It only appears in environments that set
394
+ `exposeTokenInBody` (typically `e2e` / `ci`), which is exactly where nobody browses manually.
395
+ `assertCookiesProductionSafe()` refuses `exposeTokenInBody` in `production` and `staging`, so a live
396
+ deployment can never be in this state — the blast radius is development and CI.
397
+
398
+ **Rule:** every **IAM** authentication path must hand the session token to `processCookies()`
399
+ explicitly. Do not rely on `result.token` — by then it may already be a JWT. This is about
400
+ `CoreBetterAuthController`; the identically-named `processCookies()` on the LEGACY
401
+ `CoreAuthController` / `CoreAuthResolver` takes two arguments and legitimately carries the JWT.
402
+
403
+ ```ts
404
+ // A PRECEDENCE CHAIN, not a ternary on hasSession(): `session.token` is OPTIONAL on the type
405
+ // guard, so a response with a `session` object but no token inside it would satisfy the guard,
406
+ // yield undefined, skip the fallback and hand the JWT to the cookie. api.signInEmail() is the
407
+ // mirror case — top-level token, no `session` object at all.
408
+ const sessionToken = this.sessionTokenForCookie(response);
409
+
410
+ return this.processCookies(res, result, sessionToken);
411
+ ```
412
+
413
+ **The invariant does not depend on remembering this.** `setSessionCookies()` refuses a JWT-shaped
414
+ value outright, so a call site that forgets produces no cookie and an error log — loud, rather than
415
+ a cookie that authenticates nothing.
416
+
417
+ Covered on two levels, because a unit test of the helper cannot see a call site:
418
+
419
+ | Level | Test | Mutation |
420
+ |---|---|---|
421
+ | Helper contract | `tests/unit/better-auth-cookie-helper.spec.ts` → *"session cookie vs. body token"* | `session-cookie-must-not-carry-body-jwt` |
422
+ | The repaired path | `tests/stories/cookies-security-property.e2e-spec.ts` → hybrid mode, replaying the cookie against `/iam/session` | `signin-cookie-drops-session-token` |
423
+
424
+ Both are needed. `processCookies()` returns early once a session token is present, so
425
+ `processAuthResult()` — and every unit test of it — is **unreachable** from the path the fix
426
+ repairs. Only the second row observes the defect the way a browser would.
427
+
375
428
  ## Summary
376
429
 
377
430
  | Principle | Requirement |
@@ -382,3 +435,4 @@ this question.
382
435
  | Customization | Use correct registration pattern, re-declare Resolver decorators |
383
436
  | Guards | Maintain both RolesGuard and BetterAuthRolesGuard in sync |
384
437
  | DI Tokens | Import-free leaf file only — never in `*.module.ts` / `*.service.ts` (§6) |
438
+ | Session cookie | Always the opaque session token — never the body JWT (§7) |
@@ -272,7 +272,7 @@ This pattern is currently applied to:
272
272
  | BetterAuth Tenant Skip | `betterAuth.skipTenantCheck` | Explicit Boolean | `true` (default). When `true` and no `X-Tenant-Id` header is sent, IAM endpoints (controller + resolver) skip `CoreTenantGuard` tenant validation. When header IS present, normal membership validation runs regardless. Set `false` for tenant-aware auth scenarios (subdomain-based, invite links, SSO per tenant) |
273
273
  | Debug Process Input | `debugProcessInput` | Explicit Boolean | `false` (default). When `true`, logs a debug message when `prepareInput()` changes the input type during `process()`. Has performance cost due to `JSON.stringify` on every `process()` call — enable only for debugging |
274
274
  | JSONTransport Production Guard | `email.smtp` with `jsonTransport` | Runtime Guard | Throws `Error` when `email.smtp` has a truthy `jsonTransport` property in `production` or `staging` environments (read from config `env` field). JSONTransport silently discards all outgoing mail — the guard prevents accidental misconfiguration that causes password-reset, 2FA, and verification emails to vanish. Use `{ jsonTransport: true }` only in CI/e2e/local environments |
275
- | Cookies | `cookies` | Boolean Shorthand (default true) | `true` (enabled), `exposeTokenInBody: false`. When enabled: loads `cookie-parser`, sets CORS `credentials: true`, sets signed httpOnly session cookies. When `exposeTokenInBody: true`: token stays in response body alongside cookies (for hybrid JWT+Cookie auth). JWT via `Authorization: Bearer` always works independently. **BetterAuth cookie name (since v11.27.6):** `createBetterAuthInstance()` pins `advanced.useSecureCookies: false` so BetterAuth's native handlers read the same UNPREFIXED `<cookiePrefix>.session_token` the helper writes (fixes a `401` split-brain on 2FA/passkey/`/token`); the `Secure` attribute is still applied on an `https://` baseURL via `advanced.defaultCookieAttributes`. Opt back into the `__Secure-` prefix with `betterAuth.options.advanced.useSecureCookies: true` only when BetterAuth manages cookies entirely |
275
+ | Cookies | `cookies` | Boolean Shorthand (default true) | `true` (enabled), `exposeTokenInBody: false`. When enabled: loads `cookie-parser`, sets CORS `credentials: true`, sets signed httpOnly session cookies. When `exposeTokenInBody: true`: a token stays in the response body alongside the cookies — but **the two carry DIFFERENT values** once the JWT plugin is also active. The body gets a JWT (what a bearer client needs), the cookie keeps the **opaque session token**, because Better-Auth resolves a session by exactly that value. Reading this row as "the same token in two places" is what produced 11.36.3: the cookie was written from the body's JWT, sign-in succeeded and every following request was anonymous. `setSessionCookies()` now refuses a JWT-shaped cookie value outright. Note `assertCookiesProductionSafe()` forbids `exposeTokenInBody` in `production`/`staging`, so this combination exists only in development and CI. JWT via `Authorization: Bearer` always works independently. **BetterAuth cookie name (since v11.27.6):** `createBetterAuthInstance()` pins `advanced.useSecureCookies: false` so BetterAuth's native handlers read the same UNPREFIXED `<cookiePrefix>.session_token` the helper writes (fixes a `401` split-brain on 2FA/passkey/`/token`); the `Secure` attribute is still applied on an `https://` baseURL via `advanced.defaultCookieAttributes`. Opt back into the `__Secure-` prefix with `betterAuth.options.advanced.useSecureCookies: true` only when BetterAuth manages cookies entirely |
276
276
  | CORS | `cors` | Boolean Shorthand | `enabled: true`, `allowAll: false`, `deriveAppUrl: true`. Origins come from `appUrl`/`baseUrl`, resolved by the shared `resolveServerUrls()` helper (`cookies.helper.ts`) that ALL three CORS layers use (GraphQL, REST, BetterAuth `trustedOrigins`) — they can no longer drift. `appUrl` resolution: explicit → derived from a **host-split** localhost `baseUrl` (its `api.` label strips to a sibling host: `https://api.crm.localhost` → `https://crm.localhost`, as served by `lt dev up`; the port is preserved) → localhost default (`http://localhost:3001`, only for `env: local`/`ci`/`e2e` with a **port-split** localhost `baseUrl` — one host, API `:3000`, app `:3001`; `https://api.localhost` strips to the bare `localhost` the API already answers on and is therefore a port split, not a host split) → derived from `baseUrl` by stripping a leading `api.` label (`https://api.example.com` → `https://example.com`). **Security:** the derived origin receives credentialed CORS; set `deriveAppUrl: false` when the apex domain is not trusted, then list the frontend origin via `appUrl`/`allowedOrigins` (a host-split localhost `baseUrl` then falls back to the localhost default). The derivation never yields a bare TLD (`https://api.dev` unchanged) and never emits the opaque `null` origin (non-http(s) `baseUrl` passes through verbatim). `allowAll: true` mirrors the request origin for REST/GraphQL, but BetterAuth's `trustedOrigins` still resolve to `[appUrl]` (+ passkey origins) — an origin check has no "allow everything" mode, so a separately hosted frontend must appear in `appUrl`/`allowedOrigins` (or set `betterAuth.trustedOrigins` explicitly). `enabled: false` disables CORS on all layers including BetterAuth (`trustedOrigins: []`, which still trusts BetterAuth's own `baseURL`). Explicit `betterAuth.trustedOrigins` always takes precedence |
277
277
  | Central Redis | `redis` | Boolean Shorthand + Presence Implies Enabled | `host: 'localhost'`, `port: 6379`, `db: 0`, `keyPrefix: <package.json name, slugified>` (per APPLICATION, not per framework — a constant default silently collides when two apps share one Redis; set it explicitly when sharing IS intended); `url` (takes precedence over host/port/db/credentials), `username`/`password`, `options` (passed to the ioredis constructor). `true` / `{}` enables with defaults; `{ enabled: false }` pre-configures without enabling; **absent = every consumer keeps its process-local fallback** (that fallback is the whole backward-compatibility story of 11.33.0). Requires the OPTIONAL peer `ioredis` — configured-but-missing **fails the boot** with a named error rather than crashing on first use. `keyPrefix` is applied by the framework per key, NOT as ioredis `keyPrefix` (that would collide with BullMQ's own prefix). One `CoreRedisService` serves all features: shared client (`getClient()`), one cached subscriber (`getSubscriber()` — a subscribing client cannot run commands), dedicated connections (`createClient(label)`); all are tracked and quit on shutdown. Switches on automatically: exact cross-replica rate limits via `RedisRateLimitStore` (see the Legacy Auth / BetterAuth / AI rate-limit rows), cron dedup (see Cron Job Deduplication row), `CoreRedisPubSub` as `PUB_SUB` for cluster-wide GraphQL subscriptions (**payloads must be JSON-serializable — `Date`, class instances, `Map`/`Set`, `undefined` do not survive**), tenant-cache invalidation broadcast, Hub collector mirroring, MCP session registry (turns a wrong-replica request from a misleading `404` into a `409` — `/ai/mcp` still REQUIRES sticky sessions, sessions are not portable) |
278
278
  | File Access Roles | `file.downloadRoles`, `file.uploadRoles`, `file.deleteRoles` | Config-Driven Role List | `[RoleEnum.ADMIN]` each. **These are the only breaking change a single-replica project gets in 11.33.0** — six members moved from `@Roles(S_EVERYONE)` to these knobs: `GET /files/id/:id`, `GET /files/:filename` and `getFileInfo` (`downloadRoles`), `uploadFile` / `uploadFiles` (`uploadRoles`), `deleteFile` (`deleteRoles`). Plain role STRINGS, not `RoleEnum` members, so project roles work (`['company-admin', 'editor']`). Applied at boot by `applyFileRoles()` via `Reflect.defineMetadata('roles', …)` on the base-class methods — the same runtime mechanism `CorePermissionsModule` uses, because the value is only known from config. **`[]`, a non-array, or an array holding a non-string is REJECTED with a warning and the default applies** — an all-empty role set reads to the guards as "no roles required" and would OPEN the route, the exact opposite of the intent. **ADMIN is always unioned in**: both `CoreFileController` and `CoreFileResolver` carry a class-level `@Roles(RoleEnum.ADMIN)` and the guards UNION class + handler metadata, so these knobs can grant but never exclude admins. Both classes also carry `@SkipTenantCheck()` — GridFS and the S3 metadata collection are reached outside Mongoose, so `mongooseTenantPlugin` never scopes them and a role name alone cannot express a per-tenant rule; roles resolve against `user.roles`, never `membership.role`. **A subclass that OVERRIDES a member opts out permanently** (decorator metadata lives on the function object, and an override is a different function) — inherit the member instead. **Since 11.35.1 that opt-out is REPORTED**: `CoreFileAccessAuditInitializer` reads the roles off the class the project actually registered at `onApplicationBootstrap` (the earliest point at which the route table exists, which is why it is a provider and not part of `applyFileRoles()`) and warns when a member is open beyond ADMIN for a reason the configuration cannot explain — the case the construction-time warning below is structurally blind to. It only REPORTS: overwriting an override's metadata, the way `TusModule.applyRoles()` does, would silently relax a route a project pinned on purpose. Roles are the coarse filter only; per-file rules belong in `CoreFileService.checkRights()`, which now receives `currentUser` and can read raw metadata via `getRawFileInfo()`. **Since 11.35.0 a reused FILENAME resolves to the most recent file** in all three stores (`uploadDate` desc, `_id` tie-break) and every by-name read path resolves a document and then reads by ID — under GridFS the by-name metadata lookup answered the oldest document while `openDownloadStreamByName()` served the newest, so a per-file rule approved one file and the bytes of another came back. Consequence: `duplicateById()` keeps the source's filename and the copy carries no metadata, so the copy now wins the name and an `ownerId` rule refuses it — give the copy its own metadata or its own name. **Since 11.35.0 `CoreFileService` WARNS at construction** when `multiTenancy` is active AND a knob names a role other than ADMIN AND `checkRights()` is not overridden — the file stores are reached outside Mongoose, so these role names resolve against `user.roles` (global) and every holder reaches every tenant's files; only `checkRights()` can narrow that. Silent on the admin-only default and silent when a per-file rule exists. Implementation: `src/core/modules/file/file-roles.config.ts` (`FILE_ROLE_DEFAULTS`, `FILE_ROLE_MEMBERS`, the three warnings, the shared `hasDeclaredFilePolicy()` silencer) + `file-roles.helper.ts` (`applyFileRoles`) + `core-file-access-audit.initializer.ts` (the registered-class audit) |
@@ -107,6 +107,38 @@ pnpm run test:cleanup
107
107
  `@UnifiedField` deprecation warnings filtered).
108
108
  - Database (E2E only): **one unique database per run** (`nest-server-e2e-run-<ts>-p<pid>`), created by `tests/global-setup.ts` so concurrent runs cannot interfere with each other. Specs needing an extra DB derive it via `deriveTestDbUri('<suffix>')` — never a hardcoded/`Date.now()` name (escapes the cleanup scheme).
109
109
  - DB lifecycle (`tests/db-lifecycle.reporter.ts`): run passes → DB dropped immediately + stale run DBs from crashed/failed runs collected; run fails → DB kept for debugging. Additionally `tests/global-setup.ts` runs a **startup sweep** (shared `isStaleTestDb()` predicate, dead-PID/age guarded) — leftovers are removed when the NEXT run starts, which survives SIGKILL (check watchdog) and `--reporter` CLI overrides. An externally set `MONGODB_URI` (CI) opts out of the scheme.
110
+ - The drop guard (`SAFE_TEST_DB_PATTERN` + `NON_DISPOSABLE_DB_PATTERN`): nothing in the scheme drops
111
+ a database whose name does not carry `e2e`, `ci`, `test` or `acctest` as a **whole segment**
112
+ (`/(^|[-_])(e2e|ci|test|acctest)([-_]|$)/i`). It gates all three drop sites: the externally-set
113
+ `MONGODB_URI` branch, the startup sweep, and the reporter's post-run collection. **The anchoring
114
+ is the point, not decoration.** The original form matched the marker as a substring ANYWHERE, and
115
+ `ci` hides inside soCIal / speCIal / finanCIal / priCIng / muniCIpal, `test` inside laTEST /
116
+ conTEST / TESTimonials. `lt dev up` exports `MONGODB_URI` at the project's DEVELOPMENT database
117
+ (`<slug>-local`), so a developer on a project named e.g. `pricing-portal` who started the e2e
118
+ suite from that shell had their working data dropped BY the guard that exists to prevent exactly
119
+ that. It had never had a test.
120
+
121
+ Three things about it are load-bearing and easy to undo:
122
+
123
+ 1. **`acctest` is a separate alternative BECAUSE of the anchoring** — `test` no longer matches
124
+ inside it, so deleting it as "redundant" silently stops acceptance-test databases from ever
125
+ being collected.
126
+ 2. **The externally-set-URI branch is the only drop site with no second condition.** The other two
127
+ also require `isStaleTestDb()`, i.e. the name must belong to this project's own base. So that
128
+ one branch additionally applies `NON_DISPOSABLE_DB_PATTERN` (`-local`, `-dev`, `-prod`,
129
+ `-staging`, …) via `isDroppableTestDb()`: a project slug may legitimately carry a marker as a
130
+ whole word — `ci` is the German abbreviation for *Corporate Identity*, `test` a product noun
131
+ for an exam — and `ci-portal-local` passes the segment rule. It also refuses a URI that names
132
+ **no** database, because the driver would fall back to its default (`test`) and that name
133
+ passes the guard.
134
+ 3. **The anchoring is a naming contract on the base DB name.** A base like `shope2e` or
135
+ `app-e2edb` satisfies nothing, and its databases would then accumulate with nothing collecting
136
+ them — silently, which is why both sweep loops now COUNT and log the stale candidates the
137
+ guard refused.
138
+
139
+ Pinned by `tests/unit/db-lifecycle-guard.spec.ts` (registered mutation
140
+ `safe-test-db-pattern-unanchored`; reverting the anchoring turns 13 cases red). **The refusal list
141
+ in that spec IS the specification** — extend it rather than loosening the pattern.
110
142
  - Run governor (`tests/e2e-run-slots.ts`): machine-wide slot dir (`<tmpdir>/lt-e2e-run-slots`) caps concurrent e2e runs across ALL lt projects/sessions (default 2 on ≥8 cores). Further runs wait, logging `[e2e-governor] waiting…` every 15s (keeps the check watchdog fed — a queued run is NOT hung). The e2e config counts foreign slots at load time and drops to low-resource mode (reduced forks, raised timeouts) when another run is active — deterministic, unlike the lagging 1-min load average (kept as second signal). Knobs: `LT_E2E_MAX_RUNS` (0 disables), `LT_E2E_SLOT_DIR`, `LT_E2E_SLOT_TIMEOUT` (fail-open).
111
143
  - `retry: 2` (e2e) is deliberate — with `retry: 5`, one spec file with broken app/socket state ground through 6 attempts × 30s timeout × 22 tests ≈ an hour at 0% CPU (looked like a deadlock; the check watchdog killed it). Never raise retry to paper over contention.
112
144
  - Infrastructure containers (E2E only, the **seven** specs listed under "Infrastructure containers"
@@ -234,21 +266,73 @@ pnpm run check:mutations -- --id=<id> # one mutation
234
266
  pnpm run check:mutations -- --list # the registry, without running anything
235
267
  pnpm run check:mutations -- --allow-dirty # when the fix and its evidence share a working tree
236
268
  pnpm run check:mutations -- --jobs=4 # N mutations at a time (default: 2, or 4 on >=12 cores)
269
+ pnpm run check:mutations -- --no-infra # only the 22 that need no MongoDB
270
+ pnpm run check:mutations -- --since=<ref> # only mutations touching files changed since <ref>
237
271
  ```
238
272
 
273
+ `--no-infra` and `--since` narrow the run for LOCAL work and are deliberately not wired into the
274
+ publish path. Both print how many mutations they did NOT check, because a narrowed run that reports
275
+ only what it ran reads exactly like a full pass. An empty selection exits **2**, not 0 — the message
276
+ alone would not stop a `&&` chain or a hook from reading "nothing ran" as "everything passed".
277
+
278
+ `--since` is a **heuristic**: it matches a mutation's own target file and spec files, and does NOT
279
+ follow what those specs transitively import or read at runtime (`email-templates.spec.ts` reads
280
+ `.ejs` files that appear in no import graph). A refactor three modules away can hollow out a test it
281
+ will happily skip — the precise failure this tool exists to catch. It falls back to the full set
282
+ when the registry, a vitest config or a setup file changed, since those can move any verdict.
283
+
284
+ **Why the gate does not cache per-mutation verdicts instead.** It runs ONCE PER RELEASE, not per
285
+ commit, so selective re-running would save ~10 minutes a release. The price is a cache that has to
286
+ model each spec's full dependency closure correctly, and getting that wrong produces a stale PASS
287
+ for a test that has since gone vacuous — exactly what the gate is there to prevent. Bad trade at 52
288
+ mutations. Worth revisiting around 100, where the full run approaches half an hour.
289
+
239
290
  Not part of `pnpm run check` — it edits source and re-runs whole e2e suites. It belongs in review
240
- and on the publish path.
291
+ and on the publish path. It is also reachable on demand, without cutting a release:
292
+
293
+ ```
294
+ gh workflow run regression-evidence.yml --ref develop # the full registry
295
+ gh workflow run regression-evidence.yml --ref develop -f args="--no-infra" # the unit subset
296
+ ```
297
+
298
+ **Why that matters, and what it cost to learn (11.36.3).** The gate lived only in `publish.yml`,
299
+ which triggers on `release: released`. So the only way to observe it on a CI runner was to cut a
300
+ release — and when it reported `0/51 mutations confirmed`, diagnosing that required cutting another
301
+ one. A gate you cannot run without shipping is a gate you cannot debug.
302
+
303
+ **A verdict must carry its reason.** `INCONCLUSIVE` exists so a crashed, timed-out or starved run is
304
+ not counted as evidence — but the first version reported the verdict and discarded the output that
305
+ explained it. `classifyRun()` now attaches the last 25 lines (`tailOf`) and names the exit code.
306
+
307
+ **The parser must strip ANSI, and this is the load-bearing part.** vitest COLOURS its summary on a CI
308
+ runner, so the line carries escape sequences between `Tests` and the number; `\s+` matches whitespace,
309
+ never an escape. The count therefore did not parse in CI — and it never had. The *previous* verdict
310
+ was `failedCount ?? 'some'` with `ok: true` on any non-zero exit, so it never needed the count: on the
311
+ publish path the gate had been accepting a crash, a timeout or a collection error as "went red".
312
+
313
+ Two consequences worth stating plainly:
314
+
315
+ 1. Requiring a real failure count is what makes the gate a check rather than a rubber stamp. Do not
316
+ relax it back to "non-zero exit is enough" — that is the defect, not a convenience.
317
+ 2. **Mutation confirmations from CI runs before 11.36.3 are not evidence.** They were verified
318
+ locally (where output is colourless) and stamped in CI. The first trustworthy full-registry run on
319
+ a runner is the `51/51` from the 11.36.3 retag.
320
+
321
+ Anything that PARSES a spawned run's output belongs behind `stripAnsi()`: the same command is
322
+ colourless on a pipe and colourised on a runner, so a regex tested locally can be reliably wrong in
323
+ exactly the environment where the answer matters.
241
324
 
242
325
  ### The cost is vitest's cold start, not the tests
243
326
 
244
- Worth knowing before optimising the wrong thing: the specs behind all 29 e2e mutations add up to
327
+ Worth knowing before optimising the wrong thing: the specs behind all 30 e2e mutations add up to
245
328
  **~40 seconds**. The step takes ~740s. The remaining ~700s is paying vitest's startup — process
246
- spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 49 times.
329
+ spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 52 times.
247
330
  That work is largely single-threaded I/O and barely scales with cores: the full registry measures
248
331
  **744s on a 12-core laptop and 777s on a 4-vCPU CI runner**.
249
332
 
250
333
  So it parallelises well, and `--jobs` does exactly that: **744s → 399s (1.87×) at 4 jobs**. Verified
251
- by diffing all 49 verdicts against a sequential run a parallel mode that changes a verdict is not
334
+ by diffing all 49 verdicts against a sequential run (measured at the 49-mutation registry) a
335
+ parallel mode that changes a verdict is not
252
336
  an optimisation, it is a broken safety net.
253
337
 
254
338
  **A mutation writes into the source tree**, which is why N cannot simply run at once: two mutations
package/CLAUDE.md CHANGED
@@ -24,6 +24,7 @@ The following documents must be kept up to date when making changes that affect
24
24
  | `.claude/rules/configurable-features.md` | Adding new configurable features |
25
25
  | `src/templates/*.ejs` + `tests/unit/email-templates.spec.ts` | Changing a mail template — a template is never imported, type-checked or linted, so the only thing binding it to its caller is the variable names inside it. Add the caller's data shape to the spec |
26
26
  | `FRAMEWORK-API.md` | Auto-regenerated by `pnpm run build` — verify after adding interfaces, CrudService methods, or core modules |
27
+ | `.claude/rules/testing.md` | Changing the test-runner split, the per-run DB lifecycle or its **drop guard**, the run governor, the infrastructure containers, or the regression-evidence gate. This row exists because the drop guard — the one thing standing between a test run and a developer's data — went undocumented for its whole life: nothing in this table pointed at the file that describes everything around it |
27
28
 
28
29
  **Rule:** When a code change adds, removes, or modifies a feature listed in `docs/REQUEST-LIFECYCLE.md` (Features Overview, diagrams, decorator reference, configuration, etc.), update the document in the same commit or PR.
29
30
 
package/FRAMEWORK-API.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @lenne.tech/nest-server — Framework API Reference
2
2
 
3
- > Auto-generated from source code on 2026-08-22 (v11.36.2)
3
+ > Auto-generated from source code on 2026-08-23 (v11.36.4)
4
4
  > File: `FRAMEWORK-API.md` — compact, machine-readable API surface for Claude Code
5
5
 
6
6
  ## CoreModule.forRoot()
@@ -47,6 +47,10 @@ export declare function hasSession<T>(response: T): response is T & {
47
47
  token?: string;
48
48
  };
49
49
  };
50
+ export declare function hasToken<T>(response: T): response is T & {
51
+ token: string;
52
+ };
53
+ export declare function sessionTokenFromResponse(response: unknown): string | undefined;
50
54
  export declare function hasUser<T>(response: T): response is T & {
51
55
  user: BetterAuthSessionUser;
52
56
  };
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.hasSession = hasSession;
4
+ exports.hasToken = hasToken;
5
+ exports.sessionTokenFromResponse = sessionTokenFromResponse;
4
6
  exports.hasUser = hasUser;
5
7
  exports.requires2FA = requires2FA;
6
8
  function hasSession(response) {
@@ -10,6 +12,13 @@ function hasSession(response) {
10
12
  response.session !== null &&
11
13
  response.session !== undefined);
12
14
  }
15
+ function hasToken(response) {
16
+ return typeof response?.token === 'string' && response.token !== '';
17
+ }
18
+ function sessionTokenFromResponse(response) {
19
+ const fromSession = hasSession(response) && hasToken(response.session) ? response.session.token : undefined;
20
+ return fromSession ?? (hasToken(response) ? response.token : undefined);
21
+ }
13
22
  function hasUser(response) {
14
23
  return (response !== null &&
15
24
  typeof response === 'object' &&
@@ -1 +1 @@
1
- {"version":3,"file":"better-auth.types.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.types.ts"],"names":[],"mappings":";;AA6GA,gCAUC;AAMD,0BAQC;AAKD,kCAOC;AApCD,SAAgB,UAAU,CACxB,QAAW;IAEX,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,SAAS,IAAI,QAAQ;QACpB,QAAkC,CAAC,OAAO,KAAK,IAAI;QACnD,QAAkC,CAAC,OAAO,KAAK,SAAS,CAC1D,CAAC;AACJ,CAAC;AAMD,SAAgB,OAAO,CAAI,QAAW;IACpC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,MAAM,IAAI,QAAQ;QACjB,QAA+B,CAAC,IAAI,KAAK,IAAI;QAC7C,QAA+B,CAAC,IAAI,KAAK,SAAS,CACpD,CAAC;AACJ,CAAC;AAKD,SAAgB,WAAW,CAAI,QAAW;IACxC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,mBAAmB,IAAI,QAAQ;QAC9B,QAA4C,CAAC,iBAAiB,KAAK,IAAI,CACzE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"better-auth.types.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/better-auth.types.ts"],"names":[],"mappings":";;AA6GA,gCAUC;AASD,4BAEC;AAgBD,4DAGC;AAMD,0BAQC;AAKD,kCAOC;AAlED,SAAgB,UAAU,CACxB,QAAW;IAEX,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,SAAS,IAAI,QAAQ;QACpB,QAAkC,CAAC,OAAO,KAAK,IAAI;QACnD,QAAkC,CAAC,OAAO,KAAK,SAAS,CAC1D,CAAC;AACJ,CAAC;AASD,SAAgB,QAAQ,CAAI,QAAW;IACrC,OAAO,OAAQ,QAAgC,EAAE,KAAK,KAAK,QAAQ,IAAK,QAA8B,CAAC,KAAK,KAAK,EAAE,CAAC;AACtH,CAAC;AAgBD,SAAgB,wBAAwB,CAAC,QAAiB;IACxD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5G,OAAO,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC1E,CAAC;AAMD,SAAgB,OAAO,CAAI,QAAW;IACpC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,MAAM,IAAI,QAAQ;QACjB,QAA+B,CAAC,IAAI,KAAK,IAAI;QAC7C,QAA+B,CAAC,IAAI,KAAK,SAAS,CACpD,CAAC;AACJ,CAAC;AAKD,SAAgB,WAAW,CAAI,QAAW;IACxC,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,OAAO,QAAQ,KAAK,QAAQ;QAC5B,mBAAmB,IAAI,QAAQ;QAC9B,QAA4C,CAAC,iBAAiB,KAAK,IAAI,CACzE,CAAC;AACJ,CAAC"}
@@ -36,7 +36,7 @@ export declare class BetterAuthCookieHelper {
36
36
  clearSessionCookies(res: Response): void;
37
37
  extractSessionTokenFromResponse(response: globalThis.Response): null | string;
38
38
  setSessionCookiesFromWebResponse(res: Response, webResponse: globalThis.Response): void;
39
- processAuthResult<T extends CookieProcessingResult>(res: Response, result: T, cookiesEnabled: boolean, exposeTokenInBody?: boolean): T;
39
+ processAuthResult<T extends CookieProcessingResult>(res: Response, result: T, cookiesEnabled: boolean, exposeTokenInBody?: boolean, sessionToken?: string): T;
40
40
  }
41
41
  export declare function createCookieHelper(basePath: string, options?: {
42
42
  domain?: string;
@@ -2,9 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BetterAuthCookieHelper = exports.AUTH_COOKIE_NAMES = void 0;
4
4
  exports.createCookieHelper = createCookieHelper;
5
+ const common_1 = require("@nestjs/common");
5
6
  const cookies_helper_1 = require("../../common/helpers/cookies.helper");
6
7
  const better_auth_cookie_prefix_helper_1 = require("./better-auth-cookie-prefix.helper");
8
+ const core_better_auth_token_helper_1 = require("./core-better-auth-token.helper");
7
9
  const core_better_auth_web_helper_1 = require("./core-better-auth-web.helper");
10
+ const fallbackLogger = new common_1.Logger('BetterAuthCookieHelper');
8
11
  exports.AUTH_COOKIE_NAMES = {
9
12
  TOKEN: 'token',
10
13
  };
@@ -35,6 +38,12 @@ class BetterAuthCookieHelper {
35
38
  return this.cookieName;
36
39
  }
37
40
  setSessionCookies(res, sessionToken, _sessionId) {
41
+ if ((0, core_better_auth_token_helper_1.isJwtShaped)(sessionToken)) {
42
+ (this.config.logger ?? fallbackLogger).error('Refusing to write a JWT into the session cookie — Better-Auth resolves a session by the ' +
43
+ 'opaque token it stored, so this would authenticate nothing. Pass the session token, ' +
44
+ 'not the value destined for the response body.');
45
+ return;
46
+ }
38
47
  const cookieOptions = this.getDefaultCookieOptions();
39
48
  let cookieValue;
40
49
  if (this.config.secret) {
@@ -93,15 +102,16 @@ class BetterAuthCookieHelper {
93
102
  }
94
103
  this.setSessionCookies(res, sessionToken);
95
104
  }
96
- processAuthResult(res, result, cookiesEnabled, exposeTokenInBody = false) {
105
+ processAuthResult(res, result, cookiesEnabled, exposeTokenInBody = false, sessionToken) {
97
106
  if (!cookiesEnabled) {
98
107
  return result;
99
108
  }
100
- if (result.token) {
101
- this.setSessionCookies(res, result.token);
102
- if (!exposeTokenInBody) {
103
- delete result.token;
104
- }
109
+ const cookieToken = sessionToken ?? result.token;
110
+ if (cookieToken) {
111
+ this.setSessionCookies(res, cookieToken);
112
+ }
113
+ if (result.token && !exposeTokenInBody) {
114
+ delete result.token;
105
115
  }
106
116
  return result;
107
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core-better-auth-cookie.helper.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-cookie.helper.ts"],"names":[],"mappings":";;;AAyWA,gDAaC;AAnXD,wEAA0E;AAC1E,yFAAwF;AACxF,+EAAgE;AAcnD,QAAA,iBAAiB,GAAG;IAE/B,KAAK,EAAE,OAAO;CACN,CAAC;AAkGX,MAAa,sBAAsB;IAIJ;IAHZ,kBAAkB,CAAS;IAC3B,UAAU,CAAS;IAEpC,YAA6B,MAAoC;QAApC,WAAM,GAAN,MAAM,CAA8B;QAE/D,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAIjF,IAAI,CAAC,UAAU,GAAG,IAAA,qEAAkC,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAWD,uBAAuB;QACrB,MAAM,OAAO,GAAsB;YACjC,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,IAAA,oCAAmB,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;SAC7C,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAYD,qBAAqB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAMD,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAkBD,iBAAiB,CAAC,GAAa,EAAE,YAAoB,EAAE,UAAmB;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAIrD,IAAI,WAAmB,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,WAAW,GAAG,IAAA,6CAAe,EAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,uEAAuE,CAAC,CAAC;YAClG,WAAW,GAAG,YAAY,CAAC;QAC7B,CAAC;QAID,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;QAIxD,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,yBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAUD,mBAAmB,CAAC,GAAa;QAC/B,MAAM,aAAa,GAAsB;YACvC,GAAG,IAAI,CAAC,uBAAuB,EAAE;YACjC,MAAM,EAAE,CAAC;SACV,CAAC;QAGF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;QAG/C,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,GAAG,CAAC,MAAM,CAAC,yBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAWD,+BAA+B,CAAC,QAA6B;QAC3D,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC;YAGjE,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE,CAAC;gBAC5C,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;oBAEnD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAG7E,IAAI,YAAoB,CAAC;oBACzB,IAAI,CAAC;wBACH,YAAY,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;oBACjD,CAAC;oBAAC,MAAM,CAAC;wBACP,YAAY,GAAG,WAAW,CAAC;oBAC7B,CAAC;oBAID,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAEvB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,OAAO,YAAY,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CACvB,kDAAkD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC7G,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAYD,gCAAgC,CAAC,GAAa,EAAE,WAAgC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC;QAEvE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAGD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAmBD,iBAAiB,CACf,GAAa,EACb,MAAS,EACT,cAAuB,EACvB,oBAA6B,KAAK;QAElC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAEjB,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAG1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,OAAO,MAAM,CAAC,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AArOD,wDAqOC;AAYD,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,OAA2F,EAC3F,MAAe;IAEf,OAAO,IAAI,sBAAsB,CAAC;QAChC,QAAQ;QACR,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,IAAI,KAAK;QAC1D,MAAM;QACN,MAAM,EAAE,OAAO,EAAE,MAAM;KACxB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"core-better-auth-cookie.helper.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-cookie.helper.ts"],"names":[],"mappings":"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"}
@@ -12,5 +12,6 @@ export declare function analyzeToken(token: string): TokenAnalysisResult;
12
12
  export declare function getUserIdFromToken(token: string): null | string;
13
13
  export declare function isBetterAuthJwt(token: string): boolean;
14
14
  export declare function isJwt(token: string): boolean;
15
+ export declare function isJwtShaped(value: unknown): value is string;
15
16
  export declare function isLegacyJwt(token: string): boolean;
16
17
  export declare function isSessionToken(token: string): boolean;
@@ -5,6 +5,7 @@ exports.analyzeToken = analyzeToken;
5
5
  exports.getUserIdFromToken = getUserIdFromToken;
6
6
  exports.isBetterAuthJwt = isBetterAuthJwt;
7
7
  exports.isJwt = isJwt;
8
+ exports.isJwtShaped = isJwtShaped;
8
9
  exports.isLegacyJwt = isLegacyJwt;
9
10
  exports.isSessionToken = isSessionToken;
10
11
  var TokenType;
@@ -57,6 +58,9 @@ function isJwt(token) {
57
58
  const result = analyzeToken(token);
58
59
  return result.type === TokenType.LEGACY_JWT || result.type === TokenType.BETTER_AUTH_JWT;
59
60
  }
61
+ function isJwtShaped(value) {
62
+ return typeof value === 'string' && value.startsWith('eyJ') && value.split('.').length === 3;
63
+ }
60
64
  function isLegacyJwt(token) {
61
65
  return analyzeToken(token).type === TokenType.LEGACY_JWT;
62
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core-better-auth-token.helper.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-token.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-better-auth-token.helper.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth-token.helper.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,7 @@ export declare class CoreBetterAuthController {
64
64
  token?: string;
65
65
  }): CoreBetterAuthSessionInfo | undefined;
66
66
  protected mapUser(sessionUser: BetterAuthSessionUser, mappedUser: any): CoreBetterAuthUserResponse;
67
+ protected sessionTokenForCookie(response: unknown): string | undefined;
67
68
  protected processCookies(res: Response, result: CoreBetterAuthResponse, sessionToken?: string): CoreBetterAuthResponse;
68
69
  protected clearAuthCookies(res: Response): void;
69
70
  protected handleBetterAuthPlugins(req: Request, res: Response): Promise<void>;
@@ -279,6 +279,7 @@ let CoreBetterAuthController = CoreBetterAuthController_1 = class CoreBetterAuth
279
279
  const mappedUser = await this.userMapper.mapSessionUser(response.user);
280
280
  const rawToken = responseAny.accessToken || responseAny.token || ((0, better_auth_types_1.hasSession)(response) ? response.session.token : undefined);
281
281
  const token = await this.resolveJwtToken(rawToken);
282
+ const sessionToken = this.sessionTokenForCookie(response);
282
283
  const result = {
283
284
  requiresTwoFactor: false,
284
285
  session: (0, better_auth_types_1.hasSession)(response) ? this.mapSession(response.session) : undefined,
@@ -286,7 +287,7 @@ let CoreBetterAuthController = CoreBetterAuthController_1 = class CoreBetterAuth
286
287
  token,
287
288
  user: mappedUser ? this.mapUser(response.user, mappedUser) : undefined,
288
289
  };
289
- return this.processCookies(res, result);
290
+ return this.processCookies(res, result, sessionToken);
290
291
  }
291
292
  throw new common_1.UnauthorizedException(error_codes_1.ErrorCode.INVALID_CREDENTIALS);
292
293
  }
@@ -334,7 +335,7 @@ let CoreBetterAuthController = CoreBetterAuthController_1 = class CoreBetterAuth
334
335
  const rawToken = responseAny.accessToken || responseAny.token || ((0, better_auth_types_1.hasSession)(response) ? response.session.token : undefined);
335
336
  const token = await this.resolveJwtToken(rawToken);
336
337
  if (this.emailVerificationService?.isEnabled()) {
337
- const sessionToken = (0, better_auth_types_1.hasSession)(response) ? response.session.token : undefined;
338
+ const sessionToken = (0, better_auth_types_1.sessionTokenFromResponse)(response);
338
339
  if (sessionToken) {
339
340
  await this.betterAuthService.revokeSession(sessionToken);
340
341
  }
@@ -354,7 +355,7 @@ let CoreBetterAuthController = CoreBetterAuthController_1 = class CoreBetterAuth
354
355
  token,
355
356
  user: mappedUser ? this.mapUser(response.user, mappedUser) : undefined,
356
357
  };
357
- return this.processCookies(res, result);
358
+ return this.processCookies(res, result, this.sessionTokenForCookie(response));
358
359
  }
359
360
  throw new common_1.BadRequestException(error_codes_1.ErrorCode.SIGNUP_FAILED);
360
361
  }
@@ -461,6 +462,10 @@ let CoreBetterAuthController = CoreBetterAuthController_1 = class CoreBetterAuth
461
462
  roles: Array.isArray(mappedUser?.roles) ? mappedUser.roles : [],
462
463
  };
463
464
  }
465
+ sessionTokenForCookie(response) {
466
+ const resolved = (0, better_auth_types_1.sessionTokenFromResponse)(response);
467
+ return (0, core_better_auth_token_helper_1.isJwtShaped)(resolved) ? undefined : resolved;
468
+ }
464
469
  processCookies(res, result, sessionToken) {
465
470
  const cookiesConfig = this.configService.getFastButReadOnly('cookies');
466
471
  const cookiesEnabled = (0, cookies_helper_1.isCookiesEnabled)(cookiesConfig);
@@ -472,7 +477,7 @@ let CoreBetterAuthController = CoreBetterAuthController_1 = class CoreBetterAuth
472
477
  }
473
478
  return result;
474
479
  }
475
- return this.cookieHelper.processAuthResult(res, result, cookiesEnabled, exposeTokenInBody);
480
+ return this.cookieHelper.processAuthResult(res, result, cookiesEnabled, exposeTokenInBody, sessionToken);
476
481
  }
477
482
  clearAuthCookies(res) {
478
483
  this.cookieHelper.clearSessionCookies(res);
@@ -1 +1 @@
1
- {"version":3,"file":"core-better-auth.controller.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-better-auth.controller.js","sourceRoot":"","sources":["../../../../src/core/modules/better-auth/core-better-auth.controller.ts"],"names":[],"mappings":"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"}
@@ -215,7 +215,7 @@ let CoreBetterAuthResolver = CoreBetterAuthResolver_1 = class CoreBetterAuthReso
215
215
  await this.userMapper.linkOrCreateUser(sessionUser, { termsAndPrivacyAccepted });
216
216
  const mappedUser = await this.userMapper.mapSessionUser(sessionUser);
217
217
  if (this.emailVerificationService?.isEnabled()) {
218
- const sessionToken = (0, better_auth_types_1.hasSession)(response) ? response.session.token : undefined;
218
+ const sessionToken = (0, better_auth_types_1.sessionTokenFromResponse)(response);
219
219
  if (sessionToken) {
220
220
  await this.betterAuthService.revokeSession(sessionToken);
221
221
  }