@revisium/schema-toolkit 0.21.4 → 0.21.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-MXEQ5CBK.js → chunk-2GZ3M3RV.js} +3 -0
- package/dist/{chunk-URMXJ6FH.cjs → chunk-DN2C3T5D.cjs} +70 -69
- package/dist/{chunk-T46TZYJL.cjs → chunk-PJ5OFCLO.cjs} +3 -0
- package/dist/{chunk-3MXYXTNF.js → chunk-RXPIMS7W.js} +2 -1
- package/dist/core/index.cjs +60 -60
- package/dist/core/index.js +1 -1
- package/dist/index.cjs +106 -106
- package/dist/index.js +2 -2
- package/dist/model/index.cjs +50 -50
- package/dist/model/index.js +2 -2
- package/package.json +1 -1
|
@@ -1197,6 +1197,9 @@ function arePrimitivesEqual(current, base, context) {
|
|
|
1197
1197
|
if (current.foreignKey() !== base.foreignKey()) {
|
|
1198
1198
|
return false;
|
|
1199
1199
|
}
|
|
1200
|
+
if (current.contentMediaType() !== base.contentMediaType()) {
|
|
1201
|
+
return false;
|
|
1202
|
+
}
|
|
1200
1203
|
const currentFormula = current.formula();
|
|
1201
1204
|
const baseFormula = base.formula();
|
|
1202
1205
|
if (currentFormula === void 0 && baseFormula === void 0) {
|
|
@@ -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",
|
|
@@ -1894,7 +1895,7 @@ var ArrayValueNode = class extends BaseValueNode {
|
|
|
1894
1895
|
for (const item of this._items) {
|
|
1895
1896
|
item.parent = null;
|
|
1896
1897
|
}
|
|
1897
|
-
this._items =
|
|
1898
|
+
this._items = chunkPJ5OFCLO_cjs.observable.array();
|
|
1898
1899
|
for (const baseItem of this._baseItems) {
|
|
1899
1900
|
this._items.push(baseItem);
|
|
1900
1901
|
}
|
|
@@ -1937,7 +1938,7 @@ var BasePrimitiveValueNode = class extends BaseValueNode {
|
|
|
1937
1938
|
this._baseValue = initialValue;
|
|
1938
1939
|
}
|
|
1939
1940
|
initObservable() {
|
|
1940
|
-
|
|
1941
|
+
chunkPJ5OFCLO_cjs.makeObservable(this, {
|
|
1941
1942
|
_value: "observable",
|
|
1942
1943
|
_baseValue: "observable",
|
|
1943
1944
|
_formulaWarning: "observable",
|
|
@@ -2296,7 +2297,7 @@ var ObjectValueNode = class extends BaseValueNode {
|
|
|
2296
2297
|
_baseChildren;
|
|
2297
2298
|
constructor(id, name, schema, children) {
|
|
2298
2299
|
super(id, name, schema);
|
|
2299
|
-
this._children =
|
|
2300
|
+
this._children = chunkPJ5OFCLO_cjs.observable.map();
|
|
2300
2301
|
this._baseChildren = /* @__PURE__ */ new Map();
|
|
2301
2302
|
if (children) {
|
|
2302
2303
|
for (const child of children) {
|
|
@@ -2305,7 +2306,7 @@ var ObjectValueNode = class extends BaseValueNode {
|
|
|
2305
2306
|
}
|
|
2306
2307
|
}
|
|
2307
2308
|
this._baseChildren = new Map(this._children);
|
|
2308
|
-
|
|
2309
|
+
chunkPJ5OFCLO_cjs.makeObservable(this, {
|
|
2309
2310
|
_children: "observable",
|
|
2310
2311
|
_baseChildren: "observable",
|
|
2311
2312
|
value: "computed",
|
|
@@ -2399,7 +2400,7 @@ var ObjectValueNode = class extends BaseValueNode {
|
|
|
2399
2400
|
for (const child of this._children.values()) {
|
|
2400
2401
|
child.parent = null;
|
|
2401
2402
|
}
|
|
2402
|
-
this._children =
|
|
2403
|
+
this._children = chunkPJ5OFCLO_cjs.observable.map();
|
|
2403
2404
|
for (const [key, value] of this._baseChildren) {
|
|
2404
2405
|
this._children.set(key, value);
|
|
2405
2406
|
}
|
|
@@ -2613,7 +2614,7 @@ var IndexSegment = class {
|
|
|
2613
2614
|
};
|
|
2614
2615
|
|
|
2615
2616
|
// src/core/value-path/ValuePath.ts
|
|
2616
|
-
var ValuePathImpl = class _ValuePathImpl extends
|
|
2617
|
+
var ValuePathImpl = class _ValuePathImpl extends chunkPJ5OFCLO_cjs.AbstractBasePath {
|
|
2617
2618
|
asString() {
|
|
2618
2619
|
const parts = [];
|
|
2619
2620
|
for (const seg of this.segs) {
|
|
@@ -2718,7 +2719,7 @@ function parseValuePath(path) {
|
|
|
2718
2719
|
var ChangeTracker = class {
|
|
2719
2720
|
_changes = [];
|
|
2720
2721
|
constructor() {
|
|
2721
|
-
|
|
2722
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this);
|
|
2722
2723
|
}
|
|
2723
2724
|
get changes() {
|
|
2724
2725
|
return this._changes;
|
|
@@ -2884,7 +2885,7 @@ var ValueTree = class {
|
|
|
2884
2885
|
this.changeTracker = new ChangeTracker();
|
|
2885
2886
|
this._nodeChangeListener = (event) => this.handleNodeChange(event);
|
|
2886
2887
|
this.subscribe(this._root);
|
|
2887
|
-
|
|
2888
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
2888
2889
|
_root: false,
|
|
2889
2890
|
index: false,
|
|
2890
2891
|
_nodeChangeListener: false,
|
|
@@ -3141,7 +3142,7 @@ var RowModelImpl = class {
|
|
|
3141
3142
|
constructor(_rowId, _tree) {
|
|
3142
3143
|
this._rowId = _rowId;
|
|
3143
3144
|
this._tree = _tree;
|
|
3144
|
-
|
|
3145
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
3145
3146
|
_rowId: false,
|
|
3146
3147
|
_tree: false,
|
|
3147
3148
|
_tableModel: "observable.ref"
|
|
@@ -3252,13 +3253,13 @@ var TableModelImpl = class {
|
|
|
3252
3253
|
this._schema = createSchemaModel(options.schema, { refSchemas: options.refSchemas });
|
|
3253
3254
|
this._fkResolver = options.fkResolver;
|
|
3254
3255
|
this._refSchemas = options.refSchemas;
|
|
3255
|
-
this._rows =
|
|
3256
|
+
this._rows = chunkPJ5OFCLO_cjs.observable.array();
|
|
3256
3257
|
if (options.rows) {
|
|
3257
3258
|
for (const row of options.rows) {
|
|
3258
3259
|
this._rows.push(this.createRow(row.rowId, row.data));
|
|
3259
3260
|
}
|
|
3260
3261
|
}
|
|
3261
|
-
|
|
3262
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
3262
3263
|
_schema: false,
|
|
3263
3264
|
_rows: false,
|
|
3264
3265
|
_jsonSchema: false,
|
|
@@ -3389,13 +3390,13 @@ var ForeignKeyResolverImpl = class {
|
|
|
3389
3390
|
constructor(options) {
|
|
3390
3391
|
this.loader = options?.loader;
|
|
3391
3392
|
this._prefetchEnabled = options?.prefetch ?? false;
|
|
3392
|
-
this._schemaCache =
|
|
3393
|
-
this._tableCache =
|
|
3393
|
+
this._schemaCache = chunkPJ5OFCLO_cjs.observable.map();
|
|
3394
|
+
this._tableCache = chunkPJ5OFCLO_cjs.observable.map();
|
|
3394
3395
|
this._loadingTables = /* @__PURE__ */ new Set();
|
|
3395
3396
|
this._loadingRows = /* @__PURE__ */ new Map();
|
|
3396
3397
|
this._pendingTableLoads = /* @__PURE__ */ new Map();
|
|
3397
3398
|
this._pendingRowLoads = /* @__PURE__ */ new Map();
|
|
3398
|
-
|
|
3399
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
3399
3400
|
_schemaCache: false,
|
|
3400
3401
|
_tableCache: false,
|
|
3401
3402
|
_loadingTables: false,
|
|
@@ -3433,7 +3434,7 @@ var ForeignKeyResolverImpl = class {
|
|
|
3433
3434
|
if (this._disposed) {
|
|
3434
3435
|
return;
|
|
3435
3436
|
}
|
|
3436
|
-
|
|
3437
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3437
3438
|
this._schemaCache.set(tableId, schema);
|
|
3438
3439
|
});
|
|
3439
3440
|
}
|
|
@@ -3441,12 +3442,12 @@ var ForeignKeyResolverImpl = class {
|
|
|
3441
3442
|
if (this._disposed) {
|
|
3442
3443
|
return;
|
|
3443
3444
|
}
|
|
3444
|
-
const rowMap =
|
|
3445
|
+
const rowMap = chunkPJ5OFCLO_cjs.observable.map();
|
|
3445
3446
|
for (const row of rows) {
|
|
3446
3447
|
rowMap.set(row.rowId, row);
|
|
3447
3448
|
}
|
|
3448
3449
|
const cache = { schema, rows: rowMap };
|
|
3449
|
-
|
|
3450
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3450
3451
|
this._tableCache.set(tableId, cache);
|
|
3451
3452
|
this._schemaCache.set(tableId, schema);
|
|
3452
3453
|
});
|
|
@@ -3461,7 +3462,7 @@ var ForeignKeyResolverImpl = class {
|
|
|
3461
3462
|
const table = this._tableCache.get(tableId);
|
|
3462
3463
|
if (table) {
|
|
3463
3464
|
const rowData = { rowId, data };
|
|
3464
|
-
|
|
3465
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3465
3466
|
table.rows.set(rowId, rowData);
|
|
3466
3467
|
});
|
|
3467
3468
|
if (this._prefetchEnabled) {
|
|
@@ -3475,7 +3476,7 @@ var ForeignKeyResolverImpl = class {
|
|
|
3475
3476
|
}
|
|
3476
3477
|
const schema = this._schemaCache.get(oldTableId);
|
|
3477
3478
|
const tableCache = this._tableCache.get(oldTableId);
|
|
3478
|
-
|
|
3479
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3479
3480
|
if (schema) {
|
|
3480
3481
|
this._schemaCache.delete(oldTableId);
|
|
3481
3482
|
this._schemaCache.set(newTableId, schema);
|
|
@@ -3577,9 +3578,9 @@ var ForeignKeyResolverImpl = class {
|
|
|
3577
3578
|
}
|
|
3578
3579
|
ensureTableCache(tableId, schema) {
|
|
3579
3580
|
if (!this._tableCache.has(tableId)) {
|
|
3580
|
-
const rowMap =
|
|
3581
|
+
const rowMap = chunkPJ5OFCLO_cjs.observable.map();
|
|
3581
3582
|
const cache = { schema, rows: rowMap };
|
|
3582
|
-
|
|
3583
|
+
chunkPJ5OFCLO_cjs.runInAction(() => {
|
|
3583
3584
|
this._tableCache.set(tableId, cache);
|
|
3584
3585
|
});
|
|
3585
3586
|
}
|
|
@@ -3679,7 +3680,7 @@ var DataModelImpl = class {
|
|
|
3679
3680
|
_fk;
|
|
3680
3681
|
_ownsFkResolver;
|
|
3681
3682
|
constructor(options) {
|
|
3682
|
-
this._tables =
|
|
3683
|
+
this._tables = chunkPJ5OFCLO_cjs.observable.map();
|
|
3683
3684
|
if (options?.fkResolver) {
|
|
3684
3685
|
this._fk = options.fkResolver;
|
|
3685
3686
|
this._ownsFkResolver = false;
|
|
@@ -3687,7 +3688,7 @@ var DataModelImpl = class {
|
|
|
3687
3688
|
this._fk = createForeignKeyResolver();
|
|
3688
3689
|
this._ownsFkResolver = true;
|
|
3689
3690
|
}
|
|
3690
|
-
|
|
3691
|
+
chunkPJ5OFCLO_cjs.makeAutoObservable(this, {
|
|
3691
3692
|
_tables: false,
|
|
3692
3693
|
_fk: false,
|
|
3693
3694
|
_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) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AbstractBasePath, EMPTY_PATH, FormulaError, ResolvedDependency, FormulaSerializer, createRefNode, createObjectNode, createArrayNode, createStringNode, createNumberNode, createBooleanNode, observable, makeObservable, makeAutoObservable, runInAction, PatchBuilder, SchemaSerializer, createSchemaTree, NULL_NODE, validateSchema, validateFormulas, reaction } from './chunk-
|
|
1
|
+
import { AbstractBasePath, EMPTY_PATH, FormulaError, ResolvedDependency, FormulaSerializer, createRefNode, createObjectNode, createArrayNode, createStringNode, createNumberNode, createBooleanNode, observable, makeObservable, makeAutoObservable, runInAction, PatchBuilder, SchemaSerializer, createSchemaTree, NULL_NODE, validateSchema, validateFormulas, reaction } from './chunk-2GZ3M3RV.js';
|
|
2
2
|
import { obj, ref } from './chunk-IZMBM36H.js';
|
|
3
3
|
import { nanoid } from 'nanoid';
|
|
4
4
|
import { parseFormula, parseExpression, evaluateWithContext } from '@revisium/formula';
|
|
@@ -397,6 +397,7 @@ var SchemaParser = class {
|
|
|
397
397
|
return createStringNode(nodeId, name, {
|
|
398
398
|
defaultValue: schema.default,
|
|
399
399
|
foreignKey: schema.foreignKey,
|
|
400
|
+
contentMediaType: schema.contentMediaType,
|
|
400
401
|
metadata: this.extractMetadata(schema),
|
|
401
402
|
ref: ref2
|
|
402
403
|
});
|