@ts-typed/compiler 0.1.1 → 0.1.3

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/CHANGELOG.md CHANGED
@@ -4,6 +4,31 @@ All notable changes to `@ts-typed/compiler` are documented in this file.
4
4
 
5
5
  The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [0.1.3] - 2026-10-17
8
+
9
+ Continues the same fix/test/document loop against the real teste-ts-typed app.
10
+
11
+ ### Added
12
+
13
+ - A `readonly` member of a plain object's interface or type-alias shape (as opposed to a class field, already covered by `compiler.enforceReadonly`) is now locked immediately when the value crosses a typed boundary: `interface Config { readonly version: string }` rejects a later `config.version = 'x'` with `READONLY_PROPERTY`. Unlike a class, a plain object/literal value has no "still under construction" phase, so there is no deferred-lock timing concern here — it is safe to enforce immediately. A `Readonly<T>` mapped type and `readonly` members of index signatures are not detected (documented limitation); class instances are deliberately left out of this specific lock (a `readonly` view of an instance must not freeze that instance's own mutable state).
14
+
15
+ ### Investigated and deliberately NOT shipped this release
16
+
17
+ - Sealing a class instance with `Object.preventExtensions` right after construction (to reject undeclared/extra properties, `CLOSED_INSTANCES`/`SYMBOL_KEYS`) was implemented and tested in isolation, then reverted before publishing once it broke a real, common pattern found by re-running teste-ts-typed's full suite: NestJS's own `class-transformer` + `ValidationPipe({ whitelist: true, forbidNonWhitelisted: true })` combination copies every key from the request body onto the DTO instance first, and only strips the non-whitelisted ones afterward as a second step — sealing the instance makes that first copy throw a native, unguarded `TypeError` instead of ever reaching the whitelist step. A general fix would need a way to tell "this class is meant to be populated after construction, by design" apart from a genuinely closed instance, which is not something `contractKind`/`operation` alone can express.
18
+
19
+ ## [0.1.2] - 2026-10-17
20
+
21
+ A continuation of the same real-app fix/test/document loop that produced 0.1.1: closes three more coverage gaps (`static` fields, `Map`/`Set` adapters), and fixes a severe regression that 0.1.1 itself introduced.
22
+
23
+ ### Fixed
24
+
25
+ - **Regression in 0.1.1, now fixed**: fixing `installFieldGuard`'s silent give-up (0.1.1) exposed a pre-existing bug in how `compiler.enforceReadonly` decides whether to lock a field. A class with no user constructor installs and locks a readonly field in the SAME synthesized constructor, which completes immediately on `new X()` — correct for a bare field (TypeScript's own `strictPropertyInitialization` guarantees it already has a real value by then), but wrong for a field declared with `?` or `!`: both mean the field may legitimately still be unset, or is only "promised" to be set later, when construction completes. The single most common real-world shape hit by this was NestJS's own `ValidationPipe`: `new Dto()` then `instance.field = value` for every field, assigned by `class-transformer` entirely outside any constructor. 0.1.1 as published locked every such field immediately, making every DTO shaped this way (`readonly name!: string` or `readonly role?: UserRole`) reject the framework's own deserialization step with `READONLY_PROPERTY`, regardless of whether the value being assigned was valid. A readonly field is now only locked when it has neither `?` nor `!`.
26
+
27
+ ### Added
28
+
29
+ - `static` class fields (public, not combined with `private`/`protected`) are now instrumented: a static field's guard is installed in a `static { ... }` initializer block, where `this` is the class itself, reusing the exact same install/lock machinery already used for instance fields. `delete`/`Object.defineProperty` bypass and `compiler.enforceReadonly` locking both work the same way they do for instance fields.
30
+ - `Map<K, V>`, `ReadonlyMap<K, V>`, `Set<T>` and `ReadonlySet<T>` are now first-class schema kinds: their entries/items are validated against the declared key/value/item types when the collection crosses a typed boundary. `WeakMap`/`WeakSet` remain out of scope, and mutating an already-validated collection afterward via `.set()`/`.add()` is not intercepted (the same category of limitation as array mutation) — only the state at the moment of crossing a boundary is checked.
31
+
7
32
  ## [0.1.1] - 2026-10-17
8
33
 
9
34
  A real NestJS + TypeORM project was upgraded to 0.1.0 and its full test suite rerun, surfacing two bugs in the coverage this release had just added.
@@ -266,12 +266,18 @@ function getUnsupportedMemberReason(typescript, node, enforcePrivate) {
266
266
  const isOnlyPrivate = typescript.isPropertyDeclaration(node)
267
267
  && (modifierFlags & typescript.ModifierFlags.Private) !== 0
268
268
  && (modifierFlags & (typescript.ModifierFlags.Protected | typescript.ModifierFlags.Static)) === 0;
269
+ // A plain `static` field (no private/protected) is guarded through a
270
+ // `static { ... }` initializer block, where `this` is the class itself.
271
+ const isOnlyStatic = typescript.isPropertyDeclaration(node)
272
+ && (modifierFlags & typescript.ModifierFlags.Static) !== 0
273
+ && (modifierFlags & (typescript.ModifierFlags.Private | typescript.ModifierFlags.Protected)) === 0;
269
274
  if ((modifierFlags &
270
275
  (typescript.ModifierFlags.Private |
271
276
  typescript.ModifierFlags.Protected |
272
277
  typescript.ModifierFlags.Static)) !==
273
278
  0 &&
274
- !(enforcePrivate && isOnlyPrivate)) {
279
+ !(enforcePrivate && isOnlyPrivate) &&
280
+ !isOnlyStatic) {
275
281
  return 'Private, protected, and static members require class-specific instrumentation.';
276
282
  }
277
283
  // enforcePrivate rewrites a private field into a `#name` accessor pair, which
@@ -1 +1 @@
1
- {"version":3,"file":"analyze-project.js","sourceRoot":"","sources":["../../../src/compiler/analysis/analyze-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze-project.js","sourceRoot":"","sources":["../../../src/compiler/analysis/analyze-project.ts"],"names":[],"mappings":"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"}
@@ -58,12 +58,39 @@ export declare class TypeSchemaResolver {
58
58
  */
59
59
  private _isPureFunction;
60
60
  private _isGlobalDate;
61
+ /**
62
+ * Same heuristic as {@link _isGlobalDate}: the built-in collection interfaces
63
+ * live in TypeScript lib files (`hasNoDefaultLib === true`), so a user type
64
+ * that merely shares a name is not matched. `WeakMap`/`WeakSet` are
65
+ * deliberately out of scope and stay unsupported.
66
+ */
67
+ private _getGlobalCollectionKind;
61
68
  private _resolveDefinitionOrCompound;
62
69
  private _resolveComposite;
63
70
  private _expandIntersectionObjectReference;
64
71
  private _resolveTuple;
65
72
  private _resolveArray;
73
+ /**
74
+ * `Map<K, V>` and `ReadonlyMap<K, V>`: both key and value are resolved and
75
+ * validated per entry. Mutations through `.set()` after validation are not
76
+ * intercepted (see guards.ts).
77
+ */
78
+ private _resolveMap;
79
+ /**
80
+ * `Set<T>` and `ReadonlySet<T>`: each item is resolved and validated.
81
+ * Mutations through `.add()` after validation are not intercepted.
82
+ */
83
+ private _resolveSet;
66
84
  private _resolveObject;
85
+ /**
86
+ * True only for a `readonly` member of an interface or type literal
87
+ * (`ts.PropertySignature`). Class fields are deliberately excluded: they are
88
+ * covered by `enforceReadonly`, which locks them after construction.
89
+ * Known limitation: a `readonly` introduced by a mapped type such as
90
+ * `Readonly<T>` is not detected, because the mapped symbol's value declaration
91
+ * is the original (mutable) member.
92
+ */
93
+ private _isReadonlyPropertySignature;
67
94
  /**
68
95
  * Mirrors the transformer's `isOnlyPrivateField` rule: with enforcePrivate,
69
96
  * a plain `private` PropertyDeclaration with an identifier name (not
@@ -1 +1 @@
1
- {"version":3,"file":"type-schema-resolver.d.ts","sourceRoot":"","sources":["../../../src/compiler/analysis/type-schema-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAwB,MAAM,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAetE,qBAAa,kBAAkB;IAS3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAVlC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAwC;IAC/E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsB;IAC5D,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAgC;gBAG3D,WAAW,EAAE,cAAc,YAAY,CAAC,EACxC,QAAQ,EAAE,EAAE,CAAC,WAAW,EACxB,eAAe,GAAE,OAAe;IAG5C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,gBAAgB;IAIvD,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIzD;;;;;OAKG;IACI,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,SAAS;IAIpE,OAAO,CAAC,YAAY;IAwDpB,OAAO,CAAC,kBAAkB;IAsE1B;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,mBAAmB;IA8B3B;;;;;OAKG;IACH;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,cAAc;IAOtB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,4BAA4B;IA6CpC,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,kCAAkC;IAQ1C,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,cAAc;IAuFtB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,YAAY;CAGrB"}
1
+ {"version":3,"file":"type-schema-resolver.d.ts","sourceRoot":"","sources":["../../../src/compiler/analysis/type-schema-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAwB,MAAM,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAkBtE,qBAAa,kBAAkB;IAS3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAVlC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAwC;IAC/E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;IAC/D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAsB;IAC5D,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAgC;gBAG3D,WAAW,EAAE,cAAc,YAAY,CAAC,EACxC,QAAQ,EAAE,EAAE,CAAC,WAAW,EACxB,eAAe,GAAE,OAAe;IAG5C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,gBAAgB;IAIvD,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIzD;;;;;OAKG;IACI,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,SAAS;IAIpE,OAAO,CAAC,YAAY;IAqEpB,OAAO,CAAC,kBAAkB;IAsE1B;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,mBAAmB;IA8B3B;;;;;OAKG;IACH;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,cAAc;IAOtB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,4BAA4B;IA6CpC,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,kCAAkC;IAQ1C,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,aAAa;IAmBrB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAoBnB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,cAAc;IAwFtB;;;;;;;OAOG;IACH,OAAO,CAAC,4BAA4B;IAUpC;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,+BAA+B;IAgBvC,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,YAAY;CAGrB"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypeSchemaResolver = void 0;
4
4
  const ALIAS_LIMIT_REASON = 'The value is validated at the typed boundary, but mutations through external aliases can escape.';
5
+ const MAP_NAMES = new Set(['Map', 'ReadonlyMap']);
6
+ const SET_NAMES = new Set(['Set', 'ReadonlySet']);
5
7
  function escapeRegExp(text) {
6
8
  return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
7
9
  }
@@ -69,6 +71,15 @@ class TypeSchemaResolver {
69
71
  if (this._checker.isArrayType(type)) {
70
72
  return this._resolveDefinitionOrCompound(type, node, canCreateDefinition, () => this._resolveArray(type, node));
71
73
  }
74
+ // Map/Set carry TypeFlags.Object like any interface, so they must be
75
+ // detected here, before the generic structural branch below.
76
+ const collectionKind = this._getGlobalCollectionKind(type);
77
+ if (collectionKind === 'map') {
78
+ return this._resolveDefinitionOrCompound(type, node, canCreateDefinition, () => this._resolveMap(type, node));
79
+ }
80
+ if (collectionKind === 'set') {
81
+ return this._resolveDefinitionOrCompound(type, node, canCreateDefinition, () => this._resolveSet(type, node));
82
+ }
72
83
  if ((type.flags & this._typescript.TypeFlags.Object) !== 0) {
73
84
  return this._resolveDefinitionOrCompound(type, node, canCreateDefinition, () => this._resolveObject(type, node));
74
85
  }
@@ -267,6 +278,25 @@ class TypeSchemaResolver {
267
278
  }
268
279
  return (symbol.getDeclarations() ?? []).some((declaration) => declaration.getSourceFile().hasNoDefaultLib);
269
280
  }
281
+ /**
282
+ * Same heuristic as {@link _isGlobalDate}: the built-in collection interfaces
283
+ * live in TypeScript lib files (`hasNoDefaultLib === true`), so a user type
284
+ * that merely shares a name is not matched. `WeakMap`/`WeakSet` are
285
+ * deliberately out of scope and stay unsupported.
286
+ */
287
+ _getGlobalCollectionKind(type) {
288
+ const symbol = type.getSymbol();
289
+ if (symbol === undefined) {
290
+ return undefined;
291
+ }
292
+ const name = symbol.getName();
293
+ const kind = MAP_NAMES.has(name) ? 'map' : SET_NAMES.has(name) ? 'set' : undefined;
294
+ if (kind === undefined) {
295
+ return undefined;
296
+ }
297
+ const isLibDeclaration = (symbol.getDeclarations() ?? []).some((declaration) => declaration.getSourceFile().hasNoDefaultLib);
298
+ return isLibDeclaration ? kind : undefined;
299
+ }
270
300
  _resolveDefinitionOrCompound(type, node, canCreateDefinition, resolveCompound) {
271
301
  const definitionName = canCreateDefinition ? this._getDefinitionName(type, node) : undefined;
272
302
  if (definitionName === undefined) {
@@ -370,6 +400,49 @@ class TypeSchemaResolver {
370
400
  reason: ALIAS_LIMIT_REASON,
371
401
  };
372
402
  }
403
+ /**
404
+ * `Map<K, V>` and `ReadonlyMap<K, V>`: both key and value are resolved and
405
+ * validated per entry. Mutations through `.set()` after validation are not
406
+ * intercepted (see guards.ts).
407
+ */
408
+ _resolveMap(type, node) {
409
+ const [keyType, valueType] = this._checker.getTypeArguments(type);
410
+ if (keyType === undefined || valueType === undefined) {
411
+ return this._unsupported('Map key and value types could not be determined.');
412
+ }
413
+ const keyResolution = this._resolveType(keyType, node, true);
414
+ if (keyResolution.schema === undefined) {
415
+ return this._unsupported(`Map key is unsupported: ${keyResolution.reason ?? 'unknown type limit'}`);
416
+ }
417
+ const valueResolution = this._resolveType(valueType, node, true);
418
+ if (valueResolution.schema === undefined) {
419
+ return this._unsupported(`Map value is unsupported: ${valueResolution.reason ?? 'unknown type limit'}`);
420
+ }
421
+ return {
422
+ status: 'partial',
423
+ schema: { kind: 'map', key: keyResolution.schema, value: valueResolution.schema },
424
+ reason: ALIAS_LIMIT_REASON,
425
+ };
426
+ }
427
+ /**
428
+ * `Set<T>` and `ReadonlySet<T>`: each item is resolved and validated.
429
+ * Mutations through `.add()` after validation are not intercepted.
430
+ */
431
+ _resolveSet(type, node) {
432
+ const [itemType] = this._checker.getTypeArguments(type);
433
+ if (itemType === undefined) {
434
+ return this._unsupported('Set item type could not be determined.');
435
+ }
436
+ const itemResolution = this._resolveType(itemType, node, true);
437
+ if (itemResolution.schema === undefined) {
438
+ return this._unsupported(`Set item is unsupported: ${itemResolution.reason ?? 'unknown type limit'}`);
439
+ }
440
+ return {
441
+ status: 'partial',
442
+ schema: { kind: 'set', item: itemResolution.schema },
443
+ reason: ALIAS_LIMIT_REASON,
444
+ };
445
+ }
373
446
  _resolveObject(type, node) {
374
447
  if (type.getCallSignatures().length > 0 || type.getConstructSignatures().length > 0) {
375
448
  return this._unsupported('Callable and constructable contracts are not represented by object schemas.');
@@ -418,6 +491,7 @@ class TypeSchemaResolver {
418
491
  ...(this._hasDefiniteAssignmentAssertion(property)
419
492
  ? { optional: true, deferredAssignment: true }
420
493
  : {}),
494
+ ...(this._isReadonlyPropertySignature(property) ? { readonly: true } : {}),
421
495
  },
422
496
  ]);
423
497
  }
@@ -442,6 +516,21 @@ class TypeSchemaResolver {
442
516
  : ALIAS_LIMIT_REASON,
443
517
  };
444
518
  }
519
+ /**
520
+ * True only for a `readonly` member of an interface or type literal
521
+ * (`ts.PropertySignature`). Class fields are deliberately excluded: they are
522
+ * covered by `enforceReadonly`, which locks them after construction.
523
+ * Known limitation: a `readonly` introduced by a mapped type such as
524
+ * `Readonly<T>` is not detected, because the mapped symbol's value declaration
525
+ * is the original (mutable) member.
526
+ */
527
+ _isReadonlyPropertySignature(property) {
528
+ const declaration = property.valueDeclaration;
529
+ if (declaration === undefined || !this._typescript.isPropertySignature(declaration)) {
530
+ return false;
531
+ }
532
+ return ((this._typescript.getCombinedModifierFlags(declaration) & this._typescript.ModifierFlags.Readonly) !== 0);
533
+ }
445
534
  /**
446
535
  * Mirrors the transformer's `isOnlyPrivateField` rule: with enforcePrivate,
447
536
  * a plain `private` PropertyDeclaration with an identifier name (not
@@ -1 +1 @@
1
- {"version":3,"file":"type-schema-resolver.js","sourceRoot":"","sources":["../../../src/compiler/analysis/type-schema-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-schema-resolver.js","sourceRoot":"","sources":["../../../src/compiler/analysis/type-schema-resolver.ts"],"names":[],"mappings":"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"}
@@ -382,6 +382,10 @@ function visitClassExpression(node, state, factory, typescript, visitor, context
382
382
  }
383
383
  function visitClassMembers(node, state, factory, typescript, visitor, context) {
384
384
  const guards = [];
385
+ // Static fields belong to the class, not to an instance, so their guards are
386
+ // installed in a `static { ... }` block (where `this` is the class) instead of
387
+ // the constructor.
388
+ const staticGuards = [];
385
389
  const visitedMembers = [];
386
390
  const privateInitStatements = [];
387
391
  const privateLockStatements = [];
@@ -405,7 +409,7 @@ function visitClassMembers(node, state, factory, typescript, visitor, context) {
405
409
  continue;
406
410
  }
407
411
  const descriptor = getDescriptorForNode(member, state, typescript, 'property');
408
- const transformed = visitPropertyDeclaration(member, descriptor, guards, state, factory, typescript, visitor, context);
412
+ const transformed = visitPropertyDeclaration(member, descriptor, hasModifier(typescript, member, typescript.SyntaxKind.StaticKeyword) ? staticGuards : guards, state, factory, typescript, visitor, context);
409
413
  if (transformed !== undefined) {
410
414
  visitedMembers.push(transformed);
411
415
  }
@@ -419,6 +423,10 @@ function visitClassMembers(node, state, factory, typescript, visitor, context) {
419
423
  }
420
424
  visitedMembers.push((typescript.visitNode(member, visitor, isClassElement) ?? member));
421
425
  }
426
+ const staticGuardBlock = createStaticFieldGuardBlock(staticGuards, state, factory);
427
+ if (staticGuardBlock !== undefined) {
428
+ visitedMembers.push(staticGuardBlock);
429
+ }
422
430
  if (guards.length === 0 && privateInitStatements.length === 0 && privateLockStatements.length === 0) {
423
431
  return visitedMembers;
424
432
  }
@@ -463,6 +471,25 @@ function createRequiredFieldFinalizeStatements(node, guards, state, factory, typ
463
471
  factory.createIfStatement(createNewTargetIsClassCheck(factory, typescript, node.name), factory.createBlock(lockCalls, true)),
464
472
  ];
465
473
  }
474
+ /**
475
+ * Builds a `static { ... }` block that installs guards for the class's own
476
+ * `static` fields. Inside a static block `this` is the class constructor, so
477
+ * the same install/lock calls used for instance fields apply unchanged. The
478
+ * required-field lock is applied unconditionally: static blocks run exactly
479
+ * once, when the class is defined, so there is no subclass construction that
480
+ * could need the deferred `new.target` check used for instance fields.
481
+ */
482
+ function createStaticFieldGuardBlock(guards, state, factory) {
483
+ if (guards.length === 0) {
484
+ return undefined;
485
+ }
486
+ const statements = [
487
+ ...guards.map((guard) => createInstallFieldGuard(factory, state, guard)),
488
+ ...guards.filter((guard) => guard.readonlyField).map((guard) => createLockReadonlyFieldCall(factory, state, guard)),
489
+ ...guards.filter((guard) => guard.requiredField).map((guard) => createLockRequiredFieldCall(factory, state, guard)),
490
+ ];
491
+ return factory.createClassStaticBlockDeclaration(factory.createBlock(statements, true));
492
+ }
466
493
  /**
467
494
  * Converts a TypeScript `private` field into a real ECMAScript `#private`
468
495
  * field. Unlike a guarded public field (installed reflectively at runtime
@@ -550,7 +577,25 @@ function visitPropertyDeclaration(node, descriptor, guards, state, factory, type
550
577
  key,
551
578
  initialized: initializer !== undefined,
552
579
  schema: descriptor.resolution.schema,
553
- readonlyField: enforceReadonly && hasModifier(typescript, node, typescript.SyntaxKind.ReadonlyKeyword),
580
+ // Only a BARE field (no `?`, no `!`) is safe to lock as readonly right
581
+ // after construction. TypeScript's own `strictPropertyInitialization`
582
+ // already guarantees a bare field has a real value by the time any
583
+ // constructor (synthesized or user-written) finishes — either an
584
+ // inline initializer or a genuine constructor-body assignment, both of
585
+ // which run before the lock. `?` and `!` both mean the opposite: the
586
+ // field may legitimately still be unset (or only "promised" to be set
587
+ // later) when construction completes, because the author is relying on
588
+ // something OUTSIDE the constructor to assign it — the exact pattern
589
+ // NestJS's `plainToInstance`/class-transformer relies on for a DTO
590
+ // with no constructor: `new Dto()`, then `instance.field = value` from
591
+ // the outside, for every field, required or optional. Locking either
592
+ // kind at "end of construction" — which is effectively "immediately"
593
+ // for a class with no user constructor body — would make that
594
+ // external assignment throw READONLY_PROPERTY before it ever runs.
595
+ readonlyField: enforceReadonly
596
+ && hasModifier(typescript, node, typescript.SyntaxKind.ReadonlyKeyword)
597
+ && node.questionToken === undefined
598
+ && node.exclamationToken === undefined,
554
599
  // Only a bare field (no `?` and no `!`) is required: `!` is a definite
555
600
  // assignment assertion and the field is tolerated as absent until assigned.
556
601
  requiredField: node.questionToken === undefined && node.exclamationToken === undefined,
@@ -989,8 +1034,10 @@ function getReturnSchema(node, descriptor, isAsync, checker, state, typescript)
989
1034
  return resolution.schema;
990
1035
  }
991
1036
  function getUnsupportedFieldReason(typescript, node, enforceReadonly) {
992
- if (hasModifier(typescript, node, typescript.SyntaxKind.StaticKeyword)) {
993
- return 'Static fields do not have an instance guard installation point.';
1037
+ if (hasModifier(typescript, node, typescript.SyntaxKind.StaticKeyword) &&
1038
+ (hasModifier(typescript, node, typescript.SyntaxKind.PrivateKeyword) ||
1039
+ hasModifier(typescript, node, typescript.SyntaxKind.ProtectedKeyword))) {
1040
+ return 'Static private and protected fields require class-specific instrumentation.';
994
1041
  }
995
1042
  if (typescript.isPrivateIdentifier(node.name)) {
996
1043
  return '#private fields cannot be replaced with public property descriptors.';