@json-layout/core 1.15.5 → 1.15.7

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@json-layout/core",
3
- "version": "1.15.5",
3
+ "version": "1.15.7",
4
4
  "description": "Compilation and state management utilities for JSON Layout.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -325,6 +325,10 @@ export function makeSkeletonNode (
325
325
  }
326
326
  /** @type {string[]} */
327
327
  const childrenTrees = []
328
+ /** @type {string[]} */
329
+ let propertyKeys = []
330
+ /** @type {string[]} */
331
+ let roPropertyKeys = []
328
332
  for (let i = 0; i < schema.oneOf.length; i++) {
329
333
  if (!schema.oneOf[i].type) schema.oneOf[i].type = type
330
334
  const childTreePointer = `${oneOfPointer}/${i}`
@@ -349,6 +353,12 @@ export function makeSkeletonNode (
349
353
  )
350
354
  }
351
355
  childrenTrees.push(childTreePointer)
356
+ // @ts-ignore
357
+ if (skeletonTrees[childTreePointer] !== 'recursing') {
358
+ const rootSkeletonNode = skeletonNodes[skeletonTrees[childTreePointer].root]
359
+ propertyKeys = propertyKeys.concat(rootSkeletonNode.propertyKeys)
360
+ roPropertyKeys = roPropertyKeys.concat(rootSkeletonNode.roPropertyKeys)
361
+ }
352
362
  }
353
363
  if (!skeletonNodes[oneOfPointer]) {
354
364
  skeletonNodes[oneOfPointer] = {
@@ -358,10 +368,12 @@ export function makeSkeletonNode (
358
368
  childrenTrees,
359
369
  discriminator,
360
370
  pure: !childrenTrees.some(childTree => !skeletonNodes[skeletonTrees[childTree]?.root]?.pure),
361
- propertyKeys: [],
362
- roPropertyKeys: []
371
+ propertyKeys,
372
+ roPropertyKeys
363
373
  }
364
374
  }
375
+ node.propertyKeys = node.propertyKeys.concat(skeletonNodes[oneOfPointer].propertyKeys)
376
+ node.roPropertyKeys = node.roPropertyKeys.concat(skeletonNodes[oneOfPointer].roPropertyKeys)
365
377
  node.children = node.children ?? []
366
378
  node.children.push(oneOfPointer)
367
379
  }
@@ -455,6 +467,8 @@ export function makeSkeletonNode (
455
467
  )
456
468
  }
457
469
  node.children = node.children ?? []
470
+ node.propertyKeys = node.propertyKeys.concat(skeletonNodes[childPointer].propertyKeys)
471
+ node.roPropertyKeys = node.roPropertyKeys.concat(skeletonNodes[childPointer].roPropertyKeys)
458
472
  node.children.push(childPointer)
459
473
  }
460
474
  if (schema.else) {
@@ -482,6 +496,8 @@ export function makeSkeletonNode (
482
496
  )
483
497
  }
484
498
  node.children = node.children ?? []
499
+ node.propertyKeys = node.propertyKeys.concat(skeletonNodes[childPointer].propertyKeys)
500
+ node.roPropertyKeys = node.roPropertyKeys.concat(skeletonNodes[childPointer].roPropertyKeys)
485
501
  node.children.push(childPointer)
486
502
  }
487
503
  }
@@ -90,15 +90,16 @@ const produceStateNodeDataChildrenArray = produce((draft, children) => {
90
90
  /** @type {(draft: Record<string, unknown>[], parentDataPath: string, additionalPropertiesErrors?: import('ajv').ErrorObject[], propertyKeys?: string[], removePropertyKeys?: string[]) => Record<string, unknown>[]} */
91
91
  const produceStateNodeDataArray = produce((draft, parentDataPath, additionalPropertiesErrors, propertyKeys, removePropertyKeys) => {
92
92
  for (let i = 0; i < draft.length; i++) {
93
- if (!(draft[i] instanceof File)) {
94
- draft[i] = produceStateNodeData(draft[i], parentDataPath + '/' + i, undefined, additionalPropertiesErrors, propertyKeys, removePropertyKeys)
93
+ if (typeof draft[i] === 'object' && !(draft[i] instanceof File)) {
94
+ draft[i] = cleanNodeData(draft[i], parentDataPath + '/' + i, additionalPropertiesErrors, propertyKeys, removePropertyKeys)
95
95
  }
96
96
  }
97
97
  })
98
98
 
99
- /** @type {(draft: Record<string, unknown>, parentDataPath: string, children?: import('../index.js').StateNode[], additionalPropertiesErrors?: import('ajv').ErrorObject[], propertyKeys?: string[], removePropertyKeys?: string[]) => Record<string, unknown>} */
100
- const produceStateNodeData = produce((draft, parentDataPath, children, additionalPropertiesErrors, propertyKeys, removePropertyKeys) => {
101
- if (propertyKeys && (propertyKeys.length || children?.length)) {
99
+ /** @type {(draft: Record<string, unknown>, parentDataPath: string, additionalPropertiesErrors?: import('ajv').ErrorObject[], propertyKeys?: string[], removePropertyKeys?: string[]) => Record<string, unknown>} */
100
+ const cleanNodeData = produce((draft, parentDataPath, additionalPropertiesErrors, propertyKeys, removePropertyKeys) => {
101
+ // if (propertyKeys && (propertyKeys.length || children?.length)) {
102
+ if (propertyKeys) {
102
103
  for (const key of Object.keys(draft)) {
103
104
  if (!propertyKeys.includes(key)) delete draft[key]
104
105
  }
@@ -109,26 +110,6 @@ const produceStateNodeData = produce((draft, parentDataPath, children, additiona
109
110
  }
110
111
  }
111
112
 
112
- if (children) {
113
- for (const child of children) {
114
- if (parentDataPath === child.dataPath) {
115
- if (child.data === undefined || child.data === null) continue
116
- if (children.length > 1) {
117
- for (const key of Object.keys(child.data)) {
118
- if (children.some(c => c.key === key)) continue
119
- if (!child.skeleton.propertyKeys.includes(key) && children.some(c => c.key !== child.key && c.skeleton.propertyKeys.includes(key))) continue
120
- draft[key] = /** @type {any} */(child.data)[key]
121
- }
122
- } else {
123
- Object.assign(draft, child.data)
124
- }
125
- } else {
126
- if (child.data === undefined) delete draft[child.key]
127
- else draft[child.key] = child.data
128
- }
129
- }
130
- }
131
-
132
113
  if (additionalPropertiesErrors?.length) {
133
114
  for (const error of additionalPropertiesErrors) {
134
115
  if (error.instancePath !== parentDataPath) continue
@@ -140,6 +121,34 @@ const produceStateNodeData = produce((draft, parentDataPath, children, additiona
140
121
  }
141
122
  }
142
123
  }
124
+
125
+ for (const key of Object.keys(draft)) {
126
+ if (draft[key] === undefined) delete draft[key]
127
+ }
128
+ })
129
+
130
+ /** @type {(draft: Record<string, unknown>, parentDataPath: string, hydratedChild: import('../index.js').StateNode, childrenSkeletons: import('../index.js').SkeletonNode[] | undefined) => Record<string, unknown>} */
131
+ const produceHydratedStateNodeData = produce((draft, parentDataPath, hydratedChild, childrenSkeletons) => {
132
+ if (hydratedChild.dataPath === parentDataPath) {
133
+ if (hydratedChild.data === undefined || hydratedChild.data === null) return
134
+ if (childrenSkeletons && childrenSkeletons.length > 1) {
135
+ for (const key of Object.keys(hydratedChild.data)) {
136
+ if (!hydratedChild.skeleton.propertyKeys.includes(key)) continue
137
+ if (!hydratedChild.skeleton.propertyKeys.includes(key) && childrenSkeletons.some(s => s !== hydratedChild.skeleton && s.propertyKeys.includes(key))) continue
138
+ draft[key] = /** @type {any} */(hydratedChild.data)[key]
139
+ }
140
+ } else {
141
+ Object.assign(draft, hydratedChild.data)
142
+ }
143
+ for (const key of hydratedChild.skeleton.propertyKeys) {
144
+ if (/** @type {any} */(hydratedChild.data)[key] === undefined) {
145
+ delete draft[key]
146
+ }
147
+ }
148
+ } else {
149
+ if (hydratedChild.data === undefined) delete draft[hydratedChild.key]
150
+ else draft[hydratedChild.key] = hydratedChild.data
151
+ }
143
152
  })
144
153
 
145
154
  /** @type {(draft: Record<string, unknown>, parentData: Record<string, unknown>, propertyKeys: string[], patterns: string[]) => Record<string, unknown>} */
@@ -427,17 +436,19 @@ export function createStateNode (
427
436
  context.autofocusTarget = fullKey
428
437
  }
429
438
 
430
- if (data === null && !layout.nullable) data = undefined
431
- const shouldUseDefaultData = layout.getDefaultData && useDefaultData(data, layout, options) && context.currentInput !== fullKey
439
+ let nodeData = data
440
+
441
+ if (nodeData === null && !layout.nullable) nodeData = undefined
442
+ const shouldUseDefaultData = layout.getDefaultData && useDefaultData(nodeData, layout, options) && context.currentInput !== fullKey
432
443
  if (layout.getConstData) {
433
444
  if (!context.rehydrate) {
434
- data = evalExpression(compiledLayout.expressions, layout.getConstData, data, options, display, layout, compiledLayout.validates, context.rootData, parentContext)
445
+ nodeData = evalExpression(compiledLayout.expressions, layout.getConstData, nodeData, options, display, layout, compiledLayout.validates, context.rootData, parentContext)
435
446
  }
436
447
  } else {
437
448
  if (shouldUseDefaultData && layout.getDefaultData && !context.rehydrate) {
438
- const defaultData = evalExpression(compiledLayout.expressions, layout.getDefaultData, data, options, display, layout, compiledLayout.validates, context.rootData, parentContext)
439
- if (data === undefined || !isDataEmpty(defaultData)) {
440
- data = defaultData
449
+ const defaultData = evalExpression(compiledLayout.expressions, layout.getDefaultData, nodeData, options, display, layout, compiledLayout.validates, context.rootData, parentContext)
450
+ if (nodeData === undefined || !isDataEmpty(defaultData)) {
451
+ nodeData = defaultData
441
452
  }
442
453
  }
443
454
  }
@@ -446,8 +457,10 @@ export function createStateNode (
446
457
  let children
447
458
  if (isCompositeLayout(layout, compiledLayout.components)) {
448
459
  // TODO: make this type casting safe using prior validation
449
- const objectData = /** @type {Record<string, unknown>} */(data ?? {})
460
+ const objectData = /** @type {Record<string, unknown>} */(nodeData ?? {})
450
461
  const childrenOptions = produceCompositeChildrenOptions(options, layout)
462
+ let actualPropertyKeys = skeleton.propertyKeys
463
+ const removePropertyKeys = options.readOnlyPropertiesMode === 'remove' ? skeleton.roPropertyKeys : []
451
464
  children = []
452
465
  let focusChild = context.autofocusTarget === fullKey
453
466
  for (let i = 0; i < layout.children.length; i++) {
@@ -461,13 +474,25 @@ export function createStateNode (
461
474
  if (childSkeletonKey !== undefined) childSkeleton = compiledLayout.skeletonNodes[childSkeletonKey]
462
475
  if (childSkeleton.condition) {
463
476
  if (!evalExpression(compiledLayout.expressions, childSkeleton.condition, objectData, parentOptions, display, layout, compiledLayout.validates, context.rootData, parentContext)) {
477
+ if (childLayout.key === '$then' || childLayout.key === '$else') {
478
+ const reverseChildSkeletonKey = skeleton.children?.find(c => compiledLayout.skeletonNodes[c].key === (childLayout.key === '$then' ? '$else' : '$then'))
479
+ const reverseChildSkeleton = reverseChildSkeletonKey !== undefined && compiledLayout.skeletonNodes[reverseChildSkeletonKey]
480
+ if (reverseChildSkeleton) {
481
+ for (const key of childSkeleton.propertyKeys) {
482
+ if (!reverseChildSkeleton.propertyKeys.includes(key)) {
483
+ removePropertyKeys.push(key)
484
+ }
485
+ }
486
+ }
487
+ }
464
488
  continue
465
489
  }
466
490
  }
467
491
  const isSameDataPath = typeof childLayout.key === 'string' && childLayout.key.startsWith('$')
468
492
  const childFullKey = `${fullKey}/${childLayout.key}`
469
493
  if (focusChild) context.autofocusTarget = childFullKey
470
- let childData = isSameDataPath ? objectData : objectData[childLayout.key]
494
+ const ogChildData = isSameDataPath ? objectData : objectData[childLayout.key]
495
+ let childData = ogChildData
471
496
  if (childLayout.key === '$patternProperties') {
472
497
  const childNormalizedLayout = /** @type {import('@json-layout/vocabulary').List} */(compiledLayout.normalizedLayouts[childSkeleton.pointer])
473
498
  childData = producePatternPropertiesData(
@@ -476,6 +501,7 @@ export function createStateNode (
476
501
  skeleton.propertyKeys,
477
502
  childNormalizedLayout.indexed ?? []
478
503
  )
504
+ actualPropertyKeys = actualPropertyKeys.concat(Object.keys(/** @type {any} */(childData)))
479
505
  }
480
506
  const child = createStateNode(
481
507
  context,
@@ -495,8 +521,29 @@ export function createStateNode (
495
521
  reusedNode?.children?.find(c => c.fullKey === childFullKey)
496
522
  )
497
523
  if (child.autofocus || child.autofocusChild !== undefined) focusChild = false
524
+ // the child data was hydrated
525
+ if (child.data !== ogChildData) {
526
+ // WARN: this manner of creating empty object or array based on the type of the child key does not seem very safe
527
+ // can we find a better way to discriminate ? maybe store an extra info on the the skeleton, like "emptyData" ?
528
+ nodeData = produceHydratedStateNodeData(
529
+ nodeData ?? ((typeof child.key === 'number' && key !== '$oneOf') ? [] : {}),
530
+ dataPath,
531
+ child,
532
+ skeleton.children?.map(childSkeletonKey => compiledLayout.skeletonNodes[childSkeletonKey])
533
+ )
534
+ }
535
+
498
536
  children.push(child)
499
537
  }
538
+
539
+ const removeAdditional = [true, 'unknown'].includes(options.removeAdditional) || children?.some(c => c.key === '$patternProperties')
540
+ nodeData = cleanNodeData(
541
+ /** @type {Record<string, unknown>} */(nodeData ?? {}),
542
+ dataPath,
543
+ context.additionalPropertiesErrors,
544
+ removeAdditional ? actualPropertyKeys : undefined,
545
+ removePropertyKeys
546
+ )
500
547
  }
501
548
 
502
549
  if (skeleton.nullable && context.errors) {
@@ -558,31 +605,35 @@ export function createStateNode (
558
605
  const activeChildKey = `${fullKey}/${activeChildTreeIndex}`
559
606
  if (context.autofocusTarget === fullKey) context.autofocusTarget = activeChildKey
560
607
 
561
- children = [
562
- createStateNode(
563
- context,
564
- options,
565
- compiledLayout,
566
- activeChildTreeIndex,
567
- activeChildKey,
568
- fullKey,
569
- dataPath,
570
- dataPath,
571
- activeChildNode,
572
- null,
573
- display,
574
- data,
575
- { parent: parentContext, data },
576
- validationState,
577
- reusedNode?.children?.[0]
578
- )
579
- ]
608
+ const child = createStateNode(
609
+ context,
610
+ options,
611
+ compiledLayout,
612
+ activeChildTreeIndex,
613
+ activeChildKey,
614
+ fullKey,
615
+ dataPath,
616
+ dataPath,
617
+ activeChildNode,
618
+ null,
619
+ display,
620
+ nodeData,
621
+ { parent: parentContext, data: nodeData },
622
+ validationState,
623
+ reusedNode?.children?.[0]
624
+ )
625
+ // the oneOf was hydrated
626
+ if (child.data !== nodeData) {
627
+ // nodeData = produceHydratedStateNodeData(nodeData, dataPath, child, skeleton.children?.map(childSkeletonKey => compiledLayout.skeletonNodes[childSkeletonKey]))
628
+ nodeData = child.data
629
+ }
630
+ children = [child]
580
631
  }
581
632
  }
582
633
 
583
634
  if (isListLayout(layout)) {
584
635
  if (layout.indexed) {
585
- const objectData = /** @type {Record<string, unknown>} */(data ?? [])
636
+ const objectData = /** @type {Record<string, unknown>} */(nodeData ?? [])
586
637
  const listItemOptions = layout.listEditMode === 'inline' ? options : produceReadonlyArrayItemOptions(options)
587
638
  children = []
588
639
  let focusChild = context.autofocusTarget === fullKey
@@ -605,6 +656,7 @@ export function createStateNode (
605
656
  if (valueChildSkeleton) {
606
657
  const childFullKey = `${fullKey}/${childKey}`
607
658
  if (focusChild) context.autofocusTarget = childFullKey
659
+ const valueChildData = objectData[childKey]
608
660
  const valueChild = createStateNode(
609
661
  context,
610
662
  (layout.listEditMode === 'inline-single' && context.activatedItems[fullKey] === i) ? options : listItemOptions,
@@ -617,17 +669,28 @@ export function createStateNode (
617
669
  valueChildSkeleton,
618
670
  null,
619
671
  display,
620
- objectData[childKey],
672
+ valueChildData,
621
673
  { parent: parentContext, data: objectData },
622
674
  validationState,
623
675
  reusedNode?.children?.find(c => c.key === childKey)
624
676
  )
625
677
  if (valueChild.autofocus || valueChild.autofocusChild !== undefined) focusChild = false
626
678
  children.push(valueChild)
679
+
680
+ if (valueChild.data !== valueChildData) {
681
+ // WARN: this manner of creating empty object or array based on the type of the child key does not seem very safe
682
+ // can we find a better way to discriminate ? maybe store an extra info on the the skeleton, like "emptyData" ?
683
+ nodeData = produceHydratedStateNodeData(
684
+ nodeData ?? {},
685
+ dataPath,
686
+ valueChild,
687
+ skeleton.children?.map(childSkeletonKey => compiledLayout.skeletonNodes[childSkeletonKey])
688
+ )
689
+ }
627
690
  }
628
691
  }
629
692
  } else {
630
- const arrayData = /** @type {unknown[]} */(data ?? [])
693
+ const arrayData = /** @type {unknown[]} */(nodeData ?? [])
631
694
  const childSkeleton = /** @type {import('../index.js').SkeletonNode} */(skeleton?.childrenTrees?.[0] && compiledLayout.skeletonNodes[compiledLayout.skeletonTrees[skeleton?.childrenTrees?.[0]]?.root])
632
695
  const listItemOptions = layout.listEditMode === 'inline' ? options : produceReadonlyArrayItemOptions(options)
633
696
  children = []
@@ -706,8 +769,6 @@ export function createStateNode (
706
769
  }
707
770
  }
708
771
 
709
- let nodeData = data
710
-
711
772
  if (!layout.getConstData) {
712
773
  if (typeof children?.[0]?.key === 'number' && layout.comp !== 'one-of-select' && !layout.indexed) {
713
774
  // case of an array of children nodes
@@ -715,7 +776,7 @@ export function createStateNode (
715
776
  /** @type {unknown[]} */(nodeData ?? []),
716
777
  children
717
778
  )
718
- } else if (Array.isArray(nodeData)) {
779
+ } else if (Array.isArray(nodeData) && !children) {
719
780
  // case of an array without children nodes, so a select of objects for example
720
781
  const itemsSkeletonTree = skeleton.childrenTrees?.[0] && compiledLayout.skeletonTrees[skeleton.childrenTrees?.[0]]
721
782
  const itemsSkeletonNode = (itemsSkeletonTree && compiledLayout.skeletonNodes[itemsSkeletonTree.root]) || null
@@ -723,19 +784,17 @@ export function createStateNode (
723
784
  /** @type {Record<string, unknown>[]} */(nodeData ?? []),
724
785
  dataPath,
725
786
  context.additionalPropertiesErrors,
726
- [true, 'unknown'].includes(options.removeAdditional) ? itemsSkeletonNode?.propertyKeys : undefined,
787
+ itemsSkeletonNode?.propertyKeys.length ? itemsSkeletonNode?.propertyKeys : undefined,
727
788
  options.readOnlyPropertiesMode === 'remove' ? itemsSkeletonNode?.roPropertyKeys : undefined
728
789
  )
729
- } else if ((typeof nodeData === 'object' || (nodeData === undefined && children?.length)) && !(nodeData instanceof File)) {
730
- // case of an object base on children nodes or not
731
- const removeAdditional = [true, 'unknown'].includes(options.removeAdditional) || children?.some(c => c.key === '$patternProperties')
732
- nodeData = produceStateNodeData(
733
- /** @type {Record<string, unknown>} */(nodeData ?? {}),
790
+ } else if (typeof nodeData === 'object' && !(nodeData instanceof File) && !children) {
791
+ // case of an object outside of a composite component, probably a select
792
+ nodeData = cleanNodeData(
793
+ /** @type {Record<string, unknown>} */(nodeData ?? {}),
734
794
  dataPath,
735
- children,
736
795
  context.additionalPropertiesErrors,
737
- removeAdditional ? skeleton.propertyKeys : undefined,
738
- options.readOnlyPropertiesMode === 'remove' ? skeleton.roPropertyKeys : undefined
796
+ skeleton?.propertyKeys.length ? skeleton?.propertyKeys : undefined,
797
+ options.readOnlyPropertiesMode === 'remove' ? skeleton?.roPropertyKeys : undefined
739
798
  )
740
799
  }
741
800
 
@@ -828,6 +887,7 @@ export function createStateNode (
828
887
  } else if (layout.comp === 'list' && itemsCacheKey) {
829
888
  logGetItems(fullKey, 'list component with unchanged getItems cache key, no fetch will be triggered', itemsCacheKey)
830
889
  }
890
+
831
891
  const node = produceStateNode(
832
892
  reusedNode ?? /** @type {import('./types.js').StateNode} */({}),
833
893
  key,
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton-node.d.ts","sourceRoot":"","sources":["../../src/compile/skeleton-node.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;GAkBG;AACH,4CAlBW,GAAG,kBACH,MAAM,WACN,OAAO,YAAY,EAAE,cAAc,cACnC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,iBACxD,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC,iBACjD,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC,oBACjD,MAAM,EAAE,oBACR,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,qBACxB,MAAM,CAAC,MAAM,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC,eAClE,OAAO,yBAAyB,EAAE,UAAU,EAAE,OAC9C,MAAM,GAAG,MAAM,WACf,MAAM,YACN,OAAO,cACP,MAAM,cACN,OAAO,cACP,MAAM,GACJ,OAAO,YAAY,EAAE,YAAY,CAgiB7C"}
1
+ {"version":3,"file":"skeleton-node.d.ts","sourceRoot":"","sources":["../../src/compile/skeleton-node.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;GAkBG;AACH,4CAlBW,GAAG,kBACH,MAAM,WACN,OAAO,YAAY,EAAE,cAAc,cACnC,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,iBACxD,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC,iBACjD,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC,oBACjD,MAAM,EAAE,oBACR,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,qBACxB,MAAM,CAAC,MAAM,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC,eAClE,OAAO,yBAAyB,EAAE,UAAU,EAAE,OAC9C,MAAM,GAAG,MAAM,WACf,MAAM,YACN,OAAO,cACP,MAAM,cACN,OAAO,cACP,MAAM,GACJ,OAAO,YAAY,EAAE,YAAY,CAgjB7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"AA0QA;;;;;;;;;;;GAWG;AACH,4CAXW,OAAO,aAAa,EAAE,kBAAkB,EAAE,cAC1C,OAAO,yBAAyB,EAAE,UAAU,QAC5C,GAAG,WACH,OAAO,YAAY,EAAE,gBAAgB,WACrC,OAAO,oBAAoB,EAAE,OAAO,UACpC,OAAO,yBAAyB,EAAE,cAAc,aAChD,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,gBAAgB,CAAC,YAC9C,OAAO,iBACP,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,GAC1D,GAAG,CAsBf;AAiCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,yCAjBW,OAAO,YAAY,EAAE,sBAAsB,iBAC3C,OAAO,YAAY,EAAE,gBAAgB,kBACrC,OAAO,aAAa,EAAE,cAAc,OACpC,MAAM,GAAG,MAAM,WACf,MAAM,iBACN,MAAM,GAAG,IAAI,YACb,MAAM,kBACN,MAAM,GAAG,IAAI,YACb,OAAO,aAAa,EAAE,YAAY,mBAClC,OAAO,yBAAyB,EAAE,KAAK,GAAG,IAAI,iBAC9C,OAAO,oBAAoB,EAAE,OAAO,QACpC,GAAG,iBACH,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,mBAC5D,OAAO,YAAY,EAAE,eAAe,eACpC,OAAO,YAAY,EAAE,SAAS,GAC5B,OAAO,YAAY,EAAE,SAAS,CAigB1C;AAh0BM,qCALI,OAAO,UACP,OAAO,yBAAyB,EAAE,cAAc,WAChD,OAAO,YAAY,EAAE,gBAAgB,GACnC,OAAO,CAMnB;AA8zBD,uFAAuF;AACvF,iCADW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,GAAG,CAgBjF;AAEF,kKAAkK;AAClK,8BADW,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,yBAAyB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,yBAAyB,EAAE,WAAW,KAAK,GAAG,CAY7J"}
1
+ {"version":3,"file":"state-node.d.ts","sourceRoot":"","sources":["../../src/state/state-node.js"],"names":[],"mappings":"AAmRA;;;;;;;;;;;GAWG;AACH,4CAXW,OAAO,aAAa,EAAE,kBAAkB,EAAE,cAC1C,OAAO,yBAAyB,EAAE,UAAU,QAC5C,GAAG,WACH,OAAO,YAAY,EAAE,gBAAgB,WACrC,OAAO,oBAAoB,EAAE,OAAO,UACpC,OAAO,yBAAyB,EAAE,cAAc,aAChD,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE,gBAAgB,CAAC,YAC9C,OAAO,iBACP,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,GAC1D,GAAG,CAsBf;AAiCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,yCAjBW,OAAO,YAAY,EAAE,sBAAsB,iBAC3C,OAAO,YAAY,EAAE,gBAAgB,kBACrC,OAAO,aAAa,EAAE,cAAc,OACpC,MAAM,GAAG,MAAM,WACf,MAAM,iBACN,MAAM,GAAG,IAAI,YACb,MAAM,kBACN,MAAM,GAAG,IAAI,YACb,OAAO,aAAa,EAAE,YAAY,mBAClC,OAAO,yBAAyB,EAAE,KAAK,GAAG,IAAI,iBAC9C,OAAO,oBAAoB,EAAE,OAAO,QACpC,GAAG,iBACH,OAAO,qBAAqB,EAAE,uBAAuB,GAAG,IAAI,mBAC5D,OAAO,YAAY,EAAE,eAAe,eACpC,OAAO,YAAY,EAAE,SAAS,GAC5B,OAAO,YAAY,EAAE,SAAS,CAojB1C;AA53BM,qCALI,OAAO,UACP,OAAO,yBAAyB,EAAE,cAAc,WAChD,OAAO,YAAY,EAAE,gBAAgB,GACnC,OAAO,CAMnB;AA03BD,uFAAuF;AACvF,iCADW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,KAAK,GAAG,CAgBjF;AAEF,kKAAkK;AAClK,8BADW,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,OAAO,yBAAyB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,yBAAyB,EAAE,WAAW,KAAK,GAAG,CAY7J"}