@_linked/core 2.2.0-next.20260313111743 → 2.2.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 +253 -0
- package/lib/cjs/ontologies/shacl.d.ts +5 -0
- package/lib/cjs/ontologies/shacl.js +10 -0
- package/lib/cjs/ontologies/shacl.js.map +1 -1
- package/lib/cjs/paths/PropertyPathExpr.d.ts +38 -0
- package/lib/cjs/paths/PropertyPathExpr.js +221 -0
- package/lib/cjs/paths/PropertyPathExpr.js.map +1 -0
- package/lib/cjs/paths/normalizePropertyPath.d.ts +23 -0
- package/lib/cjs/paths/normalizePropertyPath.js +75 -0
- package/lib/cjs/paths/normalizePropertyPath.js.map +1 -0
- package/lib/cjs/paths/pathExprToSparql.d.ts +14 -0
- package/lib/cjs/paths/pathExprToSparql.js +136 -0
- package/lib/cjs/paths/pathExprToSparql.js.map +1 -0
- package/lib/cjs/paths/serializePathToSHACL.d.ts +22 -0
- package/lib/cjs/paths/serializePathToSHACL.js +126 -0
- package/lib/cjs/paths/serializePathToSHACL.js.map +1 -0
- package/lib/cjs/queries/IRDesugar.d.ts +2 -0
- package/lib/cjs/queries/IRDesugar.js +24 -8
- package/lib/cjs/queries/IRDesugar.js.map +1 -1
- package/lib/cjs/queries/IRLower.js +9 -5
- package/lib/cjs/queries/IRLower.js.map +1 -1
- package/lib/cjs/queries/IRProjection.d.ts +2 -1
- package/lib/cjs/queries/IRProjection.js +7 -3
- package/lib/cjs/queries/IRProjection.js.map +1 -1
- package/lib/cjs/queries/IntermediateRepresentation.d.ts +3 -0
- package/lib/cjs/queries/QueryBuilder.js +3 -2
- package/lib/cjs/queries/QueryBuilder.js.map +1 -1
- package/lib/cjs/shapes/SHACL.d.ts +62 -24
- package/lib/cjs/shapes/SHACL.js +30 -26
- package/lib/cjs/shapes/SHACL.js.map +1 -1
- package/lib/cjs/sparql/SparqlAlgebra.d.ts +4 -0
- package/lib/cjs/sparql/algebraToString.js +6 -0
- package/lib/cjs/sparql/algebraToString.js.map +1 -1
- package/lib/cjs/sparql/irToAlgebra.js +13 -3
- package/lib/cjs/sparql/irToAlgebra.js.map +1 -1
- package/lib/cjs/utils/NodeReference.d.ts +24 -0
- package/lib/cjs/utils/NodeReference.js +41 -1
- package/lib/cjs/utils/NodeReference.js.map +1 -1
- package/lib/cjs/utils/ShapeClass.js +3 -1
- package/lib/cjs/utils/ShapeClass.js.map +1 -1
- package/lib/esm/ontologies/shacl.d.ts +5 -0
- package/lib/esm/ontologies/shacl.js +10 -0
- package/lib/esm/ontologies/shacl.js.map +1 -1
- package/lib/esm/paths/PropertyPathExpr.d.ts +38 -0
- package/lib/esm/paths/PropertyPathExpr.js +215 -0
- package/lib/esm/paths/PropertyPathExpr.js.map +1 -0
- package/lib/esm/paths/normalizePropertyPath.d.ts +23 -0
- package/lib/esm/paths/normalizePropertyPath.js +71 -0
- package/lib/esm/paths/normalizePropertyPath.js.map +1 -0
- package/lib/esm/paths/pathExprToSparql.d.ts +14 -0
- package/lib/esm/paths/pathExprToSparql.js +132 -0
- package/lib/esm/paths/pathExprToSparql.js.map +1 -0
- package/lib/esm/paths/serializePathToSHACL.d.ts +22 -0
- package/lib/esm/paths/serializePathToSHACL.js +122 -0
- package/lib/esm/paths/serializePathToSHACL.js.map +1 -0
- package/lib/esm/queries/IRDesugar.d.ts +2 -0
- package/lib/esm/queries/IRDesugar.js +24 -8
- package/lib/esm/queries/IRDesugar.js.map +1 -1
- package/lib/esm/queries/IRLower.js +9 -5
- package/lib/esm/queries/IRLower.js.map +1 -1
- package/lib/esm/queries/IRProjection.d.ts +2 -1
- package/lib/esm/queries/IRProjection.js +7 -3
- package/lib/esm/queries/IRProjection.js.map +1 -1
- package/lib/esm/queries/IntermediateRepresentation.d.ts +3 -0
- package/lib/esm/queries/QueryBuilder.js +3 -2
- package/lib/esm/queries/QueryBuilder.js.map +1 -1
- package/lib/esm/shapes/SHACL.d.ts +62 -24
- package/lib/esm/shapes/SHACL.js +30 -26
- package/lib/esm/shapes/SHACL.js.map +1 -1
- package/lib/esm/sparql/SparqlAlgebra.d.ts +4 -0
- package/lib/esm/sparql/algebraToString.js +6 -0
- package/lib/esm/sparql/algebraToString.js.map +1 -1
- package/lib/esm/sparql/irToAlgebra.js +13 -3
- package/lib/esm/sparql/irToAlgebra.js.map +1 -1
- package/lib/esm/utils/NodeReference.d.ts +24 -0
- package/lib/esm/utils/NodeReference.js +39 -1
- package/lib/esm/utils/NodeReference.js.map +1 -1
- package/lib/esm/utils/ShapeClass.js +3 -1
- package/lib/esm/utils/ShapeClass.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.normalizePropertyPath = normalizePropertyPath;
|
|
9
|
+
exports.getSimplePathId = getSimplePathId;
|
|
10
|
+
const PropertyPathExpr_js_1 = require("./PropertyPathExpr.js");
|
|
11
|
+
/** Path expression operator keys used to detect structured PathExpr objects. */
|
|
12
|
+
const PATH_EXPR_KEYS = new Set(['seq', 'alt', 'inv', 'zeroOrMore', 'oneOrMore', 'zeroOrOne', 'negatedPropertySet']);
|
|
13
|
+
/** Check if an object is a structured PathExpr (not a plain {id} ref). */
|
|
14
|
+
const isStructuredPathExpr = (value) => {
|
|
15
|
+
if (typeof value !== 'object' || value === null)
|
|
16
|
+
return false;
|
|
17
|
+
return Object.keys(value).some((key) => PATH_EXPR_KEYS.has(key));
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Normalize any property path decorator input into a canonical PathExpr.
|
|
21
|
+
*
|
|
22
|
+
* - `string` without path operators → preserved as-is (a PathRef)
|
|
23
|
+
* - `string` with operators → parsed via `parsePropertyPath`
|
|
24
|
+
* - `{id: string}` → preserved as PathRef
|
|
25
|
+
* - `PathExpr` structured object → passed through
|
|
26
|
+
* - `Array` → converted to `{seq: [...]}`
|
|
27
|
+
*/
|
|
28
|
+
function normalizePropertyPath(input) {
|
|
29
|
+
let result;
|
|
30
|
+
// String input
|
|
31
|
+
if (typeof input === 'string') {
|
|
32
|
+
if (PropertyPathExpr_js_1.PATH_OPERATOR_CHARS.test(input)) {
|
|
33
|
+
result = (0, PropertyPathExpr_js_1.parsePropertyPath)(input);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
result = input;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Array → sequence shorthand
|
|
40
|
+
else if (Array.isArray(input)) {
|
|
41
|
+
const normalized = input.map((item) => normalizePropertyPath(item));
|
|
42
|
+
result = normalized.length === 1 ? normalized[0] : { seq: normalized };
|
|
43
|
+
}
|
|
44
|
+
// Object
|
|
45
|
+
else if (typeof input === 'object' && input !== null) {
|
|
46
|
+
// Structured PathExpr (has seq, alt, inv, etc.)
|
|
47
|
+
if (isStructuredPathExpr(input)) {
|
|
48
|
+
result = input;
|
|
49
|
+
}
|
|
50
|
+
// Plain {id} ref
|
|
51
|
+
else if ('id' in input) {
|
|
52
|
+
result = input;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
throw new Error(`Invalid property path input: ${JSON.stringify(input)}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
throw new Error(`Invalid property path input: ${JSON.stringify(input)}`);
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Check whether a PathExpr is a simple single-IRI path (backward-compatible form).
|
|
65
|
+
* Returns the IRI string if simple, or null if complex.
|
|
66
|
+
*/
|
|
67
|
+
function getSimplePathId(expr) {
|
|
68
|
+
if (typeof expr === 'string')
|
|
69
|
+
return expr;
|
|
70
|
+
if (typeof expr === 'object' && expr !== null && 'id' in expr && !isStructuredPathExpr(expr)) {
|
|
71
|
+
return expr.id;
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=normalizePropertyPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizePropertyPath.js","sourceRoot":"","sources":["../../../src/paths/normalizePropertyPath.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAgCH,sDAiCC;AAMD,0CAMC;AA3ED,+DAAuF;AAYvF,gFAAgF;AAChF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAEpH,0EAA0E;AAC1E,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAW,EAAE;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,KAAiC;IACrE,IAAI,MAAgB,CAAC;IAErB,eAAe;IACf,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,yCAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,GAAG,IAAA,uCAAiB,EAAC,KAAK,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IACD,6BAA6B;SACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,EAAE,UAAU,EAAC,CAAC;IACvE,CAAC;IACD,SAAS;SACJ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACrD,gDAAgD;QAChD,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,GAAG,KAAiB,CAAC;QAC7B,CAAC;QACD,iBAAiB;aACZ,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,KAAqB,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,IAAc;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7F,OAAQ,IAAqB,CAAC,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PathExpr } from './PropertyPathExpr.js';
|
|
2
|
+
/**
|
|
3
|
+
* Collect all full IRIs from a PathExpr AST.
|
|
4
|
+
* Returns IRIs that need PREFIX declarations (full URIs from string refs
|
|
5
|
+
* containing `://` and from `{id}` refs). Does not collect prefixed-name
|
|
6
|
+
* string refs since those are already in prefix:local form.
|
|
7
|
+
*/
|
|
8
|
+
export declare function collectPathUris(expr: PathExpr): string[];
|
|
9
|
+
/**
|
|
10
|
+
* Render a PathExpr to SPARQL property path syntax.
|
|
11
|
+
* Handles all forms including negatedPropertySet.
|
|
12
|
+
* Adds parentheses only when needed for correct precedence.
|
|
13
|
+
*/
|
|
14
|
+
export declare function pathExprToSparql(expr: PathExpr): string;
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.collectPathUris = collectPathUris;
|
|
9
|
+
exports.pathExprToSparql = pathExprToSparql;
|
|
10
|
+
const PropertyPathExpr_js_1 = require("./PropertyPathExpr.js");
|
|
11
|
+
const sparqlUtils_js_1 = require("../sparql/sparqlUtils.js");
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// Precedence levels (higher = tighter binding)
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
const PREC_ALT = 1;
|
|
16
|
+
const PREC_SEQ = 2;
|
|
17
|
+
const PREC_UNARY = 3;
|
|
18
|
+
const PREC_PRIMARY = 4;
|
|
19
|
+
function refToSparql(ref) {
|
|
20
|
+
if (typeof ref === 'string') {
|
|
21
|
+
// If it looks like a full IRI (contains ://), use formatUri for prefix shortening
|
|
22
|
+
if (ref.includes('://'))
|
|
23
|
+
return (0, sparqlUtils_js_1.formatUri)(ref);
|
|
24
|
+
// Otherwise treat as prefixed name (already in prefix:local form)
|
|
25
|
+
return ref;
|
|
26
|
+
}
|
|
27
|
+
// {id} refs always contain full IRIs — use formatUri for prefix shortening
|
|
28
|
+
return (0, sparqlUtils_js_1.formatUri)(ref.id);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Collect all full IRIs from a PathExpr AST.
|
|
32
|
+
* Returns IRIs that need PREFIX declarations (full URIs from string refs
|
|
33
|
+
* containing `://` and from `{id}` refs). Does not collect prefixed-name
|
|
34
|
+
* string refs since those are already in prefix:local form.
|
|
35
|
+
*/
|
|
36
|
+
function collectPathUris(expr) {
|
|
37
|
+
const uris = [];
|
|
38
|
+
walkPathExpr(expr, uris);
|
|
39
|
+
return uris;
|
|
40
|
+
}
|
|
41
|
+
function collectRef(ref, uris) {
|
|
42
|
+
if (typeof ref === 'string') {
|
|
43
|
+
if (ref.includes('://'))
|
|
44
|
+
uris.push(ref);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
uris.push(ref.id);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function walkPathExpr(expr, uris) {
|
|
51
|
+
if ((0, PropertyPathExpr_js_1.isPathRef)(expr)) {
|
|
52
|
+
collectRef(expr, uris);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if ('seq' in expr) {
|
|
56
|
+
for (const e of expr.seq)
|
|
57
|
+
walkPathExpr(e, uris);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if ('alt' in expr) {
|
|
61
|
+
for (const e of expr.alt)
|
|
62
|
+
walkPathExpr(e, uris);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if ('inv' in expr) {
|
|
66
|
+
walkPathExpr(expr.inv, uris);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if ('zeroOrMore' in expr) {
|
|
70
|
+
walkPathExpr(expr.zeroOrMore, uris);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if ('oneOrMore' in expr) {
|
|
74
|
+
walkPathExpr(expr.oneOrMore, uris);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if ('zeroOrOne' in expr) {
|
|
78
|
+
walkPathExpr(expr.zeroOrOne, uris);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if ('negatedPropertySet' in expr) {
|
|
82
|
+
for (const item of expr.negatedPropertySet) {
|
|
83
|
+
if (typeof item === 'string' || (typeof item === 'object' && 'id' in item && !('inv' in item))) {
|
|
84
|
+
collectRef(item, uris);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
collectRef(item.inv, uris);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Render a PathExpr to SPARQL property path syntax.
|
|
94
|
+
* Handles all forms including negatedPropertySet.
|
|
95
|
+
* Adds parentheses only when needed for correct precedence.
|
|
96
|
+
*/
|
|
97
|
+
function pathExprToSparql(expr) {
|
|
98
|
+
return renderExpr(expr, 0);
|
|
99
|
+
}
|
|
100
|
+
function renderExpr(expr, parentPrec) {
|
|
101
|
+
if ((0, PropertyPathExpr_js_1.isPathRef)(expr)) {
|
|
102
|
+
return refToSparql(expr);
|
|
103
|
+
}
|
|
104
|
+
if ('seq' in expr) {
|
|
105
|
+
const inner = expr.seq.map((e) => renderExpr(e, PREC_SEQ)).join('/');
|
|
106
|
+
return parentPrec > PREC_SEQ ? `(${inner})` : inner;
|
|
107
|
+
}
|
|
108
|
+
if ('alt' in expr) {
|
|
109
|
+
const inner = expr.alt.map((e) => renderExpr(e, PREC_ALT)).join('|');
|
|
110
|
+
return parentPrec > PREC_ALT ? `(${inner})` : inner;
|
|
111
|
+
}
|
|
112
|
+
if ('inv' in expr) {
|
|
113
|
+
return `^${renderExpr(expr.inv, PREC_UNARY)}`;
|
|
114
|
+
}
|
|
115
|
+
if ('zeroOrMore' in expr) {
|
|
116
|
+
return `${renderExpr(expr.zeroOrMore, PREC_PRIMARY)}*`;
|
|
117
|
+
}
|
|
118
|
+
if ('oneOrMore' in expr) {
|
|
119
|
+
return `${renderExpr(expr.oneOrMore, PREC_PRIMARY)}+`;
|
|
120
|
+
}
|
|
121
|
+
if ('zeroOrOne' in expr) {
|
|
122
|
+
return `${renderExpr(expr.zeroOrOne, PREC_PRIMARY)}?`;
|
|
123
|
+
}
|
|
124
|
+
if ('negatedPropertySet' in expr) {
|
|
125
|
+
const items = expr.negatedPropertySet.map((item) => {
|
|
126
|
+
if (typeof item === 'string' || (typeof item === 'object' && 'id' in item && !('inv' in item))) {
|
|
127
|
+
return refToSparql(item);
|
|
128
|
+
}
|
|
129
|
+
const invItem = item;
|
|
130
|
+
return `^${refToSparql(invItem.inv)}`;
|
|
131
|
+
});
|
|
132
|
+
return items.length === 1 ? `!${items[0]}` : `!(${items.join('|')})`;
|
|
133
|
+
}
|
|
134
|
+
throw new Error(`Unknown PathExpr shape: ${JSON.stringify(expr)}`);
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=pathExprToSparql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathExprToSparql.js","sourceRoot":"","sources":["../../../src/paths/pathExprToSparql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PathExpr } from './PropertyPathExpr.js';
|
|
2
|
+
export type SHACLTriple = {
|
|
3
|
+
subject: string;
|
|
4
|
+
predicate: string;
|
|
5
|
+
object: string;
|
|
6
|
+
};
|
|
7
|
+
export type SHACLPathResult = {
|
|
8
|
+
/** The root node of the serialized path (IRI or blank node id). */
|
|
9
|
+
root: string;
|
|
10
|
+
/** Additional triples needed to describe the path structure. */
|
|
11
|
+
triples: SHACLTriple[];
|
|
12
|
+
};
|
|
13
|
+
/** Reset blank node counter (for deterministic testing). */
|
|
14
|
+
export declare function resetBlankNodeCounter(): void;
|
|
15
|
+
/**
|
|
16
|
+
* Serialize a PathExpr to SHACL RDF triples.
|
|
17
|
+
*
|
|
18
|
+
* - Simple PathRef → direct IRI (no extra triples)
|
|
19
|
+
* - Complex paths → blank nodes with SHACL path vocabulary
|
|
20
|
+
* - negatedPropertySet → throws (not supported by SHACL)
|
|
21
|
+
*/
|
|
22
|
+
export declare function serializePathToSHACL(expr: PathExpr): SHACLPathResult;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.resetBlankNodeCounter = resetBlankNodeCounter;
|
|
9
|
+
exports.serializePathToSHACL = serializePathToSHACL;
|
|
10
|
+
const PropertyPathExpr_js_1 = require("./PropertyPathExpr.js");
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Constants
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
const SH = 'http://www.w3.org/ns/shacl#';
|
|
15
|
+
const RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
|
|
16
|
+
const SH_ALTERNATIVE_PATH = `${SH}alternativePath`;
|
|
17
|
+
const SH_INVERSE_PATH = `${SH}inversePath`;
|
|
18
|
+
const SH_ZERO_OR_MORE_PATH = `${SH}zeroOrMorePath`;
|
|
19
|
+
const SH_ONE_OR_MORE_PATH = `${SH}oneOrMorePath`;
|
|
20
|
+
const SH_ZERO_OR_ONE_PATH = `${SH}zeroOrOnePath`;
|
|
21
|
+
const RDF_FIRST = `${RDF}first`;
|
|
22
|
+
const RDF_REST = `${RDF}rest`;
|
|
23
|
+
const RDF_NIL = `${RDF}nil`;
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Serializer
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
let blankNodeCounter = 0;
|
|
28
|
+
/** Reset blank node counter (for deterministic testing). */
|
|
29
|
+
function resetBlankNodeCounter() {
|
|
30
|
+
blankNodeCounter = 0;
|
|
31
|
+
}
|
|
32
|
+
function freshBlankNode() {
|
|
33
|
+
return `_:b${blankNodeCounter++}`;
|
|
34
|
+
}
|
|
35
|
+
function refToIri(ref) {
|
|
36
|
+
if (typeof ref === 'string')
|
|
37
|
+
return ref;
|
|
38
|
+
return ref.id;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Serialize a PathExpr to SHACL RDF triples.
|
|
42
|
+
*
|
|
43
|
+
* - Simple PathRef → direct IRI (no extra triples)
|
|
44
|
+
* - Complex paths → blank nodes with SHACL path vocabulary
|
|
45
|
+
* - negatedPropertySet → throws (not supported by SHACL)
|
|
46
|
+
*/
|
|
47
|
+
function serializePathToSHACL(expr) {
|
|
48
|
+
const triples = [];
|
|
49
|
+
const serialize = (e) => {
|
|
50
|
+
// Simple ref → IRI directly
|
|
51
|
+
if ((0, PropertyPathExpr_js_1.isPathRef)(e)) {
|
|
52
|
+
return refToIri(e);
|
|
53
|
+
}
|
|
54
|
+
// Sequence → RDF list
|
|
55
|
+
if ('seq' in e) {
|
|
56
|
+
return buildRdfList(e.seq, triples);
|
|
57
|
+
}
|
|
58
|
+
// Alternative → sh:alternativePath with RDF list
|
|
59
|
+
if ('alt' in e) {
|
|
60
|
+
const bnode = freshBlankNode();
|
|
61
|
+
const listRoot = buildRdfList(e.alt, triples);
|
|
62
|
+
triples.push({ subject: bnode, predicate: SH_ALTERNATIVE_PATH, object: listRoot });
|
|
63
|
+
return bnode;
|
|
64
|
+
}
|
|
65
|
+
// Inverse → sh:inversePath
|
|
66
|
+
if ('inv' in e) {
|
|
67
|
+
const bnode = freshBlankNode();
|
|
68
|
+
const inner = serialize(e.inv);
|
|
69
|
+
triples.push({ subject: bnode, predicate: SH_INVERSE_PATH, object: inner });
|
|
70
|
+
return bnode;
|
|
71
|
+
}
|
|
72
|
+
// zeroOrMore → sh:zeroOrMorePath
|
|
73
|
+
if ('zeroOrMore' in e) {
|
|
74
|
+
const bnode = freshBlankNode();
|
|
75
|
+
const inner = serialize(e.zeroOrMore);
|
|
76
|
+
triples.push({ subject: bnode, predicate: SH_ZERO_OR_MORE_PATH, object: inner });
|
|
77
|
+
return bnode;
|
|
78
|
+
}
|
|
79
|
+
// oneOrMore → sh:oneOrMorePath
|
|
80
|
+
if ('oneOrMore' in e) {
|
|
81
|
+
const bnode = freshBlankNode();
|
|
82
|
+
const inner = serialize(e.oneOrMore);
|
|
83
|
+
triples.push({ subject: bnode, predicate: SH_ONE_OR_MORE_PATH, object: inner });
|
|
84
|
+
return bnode;
|
|
85
|
+
}
|
|
86
|
+
// zeroOrOne → sh:zeroOrOnePath
|
|
87
|
+
if ('zeroOrOne' in e) {
|
|
88
|
+
const bnode = freshBlankNode();
|
|
89
|
+
const inner = serialize(e.zeroOrOne);
|
|
90
|
+
triples.push({ subject: bnode, predicate: SH_ZERO_OR_ONE_PATH, object: inner });
|
|
91
|
+
return bnode;
|
|
92
|
+
}
|
|
93
|
+
// negatedPropertySet → not supported in SHACL
|
|
94
|
+
if ('negatedPropertySet' in e) {
|
|
95
|
+
throw new Error('negatedPropertySet cannot be serialized to SHACL sh:path. ' +
|
|
96
|
+
'This path form is valid in SPARQL but has no SHACL representation.');
|
|
97
|
+
}
|
|
98
|
+
throw new Error(`Unknown PathExpr shape: ${JSON.stringify(e)}`);
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Build an RDF list from an array of PathExpr elements.
|
|
102
|
+
* Returns the root blank node of the list.
|
|
103
|
+
*/
|
|
104
|
+
function buildRdfList(items, out) {
|
|
105
|
+
if (items.length === 0)
|
|
106
|
+
return RDF_NIL;
|
|
107
|
+
let current = freshBlankNode();
|
|
108
|
+
const root = current;
|
|
109
|
+
for (let i = 0; i < items.length; i++) {
|
|
110
|
+
const itemNode = serialize(items[i]);
|
|
111
|
+
out.push({ subject: current, predicate: RDF_FIRST, object: itemNode });
|
|
112
|
+
if (i === items.length - 1) {
|
|
113
|
+
out.push({ subject: current, predicate: RDF_REST, object: RDF_NIL });
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
const next = freshBlankNode();
|
|
117
|
+
out.push({ subject: current, predicate: RDF_REST, object: next });
|
|
118
|
+
current = next;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return root;
|
|
122
|
+
}
|
|
123
|
+
const root = serialize(expr);
|
|
124
|
+
return { root, triples };
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=serializePathToSHACL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializePathToSHACL.js","sourceRoot":"","sources":["../../../src/paths/serializePathToSHACL.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { JSNonNullPrimitive, SortByPath, WhereMethods, WherePath } from './Selec
|
|
|
2
2
|
import { NodeReferenceValue, ShapeReferenceValue } from './QueryFactory.js';
|
|
3
3
|
import type { FieldSetEntry } from './FieldSet.js';
|
|
4
4
|
import { ExpressionNode } from '../expressions/ExpressionNode.js';
|
|
5
|
+
import type { PathExpr } from '../paths/PropertyPathExpr.js';
|
|
5
6
|
/**
|
|
6
7
|
* Pipeline input type — accepts FieldSet entries directly.
|
|
7
8
|
*/
|
|
@@ -35,6 +36,7 @@ export type RawSelectInput = {
|
|
|
35
36
|
export type DesugaredPropertyStep = {
|
|
36
37
|
kind: 'property_step';
|
|
37
38
|
propertyShapeId: string;
|
|
39
|
+
pathExpr?: PathExpr;
|
|
38
40
|
where?: DesugaredWhere;
|
|
39
41
|
};
|
|
40
42
|
export type DesugaredCountStep = {
|
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.desugarSelectQuery = exports.toWhere = void 0;
|
|
4
4
|
const SelectQuery_js_1 = require("./SelectQuery.js");
|
|
5
|
+
const PropertyPathExpr_js_1 = require("../paths/PropertyPathExpr.js");
|
|
5
6
|
const isShapeRef = (value) => !!value && typeof value === 'object' && 'id' in value && 'shape' in value;
|
|
6
7
|
const isNodeRef = (value) => typeof value === 'object' && value !== null && 'id' in value;
|
|
7
8
|
/**
|
|
8
9
|
* Convert PropertyShape segments to DesugaredPropertyStep[].
|
|
9
10
|
*/
|
|
10
|
-
const segmentsToSteps = (segments) => segments.map((seg) =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
const segmentsToSteps = (segments) => segments.map((seg) => {
|
|
12
|
+
const step = {
|
|
13
|
+
kind: 'property_step',
|
|
14
|
+
propertyShapeId: seg.id,
|
|
15
|
+
};
|
|
16
|
+
if (seg.path && (0, PropertyPathExpr_js_1.isComplexPathExpr)(seg.path)) {
|
|
17
|
+
step.pathExpr = seg.path;
|
|
18
|
+
}
|
|
19
|
+
return step;
|
|
20
|
+
});
|
|
14
21
|
/**
|
|
15
22
|
* Convert a FieldSetEntry directly to a DesugaredSelection.
|
|
16
23
|
*/
|
|
@@ -57,6 +64,9 @@ const desugarEntry = (entry) => {
|
|
|
57
64
|
kind: 'property_step',
|
|
58
65
|
propertyShapeId: segment.id,
|
|
59
66
|
};
|
|
67
|
+
if (segment.path && (0, PropertyPathExpr_js_1.isComplexPathExpr)(segment.path)) {
|
|
68
|
+
step.pathExpr = segment.path;
|
|
69
|
+
}
|
|
60
70
|
if (entry.scopedFilter && i === segments.length - 1) {
|
|
61
71
|
step.where = (0, exports.toWhere)(entry.scopedFilter);
|
|
62
72
|
}
|
|
@@ -226,10 +236,16 @@ const toSortBy = (query) => {
|
|
|
226
236
|
direction: query.sortBy.direction,
|
|
227
237
|
paths: query.sortBy.paths.map((path) => ({
|
|
228
238
|
kind: 'selection_path',
|
|
229
|
-
steps: path.segments.map((seg) =>
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
239
|
+
steps: path.segments.map((seg) => {
|
|
240
|
+
const step = {
|
|
241
|
+
kind: 'property_step',
|
|
242
|
+
propertyShapeId: seg.id,
|
|
243
|
+
};
|
|
244
|
+
if (seg.path && (0, PropertyPathExpr_js_1.isComplexPathExpr)(seg.path)) {
|
|
245
|
+
step.pathExpr = seg.path;
|
|
246
|
+
}
|
|
247
|
+
return step;
|
|
248
|
+
}),
|
|
233
249
|
})),
|
|
234
250
|
};
|
|
235
251
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IRDesugar.js","sourceRoot":"","sources":["../../../src/queries/IRDesugar.ts"],"names":[],"mappings":";;;AAAA,qDAY0B;
|
|
1
|
+
{"version":3,"file":"IRDesugar.js","sourceRoot":"","sources":["../../../src/queries/IRDesugar.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,18 +36,22 @@ class LoweringContext {
|
|
|
36
36
|
nextAlias() {
|
|
37
37
|
return `a${this.counter++}`;
|
|
38
38
|
}
|
|
39
|
-
getOrCreateTraversal(fromAlias, propertyShapeId) {
|
|
39
|
+
getOrCreateTraversal(fromAlias, propertyShapeId, pathExpr) {
|
|
40
40
|
const key = `${fromAlias}:${propertyShapeId}`;
|
|
41
41
|
const existing = this.traverseMap.get(key);
|
|
42
42
|
if (existing)
|
|
43
43
|
return existing;
|
|
44
44
|
const toAlias = this.nextAlias();
|
|
45
|
-
|
|
45
|
+
const pattern = {
|
|
46
46
|
kind: 'traverse',
|
|
47
47
|
from: fromAlias,
|
|
48
48
|
to: toAlias,
|
|
49
49
|
property: propertyShapeId,
|
|
50
|
-
}
|
|
50
|
+
};
|
|
51
|
+
if (pathExpr) {
|
|
52
|
+
pattern.pathExpr = pathExpr;
|
|
53
|
+
}
|
|
54
|
+
this.patterns.push(pattern);
|
|
51
55
|
this.traverseMap.set(key, toAlias);
|
|
52
56
|
return toAlias;
|
|
53
57
|
}
|
|
@@ -177,7 +181,7 @@ const lowerSelectQuery = (canonical) => {
|
|
|
177
181
|
const ctx = new LoweringContext();
|
|
178
182
|
const pathOptions = {
|
|
179
183
|
rootAlias: ctx.rootAlias,
|
|
180
|
-
resolveTraversal: (fromAlias, propertyShapeId) => ctx.getOrCreateTraversal(fromAlias, propertyShapeId),
|
|
184
|
+
resolveTraversal: (fromAlias, propertyShapeId, pathExpr) => ctx.getOrCreateTraversal(fromAlias, propertyShapeId, pathExpr),
|
|
181
185
|
};
|
|
182
186
|
const root = {
|
|
183
187
|
kind: 'shape_scan',
|
|
@@ -188,7 +192,7 @@ const lowerSelectQuery = (canonical) => {
|
|
|
188
192
|
let currentAlias = pathOptions.rootAlias;
|
|
189
193
|
for (const step of steps) {
|
|
190
194
|
if (step.kind === 'property_step') {
|
|
191
|
-
currentAlias = pathOptions.resolveTraversal(currentAlias, step.propertyShapeId);
|
|
195
|
+
currentAlias = pathOptions.resolveTraversal(currentAlias, step.propertyShapeId, step.pathExpr);
|
|
192
196
|
}
|
|
193
197
|
}
|
|
194
198
|
return currentAlias;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IRLower.js","sourceRoot":"","sources":["../../../src/queries/IRLower.ts"],"names":[],"mappings":";;;AAsCA,0DAiBC;AAtCD,wEAAuE;AAWvE,2DAAsD;AACtD,uDAAsF;AACtF,uDAA+C;AAG/C;;;;GAIG;AACH,SAAgB,uBAAuB,CACrC,aAA2B,EAC3B,aAAgE;IAEhE,MAAM,QAAQ,GAAQ,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvC,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAE,eAAuB,EAAU,EAAE;QACrE,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,eAAe,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACzC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,CAAC;AAC7B,CAAC;AAED,MAAM,eAAe;IAOnB;QANQ,YAAO,GAAG,CAAC,CAAC;QACZ,aAAQ,GAAqB,EAAE,CAAC;QAChC,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,cAAS,GAAG,IAAI,GAAG,EAAwB,CAAC;QAIlD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACpC,CAAC;IAEO,SAAS;QACf,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IAC9B,CAAC;IAED,oBAAoB,CAAC,SAAiB,EAAE,eAAuB;QAC7D,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,eAAe;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,OAAe,EAAE,MAAoB;QAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtD,uCAAW,CAAC,KAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,IAAE;YACnD,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAYD,MAAM,UAAU,GAAG,CAAC,KAAc,EAAgC,EAAE,CAClE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,CAAC;AAE5E,MAAM,SAAS,GAAG,CAAC,KAAc,EAA+B,EAAE,CAChE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC;AAE/D,MAAM,SAAS,GAAG,CAChB,IAA4B,EAC5B,OAA4B,EACd,EAAE,CAAC,IAAA,8CAA4B,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAE/D,MAAM,aAAa,GAAG,CACpB,GAAsB,EACtB,GAAmB,EACnB,OAA4B,EACd,EAAE;IAChB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;QACnF,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC;IAC5C,CAAC;IACD,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;QACxB,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,EAAC,CAAC;IAC1D,CAAC;IACD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,GAAsF,CAAC;YACvG,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC1C,qEAAqE;gBACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACnE,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBAClD,OAAO;wBACL,IAAI,EAAE,uBAAuB;wBAC7B,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;wBAC9B,QAAQ,EAAE,QAAQ,CAAC,eAAe;qBACnC,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAC,CAAC;QACjD,CAAC;QACD,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAG,GAA0B,CAAC,EAAE,EAAC,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,KAA+B,EAC/B,GAAmB,EACnB,OAA4B,EACd,EAAE;IAChB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,KAAiC,CAAC;YAC/C,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAgD;gBAC/D,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAC1B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC;oBAC5C,CAAC,CAAC,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAC;aACxC,CAAC;QACJ,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,OAAO,GAAG,KAA8B,CAAC;YAC/C,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;aAC/E,CAAC;QACJ,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,KAA6B,CAAC;YAC7C,MAAM,EAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,UAAU,EAAC,GAAG,uBAAuB,CACrF,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,EACzB,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAqB,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAC,CAAC,CACpF,CAAC;YAEF,IAAI,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;YACxC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBAClC,eAAe,GAAG,sBAAsB,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC/C,SAAS,EAAE,eAAe;gBAC1B,gBAAgB,EAAE,sBAAsB;aACzC,CAAC,CAAC;YAEH,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;oBAC9B,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;oBACf,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAC;gBACxC,MAAM;aACP,CAAC;QACJ,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,GAAG,GAAG,KAA0B,CAAC;YACvC,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC;aACrD,CAAC;QACJ,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,6EAA6E;YAC7E,MAAM,SAAS,GAAG,KAAiC,CAAC;YACpD,OAAO,IAAA,yCAAqB,EAC1B,SAAS,CAAC,cAAc,CAAC,EAAE,EAC3B,SAAS,CAAC,cAAc,CAAC,KAAK,EAC9B,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,gBAAgB,CACzB,CAAC;QACJ,CAAC;QACD;YACE,MAAM,WAAW,GAAU,KAAK,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,iCAAkC,WAA8B,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC,CAAC;AAcF,MAAM,qBAAqB,GAAG,CAC5B,UAA2B,EAC3B,IAA4B,EACJ,EAAE,CAAC,CAAC;IAC5B,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;CACtC,CAAC,CAAC;AAEH;;;;GAIG;AACI,MAAM,gBAAgB,GAAG,CAC9B,SAAwC,EACzB,EAAE;IACjB,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;IAClC,MAAM,WAAW,GAAwB;QACvC,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,gBAAgB,EAAE,CAAC,SAAiB,EAAE,eAAuB,EAAE,EAAE,CAC/D,GAAG,CAAC,oBAAoB,CAAC,SAAS,EAAE,eAAe,CAAC;KACvD,CAAC;IAEF,MAAM,IAAI,GAAuB;QAC/B,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,SAAS,CAAC,OAAO,IAAI,EAAE;QAC9B,KAAK,EAAE,GAAG,CAAC,SAAS;KACrB,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAU,EAAE;QACxD,IAAI,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAClC,YAAY,GAAG,WAAW,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAC7B,SAA6B,EAC7B,GAAY,EACZ,aAA8B,EAAE,EACd,EAAE;QACpB,IAAI,SAAS,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACxC,OAAO,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC;oBAClD,GAAG;iBACJ,CAAC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACpC,OAAO,sBAAsB,CAC3B,SAAS,CAAC,UAAU,EACpB,GAAG,EACH,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,UAAU,CAAC,CACzC,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAC3D,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACzC,OAAO,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE,CACtD,sBAAsB,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,CAAC,CACzD,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1D,OAAO,CAAC;oBACN,IAAI,EAAE,YAAY;oBAClB,GAAG,EAAE,GAAG,IAAI,OAAO;oBACnB,UAAU,EAAE,UAAU,CAAC,cAAc,EAAE,GAAG,EAAE;wBAC1C,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC;wBACrC,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;qBAC/C,CAAC;iBACH,CAAC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,SAAsC,CAAC;YAC1D,MAAM,QAAQ,GAAG,IAAA,yCAAqB,EACpC,UAAU,CAAC,cAAc,CAAC,EAAE,EAC5B,UAAU,CAAC,cAAc,CAAC,KAAK,EAC/B,cAAc,CAAC,UAAU,CAAC,EAC1B,WAAW,CAAC,gBAAgB,CAC7B,CAAC;YACF,OAAO,CAAC;oBACN,IAAI,EAAE,YAAY;oBAClB,GAAG,EAAE,GAAG,IAAI,MAAM;oBAClB,UAAU,EAAE,QAAQ;iBACrB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CACjE,sBAAsB,CAAC,SAAS,CAAC,CAClC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,8BAAY,CAAC,YAAY,CAAC,CAAC;IACvD,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,MAAM,gBAAgB,GAAuB,EAAE,CAAC;IAEhD,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,mBAAmB,GAAG,CAAC,aAAqB,EAAE,KAAqB,EAAE,EAAE;QAC3E,MAAM,SAAS,GAAG,IAAA,qCAAiB,EAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE;YAC5C,SAAS,EAAE,aAAa;YACxB,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;SAC/C,CAAC,CAAC;QACH,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM;YAC9B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAA,uCAAqB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACb,MAAM,KAAK,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACvD,UAAU,CAAC,IAAI,CAAC;YACd,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,MAAM;gBAC9B,CAAC,CAAC,IAAA,8CAA4B,EAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC;gBAC3E,CAAC,CAAC,IAAI,CAAC,UAAU;SACpB,CAAC,CAAC;QACH,gBAAgB,CAAC,IAAI,CAAC;YACpB,GAAG;YACH,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F,MAAM,OAAO,GAAgC,SAAS,CAAC,MAAM;QAC3D,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpC,UAAU,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC;YACxC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS;SACtC,CAAC,CAAC;QACL,CAAC,CAAC,SAAS,CAAC;IAEd,+CAA+C;IAC/C,MAAM,aAAa,GAAqB,EAAE,CAAC;IAC3C,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,2CAA2C;gBAC3C,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,EAAC;iBAC1E,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,8EAA8E;gBAC9E,iEAAiE;gBACjE,MAAM,UAAU,GAAwB,EAAE,CAAC;gBAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;oBACvC,IAAI,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC;oBACjC,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;wBAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;wBACpC,UAAU,CAAC,IAAI,CAAC;4BACd,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,YAAY;4BAClB,EAAE,EAAE,OAAO;4BACX,QAAQ,EAAE,OAAO,CAAC,eAAe;yBAClC,CAAC,CAAC;wBACH,YAAY,GAAG,OAAO,CAAC;oBACzB,CAAC;gBACH,CAAC;gBACD,MAAM,YAAY,GAAmB,UAAU,CAAC,MAAM,KAAK,CAAC;oBAC1D,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;oBACf,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAC,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAC,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACvB,qEAAqE;gBACrE,MAAM,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAC,GAAG,uBAAuB,CACzF,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,EACzB,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAqB,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAC,CAAC,CACpF,CAAC;gBACF,MAAM,YAAY,GAAwB;oBACxC,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,gBAAgB,EAAE,qBAAqB;iBACxC,CAAC;gBACF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;gBAC1D,MAAM,YAAY,GAAmB,eAAe,CAAC,MAAM,KAAK,CAAC;oBAC/D,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;oBACpB,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;wBAC1B,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAC;wBAC3C,CAAC,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,EAAC,CAAC;gBACjF,aAAa,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,IAAI;QACJ,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,EAAE,GAAG,aAAa,CAAC;QAClD,UAAU;QACV,KAAK;QACL,OAAO;QACP,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,SAAS,EAAE,gBAAgB;KAC5B,CAAC;AACJ,CAAC,CAAC;AAzMW,QAAA,gBAAgB,oBAyM3B;AAEF;;;GAGG;AACI,MAAM,cAAc,GAAG,CAC5B,KAA+B,EAC/B,YAAoB,IAAI,EACgC,EAAE;IAC1D,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,kCAAkC;IACnD,MAAM,GAAG,GAAmB;QAC1B,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,EAAE,EAAE;KACrC,CAAC;IAEF,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAC,GAAG,uBAAuB,CAC7D,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE,EACzB,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAqB,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAC,CAAC,CACpF,CAAC;IAEF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAC,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAC,CAAC,CAAC;IAC5E,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAC,CAAC;AAClD,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB"}
|
|
1
|
+
{"version":3,"file":"IRLower.js","sourceRoot":"","sources":["../../../src/queries/IRLower.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DesugaredSelectionPath, DesugaredWhere } from './IRDesugar.js';
|
|
2
2
|
import { IRAliasScope } from './IRAliasScope.js';
|
|
3
3
|
import { IRExpression, IRProjectionItem, IRResultMapEntry } from './IntermediateRepresentation.js';
|
|
4
|
+
import type { PathExpr } from '../paths/PropertyPathExpr.js';
|
|
4
5
|
/**
|
|
5
6
|
* Callback invoked when a property step with an inline `.where()` is encountered
|
|
6
7
|
* during path lowering. The callback receives the traversal alias (target entity)
|
|
@@ -9,7 +10,7 @@ import { IRExpression, IRProjectionItem, IRResultMapEntry } from './Intermediate
|
|
|
9
10
|
export type InlineFilterCallback = (traverseAlias: string, where: DesugaredWhere) => void;
|
|
10
11
|
export type ProjectionPathLoweringOptions = {
|
|
11
12
|
rootAlias: string;
|
|
12
|
-
resolveTraversal: (fromAlias: string, propertyShapeId: string) => string;
|
|
13
|
+
resolveTraversal: (fromAlias: string, propertyShapeId: string, pathExpr?: PathExpr) => string;
|
|
13
14
|
};
|
|
14
15
|
export type CanonicalProjectionResult = {
|
|
15
16
|
projection: IRProjectionItem[];
|