@venizia/ignis-kernel 0.2.0-24 → 0.2.0-25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/base/applications/artifact-index.d.ts +9 -0
- package/dist/cjs/base/applications/artifact-index.d.ts.map +1 -1
- package/dist/cjs/base/applications/artifact-index.js +84 -10
- package/dist/cjs/base/applications/artifact-index.js.map +1 -1
- package/dist/cjs/base/applications/boot-sequence.d.ts +1 -0
- package/dist/cjs/base/applications/boot-sequence.d.ts.map +1 -1
- package/dist/cjs/base/applications/boot-sequence.js +2 -0
- package/dist/cjs/base/applications/boot-sequence.js.map +1 -1
- package/dist/cjs/base/applications/common/constants.d.ts +1 -0
- package/dist/cjs/base/applications/common/constants.d.ts.map +1 -1
- package/dist/cjs/base/applications/common/constants.js +2 -0
- package/dist/cjs/base/applications/common/constants.js.map +1 -1
- package/dist/cjs/base/applications/common/types/artifacts.d.ts +2 -0
- package/dist/cjs/base/applications/common/types/artifacts.d.ts.map +1 -1
- package/dist/cjs/base/applications/rest.d.ts +9 -5
- package/dist/cjs/base/applications/rest.d.ts.map +1 -1
- package/dist/cjs/base/applications/rest.js +72 -36
- package/dist/cjs/base/applications/rest.js.map +1 -1
- package/dist/cjs/base/configurations/base.d.ts +14 -0
- package/dist/cjs/base/configurations/base.d.ts.map +1 -0
- package/dist/cjs/base/configurations/base.js +21 -0
- package/dist/cjs/base/configurations/base.js.map +1 -0
- package/dist/cjs/base/configurations/common/index.d.ts +2 -0
- package/dist/cjs/base/configurations/common/index.d.ts.map +1 -0
- package/dist/cjs/base/configurations/common/index.js +18 -0
- package/dist/cjs/base/configurations/common/index.js.map +1 -0
- package/dist/cjs/base/configurations/common/types.d.ts +3 -0
- package/dist/cjs/base/configurations/common/types.d.ts.map +1 -0
- package/dist/cjs/base/configurations/common/types.js +3 -0
- package/dist/cjs/base/configurations/common/types.js.map +1 -0
- package/dist/cjs/base/configurations/index.d.ts +3 -0
- package/dist/cjs/base/configurations/index.d.ts.map +1 -0
- package/dist/cjs/base/configurations/index.js +19 -0
- package/dist/cjs/base/configurations/index.js.map +1 -0
- package/dist/cjs/base/index.d.ts +1 -0
- package/dist/cjs/base/index.d.ts.map +1 -1
- package/dist/cjs/base/index.js +1 -0
- package/dist/cjs/base/index.js.map +1 -1
- package/dist/cjs/base/metadata/injectable.d.ts +1 -0
- package/dist/cjs/base/metadata/injectable.d.ts.map +1 -1
- package/dist/cjs/base/metadata/injectable.js +11 -6
- package/dist/cjs/base/metadata/injectable.js.map +1 -1
- package/dist/cjs/base/metadata/injectors.d.ts +1 -4
- package/dist/cjs/base/metadata/injectors.d.ts.map +1 -1
- package/dist/cjs/base/metadata/injectors.js +1 -2
- package/dist/cjs/base/metadata/injectors.js.map +1 -1
- package/dist/cjs/base/metadata/persistents.d.ts.map +1 -1
- package/dist/cjs/base/metadata/persistents.js +1 -2
- package/dist/cjs/base/metadata/persistents.js.map +1 -1
- package/dist/cjs/base/mixins/common/types.d.ts +13 -6
- package/dist/cjs/base/mixins/common/types.d.ts.map +1 -1
- package/dist/cjs/base/repositories/core/abstract.js +2 -2
- package/dist/cjs/base/repositories/core/abstract.js.map +1 -1
- package/dist/cjs/common/bindings.d.ts +2 -6
- package/dist/cjs/common/bindings.d.ts.map +1 -1
- package/dist/cjs/common/bindings.js +3 -6
- package/dist/cjs/common/bindings.js.map +1 -1
- package/dist/cjs/helpers/inversion/common/constants.d.ts +1 -0
- package/dist/cjs/helpers/inversion/common/constants.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/common/constants.js +2 -0
- package/dist/cjs/helpers/inversion/common/constants.js.map +1 -1
- package/dist/cjs/helpers/inversion/common/types/artifact.d.ts +2 -0
- package/dist/cjs/helpers/inversion/common/types/artifact.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/artifact.mixin.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/controllers/controller.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/controllers/grpc.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/controllers/rest.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/datasource.mixin.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/model.mixin.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/registry.d.ts.map +1 -1
- package/dist/esm/base/applications/artifact-index.d.ts +9 -0
- package/dist/esm/base/applications/artifact-index.d.ts.map +1 -1
- package/dist/esm/base/applications/artifact-index.js +85 -11
- package/dist/esm/base/applications/artifact-index.js.map +1 -1
- package/dist/esm/base/applications/boot-sequence.d.ts +1 -0
- package/dist/esm/base/applications/boot-sequence.d.ts.map +1 -1
- package/dist/esm/base/applications/boot-sequence.js +2 -0
- package/dist/esm/base/applications/boot-sequence.js.map +1 -1
- package/dist/esm/base/applications/common/constants.d.ts +1 -0
- package/dist/esm/base/applications/common/constants.d.ts.map +1 -1
- package/dist/esm/base/applications/common/constants.js +2 -0
- package/dist/esm/base/applications/common/constants.js.map +1 -1
- package/dist/esm/base/applications/common/types/artifacts.d.ts +2 -0
- package/dist/esm/base/applications/common/types/artifacts.d.ts.map +1 -1
- package/dist/esm/base/applications/rest.d.ts +9 -5
- package/dist/esm/base/applications/rest.d.ts.map +1 -1
- package/dist/esm/base/applications/rest.js +73 -37
- package/dist/esm/base/applications/rest.js.map +1 -1
- package/dist/esm/base/configurations/base.d.ts +14 -0
- package/dist/esm/base/configurations/base.d.ts.map +1 -0
- package/dist/esm/base/configurations/base.js +17 -0
- package/dist/esm/base/configurations/base.js.map +1 -0
- package/dist/esm/base/configurations/common/index.d.ts +2 -0
- package/dist/esm/base/configurations/common/index.d.ts.map +1 -0
- package/dist/esm/base/configurations/common/index.js +2 -0
- package/dist/esm/base/configurations/common/index.js.map +1 -0
- package/dist/esm/base/configurations/common/types.d.ts +3 -0
- package/dist/esm/base/configurations/common/types.d.ts.map +1 -0
- package/dist/esm/base/configurations/common/types.js +2 -0
- package/dist/esm/base/configurations/common/types.js.map +1 -0
- package/dist/esm/base/configurations/index.d.ts +3 -0
- package/dist/esm/base/configurations/index.d.ts.map +1 -0
- package/dist/esm/base/configurations/index.js +3 -0
- package/dist/esm/base/configurations/index.js.map +1 -0
- package/dist/esm/base/index.d.ts +1 -0
- package/dist/esm/base/index.d.ts.map +1 -1
- package/dist/esm/base/index.js +1 -0
- package/dist/esm/base/index.js.map +1 -1
- package/dist/esm/base/metadata/injectable.d.ts +1 -0
- package/dist/esm/base/metadata/injectable.d.ts.map +1 -1
- package/dist/esm/base/metadata/injectable.js +9 -5
- package/dist/esm/base/metadata/injectable.js.map +1 -1
- package/dist/esm/base/metadata/injectors.d.ts +1 -4
- package/dist/esm/base/metadata/injectors.d.ts.map +1 -1
- package/dist/esm/base/metadata/injectors.js +1 -2
- package/dist/esm/base/metadata/injectors.js.map +1 -1
- package/dist/esm/base/metadata/persistents.d.ts.map +1 -1
- package/dist/esm/base/metadata/persistents.js +1 -2
- package/dist/esm/base/metadata/persistents.js.map +1 -1
- package/dist/esm/base/mixins/common/types.d.ts +13 -6
- package/dist/esm/base/mixins/common/types.d.ts.map +1 -1
- package/dist/esm/base/repositories/core/abstract.js +2 -2
- package/dist/esm/base/repositories/core/abstract.js.map +1 -1
- package/dist/esm/common/bindings.d.ts +2 -6
- package/dist/esm/common/bindings.d.ts.map +1 -1
- package/dist/esm/common/bindings.js +3 -6
- package/dist/esm/common/bindings.js.map +1 -1
- package/dist/esm/helpers/inversion/common/constants.d.ts +1 -0
- package/dist/esm/helpers/inversion/common/constants.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/common/constants.js +2 -0
- package/dist/esm/helpers/inversion/common/constants.js.map +1 -1
- package/dist/esm/helpers/inversion/common/types/artifact.d.ts +2 -0
- package/dist/esm/helpers/inversion/common/types/artifact.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/artifact.mixin.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/controllers/controller.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/controllers/grpc.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/controllers/rest.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/datasource.mixin.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/model.mixin.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/registry.d.ts.map +1 -1
- 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":"
|
|
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(
|
|
78
|
-
const kept = listed.filter((
|
|
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,
|
|
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((
|
|
87
|
-
|
|
160
|
+
.map((target, position) => ({
|
|
161
|
+
target,
|
|
88
162
|
position,
|
|
89
|
-
order: registry.getArtifactMetadata({ target
|
|
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.
|
|
166
|
+
.map(entry => entry.target);
|
|
93
167
|
}
|
|
94
168
|
async isSelected(opts) {
|
|
95
|
-
const {
|
|
96
|
-
const when = inversion_1.MetadataRegistry.getInstance().getArtifactMetadata({ target
|
|
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":";;;AAAA,mDAAuD;AACvD,+DAA2D;AAE3D,
|
|
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;
|
|
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;
|
|
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,
|
|
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;;
|
|
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
|
-
|
|
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>(
|
|
102
|
-
service<Base extends IService>(
|
|
103
|
-
repository<Base extends IRepository>(
|
|
104
|
-
dataSource<Base extends IDataSource>(
|
|
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;
|
|
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
|
-
|
|
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 {
|
|
253
|
-
const declared = inversion_1.MetadataRegistry.getInstance().getArtifactMetadata({ target
|
|
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}] '${
|
|
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:
|
|
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:
|
|
272
|
+
artifact: target.name,
|
|
265
273
|
caller,
|
|
266
274
|
});
|
|
267
275
|
const key = inversion_1.BindingKeys.build(binding);
|
|
268
|
-
//
|
|
269
|
-
//
|
|
270
|
-
|
|
271
|
-
|
|
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(
|
|
288
|
+
.toClass(target)
|
|
279
289
|
.setScope(declared?.scope ?? defaultScope);
|
|
280
290
|
}
|
|
281
|
-
|
|
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
|
-
|
|
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(
|
|
361
|
+
controller(target, opts) {
|
|
333
362
|
return this.registerArtifact({
|
|
334
|
-
|
|
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(
|
|
370
|
+
service(target, opts) {
|
|
342
371
|
return this.registerArtifact({
|
|
343
|
-
|
|
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(
|
|
379
|
+
repository(target, opts) {
|
|
351
380
|
return this.registerArtifact({
|
|
352
|
-
|
|
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(
|
|
388
|
+
dataSource(target, opts) {
|
|
360
389
|
return this.registerArtifact({
|
|
361
|
-
|
|
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
|
|
375
|
-
this.
|
|
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
|
|
378
|
-
this.component(
|
|
379
|
-
this.bindProvidedKeys({
|
|
410
|
+
for (const target of resolved.components) {
|
|
411
|
+
this.component(target);
|
|
412
|
+
this.bindProvidedKeys({ target });
|
|
380
413
|
}
|
|
381
|
-
for (const
|
|
382
|
-
this.repository(
|
|
414
|
+
for (const target of resolved.repositories) {
|
|
415
|
+
this.repository(target);
|
|
383
416
|
}
|
|
384
|
-
for (const
|
|
385
|
-
this.service(
|
|
417
|
+
for (const target of resolved.services) {
|
|
418
|
+
this.service(target);
|
|
386
419
|
}
|
|
387
|
-
for (const
|
|
388
|
-
this.controller(
|
|
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 {
|
|
434
|
+
const { target } = opts;
|
|
402
435
|
const registry = inversion_1.MetadataRegistry.getInstance();
|
|
403
|
-
const provides = registry.getProvideMetadata({ target
|
|
436
|
+
const provides = registry.getProvideMetadata({ target });
|
|
404
437
|
if (provides.length === 0) {
|
|
405
438
|
return;
|
|
406
439
|
}
|
|
407
|
-
const declared = registry.getArtifactMetadata({ target
|
|
408
|
-
const
|
|
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 => {
|