ioc-manifest 1.4.1 → 1.5.0

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 (32) hide show
  1. package/README.md +86 -6
  2. package/dist/config/iocConfig.d.ts +4 -0
  3. package/dist/config/iocConfig.d.ts.map +1 -1
  4. package/dist/config/iocConfig.js +3 -0
  5. package/dist/config/iocConfig.js.map +1 -1
  6. package/dist/generator/analyzeDemandSupply/index.d.ts.map +1 -1
  7. package/dist/generator/analyzeDemandSupply/index.js +103 -13
  8. package/dist/generator/analyzeDemandSupply/index.js.map +1 -1
  9. package/dist/generator/analyzeDemandSupply/resolveIocGeneratedCradleIndexedAccess.d.ts +9 -0
  10. package/dist/generator/analyzeDemandSupply/resolveIocGeneratedCradleIndexedAccess.d.ts.map +1 -0
  11. package/dist/generator/analyzeDemandSupply/resolveIocGeneratedCradleIndexedAccess.js +122 -0
  12. package/dist/generator/analyzeDemandSupply/resolveIocGeneratedCradleIndexedAccess.js.map +1 -0
  13. package/dist/generator/discoverFactories/discoverFactories.d.ts.map +1 -1
  14. package/dist/generator/discoverFactories/discoverFactories.js +8 -4
  15. package/dist/generator/discoverFactories/discoverFactories.js.map +1 -1
  16. package/dist/generator/discoverFactories/inferFactoryDependencyContracts.d.ts +16 -0
  17. package/dist/generator/discoverFactories/inferFactoryDependencyContracts.d.ts.map +1 -1
  18. package/dist/generator/discoverFactories/inferFactoryDependencyContracts.js +29 -14
  19. package/dist/generator/discoverFactories/inferFactoryDependencyContracts.js.map +1 -1
  20. package/dist/generator/generateManifest.d.ts.map +1 -1
  21. package/dist/generator/generateManifest.js +6 -0
  22. package/dist/generator/generateManifest.js.map +1 -1
  23. package/dist/generator/resolveRegistrationPlan.d.ts.map +1 -1
  24. package/dist/generator/resolveRegistrationPlan.js +1 -1
  25. package/dist/generator/resolveRegistrationPlan.js.map +1 -1
  26. package/dist/generator/types.d.ts +3 -0
  27. package/dist/generator/types.d.ts.map +1 -1
  28. package/dist/generator/validateLifetimeInversionsAtCodegen.d.ts +10 -0
  29. package/dist/generator/validateLifetimeInversionsAtCodegen.d.ts.map +1 -0
  30. package/dist/generator/validateLifetimeInversionsAtCodegen.js +179 -0
  31. package/dist/generator/validateLifetimeInversionsAtCodegen.js.map +1 -0
  32. package/package.json +2 -2
package/README.md CHANGED
@@ -40,6 +40,7 @@ The approach is loosely inspired by [StructureMap](https://structuremap.github.i
40
40
  - **Externals are explicit** — every dependency a package expects from outside is tracked in a generated `IocExternals` interface
41
41
  - **Cross-package composition** — apps in a monorepo can compose manifests from multiple packages with no scanning across boundaries
42
42
  - **Compile-time satisfaction checks** — when composing, TypeScript fails compilation if any composed package's externals aren't satisfied
43
+ - **Lifetime-inversion safety** — generation fails when a longer-lived service would freeze a shorter-lived dependency (a singleton holding a scoped repository), catching a whole class of stale-state bugs statically
43
44
  - **`ioc validate`** — a CI-friendly command that reports every cross-manifest problem at once
44
45
  - **Works in dev and prod** — discovers from TypeScript source during development, and works just as well against a bundled single-file production build (see [Dev and production builds](#dev-and-production-builds))
45
46
 
@@ -341,12 +342,13 @@ registrations: {
341
342
 
342
343
  Under each contract name, keys are implementation names from discovery (`buildFoo` → `foo`). The reserved `$contract` key holds contract-level options.
343
344
 
344
- | Per-implementation field | Effect |
345
- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
346
- | `name` | Overrides the Awilix registration key |
347
- | `lifetime` | `"singleton"` \| `"scoped"` \| `"transient"` |
348
- | `default` | `true` to select this implementation as the contract default |
349
- | `source` | (app mode only) Resolve same-key conflicts across composed manifests. See [Cross-package composition](#cross-package-composition). |
345
+ | Per-implementation field | Effect |
346
+ | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
347
+ | `name` | Overrides the Awilix registration key |
348
+ | `lifetime` | `"singleton"` \| `"scoped"` \| `"transient"` |
349
+ | `default` | `true` to select this implementation as the contract default |
350
+ | `source` | (app mode only) Resolve same-key conflicts across composed manifests. See [Cross-package composition](#cross-package-composition). |
351
+ | `allowLifetimeInversion` | Opt out of the lifetime-inversion check for this implementation. `true` allows all shorter-lived dependencies; a `string[]` allows only the listed demanded keys. See [Lifetime inversion checks](#lifetime-inversion-checks). |
350
352
 
351
353
  | `$contract` field | Effect |
352
354
  | ----------------- | ----------------------------------------------------------------------------------------------- |
@@ -835,6 +837,50 @@ This came out of a real pattern: in a GraphQL API, services and repositories are
835
837
 
836
838
  Per-implementation overrides in `registrations` and lifetime markers take precedence over folder scope.
837
839
 
840
+ ### Lifetime inversion checks
841
+
842
+ Awilix lifetimes have an ordering: a `singleton` lives for the life of the container, a `scoped` instance lives for one scope (typically one request), a `transient` is rebuilt on every resolve. When a longer-lived registration depends on a shorter-lived one, the longer-lived service captures a single instance of that dependency at first construction and reuses it forever — quietly defeating the shorter lifetime.
843
+
844
+ The classic case: a `singleton` that depends on a `scoped` repository holding a per-request unit-of-work. The singleton is built once, captures one repository, and every later request writes through that first request's transaction. Nothing throws; the state just silently goes stale. The consumer doesn't even have to touch the scoped resource — holding something that holds it is enough.
845
+
846
+ `ioc generate` catches this statically. It walks every dependency edge over the resolved graph and flags any edge where the dependency is shorter-lived than the consumer:
847
+
848
+ - **`singleton → scoped`** is an **error** — generation fails. This includes a scoped dependency reached through a group (a group with a scoped member) or a scope-provided key (per-request, so effectively scoped). It is almost never intentional.
849
+ - **`singleton → transient`** and **`scoped → transient`** are **warnings** (`[ioc]`-prefixed). A singleton legitimately holding a transient factory it constructs from per use is a real pattern, so these surface for review without blocking.
850
+
851
+ The check resolves each demanded key precisely — a specific registration key, a contract's default slot, a collection, a group's members, or a scope-provided key — so it names the exact dependency rather than guessing across a contract's implementations. Findings aggregate: every warning prints, and if there are errors, generation throws once with the full list rather than failing on the first one.
852
+
853
+ A typical error:
854
+
855
+ ```
856
+ Lifetime inversion: 'grantSync' (singleton) depends on 'grantRepository' (scoped). A singleton freezes its scoped dependency at first construction, reusing it across all scopes. Register 'grantSync' as scoped (or shorter), or mark it intentional with registrations['Grant'].grantSync.allowLifetimeInversion.
857
+ ```
858
+
859
+ The usual fix is the obvious one — the consumer should be `scoped`:
860
+
861
+ ```ts
862
+ registrations: {
863
+ GrantSync: {
864
+ grantSync: { lifetime: "scoped" },
865
+ },
866
+ },
867
+ ```
868
+
869
+ **Intentional inversions.** If an inversion is deliberate — a singleton that holds a transient factory and constructs from it per call — opt out with `allowLifetimeInversion` on that implementation:
870
+
871
+ ```ts
872
+ registrations: {
873
+ ConnectionPool: {
874
+ // allow all shorter-lived deps for this implementation:
875
+ connectionPool: { allowLifetimeInversion: true },
876
+ // or allow only specific demanded keys (preferred):
877
+ // connectionPool: { allowLifetimeInversion: ["connectionFactory"] },
878
+ },
879
+ },
880
+ ```
881
+
882
+ Prefer the `string[]` form. `true` silences every inversion for that consumer — including ones you introduce later and didn't mean to. Listing the keys you're knowingly inverting keeps the rest of the check live. The field is config-only and never appears in the generated manifest.
883
+
838
884
  ### Groups
839
885
 
840
886
  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.
@@ -921,6 +967,38 @@ Now `container.resolve("readServices")` returns an object keyed by each contract
921
967
 
922
968
  The generator validates that group names don't collide with implementation keys, access keys, or collection keys. If a base type has no assignable implementations, generation fails with an actionable error. Cross-manifest group composition is covered in [Cross-package composition](#cross-package-composition).
923
969
 
970
+ #### Consuming a group from the same package
971
+
972
+ A factory can consume a group declared in its own package. The group's aggregate type — the array for a collection, the keyed object for an object group — is generated, so there's no hand-written type to import. You name it by indexing the generated cradle inside your deps type:
973
+
974
+ ```ts
975
+ import type { IocGeneratedCradle } from "./generated/ioc-registry.types.js";
976
+ import type { NotificationService } from "./channel-contracts.js";
977
+
978
+ type NotificationServiceDeps = {
979
+ channels: IocGeneratedCradle["channels"];
980
+ };
981
+
982
+ export const buildNotificationService = ({
983
+ channels,
984
+ }: NotificationServiceDeps): NotificationService => ({
985
+ notifyAll: (to) => {
986
+ channels.emailChannel.sendEmail(to);
987
+ channels.smsChannel.sendSms(to);
988
+ },
989
+ });
990
+ ```
991
+
992
+ This is the one sanctioned use of `IocGeneratedCradle` in a factory. The [named-deps-type rule](#1-create-factories) still holds: the parameter binds to a named type (`NotificationServiceDeps`), and `IocGeneratedCradle["channels"]` appears only as a _type reference inside it_, to name the otherwise-unnameable group type. You still cannot bind the parameter directly to the cradle (`({ channels }: IocGeneratedCradle)`).
993
+
994
+ For an object group, members are keyed by their convention name — `channels.emailChannel`, `channels.smsChannel`, the same registration keys derived from `buildEmailChannel` and `buildSmsChannel`. A collection group indexes to `ReadonlyArray<BaseType>` instead.
995
+
996
+ A few things work as you'd expect:
997
+
998
+ - **Aliased imports.** `import { IocGeneratedCradle as Cradle }`, then `Cradle["channels"]`, resolves identically.
999
+ - **Cold start.** The reference resolves from your source, not from a previously generated file — so first-run generation, or generation after deleting the generated directory, works. There's no chicken-and-egg dependency on prior output.
1000
+ - **Typos throw.** Indexing a key that is neither a registration nor a declared group — `IocGeneratedCradle["channel"]` when the group is `channels` — fails generation with a diagnostic naming the offending key, instead of silently resolving to `unknown`.
1001
+
924
1002
  ### Environment-specific configs
925
1003
 
926
1004
  The separation between factory code and `ioc.config.ts` makes it straightforward to swap implementations by environment. Your factories don't change — the config (or the set of composed manifests) is the only thing that differs.
@@ -973,6 +1051,8 @@ Either way, factory source code doesn't change.
973
1051
 
974
1052
  **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.
975
1053
 
1054
+ **A singleton silently reuses a per-request dependency** — if a `singleton` depends (directly or through a chain) on a `scoped` or scope-provided value, it captures one instance at first construction and never refreshes it; per-request state goes stale with no runtime error. `ioc generate` fails on `singleton → scoped` edges for exactly this reason. Make the consumer `scoped`, or mark deliberate cases with `allowLifetimeInversion`. See [Lifetime inversion checks](#lifetime-inversion-checks).
1055
+
976
1056
  ---
977
1057
 
978
1058
  ## Design philosophy
@@ -27,6 +27,10 @@ export type IocOverride = {
27
27
  * `'local'` or a package name from `composedManifests`.
28
28
  */
29
29
  source?: "local" | string;
30
+ /** Knowingly allow this implementation to depend on shorter-lived deps.
31
+ `true` suppresses all inversions for this consumer; a string[] suppresses
32
+ only those demanded keys (preferred — keeps other inversions visible). */
33
+ allowLifetimeInversion?: boolean | readonly string[];
30
34
  };
31
35
  export type IocRegistrationsPerContract = Record<string, IocOverride | IocContractMetadata>;
32
36
  export declare const parseContractLevelConfig: (entry: unknown, pathForError: string) => IocContractMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"iocConfig.d.ts","sourceRoot":"","sources":["../../src/config/iocConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/D,4GAA4G;AAC5G,eAAO,MAAM,uBAAuB,EAAG,WAAoB,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAC9C,MAAM,EACN,WAAW,GAAG,mBAAmB,CAClC,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,OAAO,OAAO,EACd,cAAc,MAAM,KACnB,mBA8BF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,aAAa,2BAA2B,GAAG,SAAS,EACpD,eAAe,MAAM,KACpB,mBAYF,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,2BAA2B,GACtC,OAAO,WAAW,GAAG,mBAAmB,KACvC,KAAK,IAAI,WAWX,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,aAAa,2BAA2B,GAAG,SAAS,EACpD,oBAAoB,MAAM,KACzB,WAAW,GAAG,SAYhB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;AAExE,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE;QACT,QAAQ,EAAE,oBAAoB,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,6FAA6F;QAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAC5D;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,KAAG,SAAmB,CAAC"}
1
+ {"version":3,"file":"iocConfig.d.ts","sourceRoot":"","sources":["../../src/config/iocConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/D,4GAA4G;AAC5G,eAAO,MAAM,uBAAuB,EAAG,WAAoB,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,uFAAuF;IACvF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B;;iFAE6E;IAC7E,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAC9C,MAAM,EACN,WAAW,GAAG,mBAAmB,CAClC,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,OAAO,OAAO,EACd,cAAc,MAAM,KACnB,mBA8BF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,aAAa,2BAA2B,GAAG,SAAS,EACpD,eAAe,MAAM,KACpB,mBAYF,CAAC;AAEF,6FAA6F;AAC7F,eAAO,MAAM,2BAA2B,GACtC,OAAO,WAAW,GAAG,mBAAmB,KACvC,KAAK,IAAI,WAcX,CAAC;AAEF,eAAO,MAAM,gCAAgC,GAC3C,aAAa,2BAA2B,GAAG,SAAS,EACpD,oBAAoB,MAAM,KACzB,WAAW,GAAG,SAYhB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;AAExE,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE;QACT,QAAQ,EAAE,oBAAoB,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,6FAA6F;QAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAC5D;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,QAAQ,SAAS,KAAG,SAAmB,CAAC"}
@@ -43,6 +43,9 @@ export const isIocImplementationOverride = (value) => {
43
43
  if ("name" in value || "lifetime" in value || "default" in value) {
44
44
  return true;
45
45
  }
46
+ if ("allowLifetimeInversion" in value) {
47
+ return true;
48
+ }
46
49
  if ("accessKey" in value) {
47
50
  return false;
48
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"iocConfig.js","sourceRoot":"","sources":["../../src/config/iocConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iocConfig.js","sourceRoot":"","sources":["../../src/config/iocConfig.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generator/analyzeDemandSupply/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,OAAO,KAAK,EACV,0BAA0B,EAI3B,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AA8GtF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,GAAG;IAC/D,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,SAAS,iBAAiB,EAAE,EACvC,SAAS,0BAA0B,KAClC,0BAkKF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generator/analyzeDemandSupply/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAarD,OAAO,KAAK,EACV,0BAA0B,EAI3B,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAsLtF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,GAAG;IAC/D,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,SAAS,iBAAiB,EAAE,EACvC,SAAS,0BAA0B,KAClC,0BA0PF,CAAC"}
@@ -3,6 +3,7 @@ import { collectFileAnalysisForFactoryDiscovery } from "../discoverFactories/sca
3
3
  import { resolveFactorySourceAbsPath, } from "../manifestPaths.js";
4
4
  import { emitTypeReference, formatTypeDisplay, isUnresolvableDepsPropertyType, tryEmitTypeReference, } from "./emitTypeReference.js";
5
5
  import { validateNamedDepsType } from "./enforceNamedDepsType.js";
6
+ import { depsPropertyTypeNodeByName, tryParseIocGeneratedCradleIndexedAccessKey, } from "./resolveIocGeneratedCradleIndexedAccess.js";
6
7
  const normalizePath = (p) => path.normalize(p);
7
8
  const typesMutuallyAgree = (checker, a, b) => checker.isTypeAssignableTo(a, b) && checker.isTypeAssignableTo(b, a);
8
9
  const collectLocalSupplierKeys = (factories, groupsManifest) => {
@@ -54,6 +55,50 @@ const formatUnresolvableDepsError = (projectRoot, loc, propName, detail) => {
54
55
  const rel = path.relative(projectRoot, abs).replace(/\\/g, "/");
55
56
  return `[ioc] Factory ${JSON.stringify(loc.exportName)} at ${rel}:${loc.line} references an unresolvable deps type for property ${JSON.stringify(propName)}: ${detail}`;
56
57
  };
58
+ const formatUnknownConsumedCradleKeyError = (projectRoot, loc, propName, key) => {
59
+ const abs = path.join(projectRoot, loc.modulePath);
60
+ const rel = path.relative(projectRoot, abs).replace(/\\/g, "/");
61
+ return `[ioc] Factory ${JSON.stringify(loc.exportName)} at ${rel}:${loc.line} references consumed cradle key ${JSON.stringify(key)} on property ${JSON.stringify(propName)} that is not a known registration or group`;
62
+ };
63
+ const resolveFactoryContext = (factory, sourceFileByPath, projectRoot, scanDirs) => {
64
+ const absPath = normalizePath(resolveFactorySourceAbsPath(factory.modulePath, projectRoot, scanDirs));
65
+ const sourceFile = sourceFileByPath.get(absPath);
66
+ if (sourceFile === undefined) {
67
+ return undefined;
68
+ }
69
+ const analysis = collectFileAnalysisForFactoryDiscovery(sourceFile);
70
+ const factoryDecl = analysis.factoryDeclByExport.get(factory.exportName);
71
+ if (factoryDecl === undefined) {
72
+ return undefined;
73
+ }
74
+ return { factory, factoryDecl, sourceFile };
75
+ };
76
+ const supplyTypeRefForFactory = (checker, factory, factoryDecl, emitCtx) => {
77
+ const signature = checker.getSignatureFromDeclaration(factoryDecl);
78
+ if (!signature) {
79
+ return {
80
+ typeName: factory.contractName,
81
+ imports: [
82
+ {
83
+ typeName: factory.contractName,
84
+ relImport: factory.contractTypeRelImport,
85
+ useDefaultImport: false,
86
+ },
87
+ ],
88
+ };
89
+ }
90
+ const returnType = checker.getReturnTypeOfSignature(signature);
91
+ return (emitTypeReference(checker, returnType, emitCtx) ?? {
92
+ typeName: factory.contractName,
93
+ imports: [
94
+ {
95
+ typeName: factory.contractName,
96
+ relImport: factory.contractTypeRelImport,
97
+ useDefaultImport: false,
98
+ },
99
+ ],
100
+ });
101
+ };
57
102
  const mergeEntry = (map, key, typeRef, classification) => {
58
103
  const existing = map.get(key);
59
104
  if (existing !== undefined) {
@@ -83,6 +128,13 @@ export const analyzeDemandSupply = (factories, options) => {
83
128
  }
84
129
  const demandByKey = new Map();
85
130
  const cradleMap = new Map();
131
+ const factoryByRegistrationKey = new Map();
132
+ for (const factory of factories) {
133
+ const ctx = resolveFactoryContext(factory, sourceFileByPath, projectRoot, scanDirs);
134
+ if (ctx !== undefined) {
135
+ factoryByRegistrationKey.set(factory.registrationKey, ctx);
136
+ }
137
+ }
86
138
  for (const factory of factories) {
87
139
  const absPath = normalizePath(resolveFactorySourceAbsPath(factory.modulePath, projectRoot, scanDirs));
88
140
  const sourceFile = sourceFileByPath.get(absPath);
@@ -103,19 +155,8 @@ export const analyzeDemandSupply = (factories, options) => {
103
155
  contextSourceFile: sourceFile,
104
156
  };
105
157
  const signature = checker.getSignatureFromDeclaration(factoryDecl);
106
- if (signature) {
107
- const returnType = checker.getReturnTypeOfSignature(signature);
108
- const supplyRef = emitTypeReference(checker, returnType, emitCtx) ??
109
- {
110
- typeName: factory.contractName,
111
- imports: [
112
- {
113
- typeName: factory.contractName,
114
- relImport: factory.contractTypeRelImport,
115
- useDefaultImport: false,
116
- },
117
- ],
118
- };
158
+ if (signature !== undefined) {
159
+ const supplyRef = supplyTypeRefForFactory(checker, factory, factoryDecl, emitCtx);
119
160
  mergeEntry(cradleMap, factory.registrationKey, supplyRef, localSupplierKeys.has(factory.registrationKey) ? "local" : "external");
120
161
  }
121
162
  if (factoryDecl.parameters.length === 0) {
@@ -125,8 +166,57 @@ export const analyzeDemandSupply = (factories, options) => {
125
166
  if (!named.ok) {
126
167
  throw new Error(named.message);
127
168
  }
169
+ const propTypeNodes = depsPropertyTypeNodeByName(checker, named.depsType);
128
170
  const props = collectDepsProperties(checker, named.depsType);
129
171
  for (const { name: propName, type: propType } of props) {
172
+ const consumedCradleKey = tryParseIocGeneratedCradleIndexedAccessKey(checker, propTypeNodes.get(propName));
173
+ if (consumedCradleKey !== undefined) {
174
+ if (groupsManifest?.[consumedCradleKey] !== undefined) {
175
+ continue;
176
+ }
177
+ const supplier = factoryByRegistrationKey.get(consumedCradleKey);
178
+ if (supplier === undefined) {
179
+ // Hard-abort: one factory with an invalid consumed cradle key blocks the entire gen
180
+ // run (same policy as unresolvable deps and type conflicts in this pass).
181
+ throw new Error(formatUnknownConsumedCradleKeyError(projectRoot, loc, propName, consumedCradleKey));
182
+ }
183
+ const supplierEmitCtx = {
184
+ program,
185
+ projectRoot,
186
+ scanDirs,
187
+ generatedDir,
188
+ contextSourceFile: supplier.sourceFile,
189
+ };
190
+ const supplierSignature = checker.getSignatureFromDeclaration(supplier.factoryDecl);
191
+ const supplierReturnType = supplierSignature !== undefined
192
+ ? checker.getReturnTypeOfSignature(supplierSignature)
193
+ : propType;
194
+ const resolvedTypeRef = supplyTypeRefForFactory(checker, supplier.factory, supplier.factoryDecl, supplierEmitCtx);
195
+ const classification = localSupplierKeys.has(propName)
196
+ ? "local"
197
+ : "external";
198
+ const existing = demandByKey.get(propName);
199
+ if (existing !== undefined) {
200
+ if (!typesMutuallyAgree(checker, existing.type, supplierReturnType)) {
201
+ throw new Error(formatTypeConflictError(propName, {
202
+ factory: existing.factory,
203
+ typeDisplay: formatTypeDisplay(checker, existing.type),
204
+ }, {
205
+ factory: loc,
206
+ typeDisplay: formatTypeDisplay(checker, supplierReturnType),
207
+ }, projectRoot));
208
+ }
209
+ }
210
+ else {
211
+ demandByKey.set(propName, {
212
+ type: supplierReturnType,
213
+ factory: loc,
214
+ typeRef: resolvedTypeRef,
215
+ });
216
+ }
217
+ mergeEntry(cradleMap, propName, resolvedTypeRef, classification);
218
+ continue;
219
+ }
130
220
  if (isUnresolvableDepsPropertyType(checker, propType, emitCtx)) {
131
221
  throw new Error(formatUnresolvableDepsError(projectRoot, loc, propName, formatTypeDisplay(checker, propType)));
132
222
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/analyzeDemandSupply/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/analyzeDemandSupply/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import ts from "typescript";
2
+ export declare const resolveDepsPropertyTypeNode: (typeNode: ts.TypeNode | undefined, checker: ts.TypeChecker, depth?: number) => ts.TypeNode | undefined;
3
+ /**
4
+ * When a deps property is typed as `IocGeneratedCradle['literalKey']`, returns `literalKey`
5
+ * without resolving through the (possibly circular/stale) generated cradle file.
6
+ */
7
+ export declare const tryParseIocGeneratedCradleIndexedAccessKey: (checker: ts.TypeChecker, typeNode: ts.TypeNode | undefined) => string | undefined;
8
+ export declare const depsPropertyTypeNodeByName: (checker: ts.TypeChecker, depsType: ts.Type) => Map<string, ts.TypeNode>;
9
+ //# sourceMappingURL=resolveIocGeneratedCradleIndexedAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveIocGeneratedCradleIndexedAccess.d.ts","sourceRoot":"","sources":["../../../src/generator/analyzeDemandSupply/resolveIocGeneratedCradleIndexedAccess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAiE5B,eAAO,MAAM,2BAA2B,GACtC,UAAU,EAAE,CAAC,QAAQ,GAAG,SAAS,EACjC,SAAS,EAAE,CAAC,WAAW,EACvB,cAAS,KACR,EAAE,CAAC,QAAQ,GAAG,SAiBhB,CAAC;AA2CF;;;GAGG;AACH,eAAO,MAAM,0CAA0C,GACrD,SAAS,EAAE,CAAC,WAAW,EACvB,UAAU,EAAE,CAAC,QAAQ,GAAG,SAAS,KAChC,MAAM,GAAG,SAgBX,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,SAAS,EAAE,CAAC,WAAW,EACvB,UAAU,EAAE,CAAC,IAAI,KAChB,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAMzB,CAAC"}
@@ -0,0 +1,122 @@
1
+ import ts from "typescript";
2
+ const IOC_GENERATED_CRADLE_NAME = "IocGeneratedCradle";
3
+ const propertyNameText = (name) => {
4
+ if (ts.isIdentifier(name)) {
5
+ return name.text;
6
+ }
7
+ if (ts.isStringLiteral(name) || ts.isNumericLiteral(name)) {
8
+ return name.text;
9
+ }
10
+ return undefined;
11
+ };
12
+ const getDepsTypeDeclaration = (checker, depsType) => {
13
+ const apparent = checker.getApparentType(depsType);
14
+ let symbol = apparent.aliasSymbol ?? apparent.getSymbol();
15
+ if (!symbol) {
16
+ return undefined;
17
+ }
18
+ if (symbol.flags & ts.SymbolFlags.Alias) {
19
+ symbol = checker.getAliasedSymbol(symbol);
20
+ }
21
+ const decl = symbol.declarations?.[0];
22
+ if (decl !== undefined &&
23
+ (ts.isInterfaceDeclaration(decl) || ts.isTypeAliasDeclaration(decl))) {
24
+ return decl;
25
+ }
26
+ return undefined;
27
+ };
28
+ const collectPropertyTypeNodes = (decl) => {
29
+ const out = new Map();
30
+ const members = ts.isInterfaceDeclaration(decl)
31
+ ? decl.members
32
+ : ts.isTypeLiteralNode(decl.type)
33
+ ? decl.type.members
34
+ : undefined;
35
+ if (members === undefined) {
36
+ return out;
37
+ }
38
+ for (const member of members) {
39
+ if (!ts.isPropertySignature(member) || member.type === undefined) {
40
+ continue;
41
+ }
42
+ const name = member.name !== undefined ? propertyNameText(member.name) : undefined;
43
+ if (name === undefined) {
44
+ continue;
45
+ }
46
+ out.set(name, member.type);
47
+ }
48
+ return out;
49
+ };
50
+ export const resolveDepsPropertyTypeNode = (typeNode, checker, depth = 0) => {
51
+ if (typeNode === undefined || depth > 8) {
52
+ return typeNode;
53
+ }
54
+ if (ts.isTypeReferenceNode(typeNode) &&
55
+ (typeNode.typeArguments === undefined || typeNode.typeArguments.length === 0)) {
56
+ const symbol = checker.getSymbolAtLocation(typeNode.typeName);
57
+ const aliasDecl = symbol?.declarations?.[0];
58
+ if (aliasDecl !== undefined && ts.isTypeAliasDeclaration(aliasDecl)) {
59
+ return resolveDepsPropertyTypeNode(aliasDecl.type, checker, depth + 1);
60
+ }
61
+ }
62
+ return typeNode;
63
+ };
64
+ const isIocGeneratedCradleImportBinding = (checker, typeName) => {
65
+ if (!ts.isIdentifier(typeName)) {
66
+ return false;
67
+ }
68
+ if (typeName.text === IOC_GENERATED_CRADLE_NAME) {
69
+ return true;
70
+ }
71
+ const symbol = checker.getSymbolAtLocation(typeName);
72
+ if (symbol === undefined) {
73
+ return false;
74
+ }
75
+ for (const decl of symbol.declarations ?? []) {
76
+ if (!ts.isImportSpecifier(decl)) {
77
+ continue;
78
+ }
79
+ const importedName = decl.propertyName !== undefined && ts.isIdentifier(decl.propertyName)
80
+ ? decl.propertyName.text
81
+ : ts.isIdentifier(decl.name)
82
+ ? decl.name.text
83
+ : undefined;
84
+ if (importedName === IOC_GENERATED_CRADLE_NAME) {
85
+ return true;
86
+ }
87
+ }
88
+ return false;
89
+ };
90
+ const isIocGeneratedCradleTypeNode = (checker, node) => {
91
+ if (!ts.isTypeReferenceNode(node)) {
92
+ return false;
93
+ }
94
+ return isIocGeneratedCradleImportBinding(checker, node.typeName);
95
+ };
96
+ /**
97
+ * When a deps property is typed as `IocGeneratedCradle['literalKey']`, returns `literalKey`
98
+ * without resolving through the (possibly circular/stale) generated cradle file.
99
+ */
100
+ export const tryParseIocGeneratedCradleIndexedAccessKey = (checker, typeNode) => {
101
+ const resolved = resolveDepsPropertyTypeNode(typeNode, checker);
102
+ if (resolved === undefined || !ts.isIndexedAccessTypeNode(resolved)) {
103
+ return undefined;
104
+ }
105
+ if (!isIocGeneratedCradleTypeNode(checker, resolved.objectType)) {
106
+ return undefined;
107
+ }
108
+ const indexType = resolved.indexType;
109
+ if (ts.isLiteralTypeNode(indexType) &&
110
+ ts.isStringLiteral(indexType.literal)) {
111
+ return indexType.literal.text;
112
+ }
113
+ return undefined;
114
+ };
115
+ export const depsPropertyTypeNodeByName = (checker, depsType) => {
116
+ const decl = getDepsTypeDeclaration(checker, depsType);
117
+ if (decl === undefined) {
118
+ return new Map();
119
+ }
120
+ return collectPropertyTypeNodes(decl);
121
+ };
122
+ //# sourceMappingURL=resolveIocGeneratedCradleIndexedAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveIocGeneratedCradleIndexedAccess.js","sourceRoot":"","sources":["../../../src/generator/analyzeDemandSupply/resolveIocGeneratedCradleIndexedAccess.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"discoverFactories.d.ts","sourceRoot":"","sources":["../../../src/generator/discoverFactories/discoverFactories.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,4BAA4B,CAAC;AAiBpC,MAAM,MAAM,0BAA0B,GAAG;IACvC,sGAAsG;IACtG,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAuCF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EAAE,EACf,SAAS,EAAE,CAAC,OAAO,EACnB,aAAa,MAAM,EACnB,eAAe,MAAM,EACrB,gBAAgB,qBAAqB,EACrC,YAAY,SAAS,EACrB,aAAa,0BAA0B,KACtC;IACD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACzD,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,cAAc,EAAE,yBAAyB,CAAC;CAwF3C,CAAC"}
1
+ {"version":3,"file":"discoverFactories.d.ts","sourceRoot":"","sources":["../../../src/generator/discoverFactories/discoverFactories.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,4BAA4B,CAAC;AAiBpC,MAAM,MAAM,0BAA0B,GAAG;IACvC,sGAAsG;IACtG,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AA6CF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,MAAM,EAAE,EACf,SAAS,EAAE,CAAC,OAAO,EACnB,aAAa,MAAM,EACnB,eAAe,MAAM,EACrB,gBAAgB,qBAAqB,EACrC,YAAY,SAAS,EACrB,aAAa,0BAA0B,KACtC;IACD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACzD,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvC,cAAc,EAAE,yBAAyB,CAAC;CAwF3C,CAAC"}
@@ -6,7 +6,7 @@ import path from "node:path";
6
6
  import { resolveFactorySourceAbsPath, } from "../manifestPaths.js";
7
7
  import { collectFileAnalysisForFactoryDiscovery } from "./scanFactoryFile.js";
8
8
  import { scanFactoryFile } from "./scanFactoryFile.js";
9
- import { inferDependencyContractNames } from "./inferFactoryDependencyContracts.js";
9
+ import { inferFactoryDependencies } from "./inferFactoryDependencyContracts.js";
10
10
  const normalizePath = (p) => path.normalize(p);
11
11
  const buildSourceFileIndex = (program) => {
12
12
  const index = new Map();
@@ -31,9 +31,13 @@ const enrichDependencyContracts = (program, acceptedFactories, contractNames, di
31
31
  if (!decl) {
32
32
  continue;
33
33
  }
34
- const deps = inferDependencyContractNames(checker, decl, contractNames);
35
- if (deps.length > 0) {
36
- f.dependencyContractNames = deps;
34
+ const inferred = inferFactoryDependencies(checker, decl, contractNames);
35
+ if (inferred.contractNames.length > 0) {
36
+ f.dependencyContractNames = inferred.contractNames;
37
+ }
38
+ if (inferred.dependencyKeys !== undefined &&
39
+ inferred.dependencyKeys.length > 0) {
40
+ f.dependencyKeys = inferred.dependencyKeys;
37
41
  }
38
42
  }
39
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"discoverFactories.js","sourceRoot":"","sources":["../../../src/generator/discoverFactories/discoverFactories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discoverFactories.js","sourceRoot":"","sources":["../../../src/generator/discoverFactories/discoverFactories.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,20 @@
1
1
  import ts from "typescript";
2
+ export type InferredFactoryDependencies = {
3
+ contractNames: string[];
4
+ /** Cradle keys from the binding pattern; omitted when rest/nested/computed rules apply. */
5
+ dependencyKeys?: string[];
6
+ };
7
+ /**
8
+ * Infers dependency contract names and cradle keys from the factory's first parameter **object
9
+ * binding pattern** only: for `({ config, logger }: SomeCradleType)`, resolves the type of
10
+ * `config` and `logger` on the parameter type and collects symbols that match known contract
11
+ * names; `dependencyKeys` holds the destructured property names (e.g. `config`, `logger`).
12
+ *
13
+ * Does **not** walk all properties of the cradle type (avoids listing the entire container graph).
14
+ * If the first parameter is not a top-level object binding pattern, returns empty contract names
15
+ * and omits keys (prefer omission).
16
+ */
17
+ export declare const inferFactoryDependencies: (checker: ts.TypeChecker, factoryDecl: ts.FunctionLike, knownContractNames: ReadonlySet<string>) => InferredFactoryDependencies;
2
18
  /**
3
19
  * Infers dependency contract names from the factory's first parameter **object binding pattern**
4
20
  * only: for `({ config, logger }: SomeCradleType)`, resolves the type of `config` and `logger` on
@@ -1 +1 @@
1
- {"version":3,"file":"inferFactoryDependencyContracts.d.ts","sourceRoot":"","sources":["../../../src/generator/discoverFactories/inferFactoryDependencyContracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AA6E5B;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,EAAE,CAAC,WAAW,EACvB,aAAa,EAAE,CAAC,YAAY,EAC5B,oBAAoB,WAAW,CAAC,MAAM,CAAC,KACtC,MAAM,EAmDR,CAAC"}
1
+ {"version":3,"file":"inferFactoryDependencyContracts.d.ts","sourceRoot":"","sources":["../../../src/generator/discoverFactories/inferFactoryDependencyContracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AA6E5B,MAAM,MAAM,2BAA2B,GAAG;IACxC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,2FAA2F;IAC3F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,EAAE,CAAC,WAAW,EACvB,aAAa,EAAE,CAAC,YAAY,EAC5B,oBAAoB,WAAW,CAAC,MAAM,CAAC,KACtC,2BAwDF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,GACvC,SAAS,EAAE,CAAC,WAAW,EACvB,aAAa,EAAE,CAAC,YAAY,EAC5B,oBAAoB,WAAW,CAAC,MAAM,CAAC,KACtC,MAAM,EACyE,CAAC"}
@@ -65,44 +65,47 @@ const addContractNamesFromType = (checker, t, knownContractNames, out) => {
65
65
  }
66
66
  };
67
67
  /**
68
- * Infers dependency contract names from the factory's first parameter **object binding pattern**
69
- * only: for `({ config, logger }: SomeCradleType)`, resolves the type of `config` and `logger` on
70
- * the parameter type and collects symbols that match known contract names.
68
+ * Infers dependency contract names and cradle keys from the factory's first parameter **object
69
+ * binding pattern** only: for `({ config, logger }: SomeCradleType)`, resolves the type of
70
+ * `config` and `logger` on the parameter type and collects symbols that match known contract
71
+ * names; `dependencyKeys` holds the destructured property names (e.g. `config`, `logger`).
71
72
  *
72
73
  * Does **not** walk all properties of the cradle type (avoids listing the entire container graph).
73
- * If the first parameter is not a top-level object binding pattern, returns [] (prefer omission).
74
+ * If the first parameter is not a top-level object binding pattern, returns empty contract names
75
+ * and omits keys (prefer omission).
74
76
  */
75
- export const inferDependencyContractNames = (checker, factoryDecl, knownContractNames) => {
77
+ export const inferFactoryDependencies = (checker, factoryDecl, knownContractNames) => {
78
+ const empty = { contractNames: [] };
76
79
  if (knownContractNames.size === 0) {
77
- return [];
80
+ return empty;
78
81
  }
79
82
  const signature = checker.getSignatureFromDeclaration(factoryDecl);
80
83
  if (!signature) {
81
- return [];
84
+ return empty;
82
85
  }
83
86
  const params = signature.getParameters();
84
87
  if (params.length === 0) {
85
- return [];
88
+ return empty;
86
89
  }
87
90
  const paramNode = factoryDecl.parameters[0];
88
91
  if (!paramNode) {
89
- return [];
92
+ return empty;
90
93
  }
91
94
  if (!ts.isObjectBindingPattern(paramNode.name)) {
92
- return [];
95
+ return empty;
93
96
  }
94
97
  const boundNames = getBindingPatternPropertyNames(paramNode.name);
95
98
  if (boundNames === "omit") {
96
- return [];
99
+ return empty;
97
100
  }
98
101
  if (boundNames.length === 0) {
99
- return [];
102
+ return empty;
100
103
  }
101
104
  const p0 = params[0];
102
105
  const paramType = checker.getTypeOfSymbolAtLocation(p0, paramNode);
103
106
  const resolvedParam = checker.getApparentType(paramType);
104
107
  if (resolvedParam.getCallSignatures().length > 0) {
105
- return [];
108
+ return empty;
106
109
  }
107
110
  const out = new Set();
108
111
  for (const propName of boundNames) {
@@ -113,6 +116,18 @@ export const inferDependencyContractNames = (checker, factoryDecl, knownContract
113
116
  const propType = checker.getTypeOfSymbol(prop);
114
117
  addContractNamesFromType(checker, propType, knownContractNames, out);
115
118
  }
116
- return Array.from(out).sort((a, b) => a.localeCompare(b));
119
+ return {
120
+ contractNames: Array.from(out).sort((a, b) => a.localeCompare(b)),
121
+ dependencyKeys: boundNames,
122
+ };
117
123
  };
124
+ /**
125
+ * Infers dependency contract names from the factory's first parameter **object binding pattern**
126
+ * only: for `({ config, logger }: SomeCradleType)`, resolves the type of `config` and `logger` on
127
+ * the parameter type and collects symbols that match known contract names.
128
+ *
129
+ * Does **not** walk all properties of the cradle type (avoids listing the entire container graph).
130
+ * If the first parameter is not a top-level object binding pattern, returns [] (prefer omission).
131
+ */
132
+ export const inferDependencyContractNames = (checker, factoryDecl, knownContractNames) => inferFactoryDependencies(checker, factoryDecl, knownContractNames).contractNames;
118
133
  //# sourceMappingURL=inferFactoryDependencyContracts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inferFactoryDependencyContracts.js","sourceRoot":"","sources":["../../../src/generator/discoverFactories/inferFactoryDependencyContracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inferFactoryDependencyContracts.js","sourceRoot":"","sources":["../../../src/generator/discoverFactories/inferFactoryDependencyContracts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generateManifest.d.ts","sourceRoot":"","sources":["../../src/generator/generateManifest.ts"],"names":[],"mappings":"AAqBA,OAAO,EAEL,eAAe,EAEhB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AA+D/D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,YAAY,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,GAAG;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,KACA,OAAO,CAAC,IAAI,CAqMd,CAAC"}
1
+ {"version":3,"file":"generateManifest.d.ts","sourceRoot":"","sources":["../../src/generator/generateManifest.ts"],"names":[],"mappings":"AAqBA,OAAO,EAEL,eAAe,EAEhB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAgE/D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,YAAY,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,GAAG;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,KACA,OAAO,CAAC,IAAI,CAiNd,CAAC"}
@@ -23,6 +23,7 @@ import { buildComposedManifestSource, removeComposedManifestIfPresent, } from ".
23
23
  import { loadComposedPackageSpecs } from "./loadComposedPackageExternalKeys.js";
24
24
  import { resolveLifetimeMarkersForFactories } from "./resolveLifetimeMarkers.js";
25
25
  import { validateScopeProvidedAtCodegen } from "./validateScopeProvidedAtCodegen.js";
26
+ import { validateLifetimeInversionsAtCodegen } from "./validateLifetimeInversionsAtCodegen.js";
26
27
  const require = createRequire(import.meta.url);
27
28
  const packageJson = require("../../package.json");
28
29
  const packageName = typeof packageJson.name === "string" && packageJson.name.length > 0
@@ -101,6 +102,10 @@ export const generateManifest = async (overrides) => {
101
102
  generatedDir,
102
103
  scanDirs,
103
104
  });
105
+ // Ordering invariant: `buildGroupPlan` must finish before `analyzeDemandSupply`.
106
+ // Demand analysis resolves `IocGeneratedCradle['<key>']` against `groupsManifest` and
107
+ // the factory supply map; calling demand analysis first yields spurious
108
+ // "not a known registration or group" errors on valid group consumers.
104
109
  const demandSupply = analyzeDemandSupply(acceptedFactories, {
105
110
  program,
106
111
  projectRoot,
@@ -110,6 +115,7 @@ export const generateManifest = async (overrides) => {
110
115
  scopeProvided: config?.scopeProvided,
111
116
  });
112
117
  validateScopeProvidedAtCodegen(config?.scopeProvided ?? [], demandSupply);
118
+ validateLifetimeInversionsAtCodegen(acceptedFactories, plans, groupResult?.manifest, demandSupply, config);
113
119
  if (demandSupply.scopeProvidedKeys.length > 0) {
114
120
  console.log(`[ioc] scope-provided values: ${demandSupply.scopeProvidedKeys.join(", ")} — register these onto the request child scope at runtime before resolving dependent services.`);
115
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generateManifest.js","sourceRoot":"","sources":["../../src/generator/generateManifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generateManifest.js","sourceRoot":"","sources":["../../src/generator/generateManifest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRegistrationPlan.d.ts","sourceRoot":"","sources":["../../src/generator/resolveRegistrationPlan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAGjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,4HAA4H;AAC5H,MAAM,MAAM,6BAA6B,GACrC,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,MAAM,+BAA+B,GAAG;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,iEAAiE;IACjE,qBAAqB,CAAC,EAAE,6BAA6B,CAAC;IACtD,wEAAwE;IACxE,2BAA2B,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,mFAAmF;IACnF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,mHAAmH;IACnH,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,iGAAiG;IACjG,sBAAsB,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3D,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,2FAA2F;IAC3F,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,2BAA2B,EAAE,CAAC;CAChD,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,WAAW,KACpB,OAAO,CAAC,iBAAiB,CAuB3B,CAAC;AAoQF,eAAO,MAAM,4BAA4B,GACvC,QAAQ,SAAS,GAAG,SAAS,EAC7B,oBAAoB,GAAG,CAAC,MAAM,CAAC,EAC/B,wBAAwB,6BAA6B,KACpD,IAqCF,CAAC;AAsPF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,aAAa,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EACxD,SAAS,SAAS,EAClB,kBAAkB,+BAA+B,KAChD,4BAA4B,EA6G9B,CAAC"}
1
+ {"version":3,"file":"resolveRegistrationPlan.d.ts","sourceRoot":"","sources":["../../src/generator/resolveRegistrationPlan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAGjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACxF,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,4HAA4H;AAC5H,MAAM,MAAM,6BAA6B,GACrC,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,MAAM,+BAA+B,GAAG;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,iEAAiE;IACjE,qBAAqB,CAAC,EAAE,6BAA6B,CAAC;IACtD,wEAAwE;IACxE,2BAA2B,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,mFAAmF;IACnF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,mHAAmH;IACnH,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,iGAAiG;IACjG,sBAAsB,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3D,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,2FAA2F;IAC3F,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,2BAA2B,EAAE,CAAC;CAChD,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,WAAW,KACpB,OAAO,CAAC,iBAAiB,CAwB3B,CAAC;AAoQF,eAAO,MAAM,4BAA4B,GACvC,QAAQ,SAAS,GAAG,SAAS,EAC7B,oBAAoB,GAAG,CAAC,MAAM,CAAC,EAC/B,wBAAwB,6BAA6B,KACpD,IAqCF,CAAC;AAsPF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,aAAa,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,EACxD,SAAS,SAAS,EAClB,kBAAkB,+BAA+B,KAChD,4BAA4B,EA6G9B,CAAC"}
@@ -13,7 +13,7 @@ const DEFAULT_LIFETIME = "singleton";
13
13
  * so merged {@link DiscoveredFactory} rows reflect `ioc.config` policy only (factory sources stay plain).
14
14
  */
15
15
  export const normalizeIocOverride = (override) => {
16
- const { name, lifetime, default: defaultFlag, source: _source, ...rest } = override;
16
+ const { name, lifetime, default: defaultFlag, source: _source, allowLifetimeInversion: _allowLifetimeInversion, ...rest } = override;
17
17
  const out = { ...rest };
18
18
  if (lifetime !== undefined) {
19
19
  out.lifetime = lifetime;
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRegistrationPlan.js","sourceRoot":"","sources":["../../src/generator/resolveRegistrationPlan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveRegistrationPlan.js","sourceRoot":"","sources":["../../src/generator/resolveRegistrationPlan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EAKvB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,mCAAmC,EACnC,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,2CAA2C,CAAC;AAE5F,OAAO,EACL,uCAAuC,EACvC,oCAAoC,GACrC,MAAM,aAAa,CAAC;AA2DrB,MAAM,gBAAgB,GAAgB,WAAW,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,QAAqB,EACO,EAAE;IAC9B,MAAM,EACJ,IAAI,EACJ,QAAQ,EACR,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,OAAO,EACf,sBAAsB,EAAE,uBAAuB,EAC/C,GAAG,IAAI,EACR,GAAG,QAAQ,CAAC;IACb,MAAM,GAAG,GAA+B,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;SAAM,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1C,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACjC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAClC,OAA0B,EAC1B,QAAiC,EACd,EAAE;IACrB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC3D,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,8BAA8B,GAAG,CACrC,WAAoD,EAC3C,EAAE;IACX,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CACrC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAClB,GAAG,KAAK,uBAAuB;QAC/B,QAAQ,KAAK,SAAS;QACtB,2BAA2B,CAAC,QAAQ,CAAC;QACrC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;YACjC,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CACpC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,OAA0B,EACP,EAAE;IACrB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,SAAuC,EAAU,EAAE,CAC5E,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;KAClB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;KACxE,GAAG,CACF,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,OAAO,CAAC,kBAAkB,MAAM,OAAO,CAAC,UAAU,YAAY,OAAO,CAAC,UAAU,GAAG,CAC1F;KACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,MAAM,8BAA8B,GAAG,CACrC,YAAoB,EACpB,gBAAgD,EACxC,EAAE;IACV,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAE5E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,kBAAkB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,2FAA2F,iBAAiB,CAAC,WAAW,CAAC,6DAA6D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,8DAA8D,CAC/T,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACrD,CAAC,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,kBAAkB;QAClB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC,CACH,CAAC;IAEF,OAAO,+BAA+B,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,OAA0B,EAAe,EAAE;IAClE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG,CAC1B,OAA0B,EAC1B,YAAqC,EACrC,eAA4D,EACe,EAAE;IAC7E,IAAI,YAAY,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO;YACL,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,GAAG,CAAC,eAAe,KAAK,SAAS;gBAC/B,CAAC,CAAC,EAAE,cAAc,EAAE,gBAAyB,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,EAAE,2BAA2B,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,cAAc,GAAG,eAAe,CAAC,2BAA2B,CAAC,GAAG,CACpE,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAC9C,CAAC;QACF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;gBACL,QAAQ,EAAE,cAAc;gBACxB,GAAG,CAAC,eAAe,KAAK,SAAS;oBAC/B,CAAC,CAAC,EAAE,cAAc,EAAE,iBAA0B,EAAE;oBAChD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,2BAA2B,CACzC,OAAO,CAAC,UAAU,EAClB,eAAe,CAAC,WAAW,EAC3B,eAAe,CAAC,QAAQ,CACzB,CAAC;QACF,MAAM,aAAa,GAAG,mCAAmC,CACvD,OAAO,EACP,eAAe,CAAC,QAAQ,CACzB,CAAC;QACF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO;gBACL,QAAQ,EAAE,aAAa;gBACvB,cAAc,EAAE,gBAAgB;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC;QAClC,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iCAAiC,GAAG,CACxC,YAAoB,EACpB,gBAAgD,EACxC,EAAE;IACV,IAAI,IAAwB,CAAC;IAE7B,KAAK,MAAM,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,OAAO,CAAC,qBAAqB,CAAC;YACrC,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,mBAAmB,YAAY,gEAAgE,IAAI,SAAS,OAAO,CAAC,qBAAqB,kBAAkB,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,2DAA2D,CAC/Q,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,iDAAiD,YAAY,GAAG,CACjE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,YAAoB,EACpB,SAAyC,EACzC,MAA6B,EACG,EAAE;IAClC,MAAM,WAAW,GAAG,MAAM,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,WAAW,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEjD,KAAK,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3E,MAAM,QAAQ,GAAG,gCAAgC,CAC/C,WAAW,EACX,kBAAkB,CACnB,CAAC;QAEF,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,2BAA2B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,OAAe,EACf,UAA6B,EACT,EAAE;IACtB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;IAChE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAwB,CAAC;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;IAC3D,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CACvD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CACtC,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CACjB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAChB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAChB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,QAAuC,EAC/B,EAAE;IACV,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAC3E,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACjC,EAAE,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzD,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,EAAE,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,MAA6B,EAC7B,kBAA+B,EAC/B,qBAAqD,EAC/C,EAAE;IACR,IAAI,MAAM,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,aAAa,GACjB,qBAAqB,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QACpD,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GACb,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5E,QAAQ,CAAC;QACX,MAAM,YAAY,GAChB,qBAAqB,KAAK,SAAS;YACjC,CAAC,CAAC,0BAA0B,CAAC,qBAAqB,CAAC;YACnD,CAAC,CAAC,QAAQ,CAAC;QACf,MAAM,UAAU,GAAG;YACjB,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACjC,GAAG,CAAC,qBAAqB,KAAK,SAAS;gBACrC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG;YACZ,0DAA0D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG;YACrF,0BAA0B,SAAS,GAAG;YACtC,2CAA2C,YAAY,GAAG;SAC3D,CAAC;QACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,gCAAgC,GAAG,CACvC,MAA6B,EAC7B,WAAwD,EAClD,EAAE;IACR,IAAI,MAAM,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CACxD,MAAM,CAAC,aAAa,CACrB,EAAE,CAAC;QACF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACjD,IAAI,OAAO,KAAK,uBAAuB,EAAE,CAAC;gBACxC,SAAS;YACX,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,uFAAuF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/N,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,yCAAyC,GAAG,CAChD,MAA6B,EACvB,EAAE;IACR,IAAI,MAAM,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CACxD,MAAM,CAAC,aAAa,CACrB,EAAE,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAClB,GAAG,KAAK,uBAAuB;YAC/B,QAAQ,KAAK,SAAS;YACtB,2BAA2B,CAAC,QAAQ,CAAC;YACrC,QAAQ,CAAC,OAAO,KAAK,IAAI,CAC5B,CAAC;QAEF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,qDAAqD,WAAW;iBACvH,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;iBACnC,IAAI,EAAE;iBACN,IAAI,CAAC,IAAI,CAAC,sCAAsC,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAOF;;;;;;;GAOG;AACH,MAAM,iCAAiC,GAAG,CACxC,gBAA6D,EAC7D,MAA6B,EACvB,EAAE;IACR,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAE5C,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,GAAY,EAAQ,EAAE;QACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,sDAAsD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,kBAAkB,QAAQ,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,kBAAkB,uIAAuI,CAC5T,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,KAAK,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;YACnD,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE;gBACpC,YAAY;gBACZ,kBAAkB;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtD,KAAK,MAAM,YAAY,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,oCAAoC,CAAC,YAAY,CAAC,CAAC;QACtE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,sBAAsB,CACtD,MAAM,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC,EACrC,YAAY,CACb,CAAC;QAEF,mBAAmB,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,IAAI,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzD,KAAK,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,mBAAmB,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,yDAAyD,CACvM,CAAC;QACJ,CAAC;QAED,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,IAAI,mBAAmB,EAAE,CAAC;QAC5D,KAAK,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAChE,IAAI,WAAW,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;gBAC1B,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GACjB,uCAAuC,CAAC,iBAAiB,CAAC,CAAC;YAC7D,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,2BAA2B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAC1N,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC;QACzD,MAAM,yBAAyB,GAAG,8BAA8B,CAC9D,YAAY,EACZ,MAAM,CACP,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAE,CAAC,eAAe,CAAC;QAC1E,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,sBAAsB,CAC/D,MAAM,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC,EACrC,YAAY,CACb,CAAC;QACF,MAAM,6BAA6B,GAAG,mBAAmB,KAAK,SAAS,CAAC;QAExE,IAAI,6BAA6B,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC9D,KAAK,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,MAAM,EAAE,CAAC;gBACnD,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBAC1C,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,+FAA+F,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,CACpS,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAChE,IAAI,iBAAiB,KAAK,YAAY,EAAE,CAAC;gBACvC,SAAS;YACX,CAAC;YAED,KAAK,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;gBACxD,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBAC1C,SAAS;gBACX,CAAC;gBAED,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,iDAAiD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,0DAA0D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,iBAAiB,IAAI,kBAAkB,eAAe,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qEAAqE,CACtX,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACtD,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QAED,MAAM,aAAa,GAAG,uCAAuC,CAAC,YAAY,CAAC,CAAC;QAE5E,KAAK,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAChE,KAAK,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;gBACxD,IAAI,OAAO,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;oBAC9C,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,oDAAoD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,iBAAiB,IAAI,kBAAkB,yFAAyF,CACpR,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,CACjC,WAAwD,EACxD,MAA6B,EAC7B,qBAAqD,EACR,EAAE;IAC/C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAElD,4BAA4B,CAC1B,MAAM,EACN,aAAa,EACb,qBAAqB,CACtB,CAAC;IACF,gCAAgC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,yCAAyC,CAAC,MAAM,CAAC,CAAC;IAElD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA0C,CAAC;IAE3E,KAAK,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,IAAI,WAAW,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;QACvD,KAAK,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,IAAI,eAAe,EAAE,CAAC;YAC5D,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,gBAAgB,CAAC,GAAG,CAClB,YAAY,EACZ,sBAAsB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,iCAAiC,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAE5D,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,WAAwD,EACxD,MAAkB,EAClB,eAAiD,EACjB,EAAE;IAClC,MAAM,gBAAgB,GAAG,0BAA0B,CACjD,WAAW,EACX,MAAM,EACN,eAAe,EAAE,qBAAqB,CACvC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACxE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CACnB,CAAC;IAEF,MAAM,GAAG,GAAmC,EAAE,CAAC;IAE/C,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE,CAAC;QAC3C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC;QAE7D,MAAM,yBAAyB,GAAG,8BAA8B,CAC9D,YAAY,EACZ,gBAAgB,CACjB,CAAC;QAEF,MAAM,qBAAqB,GAAG,iCAAiC,CAC7D,YAAY,EACZ,gBAAgB,CACjB,CAAC;QAEF,MAAM,WAAW,GAAG,oCAAoC,CAAC,YAAY,CAAC,CAAC;QACvE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,sBAAsB,CAC7D,MAAM,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC,EACrC,YAAY,CACb,CAAC;QACF,MAAM,SAAS,GAAG,iBAAiB,IAAI,WAAW,CAAC;QACnD,MAAM,aAAa,GACjB,gBAAgB,CAAC,IAAI,GAAG,CAAC;YACvB,CAAC,CAAC,uCAAuC,CAAC,YAAY,CAAC;YACvD,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAC7B,CAAC;QAEF,MAAM,6BAA6B,GACjC,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,WAAW,CAAC;QAEvE,MAAM,eAAe,GACnB,mBAAmB,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,kBAAkB,CAAE,CAAC;YAC1D,MAAM,YAAY,GAAG,gCAAgC,CACnD,MAAM,EAAE,aAAa,EAAE,CAAC,YAAY,CAAC,EACrC,kBAAkB,CACnB,CAAC;YAEF,MAAM,sBAAsB,GAA6B,EAAE,CAAC;YAE5D,IAAI,YAAY,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,YAAY,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,YAAY,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,IACE,6BAA6B;gBAC7B,kBAAkB,KAAK,yBAAyB,EAChD,CAAC;gBACD,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,mBAAmB,CACtD,OAAO,EACP,YAAY,EACZ,eAAe,CAChB,CAAC;YAEF,OAAO;gBACL,kBAAkB;gBAClB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,QAAQ;gBACR,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3D,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;oBACpC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;oBACxC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC;oBACnC,CAAC,CAAC,EAAE,sBAAsB,EAAE;oBAC5B,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,OAAO,CAAC,uBAAuB,KAAK,SAAS;oBACjD,OAAO,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC;oBACxC,CAAC,CAAC,EAAE,uBAAuB,EAAE,OAAO,CAAC,uBAAuB,EAAE;oBAC9D,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,GAAG,CAAC,IAAI,CAAC;YACP,YAAY;YACZ,qBAAqB;YACrB,WAAW;YACX,SAAS;YACT,aAAa;YACb,yBAAyB;YACzB,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC,CAAC"}
@@ -24,6 +24,9 @@ export type DiscoveredFactory = {
24
24
  discoveredBy?: "naming";
25
25
  /** Contract types inferred from the factory deps parameter (see manifest metadata). */
26
26
  dependencyContractNames?: string[];
27
+ /** Cradle keys demanded by this factory's deps destructuring (gen-time edge for
28
+ lifetime-inversion analysis). Same omit rules as dependencyContractNames. */
29
+ dependencyKeys?: string[];
27
30
  };
28
31
  export type FactoryDiscoveryFileContext = {
29
32
  absPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generator/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,wDAAwD;IACxD,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,uFAAuF;IACvF,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,4GAA4G;IAC5G,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generator/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,wDAAwD;IACxD,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,uFAAuF;IACvF,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC;oFACgF;IAChF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,4GAA4G;IAC5G,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type IocConfig } from "../config/iocConfig.js";
2
+ import type { IocGroupsManifest } from "../core/manifest.js";
3
+ import type { DemandSupplyAnalysisResult } from "./analyzeDemandSupply/index.js";
4
+ import type { ResolvedContractRegistration } from "./resolveRegistrationPlan.js";
5
+ import type { DiscoveredFactory } from "./types.js";
6
+ /**
7
+ * Generation-time lifetime-inversion checks using factory `dependencyKeys` and resolved plan lifetimes.
8
+ */
9
+ export declare const validateLifetimeInversionsAtCodegen: (acceptedFactories: readonly DiscoveredFactory[], plans: readonly ResolvedContractRegistration[], groupsManifest: IocGroupsManifest | undefined, demandSupply: DemandSupplyAnalysisResult, config: IocConfig | undefined) => void;
10
+ //# sourceMappingURL=validateLifetimeInversionsAtCodegen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateLifetimeInversionsAtCodegen.d.ts","sourceRoot":"","sources":["../../src/generator/validateLifetimeInversionsAtCodegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAEf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAyMpD;;GAEG;AACH,eAAO,MAAM,mCAAmC,GAC9C,mBAAmB,SAAS,iBAAiB,EAAE,EAC/C,OAAO,SAAS,4BAA4B,EAAE,EAC9C,gBAAgB,iBAAiB,GAAG,SAAS,EAC7C,cAAc,0BAA0B,EACxC,QAAQ,SAAS,GAAG,SAAS,KAC5B,IA0EF,CAAC"}
@@ -0,0 +1,179 @@
1
+ import { getImplOverrideForImplementation, } from "../config/iocConfig.js";
2
+ const LIFETIME_RANK = {
3
+ singleton: 3,
4
+ scoped: 2,
5
+ transient: 1,
6
+ };
7
+ const isInversion = (consumerLifetime, depLifetime) => LIFETIME_RANK[depLifetime] < LIFETIME_RANK[consumerLifetime];
8
+ const inversionSeverity = (consumerLifetime, depLifetime) => {
9
+ if (!isInversion(consumerLifetime, depLifetime)) {
10
+ return undefined;
11
+ }
12
+ if (consumerLifetime === "singleton" && depLifetime === "scoped") {
13
+ return "error";
14
+ }
15
+ return "warn";
16
+ };
17
+ const formatDepPhrase = (inv) => {
18
+ if (inv.via === "scope-provided") {
19
+ return `'${inv.depKey}' (scope-provided, per-request)`;
20
+ }
21
+ if (inv.via.startsWith("group:") && inv.memberKey !== undefined) {
22
+ return `'${inv.memberKey}' (${inv.depLifetime})`;
23
+ }
24
+ return `'${inv.depKey}' (${inv.depLifetime})`;
25
+ };
26
+ const formatInversionMessage = (inv) => {
27
+ const depPhrase = formatDepPhrase(inv);
28
+ let message = `Lifetime inversion: '${inv.consumerKey}' (${inv.consumerLifetime}) depends on ${depPhrase}.`;
29
+ if (inv.severity === "error") {
30
+ message +=
31
+ " A singleton freezes its scoped dependency at first construction, reusing it across all scopes.";
32
+ }
33
+ else {
34
+ message +=
35
+ " A longer-lived consumer should not depend on a shorter-lived dependency.";
36
+ }
37
+ message += ` Register '${inv.consumerKey}' as scoped (or shorter), or mark it intentional with registrations['<Contract>'].<impl>.allowLifetimeInversion.`;
38
+ if (inv.via.startsWith("group:")) {
39
+ const groupKey = inv.via.slice("group:".length);
40
+ message += ` via group '${groupKey}' member '${inv.memberKey ?? inv.depKey}'.`;
41
+ }
42
+ return message;
43
+ };
44
+ const collectGroupMemberLeaves = (manifest) => {
45
+ if (Array.isArray(manifest.members)) {
46
+ return manifest.members.map((member) => ({
47
+ memberKey: member.registrationKey,
48
+ registrationKey: member.registrationKey,
49
+ }));
50
+ }
51
+ return Object.entries(manifest.members).map(([memberKey, leaf]) => ({
52
+ memberKey,
53
+ registrationKey: leaf.registrationKey,
54
+ }));
55
+ };
56
+ const buildLifetimeLookups = (plans) => {
57
+ const regLifetime = new Map();
58
+ const accessKeyToDefaultLifetime = new Map();
59
+ const collectionKeyToLifetimes = new Map();
60
+ for (const plan of plans) {
61
+ for (const impl of plan.implementations) {
62
+ regLifetime.set(impl.registrationKey, impl.lifetime);
63
+ }
64
+ const defaultImpl = plan.implementations.find((impl) => impl.implementationName === plan.defaultImplementationName);
65
+ if (defaultImpl !== undefined) {
66
+ accessKeyToDefaultLifetime.set(plan.accessKey, defaultImpl.lifetime);
67
+ }
68
+ if (plan.collectionKey !== undefined) {
69
+ collectionKeyToLifetimes.set(plan.collectionKey, plan.implementations.map((impl) => impl.lifetime));
70
+ }
71
+ }
72
+ return { regLifetime, accessKeyToDefaultLifetime, collectionKeyToLifetimes };
73
+ };
74
+ const resolveDepCandidates = (key, regLifetime, accessKeyToDefaultLifetime, collectionKeyToLifetimes, groupsManifest, externalKeys, scopeProvidedKeys) => {
75
+ if (externalKeys.has(key)) {
76
+ return "skip";
77
+ }
78
+ if (scopeProvidedKeys.has(key)) {
79
+ return [{ depLifetime: "scoped", via: "scope-provided" }];
80
+ }
81
+ const groupRoot = groupsManifest?.[key];
82
+ if (groupRoot !== undefined) {
83
+ const candidates = [];
84
+ for (const member of collectGroupMemberLeaves(groupRoot)) {
85
+ const depLifetime = regLifetime.get(member.registrationKey);
86
+ if (depLifetime === undefined) {
87
+ continue;
88
+ }
89
+ candidates.push({
90
+ depLifetime,
91
+ via: `group:${key}`,
92
+ memberKey: member.memberKey,
93
+ });
94
+ }
95
+ return candidates.length > 0 ? candidates : "skip";
96
+ }
97
+ const directLifetime = regLifetime.get(key);
98
+ if (directLifetime !== undefined) {
99
+ return [{ depLifetime: directLifetime, via: "direct" }];
100
+ }
101
+ const accessLifetime = accessKeyToDefaultLifetime.get(key);
102
+ if (accessLifetime !== undefined) {
103
+ return [{ depLifetime: accessLifetime, via: "direct" }];
104
+ }
105
+ const collectionLifetimes = collectionKeyToLifetimes.get(key);
106
+ if (collectionLifetimes !== undefined) {
107
+ return collectionLifetimes.map((depLifetime) => ({
108
+ depLifetime,
109
+ via: "direct",
110
+ }));
111
+ }
112
+ return "skip";
113
+ };
114
+ const isSuppressed = (factory, depKey, config) => {
115
+ const allow = getImplOverrideForImplementation(config?.registrations?.[factory.contractName], factory.implementationName)?.allowLifetimeInversion;
116
+ if (allow === true) {
117
+ return true;
118
+ }
119
+ if (Array.isArray(allow)) {
120
+ return allow.includes(depKey);
121
+ }
122
+ return false;
123
+ };
124
+ /**
125
+ * Generation-time lifetime-inversion checks using factory `dependencyKeys` and resolved plan lifetimes.
126
+ */
127
+ export const validateLifetimeInversionsAtCodegen = (acceptedFactories, plans, groupsManifest, demandSupply, config) => {
128
+ const { regLifetime, accessKeyToDefaultLifetime, collectionKeyToLifetimes } = buildLifetimeLookups(plans);
129
+ const externalKeys = new Set(demandSupply.externalKeys);
130
+ const scopeProvidedKeys = new Set(demandSupply.scopeProvidedKeys);
131
+ const inversions = [];
132
+ for (const factory of acceptedFactories) {
133
+ const consumerLifetime = regLifetime.get(factory.registrationKey);
134
+ if (consumerLifetime === undefined) {
135
+ continue;
136
+ }
137
+ const dependencyKeys = factory.dependencyKeys;
138
+ if (dependencyKeys === undefined || dependencyKeys.length === 0) {
139
+ continue;
140
+ }
141
+ for (const depKey of dependencyKeys) {
142
+ if (isSuppressed(factory, depKey, config)) {
143
+ continue;
144
+ }
145
+ const resolved = resolveDepCandidates(depKey, regLifetime, accessKeyToDefaultLifetime, collectionKeyToLifetimes, groupsManifest, externalKeys, scopeProvidedKeys);
146
+ if (resolved === "skip") {
147
+ continue;
148
+ }
149
+ for (const candidate of resolved) {
150
+ const severity = inversionSeverity(consumerLifetime, candidate.depLifetime);
151
+ if (severity === undefined) {
152
+ continue;
153
+ }
154
+ inversions.push({
155
+ consumerKey: factory.registrationKey,
156
+ consumerLifetime,
157
+ depKey,
158
+ depLifetime: candidate.depLifetime,
159
+ via: candidate.via,
160
+ memberKey: candidate.memberKey,
161
+ severity,
162
+ });
163
+ }
164
+ }
165
+ }
166
+ for (const inv of inversions) {
167
+ if (inv.severity !== "warn") {
168
+ continue;
169
+ }
170
+ console.warn(`[ioc] ${formatInversionMessage(inv)}`);
171
+ }
172
+ const errors = inversions.filter((inv) => inv.severity === "error");
173
+ if (errors.length === 0) {
174
+ return;
175
+ }
176
+ throw new Error(`${errors.map(formatInversionMessage).join("\n")}\n` +
177
+ "Suppress intentionally with registrations[ContractName].implementationName.allowLifetimeInversion in ioc.config.");
178
+ };
179
+ //# sourceMappingURL=validateLifetimeInversionsAtCodegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateLifetimeInversionsAtCodegen.js","sourceRoot":"","sources":["../../src/generator/validateLifetimeInversionsAtCodegen.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ioc-manifest",
3
- "version": "1.4.1",
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.",
3
+ "version": "1.5.0",
4
+ "description": "B uild-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": {
7
7
  "type": "git",