@_linked/core 1.0.0-next.20260224083238 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -12
- package/README.md +40 -186
- package/lib/cjs/index.js +0 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces/IQuadStore.d.ts +7 -19
- package/lib/cjs/interfaces/IQueryParser.d.ts +13 -0
- package/lib/cjs/interfaces/IQueryParser.js +10 -0
- package/lib/cjs/interfaces/IQueryParser.js.map +1 -0
- package/lib/cjs/queries/CreateQuery.d.ts +8 -7
- package/lib/cjs/queries/CreateQuery.js +4 -4
- package/lib/cjs/queries/CreateQuery.js.map +1 -1
- package/lib/cjs/queries/DeleteQuery.d.ts +8 -7
- package/lib/cjs/queries/DeleteQuery.js +4 -4
- package/lib/cjs/queries/DeleteQuery.js.map +1 -1
- package/lib/cjs/queries/QueryFactory.d.ts +2 -0
- package/lib/cjs/queries/QueryFactory.js +3 -0
- package/lib/cjs/queries/QueryFactory.js.map +1 -1
- package/lib/cjs/queries/QueryParser.d.ts +1 -6
- package/lib/cjs/queries/QueryParser.js +22 -14
- package/lib/cjs/queries/QueryParser.js.map +1 -1
- package/lib/cjs/queries/SelectQuery.d.ts +27 -18
- package/lib/cjs/queries/SelectQuery.js +45 -54
- package/lib/cjs/queries/SelectQuery.js.map +1 -1
- package/lib/cjs/queries/UpdateQuery.d.ts +9 -8
- package/lib/cjs/queries/UpdateQuery.js +4 -4
- package/lib/cjs/queries/UpdateQuery.js.map +1 -1
- package/lib/cjs/shapes/SHACL.d.ts +0 -1
- package/lib/cjs/shapes/SHACL.js +2 -82
- package/lib/cjs/shapes/SHACL.js.map +1 -1
- package/lib/cjs/shapes/Shape.d.ts +10 -11
- package/lib/cjs/shapes/Shape.js +5 -11
- package/lib/cjs/shapes/Shape.js.map +1 -1
- package/lib/cjs/test-helpers/query-fixtures.d.ts +88 -671
- package/lib/cjs/test-helpers/query-fixtures.js +1 -39
- package/lib/cjs/test-helpers/query-fixtures.js.map +1 -1
- package/lib/cjs/utils/LinkedStorage.d.ts +7 -7
- package/lib/cjs/utils/LinkedStorage.js +3 -4
- package/lib/cjs/utils/LinkedStorage.js.map +1 -1
- package/lib/esm/index.js +0 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/interfaces/IQuadStore.d.ts +7 -19
- package/lib/esm/interfaces/IQueryParser.d.ts +13 -0
- package/lib/esm/interfaces/IQueryParser.js +7 -0
- package/lib/esm/interfaces/IQueryParser.js.map +1 -0
- package/lib/esm/queries/CreateQuery.d.ts +8 -7
- package/lib/esm/queries/CreateQuery.js +4 -4
- package/lib/esm/queries/CreateQuery.js.map +1 -1
- package/lib/esm/queries/DeleteQuery.d.ts +8 -7
- package/lib/esm/queries/DeleteQuery.js +4 -4
- package/lib/esm/queries/DeleteQuery.js.map +1 -1
- package/lib/esm/queries/QueryFactory.d.ts +2 -0
- package/lib/esm/queries/QueryFactory.js +3 -0
- package/lib/esm/queries/QueryFactory.js.map +1 -1
- package/lib/esm/queries/QueryParser.d.ts +1 -6
- package/lib/esm/queries/QueryParser.js +23 -14
- package/lib/esm/queries/QueryParser.js.map +1 -1
- package/lib/esm/queries/SelectQuery.d.ts +27 -18
- package/lib/esm/queries/SelectQuery.js +45 -54
- package/lib/esm/queries/SelectQuery.js.map +1 -1
- package/lib/esm/queries/UpdateQuery.d.ts +9 -8
- package/lib/esm/queries/UpdateQuery.js +4 -4
- package/lib/esm/queries/UpdateQuery.js.map +1 -1
- package/lib/esm/shapes/SHACL.d.ts +0 -1
- package/lib/esm/shapes/SHACL.js +2 -82
- package/lib/esm/shapes/SHACL.js.map +1 -1
- package/lib/esm/shapes/Shape.d.ts +10 -11
- package/lib/esm/shapes/Shape.js +5 -11
- package/lib/esm/shapes/Shape.js.map +1 -1
- package/lib/esm/test-helpers/query-fixtures.d.ts +88 -671
- package/lib/esm/test-helpers/query-fixtures.js +0 -38
- package/lib/esm/test-helpers/query-fixtures.js.map +1 -1
- package/lib/esm/utils/LinkedStorage.d.ts +7 -7
- package/lib/esm/utils/LinkedStorage.js +3 -4
- package/lib/esm/utils/LinkedStorage.js.map +1 -1
- package/package.json +1 -1
- package/lib/cjs/queries/IRAliasScope.d.ts +0 -20
- package/lib/cjs/queries/IRAliasScope.js +0 -52
- package/lib/cjs/queries/IRAliasScope.js.map +0 -1
- package/lib/cjs/queries/IRCanonicalize.d.ts +0 -36
- package/lib/cjs/queries/IRCanonicalize.js +0 -112
- package/lib/cjs/queries/IRCanonicalize.js.map +0 -1
- package/lib/cjs/queries/IRDesugar.d.ts +0 -98
- package/lib/cjs/queries/IRDesugar.js +0 -244
- package/lib/cjs/queries/IRDesugar.js.map +0 -1
- package/lib/cjs/queries/IRLower.d.ts +0 -8
- package/lib/cjs/queries/IRLower.js +0 -238
- package/lib/cjs/queries/IRLower.js.map +0 -1
- package/lib/cjs/queries/IRMutation.d.ts +0 -23
- package/lib/cjs/queries/IRMutation.js +0 -77
- package/lib/cjs/queries/IRMutation.js.map +0 -1
- package/lib/cjs/queries/IRPipeline.d.ts +0 -8
- package/lib/cjs/queries/IRPipeline.js +0 -25
- package/lib/cjs/queries/IRPipeline.js.map +0 -1
- package/lib/cjs/queries/IRProjection.d.ts +0 -27
- package/lib/cjs/queries/IRProjection.js +0 -84
- package/lib/cjs/queries/IRProjection.js.map +0 -1
- package/lib/cjs/queries/IntermediateRepresentation.d.ts +0 -200
- package/lib/cjs/queries/IntermediateRepresentation.js +0 -3
- package/lib/cjs/queries/IntermediateRepresentation.js.map +0 -1
- package/lib/cjs/test-helpers/query-capture-store.d.ts +0 -5
- package/lib/cjs/test-helpers/query-capture-store.js +0 -59
- package/lib/cjs/test-helpers/query-capture-store.js.map +0 -1
- package/lib/esm/queries/IRAliasScope.d.ts +0 -20
- package/lib/esm/queries/IRAliasScope.js +0 -47
- package/lib/esm/queries/IRAliasScope.js.map +0 -1
- package/lib/esm/queries/IRCanonicalize.d.ts +0 -36
- package/lib/esm/queries/IRCanonicalize.js +0 -107
- package/lib/esm/queries/IRCanonicalize.js.map +0 -1
- package/lib/esm/queries/IRDesugar.d.ts +0 -98
- package/lib/esm/queries/IRDesugar.js +0 -240
- package/lib/esm/queries/IRDesugar.js.map +0 -1
- package/lib/esm/queries/IRLower.d.ts +0 -8
- package/lib/esm/queries/IRLower.js +0 -234
- package/lib/esm/queries/IRLower.js.map +0 -1
- package/lib/esm/queries/IRMutation.d.ts +0 -23
- package/lib/esm/queries/IRMutation.js +0 -71
- package/lib/esm/queries/IRMutation.js.map +0 -1
- package/lib/esm/queries/IRPipeline.d.ts +0 -8
- package/lib/esm/queries/IRPipeline.js +0 -21
- package/lib/esm/queries/IRPipeline.js.map +0 -1
- package/lib/esm/queries/IRProjection.d.ts +0 -27
- package/lib/esm/queries/IRProjection.js +0 -78
- package/lib/esm/queries/IRProjection.js.map +0 -1
- package/lib/esm/queries/IntermediateRepresentation.d.ts +0 -200
- package/lib/esm/queries/IntermediateRepresentation.js +0 -2
- package/lib/esm/queries/IntermediateRepresentation.js.map +0 -1
- package/lib/esm/test-helpers/query-capture-store.d.ts +0 -5
- package/lib/esm/test-helpers/query-capture-store.js +0 -55
- package/lib/esm/test-helpers/query-capture-store.js.map +0 -1
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.desugarSelectQuery = void 0;
|
|
4
|
-
const SelectQuery_js_1 = require("./SelectQuery.js");
|
|
5
|
-
const isPropertyQueryStep = (step) => {
|
|
6
|
-
var _a;
|
|
7
|
-
return !!step && typeof step === 'object' && 'property' in step &&
|
|
8
|
-
!!((_a = step.property) === null || _a === void 0 ? void 0 : _a.id);
|
|
9
|
-
};
|
|
10
|
-
const isSizeStep = (step) => {
|
|
11
|
-
return !!step && typeof step === 'object' && 'count' in step;
|
|
12
|
-
};
|
|
13
|
-
const isShapeRef = (value) => !!value && typeof value === 'object' && 'id' in value && 'shape' in value;
|
|
14
|
-
const isNodeRef = (value) => typeof value === 'object' && value !== null && 'id' in value;
|
|
15
|
-
const isCustomQueryObject = (value) => !!value && typeof value === 'object' && !Array.isArray(value) &&
|
|
16
|
-
!('property' in value) && !('count' in value) && !('id' in value) &&
|
|
17
|
-
!('args' in value) && !('firstPath' in value) && !('method' in value);
|
|
18
|
-
const toStep = (step) => {
|
|
19
|
-
if (isSizeStep(step)) {
|
|
20
|
-
return {
|
|
21
|
-
kind: 'count_step',
|
|
22
|
-
path: step.count.map((s) => toPropertyStepOnly(s)),
|
|
23
|
-
label: step.label,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
if (isShapeRef(step)) {
|
|
27
|
-
return {
|
|
28
|
-
kind: 'type_cast_step',
|
|
29
|
-
shapeId: step.id,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
if (isPropertyQueryStep(step)) {
|
|
33
|
-
const result = {
|
|
34
|
-
kind: 'property_step',
|
|
35
|
-
propertyShapeId: step.property.id,
|
|
36
|
-
};
|
|
37
|
-
if (step.where) {
|
|
38
|
-
result.where = toWhere(step.where);
|
|
39
|
-
}
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
|
-
// CustomQueryObject step — this appears in preload and sub-select paths
|
|
43
|
-
if (isCustomQueryObject(step)) {
|
|
44
|
-
// Return a property_step placeholder; the parent path handler will pick up sub-selects
|
|
45
|
-
// This is an edge case for preload where the sub-query object is pushed into the path
|
|
46
|
-
return {
|
|
47
|
-
kind: 'property_step',
|
|
48
|
-
propertyShapeId: '__sub_query',
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
throw new Error('Unsupported query step in desugar pass: ' + JSON.stringify(step));
|
|
52
|
-
};
|
|
53
|
-
const toPropertyStepOnly = (step) => {
|
|
54
|
-
if (isPropertyQueryStep(step)) {
|
|
55
|
-
return {
|
|
56
|
-
kind: 'property_step',
|
|
57
|
-
propertyShapeId: step.property.id,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
throw new Error('Expected property step in count path');
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Converts a SelectPath (QueryPath[] or CustomQueryObject) to desugared selections.
|
|
64
|
-
*/
|
|
65
|
-
const toSelections = (select) => {
|
|
66
|
-
if (Array.isArray(select)) {
|
|
67
|
-
return select.map((path) => toSelection(path));
|
|
68
|
-
}
|
|
69
|
-
// CustomQueryObject at top level
|
|
70
|
-
return [toCustomObjectSelect(select)];
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Converts a single QueryPath to a DesugaredSelection.
|
|
74
|
-
* A QueryPath can be:
|
|
75
|
-
* - (QueryStep | SubQueryPaths)[] — a flat or nested array of steps
|
|
76
|
-
* - WherePath — a where evaluation used as a selection (e.g. p.bestFriend.equals(...))
|
|
77
|
-
*/
|
|
78
|
-
const toSelection = (path) => {
|
|
79
|
-
// WherePath used as a selection (e.g. customResultEqualsBoolean)
|
|
80
|
-
if (!Array.isArray(path)) {
|
|
81
|
-
if ((0, SelectQuery_js_1.isWhereEvaluationPath)(path) || 'firstPath' in path) {
|
|
82
|
-
return {
|
|
83
|
-
kind: 'evaluation_select',
|
|
84
|
-
where: toWhere(path),
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
throw new Error('Unsupported non-array path in desugar selection pass');
|
|
88
|
-
}
|
|
89
|
-
// Check if the last element is a sub-query (nested array or custom object)
|
|
90
|
-
const lastElement = path[path.length - 1];
|
|
91
|
-
if (Array.isArray(lastElement)) {
|
|
92
|
-
// Sub-select: parent path steps + nested selections
|
|
93
|
-
const parentSteps = path.slice(0, -1).map((step) => toStep(step));
|
|
94
|
-
const nestedSelect = lastElement;
|
|
95
|
-
return {
|
|
96
|
-
kind: 'sub_select',
|
|
97
|
-
parentPath: parentSteps,
|
|
98
|
-
selections: toSubSelections(nestedSelect),
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
if (lastElement && typeof lastElement === 'object' && isCustomQueryObject(lastElement)) {
|
|
102
|
-
// Sub-select with custom object: parent path steps + custom object selections
|
|
103
|
-
const parentSteps = path.slice(0, -1).map((step) => toStep(step));
|
|
104
|
-
return {
|
|
105
|
-
kind: 'sub_select',
|
|
106
|
-
parentPath: parentSteps,
|
|
107
|
-
selections: toCustomObjectSelect(lastElement),
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
// Flat selection path
|
|
111
|
-
return {
|
|
112
|
-
kind: 'selection_path',
|
|
113
|
-
steps: path.map((step) => toStep(step)),
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* Converts sub-select contents (which can be QueryPath[] or CustomQueryObject).
|
|
118
|
-
*/
|
|
119
|
-
const toSubSelections = (select) => {
|
|
120
|
-
if (Array.isArray(select)) {
|
|
121
|
-
// Array of paths — could be a single path or multiple paths
|
|
122
|
-
if (select.length === 0) {
|
|
123
|
-
return { kind: 'selection_path', steps: [] };
|
|
124
|
-
}
|
|
125
|
-
const selections = select.map((path) => toSelection(path));
|
|
126
|
-
if (selections.length === 1) {
|
|
127
|
-
return selections[0];
|
|
128
|
-
}
|
|
129
|
-
// Multiple selections in a sub-select
|
|
130
|
-
return {
|
|
131
|
-
kind: 'multi_selection',
|
|
132
|
-
selections: selections.filter((s) => s.kind === 'selection_path'),
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
return toCustomObjectSelect(select);
|
|
136
|
-
};
|
|
137
|
-
/**
|
|
138
|
-
* Converts a CustomQueryObject to a DesugaredCustomObjectSelect.
|
|
139
|
-
*/
|
|
140
|
-
const toCustomObjectSelect = (obj) => {
|
|
141
|
-
const entries = Object.keys(obj).map((key) => ({
|
|
142
|
-
key,
|
|
143
|
-
value: toSelection(obj[key]),
|
|
144
|
-
}));
|
|
145
|
-
return {
|
|
146
|
-
kind: 'custom_object_select',
|
|
147
|
-
entries,
|
|
148
|
-
};
|
|
149
|
-
};
|
|
150
|
-
const toSelectionPath = (path) => {
|
|
151
|
-
if (!Array.isArray(path)) {
|
|
152
|
-
throw new Error('Unsupported non-array path in desugar selection pass');
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
kind: 'selection_path',
|
|
156
|
-
steps: path.map((step) => toStep(step)),
|
|
157
|
-
};
|
|
158
|
-
};
|
|
159
|
-
const toWhereArg = (arg) => {
|
|
160
|
-
if (typeof arg === 'string' ||
|
|
161
|
-
typeof arg === 'number' ||
|
|
162
|
-
typeof arg === 'boolean' ||
|
|
163
|
-
arg instanceof Date) {
|
|
164
|
-
return arg;
|
|
165
|
-
}
|
|
166
|
-
if (isShapeRef(arg)) {
|
|
167
|
-
return arg;
|
|
168
|
-
}
|
|
169
|
-
if (isNodeRef(arg)) {
|
|
170
|
-
return arg;
|
|
171
|
-
}
|
|
172
|
-
if (arg && typeof arg === 'object') {
|
|
173
|
-
if ((0, SelectQuery_js_1.isWhereEvaluationPath)(arg) || 'firstPath' in arg) {
|
|
174
|
-
return toWhere(arg);
|
|
175
|
-
}
|
|
176
|
-
if ('path' in arg) {
|
|
177
|
-
const pathArg = arg;
|
|
178
|
-
return {
|
|
179
|
-
kind: 'arg_path',
|
|
180
|
-
subject: pathArg.subject,
|
|
181
|
-
path: toSelectionPath(pathArg.path),
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
throw new Error('Unsupported where argument in desugar pass');
|
|
186
|
-
};
|
|
187
|
-
const toWhereComparison = (path) => {
|
|
188
|
-
if (!(0, SelectQuery_js_1.isWhereEvaluationPath)(path)) {
|
|
189
|
-
throw new Error('Expected where evaluation path');
|
|
190
|
-
}
|
|
191
|
-
return {
|
|
192
|
-
kind: 'where_comparison',
|
|
193
|
-
operator: path.method,
|
|
194
|
-
left: toSelectionPath(path.path),
|
|
195
|
-
right: (path.args || []).map(toWhereArg),
|
|
196
|
-
};
|
|
197
|
-
};
|
|
198
|
-
const toWhere = (path) => {
|
|
199
|
-
if (path.firstPath) {
|
|
200
|
-
const grouped = path;
|
|
201
|
-
return {
|
|
202
|
-
kind: 'where_boolean',
|
|
203
|
-
first: toWhereComparison(grouped.firstPath),
|
|
204
|
-
andOr: grouped.andOr.map((token) => ({
|
|
205
|
-
and: token.and ? toWhere(token.and) : undefined,
|
|
206
|
-
or: token.or ? toWhere(token.or) : undefined,
|
|
207
|
-
})),
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
return toWhereComparison(path);
|
|
211
|
-
};
|
|
212
|
-
const toSortBy = (query) => {
|
|
213
|
-
if (!query.sortBy) {
|
|
214
|
-
return undefined;
|
|
215
|
-
}
|
|
216
|
-
return {
|
|
217
|
-
direction: query.sortBy.direction,
|
|
218
|
-
paths: query.sortBy.paths.map((path) => toSelectionPath(path)),
|
|
219
|
-
};
|
|
220
|
-
};
|
|
221
|
-
/**
|
|
222
|
-
* Converts a RawSelectInput (DSL-level query) into a flat DesugaredSelectQuery
|
|
223
|
-
* by walking proxy-traced select/where/sortBy paths and extracting property steps.
|
|
224
|
-
*/
|
|
225
|
-
const desugarSelectQuery = (query) => {
|
|
226
|
-
var _a, _b, _c;
|
|
227
|
-
const selections = toSelections(query.select);
|
|
228
|
-
const subjectId = query.subject && typeof query.subject === 'object' && 'id' in query.subject
|
|
229
|
-
? query.subject.id
|
|
230
|
-
: undefined;
|
|
231
|
-
return {
|
|
232
|
-
kind: 'desugared_select',
|
|
233
|
-
shapeId: ((_b = (_a = query.shape) === null || _a === void 0 ? void 0 : _a.shape) === null || _b === void 0 ? void 0 : _b.id) || ((_c = query.shape) === null || _c === void 0 ? void 0 : _c.id),
|
|
234
|
-
subjectId,
|
|
235
|
-
singleResult: query.singleResult,
|
|
236
|
-
limit: query.limit,
|
|
237
|
-
offset: query.offset,
|
|
238
|
-
selections,
|
|
239
|
-
sortBy: toSortBy(query),
|
|
240
|
-
where: query.where ? toWhere(query.where) : undefined,
|
|
241
|
-
};
|
|
242
|
-
};
|
|
243
|
-
exports.desugarSelectQuery = desugarSelectQuery;
|
|
244
|
-
//# sourceMappingURL=IRDesugar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IRDesugar.js","sourceRoot":"","sources":["../../../src/queries/IRDesugar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CanonicalDesugaredSelectQuery } from './IRCanonicalize.js';
|
|
2
|
-
import { IRSelectQuery } from './IntermediateRepresentation.js';
|
|
3
|
-
/**
|
|
4
|
-
* Lowers a canonical desugared select query into the final IRSelectQuery.
|
|
5
|
-
* Introduces aliases, graph patterns (shape scans, traversals), and
|
|
6
|
-
* converts selection paths and where-clauses into IR expressions.
|
|
7
|
-
*/
|
|
8
|
-
export declare const lowerSelectQuery: (canonical: CanonicalDesugaredSelectQuery) => IRSelectQuery;
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.lowerSelectQuery = void 0;
|
|
4
|
-
const IRCanonicalize_js_1 = require("./IRCanonicalize.js");
|
|
5
|
-
const IRProjection_js_1 = require("./IRProjection.js");
|
|
6
|
-
const IRAliasScope_js_1 = require("./IRAliasScope.js");
|
|
7
|
-
class LoweringContext {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.counter = 0;
|
|
10
|
-
this.patterns = [];
|
|
11
|
-
this.traverseMap = new Map();
|
|
12
|
-
this.rootAlias = this.nextAlias();
|
|
13
|
-
}
|
|
14
|
-
nextAlias() {
|
|
15
|
-
return `a${this.counter++}`;
|
|
16
|
-
}
|
|
17
|
-
getOrCreateTraversal(fromAlias, propertyShapeId) {
|
|
18
|
-
const key = `${fromAlias}:${propertyShapeId}`;
|
|
19
|
-
const existing = this.traverseMap.get(key);
|
|
20
|
-
if (existing)
|
|
21
|
-
return existing;
|
|
22
|
-
const toAlias = this.nextAlias();
|
|
23
|
-
this.patterns.push({
|
|
24
|
-
kind: 'traverse',
|
|
25
|
-
from: fromAlias,
|
|
26
|
-
to: toAlias,
|
|
27
|
-
property: propertyShapeId,
|
|
28
|
-
});
|
|
29
|
-
this.traverseMap.set(key, toAlias);
|
|
30
|
-
return toAlias;
|
|
31
|
-
}
|
|
32
|
-
generateAlias() {
|
|
33
|
-
return this.nextAlias();
|
|
34
|
-
}
|
|
35
|
-
getPatterns() {
|
|
36
|
-
return [...this.patterns];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
const isShapeRef = (value) => !!value && typeof value === 'object' && 'id' in value && 'shape' in value;
|
|
40
|
-
const isNodeRef = (value) => typeof value === 'object' && value !== null && 'id' in value;
|
|
41
|
-
const lowerPath = (path, options) => (0, IRProjection_js_1.lowerSelectionPathExpression)(path, options);
|
|
42
|
-
const lowerWhereArg = (arg, ctx, options) => {
|
|
43
|
-
if (typeof arg === 'string' || typeof arg === 'number' || typeof arg === 'boolean') {
|
|
44
|
-
return { kind: 'literal_expr', value: arg };
|
|
45
|
-
}
|
|
46
|
-
if (arg instanceof Date) {
|
|
47
|
-
return { kind: 'literal_expr', value: arg.toISOString() };
|
|
48
|
-
}
|
|
49
|
-
if (arg && typeof arg === 'object') {
|
|
50
|
-
if ('kind' in arg && arg.kind === 'arg_path') {
|
|
51
|
-
const argPath = arg;
|
|
52
|
-
return lowerPath(argPath.path, options);
|
|
53
|
-
}
|
|
54
|
-
if (isShapeRef(arg)) {
|
|
55
|
-
return { kind: 'literal_expr', value: arg.id };
|
|
56
|
-
}
|
|
57
|
-
if (isNodeRef(arg)) {
|
|
58
|
-
return { kind: 'literal_expr', value: arg.id };
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return { kind: 'literal_expr', value: null };
|
|
62
|
-
};
|
|
63
|
-
const lowerWhere = (where, ctx, options) => {
|
|
64
|
-
switch (where.kind) {
|
|
65
|
-
case 'where_binary': {
|
|
66
|
-
const comp = where;
|
|
67
|
-
return {
|
|
68
|
-
kind: 'binary_expr',
|
|
69
|
-
operator: comp.operator,
|
|
70
|
-
left: lowerPath(comp.left, options),
|
|
71
|
-
right: comp.right.length > 0
|
|
72
|
-
? lowerWhereArg(comp.right[0], ctx, options)
|
|
73
|
-
: { kind: 'literal_expr', value: null },
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
case 'where_logical': {
|
|
77
|
-
const logical = where;
|
|
78
|
-
return {
|
|
79
|
-
kind: 'logical_expr',
|
|
80
|
-
operator: logical.operator,
|
|
81
|
-
expressions: logical.expressions.map((expr) => lowerWhere(expr, ctx, options)),
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
case 'where_exists': {
|
|
85
|
-
const exists = where;
|
|
86
|
-
const traversals = [];
|
|
87
|
-
const localTraversalMap = new Map();
|
|
88
|
-
const existsResolveTraversal = (fromAlias, propertyShapeId) => {
|
|
89
|
-
const key = `${fromAlias}:${propertyShapeId}`;
|
|
90
|
-
const existing = localTraversalMap.get(key);
|
|
91
|
-
if (existing)
|
|
92
|
-
return existing;
|
|
93
|
-
const toAlias = ctx.generateAlias();
|
|
94
|
-
traversals.push({
|
|
95
|
-
kind: 'traverse',
|
|
96
|
-
from: fromAlias,
|
|
97
|
-
to: toAlias,
|
|
98
|
-
property: propertyShapeId,
|
|
99
|
-
});
|
|
100
|
-
localTraversalMap.set(key, toAlias);
|
|
101
|
-
return toAlias;
|
|
102
|
-
};
|
|
103
|
-
let existsRootAlias = options.rootAlias;
|
|
104
|
-
for (const step of exists.path.steps) {
|
|
105
|
-
if (step.kind === 'property_step') {
|
|
106
|
-
existsRootAlias = existsResolveTraversal(existsRootAlias, step.propertyShapeId);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
const filter = lowerWhere(exists.predicate, ctx, {
|
|
110
|
-
rootAlias: existsRootAlias,
|
|
111
|
-
resolveTraversal: existsResolveTraversal,
|
|
112
|
-
});
|
|
113
|
-
return {
|
|
114
|
-
kind: 'exists_expr',
|
|
115
|
-
pattern: traversals.length === 1
|
|
116
|
-
? traversals[0]
|
|
117
|
-
: { kind: 'join', patterns: traversals },
|
|
118
|
-
filter,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
case 'where_not': {
|
|
122
|
-
const not = where;
|
|
123
|
-
return {
|
|
124
|
-
kind: 'not_expr',
|
|
125
|
-
expression: lowerWhere(not.expression, ctx, options),
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
default:
|
|
129
|
-
throw new Error(`Unknown canonical where kind: ${where.kind}`);
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
const combineWithParentPath = (parentPath, path) => ({
|
|
133
|
-
kind: 'selection_path',
|
|
134
|
-
steps: [...parentPath, ...path.steps],
|
|
135
|
-
});
|
|
136
|
-
/**
|
|
137
|
-
* Lowers a canonical desugared select query into the final IRSelectQuery.
|
|
138
|
-
* Introduces aliases, graph patterns (shape scans, traversals), and
|
|
139
|
-
* converts selection paths and where-clauses into IR expressions.
|
|
140
|
-
*/
|
|
141
|
-
const lowerSelectQuery = (canonical) => {
|
|
142
|
-
const ctx = new LoweringContext();
|
|
143
|
-
const pathOptions = {
|
|
144
|
-
rootAlias: ctx.rootAlias,
|
|
145
|
-
resolveTraversal: (fromAlias, propertyShapeId) => ctx.getOrCreateTraversal(fromAlias, propertyShapeId),
|
|
146
|
-
};
|
|
147
|
-
const root = {
|
|
148
|
-
kind: 'shape_scan',
|
|
149
|
-
shape: canonical.shapeId || '',
|
|
150
|
-
alias: ctx.rootAlias,
|
|
151
|
-
};
|
|
152
|
-
const aliasAfterPath = (steps) => {
|
|
153
|
-
let currentAlias = pathOptions.rootAlias;
|
|
154
|
-
for (const step of steps) {
|
|
155
|
-
if (step.kind === 'property_step') {
|
|
156
|
-
currentAlias = pathOptions.resolveTraversal(currentAlias, step.propertyShapeId);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return currentAlias;
|
|
160
|
-
};
|
|
161
|
-
const collectProjectionSeeds = (selection, key, parentPath = []) => {
|
|
162
|
-
if (selection.kind === 'selection_path') {
|
|
163
|
-
return [{
|
|
164
|
-
kind: 'path',
|
|
165
|
-
path: combineWithParentPath(parentPath, selection),
|
|
166
|
-
key,
|
|
167
|
-
}];
|
|
168
|
-
}
|
|
169
|
-
if (selection.kind === 'sub_select') {
|
|
170
|
-
return collectProjectionSeeds(selection.selections, key, [...parentPath, ...selection.parentPath]);
|
|
171
|
-
}
|
|
172
|
-
if (selection.kind === 'custom_object_select') {
|
|
173
|
-
return selection.entries.flatMap((entry) => collectProjectionSeeds(entry.value, entry.key, parentPath));
|
|
174
|
-
}
|
|
175
|
-
if (selection.kind === 'multi_selection') {
|
|
176
|
-
return selection.selections.map((path) => ({
|
|
177
|
-
kind: 'path',
|
|
178
|
-
path: combineWithParentPath(parentPath, path),
|
|
179
|
-
key,
|
|
180
|
-
}));
|
|
181
|
-
}
|
|
182
|
-
if (selection.kind === 'evaluation_select') {
|
|
183
|
-
const canonicalWhere = (0, IRCanonicalize_js_1.canonicalizeWhere)(selection.where);
|
|
184
|
-
return [{
|
|
185
|
-
kind: 'expression',
|
|
186
|
-
key: key || 'value',
|
|
187
|
-
expression: lowerWhere(canonicalWhere, ctx, {
|
|
188
|
-
rootAlias: aliasAfterPath(parentPath),
|
|
189
|
-
resolveTraversal: pathOptions.resolveTraversal,
|
|
190
|
-
}),
|
|
191
|
-
}];
|
|
192
|
-
}
|
|
193
|
-
return [];
|
|
194
|
-
};
|
|
195
|
-
const projectionSeeds = canonical.selections.flatMap((selection) => collectProjectionSeeds(selection));
|
|
196
|
-
const projectionScope = new IRAliasScope_js_1.IRAliasScope('projection');
|
|
197
|
-
projectionScope.registerAlias(ctx.rootAlias, 'root');
|
|
198
|
-
const projection = [];
|
|
199
|
-
const resultMapEntries = [];
|
|
200
|
-
for (const seed of projectionSeeds) {
|
|
201
|
-
const key = seed.kind === 'path'
|
|
202
|
-
? (seed.key || (0, IRProjection_js_1.projectionKeyFromPath)(seed.path))
|
|
203
|
-
: seed.key;
|
|
204
|
-
const alias = projectionScope.generateAlias(key).alias;
|
|
205
|
-
projection.push({
|
|
206
|
-
alias,
|
|
207
|
-
expression: seed.kind === 'path'
|
|
208
|
-
? (0, IRProjection_js_1.lowerSelectionPathExpression)(seed.path, pathOptions)
|
|
209
|
-
: seed.expression,
|
|
210
|
-
});
|
|
211
|
-
resultMapEntries.push({
|
|
212
|
-
key,
|
|
213
|
-
alias,
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
const where = canonical.where ? lowerWhere(canonical.where, ctx, pathOptions) : undefined;
|
|
217
|
-
const orderBy = canonical.sortBy
|
|
218
|
-
? canonical.sortBy.paths.map((path) => ({
|
|
219
|
-
expression: lowerPath(path, pathOptions),
|
|
220
|
-
direction: canonical.sortBy.direction,
|
|
221
|
-
}))
|
|
222
|
-
: undefined;
|
|
223
|
-
return {
|
|
224
|
-
kind: 'select',
|
|
225
|
-
root,
|
|
226
|
-
patterns: ctx.getPatterns(),
|
|
227
|
-
projection,
|
|
228
|
-
where,
|
|
229
|
-
orderBy,
|
|
230
|
-
limit: canonical.limit,
|
|
231
|
-
offset: canonical.offset,
|
|
232
|
-
subjectId: canonical.subjectId,
|
|
233
|
-
singleResult: canonical.singleResult,
|
|
234
|
-
resultMap: resultMapEntries,
|
|
235
|
-
};
|
|
236
|
-
};
|
|
237
|
-
exports.lowerSelectQuery = lowerSelectQuery;
|
|
238
|
-
//# sourceMappingURL=IRLower.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IRLower.js","sourceRoot":"","sources":["../../../src/queries/IRLower.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { NodeShape } from '../shapes/SHACL.js';
|
|
2
|
-
import { NodeDescriptionValue, NodeReferenceValue } from './QueryFactory.js';
|
|
3
|
-
import { IRCreateMutation, IRDeleteMutation, IRUpdateMutation } from './IntermediateRepresentation.js';
|
|
4
|
-
type CreateMutationInput = {
|
|
5
|
-
shape: NodeShape;
|
|
6
|
-
description: NodeDescriptionValue;
|
|
7
|
-
};
|
|
8
|
-
type UpdateMutationInput = {
|
|
9
|
-
id: string;
|
|
10
|
-
shape: NodeShape;
|
|
11
|
-
updates: NodeDescriptionValue;
|
|
12
|
-
};
|
|
13
|
-
type DeleteMutationInput = {
|
|
14
|
-
shape: NodeShape;
|
|
15
|
-
ids: NodeReferenceValue[];
|
|
16
|
-
};
|
|
17
|
-
/** Builds an IRCreateMutation from a create factory's internal description. */
|
|
18
|
-
export declare const buildCanonicalCreateMutationIR: (query: CreateMutationInput) => IRCreateMutation;
|
|
19
|
-
/** Builds an IRUpdateMutation from an update factory's internal description. */
|
|
20
|
-
export declare const buildCanonicalUpdateMutationIR: (query: UpdateMutationInput) => IRUpdateMutation;
|
|
21
|
-
/** Builds an IRDeleteMutation from a delete factory's internal description. */
|
|
22
|
-
export declare const buildCanonicalDeleteMutationIR: (query: DeleteMutationInput) => IRDeleteMutation;
|
|
23
|
-
export {};
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildCanonicalDeleteMutationIR = exports.buildCanonicalUpdateMutationIR = exports.buildCanonicalCreateMutationIR = void 0;
|
|
4
|
-
const QueryFactory_js_1 = require("./QueryFactory.js");
|
|
5
|
-
const toNodeReference = (value) => ({
|
|
6
|
-
id: value.id,
|
|
7
|
-
});
|
|
8
|
-
const toSetModification = (value) => {
|
|
9
|
-
return {
|
|
10
|
-
add: value.$add
|
|
11
|
-
? value.$add.map((item) => toFieldValue(item))
|
|
12
|
-
: undefined,
|
|
13
|
-
remove: value.$remove ? value.$remove.map((item) => toNodeReference(item)) : undefined,
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
const toSingleFieldValue = (value) => {
|
|
17
|
-
if (value === undefined) {
|
|
18
|
-
return undefined;
|
|
19
|
-
}
|
|
20
|
-
if (typeof value === 'string' ||
|
|
21
|
-
typeof value === 'number' ||
|
|
22
|
-
typeof value === 'boolean' ||
|
|
23
|
-
value instanceof Date) {
|
|
24
|
-
return value;
|
|
25
|
-
}
|
|
26
|
-
if ('id' in value) {
|
|
27
|
-
return toNodeReference(value);
|
|
28
|
-
}
|
|
29
|
-
return toNodeData(value);
|
|
30
|
-
};
|
|
31
|
-
const toFieldValue = (value) => {
|
|
32
|
-
if (Array.isArray(value)) {
|
|
33
|
-
return value.map((item) => toSingleFieldValue(item));
|
|
34
|
-
}
|
|
35
|
-
if ((0, QueryFactory_js_1.isSetModificationValue)(value)) {
|
|
36
|
-
return toSetModification(value);
|
|
37
|
-
}
|
|
38
|
-
return toSingleFieldValue(value);
|
|
39
|
-
};
|
|
40
|
-
const toFieldUpdate = (field) => {
|
|
41
|
-
return {
|
|
42
|
-
property: field.prop.id,
|
|
43
|
-
value: toFieldValue(field.val),
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
const toNodeData = (description) => {
|
|
47
|
-
return Object.assign({ shape: description.shape.id, fields: description.fields.map(toFieldUpdate) }, (description.__id ? { id: description.__id } : {}));
|
|
48
|
-
};
|
|
49
|
-
/** Builds an IRCreateMutation from a create factory's internal description. */
|
|
50
|
-
const buildCanonicalCreateMutationIR = (query) => {
|
|
51
|
-
return {
|
|
52
|
-
kind: 'create',
|
|
53
|
-
shape: query.shape.id,
|
|
54
|
-
data: toNodeData(query.description),
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
exports.buildCanonicalCreateMutationIR = buildCanonicalCreateMutationIR;
|
|
58
|
-
/** Builds an IRUpdateMutation from an update factory's internal description. */
|
|
59
|
-
const buildCanonicalUpdateMutationIR = (query) => {
|
|
60
|
-
return {
|
|
61
|
-
kind: 'update',
|
|
62
|
-
shape: query.shape.id,
|
|
63
|
-
id: query.id,
|
|
64
|
-
data: toNodeData(query.updates),
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
exports.buildCanonicalUpdateMutationIR = buildCanonicalUpdateMutationIR;
|
|
68
|
-
/** Builds an IRDeleteMutation from a delete factory's internal description. */
|
|
69
|
-
const buildCanonicalDeleteMutationIR = (query) => {
|
|
70
|
-
return {
|
|
71
|
-
kind: 'delete',
|
|
72
|
-
shape: query.shape.id,
|
|
73
|
-
ids: query.ids.map((id) => ({ id: id.id })),
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
exports.buildCanonicalDeleteMutationIR = buildCanonicalDeleteMutationIR;
|
|
77
|
-
//# sourceMappingURL=IRMutation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IRMutation.js","sourceRoot":"","sources":["../../../src/queries/IRMutation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { RawSelectInput } from './IRDesugar.js';
|
|
2
|
-
import { IRSelectQuery } from './IntermediateRepresentation.js';
|
|
3
|
-
/**
|
|
4
|
-
* Runs the full select pipeline: desugar → canonicalize → lower.
|
|
5
|
-
* Accepts either a RawSelectInput (from a query factory) or an already-built
|
|
6
|
-
* IRSelectQuery (returned as-is).
|
|
7
|
-
*/
|
|
8
|
-
export declare const buildSelectQuery: (query: RawSelectInput | IRSelectQuery) => IRSelectQuery;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildSelectQuery = void 0;
|
|
4
|
-
const IRDesugar_js_1 = require("./IRDesugar.js");
|
|
5
|
-
const IRCanonicalize_js_1 = require("./IRCanonicalize.js");
|
|
6
|
-
const IRLower_js_1 = require("./IRLower.js");
|
|
7
|
-
const isIRSelectQuery = (query) => !!query &&
|
|
8
|
-
typeof query === 'object' &&
|
|
9
|
-
'kind' in query &&
|
|
10
|
-
query.kind === 'select';
|
|
11
|
-
/**
|
|
12
|
-
* Runs the full select pipeline: desugar → canonicalize → lower.
|
|
13
|
-
* Accepts either a RawSelectInput (from a query factory) or an already-built
|
|
14
|
-
* IRSelectQuery (returned as-is).
|
|
15
|
-
*/
|
|
16
|
-
const buildSelectQuery = (query) => {
|
|
17
|
-
if (isIRSelectQuery(query)) {
|
|
18
|
-
return query;
|
|
19
|
-
}
|
|
20
|
-
const desugared = (0, IRDesugar_js_1.desugarSelectQuery)(query);
|
|
21
|
-
const canonical = (0, IRCanonicalize_js_1.canonicalizeDesugaredSelectQuery)(desugared);
|
|
22
|
-
return (0, IRLower_js_1.lowerSelectQuery)(canonical);
|
|
23
|
-
};
|
|
24
|
-
exports.buildSelectQuery = buildSelectQuery;
|
|
25
|
-
//# sourceMappingURL=IRPipeline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IRPipeline.js","sourceRoot":"","sources":["../../../src/queries/IRPipeline.ts"],"names":[],"mappings":";;;AAAA,iDAAkE;AAClE,2DAAqE;AACrE,6CAA8C;AAG9C,MAAM,eAAe,GAAG,CAAC,KAAc,EAA0B,EAAE,CACjE,CAAC,CAAC,KAAK;IACP,OAAO,KAAK,KAAK,QAAQ;IACzB,MAAM,IAAI,KAAK;IACd,KAAuB,CAAC,IAAI,KAAK,QAAQ,CAAC;AAE7C;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAqC,EAAiB,EAAE;IACvF,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,iCAAkB,EAAC,KAAuB,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,IAAA,oDAAgC,EAAC,SAAS,CAAC,CAAC;IAC9D,OAAO,IAAA,6BAAgB,EAAC,SAAS,CAAC,CAAC;AACrC,CAAC,CAAC;AARW,QAAA,gBAAgB,oBAQ3B"}
|