typekro 0.31.0 → 0.31.1

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 (33) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/core/deployment/kro-factory.d.ts.map +1 -1
  3. package/dist/core/deployment/kro-factory.js +17 -2
  4. package/dist/core/deployment/kro-factory.js.map +1 -1
  5. package/dist/core/expressions/composition/composition-analyzer.d.ts.map +1 -1
  6. package/dist/core/expressions/composition/composition-analyzer.js +24 -1
  7. package/dist/core/expressions/composition/composition-analyzer.js.map +1 -1
  8. package/dist/core/planning/planner.d.ts.map +1 -1
  9. package/dist/core/planning/planner.js +163 -6
  10. package/dist/core/planning/planner.js.map +1 -1
  11. package/dist/core/planning/values.d.ts +2 -0
  12. package/dist/core/planning/values.d.ts.map +1 -1
  13. package/dist/core/planning/values.js +20 -8
  14. package/dist/core/planning/values.js.map +1 -1
  15. package/dist/core/serialization/cel-references.d.ts +4 -4
  16. package/dist/core/serialization/cel-references.d.ts.map +1 -1
  17. package/dist/core/serialization/cel-references.js +59 -43
  18. package/dist/core/serialization/cel-references.js.map +1 -1
  19. package/dist/core/serialization/core.d.ts.map +1 -1
  20. package/dist/core/serialization/core.js +7 -1
  21. package/dist/core/serialization/core.js.map +1 -1
  22. package/dist/core/serialization/schema.d.ts.map +1 -1
  23. package/dist/core/serialization/schema.js +26 -32
  24. package/dist/core/serialization/schema.js.map +1 -1
  25. package/dist/core/validation/cel-validator.d.ts +16 -3
  26. package/dist/core/validation/cel-validator.d.ts.map +1 -1
  27. package/dist/core/validation/cel-validator.js +200 -26
  28. package/dist/core/validation/cel-validator.js.map +1 -1
  29. package/dist/utils/cel-resource-identifiers.d.ts +23 -0
  30. package/dist/utils/cel-resource-identifiers.d.ts.map +1 -0
  31. package/dist/utils/cel-resource-identifiers.js +355 -0
  32. package/dist/utils/cel-resource-identifiers.js.map +1 -0
  33. package/package.json +1 -1
@@ -7,8 +7,71 @@
7
7
  * 3. All referenced resources must exist in the ResourceGraphDefinition
8
8
  */
9
9
  import { isCelExpression, isKubernetesRef } from '../../utils/type-guards.js';
10
+ import { celRootReferences, kubernetesMarkerReferences, } from '../../utils/cel-resource-identifiers.js';
10
11
  import { remapVariableNames } from '../composition/nested-status-cel.js';
12
+ import { getMetadataField, getResourceId } from '../metadata/index.js';
11
13
  import { isStaticExpression, lookupNestedExpression } from '../serialization/cel-references.js';
14
+ export function getNestedCompositionIds(statusMappings) {
15
+ const descriptor = Object.getOwnPropertyDescriptor(statusMappings, '__nestedCompositionFns');
16
+ return descriptor?.value instanceof Map
17
+ ? new Set([...descriptor.value.keys()].filter((value) => typeof value === 'string'))
18
+ : new Set();
19
+ }
20
+ function deriveResourceIdAliases(resourceId) {
21
+ const aliases = [];
22
+ for (const match of resourceId.matchAll(/\d+/g)) {
23
+ const suffix = resourceId.slice((match.index ?? 0) + match[0].length);
24
+ if (suffix && /^[A-Z]/.test(suffix)) {
25
+ aliases.push(suffix.charAt(0).toLowerCase() + suffix.slice(1));
26
+ }
27
+ }
28
+ return aliases;
29
+ }
30
+ /**
31
+ * Build the canonical resource identity set used by status planning,
32
+ * serialization, and client-side hydration.
33
+ */
34
+ export function createStatusResourceIdentityContext(resources) {
35
+ const resourceIds = new Set();
36
+ const resourceAliases = new Map();
37
+ const identityOwners = new Map();
38
+ const ambiguousResourceAliases = new Map();
39
+ const registerIdentity = (identity, canonicalId, resourceKey) => {
40
+ const ambiguousOwners = ambiguousResourceAliases.get(identity);
41
+ if (ambiguousOwners) {
42
+ ambiguousOwners.add(canonicalId);
43
+ resourceIds.add(identity);
44
+ return;
45
+ }
46
+ const existing = identityOwners.get(identity);
47
+ if (existing && existing.canonicalId !== canonicalId) {
48
+ ambiguousResourceAliases.set(identity, new Set([existing.canonicalId, canonicalId]));
49
+ resourceAliases.delete(identity);
50
+ resourceIds.add(identity);
51
+ return;
52
+ }
53
+ identityOwners.set(identity, { canonicalId, resourceKey });
54
+ resourceIds.add(identity);
55
+ resourceAliases.set(identity, canonicalId);
56
+ };
57
+ for (const [resourceKey, resource] of Object.entries(resources)) {
58
+ const resourceId = getResourceId(resource) ?? resourceKey;
59
+ registerIdentity(resourceKey, resourceId, resourceKey);
60
+ registerIdentity(resourceId, resourceId, resourceKey);
61
+ for (const alias of new Set([
62
+ ...deriveResourceIdAliases(resourceKey),
63
+ ...deriveResourceIdAliases(resourceId),
64
+ ...(getMetadataField(resource, 'resourceAliases') ?? []),
65
+ ])) {
66
+ registerIdentity(alias, resourceId, resourceKey);
67
+ }
68
+ }
69
+ return {
70
+ resourceIds,
71
+ resourceAliases,
72
+ ambiguousResourceAliases: new Map([...ambiguousResourceAliases].map(([identity, owners]) => [identity, [...owners]])),
73
+ };
74
+ }
12
75
  /**
13
76
  * Validates that a resource ID follows camelCase convention required by Kro
14
77
  */
@@ -43,8 +106,7 @@ export function validateResourceId(id) {
43
106
  *
44
107
  * A value requires KRO resolution iff, after transitively resolving any
45
108
  * nested-composition references through `nestedStatusCel`, it depends on
46
- * at least one real-resource reference (a `status.*` or generated
47
- * `metadata.*` field). Schema refs and literal values — at any depth,
109
+ * at least one real-resource reference. Schema refs and literal values — at any depth,
48
110
  * including the far side of nested composition references — are static
49
111
  * and hydrated by the TypeKro runtime at deploy time.
50
112
  *
@@ -53,6 +115,8 @@ export function validateResourceId(id) {
53
115
  * - spec.* — may include controller/defaulted or externalRef fields
54
116
  * - metadata.uid — assigned by API server
55
117
  * - metadata.creationTimestamp / resourceVersion / generation
118
+ * - explicit CEL naming a known graph resource, including kind-specific
119
+ * top-level fields such as ConfigMap data or Secret stringData
56
120
  *
57
121
  * Static (TypeKro resolves at deploy time):
58
122
  * - __schema__ refs — resolved against the CR spec
@@ -61,7 +125,7 @@ export function validateResourceId(id) {
61
125
  * - Nested composition refs whose inner analyzed expression is itself
62
126
  * fully static (transitive check)
63
127
  */
64
- function requiresKroResolution(value, nestedStatusCel, resourceIds) {
128
+ function requiresKroResolution(value, nestedStatusCel, resourceIds, nestedCompositionIds = new Set()) {
65
129
  const localResourceIds = resourceIds ? Array.from(resourceIds) : [];
66
130
  const preserveVariables = new Set();
67
131
  if (nestedStatusCel) {
@@ -91,7 +155,7 @@ function requiresKroResolution(value, nestedStatusCel, resourceIds) {
91
155
  ? lookupNestedExpression(value.resourceId, fieldName, nestedStatusCel, false)
92
156
  : lookupNestedExpression(value.resourceId, fieldName, nestedStatusCel);
93
157
  if (innerExpr !== undefined) {
94
- return !isStaticExpression(innerExpr, nestedStatusCel);
158
+ return !isStaticExpression(innerExpr, nestedStatusCel, resourceIds, true);
95
159
  }
96
160
  // Nested ref with no entry in the table is conservatively dynamic. Do not
97
161
  // log during classification: later analysis may still recover an alias.
@@ -120,7 +184,8 @@ function requiresKroResolution(value, nestedStatusCel, resourceIds) {
120
184
  const normalizedExpression = localResourceIds.length > 0
121
185
  ? remapVariableNames(value.expression, localResourceIds, preserveVariables)
122
186
  : value.expression;
123
- return !isStaticExpression(normalizedExpression, nestedStatusCel);
187
+ const referencesNestedComposition = [...nestedCompositionIds].some((id) => new RegExp(`(^|[^\\w$])${id.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\s*\\.`).test(normalizedExpression));
188
+ return !isStaticExpression(normalizedExpression, nestedStatusCel, resourceIds, referencesNestedComposition);
124
189
  }
125
190
  // Strings potentially containing __KUBERNETES_REF__ markers from
126
191
  // template literals. Classify transitively: a marker string referencing
@@ -132,13 +197,15 @@ function requiresKroResolution(value, nestedStatusCel, resourceIds) {
132
197
  const normalizedValue = localResourceIds.length > 0
133
198
  ? remapVariableNames(value, localResourceIds, preserveVariables)
134
199
  : value;
135
- return !isStaticExpression(normalizedValue, nestedStatusCel);
200
+ const referencesNestedComposition = [...nestedCompositionIds].some((id) => normalizedValue.includes(`__KUBERNETES_REF_${id}_`) ||
201
+ new RegExp(`(^|[^\\w$])${id.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\s*\\.`).test(normalizedValue));
202
+ return !isStaticExpression(normalizedValue, nestedStatusCel, resourceIds, referencesNestedComposition);
136
203
  }
137
204
  if (Array.isArray(value)) {
138
- return value.some((v) => requiresKroResolution(v, nestedStatusCel, resourceIds));
205
+ return value.some((v) => requiresKroResolution(v, nestedStatusCel, resourceIds, nestedCompositionIds));
139
206
  }
140
207
  if (typeof value === 'object' && value !== null) {
141
- return Object.values(value).some((v) => requiresKroResolution(v, nestedStatusCel, resourceIds));
208
+ return Object.values(value).some((v) => requiresKroResolution(v, nestedStatusCel, resourceIds, nestedCompositionIds));
142
209
  }
143
210
  return false;
144
211
  }
@@ -148,7 +215,7 @@ function requiresKroResolution(value, nestedStatusCel, resourceIds) {
148
215
  * Classification is transitive over nested-composition references when a
149
216
  * `nestedStatusCel` lookup table is provided.
150
217
  */
151
- function separateNestedObject(obj, nestedStatusCel, resourceIds) {
218
+ function separateNestedObject(obj, nestedStatusCel, resourceIds, nestedCompositionIds = new Set()) {
152
219
  const staticPart = {};
153
220
  const dynamicPart = {};
154
221
  for (const [key, value] of Object.entries(obj)) {
@@ -157,7 +224,7 @@ function separateNestedObject(obj, nestedStatusCel, resourceIds) {
157
224
  !Array.isArray(value) &&
158
225
  !isKubernetesRef(value) &&
159
226
  !isCelExpression(value)) {
160
- const nested = separateNestedObject(value, nestedStatusCel, resourceIds);
227
+ const nested = separateNestedObject(value, nestedStatusCel, resourceIds, nestedCompositionIds);
161
228
  if (nested.hasStatic) {
162
229
  staticPart[key] = nested.staticPart;
163
230
  }
@@ -165,7 +232,7 @@ function separateNestedObject(obj, nestedStatusCel, resourceIds) {
165
232
  dynamicPart[key] = nested.dynamicPart;
166
233
  }
167
234
  }
168
- else if (requiresKroResolution(value, nestedStatusCel, resourceIds)) {
235
+ else if (requiresKroResolution(value, nestedStatusCel, resourceIds, nestedCompositionIds)) {
169
236
  dynamicPart[key] = value;
170
237
  }
171
238
  else {
@@ -195,7 +262,7 @@ function separateNestedObject(obj, nestedStatusCel, resourceIds) {
195
262
  * composition context attaches the table via Reflect.set), so existing
196
263
  * callers continue to work without explicit plumbing.
197
264
  */
198
- export function separateStatusFields(statusMappings, nestedStatusCel, resourceIds) {
265
+ export function separateStatusFields(statusMappings, nestedStatusCel, resourceIds, nestedCompositionIds = getNestedCompositionIds(statusMappings)) {
199
266
  const staticFields = {};
200
267
  const dynamicFields = {};
201
268
  // Handle null/undefined inputs
@@ -221,7 +288,7 @@ export function separateStatusFields(statusMappings, nestedStatusCel, resourceId
221
288
  !isKubernetesRef(fieldValue) &&
222
289
  !isCelExpression(fieldValue)) {
223
290
  // Handle nested objects that might have mixed static/dynamic fields
224
- const { staticPart, dynamicPart, hasStatic, hasDynamic } = separateNestedObject(fieldValue, nestedStatusCel, resourceIds);
291
+ const { staticPart, dynamicPart, hasStatic, hasDynamic } = separateNestedObject(fieldValue, nestedStatusCel, resourceIds, nestedCompositionIds);
225
292
  if (hasStatic) {
226
293
  staticFields[fieldName] = staticPart;
227
294
  }
@@ -229,7 +296,7 @@ export function separateStatusFields(statusMappings, nestedStatusCel, resourceId
229
296
  dynamicFields[fieldName] = dynamicPart;
230
297
  }
231
298
  }
232
- else if (requiresKroResolution(fieldValue, nestedStatusCel, resourceIds)) {
299
+ else if (requiresKroResolution(fieldValue, nestedStatusCel, resourceIds, nestedCompositionIds)) {
233
300
  dynamicFields[fieldName] = fieldValue;
234
301
  }
235
302
  else {
@@ -241,17 +308,15 @@ export function separateStatusFields(statusMappings, nestedStatusCel, resourceId
241
308
  /**
242
309
  * Validates CEL expressions in dynamic status fields to ensure they reference actual resources
243
310
  */
244
- export function validateStatusCelExpressions(statusMappings, resources) {
311
+ export function validateStatusCelExpressions(statusMappings, resources, options = {}) {
245
312
  const errors = [];
246
313
  const warnings = [];
247
- // Build set of valid resource identifiers - includes both resource IDs and keys
248
- // This supports both `resourceId.status.field` and `variableName.status.field` patterns
249
- const resourceIds = new Set([
250
- ...Object.keys(resources), // Variable names (from userKeyMap in imperative pattern)
251
- ...Object.values(resources)
252
- .map((r) => r.id)
253
- .filter(Boolean), // Resource IDs
254
- ]);
314
+ const identityContext = createStatusResourceIdentityContext(resources);
315
+ const resourceIds = new Set(identityContext.resourceIds);
316
+ const resourcesByCanonicalId = new Map();
317
+ for (const [resourceKey, resource] of Object.entries(resources)) {
318
+ resourcesByCanonicalId.set(getResourceId(resource) ?? resourceKey, resource);
319
+ }
255
320
  const preserveVariables = new Set();
256
321
  const nestedDescriptor = Object.getOwnPropertyDescriptor(statusMappings, '__nestedStatusCel');
257
322
  const nestedStatusCelForValidation = nestedDescriptor?.value && typeof nestedDescriptor.value === 'object'
@@ -266,8 +331,112 @@ export function validateStatusCelExpressions(statusMappings, resources) {
266
331
  }
267
332
  }
268
333
  }
269
- // Separate static and dynamic fields
270
- const { staticFields, dynamicFields } = separateStatusFields(statusMappings);
334
+ const nestedCompositionIds = getNestedCompositionIds(statusMappings);
335
+ function isSensitiveSecretField(resourceId, fieldPath) {
336
+ const canonicalId = identityContext.resourceAliases.get(resourceId) ?? resourceId;
337
+ const resource = resourcesByCanonicalId.get(canonicalId);
338
+ const topLevelField = fieldPath.split('.')[0];
339
+ return (resource?.kind === 'Secret' &&
340
+ getMetadataField(resource, 'secretMaterial') !== 'public-placeholder' &&
341
+ (fieldPath === '' || topLevelField === 'data' || topLevelField === 'stringData'));
342
+ }
343
+ function expressionReferences(expression) {
344
+ return [...kubernetesMarkerReferences(expression), ...celRootReferences(expression)];
345
+ }
346
+ function findSensitiveReference(expression) {
347
+ const sensitiveReference = expressionReferences(expression).find((reference) => isSensitiveSecretField(reference.root, reference.segments.join('.')));
348
+ return sensitiveReference
349
+ ? `${sensitiveReference.root}${sensitiveReference.segments.length > 0
350
+ ? `.${sensitiveReference.segments.join('.')}`
351
+ : ''}`
352
+ : undefined;
353
+ }
354
+ function findAmbiguousReference(value) {
355
+ if (isKubernetesRef(value)) {
356
+ return identityContext.ambiguousResourceAliases.has(value.resourceId)
357
+ ? value.resourceId
358
+ : undefined;
359
+ }
360
+ if (isCelExpression(value)) {
361
+ return expressionReferences(value.expression).find((reference) => identityContext.ambiguousResourceAliases.has(reference.root))?.root;
362
+ }
363
+ if (typeof value === 'string' &&
364
+ (value.includes('__KUBERNETES_REF_') || value.includes('${'))) {
365
+ return expressionReferences(value).find((reference) => identityContext.ambiguousResourceAliases.has(reference.root))?.root;
366
+ }
367
+ if (Array.isArray(value)) {
368
+ for (const item of value) {
369
+ const ambiguousReference = findAmbiguousReference(item);
370
+ if (ambiguousReference)
371
+ return ambiguousReference;
372
+ }
373
+ }
374
+ else if (value && typeof value === 'object') {
375
+ for (const nestedValue of Object.values(value)) {
376
+ const ambiguousReference = findAmbiguousReference(nestedValue);
377
+ if (ambiguousReference)
378
+ return ambiguousReference;
379
+ }
380
+ }
381
+ return undefined;
382
+ }
383
+ function validateSensitivity(fieldName, value) {
384
+ let sensitiveExpression;
385
+ if (isKubernetesRef(value)) {
386
+ if (isSensitiveSecretField(value.resourceId, value.fieldPath)) {
387
+ sensitiveExpression = `${value.resourceId}.${value.fieldPath}`;
388
+ }
389
+ }
390
+ else if (isCelExpression(value)) {
391
+ sensitiveExpression = findSensitiveReference(value.expression);
392
+ }
393
+ else if (typeof value === 'string' &&
394
+ (value.includes('__KUBERNETES_REF_') || value.includes('${'))) {
395
+ sensitiveExpression = findSensitiveReference(value);
396
+ }
397
+ else if (value && typeof value === 'object') {
398
+ for (const [key, nestedValue] of Object.entries(value)) {
399
+ validateSensitivity(`${fieldName}.${key}`, nestedValue);
400
+ }
401
+ }
402
+ if (sensitiveExpression) {
403
+ const referencedResource = sensitiveExpression.split('.')[0];
404
+ errors.push({
405
+ field: fieldName,
406
+ expression: sensitiveExpression,
407
+ error: `Status field '${fieldName}' derives from sensitive Secret data and cannot be projected`,
408
+ suggestion: 'Project a non-sensitive readiness or identity field instead of Secret data/stringData',
409
+ code: 'sensitive-status',
410
+ ...(referencedResource ? { referencedResource } : {}),
411
+ });
412
+ }
413
+ }
414
+ if (options.enforceSensitiveStatus !== false) {
415
+ for (const [fieldName, fieldValue] of Object.entries(statusMappings)) {
416
+ if (!fieldName.startsWith('__')) {
417
+ validateSensitivity(fieldName, fieldValue);
418
+ }
419
+ }
420
+ }
421
+ for (const [fieldName, fieldValue] of Object.entries(statusMappings)) {
422
+ if (fieldName.startsWith('__'))
423
+ continue;
424
+ const ambiguousReference = findAmbiguousReference(fieldValue);
425
+ if (!ambiguousReference)
426
+ continue;
427
+ const owners = identityContext.ambiguousResourceAliases.get(ambiguousReference) ?? [];
428
+ errors.push({
429
+ field: fieldName,
430
+ expression: ambiguousReference,
431
+ error: `Status resource identity '${ambiguousReference}' is ambiguous between resources ` +
432
+ owners.map((owner) => `'${owner}'`).join(' and '),
433
+ suggestion: 'Reference an unambiguous canonical resource id',
434
+ code: 'ambiguous-resource',
435
+ referencedResource: ambiguousReference,
436
+ });
437
+ }
438
+ // Separate static and dynamic fields using the same graph identities as serialization.
439
+ const { staticFields, dynamicFields } = separateStatusFields(statusMappings, nestedStatusCelForValidation, resourceIds, nestedCompositionIds);
271
440
  /**
272
441
  * Scan a (remapped) expression for direct resource references (`id.status.` / `id.spec.` /
273
442
  * `id.metadata.`) whose root is not a known resource, schema, CEL lambda variable, or preserved
@@ -443,7 +612,12 @@ export function validateResourceIds(resources) {
443
612
  export function validateResourceGraphDefinition(resources, statusMappings) {
444
613
  const resourceIdValidation = validateResourceIds(resources);
445
614
  const statusValidation = statusMappings
446
- ? validateStatusCelExpressions(statusMappings, resources)
615
+ ? validateStatusCelExpressions(statusMappings, resources, {
616
+ // Graph construction must remain available to semantic planning, which
617
+ // independently taints and diagnoses sensitive projections. The legacy
618
+ // KRO serializer enforces this boundary immediately before YAML emission.
619
+ enforceSensitiveStatus: false,
620
+ })
447
621
  : { isValid: true, errors: [], warnings: [] };
448
622
  return {
449
623
  isValid: resourceIdValidation.isValid && statusValidation.isValid,
@@ -1 +1 @@
1
- {"version":3,"file":"cel-validator.js","sourceRoot":"","sources":["../../../src/core/validation/cel-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cel-validator.js","sourceRoot":"","sources":["../../../src/core/validation/cel-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface CelRootReference {
2
+ readonly root: string;
3
+ readonly segments: readonly string[];
4
+ readonly startOffset: number;
5
+ readonly endOffset: number;
6
+ }
7
+ /**
8
+ * Parse CEL and return root identifier references, memoized by source text.
9
+ *
10
+ * Nested-composition resolution revisits stable expressions many times. Caching at this shared
11
+ * analysis boundary ensures syntax-aware consumers pay the parser cost once without coupling the
12
+ * cache to any particular serializer recursion strategy.
13
+ */
14
+ export declare function celRootReferences(expression: string): readonly CelRootReference[];
15
+ /**
16
+ * Extract resource references embedded in TypeKro's string-coercion marker format.
17
+ */
18
+ export declare function kubernetesMarkerReferences(value: string): readonly Pick<CelRootReference, 'root' | 'segments'>[];
19
+ /**
20
+ * Canonicalize resource roots in executable CEL while preserving literals and lambda bindings.
21
+ */
22
+ export declare function canonicalizeCelResourceAliases(expression: string, aliases: ReadonlyMap<string, string>): string;
23
+ //# sourceMappingURL=cel-resource-identifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cel-resource-identifiers.d.ts","sourceRoot":"","sources":["../../src/utils/cel-resource-identifiers.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAgPD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,gBAAgB,EAAE,CAWjF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,GACZ,SAAS,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,UAAU,CAAC,EAAE,CASxD;AA+CD;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,MAAM,CA+BR"}