ioc-manifest 1.1.5 → 1.2.1

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/README.md CHANGED
@@ -344,7 +344,7 @@ Under each contract name, keys are implementation names from discovery (`buildFo
344
344
 
345
345
  ### `lifetimeMarkers`
346
346
 
347
- Declare marker interfaces that map to Awilix lifetimes. Any factory whose return type is assignable to a marker inherits that lifetime automatically.
347
+ Declare marker interfaces that map to Awilix lifetimes. Any factory whose return type **declares** heritage to a marker (via `extends` or a type-alias `&` intersection) inherits that lifetime automatically.
348
348
 
349
349
  ```ts
350
350
  lifetimeMarkers: {
@@ -355,7 +355,7 @@ lifetimeMarkers: {
355
355
 
356
356
  Keys are interface or type-alias names visible in the package's TypeScript program at codegen. Values are `singleton`, `scoped`, or `transient`. An empty object `{}` skips marker analysis.
357
357
 
358
- > ⚠️ Markers must be **branded interfaces** with at least one distinguishing property. An empty marker (`interface IScoped {}`) is structurally assignable from every object type and will tag every factory in the package. See [Lifetime markers](#lifetime-markers) for the branded pattern.
358
+ Markers match by **declared inheritance**, not structural shape. Use `extends IScoped` on service or contract interfaces (or `type Foo = Bar & IScoped`). Empty marker interfaces are fine. See [Lifetime markers](#lifetime-markers).
359
359
 
360
360
  **Lifetime precedence** (highest first):
361
361
 
@@ -699,25 +699,19 @@ The basics — factory discovery, typed cradle, automatic collections — cover
699
699
 
700
700
  ### Lifetime markers
701
701
 
702
- When services are organized by domain (`src/users/`, `src/orders/`) rather than by lifetime category, folder-scoped lifetimes fit poorly. **Lifetime markers** express cross-cutting lifetime policy via marker interfaces — the same assignability machinery groups use.
702
+ When services are organized by domain (`src/users/`, `src/orders/`) rather than by lifetime category, folder-scoped lifetimes fit poorly. **Lifetime markers** express cross-cutting lifetime policy via marker interfaces — the same **nominal** membership rules groups use (declared `extends`, not structural assignability).
703
703
 
704
704
  #### Defining a marker
705
705
 
706
- A marker is an interface with at least one distinguishing property. **An empty interface (`interface IScoped {}`) will not work** it's structurally assignable from any object type, so it would tag every factory in the package with the marker's lifetime. Brand the marker explicitly:
706
+ A marker is typically an empty interface (or a type alias you intersect with). Selective matching comes from **where you attach `extends`**, not from branding:
707
707
 
708
708
  ```ts
709
709
  // shared types
710
- export interface IScoped {
711
- readonly __iocLifetimeScoped: true;
712
- }
710
+ export interface IScoped {}
713
711
 
714
- export interface ITransient {
715
- readonly __iocLifetimeTransient: true;
716
- }
712
+ export interface ITransient {}
717
713
  ```
718
714
 
719
- The branding property is a compile-time tag. It never appears at runtime — your implementations satisfy it via the type system without setting the field on the actual object.
720
-
721
715
  #### Declaring markers
722
716
 
723
717
  Map marker types to lifetimes in `ioc.config`:
@@ -739,7 +733,7 @@ Three attachment points, in order of locality. The pattern that fits your code b
739
733
 
740
734
  ```ts
741
735
  export interface RequestTracingLogger extends LoggingService, IScoped {
742
- readonly __iocLifetimeScoped: true;
736
+ ping: () => string;
743
737
  }
744
738
  ```
745
739
 
@@ -747,7 +741,6 @@ export interface RequestTracingLogger extends LoggingService, IScoped {
747
741
 
748
742
  ```ts
749
743
  export interface LoggingService extends IScoped {
750
- readonly __iocLifetimeScoped: true;
751
744
  log: (msg: string) => void;
752
745
  }
753
746
  ```
@@ -756,7 +749,6 @@ export interface LoggingService extends IScoped {
756
749
 
757
750
  ```ts
758
751
  export interface DiscountStrategy extends IScoped {
759
- readonly __iocLifetimeScoped: true;
760
752
  applies: (order: Order) => boolean;
761
753
  calculate: (order: Order) => number;
762
754
  }
@@ -804,7 +796,7 @@ Per-implementation overrides in `registrations` and lifetime markers take preced
804
796
 
805
797
  ### Groups
806
798
 
807
- Groups let you collect implementations across contracts by their assignability to a base type. There are two kinds — `collection` and `object` — and they solve different real-world problems.
799
+ Groups collect implementations whose **contract types declare** `extends` on a shared base type (nominal membership — same rules as lifetime markers). There are two kinds — `collection` and `object` — and they solve different real-world problems. A group with no local members emits `[ioc-warn]` but still generates; members may come from other composed packages.
808
800
 
809
801
  #### Collection groups: the strategy pattern
810
802
 
@@ -834,7 +826,7 @@ groups: {
834
826
  },
835
827
  ```
836
828
 
837
- Now `container.resolve("discountStrategies")` gives you `ReadonlyArray<DiscountStrategy>` — every implementation that's assignable to the base type, discovered automatically. Your strategy runner just iterates through the array:
829
+ Now `container.resolve("discountStrategies")` gives you `ReadonlyArray<DiscountStrategy>` — every implementation whose contract type declares `extends DiscountStrategy`, discovered automatically. Your strategy runner just iterates through the array:
838
830
 
839
831
  ```ts
840
832
  type PricingEngineDeps = {
@@ -936,7 +928,9 @@ Either way, factory source code doesn't change.
936
928
 
937
929
  **Library-mode invocation of `ioc validate`** — prints an informational message and exits 0. Validate is a cross-manifest tool; a library has no cross-manifest concerns to validate.
938
930
 
939
- **Every factory in the package got the same lifetime** — your marker interface is empty (`interface IScoped {}`), so it matches every object type. Add a distinguishing property like `readonly __iocLifetimeScoped: true` to the marker. See [Lifetime markers](#lifetime-markers).
931
+ **My factory isn't in the group (or didn't get the marker lifetime)** — membership is **nominal**: the contract or return type must declare `extends YourBase` (or `type Foo = Bar & YourMarker`). Structural similarity is not enough. Common mistakes: forgetting `extends` on the service interface; using a union return type such as `Foo | undefined` on the contract unions are not heritage, so `type Contract = Impl | undefined` will not join a group whose base is `Impl` unless you use `interface Contract extends Impl` instead.
932
+
933
+ **Every factory in the package got the same lifetime** (v1.1.x and earlier) — that was structural matching on empty markers. Upgrade to v1.2.0+ and use `extends` on the types that should be scoped; empty markers are safe when inheritance is declared explicitly.
940
934
 
941
935
  ---
942
936
 
@@ -1 +1 @@
1
- {"version":3,"file":"resolveLifetimeMarkers.d.ts","sourceRoot":"","sources":["../../src/generator/resolveLifetimeMarkers.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAClE,oBAAoB,EAAE,CACpB,aAAa,EAAE,EAAE,CAAC,IAAI,EACtB,MAAM,EAAE,sBAAsB,KAC3B,OAAO,CAAC;CACd,CAAC;AAIF,eAAO,MAAM,wBAAwB,GACnC,SAAS,iBAAiB,KACzB,MAAuD,CAAC;AAgC3D,eAAO,MAAM,0BAA0B,GACrC,SAAS,EAAE,CAAC,OAAO,EACnB,iBAAiB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,KAC3C,SAAS,sBAAsB,EAiBjC,CAAC;AAyEF,MAAM,MAAM,yCAAyC,GAAG;IACtD,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,0DAA0D;IAC1D,IAAI,CAAC,EAAE,4BAA4B,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,GAC7C,WAAW,SAAS,iBAAiB,EAAE,EACvC,iBAAiB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EACxD,SAAS,yCAAyC,KACjD,WAAW,CAAC,MAAM,EAAE,WAAW,CAqEjC,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,mCAAmC,GAC9C,SAAS,EAAE,CAAC,OAAO,EACnB,iBAAiB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,KACvD,IAQF,CAAC"}
1
+ {"version":3,"file":"resolveLifetimeMarkers.d.ts","sourceRoot":"","sources":["../../src/generator/resolveLifetimeMarkers.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAM1D,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAClE,oBAAoB,EAAE,CACpB,aAAa,EAAE,EAAE,CAAC,IAAI,EACtB,MAAM,EAAE,sBAAsB,KAC3B,OAAO,CAAC;CACd,CAAC;AAIF,eAAO,MAAM,wBAAwB,GACnC,SAAS,iBAAiB,KACzB,MAAuD,CAAC;AAgC3D,eAAO,MAAM,0BAA0B,GACrC,SAAS,EAAE,CAAC,OAAO,EACnB,iBAAiB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,KAC3C,SAAS,sBAAsB,EAiBjC,CAAC;AA0EF,MAAM,MAAM,yCAAyC,GAAG;IACtD,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,0DAA0D;IAC1D,IAAI,CAAC,EAAE,4BAA4B,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kCAAkC,GAC7C,WAAW,SAAS,iBAAiB,EAAE,EACvC,iBAAiB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,EACxD,SAAS,yCAAyC,KACjD,WAAW,CAAC,MAAM,EAAE,WAAW,CAqEjC,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,mCAAmC,GAC9C,SAAS,EAAE,CAAC,OAAO,EACnB,iBAAiB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,SAAS,KACvD,IAQF,CAAC"}
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * @fileoverview Resolves factory lifetimes from `lifetimeMarkers` config via return-type
3
- * assignability. Reuses {@link resolveDeclaredBaseType} from groups; TypeScript's checker
4
- * handles inheritance walking with its own caching — user-facing cost is dominated by factory
5
- * discovery, not marker checks.
3
+ * nominal heritage matching. Reuses {@link resolveDeclaredBaseType} from groups; user-facing
4
+ * cost is dominated by factory discovery, not marker checks.
6
5
  */
7
6
  import path from "node:path";
8
- import { resolveDeclaredBaseType } from "../groups/baseTypeAssignability.js";
7
+ import { isNominallyAssignable, resolveDeclaredBaseType, } from "../groups/baseTypeAssignability.js";
9
8
  import { collectFileAnalysisForFactoryDiscovery } from "./discoverFactories/scanFactoryFile.js";
10
9
  import { resolveFactorySourceAbsPath, } from "./manifestPaths.js";
11
10
  const normalizePath = (p) => path.normalize(p);
@@ -48,7 +47,7 @@ const defaultMarkerResolutionDeps = (program, markers) => {
48
47
  }
49
48
  return marker;
50
49
  },
51
- isAssignableToMarker: (candidateType, marker) => checker.isTypeAssignableTo(candidateType, marker.type),
50
+ isAssignableToMarker: (candidateType, marker) => isNominallyAssignable(checker, candidateType, marker.type),
52
51
  };
53
52
  };
54
53
  const collectMatchingMarkers = (returnType, markers, deps) => {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveLifetimeMarkers.js","sourceRoot":"","sources":["../../src/generator/resolveLifetimeMarkers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveLifetimeMarkers.js","sourceRoot":"","sources":["../../src/generator/resolveLifetimeMarkers.ts"],"names":[],"mappings":"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"}
@@ -24,9 +24,14 @@ export declare const getContractDeclaredType: (checker: ts.TypeChecker, program:
24
24
  * Multiple declarations in different files are rejected as ambiguous.
25
25
  */
26
26
  export declare const resolveDeclaredBaseType: (program: ts.Program, checker: ts.TypeChecker, typeName: string) => BaseTypeResolution;
27
+ /**
28
+ * Whether `candidate` declares (transitively) nominal heritage to `base` via `extends` or
29
+ * type-alias intersection — not structural shape matching.
30
+ */
31
+ export declare const isNominallyAssignable: (checker: ts.TypeChecker, candidate: ts.Type, base: ts.Type) => boolean;
27
32
  /**
28
33
  * Whether `candidateType` is structurally assignable to a top-level type named `baseTypeName`
29
- * in the program (excluding node_modules). Used by lifetime marker resolution and groups.
34
+ * in the program (excluding node_modules). Used for contract-shape validation, not group membership.
30
35
  */
31
36
  export declare const isTypeAssignableToNamedBase: (checker: ts.TypeChecker, program: ts.Program, candidateType: ts.Type, baseTypeName: string) => {
32
37
  ok: true;
@@ -1 +1 @@
1
- {"version":3,"file":"baseTypeAssignability.d.ts","sourceRoot":"","sources":["../../src/groups/baseTypeAssignability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,yCAAyC,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;CAAE,GAC3B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,8BAA8B,GAAG;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAqBF,eAAO,MAAM,uBAAuB,GAClC,SAAS,EAAE,CAAC,WAAW,EACvB,SAAS,EAAE,CAAC,OAAO,EACnB,cAAc,MAAM,EACpB,UAAU,SAAS,eAAe,EAAE,EACpC,MAAM,4BAA4B,KACjC,EAAE,CAAC,IAAI,GAAG,SAwBZ,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,EAAE,CAAC,OAAO,EACnB,SAAS,EAAE,CAAC,WAAW,EACvB,UAAU,MAAM,KACf,kBAsCF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,EAAE,CAAC,WAAW,EACvB,SAAS,EAAE,CAAC,OAAO,EACnB,eAAe,EAAE,CAAC,IAAI,EACtB,cAAc,MAAM,KACnB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAS7C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,GAC7C,MAAM,4BAA4B,EAClC,MAAM,2BAA2B,KAChC,OAEyD,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,4CAA4C,GACvD,SAAS,EAAE,CAAC,WAAW,EACvB,SAAS,EAAE,CAAC,OAAO,EACnB,cAAc,MAAM,EACpB,UAAU,SAAS,eAAe,EAAE,EACpC,OAAO,SAAS,4BAA4B,EAAE,EAC9C,UAAU,EAAE,CAAC,IAAI,EACjB,aAAa,CACX,IAAI,EAAE,4BAA4B,EAClC,IAAI,EAAE,2BAA2B,KAC9B,OAAO,KACX,8BAA8B,EA4BhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6CAA6C,GACxD,SAAS,EAAE,CAAC,WAAW,EACvB,SAAS,EAAE,CAAC,OAAO,EACnB,cAAc,MAAM,EACpB,UAAU,SAAS,eAAe,EAAE,EACpC,OAAO,SAAS,4BAA4B,EAAE,EAC9C,UAAU,EAAE,CAAC,IAAI,KAChB,0BAA0B,EAgC5B,CAAC"}
1
+ {"version":3,"file":"baseTypeAssignability.d.ts","sourceRoot":"","sources":["../../src/groups/baseTypeAssignability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EACV,4BAA4B,EAC5B,2BAA2B,EAC5B,MAAM,yCAAyC,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;CAAE,GAC3B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,MAAM,8BAA8B,GAAG;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAqBF,eAAO,MAAM,uBAAuB,GAClC,SAAS,EAAE,CAAC,WAAW,EACvB,SAAS,EAAE,CAAC,OAAO,EACnB,cAAc,MAAM,EACpB,UAAU,SAAS,eAAe,EAAE,EACpC,MAAM,4BAA4B,KACjC,EAAE,CAAC,IAAI,GAAG,SAuBZ,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,EAAE,CAAC,OAAO,EACnB,SAAS,EAAE,CAAC,WAAW,EACvB,UAAU,MAAM,KACf,kBAsCF,CAAC;AA0HF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,SAAS,EAAE,CAAC,WAAW,EACvB,WAAW,EAAE,CAAC,IAAI,EAClB,MAAM,EAAE,CAAC,IAAI,KACZ,OAqBF,CAAC;AA8BF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GACtC,SAAS,EAAE,CAAC,WAAW,EACvB,SAAS,EAAE,CAAC,OAAO,EACnB,eAAe,EAAE,CAAC,IAAI,EACtB,cAAc,MAAM,KACnB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAS7C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,GAC7C,MAAM,4BAA4B,EAClC,MAAM,2BAA2B,KAChC,OAEyD,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,4CAA4C,GACvD,SAAS,EAAE,CAAC,WAAW,EACvB,SAAS,EAAE,CAAC,OAAO,EACnB,cAAc,MAAM,EACpB,UAAU,SAAS,eAAe,EAAE,EACpC,OAAO,SAAS,4BAA4B,EAAE,EAC9C,UAAU,EAAE,CAAC,IAAI,EACjB,aAAa,CACX,IAAI,EAAE,4BAA4B,EAClC,IAAI,EAAE,2BAA2B,KAC9B,OAAO,KACX,8BAA8B,EA4BhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6CAA6C,GACxD,SAAS,EAAE,CAAC,WAAW,EACvB,SAAS,EAAE,CAAC,OAAO,EACnB,cAAc,MAAM,EACpB,UAAU,SAAS,eAAe,EAAE,EACpC,OAAO,SAAS,4BAA4B,EAAE,EAC9C,UAAU,EAAE,CAAC,IAAI,KAChB,0BAA0B,EAgC5B,CAAC"}
@@ -30,9 +30,8 @@ export const getContractDeclaredType = (checker, program, generatedDir, scanDirs
30
30
  return undefined;
31
31
  }
32
32
  const declared = checker.getDeclaredTypeOfSymbol(sym);
33
- // Strip `null` / `undefined` from the declared contract type so group assignability matches the
34
- // underlying contract shape (e.g. `Foo | undefined` vs `Foo`) without treating the optional form
35
- // as a distinct assignability failure at the union level.
33
+ // Strip `null` / `undefined` for callers that need the non-nullish declared shape. Nominal
34
+ // group membership uses getContractDeclaredTypeRaw so union aliases do not confer heritage.
36
35
  return checker.getNonNullableType(declared);
37
36
  };
38
37
  /**
@@ -76,9 +75,117 @@ export const resolveDeclaredBaseType = (program, checker, typeName) => {
76
75
  }
77
76
  return { ok: true, type: loneType };
78
77
  };
78
+ const getNamedSymbolForType = (type) => {
79
+ const sym = type.aliasSymbol ?? type.getSymbol();
80
+ if (sym === undefined) {
81
+ return undefined;
82
+ }
83
+ if (sym.flags & ts.SymbolFlags.Transient) {
84
+ return undefined;
85
+ }
86
+ return sym;
87
+ };
88
+ const resolveCanonicalSymbol = (checker, sym) => {
89
+ let resolved = sym;
90
+ while ((resolved.flags & ts.SymbolFlags.Alias) !== 0) {
91
+ resolved = checker.getAliasedSymbol(resolved);
92
+ }
93
+ return resolved;
94
+ };
95
+ const typeNodeDeclaresNominalHeritageToBase = (checker, typeNode, baseSym, visited) => {
96
+ if (ts.isIntersectionTypeNode(typeNode)) {
97
+ for (const part of typeNode.types) {
98
+ if (typeNodeDeclaresNominalHeritageToBase(checker, part, baseSym, visited)) {
99
+ return true;
100
+ }
101
+ }
102
+ return false;
103
+ }
104
+ if (ts.isTypeReferenceNode(typeNode)) {
105
+ const heritageSym = checker.getSymbolAtLocation(typeNode.typeName);
106
+ if (heritageSym === undefined) {
107
+ return false;
108
+ }
109
+ return symbolDeclaresNominalHeritageToBase(checker, heritageSym, baseSym, visited);
110
+ }
111
+ return false;
112
+ };
113
+ const symbolDeclaresNominalHeritageToBase = (checker, candidateSym, baseSym, visited) => {
114
+ const canonicalCandidate = resolveCanonicalSymbol(checker, candidateSym);
115
+ const canonicalBase = resolveCanonicalSymbol(checker, baseSym);
116
+ if (canonicalCandidate === canonicalBase) {
117
+ return true;
118
+ }
119
+ if (visited.has(canonicalCandidate)) {
120
+ return false;
121
+ }
122
+ visited.add(canonicalCandidate);
123
+ for (const decl of canonicalCandidate.declarations ?? []) {
124
+ if (ts.isInterfaceDeclaration(decl)) {
125
+ for (const clause of decl.heritageClauses ?? []) {
126
+ for (const heritageType of clause.types) {
127
+ const heritageSym = checker.getSymbolAtLocation(heritageType.expression);
128
+ if (heritageSym === undefined) {
129
+ continue;
130
+ }
131
+ const canonicalHeritage = resolveCanonicalSymbol(checker, heritageSym);
132
+ if (canonicalHeritage === canonicalBase) {
133
+ return true;
134
+ }
135
+ if (symbolDeclaresNominalHeritageToBase(checker, canonicalHeritage, canonicalBase, visited)) {
136
+ return true;
137
+ }
138
+ }
139
+ }
140
+ continue;
141
+ }
142
+ if (ts.isTypeAliasDeclaration(decl)) {
143
+ if (typeNodeDeclaresNominalHeritageToBase(checker, decl.type, baseSym, visited)) {
144
+ return true;
145
+ }
146
+ }
147
+ }
148
+ return false;
149
+ };
150
+ /**
151
+ * Whether `candidate` declares (transitively) nominal heritage to `base` via `extends` or
152
+ * type-alias intersection — not structural shape matching.
153
+ */
154
+ export const isNominallyAssignable = (checker, candidate, base) => {
155
+ const baseSym = getNamedSymbolForType(base);
156
+ if (baseSym === undefined) {
157
+ return false;
158
+ }
159
+ const candidateSym = getNamedSymbolForType(candidate);
160
+ if (candidateSym === undefined) {
161
+ return false;
162
+ }
163
+ const canonicalBase = resolveCanonicalSymbol(checker, baseSym);
164
+ const canonicalCandidate = resolveCanonicalSymbol(checker, candidateSym);
165
+ if (canonicalCandidate === canonicalBase) {
166
+ return true;
167
+ }
168
+ const visited = new Set();
169
+ return symbolDeclaresNominalHeritageToBase(checker, canonicalCandidate, canonicalBase, visited);
170
+ };
171
+ const getContractDeclaredTypeRaw = (checker, program, generatedDir, scanDirs, plan) => {
172
+ const sourceFile = resolveContractTypeSourceFile(program, generatedDir, plan.contractTypeRelImport, scanDirs, plan.contractName);
173
+ if (sourceFile === undefined) {
174
+ return undefined;
175
+ }
176
+ const decl = getTopLevelTypeDeclaration(sourceFile, plan.contractName);
177
+ if (decl === undefined) {
178
+ return undefined;
179
+ }
180
+ const sym = checker.getSymbolAtLocation(decl.name);
181
+ if (sym === undefined) {
182
+ return undefined;
183
+ }
184
+ return checker.getDeclaredTypeOfSymbol(sym);
185
+ };
79
186
  /**
80
187
  * Whether `candidateType` is structurally assignable to a top-level type named `baseTypeName`
81
- * in the program (excluding node_modules). Used by lifetime marker resolution and groups.
188
+ * in the program (excluding node_modules). Used for contract-shape validation, not group membership.
82
189
  */
83
190
  export const isTypeAssignableToNamedBase = (checker, program, candidateType, baseTypeName) => {
84
191
  const resolved = resolveDeclaredBaseType(program, checker, baseTypeName);
@@ -108,11 +215,11 @@ export const shouldIncludeImplInCollectionGroup = (plan, impl) => impl.registrat
108
215
  export const collectImplementationMembersAssignableToBase = (checker, program, generatedDir, scanDirs, plans, baseType, filterImpl) => {
109
216
  const members = [];
110
217
  for (const plan of plans) {
111
- const contractType = getContractDeclaredType(checker, program, generatedDir, scanDirs, plan);
218
+ const contractType = getContractDeclaredTypeRaw(checker, program, generatedDir, scanDirs, plan);
112
219
  if (contractType === undefined) {
113
220
  continue;
114
221
  }
115
- if (!checker.isTypeAssignableTo(contractType, baseType)) {
222
+ if (!isNominallyAssignable(checker, contractType, baseType)) {
116
223
  continue;
117
224
  }
118
225
  for (const impl of plan.implementations) {
@@ -136,11 +243,11 @@ export const collectImplementationMembersAssignableToBase = (checker, program, g
136
243
  export const collectContractDefaultMembersAssignableToBase = (checker, program, generatedDir, scanDirs, plans, baseType) => {
137
244
  const members = [];
138
245
  for (const plan of plans) {
139
- const contractType = getContractDeclaredType(checker, program, generatedDir, scanDirs, plan);
246
+ const contractType = getContractDeclaredTypeRaw(checker, program, generatedDir, scanDirs, plan);
140
247
  if (contractType === undefined) {
141
248
  continue;
142
249
  }
143
- if (!checker.isTypeAssignableTo(contractType, baseType)) {
250
+ if (!isNominallyAssignable(checker, contractType, baseType)) {
144
251
  continue;
145
252
  }
146
253
  const defaultImpl = plan.implementations.find((impl) => impl.implementationName === plan.defaultImplementationName);
@@ -1 +1 @@
1
- {"version":3,"file":"baseTypeAssignability.js","sourceRoot":"","sources":["../../src/groups/baseTypeAssignability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseTypeAssignability.js","sourceRoot":"","sources":["../../src/groups/baseTypeAssignability.ts"],"names":[],"mappings":"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"}
@@ -42,10 +42,6 @@ export type GroupPlanIssue = {
42
42
  kind: "group_unknown_base_type";
43
43
  groupName: string;
44
44
  message: string;
45
- } | {
46
- kind: "group_no_matches";
47
- groupName: string;
48
- baseType: string;
49
45
  } | {
50
46
  kind: "group_duplicate_contract_key";
51
47
  groupName: string;
@@ -67,6 +63,7 @@ export declare const groupPlanToManifestNode: (plan: GroupPlan) => IocGroupNodeM
67
63
  export declare const groupPlanToManifestRoot: (plan: GroupPlan) => IocGroupRootManifest;
68
64
  export declare const formatGroupPlanIssue: (issue: GroupPlanIssue) => string;
69
65
  export declare const formatGroupPlanIssues: (issues: readonly GroupPlanIssue[]) => string;
66
+ export declare const formatEmptyGroupWarning: (groupName: string, baseType: string) => string;
70
67
  /**
71
68
  * Validates group definitions and emits the manifest subtree for generated `ioc-manifest.ts`.
72
69
  * Requires `discovery` (TypeScript program + `generatedDir` + `scanDirs`) whenever `groups` is set.
@@ -1 +1 @@
1
- {"version":3,"file":"resolveGroupPlan.d.ts","sourceRoot":"","sources":["../../src/groups/resolveGroupPlan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveGroupPlan.d.ts","sourceRoot":"","sources":["../../src/groups/resolveGroupPlan.ts"],"names":[],"mappings":"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"}
@@ -81,8 +81,6 @@ export const formatGroupPlanIssue = (issue) => {
81
81
  return `[ioc-config] groups.${JSON.stringify(issue.groupName)} must be { kind: "collection" | "object", baseType: string }`;
82
82
  case "group_unknown_base_type":
83
83
  return `[ioc-config] groups.${JSON.stringify(issue.groupName)}: ${issue.message}`;
84
- case "group_no_matches":
85
- return `[ioc-config] groups.${JSON.stringify(issue.groupName)}: no implementations found for base type ${JSON.stringify(issue.baseType)}`;
86
84
  case "group_duplicate_contract_key":
87
85
  return `[ioc-config] groups.${JSON.stringify(issue.groupName)}: duplicate contract key ${JSON.stringify(issue.contractKey)} in object group`;
88
86
  case "group_root_key_collision":
@@ -98,6 +96,11 @@ export const formatGroupPlanIssue = (issue) => {
98
96
  }
99
97
  };
100
98
  export const formatGroupPlanIssues = (issues) => issues.map((issue) => formatGroupPlanIssue(issue)).join("\n");
99
+ export const formatEmptyGroupWarning = (groupName, baseType) => `[ioc-warn] Group ${JSON.stringify(groupName)} base type ${JSON.stringify(baseType)} has no declared extenders in this package.\n` +
100
+ `The group will be empty. If you expected members, ensure your implementations declare \`extends ${baseType}\`.`;
101
+ const warnOnEmptyGroup = (groupName, baseType) => {
102
+ console.warn(formatEmptyGroupWarning(groupName, baseType));
103
+ };
101
104
  const runGroupPlan = (groups, plans, discovery) => {
102
105
  if (!isRecord(groups)) {
103
106
  return { ok: false, issues: [{ kind: "groups_not_object" }] };
@@ -149,10 +152,14 @@ const runGroupPlan = (groups, plans, discovery) => {
149
152
  if (entry.kind === "object") {
150
153
  const objectMembers = collectContractDefaultMembersAssignableToBase(checker, discovery.program, discovery.generatedDir, discovery.scanDirs, plans, resolvedBase.type);
151
154
  if (objectMembers.length === 0) {
152
- issues.push({
153
- kind: "group_no_matches",
155
+ warnOnEmptyGroup(groupName, entry.baseType);
156
+ reserved.add(groupName);
157
+ groupPlans.push({
154
158
  groupName,
159
+ kind: "object",
155
160
  baseType: entry.baseType,
161
+ baseTypeId: canonical.baseTypeId,
162
+ members: [],
156
163
  });
157
164
  continue;
158
165
  }
@@ -173,10 +180,14 @@ const runGroupPlan = (groups, plans, discovery) => {
173
180
  }
174
181
  const members = collectImplementationMembersAssignableToBase(checker, discovery.program, discovery.generatedDir, discovery.scanDirs, plans, resolvedBase.type, shouldIncludeImplInCollectionGroup);
175
182
  if (members.length === 0) {
176
- issues.push({
177
- kind: "group_no_matches",
183
+ warnOnEmptyGroup(groupName, entry.baseType);
184
+ reserved.add(groupName);
185
+ groupPlans.push({
178
186
  groupName,
187
+ kind: "collection",
179
188
  baseType: entry.baseType,
189
+ baseTypeId: canonical.baseTypeId,
190
+ members: [],
180
191
  });
181
192
  continue;
182
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolveGroupPlan.js","sourceRoot":"","sources":["../../src/groups/resolveGroupPlan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveGroupPlan.js","sourceRoot":"","sources":["../../src/groups/resolveGroupPlan.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,6CAA6C,EAC7C,4CAA4C,EAC5C,uBAAuB,EACvB,kCAAkC,GAGnC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,2CAA2C,GAI5C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAsDlC,MAAM,yBAAyB,GAAG,CAChC,KAA8C,EACjC,EAAE;IACf,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACrC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QAED,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAoC,EAAE,CACpE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAyB,EAAE,CACjE,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,QAAQ,CAAC;AAE/C,MAAM,uBAAuB,GAAG,CAC9B,SAAiB,EACjB,GAAY,EACgB,EAAE;IAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAE9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,CAC9C,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACpD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,IAAe,EACO,EAAE;IACxB,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,MAAM,GAAG,GACP,EAAE,CAAC;IAEL,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG;YACxB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,IAAe,EACO,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACvB,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,OAAO,EAAE,uBAAuB,CAAC,IAAI,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,CACrC,SAAiB,EACjB,OAA8C,EAGP,EAAE;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,8BAA8B;oBACpC,SAAS;oBACT,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAqB,EAAU,EAAE;IACpE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,mBAAmB;YACtB,OAAO,gDAAgD,CAAC;QAE1D,KAAK,qBAAqB;YACxB,OAAO,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,8DAA8D,CAAC;QAE9H,KAAK,yBAAyB;YAC5B,OAAO,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QAEpF,KAAK,8BAA8B;YACjC,OAAO,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC;QAE/I,KAAK,0BAA0B;YAC7B,OAAO,gCAAgC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC;QAEvH,KAAK,kCAAkC;YACrC,OAAO,gCAAgC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,gFAAgF,CAAC;QAEnJ,KAAK,iCAAiC;YACpC,OAAO,kLAAkL,CAAC;QAE5L,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,KAAK,CAAC;YAChC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAiC,EACzB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,SAAiB,EACjB,QAAgB,EACR,EAAE,CACV,oBAAoB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,+CAA+C;IAClI,mGAAmG,QAAQ,KAAK,CAAC;AAEnH,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,QAAgB,EAAQ,EAAE;IACrE,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,MAAe,EACf,KAA8C,EAC9C,SAAiD,EAGP,EAAE;IAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;IAChE,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,UAAU,GAAgB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzD,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,2CAA2C,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1E,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAClE,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GAAG,uBAAuB,CAC7C,SAAS,EACT,MAAM,CAAC,SAAS,CAAC,CAClB,CAAC;QACF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAuB,CAAC;QACtD,MAAM,SAAS,GAAG,0BAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEjF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,yBAAyB;gBAC/B,SAAS;gBACT,OAAO,EAAE,SAAS,CAAC,OAAO;aAC3B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,uBAAuB,CAC1C,SAAS,CAAC,OAAO,EACjB,OAAO,EACP,KAAK,CAAC,QAAQ,CACf,CAAC;QACF,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE;YAClC,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,8BAA8B,CAC5B,SAAS,CAAC,OAAO,EACjB,OAAO,EACP,SAAS,CAAC,UAAU,CACrB,CAAC;QAEN,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,yBAAyB;gBAC/B,SAAS;gBACT,OAAO,EAAE,YAAY,CAAC,OAAO;aAC9B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,6CAA6C,CACjE,OAAO,EACP,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,QAAQ,EAClB,KAAK,EACL,YAAY,CAAC,IAAI,CAClB,CAAC;YAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC5C,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACxB,UAAU,CAAC,IAAI,CAAC;oBACd,SAAS;oBACT,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,OAAO,EAAE,EAAE;iBACZ,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,8BAA8B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzB,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC;gBACd,SAAS;gBACT,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,4CAA4C,CAC1D,OAAO,EACP,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,QAAQ,EAClB,KAAK,EACL,YAAY,CAAC,IAAI,EACjB,kCAAkC,CACnC,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5C,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC;gBACd,SAAS;gBACT,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,UAAU,EAAE,SAAS,CAAC,UAAU;gBAChC,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxB,UAAU,CAAC,IAAI,CAAC;YACd,SAAS;YACT,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACnD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAAe,EACf,KAA8C,EAC9C,SAAiD,EACpB,EAAE;IAC/B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC5D,CAAC,CAAC;AAgBF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAe,EACf,KAA8C,EAC9C,SAAiD,EAC9B,EAAE;IACrB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ioc-manifest",
3
- "version": "1.1.5",
3
+ "version": "1.2.1",
4
4
  "description": "Build-time factory discovery and codegen: generates a typed Awilix (PROXY) registration manifest from TypeScript sources with ioc.config as the single policy surface.",
5
5
  "license": "MIT",
6
6
  "repository": {