@codefast/di 0.5.0-canary.4 → 0.5.0-canary.6

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 (175) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +67 -499
  3. package/dist/binding-scope.d.ts +10 -0
  4. package/dist/binding-scope.d.ts.map +1 -0
  5. package/dist/binding-scope.js +24 -0
  6. package/dist/binding-scope.js.map +1 -0
  7. package/dist/binding-select.d.ts +16 -0
  8. package/dist/binding-select.d.ts.map +1 -0
  9. package/dist/binding-select.js +130 -0
  10. package/dist/binding-select.js.map +1 -0
  11. package/dist/binding.d.ts +194 -0
  12. package/dist/binding.d.ts.map +1 -0
  13. package/dist/binding.js +46 -0
  14. package/dist/binding.js.map +1 -0
  15. package/dist/constraints.d.ts +51 -0
  16. package/dist/constraints.d.ts.map +1 -0
  17. package/dist/constraints.js +88 -0
  18. package/dist/constraints.js.map +1 -0
  19. package/dist/{constructor-type.d.mts → constructor-type.d.ts} +3 -5
  20. package/dist/constructor-type.d.ts.map +1 -0
  21. package/dist/constructor-type.js +2 -0
  22. package/dist/constructor-type.js.map +1 -0
  23. package/dist/container.d.ts +58 -0
  24. package/dist/container.d.ts.map +1 -0
  25. package/dist/container.js +853 -0
  26. package/dist/container.js.map +1 -0
  27. package/dist/decorators/inject.d.ts +46 -0
  28. package/dist/decorators/inject.d.ts.map +1 -0
  29. package/dist/decorators/inject.js +145 -0
  30. package/dist/decorators/inject.js.map +1 -0
  31. package/dist/decorators/injectable.d.ts +29 -0
  32. package/dist/decorators/injectable.d.ts.map +1 -0
  33. package/dist/decorators/injectable.js +53 -0
  34. package/dist/decorators/injectable.js.map +1 -0
  35. package/dist/decorators/lifecycle-decorators.d.ts +9 -0
  36. package/dist/decorators/lifecycle-decorators.d.ts.map +1 -0
  37. package/dist/decorators/lifecycle-decorators.js +40 -0
  38. package/dist/decorators/lifecycle-decorators.js.map +1 -0
  39. package/dist/dependency-graph.d.ts +40 -0
  40. package/dist/dependency-graph.d.ts.map +1 -0
  41. package/dist/dependency-graph.js +66 -0
  42. package/dist/dependency-graph.js.map +1 -0
  43. package/dist/environment.d.ts +51 -0
  44. package/dist/environment.d.ts.map +1 -0
  45. package/dist/environment.js +100 -0
  46. package/dist/environment.js.map +1 -0
  47. package/dist/errors.d.ts +150 -0
  48. package/dist/errors.d.ts.map +1 -0
  49. package/dist/errors.js +197 -0
  50. package/dist/errors.js.map +1 -0
  51. package/dist/graph-adapters/cytoscape.d.ts +33 -0
  52. package/dist/graph-adapters/cytoscape.d.ts.map +1 -0
  53. package/dist/graph-adapters/cytoscape.js +30 -0
  54. package/dist/graph-adapters/cytoscape.js.map +1 -0
  55. package/dist/graph-adapters/dot.d.ts +6 -0
  56. package/dist/graph-adapters/dot.d.ts.map +1 -0
  57. package/dist/graph-adapters/dot.js +18 -0
  58. package/dist/graph-adapters/dot.js.map +1 -0
  59. package/dist/graph-adapters/reactflow.d.ts +38 -0
  60. package/dist/graph-adapters/reactflow.d.ts.map +1 -0
  61. package/dist/graph-adapters/reactflow.js +23 -0
  62. package/dist/graph-adapters/reactflow.js.map +1 -0
  63. package/dist/index.d.ts +25 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +21 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/inspector.d.ts +44 -0
  68. package/dist/inspector.d.ts.map +1 -0
  69. package/dist/inspector.js +82 -0
  70. package/dist/inspector.js.map +1 -0
  71. package/dist/lifecycle.d.ts +21 -0
  72. package/dist/lifecycle.d.ts.map +1 -0
  73. package/dist/lifecycle.js +174 -0
  74. package/dist/lifecycle.js.map +1 -0
  75. package/dist/metadata/{metadata-keys.d.mts → metadata-keys.d.ts} +5 -7
  76. package/dist/metadata/metadata-keys.d.ts.map +1 -0
  77. package/dist/metadata/metadata-keys.js +25 -0
  78. package/dist/metadata/metadata-keys.js.map +1 -0
  79. package/dist/metadata/metadata-reader-token.d.ts +7 -0
  80. package/dist/metadata/metadata-reader-token.d.ts.map +1 -0
  81. package/dist/metadata/metadata-reader-token.js +6 -0
  82. package/dist/metadata/metadata-reader-token.js.map +1 -0
  83. package/dist/metadata/metadata-types.d.ts +48 -0
  84. package/dist/metadata/metadata-types.d.ts.map +1 -0
  85. package/dist/metadata/metadata-types.js +2 -0
  86. package/dist/metadata/metadata-types.js.map +1 -0
  87. package/dist/metadata/symbol-metadata-reader.d.ts +20 -0
  88. package/dist/metadata/symbol-metadata-reader.d.ts.map +1 -0
  89. package/dist/metadata/symbol-metadata-reader.js +34 -0
  90. package/dist/metadata/symbol-metadata-reader.js.map +1 -0
  91. package/dist/module.d.ts +60 -0
  92. package/dist/module.d.ts.map +1 -0
  93. package/dist/module.js +47 -0
  94. package/dist/module.js.map +1 -0
  95. package/dist/registry.d.ts +41 -0
  96. package/dist/registry.d.ts.map +1 -0
  97. package/dist/registry.js +208 -0
  98. package/dist/registry.js.map +1 -0
  99. package/dist/resolve-options.d.ts +19 -0
  100. package/dist/resolve-options.d.ts.map +1 -0
  101. package/dist/resolve-options.js +32 -0
  102. package/dist/resolve-options.js.map +1 -0
  103. package/dist/resolver.d.ts +90 -0
  104. package/dist/resolver.d.ts.map +1 -0
  105. package/dist/resolver.js +1208 -0
  106. package/dist/resolver.js.map +1 -0
  107. package/dist/scope.d.ts +25 -0
  108. package/dist/scope.d.ts.map +1 -0
  109. package/dist/scope.js +61 -0
  110. package/dist/scope.js.map +1 -0
  111. package/dist/token.d.ts +23 -0
  112. package/dist/token.d.ts.map +1 -0
  113. package/dist/token.js +25 -0
  114. package/dist/token.js.map +1 -0
  115. package/dist/types.d.ts +90 -0
  116. package/dist/types.d.ts.map +1 -0
  117. package/dist/types.js +2 -0
  118. package/dist/types.js.map +1 -0
  119. package/package.json +87 -79
  120. package/dist/binding-scope.d.mts +0 -13
  121. package/dist/binding-scope.mjs +0 -21
  122. package/dist/binding-select.d.mts +0 -19
  123. package/dist/binding-select.mjs +0 -72
  124. package/dist/binding.d.mts +0 -191
  125. package/dist/binding.mjs +0 -36
  126. package/dist/constraints.d.mts +0 -55
  127. package/dist/constraints.mjs +0 -87
  128. package/dist/constructor-type.mjs +0 -1
  129. package/dist/container.d.mts +0 -62
  130. package/dist/container.mjs +0 -741
  131. package/dist/decorators/inject.d.mts +0 -49
  132. package/dist/decorators/inject.mjs +0 -136
  133. package/dist/decorators/injectable.d.mts +0 -32
  134. package/dist/decorators/injectable.mjs +0 -57
  135. package/dist/decorators/lifecycle-decorators.d.mts +0 -11
  136. package/dist/decorators/lifecycle-decorators.mjs +0 -38
  137. package/dist/dependency-graph.d.mts +0 -43
  138. package/dist/dependency-graph.mjs +0 -63
  139. package/dist/environment.d.mts +0 -55
  140. package/dist/environment.mjs +0 -98
  141. package/dist/errors.d.mts +0 -153
  142. package/dist/errors.mjs +0 -197
  143. package/dist/graph-adapters/cytoscape.d.mts +0 -36
  144. package/dist/graph-adapters/cytoscape.mjs +0 -26
  145. package/dist/graph-adapters/dot.d.mts +0 -9
  146. package/dist/graph-adapters/dot.mjs +0 -20
  147. package/dist/graph-adapters/reactflow.d.mts +0 -41
  148. package/dist/graph-adapters/reactflow.mjs +0 -29
  149. package/dist/index.d.mts +0 -18
  150. package/dist/index.mjs +0 -12
  151. package/dist/inspector.d.mts +0 -48
  152. package/dist/inspector.mjs +0 -71
  153. package/dist/lifecycle.d.mts +0 -25
  154. package/dist/lifecycle.mjs +0 -118
  155. package/dist/metadata/metadata-keys.mjs +0 -27
  156. package/dist/metadata/metadata-reader-token.d.mts +0 -10
  157. package/dist/metadata/metadata-reader-token.mjs +0 -8
  158. package/dist/metadata/metadata-types.d.mts +0 -51
  159. package/dist/metadata/metadata-types.mjs +0 -1
  160. package/dist/metadata/symbol-metadata-reader.d.mts +0 -23
  161. package/dist/metadata/symbol-metadata-reader.mjs +0 -29
  162. package/dist/module.d.mts +0 -62
  163. package/dist/module.mjs +0 -42
  164. package/dist/registry.d.mts +0 -45
  165. package/dist/registry.mjs +0 -163
  166. package/dist/resolve-options.d.mts +0 -22
  167. package/dist/resolve-options.mjs +0 -28
  168. package/dist/resolver.d.mts +0 -94
  169. package/dist/resolver.mjs +0 -767
  170. package/dist/scope.d.mts +0 -28
  171. package/dist/scope.mjs +0 -58
  172. package/dist/token.d.mts +0 -25
  173. package/dist/token.mjs +0 -22
  174. package/dist/types.d.mts +0 -92
  175. package/dist/types.mjs +0 -1
@@ -0,0 +1,25 @@
1
+ export type { ActivationHandler, BindingIdentifier, BindingKind, BindingScope, BindingTag, ConstraintContext, Constructor, DependencyKey, DeactivationHandler, ResolutionFrame, ResolveOptions, ResolutionContext, TokenValue, } from "#/types";
2
+ export { token, tokenName, isToken } from "#/token";
3
+ export type { Token } from "#/token";
4
+ export type { AliasBindingBuilder, BindToBuilder, BindingBuilder, ConstantBindingBuilder, ScopedBindingBuilder, SingletonBindingBuilder, SingletonLifecycleBuilder, SlotConstrainedBuilder, TransientBindingBuilder, } from "#/binding";
5
+ export { Container } from "#/container";
6
+ export type { Container as ContainerInterface, ContainerStatic } from "#/container";
7
+ export { effectiveBindingScope } from "#/binding-scope";
8
+ export { injectionSlotToResolveOptions, bindingSlotToResolveOptions } from "#/resolve-options";
9
+ export type { BindingSnapshot, ContainerSnapshot } from "#/inspector";
10
+ export type { ContainerGraphJson, GraphEdge, GraphNode, GraphOptions } from "#/dependency-graph";
11
+ export { AsyncModule, isSyncModule, Module, SyncModule } from "#/module";
12
+ export type { AsyncModuleBuilder, ModuleBuilder } from "#/module";
13
+ export { inject, injectAll, isInjectionDescriptor, optional } from "#/decorators/inject";
14
+ export type { InjectionDescriptor, InjectOptions } from "#/decorators/inject";
15
+ export { injectable } from "#/decorators/injectable";
16
+ export type { InjectableDependency, InjectableOptions } from "#/decorators/injectable";
17
+ export { postConstruct, preDestroy } from "#/decorators/lifecycle-decorators";
18
+ export { createAutoRegisterRegistry } from "#/decorators/injectable";
19
+ export type { AutoRegisterRegistry } from "#/decorators/injectable";
20
+ export { MetadataReaderToken } from "#/metadata/metadata-reader-token";
21
+ export type { MetadataReader, MutableLifecycleMetadata } from "#/metadata/metadata-types";
22
+ export { whenAnyAncestorIs, whenAnyAncestorNamed, whenAnyAncestorTagged, whenAnyAncestorTaggedAll, whenNoAncestorIs, whenNoParentIs, whenParentIs, whenParentNamed, whenParentTagged, whenParentTaggedAll, } from "#/constraints";
23
+ export { AmbiguousBindingError, AsyncActivationError, AsyncDeactivationError, AsyncModuleLoadError, AsyncResolutionError, CircularDependencyError, DiError, DisposedContainerError, InternalError, MissingContainerContextError, MissingMetadataError, MissingScopeContextError, NoMatchingBindingError, RebindUnboundTokenError, ScopeViolationError, SyncDisposalNotSupportedError, TokenNotBoundError, } from "#/errors";
24
+ export type { ScopeViolationDetails } from "#/errors";
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACpD,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,SAAS,IAAI,kBAAkB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAG/F,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGtE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGjG,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACzF,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAG1F,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,OAAO,EACP,sBAAsB,EACtB,aAAa,EACb,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ // Token
2
+ export { token, tokenName, isToken } from "#/token";
3
+ // Container
4
+ export { Container } from "#/container";
5
+ export { effectiveBindingScope } from "#/binding-scope";
6
+ export { injectionSlotToResolveOptions, bindingSlotToResolveOptions } from "#/resolve-options";
7
+ // Module
8
+ export { AsyncModule, isSyncModule, Module, SyncModule } from "#/module";
9
+ // Decorators
10
+ export { inject, injectAll, isInjectionDescriptor, optional } from "#/decorators/inject";
11
+ export { injectable } from "#/decorators/injectable";
12
+ export { postConstruct, preDestroy } from "#/decorators/lifecycle-decorators";
13
+ // Auto-register
14
+ export { createAutoRegisterRegistry } from "#/decorators/injectable";
15
+ // MetadataReader
16
+ export { MetadataReaderToken } from "#/metadata/metadata-reader-token";
17
+ // Constraints — contextual injection predicates for .when()
18
+ export { whenAnyAncestorIs, whenAnyAncestorNamed, whenAnyAncestorTagged, whenAnyAncestorTaggedAll, whenNoAncestorIs, whenNoParentIs, whenParentIs, whenParentNamed, whenParentTagged, whenParentTaggedAll, } from "#/constraints";
19
+ // Errors
20
+ export { AmbiguousBindingError, AsyncActivationError, AsyncDeactivationError, AsyncModuleLoadError, AsyncResolutionError, CircularDependencyError, DiError, DisposedContainerError, InternalError, MissingContainerContextError, MissingMetadataError, MissingScopeContextError, NoMatchingBindingError, RebindUnboundTokenError, ScopeViolationError, SyncDisposalNotSupportedError, TokenNotBoundError, } from "#/errors";
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,QAAQ;AACR,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAgBpD,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAQ/F,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGzE,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE9E,gBAAgB;AAChB,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAGrE,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,4DAA4D;AAC5D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,SAAS;AACT,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,OAAO,EACP,sBAAsB,EACtB,aAAa,EACb,4BAA4B,EAC5B,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,GACnB,MAAM,UAAU,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { BindingRegistry } from "#/registry";
2
+ import type { ScopeManager } from "#/scope";
3
+ import type { Token } from "#/token";
4
+ import type { BindingIdentifier, BindingKind, BindingScope, BindingTag, Constructor, ResolveOptions } from "#/types";
5
+ /**
6
+ * @since 0.3.16-canary.0
7
+ */
8
+ export interface BindingSnapshot {
9
+ readonly tokenName: string;
10
+ readonly kind: BindingKind;
11
+ readonly scope: BindingScope;
12
+ readonly slot: {
13
+ readonly name?: string;
14
+ readonly tags: ReadonlyArray<BindingTag>;
15
+ };
16
+ readonly id: BindingIdentifier;
17
+ }
18
+ /**
19
+ * @since 0.3.16-canary.0
20
+ */
21
+ export interface ContainerSnapshot {
22
+ readonly ownBindings: ReadonlyArray<BindingSnapshot>;
23
+ readonly cachedSingletonCount: number;
24
+ readonly hasParent: boolean;
25
+ readonly isDisposed: boolean;
26
+ }
27
+ /**
28
+ * @since 0.3.16-canary.0
29
+ */
30
+ export declare class Inspector {
31
+ private readonly _registry;
32
+ private readonly _scope;
33
+ private readonly _hasParent;
34
+ private readonly _isDisposed;
35
+ constructor(_registry: BindingRegistry, _scope: ScopeManager, _hasParent: boolean, _isDisposed: () => boolean);
36
+ inspect(): ContainerSnapshot;
37
+ lookupBindings<Value>(token: Token<Value> | Constructor<Value>): ReadonlyArray<BindingSnapshot>;
38
+ has(token: Token<unknown> | Constructor, options?: ResolveOptions, parentHas?: () => boolean): boolean;
39
+ hasOwn(token: Token<unknown> | Constructor, options?: ResolveOptions): boolean;
40
+ private _makeConstraintContext;
41
+ private allBindingSnapshots;
42
+ private _toSnapshot;
43
+ }
44
+ //# sourceMappingURL=inspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspector.d.ts","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,UAAU,EAEV,WAAW,EACX,cAAc,EACf,MAAM,SAAS,CAAC;AAIjB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;KAC1C,CAAC;IACF,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACrD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAID;;GAEG;AACH,qBAAa,SAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJ9B,YACmB,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,MAAM,OAAO,EACzC;IAEJ,OAAO,IAAI,iBAAiB,CAQ3B;IAED,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,CAG9F;IAED,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAYrG;IAED,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAS7E;IAED,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,WAAW;CAcpB"}
@@ -0,0 +1,82 @@
1
+ import { effectiveBindingScope } from "#/binding-scope";
2
+ import { selectBinding } from "#/binding-select";
3
+ import { tokenName } from "#/token";
4
+ // ── Inspector ─────────────────────────────────────────────────────────────────
5
+ /**
6
+ * @since 0.3.16-canary.0
7
+ */
8
+ export class Inspector {
9
+ _registry;
10
+ _scope;
11
+ _hasParent;
12
+ _isDisposed;
13
+ constructor(_registry, _scope, _hasParent, _isDisposed) {
14
+ this._registry = _registry;
15
+ this._scope = _scope;
16
+ this._hasParent = _hasParent;
17
+ this._isDisposed = _isDisposed;
18
+ }
19
+ inspect() {
20
+ const snapshots = this.allBindingSnapshots();
21
+ return {
22
+ ownBindings: snapshots,
23
+ cachedSingletonCount: this._scope.getAllSingletons().size,
24
+ hasParent: this._hasParent,
25
+ isDisposed: this._isDisposed(),
26
+ };
27
+ }
28
+ lookupBindings(token) {
29
+ const bindings = this._registry.getAll(token);
30
+ return bindings.map((binding) => this._toSnapshot(binding));
31
+ }
32
+ has(token, options, parentHas) {
33
+ const bindings = this._registry.getAll(token);
34
+ if (bindings.length > 0) {
35
+ if (options !== undefined) {
36
+ if (selectBinding(bindings, options, this._makeConstraintContext(options), tokenName(token)) !== undefined) {
37
+ return true;
38
+ }
39
+ }
40
+ else {
41
+ return true;
42
+ }
43
+ }
44
+ return parentHas?.() ?? false;
45
+ }
46
+ hasOwn(token, options) {
47
+ const bindings = this._registry.getAll(token);
48
+ if (bindings.length === 0) {
49
+ return false;
50
+ }
51
+ if (options !== undefined) {
52
+ return selectBinding(bindings, options, this._makeConstraintContext(options), tokenName(token)) !== undefined;
53
+ }
54
+ return true;
55
+ }
56
+ _makeConstraintContext(options) {
57
+ return {
58
+ resolutionPath: [],
59
+ resolutionStack: [],
60
+ parent: undefined,
61
+ ancestors: [],
62
+ currentResolveOptions: options,
63
+ };
64
+ }
65
+ allBindingSnapshots() {
66
+ return this._registry.allBindings().map((binding) => this._toSnapshot(binding));
67
+ }
68
+ _toSnapshot(binding) {
69
+ const scope = effectiveBindingScope(binding);
70
+ const slot = binding.slot.name !== undefined
71
+ ? { name: binding.slot.name, tags: binding.slot.tags }
72
+ : { tags: binding.slot.tags };
73
+ return {
74
+ tokenName: tokenName(binding.token),
75
+ kind: binding.kind,
76
+ scope,
77
+ slot,
78
+ id: binding.id,
79
+ };
80
+ }
81
+ }
82
+ //# sourceMappingURL=inspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspector.js","sourceRoot":"","sources":["../src/inspector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Binding } from "#/binding";
2
+ import type { MetadataReader } from "#/metadata/metadata-types";
3
+ import type { Token } from "#/token";
4
+ import type { ActivationHandler, Constructor, DeactivationHandler, ResolutionContext } from "#/types";
5
+ /**
6
+ * @since 0.3.16-canary.0
7
+ */
8
+ export declare class LifecycleManager {
9
+ private readonly _activationHooks;
10
+ private readonly _deactivationHooks;
11
+ private _activationVersion;
12
+ registerActivation<const Value>(token: Token<Value> | Constructor<Value>, handler: ActivationHandler<Value>): void;
13
+ hasActivationHandlers<const Value>(token: Token<Value> | Constructor<Value>): boolean;
14
+ get activationVersion(): number;
15
+ registerDeactivation<const Value>(token: Token<Value> | Constructor<Value>, handler: DeactivationHandler<Value>): void;
16
+ runActivation<const Value>(resolutionContext: ResolutionContext, binding: Binding<Value>, instance: Value, metadataReader: MetadataReader): Promise<Value>;
17
+ runActivationSync<const Value>(resolutionContext: ResolutionContext, binding: Binding<Value>, instance: Value, metadataReader: MetadataReader): Value;
18
+ runDeactivation<const Value>(binding: Binding<Value>, instance: Value, metadataReader: MetadataReader): Promise<void>;
19
+ runDeactivationSync<const Value>(binding: Binding<Value>, instance: Value, metadataReader: MetadataReader): void;
20
+ }
21
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEtG;;GAEG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8E;IAC/G,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgF;IACnH,OAAO,CAAC,kBAAkB,CAAK;IAE/B,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAKjH;IAED,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAMpF;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAC9B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAClC,IAAI,CAGN;IAEK,aAAa,CAAC,KAAK,CAAC,KAAK,EAC7B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,KAAK,EACf,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,KAAK,CAAC,CAmChB;IAED,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAC3B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,KAAK,EACf,cAAc,EAAE,cAAc,GAC7B,KAAK,CA0CP;IAEK,eAAe,CAAC,KAAK,CAAC,KAAK,EAC/B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,KAAK,EACf,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqCf;IAED,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,GAAG,IAAI,CAsC/G;CACF"}
@@ -0,0 +1,174 @@
1
+ import { AsyncActivationError, AsyncDeactivationError } from "#/errors";
2
+ import { tokenName } from "#/token";
3
+ /**
4
+ * @since 0.3.16-canary.0
5
+ */
6
+ export class LifecycleManager {
7
+ // Container-level activation/deactivation hooks per token
8
+ _activationHooks = new Map();
9
+ _deactivationHooks = new Map();
10
+ _activationVersion = 0;
11
+ registerActivation(token, handler) {
12
+ this._activationVersion += 1;
13
+ // ✓ TS6.0: Map.getOrInsert (ES2025)
14
+ const list = this._activationHooks.getOrInsert(token, []);
15
+ list.push(handler);
16
+ }
17
+ hasActivationHandlers(token) {
18
+ if (this._activationHooks.size === 0) {
19
+ return false;
20
+ }
21
+ const list = this._activationHooks.get(token);
22
+ return list !== undefined && list.length > 0;
23
+ }
24
+ get activationVersion() {
25
+ return this._activationVersion;
26
+ }
27
+ registerDeactivation(token, handler) {
28
+ const list = this._deactivationHooks.getOrInsert(token, []);
29
+ list.push(handler);
30
+ }
31
+ async runActivation(resolutionContext, binding, instance, metadataReader) {
32
+ let activatedInstance = instance;
33
+ // 1. @postConstruct() — after TC39 construction (constructor + accessor addInitializer callbacks)
34
+ if (binding.kind === "class") {
35
+ const lifecycle = metadataReader.getLifecycleMetadata(binding.target);
36
+ if (lifecycle?.postConstruct && lifecycle.postConstruct.length > 0) {
37
+ for (const methodName of lifecycle.postConstruct) {
38
+ const method = activatedInstance[methodName];
39
+ if (typeof method === "function") {
40
+ const hookResult = method.call(activatedInstance);
41
+ if (hookResult instanceof Promise) {
42
+ await hookResult;
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ // 2. per-binding onActivation
49
+ if (binding.kind !== "alias" && binding.onActivation !== undefined) {
50
+ const activationResult = binding.onActivation(resolutionContext, activatedInstance);
51
+ activatedInstance = activationResult instanceof Promise ? await activationResult : activationResult;
52
+ }
53
+ // 3. container-level onActivation
54
+ const containerHooks = this._activationHooks.get(binding.token);
55
+ if (containerHooks !== undefined) {
56
+ for (const hook of containerHooks) {
57
+ const activationResult = hook(resolutionContext, activatedInstance);
58
+ activatedInstance = (activationResult instanceof Promise ? await activationResult : activationResult);
59
+ }
60
+ }
61
+ return activatedInstance;
62
+ }
63
+ runActivationSync(resolutionContext, binding, instance, metadataReader) {
64
+ let activatedInstance = instance;
65
+ // 1. @postConstruct() — must be sync (instance fully constructed per TC39 order)
66
+ if (binding.kind === "class") {
67
+ const lifecycle = metadataReader.getLifecycleMetadata(binding.target);
68
+ if (lifecycle?.postConstruct && lifecycle.postConstruct.length > 0) {
69
+ for (const methodName of lifecycle.postConstruct) {
70
+ const method = activatedInstance[methodName];
71
+ if (typeof method === "function") {
72
+ const hookResult = method.call(activatedInstance);
73
+ if (hookResult instanceof Promise) {
74
+ throw new AsyncActivationError(tokenName(binding.token), "postConstruct", methodName);
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ // 2. per-binding onActivation (must be sync)
81
+ if (binding.kind !== "alias" && binding.onActivation !== undefined) {
82
+ const activationResult = binding.onActivation(resolutionContext, activatedInstance);
83
+ if (activationResult instanceof Promise) {
84
+ throw new AsyncActivationError(tokenName(binding.token), "onActivation");
85
+ }
86
+ activatedInstance = activationResult;
87
+ }
88
+ // 3. container-level onActivation (must be sync)
89
+ const tokenDisplayName = tokenName(binding.token);
90
+ const containerHooks = this._activationHooks.get(binding.token);
91
+ if (containerHooks !== undefined) {
92
+ for (const hook of containerHooks) {
93
+ const activationResult = hook(resolutionContext, activatedInstance);
94
+ if (activationResult instanceof Promise) {
95
+ throw new AsyncActivationError(tokenDisplayName, "onActivation");
96
+ }
97
+ activatedInstance = activationResult;
98
+ }
99
+ }
100
+ return activatedInstance;
101
+ }
102
+ async runDeactivation(binding, instance, metadataReader) {
103
+ const tokenKey = binding.token;
104
+ // 1. container-level onDeactivation
105
+ const containerHooks = this._deactivationHooks.get(tokenKey);
106
+ if (containerHooks !== undefined) {
107
+ for (const hook of containerHooks) {
108
+ const hookResult = hook(instance);
109
+ if (hookResult instanceof Promise) {
110
+ await hookResult;
111
+ }
112
+ }
113
+ }
114
+ // 2. per-binding onDeactivation
115
+ if (binding.kind !== "alias" && binding.onDeactivation !== undefined) {
116
+ const hookResult = binding.onDeactivation(instance);
117
+ if (hookResult instanceof Promise) {
118
+ await hookResult;
119
+ }
120
+ }
121
+ // 3. @preDestroy() — all methods in declaration order
122
+ if (binding.kind === "class") {
123
+ const lifecycle = metadataReader.getLifecycleMetadata(binding.target);
124
+ if (lifecycle?.preDestroy && lifecycle.preDestroy.length > 0) {
125
+ for (const methodName of lifecycle.preDestroy) {
126
+ const method = instance[methodName];
127
+ if (typeof method === "function") {
128
+ const hookResult = method.call(instance);
129
+ if (hookResult instanceof Promise) {
130
+ await hookResult;
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
137
+ runDeactivationSync(binding, instance, metadataReader) {
138
+ const tokenDisplayName = tokenName(binding.token);
139
+ const tokenKey = binding.token;
140
+ // 1. container-level onDeactivation
141
+ const containerHooks = this._deactivationHooks.get(tokenKey);
142
+ if (containerHooks !== undefined) {
143
+ for (const hook of containerHooks) {
144
+ const hookResult = hook(instance);
145
+ if (hookResult instanceof Promise) {
146
+ throw new AsyncDeactivationError(tokenDisplayName);
147
+ }
148
+ }
149
+ }
150
+ // 2. per-binding onDeactivation
151
+ if (binding.kind !== "alias" && binding.onDeactivation !== undefined) {
152
+ const hookResult = binding.onDeactivation(instance);
153
+ if (hookResult instanceof Promise) {
154
+ throw new AsyncDeactivationError(tokenDisplayName);
155
+ }
156
+ }
157
+ // 3. @preDestroy()
158
+ if (binding.kind === "class") {
159
+ const lifecycle = metadataReader.getLifecycleMetadata(binding.target);
160
+ if (lifecycle?.preDestroy && lifecycle.preDestroy.length > 0) {
161
+ for (const methodName of lifecycle.preDestroy) {
162
+ const method = instance[methodName];
163
+ if (typeof method === "function") {
164
+ const hookResult = method.call(instance);
165
+ if (hookResult instanceof Promise) {
166
+ throw new AsyncDeactivationError(tokenDisplayName);
167
+ }
168
+ }
169
+ }
170
+ }
171
+ }
172
+ }
173
+ }
174
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC3B,0DAA0D;IACzC,gBAAgB,GAAG,IAAI,GAAG,EAAmE,CAAC;IAC9F,kBAAkB,GAAG,IAAI,GAAG,EAAqE,CAAC;IAC3G,kBAAkB,GAAG,CAAC,CAAC;IAE/B,kBAAkB,CAAc,KAAwC,EAAE,OAAiC;QACzG,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAC7B,oCAAoC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAqC,EAAE,EAAE,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,CAAC,OAAqC,CAAC,CAAC;IACnD,CAAC;IAED,qBAAqB,CAAc,KAAwC;QACzE,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAqC,CAAC,CAAC;QAC9E,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,oBAAoB,CAClB,KAAwC,EACxC,OAAmC;QAEnC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,KAAqC,EAAE,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,IAAI,CAAC,OAAuC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,iBAAoC,EACpC,OAAuB,EACvB,QAAe,EACf,cAA8B;QAE9B,IAAI,iBAAiB,GAAU,QAAQ,CAAC;QAExC,kGAAkG;QAClG,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtE,IAAI,SAAS,EAAE,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnE,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;oBACjD,MAAM,MAAM,GAAI,iBAA6C,CAAC,UAAU,CAAC,CAAC;oBAC1E,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wBACjC,MAAM,UAAU,GAAI,MAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBACrE,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;4BAClC,MAAM,UAAU,CAAC;wBACnB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;YACpF,iBAAiB,GAAG,gBAAgB,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACtG,CAAC;QAED,kCAAkC;QAClC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAqC,CAAC,CAAC;QAChG,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;gBACpE,iBAAiB,GAAG,CAAC,gBAAgB,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAU,CAAC;YACjH,CAAC;QACH,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,iBAAiB,CACf,iBAAoC,EACpC,OAAuB,EACvB,QAAe,EACf,cAA8B;QAE9B,IAAI,iBAAiB,GAAU,QAAQ,CAAC;QAExC,iFAAiF;QACjF,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtE,IAAI,SAAS,EAAE,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnE,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;oBACjD,MAAM,MAAM,GAAI,iBAA6C,CAAC,UAAU,CAAC,CAAC;oBAC1E,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wBACjC,MAAM,UAAU,GAAI,MAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBACrE,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;4BAClC,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;wBACxF,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;YACpF,IAAI,gBAAgB,YAAY,OAAO,EAAE,CAAC;gBACxC,MAAM,IAAI,oBAAoB,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;YAC3E,CAAC;YACD,iBAAiB,GAAG,gBAAgB,CAAC;QACvC,CAAC;QAED,iDAAiD;QACjD,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAqC,CAAC,CAAC;QAChG,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;gBACpE,IAAI,gBAAgB,YAAY,OAAO,EAAE,CAAC;oBACxC,MAAM,IAAI,oBAAoB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBACnE,CAAC;gBACD,iBAAiB,GAAG,gBAAyB,CAAC;YAChD,CAAC;QACH,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAuB,EACvB,QAAe,EACf,cAA8B;QAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAqC,CAAC;QAE/D,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;oBAClC,MAAM,UAAU,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACrE,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;gBAClC,MAAM,UAAU,CAAC;YACnB,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtE,IAAI,SAAS,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7D,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;oBAC9C,MAAM,MAAM,GAAI,QAAoC,CAAC,UAAU,CAAC,CAAC;oBACjE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wBACjC,MAAM,UAAU,GAAI,MAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC5D,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;4BAClC,MAAM,UAAU,CAAC;wBACnB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB,CAAc,OAAuB,EAAE,QAAe,EAAE,cAA8B;QACvG,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAqC,CAAC;QAE/D,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;oBAClC,MAAM,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACrE,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACpD,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;gBAClC,MAAM,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtE,IAAI,SAAS,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7D,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;oBAC9C,MAAM,MAAM,GAAI,QAAoC,CAAC,UAAU,CAAC,CAAC;oBACjE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wBACjC,MAAM,UAAU,GAAI,MAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC5D,IAAI,UAAU,YAAY,OAAO,EAAE,CAAC;4BAClC,MAAM,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;wBACrD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,16 +1,15 @@
1
- //#region src/metadata/metadata-keys.d.ts
2
1
  /**
3
2
  * @since 0.3.16-canary.0
4
3
  */
5
- declare const INJECTABLE_KEY: unique symbol;
4
+ export declare const INJECTABLE_KEY: unique symbol;
6
5
  /**
7
6
  * @since 0.3.16-canary.0
8
7
  */
9
- declare const LIFECYCLE_KEY: unique symbol;
8
+ export declare const LIFECYCLE_KEY: unique symbol;
10
9
  /**
11
10
  * @since 0.3.16-canary.0
12
11
  */
13
- declare const INJECT_ACCESSOR_KEY: unique symbol;
12
+ export declare const INJECT_ACCESSOR_KEY: unique symbol;
14
13
  /**
15
14
  * The well-known symbol used by TC39 Stage 3 decorator transforms to store class metadata.
16
15
  *
@@ -22,6 +21,5 @@ declare const INJECT_ACCESSOR_KEY: unique symbol;
22
21
  *
23
22
  * @since 0.3.16-canary.0
24
23
  */
25
- declare const METADATA_SYMBOL: symbol;
26
- //#endregion
27
- export { INJECTABLE_KEY, INJECT_ACCESSOR_KEY, LIFECYCLE_KEY, METADATA_SYMBOL };
24
+ export declare const METADATA_SYMBOL: symbol;
25
+ //# sourceMappingURL=metadata-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-keys.d.ts","sourceRoot":"","sources":["../../src/metadata/metadata-keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,MAAgC,CAAC;AACrE;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,MAA+B,CAAC;AACnE;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,EAAE,MAAyD,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @since 0.3.16-canary.0
3
+ */
4
+ export const INJECTABLE_KEY = Symbol("di:injectable");
5
+ /**
6
+ * @since 0.3.16-canary.0
7
+ */
8
+ export const LIFECYCLE_KEY = Symbol("di:lifecycle");
9
+ /**
10
+ * @since 0.3.16-canary.0
11
+ */
12
+ export const INJECT_ACCESSOR_KEY = Symbol("di:inject-accessor");
13
+ /**
14
+ * The well-known symbol used by TC39 Stage 3 decorator transforms to store class metadata.
15
+ *
16
+ * `Symbol.metadata` is defined natively once the runtime ships the full TC39 decorator
17
+ * proposal. Until then (current Node.js / browsers), Babel and esbuild both fall back to
18
+ * `Symbol.for("Symbol.metadata")` — a global-registry symbol with the same string key.
19
+ * Resolving it here once keeps the reader and the decorator transforms in sync regardless
20
+ * of which path is taken.
21
+ *
22
+ * @since 0.3.16-canary.0
23
+ */
24
+ export const METADATA_SYMBOL = Symbol.metadata ?? Symbol.for("Symbol.metadata");
25
+ //# sourceMappingURL=metadata-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-keys.js","sourceRoot":"","sources":["../../src/metadata/metadata-keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkB,MAAM,CAAC,eAAe,CAAC,CAAC;AACrE;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AACnE;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAkB,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAW,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { MetadataReader } from "#/metadata/metadata-types";
2
+ import type { Token } from "#/token";
3
+ /**
4
+ * @since 0.3.16-canary.0
5
+ */
6
+ export declare const MetadataReaderToken: Token<MetadataReader>;
7
+ //# sourceMappingURL=metadata-reader-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-reader-token.d.ts","sourceRoot":"","sources":["../../src/metadata/metadata-reader-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,cAAc,CAA2C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { token } from "#/token";
2
+ /**
3
+ * @since 0.3.16-canary.0
4
+ */
5
+ export const MetadataReaderToken = token("MetadataReader");
6
+ //# sourceMappingURL=metadata-reader-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-reader-token.js","sourceRoot":"","sources":["../../src/metadata/metadata-reader-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAA0B,KAAK,CAAiB,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { InjectionDescriptor } from "#/decorators/inject";
2
+ import type { Token } from "#/token";
3
+ import type { Constructor } from "#/types";
4
+ /**
5
+ * @since 0.3.16-canary.0
6
+ */
7
+ export interface ParamMetadata {
8
+ readonly index: number;
9
+ readonly token: Token<unknown> | Constructor;
10
+ readonly optional: boolean;
11
+ readonly multi: boolean;
12
+ readonly name?: string;
13
+ readonly tags?: ReadonlyArray<readonly [string, unknown]>;
14
+ }
15
+ /**
16
+ * @since 0.3.16-canary.0
17
+ */
18
+ export interface ConstructorMetadata {
19
+ readonly params: ReadonlyArray<ParamMetadata>;
20
+ }
21
+ /**
22
+ * @since 0.3.16-canary.0
23
+ */
24
+ export interface LifecycleMetadata {
25
+ readonly postConstruct: ReadonlyArray<string>;
26
+ readonly preDestroy: ReadonlyArray<string>;
27
+ }
28
+ /**
29
+ * Mutable buckets used while aggregating decorator metadata (same keys as {@link LifecycleMetadata}).
30
+ *
31
+ * @since 0.3.16-canary.0
32
+ */
33
+ export interface MutableLifecycleMetadata {
34
+ postConstruct: Array<string>;
35
+ preDestroy: Array<string>;
36
+ }
37
+ /**
38
+ * @since 0.3.16-canary.0
39
+ */
40
+ export interface MetadataReader {
41
+ getConstructorMetadata(target: Constructor): ConstructorMetadata | undefined;
42
+ getLifecycleMetadata(target: Constructor): LifecycleMetadata | undefined;
43
+ getAccessorMetadata?(target: Constructor): ReadonlyArray<{
44
+ readonly key: string | symbol;
45
+ readonly descriptor: InjectionDescriptor;
46
+ }> | undefined;
47
+ }
48
+ //# sourceMappingURL=metadata-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-types.d.ts","sourceRoot":"","sources":["../../src/metadata/metadata-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC5C;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAC7E,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACzE,mBAAmB,CAAC,CAClB,MAAM,EAAE,WAAW,GAClB,aAAa,CAAC;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;CAC3G"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=metadata-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-types.js","sourceRoot":"","sources":["../../src/metadata/metadata-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import type { InjectionDescriptor } from "#/decorators/inject";
2
+ import type { ConstructorMetadata, LifecycleMetadata, MetadataReader } from "#/metadata/metadata-types";
3
+ import type { Constructor } from "#/types";
4
+ /**
5
+ * @since 0.3.16-canary.0
6
+ */
7
+ export declare class SymbolMetadataReader implements MetadataReader {
8
+ private _getMetadataRecord;
9
+ getConstructorMetadata(target: Constructor): ConstructorMetadata | undefined;
10
+ getLifecycleMetadata(target: Constructor): LifecycleMetadata | undefined;
11
+ getAccessorMetadata(target: Constructor): Array<{
12
+ key: string | symbol;
13
+ descriptor: InjectionDescriptor;
14
+ }> | undefined;
15
+ }
16
+ /**
17
+ * @since 0.3.16-canary.0
18
+ */
19
+ export declare const defaultMetadataReader: SymbolMetadataReader;
20
+ //# sourceMappingURL=symbol-metadata-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol-metadata-reader.d.ts","sourceRoot":"","sources":["../../src/metadata/symbol-metadata-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACxG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;GAEG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,kBAAkB;IAY1B,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAG3E;IAED,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAGvE;IAED,mBAAmB,CACjB,MAAM,EAAE,WAAW,GAClB,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,UAAU,EAAE,mBAAmB,CAAA;KAAE,CAAC,GAAG,SAAS,CAK9E;CACF;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,sBAA6B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { INJECT_ACCESSOR_KEY, INJECTABLE_KEY, LIFECYCLE_KEY, METADATA_SYMBOL } from "#/metadata/metadata-keys";
2
+ /**
3
+ * @since 0.3.16-canary.0
4
+ */
5
+ export class SymbolMetadataReader {
6
+ _getMetadataRecord(target, key) {
7
+ const descriptor = Object.getOwnPropertyDescriptor(target, METADATA_SYMBOL);
8
+ if (descriptor === undefined) {
9
+ return undefined;
10
+ }
11
+ const record = descriptor.value;
12
+ if (!record || typeof record !== "object" || !Object.hasOwn(record, key)) {
13
+ return undefined;
14
+ }
15
+ return record;
16
+ }
17
+ getConstructorMetadata(target) {
18
+ const record = this._getMetadataRecord(target, INJECTABLE_KEY);
19
+ return record?.[INJECTABLE_KEY];
20
+ }
21
+ getLifecycleMetadata(target) {
22
+ const record = this._getMetadataRecord(target, LIFECYCLE_KEY);
23
+ return record?.[LIFECYCLE_KEY];
24
+ }
25
+ getAccessorMetadata(target) {
26
+ const record = this._getMetadataRecord(target, INJECT_ACCESSOR_KEY);
27
+ return record?.[INJECT_ACCESSOR_KEY];
28
+ }
29
+ }
30
+ /**
31
+ * @since 0.3.16-canary.0
32
+ */
33
+ export const defaultMetadataReader = new SymbolMetadataReader();
34
+ //# sourceMappingURL=symbol-metadata-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol-metadata-reader.js","sourceRoot":"","sources":["../../src/metadata/symbol-metadata-reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI/G;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACvB,kBAAkB,CAAC,MAAmB,EAAE,GAAoB;QAClE,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC5E,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,KAA4D,CAAC;QACvF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACzE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,sBAAsB,CAAC,MAAmB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/D,OAAO,MAAM,EAAE,CAAC,cAAc,CAAoC,CAAC;IACrE,CAAC;IAED,oBAAoB,CAAC,MAAmB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9D,OAAO,MAAM,EAAE,CAAC,aAAa,CAAkC,CAAC;IAClE,CAAC;IAED,mBAAmB,CACjB,MAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACpE,OAAO,MAAM,EAAE,CAAC,mBAAmB,CAEtB,CAAC;IAChB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,oBAAoB,EAAE,CAAC"}