@lenne.tech/nest-server 11.42.13 → 11.42.14
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.
- package/.claude/rules/testing.md +4 -4
- package/FRAMEWORK-API.md +1 -1
- package/dist/core/modules/auth/guards/auth.guard.js +14 -0
- package/dist/core/modules/auth/guards/auth.guard.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/docs/REQUEST-LIFECYCLE.md +8 -0
- package/migration-guides/11.42.13-to-11.42.14.md +74 -0
- package/package.json +2 -2
- package/src/core/modules/api-token/README.md +5 -0
- package/src/core/modules/auth/guards/auth.guard.ts +31 -1
package/.claude/rules/testing.md
CHANGED
|
@@ -268,7 +268,7 @@ pnpm run check:mutations -- --id=<id> # one mutation
|
|
|
268
268
|
pnpm run check:mutations -- --list # the registry, without running anything
|
|
269
269
|
pnpm run check:mutations -- --allow-dirty # when the fix and its evidence share a working tree
|
|
270
270
|
pnpm run check:mutations -- --jobs=4 # N mutations at a time (default: 2, or 4 on >=12 cores)
|
|
271
|
-
pnpm run check:mutations -- --no-infra # only the
|
|
271
|
+
pnpm run check:mutations -- --no-infra # only the 132 that need no MongoDB
|
|
272
272
|
pnpm run check:mutations -- --since=<ref> # only mutations touching files changed since <ref>
|
|
273
273
|
```
|
|
274
274
|
|
|
@@ -287,7 +287,7 @@ when the registry, a vitest config or a setup file changed, since those can move
|
|
|
287
287
|
commit, and in CI alongside the publish without blocking it. The price of caching is a cache that
|
|
288
288
|
has to model each spec's full dependency closure correctly, and getting that wrong produces a stale
|
|
289
289
|
PASS for a test that has since gone vacuous — exactly what the gate is there to prevent. Bad trade
|
|
290
|
-
at
|
|
290
|
+
at 205 mutations.
|
|
291
291
|
|
|
292
292
|
**Decided 2026-10-03 (repo owner): keep the full run.** Measured at 128 mutations, the CI job for
|
|
293
293
|
11.41.6 took **14 minutes**. The trigger to revisit is that wall time, not the mutation count —
|
|
@@ -332,9 +332,9 @@ exactly the environment where the answer matters.
|
|
|
332
332
|
|
|
333
333
|
### The cost is vitest's cold start, not the tests
|
|
334
334
|
|
|
335
|
-
Worth knowing before optimising the wrong thing: the specs behind all
|
|
335
|
+
Worth knowing before optimising the wrong thing: the specs behind all 73 e2e mutations add up to
|
|
336
336
|
**~40 seconds**. The step takes ~740s. The remaining ~700s is paying vitest's startup — process
|
|
337
|
-
spawn, transform, module graph, mongod connect, DB create and drop — once per mutation,
|
|
337
|
+
spawn, transform, module graph, mongod connect, DB create and drop — once per mutation, 205 times.
|
|
338
338
|
That work is largely single-threaded I/O and barely scales with cores: the full registry measures
|
|
339
339
|
**744s on a 12-core laptop and 777s on a 4-vCPU CI runner**.
|
|
340
340
|
|
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 as of 2026-10-
|
|
3
|
+
> Auto-generated from source code as of 2026-10-13 (v11.42.14)
|
|
4
4
|
> File: `FRAMEWORK-API.md` — compact, machine-readable API surface for Claude Code
|
|
5
5
|
|
|
6
6
|
## CoreModule.forRoot()
|
|
@@ -20,6 +20,7 @@ const passport_1 = require("@nestjs/passport");
|
|
|
20
20
|
const options_js_1 = require("@nestjs/passport/dist/options.js");
|
|
21
21
|
const memoize_util_js_1 = require("@nestjs/passport/dist/utils/memoize.util.js");
|
|
22
22
|
const passport = require("passport");
|
|
23
|
+
const core_api_token_helpers_1 = require("../../api-token/core-api-token.helpers");
|
|
23
24
|
const better_auth_token_service_1 = require("../../better-auth/better-auth-token.service");
|
|
24
25
|
const core_better_auth_service_1 = require("../../better-auth/core-better-auth.service");
|
|
25
26
|
const auth_guard_strategy_enum_1 = require("../auth-guard-strategy.enum");
|
|
@@ -28,6 +29,14 @@ const expired_token_exception_1 = require("../exceptions/expired-token.exception
|
|
|
28
29
|
const invalid_token_exception_1 = require("../exceptions/invalid-token.exception");
|
|
29
30
|
const NO_STRATEGY_ERROR = 'In order to use "defaultStrategy", please, ensure to import PassportModule in each ' +
|
|
30
31
|
"place where AuthGuard() is being used. Otherwise, passport won't work correctly.";
|
|
32
|
+
const API_TOKEN_SATISFIED_STRATEGIES = new Set([
|
|
33
|
+
auth_guard_strategy_enum_1.AuthGuardStrategy.BETTER_AUTH,
|
|
34
|
+
auth_guard_strategy_enum_1.AuthGuardStrategy.JWT,
|
|
35
|
+
]);
|
|
36
|
+
function isSatisfiedByApiToken(strategy) {
|
|
37
|
+
const strategies = Array.isArray(strategy) ? strategy : [strategy];
|
|
38
|
+
return strategies.some((value) => !!value && API_TOKEN_SATISFIED_STRATEGIES.has(value));
|
|
39
|
+
}
|
|
31
40
|
const createPassportContext = (request, response) => (type, options, callback) => new Promise((resolve, reject) => passport.authenticate(type, options, (err, user, info) => {
|
|
32
41
|
try {
|
|
33
42
|
request.authInfo = info;
|
|
@@ -77,6 +86,11 @@ function createAuthGuard(type) {
|
|
|
77
86
|
const options = { ...options_js_1.defaultOptions, ...this.options };
|
|
78
87
|
const request = this.getRequest(context);
|
|
79
88
|
const existingUser = request?.[options.property || options_js_1.defaultOptions.property];
|
|
89
|
+
if ((0, core_api_token_helpers_1.getApiTokenContext)(existingUser) && isSatisfiedByApiToken(type || this.options?.defaultStrategy)) {
|
|
90
|
+
(0, core_api_token_helpers_1.enforceApiTokenRoute)({ controllerClass: context.getClass(), handler: context.getHandler(), request });
|
|
91
|
+
request[options.property || options_js_1.defaultOptions.property] = this.handleRequest(null, existingUser, null, context);
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
80
94
|
if (existingUser && existingUser._authenticatedViaBetterAuth === true) {
|
|
81
95
|
const validatedUser = this.handleRequest(null, existingUser, null, context);
|
|
82
96
|
request[options.property || options_js_1.defaultOptions.property] = validatedUser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/guards/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwF;AACxF,uCAAyC;AACzC,6CAAsD;AACtD,+CAA2D;AAC3D,iEAAkE;AAClE,iFAAsE;AACtE,qCAAsC;AAEtC,2FAAqF;AAErF,yFAAmF;AACnF,0EAAgE;AAChE,mGAA6F;AAC7F,mFAA8E;AAC9E,mFAA8E;AAK9E,MAAM,iBAAiB,GACrB,qFAAqF;IACrF,kFAAkF,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/guards/auth.guard.ts"],"names":[],"mappings":"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"}
|