@_linked/core 2.10.0 → 2.10.1-next.20260702052553
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 +58 -0
- package/lib/cjs/index.d.ts +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/queries/CreateBuilder.js +3 -2
- package/lib/cjs/queries/CreateBuilder.js.map +1 -1
- package/lib/cjs/queries/DeleteBuilder.js +1 -1
- package/lib/cjs/queries/DeleteBuilder.js.map +1 -1
- package/lib/cjs/queries/FieldSet.d.ts +32 -4
- package/lib/cjs/queries/FieldSet.js +127 -12
- package/lib/cjs/queries/FieldSet.js.map +1 -1
- package/lib/cjs/queries/MutationSerialization.d.ts +39 -40
- package/lib/cjs/queries/MutationSerialization.js +113 -87
- package/lib/cjs/queries/MutationSerialization.js.map +1 -1
- package/lib/cjs/queries/QueryBuilder.d.ts +2 -2
- package/lib/cjs/queries/QueryBuilder.js +11 -16
- package/lib/cjs/queries/QueryBuilder.js.map +1 -1
- package/lib/cjs/queries/QueryBuilderSerialization.d.ts +17 -81
- package/lib/cjs/queries/QueryBuilderSerialization.js +21 -295
- package/lib/cjs/queries/QueryBuilderSerialization.js.map +1 -1
- package/lib/cjs/queries/UpdateBuilder.js +3 -3
- package/lib/cjs/queries/UpdateBuilder.js.map +1 -1
- package/lib/cjs/queries/ZcExpression.d.ts +68 -0
- package/lib/cjs/queries/ZcExpression.js +369 -0
- package/lib/cjs/queries/ZcExpression.js.map +1 -0
- package/lib/cjs/queries/lowerMutationJSON.d.ts +15 -2
- package/lib/cjs/queries/lowerMutationJSON.js +68 -46
- package/lib/cjs/queries/lowerMutationJSON.js.map +1 -1
- package/lib/cjs/shapes/SHACL.js +10 -0
- package/lib/cjs/shapes/SHACL.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/queries/CreateBuilder.js +3 -2
- package/lib/esm/queries/CreateBuilder.js.map +1 -1
- package/lib/esm/queries/DeleteBuilder.js +1 -1
- package/lib/esm/queries/DeleteBuilder.js.map +1 -1
- package/lib/esm/queries/FieldSet.d.ts +32 -4
- package/lib/esm/queries/FieldSet.js +129 -14
- package/lib/esm/queries/FieldSet.js.map +1 -1
- package/lib/esm/queries/MutationSerialization.d.ts +39 -40
- package/lib/esm/queries/MutationSerialization.js +112 -86
- package/lib/esm/queries/MutationSerialization.js.map +1 -1
- package/lib/esm/queries/QueryBuilder.d.ts +2 -2
- package/lib/esm/queries/QueryBuilder.js +11 -16
- package/lib/esm/queries/QueryBuilder.js.map +1 -1
- package/lib/esm/queries/QueryBuilderSerialization.d.ts +17 -81
- package/lib/esm/queries/QueryBuilderSerialization.js +21 -260
- package/lib/esm/queries/QueryBuilderSerialization.js.map +1 -1
- package/lib/esm/queries/UpdateBuilder.js +3 -3
- package/lib/esm/queries/UpdateBuilder.js.map +1 -1
- package/lib/esm/queries/ZcExpression.d.ts +68 -0
- package/lib/esm/queries/ZcExpression.js +361 -0
- package/lib/esm/queries/ZcExpression.js.map +1 -0
- package/lib/esm/queries/lowerMutationJSON.d.ts +15 -2
- package/lib/esm/queries/lowerMutationJSON.js +69 -47
- package/lib/esm/queries/lowerMutationJSON.js.map +1 -1
- package/lib/esm/shapes/SHACL.js +10 -0
- package/lib/esm/shapes/SHACL.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,95 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Serialization
|
|
3
|
-
*
|
|
2
|
+
* Serialization helpers for QueryBuilder fields that contain live object
|
|
3
|
+
* references (where-clauses, sort paths, minus entries).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Where-clauses serialize through the Z-c expression codec
|
|
6
|
+
* (`ZcExpression.ts`) — the wire form carries no IR. This module wires that
|
|
7
|
+
* codec into the select/mutation envelopes and handles sort + minus.
|
|
7
8
|
*/
|
|
8
9
|
import type { NodeShape } from '../shapes/SHACL.js';
|
|
9
|
-
import type { WherePath,
|
|
10
|
-
import type { IRExpression } from './IntermediateRepresentation.js';
|
|
10
|
+
import type { WherePath, SortByPath } from './SelectQuery.js';
|
|
11
11
|
import type { RawMinusEntry } from './IRDesugar.js';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
label?: string;
|
|
20
|
-
} | {
|
|
21
|
-
kind: 'shapeRef';
|
|
22
|
-
id: string;
|
|
23
|
-
shapeId: string;
|
|
24
|
-
};
|
|
25
|
-
export type ExistsConditionJSON = {
|
|
26
|
-
kind: 'exists';
|
|
27
|
-
pathSegmentIds: string[];
|
|
28
|
-
predicate: {
|
|
29
|
-
ir: IRExpression;
|
|
30
|
-
refs?: Record<string, string[]>;
|
|
31
|
-
};
|
|
32
|
-
negated: boolean;
|
|
33
|
-
chain: {
|
|
34
|
-
op: 'and' | 'or';
|
|
35
|
-
condition: ExistsConditionJSON | {
|
|
36
|
-
kind: 'expression';
|
|
37
|
-
ir: IRExpression;
|
|
38
|
-
refs?: Record<string, string[]>;
|
|
39
|
-
};
|
|
40
|
-
}[];
|
|
41
|
-
};
|
|
42
|
-
export type WherePathJSON = {
|
|
43
|
-
kind: 'evaluation';
|
|
44
|
-
path: QueryStepJSON[];
|
|
45
|
-
method: string;
|
|
46
|
-
args: QueryArgJSON[];
|
|
47
|
-
} | {
|
|
48
|
-
kind: 'andOr';
|
|
49
|
-
firstPath: WherePathJSON;
|
|
50
|
-
andOr: {
|
|
51
|
-
and?: WherePathJSON;
|
|
52
|
-
or?: WherePathJSON;
|
|
53
|
-
}[];
|
|
54
|
-
} | {
|
|
55
|
-
kind: 'expression';
|
|
56
|
-
ir: IRExpression;
|
|
57
|
-
refs?: Record<string, string[]>;
|
|
58
|
-
} | ExistsConditionJSON;
|
|
59
|
-
export type QueryArgJSON = {
|
|
60
|
-
kind: 'nodeRef';
|
|
61
|
-
id: string;
|
|
62
|
-
} | {
|
|
63
|
-
kind: 'primitive';
|
|
64
|
-
value: string | number | boolean;
|
|
65
|
-
} | {
|
|
66
|
-
kind: 'date';
|
|
67
|
-
value: string;
|
|
68
|
-
} | {
|
|
69
|
-
kind: 'argPath';
|
|
70
|
-
path: QueryStepJSON[];
|
|
71
|
-
subject: {
|
|
72
|
-
id: string;
|
|
73
|
-
shapeId: string;
|
|
74
|
-
};
|
|
75
|
-
} | {
|
|
76
|
-
kind: 'where';
|
|
77
|
-
where: WherePathJSON;
|
|
78
|
-
};
|
|
79
|
-
export type SortByPathJSON = {
|
|
80
|
-
paths: string[];
|
|
81
|
-
direction: 'ASC' | 'DESC';
|
|
82
|
-
};
|
|
12
|
+
import { type ZcCondition } from './ZcExpression.js';
|
|
13
|
+
/** A where-clause on the wire is a Z-c condition (see documentation/dsl-json.md). */
|
|
14
|
+
export type WherePathJSON = ZcCondition;
|
|
15
|
+
/** An ordered list of `{path: direction}` — element order is sort precedence. */
|
|
16
|
+
export type SortByPathJSON = Array<{
|
|
17
|
+
[path: string]: 'ASC' | 'DESC';
|
|
18
|
+
}>;
|
|
83
19
|
export type RawMinusEntryJSON = {
|
|
84
20
|
shapeId?: string;
|
|
85
21
|
where?: WherePathJSON;
|
|
86
22
|
propertyPaths?: string[][];
|
|
87
23
|
};
|
|
88
|
-
|
|
89
|
-
export declare function serializeWherePath(where: WherePath): WherePathJSON;
|
|
24
|
+
/** Serialize a runtime where-clause to its Z-c condition form. */
|
|
25
|
+
export declare function serializeWherePath(where: WherePath, shape: NodeShape): WherePathJSON;
|
|
90
26
|
export declare function serializeSortByPath(sort: SortByPath): SortByPathJSON;
|
|
91
|
-
export declare function serializeRawMinusEntry(entry: RawMinusEntry): RawMinusEntryJSON;
|
|
92
|
-
|
|
27
|
+
export declare function serializeRawMinusEntry(entry: RawMinusEntry, shape: NodeShape): RawMinusEntryJSON;
|
|
28
|
+
/** Rebuild a runtime where-clause from its Z-c condition form. */
|
|
93
29
|
export declare function deserializeWherePath(shape: NodeShape, json: WherePathJSON): WherePath;
|
|
94
30
|
export declare function deserializeSortByPath(shape: NodeShape, json: SortByPathJSON): SortByPath;
|
|
95
31
|
export declare function deserializeRawMinusEntry(shape: NodeShape, json: RawMinusEntryJSON): RawMinusEntry;
|
|
@@ -1,170 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Serialization
|
|
3
|
-
*
|
|
2
|
+
* Serialization helpers for QueryBuilder fields that contain live object
|
|
3
|
+
* references (where-clauses, sort paths, minus entries).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Where-clauses serialize through the Z-c expression codec
|
|
6
|
+
* (`ZcExpression.ts`) — the wire form carries no IR. This module wires that
|
|
7
|
+
* codec into the select/mutation envelopes and handles sort + minus.
|
|
7
8
|
*/
|
|
8
|
-
import { getShapeClass } from '../utils/ShapeClass.js';
|
|
9
9
|
import { walkPropertyPath } from './PropertyPath.js';
|
|
10
|
-
import {
|
|
11
|
-
// ExistsCondition only exists after the WherePath refactor; access dynamically
|
|
12
|
-
// so this file compiles on branches where it doesn't exist yet.
|
|
13
|
-
import * as _exprModule from '../expressions/ExpressionNode.js';
|
|
14
|
-
const ExistsConditionCtor = _exprModule.ExistsCondition;
|
|
10
|
+
import { encodeCondition, decodeCondition, } from './ZcExpression.js';
|
|
15
11
|
// =============================================================================
|
|
16
12
|
// Serialization
|
|
17
13
|
// =============================================================================
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const pqs = step;
|
|
25
|
-
const json = {
|
|
26
|
-
kind: 'property',
|
|
27
|
-
label: pqs.property.label,
|
|
28
|
-
};
|
|
29
|
-
if (pqs.where) {
|
|
30
|
-
json.where = serializeWherePath(pqs.where);
|
|
31
|
-
}
|
|
32
|
-
return json;
|
|
33
|
-
}
|
|
34
|
-
// SizeStep — has a .count field
|
|
35
|
-
if ('count' in step) {
|
|
36
|
-
const ss = step;
|
|
37
|
-
const json = {
|
|
38
|
-
kind: 'size',
|
|
39
|
-
count: serializeQueryPropertyPath(ss.count),
|
|
40
|
-
};
|
|
41
|
-
if (ss.label)
|
|
42
|
-
json.label = ss.label;
|
|
43
|
-
return json;
|
|
44
|
-
}
|
|
45
|
-
// ShapeReferenceValue — has .id and .shape
|
|
46
|
-
const ref = step;
|
|
47
|
-
return { kind: 'shapeRef', id: ref.id, shapeId: ref.shape.id };
|
|
48
|
-
}
|
|
49
|
-
export function serializeWherePath(where) {
|
|
50
|
-
var _a, _b;
|
|
51
|
-
if ('expressionNode' in where) {
|
|
52
|
-
const expr = where.expressionNode;
|
|
53
|
-
const json = {
|
|
54
|
-
kind: 'expression',
|
|
55
|
-
ir: expr.ir,
|
|
56
|
-
};
|
|
57
|
-
if (expr._refs.size > 0) {
|
|
58
|
-
const refs = {};
|
|
59
|
-
for (const [k, v] of expr._refs)
|
|
60
|
-
refs[k] = [...v];
|
|
61
|
-
json.refs = refs;
|
|
62
|
-
}
|
|
63
|
-
return json;
|
|
64
|
-
}
|
|
65
|
-
if ('firstPath' in where) {
|
|
66
|
-
const andOr = where;
|
|
67
|
-
return {
|
|
68
|
-
kind: 'andOr',
|
|
69
|
-
firstPath: serializeWherePath(andOr.firstPath),
|
|
70
|
-
andOr: andOr.andOr.map((token) => {
|
|
71
|
-
const t = {};
|
|
72
|
-
if (token.and)
|
|
73
|
-
t.and = serializeWherePath(token.and);
|
|
74
|
-
if (token.or)
|
|
75
|
-
t.or = serializeWherePath(token.or);
|
|
76
|
-
return t;
|
|
77
|
-
}),
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
if ('path' in where && 'method' in where && 'args' in where) {
|
|
81
|
-
const ev = where;
|
|
82
|
-
return {
|
|
83
|
-
kind: 'evaluation',
|
|
84
|
-
path: serializeQueryPropertyPath(ev.path),
|
|
85
|
-
method: ev.method,
|
|
86
|
-
args: ev.args.map(serializeQueryArg),
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
if ('existsCondition' in where) {
|
|
90
|
-
// WhereExistsPath — serialize the ExistsCondition structurally
|
|
91
|
-
const ec = where.existsCondition;
|
|
92
|
-
return {
|
|
93
|
-
kind: 'exists',
|
|
94
|
-
pathSegmentIds: [...ec.pathSegmentIds],
|
|
95
|
-
predicate: { ir: ec.predicate.ir, refs: serializePropertyRefMap(ec.predicate._refs) },
|
|
96
|
-
negated: (_a = ec.negated) !== null && _a !== void 0 ? _a : false,
|
|
97
|
-
chain: ((_b = ec.chain) !== null && _b !== void 0 ? _b : []).map((c) => {
|
|
98
|
-
var _a;
|
|
99
|
-
if ('pathSegmentIds' in c.condition) {
|
|
100
|
-
// A nested exists inside a chain. We serialize one level of nesting;
|
|
101
|
-
// a nested exists carrying its OWN chain would be silently truncated,
|
|
102
|
-
// so fail loud rather than drop data. (Deeper nesting can be made fully
|
|
103
|
-
// recursive if a real case needs it.)
|
|
104
|
-
if (c.condition.chain && c.condition.chain.length > 0) {
|
|
105
|
-
throw new Error('Cannot serialize a nested exists() that itself carries a chained and()/or() condition — DSL-JSON supports one level of exists nesting.');
|
|
106
|
-
}
|
|
107
|
-
return {
|
|
108
|
-
op: c.op,
|
|
109
|
-
condition: { kind: 'exists', pathSegmentIds: [...c.condition.pathSegmentIds], predicate: { ir: c.condition.predicate.ir, refs: serializePropertyRefMap(c.condition.predicate._refs) }, negated: (_a = c.condition.negated) !== null && _a !== void 0 ? _a : false, chain: [] },
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
return {
|
|
113
|
-
op: c.op,
|
|
114
|
-
condition: { kind: 'expression', ir: c.condition.ir, refs: serializePropertyRefMap(c.condition._refs) },
|
|
115
|
-
};
|
|
116
|
-
}),
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
throw new Error(`Cannot serialize WherePath: ${JSON.stringify(Object.keys(where))}`);
|
|
120
|
-
}
|
|
121
|
-
function serializePropertyRefMap(refs) {
|
|
122
|
-
if (!refs || refs.size === 0)
|
|
123
|
-
return undefined;
|
|
124
|
-
const out = {};
|
|
125
|
-
for (const [k, v] of refs)
|
|
126
|
-
out[k] = [...v];
|
|
127
|
-
return out;
|
|
128
|
-
}
|
|
129
|
-
function serializeQueryArg(arg) {
|
|
130
|
-
if (typeof arg === 'string' || typeof arg === 'number' || typeof arg === 'boolean') {
|
|
131
|
-
return { kind: 'primitive', value: arg };
|
|
132
|
-
}
|
|
133
|
-
if (arg instanceof Date) {
|
|
134
|
-
return { kind: 'date', value: arg.toISOString() };
|
|
135
|
-
}
|
|
136
|
-
if (typeof arg === 'object' && arg !== null) {
|
|
137
|
-
if ('expressionNode' in arg || 'existsCondition' in arg || 'firstPath' in arg || ('path' in arg && 'method' in arg && 'args' in arg)) {
|
|
138
|
-
return { kind: 'where', where: serializeWherePath(arg) };
|
|
139
|
-
}
|
|
140
|
-
// ArgPath — has 'subject' and 'path'
|
|
141
|
-
if ('subject' in arg && 'path' in arg) {
|
|
142
|
-
const ap = arg;
|
|
143
|
-
return {
|
|
144
|
-
kind: 'argPath',
|
|
145
|
-
path: serializeQueryPropertyPath(ap.path),
|
|
146
|
-
subject: { id: ap.subject.id, shapeId: ap.subject.shape.id },
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
// NodeReferenceValue — has 'id'
|
|
150
|
-
if ('id' in arg) {
|
|
151
|
-
return { kind: 'nodeRef', id: arg.id };
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
throw new Error(`Cannot serialize query arg: ${JSON.stringify(arg)}`);
|
|
14
|
+
/** Serialize a runtime where-clause to its Z-c condition form. */
|
|
15
|
+
export function serializeWherePath(where, shape) {
|
|
16
|
+
const node = 'existsCondition' in where
|
|
17
|
+
? where.existsCondition
|
|
18
|
+
: where.expressionNode;
|
|
19
|
+
return encodeCondition(node, shape);
|
|
155
20
|
}
|
|
156
21
|
export function serializeSortByPath(sort) {
|
|
157
|
-
return {
|
|
158
|
-
paths: sort.paths.map((p) => p.toString()),
|
|
159
|
-
direction: sort.direction,
|
|
160
|
-
};
|
|
22
|
+
return sort.paths.map((p) => ({ [p.toString()]: sort.direction }));
|
|
161
23
|
}
|
|
162
|
-
export function serializeRawMinusEntry(entry) {
|
|
24
|
+
export function serializeRawMinusEntry(entry, shape) {
|
|
163
25
|
const json = {};
|
|
164
26
|
if (entry.shapeId)
|
|
165
27
|
json.shapeId = entry.shapeId;
|
|
166
28
|
if (entry.where)
|
|
167
|
-
json.where = serializeWherePath(entry.where);
|
|
29
|
+
json.where = serializeWherePath(entry.where, shape);
|
|
168
30
|
if (entry.propertyPaths) {
|
|
169
31
|
json.propertyPaths = entry.propertyPaths.map((pp) => pp.map((seg) => seg.propertyShapeId));
|
|
170
32
|
}
|
|
@@ -173,117 +35,16 @@ export function serializeRawMinusEntry(entry) {
|
|
|
173
35
|
// =============================================================================
|
|
174
36
|
// Deserialization
|
|
175
37
|
// =============================================================================
|
|
176
|
-
|
|
177
|
-
var _a;
|
|
178
|
-
const result = [];
|
|
179
|
-
let currentShape = shape;
|
|
180
|
-
for (const step of steps) {
|
|
181
|
-
if (step.kind === 'property') {
|
|
182
|
-
const propertyShape = currentShape.getPropertyShape(step.label);
|
|
183
|
-
if (!propertyShape) {
|
|
184
|
-
throw new Error(`Property '${step.label}' not found on shape '${currentShape.label || currentShape.id}'`);
|
|
185
|
-
}
|
|
186
|
-
const queryStep = { property: propertyShape };
|
|
187
|
-
if (step.where) {
|
|
188
|
-
const nestedShape = propertyShape.valueShape
|
|
189
|
-
? (_a = getShapeClass(propertyShape.valueShape)) === null || _a === void 0 ? void 0 : _a.shape
|
|
190
|
-
: currentShape;
|
|
191
|
-
queryStep.where = deserializeWherePath(nestedShape || currentShape, step.where);
|
|
192
|
-
}
|
|
193
|
-
result.push(queryStep);
|
|
194
|
-
// Advance shape context for subsequent traversals
|
|
195
|
-
if (propertyShape.valueShape) {
|
|
196
|
-
const cls = getShapeClass(propertyShape.valueShape);
|
|
197
|
-
if (cls === null || cls === void 0 ? void 0 : cls.shape)
|
|
198
|
-
currentShape = cls.shape;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
else if (step.kind === 'size') {
|
|
202
|
-
result.push({
|
|
203
|
-
count: deserializeQueryPropertyPath(currentShape, step.count),
|
|
204
|
-
label: step.label,
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
// shapeRef
|
|
209
|
-
result.push({ id: step.id, shape: { id: step.shapeId } });
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
return result;
|
|
213
|
-
}
|
|
38
|
+
/** Rebuild a runtime where-clause from its Z-c condition form. */
|
|
214
39
|
export function deserializeWherePath(shape, json) {
|
|
215
|
-
|
|
216
|
-
const refs = new Map();
|
|
217
|
-
if (json.refs) {
|
|
218
|
-
for (const [k, v] of Object.entries(json.refs))
|
|
219
|
-
refs.set(k, v);
|
|
220
|
-
}
|
|
221
|
-
return { expressionNode: new ExpressionNode(json.ir, refs) };
|
|
222
|
-
}
|
|
223
|
-
if (json.kind === 'exists') {
|
|
224
|
-
if (!ExistsConditionCtor)
|
|
225
|
-
throw new Error('ExistsCondition is not available on this build');
|
|
226
|
-
const predRefs = deserializeRefMap(json.predicate.refs);
|
|
227
|
-
const predicate = new ExpressionNode(json.predicate.ir, predRefs);
|
|
228
|
-
const chain = json.chain.map((c) => {
|
|
229
|
-
if (c.condition.kind === 'exists') {
|
|
230
|
-
const innerRefs = deserializeRefMap(c.condition.predicate.refs);
|
|
231
|
-
return { op: c.op, condition: new ExistsConditionCtor(c.condition.pathSegmentIds, new ExpressionNode(c.condition.predicate.ir, innerRefs), c.condition.negated) };
|
|
232
|
-
}
|
|
233
|
-
const exprRefs = deserializeRefMap(c.condition.refs);
|
|
234
|
-
return { op: c.op, condition: new ExpressionNode(c.condition.ir, exprRefs) };
|
|
235
|
-
});
|
|
236
|
-
return { existsCondition: new ExistsConditionCtor(json.pathSegmentIds, predicate, json.negated, chain) };
|
|
237
|
-
}
|
|
238
|
-
if (json.kind === 'andOr') {
|
|
239
|
-
return {
|
|
240
|
-
firstPath: deserializeWherePath(shape, json.firstPath),
|
|
241
|
-
andOr: json.andOr.map((token) => {
|
|
242
|
-
const t = {};
|
|
243
|
-
if (token.and)
|
|
244
|
-
t.and = deserializeWherePath(shape, token.and);
|
|
245
|
-
if (token.or)
|
|
246
|
-
t.or = deserializeWherePath(shape, token.or);
|
|
247
|
-
return t;
|
|
248
|
-
}),
|
|
249
|
-
};
|
|
250
|
-
}
|
|
251
|
-
// evaluation (legacy)
|
|
252
|
-
return {
|
|
253
|
-
path: deserializeQueryPropertyPath(shape, json.path),
|
|
254
|
-
method: json.method,
|
|
255
|
-
args: json.args.map((a) => deserializeQueryArg(shape, a)),
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
function deserializeRefMap(refs) {
|
|
259
|
-
const m = new Map();
|
|
260
|
-
if (refs) {
|
|
261
|
-
for (const [k, v] of Object.entries(refs))
|
|
262
|
-
m.set(k, v);
|
|
263
|
-
}
|
|
264
|
-
return m;
|
|
265
|
-
}
|
|
266
|
-
function deserializeQueryArg(shape, json) {
|
|
267
|
-
switch (json.kind) {
|
|
268
|
-
case 'primitive':
|
|
269
|
-
return json.value;
|
|
270
|
-
case 'date':
|
|
271
|
-
return new Date(json.value);
|
|
272
|
-
case 'nodeRef':
|
|
273
|
-
return { id: json.id };
|
|
274
|
-
case 'where':
|
|
275
|
-
return deserializeWherePath(shape, json.where);
|
|
276
|
-
case 'argPath':
|
|
277
|
-
return {
|
|
278
|
-
path: deserializeQueryPropertyPath(shape, json.path),
|
|
279
|
-
subject: { id: json.subject.id, shape: { id: json.subject.shapeId } },
|
|
280
|
-
};
|
|
281
|
-
}
|
|
40
|
+
return decodeCondition(json, shape);
|
|
282
41
|
}
|
|
283
42
|
export function deserializeSortByPath(shape, json) {
|
|
43
|
+
// The runtime SortByPath has one direction for all paths, so the encoder writes
|
|
44
|
+
// the same direction on every `{path: dir}` entry and only the first is read back.
|
|
284
45
|
return {
|
|
285
|
-
paths: json.
|
|
286
|
-
direction: json.
|
|
46
|
+
paths: json.map((e) => walkPropertyPath(shape, Object.keys(e)[0])),
|
|
47
|
+
direction: (json.length ? Object.values(json[0])[0] : 'ASC'),
|
|
287
48
|
};
|
|
288
49
|
}
|
|
289
50
|
export function deserializeRawMinusEntry(shape, json) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilderSerialization.js","sourceRoot":"","sources":["../../../src/queries/QueryBuilderSerialization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryBuilderSerialization.js","sourceRoot":"","sources":["../../../src/queries/QueryBuilderSerialization.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ export class UpdateBuilder {
|
|
|
49
49
|
static fromJSON(json) {
|
|
50
50
|
assertWireVersion(json.v);
|
|
51
51
|
const resolved = resolveShape(json.shape);
|
|
52
|
-
const data = decodeNodeDataToRaw(json.data);
|
|
52
|
+
const data = decodeNodeDataToRaw(json.data, resolved.shape);
|
|
53
53
|
if (json.mode === 'for') {
|
|
54
54
|
if (isContextRefJSON(json.targetId)) {
|
|
55
55
|
return new UpdateBuilder({ shape: resolved, data, targetContextName: json.targetId.$ctx, mode: 'for' });
|
|
@@ -144,7 +144,7 @@ export class UpdateBuilder {
|
|
|
144
144
|
op: 'update',
|
|
145
145
|
shape: this._shape.shape.id,
|
|
146
146
|
mode,
|
|
147
|
-
data: encodeNodeData(fields),
|
|
147
|
+
data: encodeNodeData(fields, this._shape.shape),
|
|
148
148
|
};
|
|
149
149
|
if (mode === 'for') {
|
|
150
150
|
if (this._targetContextName)
|
|
@@ -157,7 +157,7 @@ export class UpdateBuilder {
|
|
|
157
157
|
if (!wherePath) {
|
|
158
158
|
throw new Error('UpdateBuilder.where() requires a condition callback.');
|
|
159
159
|
}
|
|
160
|
-
json.where = serializeWherePath(wherePath);
|
|
160
|
+
json.where = serializeWherePath(wherePath, this._shape.shape);
|
|
161
161
|
}
|
|
162
162
|
return json;
|
|
163
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateBuilder.js","sourceRoot":"","sources":["../../../src/queries/UpdateBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAC,mBAAmB,EAAE,eAAe,EAAE,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAmC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAA0B,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAC,kBAAkB,EAAE,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAoBxF;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,aAAa;IAWxB,YAAoB,IAA0B;QAgF9C,8EAA8E;QAC9E,kBAAkB;QAClB,8EAA8E;QAE9E,yEAAyE;QAChE,gBAAW,GAAG,QAAiB,CAAC;QApFvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,YAA2C,EAAE;QACzD,OAAO,IAAI,aAAa,iBACtB,KAAK,EAAE,IAAI,CAAC,MAAM,EAClB,IAAI,EAAE,IAAI,CAAC,KAAK,EAChB,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,IAAI,EAAE,IAAI,CAAC,KAAK,EAChB,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,KAAK,EAAE,IAAI,CAAC,MAAM,EAClB,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,IACvC,SAAS,EACZ,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,sBAAsB;IACtB,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CAAkB,KAAmC;QAC9D,MAAM,QAAQ,GAAG,YAAY,CAAI,KAAK,CAAC,CAAC;QACxC,OAAO,IAAI,aAAa,CAAI,EAAC,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;IACjD,CAAC;IAED,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,IAAwB;QACtC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"UpdateBuilder.js","sourceRoot":"","sources":["../../../src/queries/UpdateBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Z-c expression codec — the bidirectional bridge between the runtime
|
|
3
|
+
* expression IR (`ExpressionNode` = `{ir, refs}`, `ExistsCondition`) and the
|
|
4
|
+
* Z-c DSL-JSON grammar (documentation/dsl-json.md).
|
|
5
|
+
*
|
|
6
|
+
* Two tiers:
|
|
7
|
+
* - VALUE (`encodeValueExpr`/`decodeValueExpr`): a computed value or an
|
|
8
|
+
* operand — bare scalar, `{path}`, `{id}`, `{$ctx}`, `{date}`,
|
|
9
|
+
* `{list}`, or an S-expr array `["op", …]`.
|
|
10
|
+
* - CONDITION (`encodeCondition`/`decodeCondition`): a boolean where-clause —
|
|
11
|
+
* path-keyed object (implicit equals / operator map / quantifier),
|
|
12
|
+
* `{and|or|not}`, or an S-expr array fallback.
|
|
13
|
+
*
|
|
14
|
+
* The codec is pure and shape-aware: it resolves property labels against the
|
|
15
|
+
* supplied `NodeShape`, and never touches builder internals. Function and
|
|
16
|
+
* aggregate names are kept verbatim from the IR (e.g. `STRLEN`, `count`) — no
|
|
17
|
+
* name map, lossless round-trip. Round-trip-through-`lower` is the contract.
|
|
18
|
+
*/
|
|
19
|
+
import type { IRExpression } from './IntermediateRepresentation.js';
|
|
20
|
+
import { ExpressionNode, ExistsCondition, type PropertyRefMap } from '../expressions/ExpressionNode.js';
|
|
21
|
+
import type { NodeShape } from '../shapes/SHACL.js';
|
|
22
|
+
import type { WherePath } from './SelectQuery.js';
|
|
23
|
+
export type ZcScalar = string | number | boolean | null;
|
|
24
|
+
export type ZcRef = {
|
|
25
|
+
id: string;
|
|
26
|
+
};
|
|
27
|
+
export type ZcCtx = {
|
|
28
|
+
$ctx: string;
|
|
29
|
+
path?: string;
|
|
30
|
+
};
|
|
31
|
+
export type ZcDate = {
|
|
32
|
+
date: string;
|
|
33
|
+
};
|
|
34
|
+
export type ZcList = {
|
|
35
|
+
list: ZcValue[];
|
|
36
|
+
};
|
|
37
|
+
export type ZcPath = {
|
|
38
|
+
path: string;
|
|
39
|
+
};
|
|
40
|
+
export type ZcSExpr = [string, ...ZcValue[]];
|
|
41
|
+
export type ZcValue = ZcScalar | ZcRef | ZcCtx | ZcDate | ZcList | ZcPath | ZcSExpr;
|
|
42
|
+
export type ZcOpMap = {
|
|
43
|
+
[op: string]: ZcValue;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* A Z-c condition: an S-expr array, or a keyed object whose keys are property
|
|
47
|
+
* paths (→ value / operator-map), quantifier keys like `rel.some` (→ a nested
|
|
48
|
+
* condition), or combinators `and`/`or` (→ a condition array) / `not` (→ a
|
|
49
|
+
* condition). The permissive index reflects the structural wire shape.
|
|
50
|
+
*/
|
|
51
|
+
export type ZcCondition = ZcSExpr | {
|
|
52
|
+
[key: string]: ZcValue | ZcOpMap | ZcCondition | ZcCondition[];
|
|
53
|
+
};
|
|
54
|
+
/** Property-shape IRIs → a dotted label path. */
|
|
55
|
+
export declare function segmentsToPath(segmentIds: readonly string[]): string;
|
|
56
|
+
/** A dotted label path → its property-shape IRIs, resolved against `shape`. */
|
|
57
|
+
export declare function pathToSegmentIds(shape: NodeShape, path: string): string[];
|
|
58
|
+
/** Encode an IR expression used as a value/operand into a Z-c value. */
|
|
59
|
+
export declare function encodeValueExpr(ir: IRExpression, refs: PropertyRefMap): ZcValue;
|
|
60
|
+
/** Decode a Z-c value back into an IR expression + its placeholder refs. */
|
|
61
|
+
export declare function decodeValueExpr(zc: ZcValue, shape: NodeShape): {
|
|
62
|
+
ir: IRExpression;
|
|
63
|
+
refs: PropertyRefMap;
|
|
64
|
+
};
|
|
65
|
+
/** Encode a where-clause node (boolean) into a Z-c condition. */
|
|
66
|
+
export declare function encodeCondition(node: ExpressionNode | ExistsCondition, shape: NodeShape): ZcCondition;
|
|
67
|
+
/** Decode a Z-c condition into a runtime WherePath (`{expressionNode}` | `{existsCondition}`). */
|
|
68
|
+
export declare function decodeCondition(zc: ZcCondition, shape: NodeShape): WherePath;
|