@_linked/core 2.11.1 → 2.12.0-next.20260706124424
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/CHANGELOG.md +39 -0
- package/README.md +3 -3
- package/lib/cjs/expressions/Expr.d.ts +22 -51
- package/lib/cjs/expressions/Expr.js +24 -176
- package/lib/cjs/expressions/Expr.js.map +1 -1
- package/lib/cjs/expressions/ExpressionMethods.d.ts +4 -0
- package/lib/cjs/expressions/ExpressionNode.d.ts +4 -0
- package/lib/cjs/expressions/ExpressionNode.js +13 -0
- package/lib/cjs/expressions/ExpressionNode.js.map +1 -1
- package/lib/cjs/index.d.ts +2 -2
- package/lib/cjs/index.js +6 -138
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces/ICoreIterable.d.ts +1 -1
- package/lib/cjs/package.d.ts +2 -2
- package/lib/cjs/queries/ContextRef.d.ts +15 -4
- package/lib/cjs/queries/ContextRef.js +15 -4
- package/lib/cjs/queries/ContextRef.js.map +1 -1
- package/lib/cjs/queries/CreateBuilder.d.ts +3 -5
- package/lib/cjs/queries/CreateBuilder.js +4 -16
- package/lib/cjs/queries/CreateBuilder.js.map +1 -1
- package/lib/cjs/queries/DeleteBuilder.d.ts +3 -5
- package/lib/cjs/queries/DeleteBuilder.js +8 -20
- package/lib/cjs/queries/DeleteBuilder.js.map +1 -1
- package/lib/cjs/queries/DslJsonExpression.d.ts +8 -8
- package/lib/cjs/queries/DslJsonExpression.js +84 -26
- package/lib/cjs/queries/DslJsonExpression.js.map +1 -1
- package/lib/cjs/queries/FieldSet.d.ts +43 -14
- package/lib/cjs/queries/FieldSet.js +142 -77
- package/lib/cjs/queries/FieldSet.js.map +1 -1
- package/lib/cjs/queries/IRCanonicalize.d.ts +5 -9
- package/lib/cjs/queries/IRCanonicalize.js +7 -23
- package/lib/cjs/queries/IRCanonicalize.js.map +1 -1
- package/lib/cjs/queries/IRDesugar.d.ts +2 -1
- package/lib/cjs/queries/IRDesugar.js +1 -1
- package/lib/cjs/queries/IRDesugar.js.map +1 -1
- package/lib/cjs/queries/IRLower.js +7 -7
- package/lib/cjs/queries/IRLower.js.map +1 -1
- package/lib/cjs/queries/IntermediateRepresentation.d.ts +16 -2
- package/lib/cjs/queries/MutationQuery.d.ts +18 -1
- package/lib/cjs/queries/MutationQuery.js +83 -3
- package/lib/cjs/queries/MutationQuery.js.map +1 -1
- package/lib/cjs/queries/MutationSerialization.d.ts +11 -11
- package/lib/cjs/queries/MutationSerialization.js +51 -31
- package/lib/cjs/queries/MutationSerialization.js.map +1 -1
- package/lib/cjs/queries/MutationThenable.d.ts +18 -0
- package/lib/cjs/queries/MutationThenable.js +32 -0
- package/lib/cjs/queries/MutationThenable.js.map +1 -0
- package/lib/cjs/queries/QueryBuilder.d.ts +1 -1
- package/lib/cjs/queries/QueryBuilder.js +3 -3
- package/lib/cjs/queries/QueryBuilder.js.map +1 -1
- package/lib/cjs/queries/QueryBuilderSerialization.js +3 -4
- package/lib/cjs/queries/QueryBuilderSerialization.js.map +1 -1
- package/lib/cjs/queries/QueryContext.d.ts +1 -1
- package/lib/cjs/queries/QueryContext.js +7 -5
- package/lib/cjs/queries/QueryContext.js.map +1 -1
- package/lib/cjs/queries/QueryFactory.d.ts +0 -7
- package/lib/cjs/queries/QueryFactory.js +1 -20
- package/lib/cjs/queries/QueryFactory.js.map +1 -1
- package/lib/cjs/queries/SelectQuery.d.ts +19 -41
- package/lib/cjs/queries/SelectQuery.js +69 -118
- package/lib/cjs/queries/SelectQuery.js.map +1 -1
- package/lib/cjs/queries/UpdateBuilder.d.ts +3 -5
- package/lib/cjs/queries/UpdateBuilder.js +5 -17
- package/lib/cjs/queries/UpdateBuilder.js.map +1 -1
- package/lib/cjs/queries/lower.js +3 -4
- package/lib/cjs/queries/lower.js.map +1 -1
- package/lib/cjs/queries/lowerMutationJSON.js +39 -23
- package/lib/cjs/queries/lowerMutationJSON.js.map +1 -1
- package/lib/cjs/shapes/List.js +2 -9
- package/lib/cjs/shapes/List.js.map +1 -1
- package/lib/cjs/shapes/PathNode.js +5 -18
- package/lib/cjs/shapes/PathNode.js.map +1 -1
- package/lib/cjs/shapes/SHACL.d.ts +10 -0
- package/lib/cjs/shapes/SHACL.js +41 -0
- package/lib/cjs/shapes/SHACL.js.map +1 -1
- package/lib/cjs/shapes/Shape.d.ts +1 -1
- package/lib/cjs/shapes/Shape.js.map +1 -1
- package/lib/cjs/shapes/serializePathToNodeData.js +16 -0
- package/lib/cjs/shapes/serializePathToNodeData.js.map +1 -1
- package/lib/cjs/shapes/syncShapes.js +15 -0
- package/lib/cjs/shapes/syncShapes.js.map +1 -1
- package/lib/cjs/sparql/SparqlAlgebra.d.ts +8 -1
- package/lib/cjs/sparql/algebraToString.js +57 -11
- package/lib/cjs/sparql/algebraToString.js.map +1 -1
- package/lib/cjs/sparql/irToAlgebra.js +89 -31
- package/lib/cjs/sparql/irToAlgebra.js.map +1 -1
- package/lib/cjs/sparql/resultMapping.js +0 -11
- package/lib/cjs/sparql/resultMapping.js.map +1 -1
- package/lib/cjs/sparql/sparqlUtils.d.ts +21 -0
- package/lib/cjs/sparql/sparqlUtils.js +65 -0
- package/lib/cjs/sparql/sparqlUtils.js.map +1 -1
- package/lib/cjs/utils/LinkedStorage.d.ts +1 -2
- package/lib/cjs/utils/LinkedStorage.js +1 -2
- package/lib/cjs/utils/LinkedStorage.js.map +1 -1
- package/lib/cjs/utils/Package.js +11 -4
- package/lib/cjs/utils/Package.js.map +1 -1
- package/lib/cjs/utils/Prefix.d.ts +4 -5
- package/lib/cjs/utils/Prefix.js +13 -7
- package/lib/cjs/utils/Prefix.js.map +1 -1
- package/lib/cjs/utils/ShapeClass.d.ts +0 -11
- package/lib/cjs/utils/ShapeClass.js +0 -83
- package/lib/cjs/utils/ShapeClass.js.map +1 -1
- package/lib/cjs/utils/cached.d.ts +3 -0
- package/lib/cjs/utils/cached.js +26 -16
- package/lib/cjs/utils/cached.js.map +1 -1
- package/lib/cjs/utils/loadStores.js +4 -0
- package/lib/cjs/utils/loadStores.js.map +1 -1
- package/lib/esm/expressions/Expr.d.ts +22 -51
- package/lib/esm/expressions/Expr.js +24 -176
- package/lib/esm/expressions/Expr.js.map +1 -1
- package/lib/esm/expressions/ExpressionMethods.d.ts +4 -0
- package/lib/esm/expressions/ExpressionNode.d.ts +4 -0
- package/lib/esm/expressions/ExpressionNode.js +13 -0
- package/lib/esm/expressions/ExpressionNode.js.map +1 -1
- package/lib/esm/index.d.ts +2 -2
- package/lib/esm/index.js +3 -103
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interfaces/ICoreIterable.d.ts +1 -1
- package/lib/esm/package.d.ts +2 -2
- package/lib/esm/queries/ContextRef.d.ts +15 -4
- package/lib/esm/queries/ContextRef.js +15 -4
- package/lib/esm/queries/ContextRef.js.map +1 -1
- package/lib/esm/queries/CreateBuilder.d.ts +3 -5
- package/lib/esm/queries/CreateBuilder.js +4 -16
- package/lib/esm/queries/CreateBuilder.js.map +1 -1
- package/lib/esm/queries/DeleteBuilder.d.ts +3 -5
- package/lib/esm/queries/DeleteBuilder.js +8 -20
- package/lib/esm/queries/DeleteBuilder.js.map +1 -1
- package/lib/esm/queries/DslJsonExpression.d.ts +8 -8
- package/lib/esm/queries/DslJsonExpression.js +84 -26
- package/lib/esm/queries/DslJsonExpression.js.map +1 -1
- package/lib/esm/queries/FieldSet.d.ts +43 -14
- package/lib/esm/queries/FieldSet.js +142 -77
- package/lib/esm/queries/FieldSet.js.map +1 -1
- package/lib/esm/queries/IRCanonicalize.d.ts +5 -9
- package/lib/esm/queries/IRCanonicalize.js +6 -21
- package/lib/esm/queries/IRCanonicalize.js.map +1 -1
- package/lib/esm/queries/IRDesugar.d.ts +2 -1
- package/lib/esm/queries/IRDesugar.js +1 -1
- package/lib/esm/queries/IRDesugar.js.map +1 -1
- package/lib/esm/queries/IRLower.js +7 -7
- package/lib/esm/queries/IRLower.js.map +1 -1
- package/lib/esm/queries/IntermediateRepresentation.d.ts +16 -2
- package/lib/esm/queries/MutationQuery.d.ts +18 -1
- package/lib/esm/queries/MutationQuery.js +83 -3
- package/lib/esm/queries/MutationQuery.js.map +1 -1
- package/lib/esm/queries/MutationSerialization.d.ts +11 -11
- package/lib/esm/queries/MutationSerialization.js +51 -31
- package/lib/esm/queries/MutationSerialization.js.map +1 -1
- package/lib/esm/queries/MutationThenable.d.ts +18 -0
- package/lib/esm/queries/MutationThenable.js +28 -0
- package/lib/esm/queries/MutationThenable.js.map +1 -0
- package/lib/esm/queries/QueryBuilder.d.ts +1 -1
- package/lib/esm/queries/QueryBuilder.js +3 -3
- package/lib/esm/queries/QueryBuilder.js.map +1 -1
- package/lib/esm/queries/QueryBuilderSerialization.js +3 -4
- package/lib/esm/queries/QueryBuilderSerialization.js.map +1 -1
- package/lib/esm/queries/QueryContext.d.ts +1 -1
- package/lib/esm/queries/QueryContext.js +7 -5
- package/lib/esm/queries/QueryContext.js.map +1 -1
- package/lib/esm/queries/QueryFactory.d.ts +0 -7
- package/lib/esm/queries/QueryFactory.js +1 -19
- package/lib/esm/queries/QueryFactory.js.map +1 -1
- package/lib/esm/queries/SelectQuery.d.ts +19 -41
- package/lib/esm/queries/SelectQuery.js +69 -118
- package/lib/esm/queries/SelectQuery.js.map +1 -1
- package/lib/esm/queries/UpdateBuilder.d.ts +3 -5
- package/lib/esm/queries/UpdateBuilder.js +5 -17
- package/lib/esm/queries/UpdateBuilder.js.map +1 -1
- package/lib/esm/queries/lower.js +3 -4
- package/lib/esm/queries/lower.js.map +1 -1
- package/lib/esm/queries/lowerMutationJSON.js +39 -23
- package/lib/esm/queries/lowerMutationJSON.js.map +1 -1
- package/lib/esm/shapes/List.js +2 -9
- package/lib/esm/shapes/List.js.map +1 -1
- package/lib/esm/shapes/PathNode.js +5 -18
- package/lib/esm/shapes/PathNode.js.map +1 -1
- package/lib/esm/shapes/SHACL.d.ts +10 -0
- package/lib/esm/shapes/SHACL.js +41 -0
- package/lib/esm/shapes/SHACL.js.map +1 -1
- package/lib/esm/shapes/Shape.d.ts +1 -1
- package/lib/esm/shapes/Shape.js.map +1 -1
- package/lib/esm/shapes/serializePathToNodeData.js +16 -0
- package/lib/esm/shapes/serializePathToNodeData.js.map +1 -1
- package/lib/esm/shapes/syncShapes.js +15 -0
- package/lib/esm/shapes/syncShapes.js.map +1 -1
- package/lib/esm/sparql/SparqlAlgebra.d.ts +8 -1
- package/lib/esm/sparql/algebraToString.js +58 -12
- package/lib/esm/sparql/algebraToString.js.map +1 -1
- package/lib/esm/sparql/irToAlgebra.js +89 -31
- package/lib/esm/sparql/irToAlgebra.js.map +1 -1
- package/lib/esm/sparql/resultMapping.js +0 -11
- package/lib/esm/sparql/resultMapping.js.map +1 -1
- package/lib/esm/sparql/sparqlUtils.d.ts +21 -0
- package/lib/esm/sparql/sparqlUtils.js +62 -0
- package/lib/esm/sparql/sparqlUtils.js.map +1 -1
- package/lib/esm/utils/LinkedStorage.d.ts +1 -2
- package/lib/esm/utils/LinkedStorage.js +1 -2
- package/lib/esm/utils/LinkedStorage.js.map +1 -1
- package/lib/esm/utils/Package.js +11 -4
- package/lib/esm/utils/Package.js.map +1 -1
- package/lib/esm/utils/Prefix.d.ts +4 -5
- package/lib/esm/utils/Prefix.js +13 -7
- package/lib/esm/utils/Prefix.js.map +1 -1
- package/lib/esm/utils/ShapeClass.d.ts +0 -11
- package/lib/esm/utils/ShapeClass.js +0 -79
- package/lib/esm/utils/ShapeClass.js.map +1 -1
- package/lib/esm/utils/cached.d.ts +3 -0
- package/lib/esm/utils/cached.js +26 -16
- package/lib/esm/utils/cached.js.map +1 -1
- package/lib/esm/utils/loadStores.js +4 -0
- package/lib/esm/utils/loadStores.js.map +1 -1
- package/package.json +9 -3
- package/lib/cjs/collections/CoreMap.d.ts +0 -37
- package/lib/cjs/collections/CoreMap.js +0 -101
- package/lib/cjs/collections/CoreMap.js.map +0 -1
- package/lib/cjs/paths/serializePathToSHACL.d.ts +0 -22
- package/lib/cjs/paths/serializePathToSHACL.js +0 -126
- package/lib/cjs/paths/serializePathToSHACL.js.map +0 -1
- package/lib/cjs/queries/WhereCondition.d.ts +0 -18
- package/lib/cjs/queries/WhereCondition.js +0 -3
- package/lib/cjs/queries/WhereCondition.js.map +0 -1
- package/lib/cjs/test-helpers/FusekiStore.d.ts +0 -29
- package/lib/cjs/test-helpers/FusekiStore.js +0 -85
- package/lib/cjs/test-helpers/FusekiStore.js.map +0 -1
- package/lib/cjs/test-helpers/fuseki-test-store.d.ts +0 -46
- package/lib/cjs/test-helpers/fuseki-test-store.js +0 -244
- package/lib/cjs/test-helpers/fuseki-test-store.js.map +0 -1
- package/lib/cjs/test-helpers/query-capture-store.d.ts +0 -11
- package/lib/cjs/test-helpers/query-capture-store.js +0 -109
- package/lib/cjs/test-helpers/query-capture-store.js.map +0 -1
- package/lib/cjs/test-helpers/query-fixtures.d.ts +0 -819
- package/lib/cjs/test-helpers/query-fixtures.js +0 -605
- package/lib/cjs/test-helpers/query-fixtures.js.map +0 -1
- package/lib/cjs/test-helpers/test-utils.d.ts +0 -18
- package/lib/cjs/test-helpers/test-utils.js +0 -47
- package/lib/cjs/test-helpers/test-utils.js.map +0 -1
- package/lib/cjs/utils/Types.d.ts +0 -11
- package/lib/cjs/utils/Types.js +0 -3
- package/lib/cjs/utils/Types.js.map +0 -1
- package/lib/esm/collections/CoreMap.d.ts +0 -37
- package/lib/esm/collections/CoreMap.js +0 -97
- package/lib/esm/collections/CoreMap.js.map +0 -1
- package/lib/esm/paths/serializePathToSHACL.d.ts +0 -22
- package/lib/esm/paths/serializePathToSHACL.js +0 -122
- package/lib/esm/paths/serializePathToSHACL.js.map +0 -1
- package/lib/esm/queries/WhereCondition.d.ts +0 -18
- package/lib/esm/queries/WhereCondition.js +0 -2
- package/lib/esm/queries/WhereCondition.js.map +0 -1
- package/lib/esm/test-helpers/FusekiStore.d.ts +0 -29
- package/lib/esm/test-helpers/FusekiStore.js +0 -81
- package/lib/esm/test-helpers/FusekiStore.js.map +0 -1
- package/lib/esm/test-helpers/fuseki-test-store.d.ts +0 -46
- package/lib/esm/test-helpers/fuseki-test-store.js +0 -232
- package/lib/esm/test-helpers/fuseki-test-store.js.map +0 -1
- package/lib/esm/test-helpers/query-capture-store.d.ts +0 -11
- package/lib/esm/test-helpers/query-capture-store.js +0 -71
- package/lib/esm/test-helpers/query-capture-store.js.map +0 -1
- package/lib/esm/test-helpers/query-fixtures.d.ts +0 -819
- package/lib/esm/test-helpers/query-fixtures.js +0 -602
- package/lib/esm/test-helpers/query-fixtures.js.map +0 -1
- package/lib/esm/test-helpers/test-utils.d.ts +0 -18
- package/lib/esm/test-helpers/test-utils.js +0 -41
- package/lib/esm/test-helpers/test-utils.js.map +0 -1
- package/lib/esm/utils/Types.d.ts +0 -11
- package/lib/esm/utils/Types.js +0 -2
- package/lib/esm/utils/Types.js.map +0 -1
|
@@ -79,7 +79,21 @@ export type IRMinusPattern = {
|
|
|
79
79
|
pattern: IRGraphPattern;
|
|
80
80
|
filter?: IRExpression;
|
|
81
81
|
};
|
|
82
|
-
export type IRExpression = IRLiteralExpression | IRReferenceExpression | IRAliasExpression | IRPropertyExpression | IRContextPropertyExpression | IRBinaryExpression | IRLogicalExpression | IRNotExpression | IRFunctionExpression | IRAggregateExpression | IRExistsExpression;
|
|
82
|
+
export type IRExpression = IRLiteralExpression | IRReferenceExpression | IRAliasExpression | IRPropertyExpression | IRContextPropertyExpression | IRBinaryExpression | IRLogicalExpression | IRNotExpression | IRFunctionExpression | IRAggregateExpression | IRExistsExpression | IRInExpression;
|
|
83
|
+
/**
|
|
84
|
+
* Membership test — `value IN (…)` / `NOT IN (…)`.
|
|
85
|
+
* `source` is forward-shaped: today only the explicit-`list` arm exists (Rung 1);
|
|
86
|
+
* a `{query}` arm (Rung 2 — membership against a subquery, lowering to EXISTS)
|
|
87
|
+
* can be added without changing the node's identity or the `oneOf`/`notOneOf` DSL.
|
|
88
|
+
*/
|
|
89
|
+
export type IRInExpression = {
|
|
90
|
+
kind: 'in_expr';
|
|
91
|
+
negated: boolean;
|
|
92
|
+
value: IRExpression;
|
|
93
|
+
source: {
|
|
94
|
+
list: IRExpression[];
|
|
95
|
+
};
|
|
96
|
+
};
|
|
83
97
|
export type IRLiteralExpression = {
|
|
84
98
|
kind: 'literal_expr';
|
|
85
99
|
value: IRValue;
|
|
@@ -89,7 +103,7 @@ export type IRReferenceExpression = {
|
|
|
89
103
|
/** The referenced node IRI. Optional only while a `contextName` is unresolved. */
|
|
90
104
|
value?: string;
|
|
91
105
|
/**
|
|
92
|
-
* A query-context reference (`{
|
|
106
|
+
* A query-context reference (`{@ctx}` on the wire). When set, `value` is filled
|
|
93
107
|
* by `lower()` from the live context map — resolved or thrown there, never baked
|
|
94
108
|
* at build time. Absent for a plain node reference.
|
|
95
109
|
*/
|
|
@@ -14,13 +14,30 @@ export declare class MutationQueryFactory extends QueryFactory {
|
|
|
14
14
|
/** Normalize delete ids (strings / `{id}`) to `NodeReferenceValue[]` (IR-free). */
|
|
15
15
|
normalizeNodeRefs(ids: NodeId[] | NodeId): NodeReferenceValue[];
|
|
16
16
|
protected convertUpdateObject(obj: any, shape: NodeShape, allowTopLevelId?: boolean): NodeDescriptionValue;
|
|
17
|
-
protected isSetModification(obj: any, shape: any):
|
|
17
|
+
protected isSetModification(obj: any, shape: any): boolean;
|
|
18
18
|
protected convertSetModification(obj: SetModification<any>, shape: PropertyShape): SetModificationValue;
|
|
19
19
|
protected convertSetRemoveValue(obj: UpdatePartial | UpdatePartial[], shape: PropertyShape): NodeReferenceValue[];
|
|
20
20
|
protected convertSetAddValue(obj: UpdatePartial | UpdatePartial[], shape: PropertyShape): UpdatePartial[];
|
|
21
21
|
protected convertSingleRemoveValue(value: any, shape: PropertyShape): NodeReferenceValue;
|
|
22
22
|
protected convertNodeDescription(inputObj: Record<string, unknown>, shape: NodeShape): NodeDescriptionValue;
|
|
23
23
|
protected createNodePropertyValue(value: any, propShape: PropertyShape): UpdateNodePropertyValue;
|
|
24
|
+
/**
|
|
25
|
+
* Lightweight structural validation of a single property value against its
|
|
26
|
+
* PropertyShape — cardinality (`minCount`/`maxCount`) and node-kind (literal
|
|
27
|
+
* vs relation). This is *structural* only (from metadata already in hand); it
|
|
28
|
+
* does not duplicate datatype/deep validation, which the store performs. It
|
|
29
|
+
* fails fast at the call site with a clear message instead of surfacing a
|
|
30
|
+
* confusing store error later.
|
|
31
|
+
*
|
|
32
|
+
* Skips values whose final shape isn't known here: computed expressions,
|
|
33
|
+
* context refs, `unset` (null/undefined), and set-modifications (`{add,remove}`
|
|
34
|
+
* — the resulting count depends on the node's current state).
|
|
35
|
+
*/
|
|
36
|
+
protected validateAgainstShape(value: any, propShape: PropertyShape): void;
|
|
37
|
+
/** True when the property clearly accepts only literal values. */
|
|
38
|
+
private expectsLiteral;
|
|
39
|
+
/** True when the property clearly accepts only nodes (IRIs/blank nodes). */
|
|
40
|
+
private expectsNode;
|
|
24
41
|
protected convertUpdateValue(value: any, propShape?: PropertyShape, allowArrays?: boolean): PropUpdateValue;
|
|
25
42
|
protected isNodeReference(obj: any): obj is NodeReferenceValue;
|
|
26
43
|
protected convertNodeReferences(input: NodeId[] | NodeId): NodeReferenceValue[];
|
|
@@ -3,6 +3,7 @@ import { getShapeClass } from '../utils/ShapeClass.js';
|
|
|
3
3
|
import { isExpressionNode } from '../expressions/ExpressionNode.js';
|
|
4
4
|
import { createProxiedPathBuilder } from './ProxiedPathBuilder.js';
|
|
5
5
|
import { asContextRef } from './QueryContext.js';
|
|
6
|
+
import { shacl } from '../ontologies/shacl.js';
|
|
6
7
|
export class MutationQueryFactory extends QueryFactory {
|
|
7
8
|
/**
|
|
8
9
|
* Normalize raw create/update data into a {@link NodeDescriptionValue} — the
|
|
@@ -45,7 +46,11 @@ export class MutationQueryFactory extends QueryFactory {
|
|
|
45
46
|
let hasRemove = obj.remove;
|
|
46
47
|
let numKeysExpected = (hasAdd ? 1 : 0) + (hasRemove ? 1 : 0);
|
|
47
48
|
let numKeys = Object.getOwnPropertyNames(obj).length;
|
|
48
|
-
|
|
49
|
+
// A set modification is ONLY add/remove keys. Mixing them with other keys
|
|
50
|
+
// (e.g. {add:[…], name:'x'}) must NOT be silently treated as a set mod —
|
|
51
|
+
// that dropped the sibling fields. Require an exact key-count match for
|
|
52
|
+
// both add and remove (mirrors isSetModificationValue).
|
|
53
|
+
return (hasAdd || hasRemove) && numKeysExpected === numKeys;
|
|
49
54
|
}
|
|
50
55
|
convertSetModification(obj, shape) {
|
|
51
56
|
if (!obj.add && !obj.remove) {
|
|
@@ -127,12 +132,87 @@ export class MutationQueryFactory extends QueryFactory {
|
|
|
127
132
|
return res;
|
|
128
133
|
}
|
|
129
134
|
createNodePropertyValue(value, propShape) {
|
|
130
|
-
|
|
135
|
+
this.validateAgainstShape(value, propShape);
|
|
131
136
|
return {
|
|
132
137
|
prop: propShape,
|
|
133
138
|
val: this.convertUpdateValue(value, propShape),
|
|
134
139
|
};
|
|
135
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Lightweight structural validation of a single property value against its
|
|
143
|
+
* PropertyShape — cardinality (`minCount`/`maxCount`) and node-kind (literal
|
|
144
|
+
* vs relation). This is *structural* only (from metadata already in hand); it
|
|
145
|
+
* does not duplicate datatype/deep validation, which the store performs. It
|
|
146
|
+
* fails fast at the call site with a clear message instead of surfacing a
|
|
147
|
+
* confusing store error later.
|
|
148
|
+
*
|
|
149
|
+
* Skips values whose final shape isn't known here: computed expressions,
|
|
150
|
+
* context refs, `unset` (null/undefined), and set-modifications (`{add,remove}`
|
|
151
|
+
* — the resulting count depends on the node's current state).
|
|
152
|
+
*/
|
|
153
|
+
validateAgainstShape(value, propShape) {
|
|
154
|
+
// A `null` value clears the property. Clearing a required (minCount>=1)
|
|
155
|
+
// property is a cardinality violation — the same as providing zero values —
|
|
156
|
+
// so it is rejected exactly like an empty array (both spellings of "clear
|
|
157
|
+
// it" behave identically).
|
|
158
|
+
if (value === null) {
|
|
159
|
+
if (typeof propShape.minCount === 'number' && propShape.minCount > 0) {
|
|
160
|
+
throw new Error(`Property '${propShape.label || propShape.id}' requires at least ${propShape.minCount} value(s) and cannot be cleared.`);
|
|
161
|
+
}
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
if (value === undefined ||
|
|
165
|
+
isExpressionNode(value) ||
|
|
166
|
+
asContextRef(value) ||
|
|
167
|
+
(typeof value === 'function') ||
|
|
168
|
+
(typeof value === 'object' && this.isSetModification(value, propShape))) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const label = propShape.label || propShape.id;
|
|
172
|
+
const elems = Array.isArray(value) ? value : [value];
|
|
173
|
+
const count = elems.length;
|
|
174
|
+
// --- cardinality ---
|
|
175
|
+
if (typeof propShape.maxCount === 'number' && count > propShape.maxCount) {
|
|
176
|
+
throw new Error(`Property '${label}' allows at most ${propShape.maxCount} value(s), but ${count} were provided.`);
|
|
177
|
+
}
|
|
178
|
+
if (typeof propShape.minCount === 'number' && propShape.minCount > 0 && count < propShape.minCount) {
|
|
179
|
+
throw new Error(`Property '${label}' requires at least ${propShape.minCount} value(s), but ${count} were provided.`);
|
|
180
|
+
}
|
|
181
|
+
// --- node kind: literal vs relation ---
|
|
182
|
+
const expectsLiteral = this.expectsLiteral(propShape);
|
|
183
|
+
const expectsNode = this.expectsNode(propShape);
|
|
184
|
+
if (!expectsLiteral && !expectsNode)
|
|
185
|
+
return; // ambiguous/unspecified kind — don't enforce
|
|
186
|
+
for (const el of elems) {
|
|
187
|
+
if (el === null || el === undefined || isExpressionNode(el) || asContextRef(el))
|
|
188
|
+
continue;
|
|
189
|
+
const isScalar = typeof el === 'string' ||
|
|
190
|
+
typeof el === 'number' ||
|
|
191
|
+
typeof el === 'boolean' ||
|
|
192
|
+
el instanceof Date;
|
|
193
|
+
if (expectsLiteral && !isScalar) {
|
|
194
|
+
throw new Error(`Property '${label}' is a literal property but was given a ${typeof el === 'object' ? 'node/object' : typeof el} value.`);
|
|
195
|
+
}
|
|
196
|
+
if (expectsNode && isScalar) {
|
|
197
|
+
throw new Error(`Property '${label}' is a relation (object) property but was given a literal (${typeof el}). Provide a {id} reference or a nested object.`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/** True when the property clearly accepts only literal values. */
|
|
202
|
+
expectsLiteral(ps) {
|
|
203
|
+
if (ps.nodeKind)
|
|
204
|
+
return ps.nodeKind.id === shacl.Literal.id;
|
|
205
|
+
return !!ps.datatype && !ps.valueShape;
|
|
206
|
+
}
|
|
207
|
+
/** True when the property clearly accepts only nodes (IRIs/blank nodes). */
|
|
208
|
+
expectsNode(ps) {
|
|
209
|
+
if (ps.nodeKind) {
|
|
210
|
+
return (ps.nodeKind.id === shacl.IRI.id ||
|
|
211
|
+
ps.nodeKind.id === shacl.BlankNode.id ||
|
|
212
|
+
ps.nodeKind.id === shacl.BlankNodeOrIRI.id);
|
|
213
|
+
}
|
|
214
|
+
return !!ps.valueShape;
|
|
215
|
+
}
|
|
136
216
|
convertUpdateValue(value, propShape, allowArrays = true) {
|
|
137
217
|
// ExpressionNode → pass through as-is (will be converted to IRExpression by IRMutation)
|
|
138
218
|
if (isExpressionNode(value)) {
|
|
@@ -140,7 +220,7 @@ export class MutationQueryFactory extends QueryFactory {
|
|
|
140
220
|
}
|
|
141
221
|
// Query-context reference → preserve the live ref (do NOT collapse to {id},
|
|
142
222
|
// which would read an unresolved `.id` as undefined). Handles both an unset
|
|
143
|
-
// PendingQueryContext and a resolved context shape; both serialize as a {
|
|
223
|
+
// PendingQueryContext and a resolved context shape; both serialize as a {@ctx}
|
|
144
224
|
// marker and are resolved — or throw — at lowering time.
|
|
145
225
|
{
|
|
146
226
|
const ctx = asContextRef(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutationQuery.js","sourceRoot":"","sources":["../../../src/queries/MutationQuery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MutationQuery.js","sourceRoot":"","sources":["../../../src/queries/MutationQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,YAAY,GAMb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAiB,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAC,wBAAwB,EAAC,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,KAAK,EAAC,MAAM,wBAAwB,CAAC;AAI7C,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD;;;;;OAKG;IACH,QAAQ,CACN,KAAgB,EAChB,IAAa,EACb,kBAA2B,KAAK;QAEhC,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAW,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,mFAAmF;IACnF,iBAAiB,CAAC,GAAsB;QACtC,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAES,mBAAmB,CAC3B,GAAG,EACH,KAAgB,EAChB,kBAA2B,KAAK;QAEhC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACtE,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,KAAK,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAES,iBAAiB,CAAC,GAAG,EAAE,KAAK;QACpC,IAAI,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC;QACrB,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3B,IAAI,eAAe,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACrD,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,wDAAwD;QACxD,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,eAAe,KAAK,OAAO,CAAC;IAC9D,CAAC;IAES,sBAAsB,CAC9B,GAAyB,EACzB,KAAoB;QAEpB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,GAAG,GAAyB,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAES,qBAAqB,CAC7B,GAAoC,EACpC,KAAoB;QAEpB,iFAAiF;QACjF,+DAA+D;QAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAES,kBAAkB,CAC1B,GAAoC,EACpC,KAAoB;QAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAkB,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAkB,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAES,wBAAwB,CAChC,KAAK,EACL,KAAoB;QAEpB,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,GAAoC,CAAC;QAC9C,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,qBAAqB,KAAK,CAAC,KAAK,6DAA6D,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;IAES,sBAAsB,CAC9B,QAAiC,EACjC,KAAgB;QAEhB,sDAAsD;QACtD,MAAM,GAAG,qBAAO,QAAQ,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAA8B,EAAE,CAAC;QAC7C,IAAI,EAAE,CAAC;QACP,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YAClB,qEAAqE;YACrE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,4CAA4C;YAC5C,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;aAAM,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YACvB,8DAA8D;YAC9D,kDAAkD;YAClD,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,CAAC;QACD,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,KAAK,CACT,yBAAyB,GAAG,eAAe,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,6JAA6J,CACjP,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAyB;YAChC,MAAM;YACN,KAAK;SACN,CAAC;QACF,IAAI,EAAE,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAES,uBAAuB,CAC/B,KAAK,EACL,SAAwB;QAExB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO;YACL,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC;SACpB,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;OAWG;IACO,oBAAoB,CAAC,KAAK,EAAE,SAAwB;QAC5D,wEAAwE;QACxE,4EAA4E;QAC5E,0EAA0E;QAC1E,2BAA2B;QAC3B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,KAAK,CACb,aAAa,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,uBAAuB,SAAS,CAAC,QAAQ,kCAAkC,CACxH,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QACD,IACE,KAAK,KAAK,SAAS;YACnB,gBAAgB,CAAC,KAAK,CAAC;YACvB,YAAY,CAAC,KAAK,CAAC;YACnB,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC;YAC7B,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EACvE,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QAE3B,sBAAsB;QACtB,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,oBAAoB,SAAS,CAAC,QAAQ,kBAAkB,KAAK,iBAAiB,CACjG,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACnG,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,uBAAuB,SAAS,CAAC,QAAQ,kBAAkB,KAAK,iBAAiB,CACpG,CAAC;QACJ,CAAC;QAED,yCAAyC;QACzC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW;YAAE,OAAO,CAAC,6CAA6C;QAC1F,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,IAAI,gBAAgB,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC1F,MAAM,QAAQ,GACZ,OAAO,EAAE,KAAK,QAAQ;gBACtB,OAAO,EAAE,KAAK,QAAQ;gBACtB,OAAO,EAAE,KAAK,SAAS;gBACvB,EAAE,YAAY,IAAI,CAAC;YACrB,IAAI,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,2CAA2C,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CACzH,CAAC;YACJ,CAAC;YACD,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,8DAA8D,OAAO,EAAE,iDAAiD,CAC3I,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,kEAAkE;IAC1D,cAAc,CAAC,EAAiB;QACtC,IAAI,EAAE,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,4EAA4E;IACpE,WAAW,CAAC,EAAiB;QACnC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,CACL,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE;gBAC/B,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,CAAC,EAAE;gBACrC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,cAAc,CAAC,EAAE,CAC3C,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC;IACzB,CAAC;IAES,kBAAkB,CAC1B,KAAK,EACL,SAAyB,EACzB,cAAuB,IAAI;QAE3B,wFAAwF;QACxF,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAmC,CAAC;QAC7C,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,+EAA+E;QAC/E,yDAAyD;QACzD,CAAC;YACC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,GAAG;gBAAE,OAAO,GAAiC,CAAC;QACpD,CAAC;QAED,yBAAyB;QACzB,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,SAAS;YAC1B,KAAK,YAAY,IAAI,EACrB,CAAC;YACD,OAAO,KAA2B,CAAC;QACrC,CAAC;QAED,mDAAmD;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,oEAAoE;YACpE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC,CAAgC,CAAC;QACpC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,+FAA+F;YAC/F,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,IAAI,UAAU,GAAc,IAAI,CAAC;gBACjC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;oBACzB,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;oBACvD,UAAU,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,KAAI,IAAI,CAAC;oBACvC,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,MAAM,IAAI,KAAK,CACb,6BAA6B,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,CACvD,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,sEAAsE;gBACtE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;oBAC1B,uIAAuI;oBACvI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;wBAChB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,OAAQ,KAAK,CAAC,KAAK,CAAC,KAAmB,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;4BACnG,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;wBACJ,CAAC;wBACD,UAAU,GAAI,KAAK,CAAC,KAAsB,CAAC,KAAK,CAAC;oBACnD,CAAC;yBAAM,CAAC;wBACN,6GAA6G;wBAC7G,+GAA+G;wBAC/G,MAAM,IAAI,KAAK,CACb,0GAA0G,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,4DAA4D,CACzN,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,4CAA4C;gBAC5C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,8GAA8G;oBAC9G,IAAK,KAAK,CAAC,KAAsB,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,EAAE,CAAC;wBAC7D,MAAM,IAAI,KAAK,CACb,0FAA0F,SAAS,CAAC,KAAK,uDAAuD,SAAS,CAAC,KAAK,+FAA+F,CAC/Q,CAAC;oBACJ,CAAC;oBACD,OAAO,KAAK,CAAC,KAAK,CAAC;gBACrB,CAAC;gBAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;oBAC7C,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAES,eAAe,CAAC,GAAG;QAC3B,oDAAoD;QACpD,oFAAoF;QACpF,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACjG,CAAC;IAES,qBAAqB,CAC7B,KAAwB;QAExB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,OAAO,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAES,4BAA4B,CACpC,CAAwB;QAExB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,EAAC,EAAE,EAAE,CAAC,EAAC,CAAC;QACjB,CAAC;aAAM,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAES,oBAAoB,CAAC,GAAiB;QAC9C,OAAO,EAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAC,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Values use the DSL-JSON grammar (documentation/dsl-json.md): a bare scalar is a
|
|
13
13
|
* literal; objects tag the kinds `JSON.stringify` can't represent natively
|
|
14
|
-
* (`{date}`, `{id}`, `{
|
|
15
|
-
*
|
|
14
|
+
* (`{@date}`, `{@id}`, `{@ctx}`, `{@list}`, `{@add,@remove}`, `{@unset}`); and a
|
|
15
|
+
* computed value is an S-expr array via the shared `DslJsonExpression` codec —
|
|
16
16
|
* so the wire carries no IR.
|
|
17
17
|
*/
|
|
18
18
|
import { type NodeDescriptionValue, type PropUpdateValue } from './QueryFactory.js';
|
|
@@ -22,23 +22,23 @@ import type { NodeShape, PropertyShape } from '../shapes/SHACL.js';
|
|
|
22
22
|
import { type DslJsonValue } from './DslJsonExpression.js';
|
|
23
23
|
/**
|
|
24
24
|
* A mutation field value in the DSL-JSON grammar. A bare scalar is a literal; objects
|
|
25
|
-
* tag the non-JSON-native kinds; a computed value is an S-expr array (no IR); a
|
|
25
|
+
* tag the non-JSON-native kinds (`@`-sigiled); a computed value is an S-expr array (no IR); a
|
|
26
26
|
* nested-node create is a bare path-keyed object ({@link MutationNodeDataJSON}),
|
|
27
27
|
* disambiguated from the tagged forms by having no reserved value-key.
|
|
28
28
|
*/
|
|
29
29
|
export type MutationValueJSON = string | number | boolean | null | {
|
|
30
|
-
date: string;
|
|
30
|
+
'@date': string;
|
|
31
31
|
} | {
|
|
32
|
-
id: string;
|
|
32
|
+
'@id': string;
|
|
33
33
|
} | {
|
|
34
|
-
|
|
34
|
+
'@ctx': string;
|
|
35
35
|
} | {
|
|
36
|
-
list: MutationValueJSON[];
|
|
36
|
+
'@list': MutationValueJSON[];
|
|
37
37
|
} | {
|
|
38
|
-
add?: MutationValueJSON[];
|
|
39
|
-
remove?: string[];
|
|
38
|
+
'@add'?: MutationValueJSON[];
|
|
39
|
+
'@remove'?: string[];
|
|
40
40
|
} | {
|
|
41
|
-
unset: true;
|
|
41
|
+
'@unset': true;
|
|
42
42
|
} | MutationNodeDataJSON | DslJsonValue;
|
|
43
43
|
/**
|
|
44
44
|
* A node description in **path-keyed** form: `label → value`, plus two reserved
|
|
@@ -60,7 +60,7 @@ export type UpdateMutationJSON = {
|
|
|
60
60
|
op: 'update';
|
|
61
61
|
shape: string;
|
|
62
62
|
mode: 'for' | 'forAll' | 'where';
|
|
63
|
-
/** A node id, or a `{
|
|
63
|
+
/** A node id, or a `{@ctx: name}` context reference resolved at lowering. */
|
|
64
64
|
targetId?: string | ContextRefJSON;
|
|
65
65
|
where?: WherePathJSON;
|
|
66
66
|
data: MutationNodeDataJSON;
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
*
|
|
17
17
|
* Values use the DSL-JSON grammar (documentation/dsl-json.md): a bare scalar is a
|
|
18
18
|
* literal; objects tag the kinds `JSON.stringify` can't represent natively
|
|
19
|
-
* (`{date}`, `{id}`, `{
|
|
20
|
-
*
|
|
19
|
+
* (`{@date}`, `{@id}`, `{@ctx}`, `{@list}`, `{@add,@remove}`, `{@unset}`); and a
|
|
20
|
+
* computed value is an S-expr array via the shared `DslJsonExpression` codec —
|
|
21
21
|
* so the wire carries no IR.
|
|
22
22
|
*/
|
|
23
23
|
import { isSetModificationValue, } from './QueryFactory.js';
|
|
@@ -40,13 +40,13 @@ export function valueShapeOf(prop) {
|
|
|
40
40
|
/** Encode a single (non-array, non-setMod) property value. `prop` gives the nested-node shape. */
|
|
41
41
|
function encodeSingleValue(value, prop) {
|
|
42
42
|
if (value === undefined)
|
|
43
|
-
return { unset: true };
|
|
43
|
+
return { '@unset': true };
|
|
44
44
|
if (isExpressionNode(value)) {
|
|
45
|
-
// A computed value is an S-expr (or {path}) via the shared codec — no IR.
|
|
45
|
+
// A computed value is an S-expr (or {@path}) via the shared codec — no IR.
|
|
46
46
|
return encodeValueExpr(value.ir, value._refs);
|
|
47
47
|
}
|
|
48
48
|
if (value instanceof Date)
|
|
49
|
-
return { date: value.toISOString() };
|
|
49
|
+
return { '@date': value.toISOString() };
|
|
50
50
|
if (typeof value === 'string' ||
|
|
51
51
|
typeof value === 'number' ||
|
|
52
52
|
typeof value === 'boolean') {
|
|
@@ -56,31 +56,31 @@ function encodeSingleValue(value, prop) {
|
|
|
56
56
|
// Query-context reference — carry the name, resolve at lowering (checked
|
|
57
57
|
// before the generic `.id` branch since a PendingQueryContext has an `.id` getter).
|
|
58
58
|
if (value instanceof PendingQueryContext) {
|
|
59
|
-
return {
|
|
59
|
+
return { '@ctx': value.contextName };
|
|
60
60
|
}
|
|
61
61
|
if ('fields' in value) {
|
|
62
62
|
// Nested-node create — bare path-keyed; expected shape = the relation's value shape.
|
|
63
63
|
return encodeNodeData(value, valueShapeOf(prop));
|
|
64
64
|
}
|
|
65
65
|
if ('id' in value)
|
|
66
|
-
return { id: value.id };
|
|
66
|
+
return { '@id': value.id };
|
|
67
67
|
}
|
|
68
68
|
throw new Error(`Cannot serialize mutation value: ${JSON.stringify(value)}`);
|
|
69
69
|
}
|
|
70
70
|
/** Encode any property value, including arrays and set modifications. */
|
|
71
71
|
export function encodeValue(value, prop) {
|
|
72
72
|
if (value === undefined)
|
|
73
|
-
return { unset: true };
|
|
73
|
+
return { '@unset': true };
|
|
74
74
|
if (Array.isArray(value)) {
|
|
75
|
-
return { list: value.map((v) => encodeSingleValue(v, prop)) };
|
|
75
|
+
return { '@list': value.map((v) => encodeSingleValue(v, prop)) };
|
|
76
76
|
}
|
|
77
77
|
if (isSetModificationValue(value)) {
|
|
78
78
|
const mod = value;
|
|
79
79
|
const json = {};
|
|
80
80
|
if (mod.$add)
|
|
81
|
-
json
|
|
81
|
+
json['@add'] = mod.$add.map((v) => encodeValue(v, prop));
|
|
82
82
|
if (mod.$remove)
|
|
83
|
-
json
|
|
83
|
+
json['@remove'] = mod.$remove.map((r) => r.id);
|
|
84
84
|
return json;
|
|
85
85
|
}
|
|
86
86
|
return encodeSingleValue(value, prop);
|
|
@@ -105,11 +105,28 @@ export function encodeNodeData(desc, expectedShape) {
|
|
|
105
105
|
// =============================================================================
|
|
106
106
|
// JSON → raw UpdatePartial (for builder rehydration / fromJSON)
|
|
107
107
|
// =============================================================================
|
|
108
|
+
// Bound the DSL-JSON decode recursion (rehydration path) against a deeply-nested
|
|
109
|
+
// payload exhausting the stack. Mirrors the cap in lowerMutationJSON.
|
|
110
|
+
const MAX_DECODE_DEPTH = 128;
|
|
111
|
+
let _decodeDepth = 0;
|
|
108
112
|
/**
|
|
109
113
|
* Decode a DSL-JSON value back to a raw DSL value (the form `.set()` accepts).
|
|
110
|
-
* `currentShape` resolves computed `{path}`/S-expr; `prop` gives a nested node's shape.
|
|
114
|
+
* `currentShape` resolves computed `{@path}`/S-expr; `prop` gives a nested node's shape.
|
|
115
|
+
* Depth-guarded wrapper around {@link decodeValueToRawInner}.
|
|
111
116
|
*/
|
|
112
117
|
function decodeValueToRaw(json, currentShape, prop) {
|
|
118
|
+
if (++_decodeDepth > MAX_DECODE_DEPTH) {
|
|
119
|
+
_decodeDepth = 0;
|
|
120
|
+
throw new Error('DSL-JSON value nested too deeply');
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
return decodeValueToRawInner(json, currentShape, prop);
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
_decodeDepth--;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function decodeValueToRawInner(json, currentShape, prop) {
|
|
113
130
|
var _a;
|
|
114
131
|
// S-expr computed value
|
|
115
132
|
if (Array.isArray(json)) {
|
|
@@ -121,30 +138,30 @@ function decodeValueToRaw(json, currentShape, prop) {
|
|
|
121
138
|
if (typeof json !== 'object')
|
|
122
139
|
return json; // bare scalar literal
|
|
123
140
|
const o = json;
|
|
124
|
-
if ('unset' in o)
|
|
141
|
+
if ('@unset' in o)
|
|
125
142
|
return undefined;
|
|
126
|
-
if ('date' in o)
|
|
127
|
-
return new Date(o
|
|
143
|
+
if ('@date' in o)
|
|
144
|
+
return new Date(o['@date']);
|
|
128
145
|
// Rehydration path: preserve the live reference so it re-serializes as a
|
|
129
|
-
// `{
|
|
130
|
-
if ('
|
|
131
|
-
return new PendingQueryContext(o
|
|
132
|
-
if ('id' in o)
|
|
133
|
-
return { id: o
|
|
134
|
-
if ('list' in o) {
|
|
135
|
-
return o
|
|
136
|
-
}
|
|
137
|
-
if ('add' in o || 'remove' in o) {
|
|
138
|
-
// Raw DSL set-modifications use
|
|
146
|
+
// `{@ctx}` marker and resolves at the rebuilt builder's own lowering.
|
|
147
|
+
if ('@ctx' in o)
|
|
148
|
+
return new PendingQueryContext(o['@ctx']);
|
|
149
|
+
if ('@id' in o)
|
|
150
|
+
return { id: o['@id'] };
|
|
151
|
+
if ('@list' in o) {
|
|
152
|
+
return o['@list'].map((i) => decodeValueToRaw(i, currentShape, prop));
|
|
153
|
+
}
|
|
154
|
+
if ('@add' in o || '@remove' in o) {
|
|
155
|
+
// Raw DSL set-modifications use `@add`/`@remove` on the wire.
|
|
139
156
|
const mod = {};
|
|
140
|
-
if (o
|
|
141
|
-
mod.add = o
|
|
142
|
-
if (o
|
|
143
|
-
mod.remove = o
|
|
157
|
+
if (o['@add'])
|
|
158
|
+
mod.add = o['@add'].map((i) => decodeValueToRaw(i, currentShape, prop));
|
|
159
|
+
if (o['@remove'])
|
|
160
|
+
mod.remove = o['@remove'].map((id) => ({ id }));
|
|
144
161
|
return mod;
|
|
145
162
|
}
|
|
146
|
-
// A computed-path value (`{path}`) used as a value.
|
|
147
|
-
if ('path' in o) {
|
|
163
|
+
// A computed-path value (`{@path}`) used as a value.
|
|
164
|
+
if ('@path' in o) {
|
|
148
165
|
const { ir, refs } = decodeValueExpr(json, requireShapeForExpr(currentShape));
|
|
149
166
|
return new ExpressionNode(ir, refs);
|
|
150
167
|
}
|
|
@@ -173,6 +190,9 @@ export function decodeNodeDataToRaw(json, shape) {
|
|
|
173
190
|
for (const [key, val] of Object.entries(json)) {
|
|
174
191
|
if (key === NODE_ID_KEY || key === NODE_SHAPE_KEY || val === undefined)
|
|
175
192
|
continue;
|
|
193
|
+
// Skip prototype-polluting keys from untrusted DSL-JSON input.
|
|
194
|
+
if (key === '__proto__' || key === 'constructor' || key === 'prototype')
|
|
195
|
+
continue;
|
|
176
196
|
const prop = nodeShape === null || nodeShape === void 0 ? void 0 : nodeShape.getPropertyShape(key);
|
|
177
197
|
obj[key] = decodeValueToRaw(val, nodeShape, prop);
|
|
178
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutationSerialization.js","sourceRoot":"","sources":["../../../src/queries/MutationSerialization.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAML,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,kCAAkC,CAAC;AAGlF,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,OAAO,EACL,eAAe,EACf,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAoChC,qDAAqD;AACrD,MAAM,WAAW,GAAG,MAAM,CAAC;AAC3B,MAAM,cAAc,GAAG,SAAS,CAAC;AA8BjC,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,6FAA6F;AAC7F,MAAM,UAAU,YAAY,CAAC,IAAoB;;IAC/C,MAAM,EAAE,GAAG,MAAC,IAA+C,aAA/C,IAAI,uBAAJ,IAAI,CAA6C,UAAU,0CAAE,EAAE,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,CAAC,MAAA,aAAa,CAAC,EAAE,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,kGAAkG;AAClG,SAAS,iBAAiB,CACxB,KAAgC,EAChC,IAAoB;IAEpB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"MutationSerialization.js","sourceRoot":"","sources":["../../../src/queries/MutationSerialization.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAML,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,kCAAkC,CAAC;AAGlF,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,OAAO,EACL,eAAe,EACf,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAoChC,qDAAqD;AACrD,MAAM,WAAW,GAAG,MAAM,CAAC;AAC3B,MAAM,cAAc,GAAG,SAAS,CAAC;AA8BjC,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,6FAA6F;AAC7F,MAAM,UAAU,YAAY,CAAC,IAAoB;;IAC/C,MAAM,EAAE,GAAG,MAAC,IAA+C,aAA/C,IAAI,uBAAJ,IAAI,CAA6C,UAAU,0CAAE,EAAE,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,CAAC,MAAA,aAAa,CAAC,EAAE,CAAC,0CAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,kGAAkG;AAClG,SAAS,iBAAiB,CACxB,KAAgC,EAChC,IAAoB;IAEpB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;IACjD,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,2EAA2E;QAC3E,OAAO,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAsB,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,EAAC,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,EAAC,CAAC;IACjE,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,yEAAyE;QACzE,oFAAoF;QACpF,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;YACzC,OAAO,EAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAC,CAAC;QACrC,CAAC;QACD,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,qFAAqF;YACrF,OAAO,cAAc,CAAC,KAA6B,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,IAAI,IAAI,KAAK;YAAE,OAAO,EAAC,KAAK,EAAG,KAA4B,CAAC,EAAE,EAAC,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,WAAW,CACzB,KAAsB,EACtB,IAAoB;IAEpB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;IACjD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAC,CAAC;IACjE,CAAC;IACD,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAA6B,CAAC;QAC1C,MAAM,IAAI,GAAyD,EAAE,CAAC;QACtE,IAAI,GAAG,CAAC,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAoB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1F,IAAI,GAAG,CAAC,OAAO;YAAE,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAkC,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,IAA0B,EAC1B,aAAyB;IAEzB,MAAM,IAAI,GAAyB,EAAE,CAAC;IACtC,IAAI,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IAC7C,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,EAAE,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACvC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,gEAAgE;AAChE,gFAAgF;AAEhF,iFAAiF;AACjF,sEAAsE;AACtE,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,IAAuB,EACvB,YAAmC,EACnC,IAAoB;IAEpB,IAAI,EAAE,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACtC,YAAY,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC;QACH,OAAO,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QACT,YAAY,EAAE,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAuB,EACvB,YAAmC,EACnC,IAAoB;;IAEpB,wBAAwB;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,EAAC,EAAE,EAAE,IAAI,EAAC,GAAG,eAAe,CAAC,IAAoB,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5F,OAAO,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,CAAC,sBAAsB;IACjE,MAAM,CAAC,GAAG,IAA+B,CAAC;IAC1C,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACpC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAW,CAAC,CAAC;IACxD,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAW,CAAC,CAAC;IACrE,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC;IACtC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,OAAQ,CAAC,CAAC,OAAO,CAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,MAAM,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClC,8DAA8D;QAC9D,MAAM,GAAG,GAA+C,EAAE,CAAC;QAC3D,IAAI,CAAC,CAAC,MAAM,CAAC;YAAE,GAAG,CAAC,GAAG,GAAI,CAAC,CAAC,MAAM,CAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;QAChH,IAAI,CAAC,CAAC,SAAS,CAAC;YAAE,GAAG,CAAC,MAAM,GAAI,CAAC,CAAC,SAAS,CAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,CAAC;QAC9E,OAAO,GAAG,CAAC;IACb,CAAC;IACD,qDAAqD;IACrD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,EAAC,EAAE,EAAE,IAAI,EAAC,GAAG,eAAe,CAAC,IAAoB,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5F,OAAO,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,mDAAmD;IACnD,OAAO,mBAAmB,CAAC,CAAyB,EAAE,MAAA,YAAY,CAAC,IAAI,CAAC,mCAAI,YAAY,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA4B;IACvD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAA0B,EAC1B,KAAiB;;IAEjB,MAAM,SAAS,GACb,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,QAAQ;QACtC,CAAC,CAAC,MAAA,MAAA,aAAa,CAAC,IAAI,CAAC,cAAc,CAAW,CAAC,0CAAE,KAAK,mCAAI,KAAK;QAC/D,CAAC,CAAC,KAAK,CAAC;IACZ,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,QAAQ;QAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACtE,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QACjF,+DAA+D;QAC/D,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW;YAAE,SAAS;QAClF,MAAM,IAAI,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9C,GAAG,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAwB,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared thenable base for the mutation builders (Create/Update/Delete).
|
|
3
|
+
*
|
|
4
|
+
* Each builder is a lazy, `await`-able handle: it implements the full
|
|
5
|
+
* `Promise<R>` surface by delegating to its own `exec()`, so `await builder`
|
|
6
|
+
* runs the mutation. This base holds the identical `then`/`catch`/`finally`/
|
|
7
|
+
* `Symbol.toStringTag` wiring; subclasses provide only `exec()` and a `_tag`.
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class MutationThenable<R> implements PromiseLike<R>, Promise<R> {
|
|
10
|
+
/** Execute the mutation. Subclasses implement the dispatch. */
|
|
11
|
+
abstract exec(): Promise<R>;
|
|
12
|
+
/** Class name reported by `Symbol.toStringTag` (stable under minification). */
|
|
13
|
+
protected abstract readonly _tag: string;
|
|
14
|
+
then<TResult1 = R, TResult2 = never>(onfulfilled?: ((value: R) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
|
|
15
|
+
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): Promise<R | TResult>;
|
|
16
|
+
finally(onfinally?: (() => void) | null): Promise<R>;
|
|
17
|
+
get [Symbol.toStringTag](): string;
|
|
18
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Shared thenable base for the mutation builders (Create/Update/Delete).
|
|
8
|
+
*
|
|
9
|
+
* Each builder is a lazy, `await`-able handle: it implements the full
|
|
10
|
+
* `Promise<R>` surface by delegating to its own `exec()`, so `await builder`
|
|
11
|
+
* runs the mutation. This base holds the identical `then`/`catch`/`finally`/
|
|
12
|
+
* `Symbol.toStringTag` wiring; subclasses provide only `exec()` and a `_tag`.
|
|
13
|
+
*/
|
|
14
|
+
export class MutationThenable {
|
|
15
|
+
then(onfulfilled, onrejected) {
|
|
16
|
+
return this.exec().then(onfulfilled, onrejected);
|
|
17
|
+
}
|
|
18
|
+
catch(onrejected) {
|
|
19
|
+
return this.then().catch(onrejected);
|
|
20
|
+
}
|
|
21
|
+
finally(onfinally) {
|
|
22
|
+
return this.then().finally(onfinally);
|
|
23
|
+
}
|
|
24
|
+
get [Symbol.toStringTag]() {
|
|
25
|
+
return this._tag;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=MutationThenable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MutationThenable.js","sourceRoot":"","sources":["../../../src/queries/MutationThenable.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,MAAM,OAAgB,gBAAgB;IAOpC,IAAI,CACF,WAAqE,EACrE,UAAuE;QAEvE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CACH,UAAqE;QAErE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,SAA+B;QACrC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -16,7 +16,7 @@ export type QueryBuilderJSON = {
|
|
|
16
16
|
fields?: FieldSetFieldJSON[];
|
|
17
17
|
limit?: number;
|
|
18
18
|
offset?: number;
|
|
19
|
-
/** A node id, or a `{
|
|
19
|
+
/** A node id, or a `{@ctx: name}` context reference resolved at lowering. */
|
|
20
20
|
subject?: string | ContextRefJSON;
|
|
21
21
|
subjects?: string[];
|
|
22
22
|
/** `.one()` — unwrap a single result. */
|
|
@@ -356,10 +356,10 @@ export class SelectBuilder {
|
|
|
356
356
|
builder = builder.offset(json.offset);
|
|
357
357
|
}
|
|
358
358
|
if (json.subject) {
|
|
359
|
-
// A `{
|
|
359
|
+
// A `{@ctx}` subject rehydrates as a pending context (preserving the name
|
|
360
360
|
// so it re-serializes as a context reference and resolves live).
|
|
361
361
|
const subject = isContextRefJSON(json.subject)
|
|
362
|
-
? new PendingQueryContext(json.subject
|
|
362
|
+
? new PendingQueryContext(json.subject['@ctx'])
|
|
363
363
|
: json.subject;
|
|
364
364
|
builder = builder.for(subject);
|
|
365
365
|
}
|
|
@@ -380,7 +380,7 @@ export class SelectBuilder {
|
|
|
380
380
|
if (json.sortBy && json.sortBy.length > 0 && nodeShape) {
|
|
381
381
|
const sortBy = deserializeSortByPath(nodeShape, json.sortBy);
|
|
382
382
|
overrides._sortBy = sortBy;
|
|
383
|
-
overrides.sortDirection = sortBy.
|
|
383
|
+
overrides.sortDirection = sortBy.directions[0];
|
|
384
384
|
}
|
|
385
385
|
// Restore minus entries
|
|
386
386
|
if (json.minusEntries && json.minusEntries.length > 0 && nodeShape) {
|