@venizia/ignis-kernel 0.2.0-23 → 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 +77 -31
- 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 +29 -3
- package/dist/cjs/base/metadata/injectable.js.map +1 -1
- package/dist/cjs/base/metadata/injectors.d.ts +11 -4
- package/dist/cjs/base/metadata/injectors.d.ts.map +1 -1
- package/dist/cjs/base/metadata/injectors.js +6 -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 +6 -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 +16 -0
- package/dist/cjs/common/bindings.d.ts.map +1 -1
- package/dist/cjs/common/bindings.js +38 -2
- 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/keys.d.ts +1 -0
- package/dist/cjs/helpers/inversion/common/keys.d.ts.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 +8 -0
- package/dist/cjs/helpers/inversion/mixins/artifact.mixin.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/controllers/controller.d.ts +8 -0
- package/dist/cjs/helpers/inversion/mixins/controllers/controller.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/controllers/grpc.d.ts +8 -0
- package/dist/cjs/helpers/inversion/mixins/controllers/grpc.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/controllers/rest.d.ts +8 -0
- package/dist/cjs/helpers/inversion/mixins/controllers/rest.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/datasource.mixin.d.ts +8 -0
- package/dist/cjs/helpers/inversion/mixins/datasource.mixin.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/model.mixin.d.ts +8 -0
- package/dist/cjs/helpers/inversion/mixins/model.mixin.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/mixins/repository.mixin.d.ts +8 -0
- package/dist/cjs/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
- package/dist/cjs/helpers/inversion/registry.d.ts +56 -0
- 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 +78 -32
- 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 +28 -3
- package/dist/esm/base/metadata/injectable.js.map +1 -1
- package/dist/esm/base/metadata/injectors.d.ts +11 -4
- package/dist/esm/base/metadata/injectors.d.ts.map +1 -1
- package/dist/esm/base/metadata/injectors.js +6 -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 +6 -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 +16 -0
- package/dist/esm/common/bindings.d.ts.map +1 -1
- package/dist/esm/common/bindings.js +37 -2
- 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/keys.d.ts +1 -0
- package/dist/esm/helpers/inversion/common/keys.d.ts.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 +8 -0
- package/dist/esm/helpers/inversion/mixins/artifact.mixin.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/controllers/controller.d.ts +8 -0
- package/dist/esm/helpers/inversion/mixins/controllers/controller.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/controllers/grpc.d.ts +8 -0
- package/dist/esm/helpers/inversion/mixins/controllers/grpc.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/controllers/rest.d.ts +8 -0
- package/dist/esm/helpers/inversion/mixins/controllers/rest.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/datasource.mixin.d.ts +8 -0
- package/dist/esm/helpers/inversion/mixins/datasource.mixin.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/model.mixin.d.ts +8 -0
- package/dist/esm/helpers/inversion/mixins/model.mixin.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/mixins/repository.mixin.d.ts +8 -0
- package/dist/esm/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
- package/dist/esm/helpers/inversion/registry.d.ts +56 -0
- 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,28 +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
|
|
269
|
+
const binding = opts.opts?.binding ?? declared?.binding ?? { namespace, key: target.name };
|
|
270
|
+
bindings_1.BindingNamespaces.assertArtifactNamespace({
|
|
271
|
+
namespace: binding.namespace,
|
|
272
|
+
artifact: target.name,
|
|
273
|
+
caller,
|
|
274
|
+
});
|
|
275
|
+
const key = inversion_1.BindingKeys.build(binding);
|
|
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
|
+
}
|
|
262
282
|
this.assertNoBindingCollision({
|
|
263
283
|
key,
|
|
264
284
|
allowOverride: opts.opts?.allowOverride ?? declared?.allowOverride,
|
|
265
285
|
caller,
|
|
266
286
|
});
|
|
267
287
|
return this.bind({ key })
|
|
268
|
-
.toClass(
|
|
288
|
+
.toClass(target)
|
|
269
289
|
.setScope(declared?.scope ?? defaultScope);
|
|
270
290
|
}
|
|
271
|
-
|
|
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) {
|
|
272
311
|
return this.registerArtifact({
|
|
273
|
-
|
|
312
|
+
target,
|
|
274
313
|
namespace: bindings_1.BindingNamespaces.COMPONENT,
|
|
275
314
|
defaultScope: inversion_1.BindingScopes.SINGLETON,
|
|
276
315
|
caller: this.component.name,
|
|
@@ -319,36 +358,36 @@ class RestApplication extends abstract_1.AbstractApplication {
|
|
|
319
358
|
});
|
|
320
359
|
}
|
|
321
360
|
/** SINGLETON like `component()`: `RestComponent` mounts the one instance it resolves, so a second resolution must be that instance, not an unmounted twin. */
|
|
322
|
-
controller(
|
|
361
|
+
controller(target, opts) {
|
|
323
362
|
return this.registerArtifact({
|
|
324
|
-
|
|
363
|
+
target,
|
|
325
364
|
namespace: bindings_1.BindingNamespaces.CONTROLLER,
|
|
326
365
|
defaultScope: inversion_1.BindingScopes.SINGLETON,
|
|
327
366
|
caller: this.controller.name,
|
|
328
367
|
opts,
|
|
329
368
|
});
|
|
330
369
|
}
|
|
331
|
-
service(
|
|
370
|
+
service(target, opts) {
|
|
332
371
|
return this.registerArtifact({
|
|
333
|
-
|
|
372
|
+
target,
|
|
334
373
|
namespace: bindings_1.BindingNamespaces.SERVICE,
|
|
335
374
|
defaultScope: inversion_1.BindingScopes.TRANSIENT,
|
|
336
375
|
caller: this.service.name,
|
|
337
376
|
opts,
|
|
338
377
|
});
|
|
339
378
|
}
|
|
340
|
-
repository(
|
|
379
|
+
repository(target, opts) {
|
|
341
380
|
return this.registerArtifact({
|
|
342
|
-
|
|
381
|
+
target,
|
|
343
382
|
namespace: bindings_1.BindingNamespaces.REPOSITORY,
|
|
344
383
|
defaultScope: inversion_1.BindingScopes.TRANSIENT,
|
|
345
384
|
caller: this.repository.name,
|
|
346
385
|
opts,
|
|
347
386
|
});
|
|
348
387
|
}
|
|
349
|
-
dataSource(
|
|
388
|
+
dataSource(target, opts) {
|
|
350
389
|
return this.registerArtifact({
|
|
351
|
-
|
|
390
|
+
target,
|
|
352
391
|
namespace: bindings_1.BindingNamespaces.DATASOURCE,
|
|
353
392
|
defaultScope: inversion_1.BindingScopes.SINGLETON,
|
|
354
393
|
caller: this.dataSource.name,
|
|
@@ -361,21 +400,25 @@ class RestApplication extends abstract_1.AbstractApplication {
|
|
|
361
400
|
input: index,
|
|
362
401
|
application: this,
|
|
363
402
|
});
|
|
364
|
-
for (const
|
|
365
|
-
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);
|
|
366
409
|
}
|
|
367
|
-
for (const
|
|
368
|
-
this.component(
|
|
369
|
-
this.bindProvidedKeys({
|
|
410
|
+
for (const target of resolved.components) {
|
|
411
|
+
this.component(target);
|
|
412
|
+
this.bindProvidedKeys({ target });
|
|
370
413
|
}
|
|
371
|
-
for (const
|
|
372
|
-
this.repository(
|
|
414
|
+
for (const target of resolved.repositories) {
|
|
415
|
+
this.repository(target);
|
|
373
416
|
}
|
|
374
|
-
for (const
|
|
375
|
-
this.service(
|
|
417
|
+
for (const target of resolved.services) {
|
|
418
|
+
this.service(target);
|
|
376
419
|
}
|
|
377
|
-
for (const
|
|
378
|
-
this.controller(
|
|
420
|
+
for (const target of resolved.controllers) {
|
|
421
|
+
this.controller(target);
|
|
379
422
|
}
|
|
380
423
|
}
|
|
381
424
|
/** The boot step behind `configs.artifacts`; an application with none configured registers nothing here. */
|
|
@@ -388,14 +431,17 @@ class RestApplication extends abstract_1.AbstractApplication {
|
|
|
388
431
|
}
|
|
389
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. */
|
|
390
433
|
bindProvidedKeys(opts) {
|
|
391
|
-
const {
|
|
434
|
+
const { target } = opts;
|
|
392
435
|
const registry = inversion_1.MetadataRegistry.getInstance();
|
|
393
|
-
const provides = registry.getProvideMetadata({ target
|
|
436
|
+
const provides = registry.getProvideMetadata({ target });
|
|
394
437
|
if (provides.length === 0) {
|
|
395
438
|
return;
|
|
396
439
|
}
|
|
397
|
-
const declared = registry.getArtifactMetadata({ target
|
|
398
|
-
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 });
|
|
399
445
|
for (const entry of provides) {
|
|
400
446
|
this.bind({ key: entry.key })
|
|
401
447
|
.toProvider(container => {
|