@revisium/schema-toolkit 0.21.4 → 0.22.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.
- package/README.md +63 -2
- package/dist/{chunk-MXEQ5CBK.js → chunk-2GZ3M3RV.js} +3 -0
- package/dist/chunk-5G3AVY57.js +1 -0
- package/dist/chunk-5M74TGFQ.cjs +2 -0
- package/dist/{chunk-3MXYXTNF.js → chunk-B3W5BASK.js} +22 -3
- package/dist/{chunk-JLXX3SGF.js → chunk-GAP5KNWN.js} +229 -2
- package/dist/{chunk-XKWWCXGB.js → chunk-HOMXBUQB.js} +143 -20
- package/dist/{chunk-URMXJ6FH.cjs → chunk-JHNATNUI.cjs} +90 -71
- package/dist/{chunk-T46TZYJL.cjs → chunk-PJ5OFCLO.cjs} +3 -0
- package/dist/{chunk-QKA7DJDN.cjs → chunk-WY3CL7KH.cjs} +143 -19
- package/dist/{chunk-7JWCZZPJ.cjs → chunk-YZEJKK4O.cjs} +236 -0
- package/dist/core/index.cjs +60 -60
- package/dist/core/index.js +1 -1
- package/dist/index.cjs +182 -157
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5 -4
- package/dist/lib/index.cjs +54 -33
- package/dist/lib/index.d.cts +49 -1
- package/dist/lib/index.d.ts +49 -1
- package/dist/lib/index.js +2 -1
- package/dist/model/index.cjs +50 -50
- package/dist/model/index.d.cts +11 -3
- package/dist/model/index.d.ts +11 -3
- package/dist/model/index.js +2 -2
- package/dist/{typed-DjSH_5Vh.d.cts → typed-C0YM-ar9.d.cts} +6 -0
- package/dist/{typed-KUia-LYN.d.ts → typed-CkirI6bH.d.ts} +6 -0
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/validation-schemas/index.cjs +23 -18
- package/dist/validation-schemas/index.d.cts +3 -1
- package/dist/validation-schemas/index.d.ts +3 -1
- package/dist/validation-schemas/index.js +2 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPJ5OFCLO_cjs = require('./chunk-PJ5OFCLO.cjs');
|
|
4
4
|
var chunk2PIMJSWJ_cjs = require('./chunk-2PIMJSWJ.cjs');
|
|
5
5
|
var nanoid = require('nanoid');
|
|
6
6
|
var formula = require('@revisium/formula');
|
|
@@ -69,7 +69,7 @@ var FormulaPath = class {
|
|
|
69
69
|
resolveRootPath(rootPath) {
|
|
70
70
|
const path = rootPath.startsWith("/") ? rootPath.slice(1) : rootPath;
|
|
71
71
|
if (!path) {
|
|
72
|
-
return
|
|
72
|
+
return chunkPJ5OFCLO_cjs.EMPTY_PATH;
|
|
73
73
|
}
|
|
74
74
|
try {
|
|
75
75
|
return this.parseFormulaPath(path);
|
|
@@ -79,7 +79,7 @@ var FormulaPath = class {
|
|
|
79
79
|
}
|
|
80
80
|
parseFormulaPath(formulaPath) {
|
|
81
81
|
const parts = formulaPath.split(".");
|
|
82
|
-
let result =
|
|
82
|
+
let result = chunkPJ5OFCLO_cjs.EMPTY_PATH;
|
|
83
83
|
for (const part of parts) {
|
|
84
84
|
if (!part) {
|
|
85
85
|
throw new Error(`Invalid path: empty segment`);
|
|
@@ -107,7 +107,7 @@ var ParsedFormula = class {
|
|
|
107
107
|
this.astNode = parseResult.ast;
|
|
108
108
|
const formulaPath = tree.pathOf(formulaNodeId);
|
|
109
109
|
if (formulaPath.isEmpty() && tree.root().id() !== formulaNodeId) {
|
|
110
|
-
throw new
|
|
110
|
+
throw new chunkPJ5OFCLO_cjs.FormulaError("Formula node not found in tree", formulaNodeId);
|
|
111
111
|
}
|
|
112
112
|
const deps = [];
|
|
113
113
|
const astPathToNodeId = /* @__PURE__ */ new Map();
|
|
@@ -118,20 +118,20 @@ var ParsedFormula = class {
|
|
|
118
118
|
depPath
|
|
119
119
|
);
|
|
120
120
|
if (!targetNodeId) {
|
|
121
|
-
throw new
|
|
121
|
+
throw new chunkPJ5OFCLO_cjs.FormulaError(
|
|
122
122
|
`Cannot resolve formula dependency: ${depPath}`,
|
|
123
123
|
formulaNodeId,
|
|
124
124
|
"Path not found in schema"
|
|
125
125
|
);
|
|
126
126
|
}
|
|
127
127
|
if (targetNodeId === formulaNodeId) {
|
|
128
|
-
throw new
|
|
128
|
+
throw new chunkPJ5OFCLO_cjs.FormulaError(
|
|
129
129
|
"Formula cannot reference itself",
|
|
130
130
|
formulaNodeId,
|
|
131
131
|
"Self-reference detected"
|
|
132
132
|
);
|
|
133
133
|
}
|
|
134
|
-
deps.push(new
|
|
134
|
+
deps.push(new chunkPJ5OFCLO_cjs.ResolvedDependency(targetNodeId));
|
|
135
135
|
astPathToNodeId.set(depPath, targetNodeId);
|
|
136
136
|
}
|
|
137
137
|
this.deps = deps;
|
|
@@ -295,7 +295,7 @@ var FormulaChangeDetector = class {
|
|
|
295
295
|
}
|
|
296
296
|
getSerializedExpression(formula, tree, nodeId) {
|
|
297
297
|
try {
|
|
298
|
-
const xFormula =
|
|
298
|
+
const xFormula = chunkPJ5OFCLO_cjs.FormulaSerializer.toXFormula(tree, nodeId, formula);
|
|
299
299
|
return xFormula.expression;
|
|
300
300
|
} catch {
|
|
301
301
|
return null;
|
|
@@ -348,14 +348,14 @@ var SchemaParser = class {
|
|
|
348
348
|
const resolvedSchema = this._refSchemas[refValue];
|
|
349
349
|
if (resolvedSchema) {
|
|
350
350
|
if (this._resolvingRefs.has(refValue)) {
|
|
351
|
-
return
|
|
351
|
+
return chunkPJ5OFCLO_cjs.createRefNode(nanoid.nanoid(), name, refValue, this.extractMetadata(schema));
|
|
352
352
|
}
|
|
353
353
|
this._resolvingRefs.add(refValue);
|
|
354
354
|
const node = this.parseNode(resolvedSchema, name, refValue);
|
|
355
355
|
this._resolvingRefs.delete(refValue);
|
|
356
356
|
return node;
|
|
357
357
|
}
|
|
358
|
-
return
|
|
358
|
+
return chunkPJ5OFCLO_cjs.createRefNode(nanoid.nanoid(), name, refValue, this.extractMetadata(schema));
|
|
359
359
|
}
|
|
360
360
|
const schemaWithType = schema;
|
|
361
361
|
switch (schemaWithType.type) {
|
|
@@ -381,14 +381,14 @@ var SchemaParser = class {
|
|
|
381
381
|
children.push(this.parseNode(propSchema, propName));
|
|
382
382
|
}
|
|
383
383
|
}
|
|
384
|
-
return
|
|
384
|
+
return chunkPJ5OFCLO_cjs.createObjectNode(nanoid.nanoid(), name, children, {
|
|
385
385
|
metadata: this.extractMetadata(schema),
|
|
386
386
|
ref: ref2
|
|
387
387
|
});
|
|
388
388
|
}
|
|
389
389
|
parseArray(schema, name, ref2) {
|
|
390
390
|
const items = this.parseNode(schema.items, "items");
|
|
391
|
-
return
|
|
391
|
+
return chunkPJ5OFCLO_cjs.createArrayNode(nanoid.nanoid(), name, items, {
|
|
392
392
|
metadata: this.extractMetadata(schema),
|
|
393
393
|
ref: ref2
|
|
394
394
|
});
|
|
@@ -396,9 +396,10 @@ var SchemaParser = class {
|
|
|
396
396
|
parseString(schema, name, ref2) {
|
|
397
397
|
const nodeId = nanoid.nanoid();
|
|
398
398
|
this.collectFormula(nodeId, schema["x-formula"]);
|
|
399
|
-
return
|
|
399
|
+
return chunkPJ5OFCLO_cjs.createStringNode(nodeId, name, {
|
|
400
400
|
defaultValue: schema.default,
|
|
401
401
|
foreignKey: schema.foreignKey,
|
|
402
|
+
contentMediaType: schema.contentMediaType,
|
|
402
403
|
metadata: this.extractMetadata(schema),
|
|
403
404
|
ref: ref2
|
|
404
405
|
});
|
|
@@ -406,7 +407,7 @@ var SchemaParser = class {
|
|
|
406
407
|
parseNumber(schema, name, ref2) {
|
|
407
408
|
const nodeId = nanoid.nanoid();
|
|
408
409
|
this.collectFormula(nodeId, schema["x-formula"]);
|
|
409
|
-
return
|
|
410
|
+
return chunkPJ5OFCLO_cjs.createNumberNode(nodeId, name, {
|
|
410
411
|
defaultValue: schema.default,
|
|
411
412
|
metadata: this.extractMetadata(schema),
|
|
412
413
|
ref: ref2
|
|
@@ -415,7 +416,7 @@ var SchemaParser = class {
|
|
|
415
416
|
parseBoolean(schema, name, ref2) {
|
|
416
417
|
const nodeId = nanoid.nanoid();
|
|
417
418
|
this.collectFormula(nodeId, schema["x-formula"]);
|
|
418
|
-
return
|
|
419
|
+
return chunkPJ5OFCLO_cjs.createBooleanNode(nodeId, name, {
|
|
419
420
|
defaultValue: schema.default,
|
|
420
421
|
metadata: this.extractMetadata(schema),
|
|
421
422
|
ref: ref2
|
|
@@ -448,13 +449,13 @@ var NodeFactory = class {
|
|
|
448
449
|
createNode(name, type) {
|
|
449
450
|
switch (type) {
|
|
450
451
|
case "string":
|
|
451
|
-
return
|
|
452
|
+
return chunkPJ5OFCLO_cjs.createStringNode(nanoid.nanoid(), name, { defaultValue: "" });
|
|
452
453
|
case "number":
|
|
453
|
-
return
|
|
454
|
+
return chunkPJ5OFCLO_cjs.createNumberNode(nanoid.nanoid(), name, { defaultValue: 0 });
|
|
454
455
|
case "boolean":
|
|
455
|
-
return
|
|
456
|
+
return chunkPJ5OFCLO_cjs.createBooleanNode(nanoid.nanoid(), name, { defaultValue: false });
|
|
456
457
|
case "object":
|
|
457
|
-
return
|
|
458
|
+
return chunkPJ5OFCLO_cjs.createObjectNode(nanoid.nanoid(), name, []);
|
|
458
459
|
case "array":
|
|
459
460
|
return this.createArrayNodeInternal(name);
|
|
460
461
|
default:
|
|
@@ -462,11 +463,11 @@ var NodeFactory = class {
|
|
|
462
463
|
}
|
|
463
464
|
}
|
|
464
465
|
createArrayNodeInternal(name) {
|
|
465
|
-
const items =
|
|
466
|
-
return
|
|
466
|
+
const items = chunkPJ5OFCLO_cjs.createStringNode(nanoid.nanoid(), "items", { defaultValue: "" });
|
|
467
|
+
return chunkPJ5OFCLO_cjs.createArrayNode(nanoid.nanoid(), name, items);
|
|
467
468
|
}
|
|
468
469
|
createArrayNodeWithItems(name, items) {
|
|
469
|
-
return
|
|
470
|
+
return chunkPJ5OFCLO_cjs.createArrayNode(nanoid.nanoid(), name, items);
|
|
470
471
|
}
|
|
471
472
|
};
|
|
472
473
|
|
|
@@ -565,7 +566,7 @@ var PrimitiveToArrayTransformer = class {
|
|
|
565
566
|
const { sourceNode } = ctx;
|
|
566
567
|
const itemsNode = sourceNode.cloneWithId(nanoid.nanoid());
|
|
567
568
|
itemsNode.setName("items");
|
|
568
|
-
const arrayNode =
|
|
569
|
+
const arrayNode = chunkPJ5OFCLO_cjs.createArrayNode(sourceNode.id(), sourceNode.name(), itemsNode);
|
|
569
570
|
return { node: arrayNode };
|
|
570
571
|
}
|
|
571
572
|
};
|
|
@@ -578,7 +579,7 @@ var ObjectToArrayTransformer = class {
|
|
|
578
579
|
const { sourceNode } = ctx;
|
|
579
580
|
const itemsNode = sourceNode.cloneWithId(nanoid.nanoid());
|
|
580
581
|
itemsNode.setName("items");
|
|
581
|
-
const arrayNode =
|
|
582
|
+
const arrayNode = chunkPJ5OFCLO_cjs.createArrayNode(sourceNode.id(), sourceNode.name(), itemsNode);
|
|
582
583
|
return { node: arrayNode };
|
|
583
584
|
}
|
|
584
585
|
};
|
|
@@ -628,7 +629,7 @@ var RefTransformer = class {
|
|
|
628
629
|
return { node: newNode };
|
|
629
630
|
}
|
|
630
631
|
const metadata = this.extractMetadata(targetSpec);
|
|
631
|
-
const node =
|
|
632
|
+
const node = chunkPJ5OFCLO_cjs.createRefNode(sourceNode.id(), sourceNode.name(), refUri, metadata);
|
|
632
633
|
return { node };
|
|
633
634
|
}
|
|
634
635
|
extractMetadata(spec) {
|
|
@@ -663,23 +664,23 @@ var DefaultTransformer = class {
|
|
|
663
664
|
createNode(id, name, type, spec, metadata) {
|
|
664
665
|
switch (type) {
|
|
665
666
|
case "string":
|
|
666
|
-
return
|
|
667
|
+
return chunkPJ5OFCLO_cjs.createStringNode(id, name, {
|
|
667
668
|
defaultValue: spec.default ?? "",
|
|
668
669
|
foreignKey: spec.foreignKey,
|
|
669
670
|
metadata
|
|
670
671
|
});
|
|
671
672
|
case "number":
|
|
672
|
-
return
|
|
673
|
+
return chunkPJ5OFCLO_cjs.createNumberNode(id, name, {
|
|
673
674
|
defaultValue: spec.default ?? 0,
|
|
674
675
|
metadata
|
|
675
676
|
});
|
|
676
677
|
case "boolean":
|
|
677
|
-
return
|
|
678
|
+
return chunkPJ5OFCLO_cjs.createBooleanNode(id, name, {
|
|
678
679
|
defaultValue: spec.default ?? false,
|
|
679
680
|
metadata
|
|
680
681
|
});
|
|
681
682
|
case "object":
|
|
682
|
-
return
|
|
683
|
+
return chunkPJ5OFCLO_cjs.createObjectNode(id, name, [], { metadata });
|
|
683
684
|
case "array":
|
|
684
685
|
return this.createArrayNode(id, name, metadata);
|
|
685
686
|
default:
|
|
@@ -687,8 +688,8 @@ var DefaultTransformer = class {
|
|
|
687
688
|
}
|
|
688
689
|
}
|
|
689
690
|
createArrayNode(id, name, metadata) {
|
|
690
|
-
const items =
|
|
691
|
-
return
|
|
691
|
+
const items = chunkPJ5OFCLO_cjs.createStringNode(nanoid.nanoid(), "items", { defaultValue: "" });
|
|
692
|
+
return chunkPJ5OFCLO_cjs.createArrayNode(id, name, items, { metadata });
|
|
692
693
|
}
|
|
693
694
|
extractMetadata(spec) {
|
|
694
695
|
const meta = {};
|
|
@@ -752,8 +753,8 @@ function createTypeTransformChain(options) {
|
|
|
752
753
|
var SchemaModelImpl = class {
|
|
753
754
|
_baseTree;
|
|
754
755
|
_currentTree;
|
|
755
|
-
_patchBuilder = new
|
|
756
|
-
_serializer = new
|
|
756
|
+
_patchBuilder = new chunkPJ5OFCLO_cjs.PatchBuilder();
|
|
757
|
+
_serializer = new chunkPJ5OFCLO_cjs.SchemaSerializer();
|
|
757
758
|
_nodeFactory = new NodeFactory();
|
|
758
759
|
_formulaIndex = new FormulaDependencyIndex();
|
|
759
760
|
_transformChain;
|
|
@@ -767,12 +768,12 @@ var SchemaModelImpl = class {
|
|
|
767
768
|
});
|
|
768
769
|
const parser = new SchemaParser();
|
|
769
770
|
const rootNode = parser.parse(schema, this._refSchemas);
|
|
770
|
-
this._currentTree =
|
|
771
|
+
this._currentTree = chunkPJ5OFCLO_cjs.createSchemaTree(rootNode);
|
|
771
772
|
parser.parseFormulas(this._currentTree);
|
|
772
773
|
this._formulaParseErrors = parser.parseErrors;
|
|
773
774
|
this._buildFormulaIndex();
|
|
774
775
|
this._baseTree = this._currentTree.clone();
|
|
775
|
-
|
|
776
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
776
777
|
_patchBuilder: false,
|
|
777
778
|
_serializer: false,
|
|
778
779
|
_nodeFactory: false,
|
|
@@ -801,10 +802,10 @@ var SchemaModelImpl = class {
|
|
|
801
802
|
insertFieldAt(parentId, index, name, type) {
|
|
802
803
|
const parent = this._currentTree.nodeById(parentId);
|
|
803
804
|
if (parent.isNull() || !parent.isObject()) {
|
|
804
|
-
return
|
|
805
|
+
return chunkPJ5OFCLO_cjs.NULL_NODE;
|
|
805
806
|
}
|
|
806
807
|
if (index < 0 || index > parent.properties().length) {
|
|
807
|
-
return
|
|
808
|
+
return chunkPJ5OFCLO_cjs.NULL_NODE;
|
|
808
809
|
}
|
|
809
810
|
const node = this._nodeFactory.createNode(name, type);
|
|
810
811
|
this._currentTree.insertChildAt(parentId, index, node);
|
|
@@ -1029,7 +1030,7 @@ var SchemaModelImpl = class {
|
|
|
1029
1030
|
return "";
|
|
1030
1031
|
}
|
|
1031
1032
|
try {
|
|
1032
|
-
return
|
|
1033
|
+
return chunkPJ5OFCLO_cjs.FormulaSerializer.serializeExpression(
|
|
1033
1034
|
this._currentTree,
|
|
1034
1035
|
nodeId,
|
|
1035
1036
|
formula,
|
|
@@ -1040,10 +1041,10 @@ var SchemaModelImpl = class {
|
|
|
1040
1041
|
}
|
|
1041
1042
|
}
|
|
1042
1043
|
get validationErrors() {
|
|
1043
|
-
return
|
|
1044
|
+
return chunkPJ5OFCLO_cjs.validateSchema(this._currentTree.root());
|
|
1044
1045
|
}
|
|
1045
1046
|
get formulaErrors() {
|
|
1046
|
-
return [...this._formulaParseErrors, ...
|
|
1047
|
+
return [...this._formulaParseErrors, ...chunkPJ5OFCLO_cjs.validateFormulas(this._currentTree)];
|
|
1047
1048
|
}
|
|
1048
1049
|
get isDirty() {
|
|
1049
1050
|
return this.patches.length > 0;
|
|
@@ -1555,7 +1556,7 @@ var FormulaEngine = class {
|
|
|
1555
1556
|
this.setupReactions();
|
|
1556
1557
|
}
|
|
1557
1558
|
evaluateAll() {
|
|
1558
|
-
|
|
1559
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
1559
1560
|
for (const field of this.evaluationOrder) {
|
|
1560
1561
|
this.evaluator.evaluate(field);
|
|
1561
1562
|
}
|
|
@@ -1568,7 +1569,7 @@ var FormulaEngine = class {
|
|
|
1568
1569
|
continue;
|
|
1569
1570
|
}
|
|
1570
1571
|
watchedNodes.add(depNode);
|
|
1571
|
-
const disposer =
|
|
1572
|
+
const disposer = chunkPJ5OFCLO_cjs.reaction(
|
|
1572
1573
|
() => depNode.value,
|
|
1573
1574
|
() => this.handleDependencyChange(depNode)
|
|
1574
1575
|
);
|
|
@@ -1578,7 +1579,7 @@ var FormulaEngine = class {
|
|
|
1578
1579
|
}
|
|
1579
1580
|
setupArrayReactions(node) {
|
|
1580
1581
|
if (node.isArray()) {
|
|
1581
|
-
const disposer =
|
|
1582
|
+
const disposer = chunkPJ5OFCLO_cjs.reaction(
|
|
1582
1583
|
() => node.length,
|
|
1583
1584
|
() => this.handleStructureChange()
|
|
1584
1585
|
);
|
|
@@ -1598,7 +1599,7 @@ var FormulaEngine = class {
|
|
|
1598
1599
|
this.dependencyMap,
|
|
1599
1600
|
this.evaluationOrder
|
|
1600
1601
|
);
|
|
1601
|
-
|
|
1602
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
1602
1603
|
for (const field of affected) {
|
|
1603
1604
|
this.evaluator.evaluate(field);
|
|
1604
1605
|
}
|
|
@@ -1698,7 +1699,7 @@ var ArrayValueNode = class extends BaseValueNode {
|
|
|
1698
1699
|
_nodeFactory = null;
|
|
1699
1700
|
constructor(id, name, schema, items) {
|
|
1700
1701
|
super(id, name, schema);
|
|
1701
|
-
this._items =
|
|
1702
|
+
this._items = chunkPJ5OFCLO_cjs.observable.array();
|
|
1702
1703
|
this._baseItems = [];
|
|
1703
1704
|
if (items) {
|
|
1704
1705
|
for (const item of items) {
|
|
@@ -1707,7 +1708,7 @@ var ArrayValueNode = class extends BaseValueNode {
|
|
|
1707
1708
|
}
|
|
1708
1709
|
}
|
|
1709
1710
|
this._baseItems = [...this._items];
|
|
1710
|
-
|
|
1711
|
+
chunkPJ5OFCLO_cjs.makeObservable(this, {
|
|
1711
1712
|
_items: "observable",
|
|
1712
1713
|
_baseItems: "observable",
|
|
1713
1714
|
value: "computed",
|
|
@@ -1743,6 +1744,12 @@ var ArrayValueNode = class extends BaseValueNode {
|
|
|
1743
1744
|
}
|
|
1744
1745
|
return this._items[index];
|
|
1745
1746
|
}
|
|
1747
|
+
find(predicate) {
|
|
1748
|
+
return this._items.find((node, index) => predicate(node, index));
|
|
1749
|
+
}
|
|
1750
|
+
findIndex(predicate) {
|
|
1751
|
+
return this._items.findIndex((node, index) => predicate(node, index));
|
|
1752
|
+
}
|
|
1746
1753
|
push(node) {
|
|
1747
1754
|
node.parent = this;
|
|
1748
1755
|
this._items.push(node);
|
|
@@ -1894,7 +1901,7 @@ var ArrayValueNode = class extends BaseValueNode {
|
|
|
1894
1901
|
for (const item of this._items) {
|
|
1895
1902
|
item.parent = null;
|
|
1896
1903
|
}
|
|
1897
|
-
this._items =
|
|
1904
|
+
this._items = chunkPJ5OFCLO_cjs.observable.array();
|
|
1898
1905
|
for (const baseItem of this._baseItems) {
|
|
1899
1906
|
this._items.push(baseItem);
|
|
1900
1907
|
}
|
|
@@ -1937,7 +1944,7 @@ var BasePrimitiveValueNode = class extends BaseValueNode {
|
|
|
1937
1944
|
this._baseValue = initialValue;
|
|
1938
1945
|
}
|
|
1939
1946
|
initObservable() {
|
|
1940
|
-
|
|
1947
|
+
chunkPJ5OFCLO_cjs.makeObservable(this, {
|
|
1941
1948
|
_value: "observable",
|
|
1942
1949
|
_baseValue: "observable",
|
|
1943
1950
|
_formulaWarning: "observable",
|
|
@@ -2296,7 +2303,7 @@ var ObjectValueNode = class extends BaseValueNode {
|
|
|
2296
2303
|
_baseChildren;
|
|
2297
2304
|
constructor(id, name, schema, children) {
|
|
2298
2305
|
super(id, name, schema);
|
|
2299
|
-
this._children =
|
|
2306
|
+
this._children = chunkPJ5OFCLO_cjs.observable.map();
|
|
2300
2307
|
this._baseChildren = /* @__PURE__ */ new Map();
|
|
2301
2308
|
if (children) {
|
|
2302
2309
|
for (const child of children) {
|
|
@@ -2305,7 +2312,7 @@ var ObjectValueNode = class extends BaseValueNode {
|
|
|
2305
2312
|
}
|
|
2306
2313
|
}
|
|
2307
2314
|
this._baseChildren = new Map(this._children);
|
|
2308
|
-
|
|
2315
|
+
chunkPJ5OFCLO_cjs.makeObservable(this, {
|
|
2309
2316
|
_children: "observable",
|
|
2310
2317
|
_baseChildren: "observable",
|
|
2311
2318
|
value: "computed",
|
|
@@ -2399,7 +2406,7 @@ var ObjectValueNode = class extends BaseValueNode {
|
|
|
2399
2406
|
for (const child of this._children.values()) {
|
|
2400
2407
|
child.parent = null;
|
|
2401
2408
|
}
|
|
2402
|
-
this._children =
|
|
2409
|
+
this._children = chunkPJ5OFCLO_cjs.observable.map();
|
|
2403
2410
|
for (const [key, value] of this._baseChildren) {
|
|
2404
2411
|
this._children.set(key, value);
|
|
2405
2412
|
}
|
|
@@ -2613,7 +2620,7 @@ var IndexSegment = class {
|
|
|
2613
2620
|
};
|
|
2614
2621
|
|
|
2615
2622
|
// src/core/value-path/ValuePath.ts
|
|
2616
|
-
var ValuePathImpl = class _ValuePathImpl extends
|
|
2623
|
+
var ValuePathImpl = class _ValuePathImpl extends chunkPJ5OFCLO_cjs.AbstractBasePath {
|
|
2617
2624
|
asString() {
|
|
2618
2625
|
const parts = [];
|
|
2619
2626
|
for (const seg of this.segs) {
|
|
@@ -2718,7 +2725,7 @@ function parseValuePath(path) {
|
|
|
2718
2725
|
var ChangeTracker = class {
|
|
2719
2726
|
_changes = [];
|
|
2720
2727
|
constructor() {
|
|
2721
|
-
|
|
2728
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this);
|
|
2722
2729
|
}
|
|
2723
2730
|
get changes() {
|
|
2724
2731
|
return this._changes;
|
|
@@ -2884,7 +2891,7 @@ var ValueTree = class {
|
|
|
2884
2891
|
this.changeTracker = new ChangeTracker();
|
|
2885
2892
|
this._nodeChangeListener = (event) => this.handleNodeChange(event);
|
|
2886
2893
|
this.subscribe(this._root);
|
|
2887
|
-
|
|
2894
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
2888
2895
|
_root: false,
|
|
2889
2896
|
index: false,
|
|
2890
2897
|
_nodeChangeListener: false,
|
|
@@ -3138,12 +3145,16 @@ var ValueTree = class {
|
|
|
3138
3145
|
// src/model/table/row/RowModelImpl.ts
|
|
3139
3146
|
var UNSET_INDEX = -1;
|
|
3140
3147
|
var RowModelImpl = class {
|
|
3141
|
-
constructor(_rowId, _tree) {
|
|
3148
|
+
constructor(_rowId, _tree, _schema, _refSchemas) {
|
|
3142
3149
|
this._rowId = _rowId;
|
|
3143
3150
|
this._tree = _tree;
|
|
3144
|
-
|
|
3151
|
+
this._schema = _schema;
|
|
3152
|
+
this._refSchemas = _refSchemas;
|
|
3153
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
3145
3154
|
_rowId: false,
|
|
3146
3155
|
_tree: false,
|
|
3156
|
+
_schema: false,
|
|
3157
|
+
_refSchemas: false,
|
|
3147
3158
|
_tableModel: "observable.ref"
|
|
3148
3159
|
});
|
|
3149
3160
|
}
|
|
@@ -3157,6 +3168,9 @@ var RowModelImpl = class {
|
|
|
3157
3168
|
get tree() {
|
|
3158
3169
|
return this._tree;
|
|
3159
3170
|
}
|
|
3171
|
+
get root() {
|
|
3172
|
+
return this._tree.root;
|
|
3173
|
+
}
|
|
3160
3174
|
get index() {
|
|
3161
3175
|
if (!this._tableModel) {
|
|
3162
3176
|
return UNSET_INDEX;
|
|
@@ -3216,6 +3230,11 @@ var RowModelImpl = class {
|
|
|
3216
3230
|
revert() {
|
|
3217
3231
|
this._tree.revert();
|
|
3218
3232
|
}
|
|
3233
|
+
reset(data) {
|
|
3234
|
+
const value = data ?? generateDefaultValue(this._schema, { refSchemas: this._refSchemas });
|
|
3235
|
+
this._tree.setValue("", value);
|
|
3236
|
+
this._tree.commit();
|
|
3237
|
+
}
|
|
3219
3238
|
dispose() {
|
|
3220
3239
|
this._tree.dispose();
|
|
3221
3240
|
}
|
|
@@ -3233,7 +3252,7 @@ function createRowModel(options) {
|
|
|
3233
3252
|
const valueTree = new ValueTree(rootNode);
|
|
3234
3253
|
const formulaEngine = new FormulaEngine(valueTree);
|
|
3235
3254
|
valueTree.setFormulaEngine(formulaEngine);
|
|
3236
|
-
return new RowModelImpl(options.rowId, valueTree);
|
|
3255
|
+
return new RowModelImpl(options.rowId, valueTree, options.schema, options.refSchemas);
|
|
3237
3256
|
}
|
|
3238
3257
|
|
|
3239
3258
|
// src/model/table/TableModelImpl.ts
|
|
@@ -3252,13 +3271,13 @@ var TableModelImpl = class {
|
|
|
3252
3271
|
this._schema = createSchemaModel(options.schema, { refSchemas: options.refSchemas });
|
|
3253
3272
|
this._fkResolver = options.fkResolver;
|
|
3254
3273
|
this._refSchemas = options.refSchemas;
|
|
3255
|
-
this._rows =
|
|
3274
|
+
this._rows = chunkPJ5OFCLO_cjs.observable.array();
|
|
3256
3275
|
if (options.rows) {
|
|
3257
3276
|
for (const row of options.rows) {
|
|
3258
3277
|
this._rows.push(this.createRow(row.rowId, row.data));
|
|
3259
3278
|
}
|
|
3260
3279
|
}
|
|
3261
|
-
|
|
3280
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
3262
3281
|
_schema: false,
|
|
3263
3282
|
_rows: false,
|
|
3264
3283
|
_jsonSchema: false,
|
|
@@ -3389,13 +3408,13 @@ var ForeignKeyResolverImpl = class {
|
|
|
3389
3408
|
constructor(options) {
|
|
3390
3409
|
this.loader = options?.loader;
|
|
3391
3410
|
this._prefetchEnabled = options?.prefetch ?? false;
|
|
3392
|
-
this._schemaCache =
|
|
3393
|
-
this._tableCache =
|
|
3411
|
+
this._schemaCache = chunkPJ5OFCLO_cjs.observable.map();
|
|
3412
|
+
this._tableCache = chunkPJ5OFCLO_cjs.observable.map();
|
|
3394
3413
|
this._loadingTables = /* @__PURE__ */ new Set();
|
|
3395
3414
|
this._loadingRows = /* @__PURE__ */ new Map();
|
|
3396
3415
|
this._pendingTableLoads = /* @__PURE__ */ new Map();
|
|
3397
3416
|
this._pendingRowLoads = /* @__PURE__ */ new Map();
|
|
3398
|
-
|
|
3417
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
3399
3418
|
_schemaCache: false,
|
|
3400
3419
|
_tableCache: false,
|
|
3401
3420
|
_loadingTables: false,
|
|
@@ -3433,7 +3452,7 @@ var ForeignKeyResolverImpl = class {
|
|
|
3433
3452
|
if (this._disposed) {
|
|
3434
3453
|
return;
|
|
3435
3454
|
}
|
|
3436
|
-
|
|
3455
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3437
3456
|
this._schemaCache.set(tableId, schema);
|
|
3438
3457
|
});
|
|
3439
3458
|
}
|
|
@@ -3441,12 +3460,12 @@ var ForeignKeyResolverImpl = class {
|
|
|
3441
3460
|
if (this._disposed) {
|
|
3442
3461
|
return;
|
|
3443
3462
|
}
|
|
3444
|
-
const rowMap =
|
|
3463
|
+
const rowMap = chunkPJ5OFCLO_cjs.observable.map();
|
|
3445
3464
|
for (const row of rows) {
|
|
3446
3465
|
rowMap.set(row.rowId, row);
|
|
3447
3466
|
}
|
|
3448
3467
|
const cache = { schema, rows: rowMap };
|
|
3449
|
-
|
|
3468
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3450
3469
|
this._tableCache.set(tableId, cache);
|
|
3451
3470
|
this._schemaCache.set(tableId, schema);
|
|
3452
3471
|
});
|
|
@@ -3461,7 +3480,7 @@ var ForeignKeyResolverImpl = class {
|
|
|
3461
3480
|
const table = this._tableCache.get(tableId);
|
|
3462
3481
|
if (table) {
|
|
3463
3482
|
const rowData = { rowId, data };
|
|
3464
|
-
|
|
3483
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3465
3484
|
table.rows.set(rowId, rowData);
|
|
3466
3485
|
});
|
|
3467
3486
|
if (this._prefetchEnabled) {
|
|
@@ -3475,7 +3494,7 @@ var ForeignKeyResolverImpl = class {
|
|
|
3475
3494
|
}
|
|
3476
3495
|
const schema = this._schemaCache.get(oldTableId);
|
|
3477
3496
|
const tableCache = this._tableCache.get(oldTableId);
|
|
3478
|
-
|
|
3497
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3479
3498
|
if (schema) {
|
|
3480
3499
|
this._schemaCache.delete(oldTableId);
|
|
3481
3500
|
this._schemaCache.set(newTableId, schema);
|
|
@@ -3577,9 +3596,9 @@ var ForeignKeyResolverImpl = class {
|
|
|
3577
3596
|
}
|
|
3578
3597
|
ensureTableCache(tableId, schema) {
|
|
3579
3598
|
if (!this._tableCache.has(tableId)) {
|
|
3580
|
-
const rowMap =
|
|
3599
|
+
const rowMap = chunkPJ5OFCLO_cjs.observable.map();
|
|
3581
3600
|
const cache = { schema, rows: rowMap };
|
|
3582
|
-
|
|
3601
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3583
3602
|
this._tableCache.set(tableId, cache);
|
|
3584
3603
|
});
|
|
3585
3604
|
}
|
|
@@ -3679,7 +3698,7 @@ var DataModelImpl = class {
|
|
|
3679
3698
|
_fk;
|
|
3680
3699
|
_ownsFkResolver;
|
|
3681
3700
|
constructor(options) {
|
|
3682
|
-
this._tables =
|
|
3701
|
+
this._tables = chunkPJ5OFCLO_cjs.observable.map();
|
|
3683
3702
|
if (options?.fkResolver) {
|
|
3684
3703
|
this._fk = options.fkResolver;
|
|
3685
3704
|
this._ownsFkResolver = false;
|
|
@@ -3687,7 +3706,7 @@ var DataModelImpl = class {
|
|
|
3687
3706
|
this._fk = createForeignKeyResolver();
|
|
3688
3707
|
this._ownsFkResolver = true;
|
|
3689
3708
|
}
|
|
3690
|
-
|
|
3709
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
3691
3710
|
_tables: false,
|
|
3692
3711
|
_fk: false,
|
|
3693
3712
|
_ownsFkResolver: false
|
|
@@ -1199,6 +1199,9 @@ function arePrimitivesEqual(current, base, context) {
|
|
|
1199
1199
|
if (current.foreignKey() !== base.foreignKey()) {
|
|
1200
1200
|
return false;
|
|
1201
1201
|
}
|
|
1202
|
+
if (current.contentMediaType() !== base.contentMediaType()) {
|
|
1203
|
+
return false;
|
|
1204
|
+
}
|
|
1202
1205
|
const currentFormula = current.formula();
|
|
1203
1206
|
const baseFormula = base.formula();
|
|
1204
1207
|
if (currentFormula === void 0 && baseFormula === void 0) {
|