@telorun/kernel 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/boot-context-registry.d.ts.map +1 -1
  2. package/dist/boot-context-registry.js +6 -6
  3. package/dist/boot-context-registry.js.map +1 -1
  4. package/dist/capabilities/capabilities/component.yaml +2 -1
  5. package/dist/capabilities/capabilities/executable.yaml +2 -1
  6. package/dist/capabilities/capabilities/handler.yaml +2 -1
  7. package/dist/capabilities/capabilities/listener.yaml +2 -1
  8. package/dist/capabilities/capabilities/provider.yaml +2 -1
  9. package/dist/capabilities/capabilities/template.yaml +2 -1
  10. package/dist/capabilities/capabilities/type.yaml +2 -1
  11. package/dist/capabilities/component.yaml +1 -1
  12. package/dist/capabilities/executable.yaml +1 -1
  13. package/dist/capabilities/handler.yaml +1 -1
  14. package/dist/capabilities/listener.yaml +1 -1
  15. package/dist/capabilities/provider.yaml +1 -1
  16. package/dist/capabilities/template.yaml +1 -1
  17. package/dist/capabilities/type.yaml +1 -1
  18. package/dist/controller-loader.d.ts +1 -1
  19. package/dist/controller-loader.d.ts.map +1 -1
  20. package/dist/controller-loader.js +4 -2
  21. package/dist/controller-loader.js.map +1 -1
  22. package/dist/controller-registry.d.ts +1 -2
  23. package/dist/controller-registry.d.ts.map +1 -1
  24. package/dist/controller-registry.js.map +1 -1
  25. package/dist/controllers/module/import-controller.d.ts +38 -0
  26. package/dist/controllers/module/import-controller.d.ts.map +1 -0
  27. package/dist/controllers/module/import-controller.js +119 -0
  28. package/dist/controllers/module/import-controller.js.map +1 -0
  29. package/dist/controllers/module/module-controller.d.ts +57 -11
  30. package/dist/controllers/module/module-controller.d.ts.map +1 -1
  31. package/dist/controllers/module/module-controller.js +46 -82
  32. package/dist/controllers/module/module-controller.js.map +1 -1
  33. package/dist/controllers/resource-definition/resource-definition-controller.d.ts.map +1 -1
  34. package/dist/controllers/resource-definition/resource-definition-controller.js +12 -4
  35. package/dist/controllers/resource-definition/resource-definition-controller.js.map +1 -1
  36. package/dist/evaluation-context.d.ts +91 -0
  37. package/dist/evaluation-context.d.ts.map +1 -0
  38. package/dist/evaluation-context.js +220 -0
  39. package/dist/evaluation-context.js.map +1 -0
  40. package/dist/execution-context.d.ts +13 -0
  41. package/dist/execution-context.d.ts.map +1 -0
  42. package/dist/execution-context.js +14 -0
  43. package/dist/execution-context.js.map +1 -0
  44. package/dist/index.d.ts +0 -3
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +0 -2
  47. package/dist/index.js.map +1 -1
  48. package/dist/kernel.d.ts +23 -31
  49. package/dist/kernel.d.ts.map +1 -1
  50. package/dist/kernel.js +212 -333
  51. package/dist/kernel.js.map +1 -1
  52. package/dist/loader.d.ts +2 -2
  53. package/dist/loader.d.ts.map +1 -1
  54. package/dist/loader.js +29 -9
  55. package/dist/loader.js.map +1 -1
  56. package/dist/manifest-adapters/local-file-adapter.d.ts.map +1 -1
  57. package/dist/manifest-adapters/local-file-adapter.js +21 -12
  58. package/dist/manifest-adapters/local-file-adapter.js.map +1 -1
  59. package/dist/manifest-schemas.d.ts +1 -25
  60. package/dist/manifest-schemas.d.ts.map +1 -1
  61. package/dist/manifest-schemas.js +3 -22
  62. package/dist/manifest-schemas.js.map +1 -1
  63. package/dist/module-context-registry.d.ts +48 -0
  64. package/dist/module-context-registry.d.ts.map +1 -0
  65. package/dist/module-context-registry.js +91 -0
  66. package/dist/module-context-registry.js.map +1 -0
  67. package/dist/module-context.d.ts +31 -0
  68. package/dist/module-context.d.ts.map +1 -0
  69. package/dist/module-context.js +67 -0
  70. package/dist/module-context.js.map +1 -0
  71. package/dist/registry.d.ts +1 -2
  72. package/dist/registry.d.ts.map +1 -1
  73. package/dist/registry.js +3 -3
  74. package/dist/registry.js.map +1 -1
  75. package/dist/resource-context.d.ts +25 -5
  76. package/dist/resource-context.d.ts.map +1 -1
  77. package/dist/resource-context.js +74 -28
  78. package/dist/resource-context.js.map +1 -1
  79. package/dist/schema-valiator.d.ts.map +1 -1
  80. package/dist/schema-valiator.js +3 -1
  81. package/dist/schema-valiator.js.map +1 -1
  82. package/dist/snapshot-serializer.d.ts +1 -2
  83. package/dist/snapshot-serializer.d.ts.map +1 -1
  84. package/dist/snapshot-serializer.js.map +1 -1
  85. package/dist/types.d.ts +3 -0
  86. package/dist/types.d.ts.map +1 -1
  87. package/dist/types.js.map +1 -1
  88. package/package.json +9 -6
  89. package/src/boot-context-registry.ts +169 -0
  90. package/src/capabilities/component.yaml +4 -0
  91. package/src/capabilities/executable.yaml +8 -0
  92. package/src/capabilities/handler.yaml +4 -0
  93. package/src/capabilities/listener.yaml +4 -0
  94. package/src/capabilities/provider.yaml +4 -0
  95. package/src/capabilities/template.yaml +4 -0
  96. package/src/capabilities/type.yaml +4 -0
  97. package/src/controller-loader.ts +298 -0
  98. package/src/controller-registry.ts +206 -0
  99. package/src/controllers/capability/capability-controller.ts +41 -0
  100. package/src/controllers/module/import-controller.ts +143 -0
  101. package/src/controllers/module/module-controller.ts +67 -0
  102. package/src/controllers/module/module.json +48 -0
  103. package/src/controllers/resource-definition/resource-definition-controller.ts +87 -0
  104. package/src/controllers/resource-definition/resource-definition.json +18 -0
  105. package/src/event-stream.ts +121 -0
  106. package/src/events.ts +99 -0
  107. package/src/index.ts +7 -0
  108. package/src/kernel.ts +558 -0
  109. package/src/loader.ts +245 -0
  110. package/src/manifest-adapters/http-adapter.ts +35 -0
  111. package/src/manifest-adapters/local-file-adapter.ts +69 -0
  112. package/src/manifest-adapters/manifest-adapter.ts +33 -0
  113. package/src/manifest-adapters/registry-adapter.ts +56 -0
  114. package/src/manifest-schemas.ts +49 -0
  115. package/src/registry.ts +137 -0
  116. package/src/resource-context.ts +266 -0
  117. package/src/resource-uri.ts +200 -0
  118. package/src/schema-valiator.ts +57 -0
  119. package/dist/cli.d.ts +0 -3
  120. package/dist/cli.d.ts.map +0 -1
  121. package/dist/cli.js +0 -109
  122. package/dist/cli.js.map +0 -1
  123. package/dist/expressions.d.ts +0 -20
  124. package/dist/expressions.d.ts.map +0 -1
  125. package/dist/expressions.js +0 -253
  126. package/dist/expressions.js.map +0 -1
  127. package/dist/template-definition.d.ts +0 -38
  128. package/dist/template-definition.d.ts.map +0 -1
  129. package/dist/template-definition.js +0 -26
  130. package/dist/template-definition.js.map +0 -1
  131. package/dist/template-expander.d.ts +0 -19
  132. package/dist/template-expander.d.ts.map +0 -1
  133. package/dist/template-expander.js +0 -425
  134. package/dist/template-expander.js.map +0 -1
  135. /package/{dist/src → src}/controllers/module/module.yaml +0 -0
@@ -1,253 +0,0 @@
1
- import { evaluate } from "cel-js";
2
- const TEMPLATE_REGEX = /\$\{\{\s*([^}]+?)\s*\}\}/g;
3
- const EXACT_TEMPLATE_REGEX = /^\s*\$\{\{\s*([^}]+?)\s*\}\}\s*$/;
4
- export function evaluateCel(expression, context) {
5
- return evaluate(expression, context);
6
- }
7
- export function expandValue(value, context) {
8
- if (typeof value === "string") {
9
- return expandString(value, context);
10
- }
11
- if (Array.isArray(value)) {
12
- return value.map((entry) => expandValue(entry, context));
13
- }
14
- if (!value || typeof value !== "object") {
15
- return value;
16
- }
17
- const resolved = {};
18
- for (const [key, entry] of Object.entries(value)) {
19
- resolved[key] = expandValue(entry, context);
20
- }
21
- return resolved;
22
- }
23
- export function resolveExpressionsInRegistry(registry, runtimeConfig) {
24
- const maxPasses = 5;
25
- for (let pass = 0; pass < maxPasses; pass += 1) {
26
- const context = buildEvaluationContext(registry, runtimeConfig);
27
- let changed = false;
28
- for (const [kind, resourcesByName] of registry.entries()) {
29
- for (const [name, resource] of resourcesByName.entries()) {
30
- const { value, updated } = resolveResource(resource, context, {
31
- kind,
32
- name,
33
- });
34
- if (updated) {
35
- resourcesByName.set(name, value);
36
- changed = true;
37
- }
38
- }
39
- }
40
- if (!changed) {
41
- break;
42
- }
43
- }
44
- }
45
- function buildEvaluationContext(registry, runtimeConfig) {
46
- // Whitelist environment variables
47
- const allowedEnvVars = ["NODE_ENV", "PORT", "HOST", "PATH", "HOME", "USER", "LANG"];
48
- const env = {};
49
- for (const key of allowedEnvVars) {
50
- if (process.env[key] !== undefined) {
51
- env[key] = process.env[key];
52
- }
53
- }
54
- const context = { env };
55
- const modules = {};
56
- if (runtimeConfig?.name) {
57
- const moduleEntry = {
58
- name: runtimeConfig.name,
59
- version: runtimeConfig.version,
60
- };
61
- modules[runtimeConfig.name] = moduleEntry;
62
- const alias = capitalize(runtimeConfig.name);
63
- if (alias && alias !== runtimeConfig.name) {
64
- modules[alias] = moduleEntry;
65
- }
66
- }
67
- context.Namespace = modules;
68
- for (const [kind, resourcesByName] of registry.entries()) {
69
- const kindBucket = {};
70
- for (const [name, resource] of resourcesByName.entries()) {
71
- kindBucket[name] = resource;
72
- }
73
- const parts = kind.split(".").filter(Boolean);
74
- if (parts.length <= 1) {
75
- context[kind] = kindBucket;
76
- continue;
77
- }
78
- let cursor = context;
79
- for (let i = 0; i < parts.length - 1; i += 1) {
80
- const part = parts[i];
81
- if (!cursor[part] || typeof cursor[part] !== "object") {
82
- cursor[part] = {};
83
- }
84
- cursor = cursor[part];
85
- }
86
- cursor[parts[parts.length - 1]] = kindBucket;
87
- }
88
- return context;
89
- }
90
- function resolveResource(resource, context, id) {
91
- const { value, updated } = resolveValue(resource, context, id, {
92
- isRoot: true,
93
- });
94
- return { value: value, updated };
95
- }
96
- function resolveValue(value, context, id, options) {
97
- if (typeof value === "string") {
98
- return resolveString(value, context, id);
99
- }
100
- if (Array.isArray(value)) {
101
- let changed = false;
102
- const resolved = value.map((entry) => {
103
- const result = resolveValue(entry, context, id);
104
- if (result.updated) {
105
- changed = true;
106
- }
107
- return result.value;
108
- });
109
- return { value: changed ? resolved : value, updated: changed };
110
- }
111
- if (!value || typeof value !== "object") {
112
- return { value, updated: false };
113
- }
114
- let changed = false;
115
- const resolved = {};
116
- for (const [key, entry] of Object.entries(value)) {
117
- if (options?.isRoot && key === "kind") {
118
- resolved[key] = entry;
119
- continue;
120
- }
121
- if (options?.isMetadata && key === "name") {
122
- resolved[key] = entry;
123
- continue;
124
- }
125
- if (options?.isRoot && key === "metadata" && entry && typeof entry === "object") {
126
- const result = resolveValue(entry, context, id, { isMetadata: true });
127
- resolved[key] = result.value;
128
- if (result.updated) {
129
- changed = true;
130
- }
131
- continue;
132
- }
133
- const result = resolveValue(entry, context, id);
134
- resolved[key] = result.value;
135
- if (result.updated) {
136
- changed = true;
137
- }
138
- }
139
- return { value: changed ? resolved : value, updated: changed };
140
- }
141
- function resolveString(value, context, id) {
142
- if (!value.includes("${{")) {
143
- return { value, updated: false };
144
- }
145
- const exact = value.match(EXACT_TEMPLATE_REGEX);
146
- if (exact) {
147
- const expr = exact[1];
148
- const evaluated = evaluateExpression(expr, context, id);
149
- if (evaluated.deferred) {
150
- return { value, updated: false };
151
- }
152
- return { value: evaluated.value, updated: true };
153
- }
154
- let replaced = value;
155
- replaced = replaced.replace(TEMPLATE_REGEX, (_match, expr) => {
156
- const evaluated = evaluateExpression(expr, context, id);
157
- if (evaluated.deferred) {
158
- return _match;
159
- }
160
- if (evaluated.value === null || evaluated.value === undefined) {
161
- return "";
162
- }
163
- return String(evaluated.value);
164
- });
165
- return { value: replaced, updated: replaced !== value };
166
- }
167
- function expandString(value, context) {
168
- if (!value.includes("${{")) {
169
- return value;
170
- }
171
- const exact = value.match(EXACT_TEMPLATE_REGEX);
172
- if (exact) {
173
- return evaluateCelWithError(exact[1], context, {
174
- kind: "Value",
175
- name: "expand",
176
- });
177
- }
178
- return value.replace(TEMPLATE_REGEX, (_match, expr) => {
179
- const evaluated = evaluateCelWithError(expr, context, {
180
- kind: "Value",
181
- name: "expand",
182
- });
183
- if (evaluated === null || evaluated === undefined) {
184
- return "";
185
- }
186
- return String(evaluated);
187
- });
188
- }
189
- function evaluateExpression(expr, context, id) {
190
- try {
191
- return { value: evaluateCelWithError(expr, context, id), deferred: false };
192
- }
193
- catch (error) {
194
- const message = error instanceof Error ? error.message : String(error);
195
- if (isDeferredExpressionError(message, expr)) {
196
- return { deferred: true };
197
- }
198
- throw new Error(`CEL evaluation failed for ${id.kind}.${id.name}: "${expr}": ${message}`);
199
- }
200
- }
201
- function capitalize(value) {
202
- if (!value) {
203
- return value;
204
- }
205
- return value[0].toUpperCase() + value.slice(1);
206
- }
207
- function isDeferredExpressionError(message, expr) {
208
- const trimmed = expr.trim();
209
- const deferredRoots = ["request.", "result."];
210
- if (!deferredRoots.some((root) => trimmed.startsWith(root))) {
211
- return false;
212
- }
213
- return message.includes('Identifier "') && message.includes("not found");
214
- }
215
- /**
216
- * Resolve all non-deferred CEL expressions in a resource manifest using the
217
- * provided boot context. Expressions referencing `request.*` or `result.*` are
218
- * left untouched — they will be resolved at request time by the runtime.
219
- *
220
- * Missing identifiers that are not deferred prefixes will throw, which is
221
- * intentional: if a consumer's manifest references a boot-context identifier
222
- * that is absent from the context, it is a configuration error.
223
- *
224
- * @param manifest - The raw (pre-creation) ResourceManifest
225
- * @param context - CEL evaluation context built by BootContextRegistry.buildContext()
226
- * @returns A new manifest object with all resolvable `${{ }}` templates replaced
227
- */
228
- export function resolveManifestWithContext(manifest, context) {
229
- const id = {
230
- kind: manifest.kind,
231
- name: manifest.metadata?.name ?? '(unknown)',
232
- };
233
- const { value } = resolveValue(manifest, context, id, { isRoot: true });
234
- return value;
235
- }
236
- function evaluateCelWithError(expr, context, id) {
237
- try {
238
- return evaluateCel(expr, context);
239
- }
240
- catch (error) {
241
- const message = error instanceof Error ? error.message : String(error);
242
- // Build helpful context information
243
- const availableVars = Object.keys(context)
244
- .filter((k) => k !== "env")
245
- .concat(context.env ? Object.keys(context.env).map((k) => `env.${k}`) : [])
246
- .sort();
247
- throw new Error(`CEL evaluation failed for resource ${id.kind}.${id.name}\n` +
248
- `Expression: "${expr}"\n` +
249
- `Error: ${message}\n` +
250
- `Available variables: ${availableVars.slice(0, 20).join(", ")}${availableVars.length > 20 ? "..." : ""}`);
251
- }
252
- }
253
- //# sourceMappingURL=expressions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../src/expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAKlC,MAAM,cAAc,GAAG,2BAA2B,CAAC;AACnD,MAAM,oBAAoB,GAAG,kCAAkC,CAAC;AAEhE,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,OAA4B;IAC1E,OAAO,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAU,EAAE,OAA4B;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAAmD,EACnD,aAAsC;IAEtC,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAChE,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE;oBAC5D,IAAI;oBACJ,IAAI;iBACL,CAAC,CAAC;gBACH,IAAI,OAAO,EAAE,CAAC;oBACZ,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACjC,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAAmD,EACnD,aAAsC;IAEtC,kCAAkC;IAClC,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpF,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YACnC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAwB,EAAE,GAAG,EAAE,CAAC;IAE7C,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,IAAI,aAAa,EAAE,IAAI,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B,CAAC;QACF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,KAAK,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;IAE5B,KAAK,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,MAAM,UAAU,GAAwB,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;QAC9B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,MAAM,GAAwB,OAAO,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACtD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,IAAI,CAAwB,CAAC;QAC/C,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;IAC/C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CACtB,QAAyB,EACzB,OAA4B,EAC5B,EAAc;IAEd,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7D,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,KAAwB,EAAE,OAAO,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,YAAY,CACnB,KAAU,EACV,OAA4B,EAC5B,EAAc,EACd,OAAoD;IAEpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,OAAO,EAAE,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,EAAE,UAAU,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1C,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,EAAE,MAAM,IAAI,GAAG,KAAK,UAAU,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAChF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,aAAa,CACpB,KAAa,EACb,OAA4B,EAC5B,EAAc;IAEd,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAChD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAC3D,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9D,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,KAAK,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,OAA4B;IAC/D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAChD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE;YAC7C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACpD,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE;YACpD,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAY,EACZ,OAA4B,EAC5B,EAAc;IAEd,IAAI,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;YAC7C,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,MAAM,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAe,EAAE,IAAY;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAA0B,EAC1B,OAA4B;IAE5B,MAAM,EAAE,GAAe;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,IAAI,EAAG,QAAQ,CAAC,QAAQ,EAAE,IAA2B,IAAI,WAAW;KACrE,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,OAAO,KAAyB,CAAC;AACnC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,OAA4B,EAAE,EAAc;IACtF,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvE,oCAAoC;QACpC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC;aAC1B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,IAAI,EAAE,CAAC;QAEV,MAAM,IAAI,KAAK,CACb,sCAAsC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI;YAC1D,gBAAgB,IAAI,KAAK;YACzB,UAAU,OAAO,IAAI;YACrB,wBAAwB,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3G,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,38 +0,0 @@
1
- import { RuntimeResource } from "@telorun/sdk";
2
- /**
3
- * Built-in TemplateDefinition resource type
4
- */
5
- export interface TemplateDefinition extends RuntimeResource {
6
- kind: "TemplateDefinition";
7
- schema: Record<string, any>;
8
- resources: TemplateResourceBlueprint[];
9
- }
10
- /**
11
- * A resource blueprint that can include control flow directives
12
- */
13
- export interface TemplateResourceBlueprint {
14
- for?: string | string[];
15
- if?: string;
16
- kind?: string;
17
- metadata?: {
18
- name: string;
19
- [key: string]: any;
20
- };
21
- resource?: RuntimeResource;
22
- [key: string]: any;
23
- }
24
- /**
25
- * Template expansion context containing variables from schema
26
- */
27
- export interface TemplateContext {
28
- [varName: string]: any;
29
- }
30
- /**
31
- * Validates if a resource is a TemplateDefinition
32
- */
33
- export declare function isTemplateDefinition(resource: RuntimeResource): resource is TemplateDefinition;
34
- /**
35
- * Extracts default values from JSONSchema to build initial template context
36
- */
37
- export declare function extractDefaultsFromSchema(schema: Record<string, any>): TemplateContext;
38
- //# sourceMappingURL=template-definition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-definition.d.ts","sourceRoot":"","sources":["../src/template-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,SAAS,EAAE,yBAAyB,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IAExC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IAGZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IAGF,QAAQ,CAAC,EAAE,eAAe,CAAC;IAG3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ,IAAI,kBAAkB,CAE9F;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe,CAmBtF"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Validates if a resource is a TemplateDefinition
3
- */
4
- export function isTemplateDefinition(resource) {
5
- return resource.kind === "TemplateDefinition";
6
- }
7
- /**
8
- * Extracts default values from JSONSchema to build initial template context
9
- */
10
- export function extractDefaultsFromSchema(schema) {
11
- const context = {};
12
- if (!schema || typeof schema !== "object") {
13
- return context;
14
- }
15
- const properties = schema.properties;
16
- if (!properties || typeof properties !== "object") {
17
- return context;
18
- }
19
- for (const [key, propSchema] of Object.entries(properties)) {
20
- if (propSchema && typeof propSchema === "object" && "default" in propSchema) {
21
- context[key] = propSchema.default;
22
- }
23
- }
24
- return context;
25
- }
26
- //# sourceMappingURL=template-definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-definition.js","sourceRoot":"","sources":["../src/template-definition.ts"],"names":[],"mappings":"AAwCA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAyB;IAC5D,OAAO,QAAQ,CAAC,IAAI,KAAK,oBAAoB,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAA2B;IACnE,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3D,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,19 +0,0 @@
1
- import { RuntimeResource } from "@telorun/sdk";
2
- import type { TemplateContext, TemplateDefinition } from "./template-definition.js";
3
- /**
4
- * Expands all TemplateDefinition resources into concrete resources
5
- * Supports recursive expansion (templates can generate templates)
6
- */
7
- export declare function expandTemplates(resources: RuntimeResource[]): RuntimeResource[];
8
- /**
9
- * Instantiates a template with provided parameters
10
- * This is called when a resource of kind "Template.<Name>" is encountered
11
- */
12
- export declare function instantiateTemplate(template: TemplateDefinition, parameters: Record<string, any>, instanceName: string, depth?: number, parentUri?: string): RuntimeResource[];
13
- /**
14
- * Expands array/object properties that contain 'for' directives
15
- * Example: routes: [{ for: "r in routes", resource: { path: "${{ r }}" } }]
16
- * Also supports nested loops with array syntax: { for: ["e in endpoints", "m in e.methods"], ... }
17
- */
18
- export declare function expandPropertyWithControlFlow(value: any, context: TemplateContext): any;
19
- //# sourceMappingURL=template-expander.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-expander.d.ts","sourceRoot":"","sources":["../src/template-expander.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,KAAK,EACR,eAAe,EACf,kBAAkB,EAErB,MAAM,0BAA0B,CAAC;AAOlC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAsB/E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,YAAY,EAAE,MAAM,EACpB,KAAK,SAAI,EACT,SAAS,CAAC,EAAE,MAAM,GACjB,eAAe,EAAE,CAoBnB;AAucD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,GAAG,GAAG,CA4BvF"}