@telorun/kernel 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base-definition.d.ts +14 -0
- package/dist/base-definition.d.ts.map +1 -0
- package/dist/base-definition.js +17 -0
- package/dist/base-definition.js.map +1 -0
- package/dist/boot-context-registry.d.ts.map +1 -1
- package/dist/boot-context-registry.js +6 -6
- package/dist/boot-context-registry.js.map +1 -1
- package/dist/capabilities/capabilities/component.yaml +2 -1
- package/dist/capabilities/capabilities/executable.yaml +2 -1
- package/dist/capabilities/capabilities/handler.yaml +2 -1
- package/dist/capabilities/capabilities/listener.yaml +2 -1
- package/dist/capabilities/capabilities/provider.yaml +2 -1
- package/dist/capabilities/capabilities/template.yaml +2 -1
- package/dist/capabilities/capabilities/type.yaml +2 -1
- package/dist/capabilities/component.d.ts +3 -0
- package/dist/capabilities/component.d.ts.map +1 -0
- package/dist/capabilities/component.js +4 -0
- package/dist/capabilities/component.js.map +1 -0
- package/dist/capabilities/component.yaml +1 -1
- package/dist/capabilities/executable.d.ts +3 -0
- package/dist/capabilities/executable.d.ts.map +1 -0
- package/dist/capabilities/executable.js +5 -0
- package/dist/capabilities/executable.js.map +1 -0
- package/dist/capabilities/executable.yaml +1 -1
- package/dist/capabilities/handler.d.ts +3 -0
- package/dist/capabilities/handler.d.ts.map +1 -0
- package/dist/capabilities/handler.js +4 -0
- package/dist/capabilities/handler.js.map +1 -0
- package/dist/capabilities/handler.yaml +1 -1
- package/dist/capabilities/invokable.d.ts +3 -0
- package/dist/capabilities/invokable.d.ts.map +1 -0
- package/dist/capabilities/invokable.js +5 -0
- package/dist/capabilities/invokable.js.map +1 -0
- package/dist/capabilities/listener.d.ts +3 -0
- package/dist/capabilities/listener.d.ts.map +1 -0
- package/dist/capabilities/listener.js +5 -0
- package/dist/capabilities/listener.js.map +1 -0
- package/dist/capabilities/listener.yaml +1 -1
- package/dist/capabilities/mount.d.ts +3 -0
- package/dist/capabilities/mount.d.ts.map +1 -0
- package/dist/capabilities/mount.js +5 -0
- package/dist/capabilities/mount.js.map +1 -0
- package/dist/capabilities/provider.d.ts +3 -0
- package/dist/capabilities/provider.d.ts.map +1 -0
- package/dist/capabilities/provider.js +8 -0
- package/dist/capabilities/provider.js.map +1 -0
- package/dist/capabilities/provider.yaml +1 -1
- package/dist/capabilities/runnable.d.ts +3 -0
- package/dist/capabilities/runnable.d.ts.map +1 -0
- package/dist/capabilities/runnable.js +5 -0
- package/dist/capabilities/runnable.js.map +1 -0
- package/dist/capabilities/service.d.ts +3 -0
- package/dist/capabilities/service.d.ts.map +1 -0
- package/dist/capabilities/service.js +5 -0
- package/dist/capabilities/service.js.map +1 -0
- package/dist/capabilities/template.d.ts +3 -0
- package/dist/capabilities/template.d.ts.map +1 -0
- package/dist/capabilities/template.js +5 -0
- package/dist/capabilities/template.js.map +1 -0
- package/dist/capabilities/template.yaml +1 -1
- package/dist/capabilities/type.d.ts +3 -0
- package/dist/capabilities/type.d.ts.map +1 -0
- package/dist/capabilities/type.js +5 -0
- package/dist/capabilities/type.js.map +1 -0
- package/dist/capabilities/type.yaml +1 -1
- package/dist/controller-loader.d.ts +1 -1
- package/dist/controller-loader.d.ts.map +1 -1
- package/dist/controller-loader.js +6 -3
- package/dist/controller-loader.js.map +1 -1
- package/dist/controller-registry.d.ts +1 -6
- package/dist/controller-registry.d.ts.map +1 -1
- package/dist/controller-registry.js +11 -22
- package/dist/controller-registry.js.map +1 -1
- package/dist/controllers/capability/capability-controller.d.ts +0 -5
- package/dist/controllers/capability/capability-controller.d.ts.map +1 -1
- package/dist/controllers/capability/capability-controller.js +1 -5
- package/dist/controllers/capability/capability-controller.js.map +1 -1
- package/dist/controllers/module/import-controller.d.ts +35 -0
- package/dist/controllers/module/import-controller.d.ts.map +1 -0
- package/dist/controllers/module/import-controller.js +113 -0
- package/dist/controllers/module/import-controller.js.map +1 -0
- package/dist/controllers/module/module-controller.d.ts +2 -15
- package/dist/controllers/module/module-controller.d.ts.map +1 -1
- package/dist/controllers/module/module-controller.js +9 -90
- package/dist/controllers/module/module-controller.js.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts +3 -4
- package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
- package/dist/controllers/resource-definition/resource-definition-controller.js +17 -11
- package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
- package/dist/controllers/resource-definition/resource-template-controller.d.ts +12 -0
- package/dist/controllers/resource-definition/resource-template-controller.d.ts.map +1 -0
- package/dist/controllers/resource-definition/resource-template-controller.js +112 -0
- package/dist/controllers/resource-definition/resource-template-controller.js.map +1 -0
- package/dist/evaluation-context.d.ts +91 -0
- package/dist/evaluation-context.d.ts.map +1 -0
- package/dist/evaluation-context.js +220 -0
- package/dist/evaluation-context.js.map +1 -0
- package/dist/execution-context.d.ts +13 -0
- package/dist/execution-context.d.ts.map +1 -0
- package/dist/execution-context.js +14 -0
- package/dist/execution-context.js.map +1 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +31 -42
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +315 -371
- package/dist/kernel.js.map +1 -1
- package/dist/loader.d.ts +11 -10
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +50 -112
- package/dist/loader.js.map +1 -1
- package/dist/manifest-adapters/http-adapter.d.ts.map +1 -1
- package/dist/manifest-adapters/http-adapter.js +3 -1
- package/dist/manifest-adapters/http-adapter.js.map +1 -1
- package/dist/manifest-adapters/local-file-adapter.d.ts +7 -5
- package/dist/manifest-adapters/local-file-adapter.d.ts.map +1 -1
- package/dist/manifest-adapters/local-file-adapter.js +28 -24
- package/dist/manifest-adapters/local-file-adapter.js.map +1 -1
- package/dist/manifest-adapters/manifest-adapter.d.ts +2 -0
- package/dist/manifest-adapters/manifest-adapter.d.ts.map +1 -1
- package/dist/manifest-adapters/registry-adapter.d.ts.map +1 -1
- package/dist/manifest-adapters/registry-adapter.js +3 -1
- package/dist/manifest-adapters/registry-adapter.js.map +1 -1
- package/dist/manifest-schemas.d.ts +61 -49
- package/dist/manifest-schemas.d.ts.map +1 -1
- package/dist/manifest-schemas.js +58 -37
- package/dist/manifest-schemas.js.map +1 -1
- package/dist/module-context-registry.d.ts +48 -0
- package/dist/module-context-registry.d.ts.map +1 -0
- package/dist/module-context-registry.js +91 -0
- package/dist/module-context-registry.js.map +1 -0
- package/dist/module-context.d.ts +31 -0
- package/dist/module-context.d.ts.map +1 -0
- package/dist/module-context.js +67 -0
- package/dist/module-context.js.map +1 -0
- package/dist/registry.d.ts +1 -2
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +3 -3
- package/dist/registry.js.map +1 -1
- package/dist/resource-context.d.ts +27 -10
- package/dist/resource-context.d.ts.map +1 -1
- package/dist/resource-context.js +100 -44
- package/dist/resource-context.js.map +1 -1
- package/dist/schema-valiator.d.ts.map +1 -1
- package/dist/schema-valiator.js +16 -3
- package/dist/schema-valiator.js.map +1 -1
- package/dist/snapshot-serializer.d.ts +1 -2
- package/dist/snapshot-serializer.d.ts.map +1 -1
- package/dist/snapshot-serializer.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +11 -9
- package/src/boot-context-registry.ts +169 -0
- package/src/controller-loader.ts +299 -0
- package/src/controller-registry.ts +191 -0
- package/src/controllers/module/import-controller.ts +143 -0
- package/src/controllers/module/module-controller.ts +16 -0
- package/src/controllers/resource-definition/resource-definition-controller.ts +86 -0
- package/src/controllers/resource-definition/resource-definition.json +18 -0
- package/src/controllers/resource-definition/resource-template-controller.ts +138 -0
- package/src/event-stream.ts +121 -0
- package/src/events.ts +99 -0
- package/src/index.ts +7 -0
- package/src/kernel.ts +647 -0
- package/src/loader.ts +134 -0
- package/src/manifest-adapters/local-file-adapter.ts +62 -0
- package/src/manifest-adapters/manifest-adapter.ts +35 -0
- package/src/manifest-schemas.ts +85 -0
- package/src/registry.ts +137 -0
- package/src/resource-context.ts +267 -0
- package/src/resource-uri.ts +200 -0
- package/src/schema-valiator.ts +68 -0
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -109
- package/dist/cli.js.map +0 -1
- package/dist/expressions.d.ts +0 -20
- package/dist/expressions.d.ts.map +0 -1
- package/dist/expressions.js +0 -253
- package/dist/expressions.js.map +0 -1
- package/dist/src/controllers/module/module.yaml +0 -32
- package/dist/template-definition.d.ts +0 -38
- package/dist/template-definition.d.ts.map +0 -1
- package/dist/template-definition.js +0 -26
- package/dist/template-definition.js.map +0 -1
- package/dist/template-expander.d.ts +0 -19
- package/dist/template-expander.d.ts.map +0 -1
- package/dist/template-expander.js +0 -425
- package/dist/template-expander.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller-registry.js","sourceRoot":"","sources":["../src/controller-registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"controller-registry.js","sourceRoot":"","sources":["../src/controller-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ type CapabilityResource = {
|
|
|
5
5
|
name: string;
|
|
6
6
|
[key: string]: any;
|
|
7
7
|
};
|
|
8
|
-
schema?: Record<string, any>;
|
|
9
8
|
};
|
|
10
9
|
declare class Capability implements ResourceInstance {
|
|
11
10
|
private readonly resource;
|
|
@@ -25,10 +24,6 @@ export declare const schema: {
|
|
|
25
24
|
};
|
|
26
25
|
required: string[];
|
|
27
26
|
};
|
|
28
|
-
schema: {
|
|
29
|
-
type: string;
|
|
30
|
-
additionalProperties: boolean;
|
|
31
|
-
};
|
|
32
27
|
};
|
|
33
28
|
required: string[];
|
|
34
29
|
additionalProperties: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/capability/capability-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/capability/capability-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,cAAM,UAAW,YAAW,gBAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,kBAAkB;IAEnD,IAAI,CAAC,GAAG,EAAE,eAAe;CAGhC;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAEtF;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAalB,CAAC"}
|
|
@@ -3,7 +3,7 @@ class Capability {
|
|
|
3
3
|
this.resource = resource;
|
|
4
4
|
}
|
|
5
5
|
async init(ctx) {
|
|
6
|
-
ctx.registerCapability(this.resource.metadata.name
|
|
6
|
+
ctx.registerCapability(this.resource.metadata.name);
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
export async function create(resource, _ctx) {
|
|
@@ -19,10 +19,6 @@ export const schema = {
|
|
|
19
19
|
},
|
|
20
20
|
required: ["name"],
|
|
21
21
|
},
|
|
22
|
-
schema: {
|
|
23
|
-
type: "object",
|
|
24
|
-
additionalProperties: true,
|
|
25
|
-
},
|
|
26
22
|
},
|
|
27
23
|
required: ["metadata"],
|
|
28
24
|
additionalProperties: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-controller.js","sourceRoot":"","sources":["../../../src/controllers/capability/capability-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"capability-controller.js","sourceRoot":"","sources":["../../../src/controllers/capability/capability-controller.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU;IACd,YAA6B,QAA4B;QAA5B,aAAQ,GAAR,QAAQ,CAAoB;IAAG,CAAC;IAE7D,KAAK,CAAC,IAAI,CAAC,GAAoB;QAC7B,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,IAAqB;IAC/D,OAAO,IAAI,UAAU,CAAC,QAA8B,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzB;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ResourceContext, ResourceInstance } from "@telorun/sdk";
|
|
2
|
+
export declare function create(resource: any, ctx: ResourceContext): Promise<ResourceInstance>;
|
|
3
|
+
export declare const schema: {
|
|
4
|
+
type: string;
|
|
5
|
+
properties: {
|
|
6
|
+
kind: {
|
|
7
|
+
type: string;
|
|
8
|
+
};
|
|
9
|
+
metadata: {
|
|
10
|
+
type: string;
|
|
11
|
+
properties: {
|
|
12
|
+
name: {
|
|
13
|
+
type: string;
|
|
14
|
+
};
|
|
15
|
+
module: {
|
|
16
|
+
type: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
required: string[];
|
|
20
|
+
additionalProperties: boolean;
|
|
21
|
+
};
|
|
22
|
+
source: {
|
|
23
|
+
type: string;
|
|
24
|
+
};
|
|
25
|
+
variables: {
|
|
26
|
+
type: string;
|
|
27
|
+
};
|
|
28
|
+
secrets: {
|
|
29
|
+
type: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
required: string[];
|
|
33
|
+
additionalProperties: boolean;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=import-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAItE,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuG3F;AAeD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBlB,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { DiagnosticSeverity, Loader, StaticAnalyzer } from "@telorun/analyzer";
|
|
2
|
+
import { EvaluationContext, RuntimeError } from "@telorun/sdk";
|
|
3
|
+
import { LocalFileAdapter } from "../../manifest-adapters/local-file-adapter.js";
|
|
4
|
+
export async function create(resource, ctx) {
|
|
5
|
+
const alias = resource.metadata.name;
|
|
6
|
+
const loader = new Loader([new LocalFileAdapter()]);
|
|
7
|
+
const moduleSource = resource.module ?? resource.source;
|
|
8
|
+
// Validate the imported module and all its transitive imports before loading for runtime.
|
|
9
|
+
// loadManifests() follows Kernel.Import chains so definitions from sub-imports are present,
|
|
10
|
+
// preventing false UNDEFINED_KIND errors for kinds that come from the module's own imports.
|
|
11
|
+
const resolvedUrl = new URL(moduleSource, ctx.moduleContext.source).toString();
|
|
12
|
+
const analysisManifests = await loader.loadManifests(resolvedUrl);
|
|
13
|
+
const diagnostics = new StaticAnalyzer().analyze(analysisManifests);
|
|
14
|
+
const errors = diagnostics.filter((d) => d.severity === DiagnosticSeverity.Error);
|
|
15
|
+
if (errors.length > 0) {
|
|
16
|
+
throw new RuntimeError("ERR_MANIFEST_VALIDATION_FAILED", errors.map((d) => d.message).join("\n"));
|
|
17
|
+
}
|
|
18
|
+
// Load target module manifests for runtime. Inject variables/secrets as compile context so
|
|
19
|
+
// that ${{ variables.x }} / ${{ secrets.y }} templates in the child module resolve correctly.
|
|
20
|
+
// No env — child modules are isolated from host environment.
|
|
21
|
+
const manifests = await loader.loadModule(new URL(moduleSource, ctx.moduleContext.source).toString(), {
|
|
22
|
+
compile: true,
|
|
23
|
+
});
|
|
24
|
+
// Find the kind: Module manifest to learn the target module name and contract.
|
|
25
|
+
const moduleManifest = manifests.find((m) => m.kind === "Kernel.Module");
|
|
26
|
+
if (!moduleManifest) {
|
|
27
|
+
throw new Error(`No kind: Module manifest found in source "${resource.source}"`);
|
|
28
|
+
}
|
|
29
|
+
const targetModule = moduleManifest.metadata.name;
|
|
30
|
+
// Validate required inputs before injecting.
|
|
31
|
+
validateRequiredInputs(moduleManifest.variables ?? {}, resource.variables ?? {}, "variables");
|
|
32
|
+
validateRequiredInputs(moduleManifest.secrets ?? {}, resource.secrets ?? {}, "secrets");
|
|
33
|
+
// Create child context with the imported variables/secrets baked in, so that
|
|
34
|
+
// ${{ variables.x }} / ${{ secrets.y }} templates resolve correctly at runtime.
|
|
35
|
+
const child = ctx.moduleContext.spawnChild(new EvaluationContext(ctx.moduleContext.source, {
|
|
36
|
+
variables: resource.variables ?? {},
|
|
37
|
+
secrets: resource.secrets ?? {},
|
|
38
|
+
resources: {},
|
|
39
|
+
}, ctx.moduleContext.createInstance, ctx.moduleContext.secretValues, ctx.moduleContext.emit));
|
|
40
|
+
for (const manifest of manifests) {
|
|
41
|
+
child.registerManifest(manifest);
|
|
42
|
+
}
|
|
43
|
+
// Link the target module context as a child of the declaring module context in
|
|
44
|
+
// the lifecycle tree. This enables cascading teardown (parent → child order)
|
|
45
|
+
// and makes the import hierarchy visible at runtime.
|
|
46
|
+
// const declaringCtx: ModuleContext = ctx.getModuleContext(declaringModule);
|
|
47
|
+
// const targetCtx: ModuleContext = (ctx as any).getModuleContext(targetModule);
|
|
48
|
+
// if (!targetCtx.parent) {
|
|
49
|
+
// declaringCtx.spawnChild(targetCtx);
|
|
50
|
+
// }
|
|
51
|
+
// Try to evaluate the target module's exports.
|
|
52
|
+
// Throws if resources.X is not yet populated — the kernel retry loop catches this and retries.
|
|
53
|
+
// const evaluatedExports: any = child.expand(moduleManifest.exports ?? {});
|
|
54
|
+
const exportedKinds = moduleManifest.exports?.kinds ?? [];
|
|
55
|
+
ctx.registerModuleImport(alias, targetModule, exportedKinds);
|
|
56
|
+
// Return a ResourceInstance whose snapshot() surfaces the exported values.
|
|
57
|
+
// The kernel's generic setResource() call stores them under resources.<alias>
|
|
58
|
+
// in the declaring module's evaluation context — no separate imports namespace needed.
|
|
59
|
+
return {
|
|
60
|
+
snapshot: () => ({
|
|
61
|
+
variables: ctx.expandValue(resource.variables, {}) ?? {},
|
|
62
|
+
secrets: ctx.expandValue(resource.secrets, {}) ?? {},
|
|
63
|
+
}),
|
|
64
|
+
run: async () => {
|
|
65
|
+
// Proxy run to target module
|
|
66
|
+
for (const target of moduleManifest.targets ?? []) {
|
|
67
|
+
await child.run(target);
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
invoke: async () => {
|
|
71
|
+
// Proxy run to target module
|
|
72
|
+
// for (const target of (moduleManifest.targets as string[]) ?? []) {
|
|
73
|
+
// child.invoke(target);
|
|
74
|
+
// }
|
|
75
|
+
console.log("invoking");
|
|
76
|
+
},
|
|
77
|
+
init: async () => {
|
|
78
|
+
await child.initializeResources();
|
|
79
|
+
},
|
|
80
|
+
teardown: async () => {
|
|
81
|
+
await child.teardownResources();
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function validateRequiredInputs(schemaDefs, provided, kind) {
|
|
86
|
+
for (const [key, def] of Object.entries(schemaDefs)) {
|
|
87
|
+
const isRequired = typeof def === "object" && def !== null && !("default" in def);
|
|
88
|
+
if (isRequired && !(key in provided)) {
|
|
89
|
+
throw new Error(`Required ${kind} input "${key}" not provided for module import`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export const schema = {
|
|
94
|
+
type: "object",
|
|
95
|
+
properties: {
|
|
96
|
+
kind: { type: "string" },
|
|
97
|
+
metadata: {
|
|
98
|
+
type: "object",
|
|
99
|
+
properties: {
|
|
100
|
+
name: { type: "string" },
|
|
101
|
+
module: { type: "string" },
|
|
102
|
+
},
|
|
103
|
+
required: ["name"],
|
|
104
|
+
additionalProperties: true,
|
|
105
|
+
},
|
|
106
|
+
source: { type: "string" },
|
|
107
|
+
variables: { type: "object" },
|
|
108
|
+
secrets: { type: "object" },
|
|
109
|
+
},
|
|
110
|
+
required: ["metadata", "source"],
|
|
111
|
+
additionalProperties: false,
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=import-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/import-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
import type { ResourceContext, ResourceInstance
|
|
2
|
-
|
|
3
|
-
source?: string;
|
|
4
|
-
imports?: string[];
|
|
5
|
-
definitions?: string[];
|
|
6
|
-
resources?: (string | {
|
|
7
|
-
path: string;
|
|
8
|
-
})[];
|
|
9
|
-
};
|
|
10
|
-
export declare function create(resource: ModuleResource, ctx: ResourceContext): Promise<ResourceInstance>;
|
|
11
|
-
export declare const schema: {
|
|
12
|
-
type: string;
|
|
13
|
-
additionalProperties: boolean;
|
|
14
|
-
};
|
|
15
|
-
export {};
|
|
1
|
+
import type { ResourceContext, ResourceInstance } from "@telorun/sdk";
|
|
2
|
+
export declare function create(resource: any, ctx: ResourceContext): Promise<ResourceInstance>;
|
|
16
3
|
//# sourceMappingURL=module-controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"module-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAY3F"}
|
|
@@ -1,95 +1,14 @@
|
|
|
1
|
-
import * as path from "path";
|
|
2
|
-
import { Loader } from "../../loader.js";
|
|
3
|
-
/**
|
|
4
|
-
* Check if a path is a URL (http:// or https://)
|
|
5
|
-
*/
|
|
6
|
-
function isUrl(pathOrUrl) {
|
|
7
|
-
return pathOrUrl.startsWith("http://") || pathOrUrl.startsWith("https://");
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Resolve a path relative to a base, handling both local paths and URLs
|
|
11
|
-
*/
|
|
12
|
-
function resolvePath(loader, base, relative) {
|
|
13
|
-
// If the relative path is actually a URL, return it as-is
|
|
14
|
-
if (isUrl(relative)) {
|
|
15
|
-
return relative;
|
|
16
|
-
}
|
|
17
|
-
// Otherwise, resolve it relative to the base
|
|
18
|
-
return loader.resolvePath(base, relative);
|
|
19
|
-
}
|
|
20
1
|
export async function create(resource, ctx) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// Load and register resource definitions from imports
|
|
28
|
-
if (resource.imports && Array.isArray(resource.imports)) {
|
|
29
|
-
for (const importPath of resource.imports) {
|
|
30
|
-
const resolvedPath = resolvePath(loader, moduleBasePath, importPath);
|
|
31
|
-
const defResources = await loader.loadDirectory(resolvedPath);
|
|
32
|
-
for (const defResource of defResources) {
|
|
33
|
-
ctx.registerManifest(defResource);
|
|
2
|
+
return {
|
|
3
|
+
run: async () => {
|
|
4
|
+
for (const target of resource.targets ?? []) {
|
|
5
|
+
const [kind, name] = target.split(".");
|
|
6
|
+
if (!kind || !name) {
|
|
7
|
+
throw new Error(`Invalid target format: "${target}". Expected "Kind.Name"`);
|
|
34
8
|
}
|
|
9
|
+
await ctx.invoke(kind, name, {});
|
|
35
10
|
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (resource.definitions && Array.isArray(resource.definitions)) {
|
|
39
|
-
for (const defPath of resource.definitions) {
|
|
40
|
-
const resolvedPath = resolvePath(loader, moduleBasePath, defPath);
|
|
41
|
-
const defResources = await loader.loadManifest(resolvedPath);
|
|
42
|
-
for (const defResource of defResources) {
|
|
43
|
-
ctx.registerManifest(defResource);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (resource.resources && Array.isArray(resource.resources)) {
|
|
48
|
-
for (const defPath of resource.resources) {
|
|
49
|
-
const rawPath = typeof defPath === "string" ? defPath : defPath.path;
|
|
50
|
-
const resolvedPath = resolvePath(loader, moduleBasePath, rawPath);
|
|
51
|
-
const defResources = await loader.loadManifest(resolvedPath);
|
|
52
|
-
for (const defResource of defResources) {
|
|
53
|
-
ctx.registerManifest(defResource);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return {};
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
throw new Error(`Failed to process Module "${resource.metadata.name}": ${error instanceof Error ? error.message : String(error)}`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
function getModuleBasePath(uri) {
|
|
64
|
-
if (!uri) {
|
|
65
|
-
return process.cwd();
|
|
66
|
-
}
|
|
67
|
-
try {
|
|
68
|
-
// URI format: file://localhost/path/to/file.yaml#kind.name
|
|
69
|
-
// Extract the file path part (before the #)
|
|
70
|
-
const hashIndex = uri.indexOf("#");
|
|
71
|
-
const filePath = hashIndex > 0 ? uri.substring(0, hashIndex) : uri;
|
|
72
|
-
// Parse as URL to handle file:// scheme
|
|
73
|
-
if (filePath.startsWith("file://")) {
|
|
74
|
-
// Remove 'file://localhost' and get the path
|
|
75
|
-
let pathPart = filePath.substring("file://".length);
|
|
76
|
-
if (pathPart.startsWith("localhost/")) {
|
|
77
|
-
pathPart = pathPart.substring("localhost".length);
|
|
78
|
-
}
|
|
79
|
-
else if (pathPart.startsWith("localhost\\")) {
|
|
80
|
-
pathPart = pathPart.substring("localhost".length);
|
|
81
|
-
}
|
|
82
|
-
return path.dirname(pathPart);
|
|
83
|
-
}
|
|
84
|
-
// Fallback: treat as regular path
|
|
85
|
-
return path.dirname(filePath);
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
return process.cwd();
|
|
89
|
-
}
|
|
11
|
+
},
|
|
12
|
+
};
|
|
90
13
|
}
|
|
91
|
-
export const schema = {
|
|
92
|
-
type: "object",
|
|
93
|
-
additionalProperties: true,
|
|
94
|
-
};
|
|
95
14
|
//# sourceMappingURL=module-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"module-controller.js","sourceRoot":"","sources":["../../../src/controllers/module/module-controller.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,GAAoB;IAC9D,OAAO;QACL,GAAG,EAAE,KAAK,IAAI,EAAE;YACd,KAAK,MAAM,MAAM,IAAK,QAAQ,CAAC,OAAoB,IAAI,EAAE,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,yBAAyB,CAAC,CAAC;gBAC9E,CAAC;gBACD,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import type { ControllerContext, ResourceContext, ResourceInstance, RuntimeResource } from "@telorun/sdk";
|
|
2
2
|
import { ControllerLoader } from "../../controller-loader.js";
|
|
3
3
|
type ResourceDefinitionResource = RuntimeResource & {
|
|
4
|
-
kind: "Definition";
|
|
4
|
+
kind: "Kernel.Definition";
|
|
5
5
|
metadata: {
|
|
6
6
|
[key: string]: any;
|
|
7
7
|
name: string;
|
|
8
8
|
module?: string;
|
|
9
9
|
};
|
|
10
10
|
schema: Record<string, any>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
controllers: Array<string>;
|
|
11
|
+
capability?: string;
|
|
12
|
+
controllers?: Array<string>;
|
|
14
13
|
};
|
|
15
14
|
/**
|
|
16
15
|
* ResourceDefinition resource - acts as metadata holder for resource type definitions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-definition-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-definition-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAI9D,KAAK,0BAA0B,GAAG,eAAe,GAAG;IAClD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,cAAM,kBAAmB,YAAW,gBAAgB;IAIhD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B;IAC7C,OAAO,CAAC,gBAAgB;IAJ1B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAwB;gBAGhD,QAAQ,EAAE,0BAA0B,EACrC,gBAAgB,EAAE,gBAAgB;IAGtC,IAAI,CAAC,GAAG,EAAE,eAAe;CA6BhC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAErD;AAED,wBAAsB,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAW7F;AAED,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ControllerLoader } from "../../controller-loader.js";
|
|
2
2
|
import { formatAjvErrors, validateResourceDefinition } from "../../manifest-schemas.js";
|
|
3
|
+
import { createTemplateController } from "./resource-template-controller.js";
|
|
3
4
|
/**
|
|
4
5
|
* ResourceDefinition resource - acts as metadata holder for resource type definitions
|
|
5
6
|
* Validates incoming definitions against schema and maintains definition metadata
|
|
@@ -11,18 +12,23 @@ class ResourceDefinition {
|
|
|
11
12
|
this.kind = "ResourceDefinition";
|
|
12
13
|
}
|
|
13
14
|
async init(ctx) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
if (!this.resource.controllers?.length) {
|
|
16
|
+
const controllerInstance = createTemplateController(this.resource);
|
|
17
|
+
ctx.registerDefinition(this.resource);
|
|
18
|
+
await ctx.registerController(this.resource.metadata.module, this.resource.metadata.name, controllerInstance);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
ctx.emit("ControllerLoading", { controllers: this.resource.controllers });
|
|
22
|
+
try {
|
|
23
|
+
const controllerInstance = await this.controllerLoader.load(this.resource.controllers, this.resource.metadata.source);
|
|
24
|
+
ctx.emit("ControllerLoaded", { schema: controllerInstance.schema });
|
|
25
|
+
ctx.registerDefinition(this.resource);
|
|
26
|
+
await ctx.registerController(this.resource.metadata.module, this.resource.metadata.name, controllerInstance);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
ctx.emit("ControllerLoadFailed", { error: err.message });
|
|
30
|
+
throw err;
|
|
22
31
|
}
|
|
23
|
-
const controllerInstance = await this.controllerLoader.load(this.resource.controllers, this.resource.metadata.source);
|
|
24
|
-
ctx.registerDefinition(this.resource);
|
|
25
|
-
await ctx.registerController(this.resource.metadata.module, this.resource.metadata.name, controllerInstance);
|
|
26
32
|
}
|
|
27
33
|
}
|
|
28
34
|
export function register(ctx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-definition-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-definition-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-definition-controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAc7E;;;GAGG;AACH,MAAM,kBAAkB;IAGtB,YACW,QAAoC,EACrC,gBAAkC;QADjC,aAAQ,GAAR,QAAQ,CAA4B;QACrC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAJnC,SAAI,GAAyB,oBAAoB,CAAC;IAKxD,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,GAAoB;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YACvC,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;YAC1E,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC,kBAAkB,CAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAC3B,kBAAkB,CACnB,CAAC;YACF,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACzD,IAAI,CAAC,QAAQ,CAAC,WAAW,EACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAC9B,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC,kBAAkB,CAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAC7B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAC3B,kBAAkB,CACnB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,GAAsB;IAC7C,oEAAoE;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,QAAa,EAAE,GAAoB;IAC9D,uDAAuD;IACvD,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,MAAM,UAAU,GAAG,QAAiD,CAAC;IACrE,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;CAC3B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ControllerInstance } from "@telorun/sdk";
|
|
2
|
+
export declare function createTemplateController(definition: {
|
|
3
|
+
schema: Record<string, any>;
|
|
4
|
+
resources?: any[];
|
|
5
|
+
invoke?: string | {
|
|
6
|
+
kind?: string;
|
|
7
|
+
name: string;
|
|
8
|
+
inputs?: Record<string, any>;
|
|
9
|
+
};
|
|
10
|
+
run?: string;
|
|
11
|
+
}): ControllerInstance;
|
|
12
|
+
//# sourceMappingURL=resource-template-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-template-controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-template-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAqC,MAAM,cAAc,CAAC;AAG1F,wBAAgB,wBAAwB,CAAC,UAAU,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,kBAAkB,CAiIrB"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { isCompiledValue } from "@telorun/sdk";
|
|
2
|
+
export function createTemplateController(definition) {
|
|
3
|
+
return {
|
|
4
|
+
schema: definition.schema ?? { type: "object", additionalProperties: true },
|
|
5
|
+
create: async (resource, ctx) => {
|
|
6
|
+
const self = { ...resource, name: resource.metadata.name };
|
|
7
|
+
// Old string form: invoke is a plain string or a CompiledValue (after precompile).
|
|
8
|
+
// New object form: invoke is a plain object (non-CompiledValue) with at least `name`.
|
|
9
|
+
const objectInvoke = definition.invoke !== null &&
|
|
10
|
+
typeof definition.invoke === "object" &&
|
|
11
|
+
!isCompiledValue(definition.invoke)
|
|
12
|
+
? definition.invoke
|
|
13
|
+
: null;
|
|
14
|
+
const invokeNameTemplate = objectInvoke ? objectInvoke.name : (definition.invoke ?? null);
|
|
15
|
+
const invokeTarget = invokeNameTemplate
|
|
16
|
+
? ctx.moduleContext.expandWith(invokeNameTemplate, { self })
|
|
17
|
+
: null;
|
|
18
|
+
const runTarget = definition.run
|
|
19
|
+
? ctx.moduleContext.expandWith(definition.run, { self })
|
|
20
|
+
: null;
|
|
21
|
+
const persistentManifests = [];
|
|
22
|
+
let ephemeralTemplate = null;
|
|
23
|
+
for (const template of definition.resources ?? []) {
|
|
24
|
+
const expandedName = ctx.moduleContext.expandWith(template.metadata?.name ?? "", {
|
|
25
|
+
self,
|
|
26
|
+
});
|
|
27
|
+
const isTarget = expandedName === invokeTarget || expandedName === runTarget;
|
|
28
|
+
if (isTarget) {
|
|
29
|
+
ephemeralTemplate = template;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
persistentManifests.push(ctx.moduleContext.expandWith(template, { self }));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const childContext = ctx.spawnChildContext();
|
|
36
|
+
// Registers an ephemeral manifest on ctx.moduleContext so it shares the same
|
|
37
|
+
// resource scope (and can access connections, etc. via getInstance).
|
|
38
|
+
// Tears down and removes the resource after fn() completes.
|
|
39
|
+
const withEphemeral = async (expandedManifest, fn) => {
|
|
40
|
+
const uniqueName = `${expandedManifest.metadata?.name ?? "eph"}__${Math.random().toString(16).slice(2, 8)}`;
|
|
41
|
+
const manifest = {
|
|
42
|
+
...expandedManifest,
|
|
43
|
+
metadata: {
|
|
44
|
+
...expandedManifest.metadata,
|
|
45
|
+
name: uniqueName,
|
|
46
|
+
module: resource.metadata.module,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
ctx.moduleContext.registerManifest(manifest);
|
|
50
|
+
await ctx.moduleContext.initializeResources();
|
|
51
|
+
const entry = ctx.moduleContext.resourceInstances.get(uniqueName);
|
|
52
|
+
try {
|
|
53
|
+
return await fn(uniqueName);
|
|
54
|
+
}
|
|
55
|
+
finally {
|
|
56
|
+
if (entry?.instance?.teardown)
|
|
57
|
+
await entry.instance.teardown();
|
|
58
|
+
ctx.moduleContext.resourceInstances.delete(uniqueName);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
return {
|
|
62
|
+
init: async () => {
|
|
63
|
+
for (const m of persistentManifests)
|
|
64
|
+
childContext.registerManifest(m);
|
|
65
|
+
await childContext.initializeResources();
|
|
66
|
+
},
|
|
67
|
+
...(invokeTarget && {
|
|
68
|
+
invoke: async (inputs) => {
|
|
69
|
+
if (!ephemeralTemplate) {
|
|
70
|
+
throw new Error(`Template '${resource.metadata.name}': no ephemeral resource for invoke target '${invokeTarget}'`);
|
|
71
|
+
}
|
|
72
|
+
const extraContext = { self, inputs };
|
|
73
|
+
const expanded = ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(ephemeralTemplate, extraContext), extraContext);
|
|
74
|
+
return withEphemeral(expanded, async (name) => {
|
|
75
|
+
const entry = ctx.moduleContext.resourceInstances.get(name);
|
|
76
|
+
if (!entry?.instance?.invoke) {
|
|
77
|
+
throw new Error(`Ephemeral resource '${name}' is not invocable`);
|
|
78
|
+
}
|
|
79
|
+
// New object form: expand objectInvoke.inputs with invoke context and pass as arg.
|
|
80
|
+
// Old string form: the manifest inputs were computed during template expansion;
|
|
81
|
+
// pass expanded.inputs so Sql.Exec/Query controllers receive { sql, bindings }.
|
|
82
|
+
const invokeInputs = objectInvoke?.inputs != null
|
|
83
|
+
? ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(objectInvoke.inputs, extraContext), extraContext)
|
|
84
|
+
: expanded.inputs ?? inputs;
|
|
85
|
+
return entry.instance.invoke(invokeInputs);
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
}),
|
|
89
|
+
...(runTarget && {
|
|
90
|
+
run: async () => {
|
|
91
|
+
if (!ephemeralTemplate) {
|
|
92
|
+
throw new Error(`Template '${resource.metadata.name}': no ephemeral resource for run target '${runTarget}'`);
|
|
93
|
+
}
|
|
94
|
+
const extraContext = { self };
|
|
95
|
+
const expanded = ctx.moduleContext.expandWith(ctx.moduleContext.expandWith(ephemeralTemplate, extraContext), extraContext);
|
|
96
|
+
return withEphemeral(expanded, async (name) => {
|
|
97
|
+
const entry = ctx.moduleContext.resourceInstances.get(name);
|
|
98
|
+
if (!entry?.instance?.run) {
|
|
99
|
+
throw new Error(`Ephemeral resource '${name}' is not runnable`);
|
|
100
|
+
}
|
|
101
|
+
return entry.instance.run();
|
|
102
|
+
});
|
|
103
|
+
},
|
|
104
|
+
}),
|
|
105
|
+
teardown: async () => {
|
|
106
|
+
await childContext.teardownResources();
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=resource-template-controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-template-controller.js","sourceRoot":"","sources":["../../../src/controllers/resource-definition/resource-template-controller.ts"],"names":[],"mappings":"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"}
|