typekro 0.7.0 → 0.8.0

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 (92) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts +1 -1
  3. package/dist/compositions/typekro-runtime/typekro-runtime.d.ts.map +1 -1
  4. package/dist/compositions/typekro-runtime/typekro-runtime.js +16 -2
  5. package/dist/compositions/typekro-runtime/typekro-runtime.js.map +1 -1
  6. package/dist/core/containers/build.d.ts +4 -4
  7. package/dist/core/containers/build.js +4 -4
  8. package/dist/core/containers/registries/types.d.ts +1 -1
  9. package/dist/core/containers/registries/types.d.ts.map +1 -1
  10. package/dist/core/deployment/kro-factory.d.ts +21 -0
  11. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  12. package/dist/core/deployment/kro-factory.js +42 -6
  13. package/dist/core/deployment/kro-factory.js.map +1 -1
  14. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts +8 -2
  15. package/dist/core/expressions/composition/composition-analyzer-helpers.d.ts.map +1 -1
  16. package/dist/core/expressions/composition/composition-analyzer-helpers.js +34 -2
  17. package/dist/core/expressions/composition/composition-analyzer-helpers.js.map +1 -1
  18. package/dist/core/expressions/composition/composition-analyzer-ternary.d.ts.map +1 -1
  19. package/dist/core/expressions/composition/composition-analyzer-ternary.js +52 -28
  20. package/dist/core/expressions/composition/composition-analyzer-ternary.js.map +1 -1
  21. package/dist/core/expressions/composition/composition-analyzer-traversal.d.ts.map +1 -1
  22. package/dist/core/expressions/composition/composition-analyzer-traversal.js +11 -4
  23. package/dist/core/expressions/composition/composition-analyzer-traversal.js.map +1 -1
  24. package/dist/core/expressions/composition/composition-analyzer-types.d.ts +8 -0
  25. package/dist/core/expressions/composition/composition-analyzer-types.d.ts.map +1 -1
  26. package/dist/core/expressions/composition/composition-analyzer.d.ts +1 -1
  27. package/dist/core/expressions/composition/composition-analyzer.d.ts.map +1 -1
  28. package/dist/core/expressions/composition/composition-analyzer.js +8 -2
  29. package/dist/core/expressions/composition/composition-analyzer.js.map +1 -1
  30. package/dist/core/references/cel.d.ts +48 -0
  31. package/dist/core/references/cel.d.ts.map +1 -1
  32. package/dist/core/references/cel.js +82 -0
  33. package/dist/core/references/cel.js.map +1 -1
  34. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  35. package/dist/core/serialization/cel-references.js +61 -19
  36. package/dist/core/serialization/cel-references.js.map +1 -1
  37. package/dist/core/serialization/core.d.ts +6 -1
  38. package/dist/core/serialization/core.d.ts.map +1 -1
  39. package/dist/core/serialization/core.js +418 -5
  40. package/dist/core/serialization/core.js.map +1 -1
  41. package/dist/core/serialization/kro-post-processing.d.ts +46 -0
  42. package/dist/core/serialization/kro-post-processing.d.ts.map +1 -0
  43. package/dist/core/serialization/kro-post-processing.js +103 -0
  44. package/dist/core/serialization/kro-post-processing.js.map +1 -0
  45. package/dist/core/serialization/schema.d.ts +61 -3
  46. package/dist/core/serialization/schema.d.ts.map +1 -1
  47. package/dist/core/serialization/schema.js +487 -2
  48. package/dist/core/serialization/schema.js.map +1 -1
  49. package/dist/core/serialization/yaml.d.ts.map +1 -1
  50. package/dist/core/serialization/yaml.js +22 -4
  51. package/dist/core/serialization/yaml.js.map +1 -1
  52. package/dist/core/types/serialization.d.ts +38 -0
  53. package/dist/core/types/serialization.d.ts.map +1 -1
  54. package/dist/factories/kubernetes/config/secret.d.ts.map +1 -1
  55. package/dist/factories/kubernetes/config/secret.js +11 -1
  56. package/dist/factories/kubernetes/config/secret.js.map +1 -1
  57. package/dist/factories/searxng/compositions/index.d.ts +2 -0
  58. package/dist/factories/searxng/compositions/index.d.ts.map +1 -0
  59. package/dist/factories/searxng/compositions/index.js +2 -0
  60. package/dist/factories/searxng/compositions/index.js.map +1 -0
  61. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts +65 -0
  62. package/dist/factories/searxng/compositions/searxng-bootstrap.d.ts.map +1 -0
  63. package/dist/factories/searxng/compositions/searxng-bootstrap.js +237 -0
  64. package/dist/factories/searxng/compositions/searxng-bootstrap.js.map +1 -0
  65. package/dist/factories/searxng/index.d.ts +29 -0
  66. package/dist/factories/searxng/index.d.ts.map +1 -0
  67. package/dist/factories/searxng/index.js +27 -0
  68. package/dist/factories/searxng/index.js.map +1 -0
  69. package/dist/factories/searxng/resources/index.d.ts +2 -0
  70. package/dist/factories/searxng/resources/index.d.ts.map +1 -0
  71. package/dist/factories/searxng/resources/index.js +2 -0
  72. package/dist/factories/searxng/resources/index.js.map +1 -0
  73. package/dist/factories/searxng/resources/searxng.d.ts +65 -0
  74. package/dist/factories/searxng/resources/searxng.d.ts.map +1 -0
  75. package/dist/factories/searxng/resources/searxng.js +188 -0
  76. package/dist/factories/searxng/resources/searxng.js.map +1 -0
  77. package/dist/factories/searxng/types.d.ts +126 -0
  78. package/dist/factories/searxng/types.d.ts.map +1 -0
  79. package/dist/factories/searxng/types.js +176 -0
  80. package/dist/factories/searxng/types.js.map +1 -0
  81. package/dist/factories/searxng/utils/settings-builder.d.ts +46 -0
  82. package/dist/factories/searxng/utils/settings-builder.d.ts.map +1 -0
  83. package/dist/factories/searxng/utils/settings-builder.js +52 -0
  84. package/dist/factories/searxng/utils/settings-builder.js.map +1 -0
  85. package/dist/factories/simple/config/secret.d.ts.map +1 -1
  86. package/dist/factories/simple/config/secret.js +28 -0
  87. package/dist/factories/simple/config/secret.js.map +1 -1
  88. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts +5 -6
  89. package/dist/factories/webapp/compositions/web-app-with-processing.d.ts.map +1 -1
  90. package/dist/factories/webapp/compositions/web-app-with-processing.js +5 -6
  91. package/dist/factories/webapp/compositions/web-app-with-processing.js.map +1 -1
  92. package/package.json +5 -1
@@ -4,6 +4,7 @@
4
4
  * This module provides the main serialization functions to convert
5
5
  * TypeScript resource definitions to Kro ResourceGraphDefinition YAML manifests.
6
6
  */
7
+ import { createCompositionContext, runWithCompositionContext } from '../composition/context.js';
7
8
  import { createDirectResourceFactory } from '../deployment/direct-factory.js';
8
9
  import { createKroResourceFactory } from '../deployment/kro-factory.js';
9
10
  import { ensureError, ValidationError } from '../errors.js';
@@ -15,6 +16,7 @@ import { createExternalRefWithoutRegistration, createSchemaProxy } from '../refe
15
16
  import { getKindInfo, getSemanticCandidateKinds } from '../resources/factory-registry.js';
16
17
  import { validateResourceGraphDefinition } from '../validation/cel-validator.js';
17
18
  import { optimizeStatusMappings } from './cel-optimizer.js';
19
+ import { applyTernaryConditionalsToResources } from './kro-post-processing.js';
18
20
  import { generateKroSchemaFromArktype } from './schema.js';
19
21
  import { runStatusAnalysisPipeline } from './status-analysis-pipeline.js';
20
22
  import { serializeResourceGraphToYaml } from './yaml.js';
@@ -236,16 +238,86 @@ function analyzeAndConvertStatusMappings(definition, statusBuilder, schema, reso
236
238
  *
237
239
  * @internal Exported for testing only
238
240
  */
239
- function processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analyzedStatusMappings, serializationLogger) {
241
+ function processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analyzedStatusMappings, serializationLogger, schemaDefinition) {
240
242
  let compositionAnalysis = null;
241
- const analysisState = { appliedToResources: false };
243
+ const analysisState = { appliedToResources: false, ternaryAndOmitApplied: false };
242
244
  const originalCompositionFnForAnalysis = statusMappings
243
245
  ?.__originalCompositionFn;
244
246
  if (originalCompositionFnForAnalysis) {
245
247
  try {
246
248
  const resourceIds = new Set(Object.keys(resourcesWithKeys));
247
- compositionAnalysis = analyzeCompositionBody(originalCompositionFnForAnalysis, resourceIds);
248
- // Create stub resources for factory calls that weren't registered at runtime
249
+ const specJson = schemaDefinition?.spec?.json;
250
+ const optionalFieldNames = specJson
251
+ ? new Set((specJson.optional ?? []).map((p) => p.key))
252
+ : undefined;
253
+ compositionAnalysis = analyzeCompositionBody(originalCompositionFnForAnalysis, resourceIds, optionalFieldNames);
254
+ // Differential execution to capture untaken-branch resources.
255
+ //
256
+ // When a composition uses plain JS control flow (`if (!spec.optional) { ... }`),
257
+ // the truthy proxy pass takes the OPPOSITE branch because `!proxy === false`,
258
+ // which means the resource inside the branch is never registered at runtime.
259
+ // We re-execute the composition with optional fields set to `undefined`
260
+ // (where `!undefined === true` triggers those branches) in an ISOLATED
261
+ // composition context and merge any resources captured there into the main
262
+ // resource map. The AST analyzer has already recorded the correct
263
+ // `includeWhen` for each such resource, and `applyAnalysisToResources`
264
+ // (called later during toYaml()) attaches that metadata — so the final
265
+ // RGD emits the resource with a CEL `has()` / `!has()` conditional
266
+ // derived from the composition's native `if`/`else` statements.
267
+ //
268
+ // Prerequisites: we need the schema definition to know which fields
269
+ // are optional (so we set them to undefined) and which are required
270
+ // (so we set them to a sentinel that prevents the composition from
271
+ // dereferencing undefined). Both runs use the same composition
272
+ // function, so resource IDs and factory calls are deterministic.
273
+ if (schemaDefinition &&
274
+ (compositionAnalysis.unregisteredFactories.length > 0 ||
275
+ collectOverridableOptionalFields(schemaDefinition, compositionAnalysis).size > 0)) {
276
+ const { captured, overriddenFields } = captureHybridRunResources(originalCompositionFnForAnalysis, schemaDefinition, compositionAnalysis);
277
+ // (a) Merge resources that exist ONLY in the hybrid run — these
278
+ // come from branches the proxy run didn't take (e.g., `if (!spec.x)`).
279
+ // The AST analyzer has already attached the appropriate includeWhen.
280
+ for (const [id, resource] of Object.entries(captured)) {
281
+ if (!resourceIds.has(id)) {
282
+ resourcesWithKeys[id] = resource;
283
+ resourceIds.add(id);
284
+ serializationLogger.debug('Captured resource from untaken branch', {
285
+ resourceId: id,
286
+ });
287
+ }
288
+ }
289
+ // (b) For resources that exist in BOTH runs, walk them in parallel
290
+ // and detect field-level differences. Each differing leaf becomes
291
+ // a CEL `has(...) ? <proxy value> : <hybrid value>` conditional
292
+ // applied in place on the proxy-run resource. This covers the
293
+ // "ternary inside a custom factory's internal transformation" case
294
+ // where the AST analyzer can't see the final template path, since
295
+ // the comparison works on the emitted resource structure directly.
296
+ //
297
+ // MUTATION SAFETY: this step replaces LEAF values (strings, numbers,
298
+ // KubernetesRef proxies) inside the proxy-run resources with CEL
299
+ // conditional strings. It runs after status analysis has captured
300
+ // its own references (so status builders see the pre-mutation state)
301
+ // and before YAML serialization (so the mutated state is what gets
302
+ // emitted). The tree structure is preserved; only leaves change.
303
+ // `processCompositionBodyAnalysis` is called exactly once per
304
+ // `toResourceGraph` invocation, and the walk itself is idempotent
305
+ // (a second pass finds `leafEquals` true for every leaf and no-ops),
306
+ // so multiple `toYaml()` calls on the resulting TypedResourceGraph
307
+ // all see a consistent final state.
308
+ if (overriddenFields.size > 0) {
309
+ for (const id of Object.keys(resourcesWithKeys)) {
310
+ const proxyRes = resourcesWithKeys[id];
311
+ const hybridRes = captured[id];
312
+ if (proxyRes && hybridRes) {
313
+ applyDifferentialFieldConditionals(proxyRes, hybridRes, overriddenFields);
314
+ }
315
+ }
316
+ }
317
+ }
318
+ // Create stub resources for factory calls that STILL weren't registered
319
+ // (e.g., branches the differential run also didn't take because they
320
+ // required a different condition to be truthy).
249
321
  for (const unregistered of compositionAnalysis.unregisteredFactories) {
250
322
  if (!resourceIds.has(unregistered.resourceId)) {
251
323
  const stub = createStubResource(unregistered.factoryName, unregistered.resourceId);
@@ -276,6 +348,335 @@ function processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analy
276
348
  }
277
349
  return { compositionAnalysis, analysisState };
278
350
  }
351
+ /**
352
+ * Collect the top-level optional spec fields that should be overridden
353
+ * when running the composition for differential branch/field capture.
354
+ *
355
+ * We only override fields that the AST analyzer observed being TESTED
356
+ * in a condition — `if (spec.x)`, `spec.x ? a : b`, or similar.
357
+ * Overriding fields that the composition only READS unconditionally
358
+ * (e.g., `spec.server.secret_key` inside a ConfigMap's stringData) is
359
+ * counterproductive: it would replace those proxy references with
360
+ * `undefined` in the hybrid run, producing incorrect captured
361
+ * resources.
362
+ *
363
+ * The tested fields are extracted from the AST analyzer's recorded
364
+ * `includeWhen` expressions (which, after the `conditionToCel` fix,
365
+ * wrap bare truthiness checks with `has(...)`) by scanning for
366
+ * `schema.spec.<field>` paths.
367
+ */
368
+ function collectOverridableOptionalFields(schemaDefinition, analysis) {
369
+ const specJson = schemaDefinition.spec.json;
370
+ if (!specJson)
371
+ return new Set();
372
+ const optionalFields = new Set((specJson.optional ?? []).map((p) => p.key));
373
+ const testedFields = new Set();
374
+ // Pull field names from every includeWhen condition the AST analyzer
375
+ // attached to a resource (including resources that were never
376
+ // runtime-registered because their branch wasn't taken).
377
+ for (const entry of analysis.resources.values()) {
378
+ for (const cond of entry.includeWhen) {
379
+ const matches = cond.expression.matchAll(/schema\.spec\.([A-Za-z_$][\w$]*)/g);
380
+ for (const m of matches) {
381
+ const field = m[1];
382
+ if (field && optionalFields.has(field)) {
383
+ testedFields.add(field);
384
+ }
385
+ }
386
+ }
387
+ }
388
+ return testedFields;
389
+ }
390
+ /**
391
+ * Re-execute the composition function in an isolated composition context
392
+ * with a HYBRID schema spec — the original schema proxy for most fields
393
+ * (so `spec.name`, `spec.server.secret_key`, etc. still produce
394
+ * `KubernetesRef` proxy values that serialize into CEL references) but
395
+ * with specific top-level optional fields overridden to `undefined` so
396
+ * that `if (!spec.x)`, `if (spec.x === undefined)`, and similar
397
+ * field-presence tests take the opposite branch from the proxy run.
398
+ *
399
+ * Used by {@link processCompositionBodyAnalysis} to capture BOTH:
400
+ * (a) resources registered inside branches that the main proxy run
401
+ * skipped because `!proxy === false`
402
+ * (b) resources that exist in both runs but with field-level
403
+ * differences caused by ternary/fallback logic that depends on
404
+ * the overridden fields — used for differential CEL conditional
405
+ * emission by {@link applyDifferentialFieldConditionals}
406
+ *
407
+ * The branches run with real proxy values for every field EXCEPT the
408
+ * overridden ones, so the captured resources contain the correct CEL
409
+ * references just like the proxy-run resources.
410
+ *
411
+ * Composition functions with external side effects will fire those
412
+ * effects a second time during this re-execution — see integration-skill
413
+ * rule #30 for the full contract.
414
+ */
415
+ function captureHybridRunResources(compositionFn, schemaDefinition, analysis) {
416
+ try {
417
+ const overriddenFields = collectOverridableOptionalFields(schemaDefinition, analysis);
418
+ if (overriddenFields.size === 0)
419
+ return { captured: {}, overriddenFields };
420
+ // Build the hybrid spec: the real schema proxy (so all other field
421
+ // accesses produce KubernetesRef values) wrapped in a Proxy that
422
+ // intercepts the overridden keys and returns `undefined`. Accessing
423
+ // an overridden key's sub-property (e.g., `spec.secretKeyRef.name`)
424
+ // will throw — but that's exactly the code path the override is
425
+ // meant to skip, so the thrown access lives inside the `else`
426
+ // branch that this run intentionally does not execute.
427
+ const realSchema = createSchemaProxy();
428
+ const hybridSpec = new Proxy(realSchema.spec, {
429
+ get(target, prop, receiver) {
430
+ if (typeof prop === 'string' && overriddenFields.has(prop)) {
431
+ return undefined;
432
+ }
433
+ return Reflect.get(target, prop, receiver);
434
+ },
435
+ has(target, prop) {
436
+ if (typeof prop === 'string' && overriddenFields.has(prop)) {
437
+ return false;
438
+ }
439
+ return Reflect.has(target, prop);
440
+ },
441
+ });
442
+ const tempCtx = createCompositionContext('hybrid-capture');
443
+ runWithCompositionContext(tempCtx, () => {
444
+ compositionFn(hybridSpec);
445
+ });
446
+ return {
447
+ captured: tempCtx.resources,
448
+ overriddenFields,
449
+ };
450
+ }
451
+ catch {
452
+ // Best-effort: compositions that throw when running with a hybrid spec
453
+ // degrade gracefully — stub resources still cover the missing factories
454
+ // and the proxy-run resources are used as-is.
455
+ return { captured: {}, overriddenFields: new Set() };
456
+ }
457
+ }
458
+ /**
459
+ * Walk `proxyRes` and `hybridRes` in parallel and replace any leaf value
460
+ * in `proxyRes` that differs from the corresponding leaf in `hybridRes`
461
+ * with a CEL `has(...) ? <proxy value> : <hybrid value>` conditional.
462
+ *
463
+ * This is how differential field-level branch detection works: when a
464
+ * composition writes `spec.x ? foo(spec.y) : bar()` at a deep nested
465
+ * location inside a custom factory's emitted resource, the proxy run
466
+ * produces one leaf and the hybrid run (with `spec.x` overridden to
467
+ * `undefined`) produces the other. Comparing the two resource trees
468
+ * field-by-field surfaces the divergence and lets us emit the correct
469
+ * KRO CEL conditional without needing to thread AST information through
470
+ * the factory's internal transformations.
471
+ *
472
+ * Assumptions and caveats:
473
+ * - Both resources come from the same factory call with the same
474
+ * resource ID, so their structures are shape-compatible.
475
+ * - The `overriddenFields` set drives the `has(...)` check — with a
476
+ * single overridden field we can emit a direct `has(schema.spec.X)`
477
+ * test. With multiple fields, we use the first one that appears in
478
+ * either leaf value; this is a heuristic, but in practice
479
+ * compositions rarely have multiple optional fields driving the
480
+ * same leaf.
481
+ * - Marker strings (`__KUBERNETES_REF__...__`) and CEL expressions
482
+ * are converted to their dollar-wrapped forms before embedding in
483
+ * the conditional.
484
+ */
485
+ function applyDifferentialFieldConditionals(proxyRes, hybridRes, overriddenFields) {
486
+ walkAndConditionalize(proxyRes, hybridRes, overriddenFields);
487
+ }
488
+ function walkAndConditionalize(proxy, hybrid, overriddenFields) {
489
+ if (Array.isArray(proxy) && Array.isArray(hybrid)) {
490
+ const maxLen = Math.max(proxy.length, hybrid.length);
491
+ for (let i = 0; i < maxLen; i++) {
492
+ const p = proxy[i];
493
+ const h = hybrid[i];
494
+ if (i >= proxy.length) {
495
+ // New element added by hybrid run — copy it over.
496
+ proxy.push(h);
497
+ continue;
498
+ }
499
+ if (i >= hybrid.length) {
500
+ // Element removed in hybrid — leave the proxy value as-is.
501
+ continue;
502
+ }
503
+ if (isLeafValue(p) && isLeafValue(h)) {
504
+ if (!leafEquals(p, h)) {
505
+ proxy[i] = buildCelConditional(p, h, overriddenFields);
506
+ }
507
+ }
508
+ else {
509
+ walkAndConditionalize(p, h, overriddenFields);
510
+ }
511
+ }
512
+ return proxy;
513
+ }
514
+ if (isPlainObject(proxy) && isPlainObject(hybrid)) {
515
+ const keys = new Set([...Object.keys(proxy), ...Object.keys(hybrid)]);
516
+ for (const key of keys) {
517
+ const p = proxy[key];
518
+ const h = hybrid[key];
519
+ if (!(key in hybrid)) {
520
+ continue; // Proxy has it, hybrid doesn't — keep proxy value
521
+ }
522
+ if (!(key in proxy)) {
523
+ proxy[key] = h;
524
+ continue;
525
+ }
526
+ if (isLeafValue(p) && isLeafValue(h)) {
527
+ if (!leafEquals(p, h)) {
528
+ proxy[key] = buildCelConditional(p, h, overriddenFields);
529
+ }
530
+ }
531
+ else {
532
+ walkAndConditionalize(p, h, overriddenFields);
533
+ }
534
+ }
535
+ return proxy;
536
+ }
537
+ return proxy;
538
+ }
539
+ function isLeafValue(v) {
540
+ return (v === null ||
541
+ v === undefined ||
542
+ typeof v === 'string' ||
543
+ typeof v === 'number' ||
544
+ typeof v === 'boolean' ||
545
+ // KubernetesRef proxies register as functions (typeof fn is 'function')
546
+ typeof v === 'function');
547
+ }
548
+ function leafEquals(a, b) {
549
+ // For KubernetesRef proxies, compare their string coercions (marker tokens).
550
+ if (typeof a === 'function' || typeof b === 'function') {
551
+ return String(a) === String(b);
552
+ }
553
+ return a === b;
554
+ }
555
+ function isPlainObject(v) {
556
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
557
+ }
558
+ /**
559
+ * Build a CEL conditional string from two diverging leaf values.
560
+ *
561
+ * Both values may be concrete primitives, marker strings (from template
562
+ * literals containing proxy references), or KubernetesRef proxies. The
563
+ * returned string is a KRO mixed-template value like
564
+ * `${has(schema.spec.X) ? <proxy repr> : <hybrid repr>}` that later
565
+ * serialization phases treat as a final CEL expression.
566
+ */
567
+ function buildCelConditional(proxyValue, hybridValue, overriddenFields) {
568
+ const field = pickConditionField(proxyValue, hybridValue, overriddenFields);
569
+ const proxyRepr = celValueRepr(proxyValue);
570
+ const hybridRepr = celValueRepr(hybridValue);
571
+ return `\${has(schema.spec.${field}) ? ${proxyRepr} : ${hybridRepr}}`;
572
+ }
573
+ /**
574
+ * Pick the "controlling" optional field for a diverging leaf. If exactly
575
+ * one overridden field's marker appears in either value, use that. If
576
+ * neither appears explicitly, default to the first field in the set —
577
+ * this covers the common case of a single overridden field driving the
578
+ * whole divergence.
579
+ */
580
+ function pickConditionField(proxyValue, hybridValue, overriddenFields) {
581
+ const proxyStr = String(proxyValue);
582
+ const hybridStr = String(hybridValue);
583
+ for (const field of overriddenFields) {
584
+ const marker = `__KUBERNETES_REF___schema___spec.${field}`;
585
+ if (proxyStr.includes(marker) || hybridStr.includes(marker)) {
586
+ return field;
587
+ }
588
+ }
589
+ // Fallback: first overridden field (iteration order = insertion order).
590
+ // Single-field overrides are the common case so this is usually correct;
591
+ // the explicit-marker check above handles the multi-field case. When the
592
+ // fallback fires, the emitted CEL may pick the wrong `has()` condition
593
+ // for compositions with multiple optional fields driving the same leaf —
594
+ // log it at debug level so the case is diagnosable if anyone reports
595
+ // incorrect CEL output.
596
+ const fallback = overriddenFields.values().next().value ?? '';
597
+ getComponentLogger('serialization').debug('pickConditionField fallback: no marker matched, using first overridden field', {
598
+ fallbackField: fallback,
599
+ overriddenFields: Array.from(overriddenFields),
600
+ proxyValuePreview: proxyStr.slice(0, 120),
601
+ hybridValuePreview: hybridStr.slice(0, 120),
602
+ });
603
+ return fallback;
604
+ }
605
+ /**
606
+ * Convert a leaf value into its CEL expression representation.
607
+ *
608
+ * - Marker strings become `schema.spec.X` paths (bare, no `${}`)
609
+ * - KubernetesRef proxies become their inner CEL path
610
+ * - String literals become double-quoted CEL string literals (with
611
+ * embedded markers converted to string() concatenations so the
612
+ * result is valid CEL, not just a raw string)
613
+ * - Numbers and booleans are emitted verbatim
614
+ */
615
+ function celValueRepr(value) {
616
+ if (value === null || value === undefined)
617
+ return '""';
618
+ if (typeof value === 'number' || typeof value === 'boolean')
619
+ return String(value);
620
+ if (typeof value === 'function') {
621
+ // KubernetesRef proxy — toString yields the marker token which we
622
+ // convert to a bare CEL path via the marker → CEL rules.
623
+ return markerStringToCelBare(String(value));
624
+ }
625
+ if (typeof value === 'string') {
626
+ if (value.includes('__KUBERNETES_REF_')) {
627
+ return markerStringToCelExpr(value);
628
+ }
629
+ // Plain string literal — escape for CEL embedding
630
+ return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
631
+ }
632
+ return '""';
633
+ }
634
+ /**
635
+ * Convert a single-marker string (the whole string is one marker) to
636
+ * its bare CEL path form: `schema.spec.X` or `resources.X.field`.
637
+ */
638
+ function markerStringToCelBare(str) {
639
+ const m = str.match(/^__KUBERNETES_REF_(__schema__|[^_]+)_([a-zA-Z0-9.$]+)__$/);
640
+ if (!m)
641
+ return markerStringToCelExpr(str);
642
+ const [, resourceId, fieldPath] = m;
643
+ return resourceId === '__schema__' ? `schema.${fieldPath}` : `${resourceId}.${fieldPath}`;
644
+ }
645
+ /**
646
+ * Convert a mixed string containing literal text and markers to a CEL
647
+ * concatenation expression using `string()` wrappers, suitable for
648
+ * embedding inside a CEL ternary.
649
+ */
650
+ function markerStringToCelExpr(str) {
651
+ // Fast path: whole string is a single marker
652
+ const singleMatch = str.match(/^__KUBERNETES_REF_(__schema__|[^_]+)_([a-zA-Z0-9.$]+)__$/);
653
+ if (singleMatch) {
654
+ const [, resourceId, fieldPath] = singleMatch;
655
+ return resourceId === '__schema__' ? `schema.${fieldPath}` : `${resourceId}.${fieldPath}`;
656
+ }
657
+ // Slow path: interleave literal text and markers via CEL string concatenation
658
+ const parts = [];
659
+ let lastIndex = 0;
660
+ const pattern = /__KUBERNETES_REF_(__schema__|[^_]+)_([a-zA-Z0-9.$]+)__/g;
661
+ let m = pattern.exec(str);
662
+ while (m !== null) {
663
+ if (m.index > lastIndex) {
664
+ const literal = str.slice(lastIndex, m.index);
665
+ parts.push(`"${literal.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`);
666
+ }
667
+ const resourceId = m[1];
668
+ const fieldPath = m[2];
669
+ const celPath = resourceId === '__schema__' ? `schema.${fieldPath}` : `${resourceId}.${fieldPath}`;
670
+ parts.push(`string(${celPath})`);
671
+ lastIndex = m.index + m[0].length;
672
+ m = pattern.exec(str);
673
+ }
674
+ if (lastIndex < str.length) {
675
+ const literal = str.slice(lastIndex);
676
+ parts.push(`"${literal.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`);
677
+ }
678
+ return parts.length === 1 ? parts[0] : parts.join(' + ');
679
+ }
279
680
  // =============================================================================
280
681
  // Extracted helper: Direct factory status re-analysis
281
682
  // =============================================================================
@@ -436,7 +837,7 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
436
837
  // 3. Analyze status builder and convert JS expressions to CEL
437
838
  const { statusMappings, analyzedStatusMappings, mappingAnalysis, phaseBStatusMappings } = analyzeAndConvertStatusMappings(definition, statusBuilder, schema, resourcesWithKeys, serializationLogger);
438
839
  // 4. Analyze composition body for control flow patterns (must run before validation)
439
- const { compositionAnalysis, analysisState } = processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analyzedStatusMappings, serializationLogger);
840
+ const { compositionAnalysis, analysisState } = processCompositionBodyAnalysis(statusMappings, resourcesWithKeys, analyzedStatusMappings, serializationLogger, schemaDefinition);
440
841
  // 5. Validate resource IDs and CEL expressions
441
842
  const validation = validateResourceGraphDefinition(resourcesWithKeys, analyzedStatusMappings);
442
843
  if (!validation.isValid) {
@@ -545,6 +946,18 @@ function createTypedResourceGraph(definition, resourceBuilder, statusBuilder, op
545
946
  kroSchema.status[override.propertyPath] = yamlSafe;
546
947
  }
547
948
  }
949
+ // Apply ternary conditionals (once only — guard prevents
950
+ // double-processing if toYaml() is called multiple times).
951
+ // Note: omit() wrapping for optional fields is no longer a
952
+ // post-processing step — it's applied inline during ref-to-CEL
953
+ // conversion via `SerializationContext.omitFields`, which reads
954
+ // from `kroSchema.__omitFields` inside `serializeResourceGraphToYaml`.
955
+ if (!analysisState.ternaryAndOmitApplied) {
956
+ analysisState.ternaryAndOmitApplied = true;
957
+ if (kroSchema.__ternaryConditionals?.length) {
958
+ applyTernaryConditionalsToResources(resourcesWithKeys, kroSchema.__ternaryConditionals);
959
+ }
960
+ }
548
961
  return serializeResourceGraphToYaml(definition.name, resourcesWithKeys, options, kroSchema);
549
962
  },
550
963
  };
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/core/serialization/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/core/serialization/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * KRO YAML Post-Processing Utilities
3
+ *
4
+ * Shared helpers for applying ternary conditionals to resource data before
5
+ * YAML serialization. Used by both the toResourceGraph pipeline (core.ts)
6
+ * and the KRO factory deployment path (kro-factory.ts).
7
+ *
8
+ * Extracted to avoid circular dependencies between core.ts and kro-factory.ts.
9
+ *
10
+ * Note: KRO 0.9+ omit() wrapping for optional fields is NOT in this module —
11
+ * it's applied inline during ref-to-CEL conversion via
12
+ * `SerializationContext.omitFields` in `cel-references.ts`. That keeps
13
+ * `has() ? ... : omit()` generation as a structured operation on
14
+ * KubernetesRef objects instead of a post-hoc regex rewrite of the
15
+ * serialized YAML string.
16
+ */
17
+ /**
18
+ * Apply ternary conditionals to resource data by replacing raw marker sections
19
+ * with CEL conditional expressions. This runs BEFORE processResourceReferences
20
+ * so that the markers within the truthy branch get converted to mixed-template
21
+ * CEL format by the normal pipeline.
22
+ *
23
+ * For `spec.redisUrl ? \`redis:\n url: ${spec.redisUrl}\` : ''`, the raw
24
+ * settings.yml string contains the redis section with a __KUBERNETES_REF__
25
+ * marker. This function replaces that section with a CEL conditional that
26
+ * processResourceReferences will then convert to the final mixed-template form.
27
+ *
28
+ * FRAGILE: operates on raw string values inside resource data by substring
29
+ * matching. The `proxySection` must be byte-identical to what was extracted
30
+ * by `extractTernaryConditionals` in schema.ts — meaning the composition's
31
+ * string construction (typically a template literal) and the re-execution
32
+ * pass both need to produce the same newline/indentation layout. If a
33
+ * composition author post-processes the settings string, interpolates it
34
+ * through another templating layer, or if the extraction heuristic in
35
+ * schema.ts is updated to include/exclude different surrounding context,
36
+ * the match will fail silently and the ternary will not be applied.
37
+ *
38
+ * Tracked for replacement with AST-based detection in
39
+ * https://github.com/yehudacohen/typekro/issues/57
40
+ */
41
+ export declare function applyTernaryConditionalsToResources(resources: Record<string, unknown>, conditionals: Array<{
42
+ proxySection: string;
43
+ falsyValue: string;
44
+ conditionField: string;
45
+ }>): void;
46
+ //# sourceMappingURL=kro-post-processing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kro-post-processing.d.ts","sourceRoot":"","sources":["../../../src/core/serialization/kro-post-processing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mCAAmC,CACjD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,YAAY,EAAE,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,GACxF,IAAI,CA4BN"}