@venizia/ignis-kernel 0.2.0-24 → 0.2.0-26

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 (143) hide show
  1. package/dist/cjs/base/applications/artifact-index.d.ts +9 -0
  2. package/dist/cjs/base/applications/artifact-index.d.ts.map +1 -1
  3. package/dist/cjs/base/applications/artifact-index.js +84 -10
  4. package/dist/cjs/base/applications/artifact-index.js.map +1 -1
  5. package/dist/cjs/base/applications/boot-sequence.d.ts +1 -0
  6. package/dist/cjs/base/applications/boot-sequence.d.ts.map +1 -1
  7. package/dist/cjs/base/applications/boot-sequence.js +2 -0
  8. package/dist/cjs/base/applications/boot-sequence.js.map +1 -1
  9. package/dist/cjs/base/applications/common/constants.d.ts +1 -0
  10. package/dist/cjs/base/applications/common/constants.d.ts.map +1 -1
  11. package/dist/cjs/base/applications/common/constants.js +2 -0
  12. package/dist/cjs/base/applications/common/constants.js.map +1 -1
  13. package/dist/cjs/base/applications/common/types/artifacts.d.ts +2 -0
  14. package/dist/cjs/base/applications/common/types/artifacts.d.ts.map +1 -1
  15. package/dist/cjs/base/applications/rest.d.ts +9 -5
  16. package/dist/cjs/base/applications/rest.d.ts.map +1 -1
  17. package/dist/cjs/base/applications/rest.js +72 -36
  18. package/dist/cjs/base/applications/rest.js.map +1 -1
  19. package/dist/cjs/base/configurations/base.d.ts +14 -0
  20. package/dist/cjs/base/configurations/base.d.ts.map +1 -0
  21. package/dist/cjs/base/configurations/base.js +21 -0
  22. package/dist/cjs/base/configurations/base.js.map +1 -0
  23. package/dist/cjs/base/configurations/common/index.d.ts +2 -0
  24. package/dist/cjs/base/configurations/common/index.d.ts.map +1 -0
  25. package/dist/cjs/base/configurations/common/index.js +18 -0
  26. package/dist/cjs/base/configurations/common/index.js.map +1 -0
  27. package/dist/cjs/base/configurations/common/types.d.ts +3 -0
  28. package/dist/cjs/base/configurations/common/types.d.ts.map +1 -0
  29. package/dist/cjs/base/configurations/common/types.js +3 -0
  30. package/dist/cjs/base/configurations/common/types.js.map +1 -0
  31. package/dist/cjs/base/configurations/index.d.ts +3 -0
  32. package/dist/cjs/base/configurations/index.d.ts.map +1 -0
  33. package/dist/cjs/base/configurations/index.js +19 -0
  34. package/dist/cjs/base/configurations/index.js.map +1 -0
  35. package/dist/cjs/base/index.d.ts +1 -0
  36. package/dist/cjs/base/index.d.ts.map +1 -1
  37. package/dist/cjs/base/index.js +1 -0
  38. package/dist/cjs/base/index.js.map +1 -1
  39. package/dist/cjs/base/metadata/injectable.d.ts +1 -0
  40. package/dist/cjs/base/metadata/injectable.d.ts.map +1 -1
  41. package/dist/cjs/base/metadata/injectable.js +11 -6
  42. package/dist/cjs/base/metadata/injectable.js.map +1 -1
  43. package/dist/cjs/base/metadata/injectors.d.ts +1 -4
  44. package/dist/cjs/base/metadata/injectors.d.ts.map +1 -1
  45. package/dist/cjs/base/metadata/injectors.js +1 -2
  46. package/dist/cjs/base/metadata/injectors.js.map +1 -1
  47. package/dist/cjs/base/metadata/persistents.d.ts.map +1 -1
  48. package/dist/cjs/base/metadata/persistents.js +1 -2
  49. package/dist/cjs/base/metadata/persistents.js.map +1 -1
  50. package/dist/cjs/base/mixins/common/types.d.ts +13 -6
  51. package/dist/cjs/base/mixins/common/types.d.ts.map +1 -1
  52. package/dist/cjs/base/repositories/core/abstract.js +2 -2
  53. package/dist/cjs/base/repositories/core/abstract.js.map +1 -1
  54. package/dist/cjs/common/bindings.d.ts +2 -6
  55. package/dist/cjs/common/bindings.d.ts.map +1 -1
  56. package/dist/cjs/common/bindings.js +3 -6
  57. package/dist/cjs/common/bindings.js.map +1 -1
  58. package/dist/cjs/helpers/inversion/common/constants.d.ts +1 -0
  59. package/dist/cjs/helpers/inversion/common/constants.d.ts.map +1 -1
  60. package/dist/cjs/helpers/inversion/common/constants.js +2 -0
  61. package/dist/cjs/helpers/inversion/common/constants.js.map +1 -1
  62. package/dist/cjs/helpers/inversion/common/types/artifact.d.ts +2 -0
  63. package/dist/cjs/helpers/inversion/common/types/artifact.d.ts.map +1 -1
  64. package/dist/cjs/helpers/inversion/mixins/artifact.mixin.d.ts.map +1 -1
  65. package/dist/cjs/helpers/inversion/mixins/controllers/controller.d.ts.map +1 -1
  66. package/dist/cjs/helpers/inversion/mixins/controllers/grpc.d.ts.map +1 -1
  67. package/dist/cjs/helpers/inversion/mixins/controllers/rest.d.ts.map +1 -1
  68. package/dist/cjs/helpers/inversion/mixins/datasource.mixin.d.ts.map +1 -1
  69. package/dist/cjs/helpers/inversion/mixins/model.mixin.d.ts.map +1 -1
  70. package/dist/cjs/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
  71. package/dist/cjs/helpers/inversion/registry.d.ts.map +1 -1
  72. package/dist/esm/base/applications/artifact-index.d.ts +9 -0
  73. package/dist/esm/base/applications/artifact-index.d.ts.map +1 -1
  74. package/dist/esm/base/applications/artifact-index.js +85 -11
  75. package/dist/esm/base/applications/artifact-index.js.map +1 -1
  76. package/dist/esm/base/applications/boot-sequence.d.ts +1 -0
  77. package/dist/esm/base/applications/boot-sequence.d.ts.map +1 -1
  78. package/dist/esm/base/applications/boot-sequence.js +2 -0
  79. package/dist/esm/base/applications/boot-sequence.js.map +1 -1
  80. package/dist/esm/base/applications/common/constants.d.ts +1 -0
  81. package/dist/esm/base/applications/common/constants.d.ts.map +1 -1
  82. package/dist/esm/base/applications/common/constants.js +2 -0
  83. package/dist/esm/base/applications/common/constants.js.map +1 -1
  84. package/dist/esm/base/applications/common/types/artifacts.d.ts +2 -0
  85. package/dist/esm/base/applications/common/types/artifacts.d.ts.map +1 -1
  86. package/dist/esm/base/applications/rest.d.ts +9 -5
  87. package/dist/esm/base/applications/rest.d.ts.map +1 -1
  88. package/dist/esm/base/applications/rest.js +73 -37
  89. package/dist/esm/base/applications/rest.js.map +1 -1
  90. package/dist/esm/base/configurations/base.d.ts +14 -0
  91. package/dist/esm/base/configurations/base.d.ts.map +1 -0
  92. package/dist/esm/base/configurations/base.js +17 -0
  93. package/dist/esm/base/configurations/base.js.map +1 -0
  94. package/dist/esm/base/configurations/common/index.d.ts +2 -0
  95. package/dist/esm/base/configurations/common/index.d.ts.map +1 -0
  96. package/dist/esm/base/configurations/common/index.js +2 -0
  97. package/dist/esm/base/configurations/common/index.js.map +1 -0
  98. package/dist/esm/base/configurations/common/types.d.ts +3 -0
  99. package/dist/esm/base/configurations/common/types.d.ts.map +1 -0
  100. package/dist/esm/base/configurations/common/types.js +2 -0
  101. package/dist/esm/base/configurations/common/types.js.map +1 -0
  102. package/dist/esm/base/configurations/index.d.ts +3 -0
  103. package/dist/esm/base/configurations/index.d.ts.map +1 -0
  104. package/dist/esm/base/configurations/index.js +3 -0
  105. package/dist/esm/base/configurations/index.js.map +1 -0
  106. package/dist/esm/base/index.d.ts +1 -0
  107. package/dist/esm/base/index.d.ts.map +1 -1
  108. package/dist/esm/base/index.js +1 -0
  109. package/dist/esm/base/index.js.map +1 -1
  110. package/dist/esm/base/metadata/injectable.d.ts +1 -0
  111. package/dist/esm/base/metadata/injectable.d.ts.map +1 -1
  112. package/dist/esm/base/metadata/injectable.js +9 -5
  113. package/dist/esm/base/metadata/injectable.js.map +1 -1
  114. package/dist/esm/base/metadata/injectors.d.ts +1 -4
  115. package/dist/esm/base/metadata/injectors.d.ts.map +1 -1
  116. package/dist/esm/base/metadata/injectors.js +1 -2
  117. package/dist/esm/base/metadata/injectors.js.map +1 -1
  118. package/dist/esm/base/metadata/persistents.d.ts.map +1 -1
  119. package/dist/esm/base/metadata/persistents.js +1 -2
  120. package/dist/esm/base/metadata/persistents.js.map +1 -1
  121. package/dist/esm/base/mixins/common/types.d.ts +13 -6
  122. package/dist/esm/base/mixins/common/types.d.ts.map +1 -1
  123. package/dist/esm/base/repositories/core/abstract.js +2 -2
  124. package/dist/esm/base/repositories/core/abstract.js.map +1 -1
  125. package/dist/esm/common/bindings.d.ts +2 -6
  126. package/dist/esm/common/bindings.d.ts.map +1 -1
  127. package/dist/esm/common/bindings.js +3 -6
  128. package/dist/esm/common/bindings.js.map +1 -1
  129. package/dist/esm/helpers/inversion/common/constants.d.ts +1 -0
  130. package/dist/esm/helpers/inversion/common/constants.d.ts.map +1 -1
  131. package/dist/esm/helpers/inversion/common/constants.js +2 -0
  132. package/dist/esm/helpers/inversion/common/constants.js.map +1 -1
  133. package/dist/esm/helpers/inversion/common/types/artifact.d.ts +2 -0
  134. package/dist/esm/helpers/inversion/common/types/artifact.d.ts.map +1 -1
  135. package/dist/esm/helpers/inversion/mixins/artifact.mixin.d.ts.map +1 -1
  136. package/dist/esm/helpers/inversion/mixins/controllers/controller.d.ts.map +1 -1
  137. package/dist/esm/helpers/inversion/mixins/controllers/grpc.d.ts.map +1 -1
  138. package/dist/esm/helpers/inversion/mixins/controllers/rest.d.ts.map +1 -1
  139. package/dist/esm/helpers/inversion/mixins/datasource.mixin.d.ts.map +1 -1
  140. package/dist/esm/helpers/inversion/mixins/model.mixin.d.ts.map +1 -1
  141. package/dist/esm/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
  142. package/dist/esm/helpers/inversion/registry.d.ts.map +1 -1
  143. package/package.json +3 -3
@@ -1,3 +1,4 @@
1
+ import type { TClass } from '@venizia/ignis-helpers/common';
1
2
  import { BaseHelper } from '@venizia/ignis-helpers/core';
2
3
  import type { IArtifactIndex, TArtifactIndexInput } from './common';
3
4
  /** Turns a `configs.artifacts` input into the classes to register: flattens nested indexes, drops the classes whose `when` says no, orders the rest. It never touches the container - `registerArtifacts` does the binding. */
@@ -10,6 +11,14 @@ export declare class ArtifactIndexHelper extends BaseHelper {
10
11
  input: TArtifactIndexInput;
11
12
  application: unknown;
12
13
  }): Promise<Required<IArtifactIndex>>;
14
+ /**
15
+ * Topologically sort configurations based on `after` dependencies.
16
+ * Siblings with no dependency relation are sorted deterministically by class name.
17
+ * Throws if an unknown `after` dependency is referenced or if a dependency cycle is detected.
18
+ */
19
+ sortConfigurationsTopologically(opts: {
20
+ classes: ReadonlyArray<TClass<any>>;
21
+ }): TClass<any>[];
13
22
  /** One index, or arrays nested to any depth, as a flat list in input order; a conditional entry contributes its subtree only when its `when` answers true. */
14
23
  flatten(opts: {
15
24
  input: TArtifactIndexInput;
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-index.d.ts","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAA6B,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/F,+NAA+N;AAC/N,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,2BAA2B;IAE9D,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC,yHAAyH;IACnH,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAiCrC,8JAA8J;IACxJ,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsB7B,4IAA4I;IAC5I,OAAO,CAAC,aAAa;IAMrB,mNAAmN;IAC7M,MAAM,CAAC,KAAK,SAAS,MAAM,cAAc,EAAE,IAAI,EAAE;QACrD,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,KAAK,EAAE,KAAK,CAAC;QACb,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YA0B3C,UAAU;CAYzB"}
1
+ {"version":3,"file":"artifact-index.d.ts","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAA6B,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/F,+NAA+N;AAC/N,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,2BAA2B;IAE9D,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC,yHAAyH;IACnH,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IA0CrC;;;;OAIG;IACH,+BAA+B,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;KAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE;IA0E7F,8JAA8J;IACxJ,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsB7B,4IAA4I;IAC5I,OAAO,CAAC,aAAa;IAMrB,mNAAmN;IAC7M,MAAM,CAAC,KAAK,SAAS,MAAM,cAAc,EAAE,IAAI,EAAE;QACrD,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,KAAK,EAAE,KAAK,CAAC;QACb,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YA4B3C,UAAU;CAWzB"}
@@ -21,6 +21,14 @@ class ArtifactIndexHelper extends core_1.BaseHelper {
21
21
  async resolve(opts) {
22
22
  const { input, application } = opts;
23
23
  const indexes = await this.flatten({ input, application });
24
+ const rawConfigurations = await this.select({
25
+ indexes,
26
+ field: common_1.ArtifactIndexFields.CONFIGURATIONS,
27
+ application,
28
+ });
29
+ const configurations = this.sortConfigurationsTopologically({
30
+ classes: rawConfigurations,
31
+ });
24
32
  const dataSources = await this.select({
25
33
  indexes,
26
34
  field: common_1.ArtifactIndexFields.DATA_SOURCES,
@@ -46,7 +54,73 @@ class ArtifactIndexHelper extends core_1.BaseHelper {
46
54
  field: common_1.ArtifactIndexFields.CONTROLLERS,
47
55
  application,
48
56
  });
49
- return { dataSources, components, repositories, services, controllers };
57
+ return { configurations, dataSources, components, repositories, services, controllers };
58
+ }
59
+ /**
60
+ * Topologically sort configurations based on `after` dependencies.
61
+ * Siblings with no dependency relation are sorted deterministically by class name.
62
+ * Throws if an unknown `after` dependency is referenced or if a dependency cycle is detected.
63
+ */
64
+ sortConfigurationsTopologically(opts) {
65
+ const { classes } = opts;
66
+ if (classes.length === 0) {
67
+ return [];
68
+ }
69
+ const registry = inversion_1.MetadataRegistry.getInstance();
70
+ const classMap = new Map();
71
+ for (const target of classes) {
72
+ classMap.set(target.name, target);
73
+ }
74
+ // Build graph: edge A -> B means A must run before B (B declared after: [A])
75
+ const inDegree = new Map();
76
+ const adjacency = new Map();
77
+ for (const target of classes) {
78
+ inDegree.set(target.name, 0);
79
+ adjacency.set(target.name, []);
80
+ }
81
+ for (const target of classes) {
82
+ const metadata = registry.getArtifactMetadata({ target });
83
+ const afterList = metadata?.after ?? [];
84
+ for (const prereq of afterList) {
85
+ const prereqName = typeof prereq === 'function' ? prereq.name : String(prereq);
86
+ if (!classMap.has(prereqName)) {
87
+ throw (0, core_1.getError)({
88
+ message: `[sortConfigurationsTopologically][${target.name}] Declared 'after' dependency '${prereqName}' is not registered as a configuration`,
89
+ });
90
+ }
91
+ adjacency.get(prereqName).push(target.name);
92
+ inDegree.set(target.name, (inDegree.get(target.name) ?? 0) + 1);
93
+ }
94
+ }
95
+ // Kahn's algorithm with priority queue (sorted by class name for deterministic sibling ordering)
96
+ const available = [];
97
+ for (const [name, deg] of inDegree.entries()) {
98
+ if (deg === 0) {
99
+ available.push(name);
100
+ }
101
+ }
102
+ available.sort((a, b) => a.localeCompare(b));
103
+ const sortedNames = [];
104
+ while (available.length > 0) {
105
+ const current = available.shift();
106
+ sortedNames.push(current);
107
+ const dependents = adjacency.get(current) ?? [];
108
+ for (const dep of dependents) {
109
+ const newDeg = inDegree.get(dep) - 1;
110
+ inDegree.set(dep, newDeg);
111
+ if (newDeg === 0) {
112
+ available.push(dep);
113
+ available.sort((a, b) => a.localeCompare(b));
114
+ }
115
+ }
116
+ }
117
+ if (sortedNames.length !== classes.length) {
118
+ const unvisited = classes.filter(c => !sortedNames.includes(c.name)).map(c => c.name);
119
+ throw (0, core_1.getError)({
120
+ message: `[sortConfigurationsTopologically] Dependency cycle detected in configurations: ${unvisited.join(', ')}`,
121
+ });
122
+ }
123
+ return sortedNames.map(name => classMap.get(name));
50
124
  }
51
125
  /** One index, or arrays nested to any depth, as a flat list in input order; a conditional entry contributes its subtree only when its `when` answers true. */
52
126
  async flatten(opts) {
@@ -74,26 +148,26 @@ class ArtifactIndexHelper extends core_1.BaseHelper {
74
148
  const { indexes, field, application } = opts;
75
149
  const registry = inversion_1.MetadataRegistry.getInstance();
76
150
  const listed = indexes.flatMap(index => [...(index[field] ?? [])]);
77
- const decisions = await Promise.all(listed.map(ctor => this.isSelected({ ctor, application })));
78
- const kept = listed.filter((ctor, position) => {
151
+ const decisions = await Promise.all(listed.map(target => this.isSelected({ target, application })));
152
+ const kept = listed.filter((target, position) => {
79
153
  if (decisions[position]) {
80
154
  return true;
81
155
  }
82
- this.logger.debug('Skipped by condition | kind: %s | class: %s', field, ctor.name);
156
+ this.logger.debug('Skipped by condition | kind: %s | class: %s', field, target.name);
83
157
  return false;
84
158
  });
85
159
  return kept
86
- .map((ctor, position) => ({
87
- ctor,
160
+ .map((target, position) => ({
161
+ target,
88
162
  position,
89
- order: registry.getArtifactMetadata({ target: ctor })?.order ?? 0,
163
+ order: registry.getArtifactMetadata({ target })?.order ?? 0,
90
164
  }))
91
165
  .sort((a, b) => a.order - b.order || a.position - b.position)
92
- .map(entry => entry.ctor);
166
+ .map(entry => entry.target);
93
167
  }
94
168
  async isSelected(opts) {
95
- const { ctor, application } = opts;
96
- const when = inversion_1.MetadataRegistry.getInstance().getArtifactMetadata({ target: ctor })?.when;
169
+ const { target, application } = opts;
170
+ const when = inversion_1.MetadataRegistry.getInstance().getArtifactMetadata({ target })?.when;
97
171
  if (!when) {
98
172
  return true;
99
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-index.js","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-index.js","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare class BootSteps {
5
5
  static readonly REGISTER_ARTIFACTS = "registerArtifacts";
6
6
  static readonly PRE_CONFIGURE = "preConfigure";
7
7
  static readonly REGISTER_DEFAULT_MIDDLEWARES = "registerDefaultMiddlewares";
8
+ static readonly REGISTER_CONFIGURATIONS = "registerConfigurations";
8
9
  static readonly REGISTER_DATA_SOURCES = "registerDataSources";
9
10
  static readonly REGISTER_COMPONENTS = "registerComponents";
10
11
  static readonly REGISTER_CONTRIBUTED_DATA_SOURCES = "registerContributedDataSources";
@@ -1 +1 @@
1
- {"version":3,"file":"boot-sequence.d.ts","sourceRoot":"","sources":["../../../../src/base/applications/boot-sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGjF,+LAA+L;AAC/L,qBAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,CAAC,gBAAgB,qBAAqB;IACrD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,uBAAuB;IACzD,MAAM,CAAC,QAAQ,CAAC,aAAa,kBAAkB;IAC/C,MAAM,CAAC,QAAQ,CAAC,4BAA4B,gCAAgC;IAC5E,MAAM,CAAC,QAAQ,CAAC,qBAAqB,yBAAyB;IAC9D,MAAM,CAAC,QAAQ,CAAC,mBAAmB,wBAAwB;IAC3D,MAAM,CAAC,QAAQ,CAAC,iCAAiC,oCAAoC;IACrF,MAAM,CAAC,QAAQ,CAAC,oBAAoB,yBAAyB;IAC7D,MAAM,CAAC,QAAQ,CAAC,cAAc,mBAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,eAAe,oBAAoB;IAEnD,MAAM,CAAC,QAAQ,CAAC,UAAU,cAWvB;IAEH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,SAAS,CAAC,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,2KAA2K;AAC3K,qBAAa,YAAY;IACvB,2IAA2I;IAC3I,OAAO,CAAC,MAAM,CAAC,OAAO;IAsBtB,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;QACvB,KAAK,EAAE,iBAAiB,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,iBAAiB,CAAC;KACzB,GAAG,iBAAiB,EAAE;CAMxB"}
1
+ {"version":3,"file":"boot-sequence.d.ts","sourceRoot":"","sources":["../../../../src/base/applications/boot-sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGjF,+LAA+L;AAC/L,qBAAa,SAAS;IACpB,MAAM,CAAC,QAAQ,CAAC,gBAAgB,qBAAqB;IACrD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,uBAAuB;IACzD,MAAM,CAAC,QAAQ,CAAC,aAAa,kBAAkB;IAC/C,MAAM,CAAC,QAAQ,CAAC,4BAA4B,gCAAgC;IAC5E,MAAM,CAAC,QAAQ,CAAC,uBAAuB,4BAA4B;IACnE,MAAM,CAAC,QAAQ,CAAC,qBAAqB,yBAAyB;IAC9D,MAAM,CAAC,QAAQ,CAAC,mBAAmB,wBAAwB;IAC3D,MAAM,CAAC,QAAQ,CAAC,iCAAiC,oCAAoC;IACrF,MAAM,CAAC,QAAQ,CAAC,oBAAoB,yBAAyB;IAC7D,MAAM,CAAC,QAAQ,CAAC,cAAc,mBAAmB;IACjD,MAAM,CAAC,QAAQ,CAAC,eAAe,oBAAoB;IACnD,MAAM,CAAC,QAAQ,CAAC,UAAU,cAYvB;IAEH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,SAAS,CAAC,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,2KAA2K;AAC3K,qBAAa,YAAY;IACvB,2IAA2I;IAC3I,OAAO,CAAC,MAAM,CAAC,OAAO;IAsBtB,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;QACvB,KAAK,EAAE,iBAAiB,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,iBAAiB,CAAC;KACzB,GAAG,iBAAiB,EAAE;CAMxB"}
@@ -8,6 +8,7 @@ class BootSteps {
8
8
  static { this.REGISTER_ARTIFACTS = 'registerArtifacts'; }
9
9
  static { this.PRE_CONFIGURE = 'preConfigure'; }
10
10
  static { this.REGISTER_DEFAULT_MIDDLEWARES = 'registerDefaultMiddlewares'; }
11
+ static { this.REGISTER_CONFIGURATIONS = 'registerConfigurations'; }
11
12
  static { this.REGISTER_DATA_SOURCES = 'registerDataSources'; }
12
13
  static { this.REGISTER_COMPONENTS = 'registerComponents'; }
13
14
  static { this.REGISTER_CONTRIBUTED_DATA_SOURCES = 'registerContributedDataSources'; }
@@ -19,6 +20,7 @@ class BootSteps {
19
20
  this.REGISTER_ARTIFACTS,
20
21
  this.PRE_CONFIGURE,
21
22
  this.REGISTER_DEFAULT_MIDDLEWARES,
23
+ this.REGISTER_CONFIGURATIONS,
22
24
  this.REGISTER_DATA_SOURCES,
23
25
  this.REGISTER_COMPONENTS,
24
26
  this.REGISTER_CONTRIBUTED_DATA_SOURCES,
@@ -1 +1 @@
1
- {"version":3,"file":"boot-sequence.js","sourceRoot":"","sources":["../../../../src/base/applications/boot-sequence.ts"],"names":[],"mappings":";;;AACA,sDAAuD;AAEvD,+LAA+L;AAC/L,MAAa,SAAS;aACJ,qBAAgB,GAAG,iBAAiB,CAAC;aACrC,uBAAkB,GAAG,mBAAmB,CAAC;aACzC,kBAAa,GAAG,cAAc,CAAC;aAC/B,iCAA4B,GAAG,4BAA4B,CAAC;aAC5D,0BAAqB,GAAG,qBAAqB,CAAC;aAC9C,wBAAmB,GAAG,oBAAoB,CAAC;aAC3C,sCAAiC,GAAG,gCAAgC,CAAC;aACrE,yBAAoB,GAAG,qBAAqB,CAAC;aAC7C,mBAAc,GAAG,eAAe,CAAC;aACjC,oBAAe,GAAG,gBAAgB,CAAC;aAEnC,eAAU,GAAG,IAAI,GAAG,CAAS;QAC3C,IAAI,CAAC,gBAAgB;QACrB,IAAI,CAAC,kBAAkB;QACvB,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,4BAA4B;QACjC,IAAI,CAAC,qBAAqB;QAC1B,IAAI,CAAC,mBAAmB;QACxB,IAAI,CAAC,iCAAiC;QACtC,IAAI,CAAC,oBAAoB;QACzB,IAAI,CAAC,cAAc;QACnB,IAAI,CAAC,eAAe;KACrB,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AA3BH,8BA4BC;AASD,2KAA2K;AAC3K,MAAa,YAAY;IACvB,2IAA2I;IACnI,MAAM,CAAC,OAAO,CAAC,IAAoD;QACzE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,MAAM,IAAA,eAAQ,EAAC;oBACb,OAAO,EAAE,iCAAiC,MAAM,oBAAoB,KAAK,EAAE;iBAC5E,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAA,eAAQ,EAAC;oBACb,OAAO,EAAE,mCAAmC,MAAM,aAAa,OAAO,CAAC,MAAM,yBAAyB,KAAK,EAAE;iBAC9G,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAIlB;QACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtD,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;CACF;AAlCD,oCAkCC"}
1
+ {"version":3,"file":"boot-sequence.js","sourceRoot":"","sources":["../../../../src/base/applications/boot-sequence.ts"],"names":[],"mappings":";;;AACA,sDAAuD;AAEvD,+LAA+L;AAC/L,MAAa,SAAS;aACJ,qBAAgB,GAAG,iBAAiB,CAAC;aACrC,uBAAkB,GAAG,mBAAmB,CAAC;aACzC,kBAAa,GAAG,cAAc,CAAC;aAC/B,iCAA4B,GAAG,4BAA4B,CAAC;aAC5D,4BAAuB,GAAG,wBAAwB,CAAC;aACnD,0BAAqB,GAAG,qBAAqB,CAAC;aAC9C,wBAAmB,GAAG,oBAAoB,CAAC;aAC3C,sCAAiC,GAAG,gCAAgC,CAAC;aACrE,yBAAoB,GAAG,qBAAqB,CAAC;aAC7C,mBAAc,GAAG,eAAe,CAAC;aACjC,oBAAe,GAAG,gBAAgB,CAAC;aACnC,eAAU,GAAG,IAAI,GAAG,CAAS;QAC3C,IAAI,CAAC,gBAAgB;QACrB,IAAI,CAAC,kBAAkB;QACvB,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,4BAA4B;QACjC,IAAI,CAAC,uBAAuB;QAC5B,IAAI,CAAC,qBAAqB;QAC1B,IAAI,CAAC,mBAAmB;QACxB,IAAI,CAAC,iCAAiC;QACtC,IAAI,CAAC,oBAAoB;QACzB,IAAI,CAAC,cAAc;QACnB,IAAI,CAAC,eAAe;KACrB,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AA5BH,8BA6BC;AASD,2KAA2K;AAC3K,MAAa,YAAY;IACvB,2IAA2I;IACnI,MAAM,CAAC,OAAO,CAAC,IAAoD;QACzE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,MAAM,IAAA,eAAQ,EAAC;oBACb,OAAO,EAAE,iCAAiC,MAAM,oBAAoB,KAAK,EAAE;iBAC5E,CAAC,CAAC;YACL,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;gBACP,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAA,eAAQ,EAAC;oBACb,OAAO,EAAE,mCAAmC,MAAM,aAAa,OAAO,CAAC,MAAM,yBAAyB,KAAK,EAAE;iBAC9G,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAIlB;QACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtD,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;CACF;AAlCD,oCAkCC"}
@@ -1,6 +1,7 @@
1
1
  import type { TConstValue } from '@venizia/ignis-helpers/common';
2
2
  /** The `IArtifactIndex` field names, in registration order. `@venizia/ignis-boot` mirrors these values in its own `ArtifactIndexFields` - boot cannot depend on kernel. */
3
3
  export declare class ArtifactIndexFields {
4
+ static readonly CONFIGURATIONS = "configurations";
4
5
  static readonly DATA_SOURCES = "dataSources";
5
6
  static readonly COMPONENTS = "components";
6
7
  static readonly REPOSITORIES = "repositories";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/base/applications/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,2KAA2K;AAC3K,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,YAAY,iBAAiB;IAC7C,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY,kBAAkB;IAC9C,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IACtC,MAAM,CAAC,QAAQ,CAAC,WAAW,iBAAiB;IAE5C,MAAM,CAAC,QAAQ,CAAC,UAAU,cAMvB;IAEH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE1E,eAAO,MAAM,kBAAkB,6DAA8D,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/base/applications/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,2KAA2K;AAC3K,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,cAAc,oBAAoB;IAClD,MAAM,CAAC,QAAQ,CAAC,YAAY,iBAAiB;IAC7C,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY,kBAAkB;IAC9C,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;IACtC,MAAM,CAAC,QAAQ,CAAC,WAAW,iBAAiB;IAE5C,MAAM,CAAC,QAAQ,CAAC,UAAU,cAOvB;IAEH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE1E,eAAO,MAAM,kBAAkB,6DAA8D,CAAC"}
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SecFetchSiteValues = exports.ArtifactIndexFields = void 0;
4
4
  /** The `IArtifactIndex` field names, in registration order. `@venizia/ignis-boot` mirrors these values in its own `ArtifactIndexFields` - boot cannot depend on kernel. */
5
5
  class ArtifactIndexFields {
6
+ static { this.CONFIGURATIONS = 'configurations'; }
6
7
  static { this.DATA_SOURCES = 'dataSources'; }
7
8
  static { this.COMPONENTS = 'components'; }
8
9
  static { this.REPOSITORIES = 'repositories'; }
9
10
  static { this.SERVICES = 'services'; }
10
11
  static { this.CONTROLLERS = 'controllers'; }
11
12
  static { this.SCHEME_SET = new Set([
13
+ this.CONFIGURATIONS,
12
14
  this.DATA_SOURCES,
13
15
  this.COMPONENTS,
14
16
  this.REPOSITORIES,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/base/applications/common/constants.ts"],"names":[],"mappings":";;;AAEA,2KAA2K;AAC3K,MAAa,mBAAmB;aACd,iBAAY,GAAG,aAAa,CAAC;aAC7B,eAAU,GAAG,YAAY,CAAC;aAC1B,iBAAY,GAAG,cAAc,CAAC;aAC9B,aAAQ,GAAG,UAAU,CAAC;aACtB,gBAAW,GAAG,aAAa,CAAC;aAE5B,eAAU,GAAG,IAAI,GAAG,CAAS;QAC3C,IAAI,CAAC,YAAY;QACjB,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,YAAY;QACjB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,WAAW;KACjB,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AAjBH,kDAkBC;AAIY,QAAA,kBAAkB,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAU,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/base/applications/common/constants.ts"],"names":[],"mappings":";;;AAEA,2KAA2K;AAC3K,MAAa,mBAAmB;aACd,mBAAc,GAAG,gBAAgB,CAAC;aAClC,iBAAY,GAAG,aAAa,CAAC;aAC7B,eAAU,GAAG,YAAY,CAAC;aAC1B,iBAAY,GAAG,cAAc,CAAC;aAC9B,aAAQ,GAAG,UAAU,CAAC;aACtB,gBAAW,GAAG,aAAa,CAAC;aAE5B,eAAU,GAAG,IAAI,GAAG,CAAS;QAC3C,IAAI,CAAC,cAAc;QACnB,IAAI,CAAC,YAAY;QACjB,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,YAAY;QACjB,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,WAAW;KACjB,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AAnBH,kDAoBC;AAIY,QAAA,kBAAkB,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAU,CAAC"}
@@ -1,11 +1,13 @@
1
1
  import type { TArtifactCondition } from '../../../../helpers/inversion/common/types';
2
2
  import type { TClass } from '@venizia/ignis-helpers/common';
3
3
  import type { BaseComponent } from '../../../components';
4
+ import type { BaseConfiguration } from '../../../configurations';
4
5
  import type { IDataSource } from '../../../datasources';
5
6
  import type { IRepository } from '../../../repositories';
6
7
  import type { IService } from '../../../services';
7
8
  /** The shape `@venizia/ignis-boot`'s generator emits and `registerArtifacts()` consumes. Kinds are registered in this field order. */
8
9
  export interface IArtifactIndex {
10
+ configurations?: ReadonlyArray<TClass<BaseConfiguration>>;
9
11
  dataSources?: ReadonlyArray<TClass<IDataSource>>;
10
12
  components?: ReadonlyArray<TClass<BaseComponent>>;
11
13
  repositories?: ReadonlyArray<TClass<IRepository>>;
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../../../../src/base/applications/common/types/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,sIAAsI;AACtI,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C;AAED,sUAAsU;AACtU,MAAM,WAAW,yBAA0B,SAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,cAAc,EAAE,KAAK,CAAC,CAAC;IAC7F,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED,iIAAiI;AACjI,MAAM,MAAM,mBAAmB,GAC7B,cAAc,GAAG,yBAAyB,GAAG,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../../../../src/base/applications/common/types/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,sIAAsI;AACtI,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C;AAED,sUAAsU;AACtU,MAAM,WAAW,yBAA0B,SAAQ,OAAO,CAAC,MAAM,CAAC,MAAM,cAAc,EAAE,KAAK,CAAC,CAAC;IAC7F,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED,iIAAiI;AACjI,MAAM,MAAM,mBAAmB,GAC7B,cAAc,GAAG,yBAAyB,GAAG,mBAAmB,EAAE,CAAC"}
@@ -5,6 +5,7 @@ import type { IConfigurable, TClass, ValueOrPromise } from '@venizia/ignis-helpe
5
5
  import { RequestIdGenerator } from '@venizia/ignis-helpers/core';
6
6
  import type { Env, Schema } from 'hono';
7
7
  import type { BaseComponent } from '../components';
8
+ import type { BaseConfiguration } from '../configurations';
8
9
  import type { IDataSource } from '../datasources';
9
10
  import { BaseAppErrorMiddleware } from '../middlewares/app-error/app-error.middleware';
10
11
  import type { TMixinOpts } from '../mixins/common';
@@ -26,6 +27,7 @@ interface IRegisterDynamicBindingsOptions<T extends IConfigurable = IConfigurabl
26
27
  /** Adds the `OpenAPIHono` router surface on top of `AbstractApplication` - no listening server, so this is the layer a browser Worker or gRPC-only host can extend without pulling in `Bun.serve` / `@hono/node-server`. */
27
28
  export declare abstract class RestApplication<AppEnv extends Env = Env, AppSchema extends Schema = {}, BasePath extends string = '/'> extends AbstractApplication {
28
29
  private registeredBindings;
30
+ private artifactOptions;
29
31
  /** The router, and nothing else. What runtime is underneath and what socket is bound are `ServerApplication`'s to know - a browser Worker has neither, and carrying the union here made `RuntimeModules.detect()` answer `'node'` inside a Worker. */
30
32
  protected server: {
31
33
  hono: OpenAPIHono<AppEnv, AppSchema, BasePath>;
@@ -87,7 +89,9 @@ export declare abstract class RestApplication<AppEnv extends Env = Env, AppSchem
87
89
  }): void;
88
90
  /** Resolution order for every registration: explicit `opts` > the class's `@injectable` defaults > the derived key and the kind's default scope. `order` and `when` are `registerArtifacts`' concern, not this one. */
89
91
  private registerArtifact;
90
- component<Base extends BaseComponent>(ctor: TClass<Base>, opts?: TMixinOpts): Binding<Base>;
92
+ configuration<Base extends BaseConfiguration<Options>, Options extends object = {}>(target: TClass<Base>, opts?: TMixinOpts<Options>): Binding<Base>;
93
+ registerConfigurations(): Promise<void>;
94
+ component<Base extends BaseComponent<Options>, Options extends object = {}>(target: TClass<Base>, opts?: TMixinOpts<Options>): Binding<Base>;
91
95
  registerComponents(): Promise<void>;
92
96
  /**
93
97
  * Second DATASOURCE sweep, for datasources components contributed at any depth. Calls
@@ -98,10 +102,10 @@ export declare abstract class RestApplication<AppEnv extends Env = Env, AppSchem
98
102
  /** REST only - the kernel has no gRPC (it reaches `node:module`). `BaseApplication` adds the gRPC branch on top. */
99
103
  registerControllers(): Promise<void>;
100
104
  /** SINGLETON like `component()`: `RestComponent` mounts the one instance it resolves, so a second resolution must be that instance, not an unmounted twin. */
101
- controller<Base>(ctor: TClass<Base>, opts?: TMixinOpts): Binding<Base>;
102
- service<Base extends IService>(ctor: TClass<Base>, opts?: TMixinOpts): Binding<Base>;
103
- repository<Base extends IRepository>(ctor: TClass<Base>, opts?: TMixinOpts): Binding<Base>;
104
- dataSource<Base extends IDataSource>(ctor: TClass<Base>, opts?: TMixinOpts): Binding<Base>;
105
+ controller<Base>(target: TClass<Base>, opts?: TMixinOpts): Binding<Base>;
106
+ service<Base extends IService>(target: TClass<Base>, opts?: TMixinOpts): Binding<Base>;
107
+ repository<Base extends IRepository>(target: TClass<Base>, opts?: TMixinOpts): Binding<Base>;
108
+ dataSource<Base extends IDataSource<Options>, Options extends object = {}>(target: TClass<Base>, opts?: TMixinOpts<Options>): Binding<Base>;
105
109
  /** The boot step body behind `configs.artifacts`, also callable by hand: registers every kind in dependency order across the given indexes. */
106
110
  registerArtifacts(index: TArtifactIndexInput): Promise<void>;
107
111
  /** The boot step behind `configs.artifacts`; an application with none configured registers nothing here. */
@@ -1 +1 @@
1
- {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../../../src/base/applications/rest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAGL,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAEvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEzE,UAAU,+BAA+B,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IAC/E,SAAS,EAAE,iBAAiB,CAAC;IAE7B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClF;AAED,4NAA4N;AAC5N,8BAAsB,eAAe,CACnC,MAAM,SAAS,GAAG,GAAG,GAAG,EACxB,SAAS,SAAS,MAAM,GAAG,EAAE,EAC7B,QAAQ,SAAS,MAAM,GAAG,GAAG,CAC7B,SAAQ,mBAAmB;IAC3B,OAAO,CAAC,kBAAkB,CAAmC;IAE7D,sPAAsP;IACtP,SAAS,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;KAAE,CAAC;IAErE,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/D,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBAE9C,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,mBAAmB,CAAA;KAAE;IAsBhE,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAIzD,SAAS,IAAI,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;cAIlC,oBAAoB;IAWvC,oHAAoH;IACpH,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAIrC,sLAAsL;IACtL,SAAS,CAAC,oBAAoB,IAAI,sBAAsB;IAYxD;;;;OAIG;IACH,SAAS,CAAC,0BAA0B,IAAI,cAAc,CAAC,IAAI,CAAC;IAQ5D;;;;OAIG;IACH,SAAS,CAAC,eAAe,IAAI,iBAAiB,EAAE;IA+B1C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,qKAAqK;IACrK,OAAO,CAAC,sBAAsB,CAAqB;YAErC,kBAAkB;IAYhC,8OAA8O;IAC9O,SAAS,CAAC,cAAc,IAAI,IAAI;IAiChC,6JAA6J;cAC7I,eAAe,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCpF,SAAS,CAAC,aAAa;IAevB;;;;OAIG;IACG,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE;QACxB,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,MAAM,EAAE,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1D,GAAG,OAAO,CAAC,IAAI,CAAC;cAwBD,uBAAuB,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAC7E,IAAI,EAAE,+BAA+B,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,IAAI,CAAC;IAmChB,6UAA6U;IAC7U,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE;QACvC,GAAG,EAAE,MAAM,CAAC;QACZ,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI;IAmBR,uNAAuN;IACvN,OAAO,CAAC,gBAAgB;IA6CxB,SAAS,CAAC,IAAI,SAAS,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrF,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWzC;;;;OAIG;IACG,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrD,oHAAoH;IAC9G,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB1C,8JAA8J;IAC9J,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtE,OAAO,CAAC,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpF,UAAU,CAAC,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1F,UAAU,CAAC,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1F,+IAA+I;IACzI,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BlE,4GAA4G;cAC5F,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5D,uOAAuO;IACvO,OAAO,CAAC,gBAAgB;IAyBlB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAU3C"}
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../../../src/base/applications/rest.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ class RestApplication extends abstract_1.AbstractApplication {
19
19
  constructor(opts) {
20
20
  super(opts);
21
21
  this.registeredBindings = {};
22
+ this.artifactOptions = new Map();
22
23
  // A config built from the environment can lose `path.base` at run time; the router would only fail later, inside `route()`, with a message that names nothing.
23
24
  if (typeof this.configs.path?.base !== 'string') {
24
25
  throw (0, core_1.getError)({
@@ -91,6 +92,10 @@ class RestApplication extends abstract_1.AbstractApplication {
91
92
  hook: () => this.preConfigure(),
92
93
  }),
93
94
  },
95
+ {
96
+ name: boot_sequence_1.BootSteps.REGISTER_CONFIGURATIONS,
97
+ run: () => this.registerConfigurations(),
98
+ },
94
99
  { name: boot_sequence_1.BootSteps.REGISTER_DATA_SOURCES, run: () => this.registerDataSources() },
95
100
  { name: boot_sequence_1.BootSteps.REGISTER_COMPONENTS, run: () => this.registerComponents() },
96
101
  {
@@ -224,7 +229,10 @@ class RestApplication extends abstract_1.AbstractApplication {
224
229
  logger.debug('No binding instance | namespace: %s | key: %s', namespace, binding.key);
225
230
  return;
226
231
  }
227
- await instance.configure();
232
+ if (typeof instance?.configure === 'function') {
233
+ const options = this.artifactOptions.get(binding.key);
234
+ await instance.configure(options);
235
+ }
228
236
  // Marked before the after-hook runs, so the hook sees its own binding as configured.
229
237
  configured.add(binding.key);
230
238
  if (onAfterConfigure) {
@@ -249,38 +257,59 @@ class RestApplication extends abstract_1.AbstractApplication {
249
257
  }
250
258
  /** Resolution order for every registration: explicit `opts` > the class's `@injectable` defaults > the derived key and the kind's default scope. `order` and `when` are `registerArtifacts`' concern, not this one. */
251
259
  registerArtifact(opts) {
252
- const { ctor, namespace, defaultScope, caller } = opts;
253
- const declared = inversion_1.MetadataRegistry.getInstance().getArtifactMetadata({ target: ctor });
260
+ const { target, namespace, defaultScope, caller } = opts;
261
+ const declared = inversion_1.MetadataRegistry.getInstance().getArtifactMetadata({ target });
254
262
  if (this.runningApplicationHook &&
255
263
  this.configs.artifacts &&
256
264
  this.configs.bootChecks?.binding?.allowManual === false) {
257
265
  throw (0, core_1.getError)({
258
- message: `[${caller}] '${ctor.name}' is registered by hand inside ${this.runningApplicationHook}() while 'configs.artifacts' is set and 'bootChecks.binding.allowManual' is false | Move the class into the generated index (or an explicit entry of 'configs.artifacts'), or allow manual registration`,
266
+ message: `[${caller}] '${target.name}' is registered by hand inside ${this.runningApplicationHook}() while 'configs.artifacts' is set and 'bootChecks.binding.allowManual' is false | Move the class into the generated index (or an explicit entry of 'configs.artifacts'), or allow manual registration`,
259
267
  });
260
268
  }
261
- const binding = opts.opts?.binding ?? declared?.binding ?? { namespace, key: ctor.name };
269
+ const binding = opts.opts?.binding ?? declared?.binding ?? { namespace, key: target.name };
262
270
  bindings_1.BindingNamespaces.assertArtifactNamespace({
263
271
  namespace: binding.namespace,
264
- artifact: ctor.name,
272
+ artifact: target.name,
265
273
  caller,
266
274
  });
267
275
  const key = inversion_1.BindingKeys.build(binding);
268
- // The key `@inject({ target: ctor })` reads back. Written here rather than at decoration time
269
- // because only this line knows the call site's `binding`, and a class registered by hand
270
- // (`application.service(X)`) carries no stereotype metadata to derive one from.
271
- inversion_1.MetadataRegistry.getInstance().setBindingKey({ target: ctor, key });
276
+ // What `@inject({ target })` reads back. Only here knows the call site's `binding`, and a
277
+ // class registered by hand has no stereotype metadata to derive one from.
278
+ inversion_1.MetadataRegistry.getInstance().setBindingKey({ target, key });
279
+ if (opts.opts?.options !== undefined) {
280
+ this.artifactOptions.set(key, opts.opts.options);
281
+ }
272
282
  this.assertNoBindingCollision({
273
283
  key,
274
284
  allowOverride: opts.opts?.allowOverride ?? declared?.allowOverride,
275
285
  caller,
276
286
  });
277
287
  return this.bind({ key })
278
- .toClass(ctor)
288
+ .toClass(target)
279
289
  .setScope(declared?.scope ?? defaultScope);
280
290
  }
281
- component(ctor, opts) {
291
+ configuration(target, opts) {
292
+ return this.registerArtifact({
293
+ target,
294
+ namespace: bindings_1.BindingNamespaces.CONFIGURATION,
295
+ defaultScope: inversion_1.BindingScopes.SINGLETON,
296
+ caller: this.configuration.name,
297
+ opts,
298
+ });
299
+ }
300
+ async registerConfigurations() {
301
+ await (0, core_1.executeWithPerformanceMeasure)({
302
+ logger: this.logger,
303
+ scope: this.registerConfigurations.name,
304
+ description: 'Register application configurations',
305
+ task: async () => {
306
+ await this.registerDynamicBindings({ namespace: bindings_1.BindingNamespaces.CONFIGURATION });
307
+ },
308
+ });
309
+ }
310
+ component(target, opts) {
282
311
  return this.registerArtifact({
283
- ctor,
312
+ target,
284
313
  namespace: bindings_1.BindingNamespaces.COMPONENT,
285
314
  defaultScope: inversion_1.BindingScopes.SINGLETON,
286
315
  caller: this.component.name,
@@ -329,36 +358,36 @@ class RestApplication extends abstract_1.AbstractApplication {
329
358
  });
330
359
  }
331
360
  /** SINGLETON like `component()`: `RestComponent` mounts the one instance it resolves, so a second resolution must be that instance, not an unmounted twin. */
332
- controller(ctor, opts) {
361
+ controller(target, opts) {
333
362
  return this.registerArtifact({
334
- ctor,
363
+ target,
335
364
  namespace: bindings_1.BindingNamespaces.CONTROLLER,
336
365
  defaultScope: inversion_1.BindingScopes.SINGLETON,
337
366
  caller: this.controller.name,
338
367
  opts,
339
368
  });
340
369
  }
341
- service(ctor, opts) {
370
+ service(target, opts) {
342
371
  return this.registerArtifact({
343
- ctor,
372
+ target,
344
373
  namespace: bindings_1.BindingNamespaces.SERVICE,
345
374
  defaultScope: inversion_1.BindingScopes.TRANSIENT,
346
375
  caller: this.service.name,
347
376
  opts,
348
377
  });
349
378
  }
350
- repository(ctor, opts) {
379
+ repository(target, opts) {
351
380
  return this.registerArtifact({
352
- ctor,
381
+ target,
353
382
  namespace: bindings_1.BindingNamespaces.REPOSITORY,
354
383
  defaultScope: inversion_1.BindingScopes.TRANSIENT,
355
384
  caller: this.repository.name,
356
385
  opts,
357
386
  });
358
387
  }
359
- dataSource(ctor, opts) {
388
+ dataSource(target, opts) {
360
389
  return this.registerArtifact({
361
- ctor,
390
+ target,
362
391
  namespace: bindings_1.BindingNamespaces.DATASOURCE,
363
392
  defaultScope: inversion_1.BindingScopes.SINGLETON,
364
393
  caller: this.dataSource.name,
@@ -371,21 +400,25 @@ class RestApplication extends abstract_1.AbstractApplication {
371
400
  input: index,
372
401
  application: this,
373
402
  });
374
- for (const ctor of resolved.dataSources) {
375
- this.dataSource(ctor);
403
+ for (const target of resolved.configurations) {
404
+ this.configuration(target);
405
+ this.bindProvidedKeys({ target });
406
+ }
407
+ for (const target of resolved.dataSources) {
408
+ this.dataSource(target);
376
409
  }
377
- for (const ctor of resolved.components) {
378
- this.component(ctor);
379
- this.bindProvidedKeys({ ctor });
410
+ for (const target of resolved.components) {
411
+ this.component(target);
412
+ this.bindProvidedKeys({ target });
380
413
  }
381
- for (const ctor of resolved.repositories) {
382
- this.repository(ctor);
414
+ for (const target of resolved.repositories) {
415
+ this.repository(target);
383
416
  }
384
- for (const ctor of resolved.services) {
385
- this.service(ctor);
417
+ for (const target of resolved.services) {
418
+ this.service(target);
386
419
  }
387
- for (const ctor of resolved.controllers) {
388
- this.controller(ctor);
420
+ for (const target of resolved.controllers) {
421
+ this.controller(target);
389
422
  }
390
423
  }
391
424
  /** The boot step behind `configs.artifacts`; an application with none configured registers nothing here. */
@@ -398,14 +431,17 @@ class RestApplication extends abstract_1.AbstractApplication {
398
431
  }
399
432
  /** Each `@provide` method becomes a lazy provider: the component is resolved (SINGLETON) and the method called on first `get`, so a provided value may depend on datasources or secrets that do not exist yet at registration time. */
400
433
  bindProvidedKeys(opts) {
401
- const { ctor } = opts;
434
+ const { target } = opts;
402
435
  const registry = inversion_1.MetadataRegistry.getInstance();
403
- const provides = registry.getProvideMetadata({ target: ctor });
436
+ const provides = registry.getProvideMetadata({ target });
404
437
  if (provides.length === 0) {
405
438
  return;
406
439
  }
407
- const declared = registry.getArtifactMetadata({ target: ctor });
408
- const componentKey = inversion_1.BindingKeys.build(declared?.binding ?? { namespace: bindings_1.BindingNamespaces.COMPONENT, key: ctor.name });
440
+ const declared = registry.getArtifactMetadata({ target });
441
+ const defaultNamespace = declared?.type
442
+ ? bindings_1.ArtifactNamespaces.resolve({ type: declared.type })
443
+ : bindings_1.BindingNamespaces.COMPONENT;
444
+ const componentKey = inversion_1.BindingKeys.build(declared?.binding ?? { namespace: defaultNamespace, key: target.name });
409
445
  for (const entry of provides) {
410
446
  this.bind({ key: entry.key })
411
447
  .toProvider(container => {