@_linked/core 2.12.0 → 2.13.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 +6 -0
- package/lib/esm/queries/IRPipeline.d.ts +7 -1
- package/lib/esm/queries/IRPipeline.js +20 -6
- package/lib/esm/queries/IRPipeline.js.map +1 -1
- package/lib/esm/queries/queryDispatch.js +12 -2
- package/lib/esm/queries/queryDispatch.js.map +1 -1
- package/package.json +10 -13
- package/lib/cjs/collections/CoreSet.d.ts +0 -47
- package/lib/cjs/collections/CoreSet.js +0 -136
- package/lib/cjs/collections/CoreSet.js.map +0 -1
- package/lib/cjs/collections/ShapeSet.d.ts +0 -6
- package/lib/cjs/collections/ShapeSet.js +0 -20
- package/lib/cjs/collections/ShapeSet.js.map +0 -1
- package/lib/cjs/expressions/Expr.d.ts +0 -29
- package/lib/cjs/expressions/Expr.js +0 -80
- package/lib/cjs/expressions/Expr.js.map +0 -1
- package/lib/cjs/expressions/ExpressionMethods.d.ts +0 -85
- package/lib/cjs/expressions/ExpressionMethods.js +0 -3
- package/lib/cjs/expressions/ExpressionMethods.js.map +0 -1
- package/lib/cjs/expressions/ExpressionNode.d.ts +0 -144
- package/lib/cjs/expressions/ExpressionNode.js +0 -432
- package/lib/cjs/expressions/ExpressionNode.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -29
- package/lib/cjs/index.js +0 -65
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/interfaces/ICoreIterable.d.ts +0 -14
- package/lib/cjs/interfaces/ICoreIterable.js +0 -3
- package/lib/cjs/interfaces/ICoreIterable.js.map +0 -1
- package/lib/cjs/interfaces/IDataset.d.ts +0 -26
- package/lib/cjs/interfaces/IDataset.js +0 -3
- package/lib/cjs/interfaces/IDataset.js.map +0 -1
- package/lib/cjs/interfaces/IFileStore.d.ts +0 -16
- package/lib/cjs/interfaces/IFileStore.js +0 -3
- package/lib/cjs/interfaces/IFileStore.js.map +0 -1
- package/lib/cjs/ontologies/linked-core.d.ts +0 -15
- package/lib/cjs/ontologies/linked-core.js +0 -38
- package/lib/cjs/ontologies/linked-core.js.map +0 -1
- package/lib/cjs/ontologies/npm.d.ts +0 -6
- package/lib/cjs/ontologies/npm.js +0 -15
- package/lib/cjs/ontologies/npm.js.map +0 -1
- package/lib/cjs/ontologies/owl.d.ts +0 -14
- package/lib/cjs/ontologies/owl.js +0 -21
- package/lib/cjs/ontologies/owl.js.map +0 -1
- package/lib/cjs/ontologies/rdf.d.ts +0 -13
- package/lib/cjs/ontologies/rdf.js +0 -27
- package/lib/cjs/ontologies/rdf.js.map +0 -1
- package/lib/cjs/ontologies/rdfs.d.ts +0 -16
- package/lib/cjs/ontologies/rdfs.js +0 -33
- package/lib/cjs/ontologies/rdfs.js.map +0 -1
- package/lib/cjs/ontologies/shacl.d.ts +0 -103
- package/lib/cjs/ontologies/shacl.js +0 -152
- package/lib/cjs/ontologies/shacl.js.map +0 -1
- package/lib/cjs/ontologies/xsd.d.ts +0 -19
- package/lib/cjs/ontologies/xsd.js +0 -41
- package/lib/cjs/ontologies/xsd.js.map +0 -1
- package/lib/cjs/package.d.ts +0 -4
- package/lib/cjs/package.js +0 -6
- package/lib/cjs/package.js.map +0 -1
- package/lib/cjs/package.json +0 -9
- package/lib/cjs/paths/PropertyPathExpr.d.ts +0 -38
- package/lib/cjs/paths/PropertyPathExpr.js +0 -221
- package/lib/cjs/paths/PropertyPathExpr.js.map +0 -1
- package/lib/cjs/paths/normalizePropertyPath.d.ts +0 -23
- package/lib/cjs/paths/normalizePropertyPath.js +0 -75
- package/lib/cjs/paths/normalizePropertyPath.js.map +0 -1
- package/lib/cjs/paths/pathExprToSparql.d.ts +0 -14
- package/lib/cjs/paths/pathExprToSparql.js +0 -136
- package/lib/cjs/paths/pathExprToSparql.js.map +0 -1
- package/lib/cjs/queries/ContextRef.d.ts +0 -32
- package/lib/cjs/queries/ContextRef.js +0 -69
- package/lib/cjs/queries/ContextRef.js.map +0 -1
- package/lib/cjs/queries/CreateBuilder.d.ts +0 -59
- package/lib/cjs/queries/CreateBuilder.js +0 -138
- package/lib/cjs/queries/CreateBuilder.js.map +0 -1
- package/lib/cjs/queries/CreateQuery.d.ts +0 -20
- package/lib/cjs/queries/CreateQuery.js +0 -3
- package/lib/cjs/queries/CreateQuery.js.map +0 -1
- package/lib/cjs/queries/DeleteBuilder.d.ts +0 -56
- package/lib/cjs/queries/DeleteBuilder.js +0 -172
- package/lib/cjs/queries/DeleteBuilder.js.map +0 -1
- package/lib/cjs/queries/DeleteQuery.d.ts +0 -37
- package/lib/cjs/queries/DeleteQuery.js +0 -3
- package/lib/cjs/queries/DeleteQuery.js.map +0 -1
- package/lib/cjs/queries/DslJsonExpression.d.ts +0 -68
- package/lib/cjs/queries/DslJsonExpression.js +0 -427
- package/lib/cjs/queries/DslJsonExpression.js.map +0 -1
- package/lib/cjs/queries/FieldSet.d.ts +0 -310
- package/lib/cjs/queries/FieldSet.js +0 -802
- package/lib/cjs/queries/FieldSet.js.map +0 -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 -19
- package/lib/cjs/queries/IRCanonicalize.js +0 -19
- package/lib/cjs/queries/IRCanonicalize.js.map +0 -1
- package/lib/cjs/queries/IRDesugar.d.ts +0 -123
- package/lib/cjs/queries/IRDesugar.js +0 -261
- package/lib/cjs/queries/IRDesugar.js.map +0 -1
- package/lib/cjs/queries/IRLower.d.ts +0 -25
- package/lib/cjs/queries/IRLower.js +0 -398
- package/lib/cjs/queries/IRLower.js.map +0 -1
- package/lib/cjs/queries/IRMutation.d.ts +0 -53
- package/lib/cjs/queries/IRMutation.js +0 -130
- 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 -39
- package/lib/cjs/queries/IRProjection.js +0 -105
- package/lib/cjs/queries/IRProjection.js.map +0 -1
- package/lib/cjs/queries/IntermediateRepresentation.d.ts +0 -282
- package/lib/cjs/queries/IntermediateRepresentation.js +0 -3
- package/lib/cjs/queries/IntermediateRepresentation.js.map +0 -1
- package/lib/cjs/queries/MutationQuery.d.ts +0 -50
- package/lib/cjs/queries/MutationQuery.js +0 -334
- package/lib/cjs/queries/MutationQuery.js.map +0 -1
- package/lib/cjs/queries/MutationSerialization.d.ts +0 -102
- package/lib/cjs/queries/MutationSerialization.js +0 -207
- package/lib/cjs/queries/MutationSerialization.js.map +0 -1
- package/lib/cjs/queries/MutationThenable.d.ts +0 -18
- package/lib/cjs/queries/MutationThenable.js +0 -32
- package/lib/cjs/queries/MutationThenable.js.map +0 -1
- package/lib/cjs/queries/PropertyPath.d.ts +0 -38
- package/lib/cjs/queries/PropertyPath.js +0 -82
- package/lib/cjs/queries/PropertyPath.js.map +0 -1
- package/lib/cjs/queries/ProxiedPathBuilder.d.ts +0 -14
- package/lib/cjs/queries/ProxiedPathBuilder.js +0 -29
- package/lib/cjs/queries/ProxiedPathBuilder.js.map +0 -1
- package/lib/cjs/queries/QueryBuilder.d.ts +0 -193
- package/lib/cjs/queries/QueryBuilder.js +0 -519
- package/lib/cjs/queries/QueryBuilder.js.map +0 -1
- package/lib/cjs/queries/QueryBuilderSerialization.d.ts +0 -31
- package/lib/cjs/queries/QueryBuilderSerialization.js +0 -68
- package/lib/cjs/queries/QueryBuilderSerialization.js.map +0 -1
- package/lib/cjs/queries/QueryContext.d.ts +0 -50
- package/lib/cjs/queries/QueryContext.js +0 -147
- package/lib/cjs/queries/QueryContext.js.map +0 -1
- package/lib/cjs/queries/QueryFactory.d.ts +0 -80
- package/lib/cjs/queries/QueryFactory.js +0 -21
- package/lib/cjs/queries/QueryFactory.js.map +0 -1
- package/lib/cjs/queries/SelectQuery.d.ts +0 -302
- package/lib/cjs/queries/SelectQuery.js +0 -761
- package/lib/cjs/queries/SelectQuery.js.map +0 -1
- package/lib/cjs/queries/UpdateBuilder.d.ts +0 -69
- package/lib/cjs/queries/UpdateBuilder.js +0 -199
- package/lib/cjs/queries/UpdateBuilder.js.map +0 -1
- package/lib/cjs/queries/UpdateQuery.d.ts +0 -18
- package/lib/cjs/queries/UpdateQuery.js +0 -3
- package/lib/cjs/queries/UpdateQuery.js.map +0 -1
- package/lib/cjs/queries/fromJSON.d.ts +0 -16
- package/lib/cjs/queries/fromJSON.js +0 -41
- package/lib/cjs/queries/fromJSON.js.map +0 -1
- package/lib/cjs/queries/lower.d.ts +0 -28
- package/lib/cjs/queries/lower.js +0 -114
- package/lib/cjs/queries/lower.js.map +0 -1
- package/lib/cjs/queries/lowerMutationJSON.d.ts +0 -25
- package/lib/cjs/queries/lowerMutationJSON.js +0 -173
- package/lib/cjs/queries/lowerMutationJSON.js.map +0 -1
- package/lib/cjs/queries/mutationLowerSpec.d.ts +0 -32
- package/lib/cjs/queries/mutationLowerSpec.js +0 -8
- package/lib/cjs/queries/mutationLowerSpec.js.map +0 -1
- package/lib/cjs/queries/queryDispatch.d.ts +0 -33
- package/lib/cjs/queries/queryDispatch.js +0 -33
- package/lib/cjs/queries/queryDispatch.js.map +0 -1
- package/lib/cjs/queries/resolveShape.d.ts +0 -10
- package/lib/cjs/queries/resolveShape.js +0 -23
- package/lib/cjs/queries/resolveShape.js.map +0 -1
- package/lib/cjs/queries/wireVersion.d.ts +0 -7
- package/lib/cjs/queries/wireVersion.js +0 -25
- package/lib/cjs/queries/wireVersion.js.map +0 -1
- package/lib/cjs/shapes/List.d.ts +0 -35
- package/lib/cjs/shapes/List.js +0 -72
- package/lib/cjs/shapes/List.js.map +0 -1
- package/lib/cjs/shapes/PathNode.d.ts +0 -20
- package/lib/cjs/shapes/PathNode.js +0 -68
- package/lib/cjs/shapes/PathNode.js.map +0 -1
- package/lib/cjs/shapes/SHACL.d.ts +0 -300
- package/lib/cjs/shapes/SHACL.js +0 -612
- package/lib/cjs/shapes/SHACL.js.map +0 -1
- package/lib/cjs/shapes/Shape.d.ts +0 -74
- package/lib/cjs/shapes/Shape.js +0 -124
- package/lib/cjs/shapes/Shape.js.map +0 -1
- package/lib/cjs/shapes/serializePathToNodeData.d.ts +0 -24
- package/lib/cjs/shapes/serializePathToNodeData.js +0 -67
- package/lib/cjs/shapes/serializePathToNodeData.js.map +0 -1
- package/lib/cjs/shapes/syncShapes.d.ts +0 -38
- package/lib/cjs/shapes/syncShapes.js +0 -214
- package/lib/cjs/shapes/syncShapes.js.map +0 -1
- package/lib/cjs/sparql/SparqlAlgebra.d.ts +0 -190
- package/lib/cjs/sparql/SparqlAlgebra.js +0 -4
- package/lib/cjs/sparql/SparqlAlgebra.js.map +0 -1
- package/lib/cjs/sparql/SparqlDataset.d.ts +0 -60
- package/lib/cjs/sparql/SparqlDataset.js +0 -117
- package/lib/cjs/sparql/SparqlDataset.js.map +0 -1
- package/lib/cjs/sparql/algebraToString.d.ts +0 -13
- package/lib/cjs/sparql/algebraToString.js +0 -385
- package/lib/cjs/sparql/algebraToString.js.map +0 -1
- package/lib/cjs/sparql/index.d.ts +0 -9
- package/lib/cjs/sparql/index.js +0 -41
- package/lib/cjs/sparql/index.js.map +0 -1
- package/lib/cjs/sparql/irToAlgebra.d.ts +0 -79
- package/lib/cjs/sparql/irToAlgebra.js +0 -2042
- package/lib/cjs/sparql/irToAlgebra.js.map +0 -1
- package/lib/cjs/sparql/resultMapping.d.ts +0 -36
- package/lib/cjs/sparql/resultMapping.js +0 -563
- package/lib/cjs/sparql/resultMapping.js.map +0 -1
- package/lib/cjs/sparql/sparqlUtils.d.ts +0 -53
- package/lib/cjs/sparql/sparqlUtils.js +0 -154
- package/lib/cjs/sparql/sparqlUtils.js.map +0 -1
- package/lib/cjs/utils/LinkedErrorLogging.d.ts +0 -13
- package/lib/cjs/utils/LinkedErrorLogging.js +0 -22
- package/lib/cjs/utils/LinkedErrorLogging.js.map +0 -1
- package/lib/cjs/utils/LinkedFileStorage.d.ts +0 -23
- package/lib/cjs/utils/LinkedFileStorage.js +0 -62
- package/lib/cjs/utils/LinkedFileStorage.js.map +0 -1
- package/lib/cjs/utils/LinkedStorage.d.ts +0 -40
- package/lib/cjs/utils/LinkedStorage.js +0 -148
- package/lib/cjs/utils/LinkedStorage.js.map +0 -1
- package/lib/cjs/utils/NameSpace.d.ts +0 -2
- package/lib/cjs/utils/NameSpace.js +0 -8
- package/lib/cjs/utils/NameSpace.js.map +0 -1
- package/lib/cjs/utils/NodeReference.d.ts +0 -30
- package/lib/cjs/utils/NodeReference.js +0 -54
- package/lib/cjs/utils/NodeReference.js.map +0 -1
- package/lib/cjs/utils/Package.d.ts +0 -153
- package/lib/cjs/utils/Package.js +0 -419
- package/lib/cjs/utils/Package.js.map +0 -1
- package/lib/cjs/utils/Prefix.d.ts +0 -22
- package/lib/cjs/utils/Prefix.js +0 -104
- package/lib/cjs/utils/Prefix.js.map +0 -1
- package/lib/cjs/utils/ShapeClass.d.ts +0 -30
- package/lib/cjs/utils/ShapeClass.js +0 -180
- package/lib/cjs/utils/ShapeClass.js.map +0 -1
- package/lib/cjs/utils/URI.d.ts +0 -18
- package/lib/cjs/utils/URI.js +0 -42
- package/lib/cjs/utils/URI.js.map +0 -1
- package/lib/cjs/utils/cached.d.ts +0 -14
- package/lib/cjs/utils/cached.js +0 -71
- package/lib/cjs/utils/cached.js.map +0 -1
- package/lib/cjs/utils/loadStores.d.ts +0 -34
- package/lib/cjs/utils/loadStores.js +0 -105
- package/lib/cjs/utils/loadStores.js.map +0 -1
- package/lib/cjs/utils/parseDatasetsConfig.d.ts +0 -49
- package/lib/cjs/utils/parseDatasetsConfig.js +0 -110
- package/lib/cjs/utils/parseDatasetsConfig.js.map +0 -1
- package/lib/esm/package.json +0 -9
|
@@ -1,519 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.QueryBuilder = exports.SelectBuilder = void 0;
|
|
13
|
-
const resolveShape_js_1 = require("./resolveShape.js");
|
|
14
|
-
const SelectQuery_js_1 = require("./SelectQuery.js");
|
|
15
|
-
const wireVersion_js_1 = require("./wireVersion.js");
|
|
16
|
-
const queryDispatch_js_1 = require("./queryDispatch.js");
|
|
17
|
-
const NodeReference_js_1 = require("../utils/NodeReference.js");
|
|
18
|
-
const FieldSet_js_1 = require("./FieldSet.js");
|
|
19
|
-
const QueryContext_js_1 = require("./QueryContext.js");
|
|
20
|
-
const ContextRef_js_1 = require("./ContextRef.js");
|
|
21
|
-
const ProxiedPathBuilder_js_1 = require("./ProxiedPathBuilder.js");
|
|
22
|
-
const QueryBuilderSerialization_js_1 = require("./QueryBuilderSerialization.js");
|
|
23
|
-
/**
|
|
24
|
-
* An immutable, fluent query builder for select queries.
|
|
25
|
-
*
|
|
26
|
-
* Every mutation method (`.select()`, `.where()`, `.limit()`, etc.) returns
|
|
27
|
-
* a **new** SelectBuilder instance — the original is never modified.
|
|
28
|
-
*
|
|
29
|
-
* Implements `PromiseLike` so queries execute on `await`:
|
|
30
|
-
* ```ts
|
|
31
|
-
* const results = await SelectBuilder.from(Person).select(p => p.name);
|
|
32
|
-
* ```
|
|
33
|
-
*
|
|
34
|
-
* Produces a raw select input (`toRawInput()`) that the free `lower()` function
|
|
35
|
-
* turns into IR; the builder itself carries no dependency on the IR pipeline.
|
|
36
|
-
*/
|
|
37
|
-
class SelectBuilder {
|
|
38
|
-
constructor(init) {
|
|
39
|
-
/** Discriminator for the free `lower()` function and dataset routing. */
|
|
40
|
-
this.__queryKind = 'select';
|
|
41
|
-
this._shape = init.shape;
|
|
42
|
-
this._selectFn = init.selectFn;
|
|
43
|
-
this._whereFn = init.whereFn;
|
|
44
|
-
this._sortByFn = init.sortByFn;
|
|
45
|
-
this._sortDirection = init.sortDirection;
|
|
46
|
-
this._limit = init.limit;
|
|
47
|
-
this._offset = init.offset;
|
|
48
|
-
this._subject = init.subject;
|
|
49
|
-
this._subjects = init.subjects;
|
|
50
|
-
this._singleResult = init.singleResult;
|
|
51
|
-
this._selectAllLabels = init.selectAllLabels;
|
|
52
|
-
this._fieldSet = init.fieldSet;
|
|
53
|
-
this._preloads = init.preloads;
|
|
54
|
-
this._minusEntries = init.minusEntries;
|
|
55
|
-
this._nullSubject = init._nullSubject;
|
|
56
|
-
this._pendingContextName = init._pendingContextName;
|
|
57
|
-
this._where = init._where;
|
|
58
|
-
this._sortBy = init._sortBy;
|
|
59
|
-
this._rawMinusEntries = init._rawMinusEntries;
|
|
60
|
-
}
|
|
61
|
-
/** Create a shallow clone with overrides. */
|
|
62
|
-
clone(overrides = {}) {
|
|
63
|
-
return new SelectBuilder(Object.assign({ shape: this._shape, selectFn: this._selectFn, whereFn: this._whereFn, sortByFn: this._sortByFn, sortDirection: this._sortDirection, limit: this._limit, offset: this._offset, subject: this._subject, subjects: this._subjects, singleResult: this._singleResult, selectAllLabels: this._selectAllLabels, fieldSet: this._fieldSet, preloads: this._preloads, minusEntries: this._minusEntries, _nullSubject: this._nullSubject, _pendingContextName: this._pendingContextName, _where: this._where, _sortBy: this._sortBy, _rawMinusEntries: this._rawMinusEntries }, overrides));
|
|
64
|
-
}
|
|
65
|
-
// ---------------------------------------------------------------------------
|
|
66
|
-
// Static constructors
|
|
67
|
-
// ---------------------------------------------------------------------------
|
|
68
|
-
/**
|
|
69
|
-
* Create a SelectBuilder for the given shape.
|
|
70
|
-
*
|
|
71
|
-
* Accepts a shape class (e.g. `Person`), a NodeShape instance,
|
|
72
|
-
* or a shape IRI string (resolved via the shape registry).
|
|
73
|
-
*/
|
|
74
|
-
static from(shape) {
|
|
75
|
-
const resolved = (0, resolveShape_js_1.resolveShape)(shape);
|
|
76
|
-
return new SelectBuilder({ shape: resolved });
|
|
77
|
-
}
|
|
78
|
-
select(fnOrLabelsOrFieldSet) {
|
|
79
|
-
if (fnOrLabelsOrFieldSet instanceof FieldSet_js_1.FieldSet) {
|
|
80
|
-
const labels = fnOrLabelsOrFieldSet.labels();
|
|
81
|
-
const selectFn = ((p) => labels.map((label) => p[label]));
|
|
82
|
-
return this.clone({ selectFn, selectAllLabels: undefined, fieldSet: fnOrLabelsOrFieldSet });
|
|
83
|
-
}
|
|
84
|
-
if (Array.isArray(fnOrLabelsOrFieldSet)) {
|
|
85
|
-
const labels = fnOrLabelsOrFieldSet;
|
|
86
|
-
const selectFn = ((p) => labels.map((label) => p[label]));
|
|
87
|
-
return this.clone({ selectFn, selectAllLabels: undefined, fieldSet: undefined });
|
|
88
|
-
}
|
|
89
|
-
return this.clone({ selectFn: fnOrLabelsOrFieldSet, selectAllLabels: undefined, fieldSet: undefined });
|
|
90
|
-
}
|
|
91
|
-
/** Select all decorated properties of the shape. */
|
|
92
|
-
selectAll() {
|
|
93
|
-
const propertyLabels = this._shape.shape
|
|
94
|
-
.getUniquePropertyShapes()
|
|
95
|
-
.map((ps) => ps.label);
|
|
96
|
-
const selectFn = ((p) => propertyLabels.map((label) => p[label]));
|
|
97
|
-
return this.clone({ selectFn, selectAllLabels: propertyLabels });
|
|
98
|
-
}
|
|
99
|
-
/** Add a where clause. */
|
|
100
|
-
where(fn) {
|
|
101
|
-
return this.clone({ whereFn: fn });
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Exclude results matching a MINUS pattern.
|
|
105
|
-
*
|
|
106
|
-
* Accepts:
|
|
107
|
-
* - A shape constructor to exclude by type: `.minus(Employee)`
|
|
108
|
-
* - A WHERE callback to exclude by condition: `.minus(p => p.hobby.equals('Chess'))`
|
|
109
|
-
* - A callback returning a property or array of properties for existence exclusion:
|
|
110
|
-
* `.minus(p => p.hobby)` or `.minus(p => [p.hobby, p.bestFriend.name])`
|
|
111
|
-
*
|
|
112
|
-
* Chainable: `.minus(A).minus(B)` produces two separate `MINUS { }` blocks.
|
|
113
|
-
*/
|
|
114
|
-
minus(shapeOrFn) {
|
|
115
|
-
var _a;
|
|
116
|
-
const entry = {};
|
|
117
|
-
if (typeof shapeOrFn === 'function' && 'shape' in shapeOrFn) {
|
|
118
|
-
// ShapeConstructor — has a static .shape property
|
|
119
|
-
entry.shapeId = (_a = shapeOrFn.shape) === null || _a === void 0 ? void 0 : _a.id;
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
// WhereClause callback
|
|
123
|
-
entry.whereFn = shapeOrFn;
|
|
124
|
-
}
|
|
125
|
-
const existing = this._minusEntries || [];
|
|
126
|
-
return this.clone({ minusEntries: [...existing, entry] });
|
|
127
|
-
}
|
|
128
|
-
/** Set sort order. */
|
|
129
|
-
orderBy(fn, direction = 'ASC') {
|
|
130
|
-
return this.clone({ sortByFn: fn, sortDirection: direction });
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* @deprecated Use `orderBy()` instead.
|
|
134
|
-
*/
|
|
135
|
-
sortBy(fn, direction = 'ASC') {
|
|
136
|
-
return this.orderBy(fn, direction);
|
|
137
|
-
}
|
|
138
|
-
/** Set result limit. */
|
|
139
|
-
limit(n) {
|
|
140
|
-
return this.clone({ limit: n });
|
|
141
|
-
}
|
|
142
|
-
/** Set result offset. */
|
|
143
|
-
offset(n) {
|
|
144
|
-
return this.clone({ offset: n });
|
|
145
|
-
}
|
|
146
|
-
/** Target a single entity by ID. Implies singleResult; unwraps array Result type. */
|
|
147
|
-
for(id) {
|
|
148
|
-
if (id instanceof QueryContext_js_1.PendingQueryContext) {
|
|
149
|
-
// Store the pending context as subject — its .id getter resolves lazily
|
|
150
|
-
// from the global context map when the query is lowered/serialized.
|
|
151
|
-
return this.clone({ subject: id, subjects: undefined, singleResult: true, _nullSubject: false, _pendingContextName: id.contextName });
|
|
152
|
-
}
|
|
153
|
-
if (id == null) {
|
|
154
|
-
// Return a builder that resolves to null when executed (no subject = no query).
|
|
155
|
-
// This commonly happens when getQueryContext() returns null before the user is authenticated.
|
|
156
|
-
return this.clone({ subject: undefined, subjects: undefined, singleResult: true, _nullSubject: true, _pendingContextName: undefined });
|
|
157
|
-
}
|
|
158
|
-
const subject = typeof id === 'string' ? { id: (0, NodeReference_js_1.resolveUriOrThrow)(id) } : id;
|
|
159
|
-
return this.clone({ subject, subjects: undefined, singleResult: true, _pendingContextName: undefined });
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Whether the query has a pending (lazy) context that hasn't resolved yet.
|
|
163
|
-
* Returns true when .for() received a PendingQueryContext whose value isn't available yet.
|
|
164
|
-
*/
|
|
165
|
-
hasPendingContext() {
|
|
166
|
-
var _a;
|
|
167
|
-
return !!(this._pendingContextName && !((_a = this._subject) === null || _a === void 0 ? void 0 : _a.id));
|
|
168
|
-
}
|
|
169
|
-
/** Target multiple entities by ID, or all if no ids given. */
|
|
170
|
-
forAll(ids) {
|
|
171
|
-
if (!ids) {
|
|
172
|
-
return this.clone({ subject: undefined, subjects: undefined, singleResult: false, _pendingContextName: undefined });
|
|
173
|
-
}
|
|
174
|
-
const subjects = ids.map((id) => typeof id === 'string' ? { id: (0, NodeReference_js_1.resolveUriOrThrow)(id) } : id);
|
|
175
|
-
return this.clone({ subject: undefined, subjects, singleResult: false, _pendingContextName: undefined });
|
|
176
|
-
}
|
|
177
|
-
/** Limit to one result. Unwraps array Result type to single element. */
|
|
178
|
-
one() {
|
|
179
|
-
return this.clone({ limit: 1, singleResult: true });
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Preload a component's query fields at the given property path.
|
|
183
|
-
*
|
|
184
|
-
* This merges the component's query paths into this query's selection,
|
|
185
|
-
* wrapping them in an OPTIONAL block (handled by the IR pipeline).
|
|
186
|
-
*
|
|
187
|
-
* Equivalent to the DSL's `.preloadFor()`:
|
|
188
|
-
* ```ts
|
|
189
|
-
* // DSL style
|
|
190
|
-
* Person.select(p => p.bestFriend.preloadFor(PersonCard))
|
|
191
|
-
* // SelectBuilder style
|
|
192
|
-
* SelectBuilder.from(Person).select(p => [p.name]).preload('bestFriend', PersonCard)
|
|
193
|
-
* ```
|
|
194
|
-
*
|
|
195
|
-
* NOTE: Preloads hold live component references and are not serializable.
|
|
196
|
-
* They are merged into the selection when the field set is evaluated
|
|
197
|
-
* (`_fieldsWithPreloads()`), so changes to preload handling must account for
|
|
198
|
-
* the selectFn wrapping logic.
|
|
199
|
-
*/
|
|
200
|
-
preload(path, component) {
|
|
201
|
-
const newPreloads = [...(this._preloads || []), { path, component }];
|
|
202
|
-
return this.clone({ preloads: newPreloads });
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Returns the current selection as a FieldSet.
|
|
206
|
-
* If the selection was set via a FieldSet, returns that directly.
|
|
207
|
-
* If set via selectAll labels, constructs a FieldSet from them.
|
|
208
|
-
* If set via a callback, eagerly evaluates it through the proxy to produce a FieldSet.
|
|
209
|
-
*/
|
|
210
|
-
fields() {
|
|
211
|
-
if (this._fieldSet) {
|
|
212
|
-
return this._fieldSet;
|
|
213
|
-
}
|
|
214
|
-
if (this._selectAllLabels) {
|
|
215
|
-
return FieldSet_js_1.FieldSet.for(this._shape.shape, this._selectAllLabels);
|
|
216
|
-
}
|
|
217
|
-
if (this._selectFn) {
|
|
218
|
-
// Eagerly evaluate the callback through FieldSet.for(ShapeClass, callback)
|
|
219
|
-
// The callback is pure — same proxy always produces same paths.
|
|
220
|
-
return FieldSet_js_1.FieldSet.for(this._shape, this._selectFn);
|
|
221
|
-
}
|
|
222
|
-
return undefined;
|
|
223
|
-
}
|
|
224
|
-
// ---------------------------------------------------------------------------
|
|
225
|
-
// Internal helpers
|
|
226
|
-
// ---------------------------------------------------------------------------
|
|
227
|
-
/** Return the FieldSet with preload entries merged in (if any). */
|
|
228
|
-
_fieldsWithPreloads() {
|
|
229
|
-
let fs = this.fields();
|
|
230
|
-
if (this._preloads && this._preloads.length > 0) {
|
|
231
|
-
const preloadFn = (p) => {
|
|
232
|
-
return this._preloads.map((entry) => p[entry.path].preloadFor(entry.component));
|
|
233
|
-
};
|
|
234
|
-
const preloadFs = FieldSet_js_1.FieldSet.for(this._shape, preloadFn);
|
|
235
|
-
if (fs) {
|
|
236
|
-
fs = FieldSet_js_1.FieldSet.createFromEntries(fs.shape, [
|
|
237
|
-
...fs.entries,
|
|
238
|
-
...preloadFs.entries,
|
|
239
|
-
]);
|
|
240
|
-
}
|
|
241
|
-
else {
|
|
242
|
-
fs = preloadFs;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
return fs;
|
|
246
|
-
}
|
|
247
|
-
/** Evaluate minus entry callbacks into RawMinusEntry[] (plain data). */
|
|
248
|
-
_evaluateMinusEntries() {
|
|
249
|
-
const proxy = (0, ProxiedPathBuilder_js_1.createProxiedPathBuilder)(this._shape);
|
|
250
|
-
return this._minusEntries.map((entry) => {
|
|
251
|
-
if (entry.shapeId) {
|
|
252
|
-
return { shapeId: entry.shapeId };
|
|
253
|
-
}
|
|
254
|
-
if (entry.whereFn) {
|
|
255
|
-
const result = entry.whereFn(proxy);
|
|
256
|
-
if (Array.isArray(result)) {
|
|
257
|
-
const propertyPaths = result.map((item) => {
|
|
258
|
-
const segments = FieldSet_js_1.FieldSet.collectPropertySegments(item);
|
|
259
|
-
return segments.map((seg) => ({ propertyShapeId: seg.id }));
|
|
260
|
-
});
|
|
261
|
-
return { propertyPaths };
|
|
262
|
-
}
|
|
263
|
-
if (result && typeof result === 'object' && 'property' in result && 'subject' in result) {
|
|
264
|
-
const segments = FieldSet_js_1.FieldSet.collectPropertySegments(result);
|
|
265
|
-
return { propertyPaths: [segments.map((seg) => ({ propertyShapeId: seg.id }))] };
|
|
266
|
-
}
|
|
267
|
-
// WHERE-based exclusion
|
|
268
|
-
return { where: (0, SelectQuery_js_1.processWhereClause)(entry.whereFn, this._shape) };
|
|
269
|
-
}
|
|
270
|
-
return {};
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
// ---------------------------------------------------------------------------
|
|
274
|
-
// Serialization
|
|
275
|
-
// ---------------------------------------------------------------------------
|
|
276
|
-
/**
|
|
277
|
-
* Serialize this SelectBuilder to a plain JSON object.
|
|
278
|
-
*
|
|
279
|
-
* Selections are serializable regardless of how they were set (FieldSet,
|
|
280
|
-
* string[], selectAll, or callback). Callback-based selections are eagerly
|
|
281
|
-
* evaluated through the proxy to produce a FieldSet.
|
|
282
|
-
*
|
|
283
|
-
* Where, orderBy, and minus clauses are evaluated through the proxy and
|
|
284
|
-
* serialized as plain data structures. Preloads are merged into the FieldSet
|
|
285
|
-
* as subSelect entries, producing identical IR on deserialization.
|
|
286
|
-
*/
|
|
287
|
-
toJSON() {
|
|
288
|
-
var _a;
|
|
289
|
-
const shapeId = ((_a = this._shape.shape) === null || _a === void 0 ? void 0 : _a.id) || '';
|
|
290
|
-
const json = {
|
|
291
|
-
v: wireVersion_js_1.WIRE_VERSION,
|
|
292
|
-
shape: shapeId,
|
|
293
|
-
};
|
|
294
|
-
const fs = this._fieldsWithPreloads();
|
|
295
|
-
if (fs) {
|
|
296
|
-
json.fields = fs.toJSON().fields;
|
|
297
|
-
}
|
|
298
|
-
if (this._limit !== undefined) {
|
|
299
|
-
json.limit = this._limit;
|
|
300
|
-
}
|
|
301
|
-
if (this._offset !== undefined) {
|
|
302
|
-
json.offset = this._offset;
|
|
303
|
-
}
|
|
304
|
-
if (this._pendingContextName) {
|
|
305
|
-
// Carry the context reference, not its (possibly unresolved) id, so the
|
|
306
|
-
// receiver resolves it against its own context map at lowering time.
|
|
307
|
-
json.subject = (0, ContextRef_js_1.encodeContextRef)(this._pendingContextName);
|
|
308
|
-
}
|
|
309
|
-
else if (this._subject && typeof this._subject === 'object' && 'id' in this._subject) {
|
|
310
|
-
json.subject = this._subject.id;
|
|
311
|
-
}
|
|
312
|
-
if (this._subjects && this._subjects.length > 0) {
|
|
313
|
-
json.subjects = this._subjects.map((s) => s.id);
|
|
314
|
-
}
|
|
315
|
-
if (this._singleResult) {
|
|
316
|
-
json.one = true;
|
|
317
|
-
}
|
|
318
|
-
if (this._whereFn) {
|
|
319
|
-
json.where = (0, QueryBuilderSerialization_js_1.serializeWherePath)((0, SelectQuery_js_1.processWhereClause)(this._whereFn, this._shape), this._shape.shape);
|
|
320
|
-
}
|
|
321
|
-
else if (this._where) {
|
|
322
|
-
json.where = (0, QueryBuilderSerialization_js_1.serializeWherePath)(this._where, this._shape.shape);
|
|
323
|
-
}
|
|
324
|
-
if (this._sortByFn) {
|
|
325
|
-
json.sortBy = (0, QueryBuilderSerialization_js_1.serializeSortByPath)((0, SelectQuery_js_1.evaluateSortCallback)(this._shape, this._sortByFn, this._sortDirection || 'ASC'));
|
|
326
|
-
}
|
|
327
|
-
else if (this._sortBy) {
|
|
328
|
-
json.sortBy = (0, QueryBuilderSerialization_js_1.serializeSortByPath)(this._sortBy);
|
|
329
|
-
}
|
|
330
|
-
if (this._minusEntries && this._minusEntries.length > 0) {
|
|
331
|
-
json.minusEntries = this._evaluateMinusEntries().map((e) => (0, QueryBuilderSerialization_js_1.serializeRawMinusEntry)(e, this._shape.shape));
|
|
332
|
-
}
|
|
333
|
-
else if (this._rawMinusEntries && this._rawMinusEntries.length > 0) {
|
|
334
|
-
json.minusEntries = this._rawMinusEntries.map((e) => (0, QueryBuilderSerialization_js_1.serializeRawMinusEntry)(e, this._shape.shape));
|
|
335
|
-
}
|
|
336
|
-
if (this._nullSubject) {
|
|
337
|
-
json.nullSubject = true;
|
|
338
|
-
}
|
|
339
|
-
return json;
|
|
340
|
-
}
|
|
341
|
-
/**
|
|
342
|
-
* Reconstruct a SelectBuilder from a JSON object.
|
|
343
|
-
* Resolves shape IRI via getShapeClass() and field paths as label selections.
|
|
344
|
-
*/
|
|
345
|
-
static fromJSON(json) {
|
|
346
|
-
(0, wireVersion_js_1.assertWireVersion)(json.v);
|
|
347
|
-
let builder = SelectBuilder.from(json.shape);
|
|
348
|
-
if (json.fields && json.fields.length > 0) {
|
|
349
|
-
const fieldSet = FieldSet_js_1.FieldSet.fromJSON({
|
|
350
|
-
shape: json.shape,
|
|
351
|
-
fields: json.fields,
|
|
352
|
-
});
|
|
353
|
-
builder = builder.select(fieldSet);
|
|
354
|
-
}
|
|
355
|
-
if (json.limit !== undefined) {
|
|
356
|
-
builder = builder.limit(json.limit);
|
|
357
|
-
}
|
|
358
|
-
if (json.offset !== undefined) {
|
|
359
|
-
builder = builder.offset(json.offset);
|
|
360
|
-
}
|
|
361
|
-
if (json.subject) {
|
|
362
|
-
// A `{@ctx}` subject rehydrates as a pending context (preserving the name
|
|
363
|
-
// so it re-serializes as a context reference and resolves live).
|
|
364
|
-
const subject = (0, ContextRef_js_1.isContextRefJSON)(json.subject)
|
|
365
|
-
? new QueryContext_js_1.PendingQueryContext(json.subject['@ctx'])
|
|
366
|
-
: json.subject;
|
|
367
|
-
builder = builder.for(subject);
|
|
368
|
-
}
|
|
369
|
-
if (json.subjects && json.subjects.length > 0) {
|
|
370
|
-
builder = builder.forAll(json.subjects);
|
|
371
|
-
}
|
|
372
|
-
if (json.one && !json.subject) {
|
|
373
|
-
builder = builder.one();
|
|
374
|
-
}
|
|
375
|
-
// Restore pre-evaluated data via clone — safe because fromJSON is in the same class.
|
|
376
|
-
const overrides = {};
|
|
377
|
-
const nodeShape = builder._shape.shape;
|
|
378
|
-
// Restore where clause
|
|
379
|
-
if (json.where && nodeShape) {
|
|
380
|
-
overrides._where = (0, QueryBuilderSerialization_js_1.deserializeWherePath)(nodeShape, json.where);
|
|
381
|
-
}
|
|
382
|
-
// Restore sort key + direction (direction rides on the ordered sortBy array)
|
|
383
|
-
if (json.sortBy && json.sortBy.length > 0 && nodeShape) {
|
|
384
|
-
const sortBy = (0, QueryBuilderSerialization_js_1.deserializeSortByPath)(nodeShape, json.sortBy);
|
|
385
|
-
overrides._sortBy = sortBy;
|
|
386
|
-
overrides.sortDirection = sortBy.directions[0];
|
|
387
|
-
}
|
|
388
|
-
// Restore minus entries
|
|
389
|
-
if (json.minusEntries && json.minusEntries.length > 0 && nodeShape) {
|
|
390
|
-
overrides._rawMinusEntries = json.minusEntries.map((e) => (0, QueryBuilderSerialization_js_1.deserializeRawMinusEntry)(nodeShape, e));
|
|
391
|
-
}
|
|
392
|
-
// Restore nullSubject flag
|
|
393
|
-
if (json.nullSubject) {
|
|
394
|
-
overrides._nullSubject = true;
|
|
395
|
-
}
|
|
396
|
-
if (Object.keys(overrides).length > 0) {
|
|
397
|
-
builder = builder.clone(overrides);
|
|
398
|
-
}
|
|
399
|
-
return builder;
|
|
400
|
-
}
|
|
401
|
-
// ---------------------------------------------------------------------------
|
|
402
|
-
// Build & execute
|
|
403
|
-
// ---------------------------------------------------------------------------
|
|
404
|
-
/**
|
|
405
|
-
* Get the raw pipeline input.
|
|
406
|
-
*
|
|
407
|
-
* Constructs RawSelectInput directly from FieldSet entries.
|
|
408
|
-
*/
|
|
409
|
-
toRawInput() {
|
|
410
|
-
return this._buildDirectRawInput();
|
|
411
|
-
}
|
|
412
|
-
/** Build RawSelectInput directly from FieldSet entries. */
|
|
413
|
-
_buildDirectRawInput() {
|
|
414
|
-
const fs = this._fieldsWithPreloads();
|
|
415
|
-
const entries = fs ? fs.entries : [];
|
|
416
|
-
let where;
|
|
417
|
-
if (this._whereFn) {
|
|
418
|
-
where = (0, SelectQuery_js_1.processWhereClause)(this._whereFn, this._shape);
|
|
419
|
-
}
|
|
420
|
-
else if (this._where) {
|
|
421
|
-
where = this._where;
|
|
422
|
-
}
|
|
423
|
-
let sortBy;
|
|
424
|
-
if (this._sortByFn) {
|
|
425
|
-
sortBy = (0, SelectQuery_js_1.evaluateSortCallback)(this._shape, this._sortByFn, this._sortDirection || 'ASC');
|
|
426
|
-
}
|
|
427
|
-
else if (this._sortBy) {
|
|
428
|
-
sortBy = this._sortBy;
|
|
429
|
-
}
|
|
430
|
-
const input = {
|
|
431
|
-
entries,
|
|
432
|
-
subject: this._subject,
|
|
433
|
-
limit: this._limit,
|
|
434
|
-
offset: this._offset,
|
|
435
|
-
shape: this._shape,
|
|
436
|
-
sortBy,
|
|
437
|
-
singleResult: this._singleResult ||
|
|
438
|
-
!!(this._subject &&
|
|
439
|
-
typeof this._subject === 'object' &&
|
|
440
|
-
'id' in this._subject),
|
|
441
|
-
};
|
|
442
|
-
if (where) {
|
|
443
|
-
input.where = where;
|
|
444
|
-
}
|
|
445
|
-
if (this._subjects && this._subjects.length > 0) {
|
|
446
|
-
input.subjects = this._subjects;
|
|
447
|
-
}
|
|
448
|
-
if (this._minusEntries && this._minusEntries.length > 0) {
|
|
449
|
-
input.minusEntries = this._evaluateMinusEntries();
|
|
450
|
-
}
|
|
451
|
-
else if (this._rawMinusEntries && this._rawMinusEntries.length > 0) {
|
|
452
|
-
input.minusEntries = this._rawMinusEntries;
|
|
453
|
-
}
|
|
454
|
-
return input;
|
|
455
|
-
}
|
|
456
|
-
/** The shape this query targets — the routing key datasets/`LinkedStorage` use. */
|
|
457
|
-
get shape() {
|
|
458
|
-
return this._shape.shape;
|
|
459
|
-
}
|
|
460
|
-
/**
|
|
461
|
-
* Execute the query and return results.
|
|
462
|
-
*
|
|
463
|
-
* @param target Optional explicit dataset (a store or a router — a router *is* an
|
|
464
|
-
* `IDataset`) to run against. Omitted → the global query dispatch (the router's
|
|
465
|
-
* shape-based default). A `target` runs on that dataset only; the global router is
|
|
466
|
-
* untouched. `await`ing the builder (the PromiseLike path) always uses the global
|
|
467
|
-
* dispatch — only `.exec(target)` overrides.
|
|
468
|
-
*/
|
|
469
|
-
exec(target) {
|
|
470
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
471
|
-
var _a;
|
|
472
|
-
if (this._nullSubject) {
|
|
473
|
-
// .for(null/undefined) was called — return null instead of executing a broken query.
|
|
474
|
-
return null;
|
|
475
|
-
}
|
|
476
|
-
if (this._pendingContextName && !((_a = this._subject) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
477
|
-
// Pending context hasn't resolved yet — return null rather than querying without a subject.
|
|
478
|
-
return null;
|
|
479
|
-
}
|
|
480
|
-
// Dispatch the live (closed) query; the dataset decides whether to lower it.
|
|
481
|
-
// `async` ensures a missing global dispatch surfaces as a rejected promise, not a sync throw.
|
|
482
|
-
const dispatch = target !== null && target !== void 0 ? target : (0, queryDispatch_js_1.getQueryDispatch)();
|
|
483
|
-
try {
|
|
484
|
-
return (yield dispatch.selectQuery(this));
|
|
485
|
-
}
|
|
486
|
-
catch (err) {
|
|
487
|
-
// A where-clause context reference that hasn't resolved yet surfaces as
|
|
488
|
-
// UnresolvedContextError when the dataset lowers the query. For SELECT this
|
|
489
|
-
// means "not ready" — return null (a reactive layer re-runs once it lands),
|
|
490
|
-
// mirroring the pending-subject behavior. Mutations still throw.
|
|
491
|
-
if (err instanceof QueryContext_js_1.UnresolvedContextError) {
|
|
492
|
-
return null;
|
|
493
|
-
}
|
|
494
|
-
throw Error(`Error while executing query: ${err.stack}.\n\nQuery related to this error: ${JSON.stringify(this.toJSON())}`);
|
|
495
|
-
}
|
|
496
|
-
});
|
|
497
|
-
}
|
|
498
|
-
// ---------------------------------------------------------------------------
|
|
499
|
-
// Promise-compatible interface
|
|
500
|
-
// ---------------------------------------------------------------------------
|
|
501
|
-
/** `await` triggers execution. */
|
|
502
|
-
then(onfulfilled, onrejected) {
|
|
503
|
-
return this.exec().then(onfulfilled, onrejected);
|
|
504
|
-
}
|
|
505
|
-
/** Catch errors from execution. Chain off then() to avoid re-executing. */
|
|
506
|
-
catch(onrejected) {
|
|
507
|
-
return this.then().catch(onrejected);
|
|
508
|
-
}
|
|
509
|
-
/** Finally handler after execution. Chain off then() to avoid re-executing. */
|
|
510
|
-
finally(onfinally) {
|
|
511
|
-
return this.then().finally(onfinally);
|
|
512
|
-
}
|
|
513
|
-
get [Symbol.toStringTag]() {
|
|
514
|
-
return 'SelectBuilder';
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
exports.SelectBuilder = SelectBuilder;
|
|
518
|
-
exports.QueryBuilder = SelectBuilder;
|
|
519
|
-
//# sourceMappingURL=QueryBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../src/queries/QueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Serialization helpers for QueryBuilder fields that contain live object
|
|
3
|
-
* references (where-clauses, sort paths, minus entries).
|
|
4
|
-
*
|
|
5
|
-
* Where-clauses serialize through the DSL-JSON expression codec
|
|
6
|
-
* (`DslJsonExpression.ts`) — the wire form carries no IR. This module wires that
|
|
7
|
-
* codec into the select/mutation envelopes and handles sort + minus.
|
|
8
|
-
*/
|
|
9
|
-
import type { NodeShape } from '../shapes/SHACL.js';
|
|
10
|
-
import type { WherePath, SortByPath } from './SelectQuery.js';
|
|
11
|
-
import type { RawMinusEntry } from './IRDesugar.js';
|
|
12
|
-
import { type DslJsonCondition } from './DslJsonExpression.js';
|
|
13
|
-
/** A where-clause on the wire is a DSL-JSON condition (see documentation/dsl-json.md). */
|
|
14
|
-
export type WherePathJSON = DslJsonCondition;
|
|
15
|
-
/** An ordered list of `{path: direction}` — element order is sort precedence. */
|
|
16
|
-
export type SortByPathJSON = Array<{
|
|
17
|
-
[path: string]: 'ASC' | 'DESC';
|
|
18
|
-
}>;
|
|
19
|
-
export type RawMinusEntryJSON = {
|
|
20
|
-
shapeId?: string;
|
|
21
|
-
where?: WherePathJSON;
|
|
22
|
-
propertyPaths?: string[][];
|
|
23
|
-
};
|
|
24
|
-
/** Serialize a runtime where-clause to its DSL-JSON condition form. */
|
|
25
|
-
export declare function serializeWherePath(where: WherePath, shape: NodeShape): WherePathJSON;
|
|
26
|
-
export declare function serializeSortByPath(sort: SortByPath): SortByPathJSON;
|
|
27
|
-
export declare function serializeRawMinusEntry(entry: RawMinusEntry, shape: NodeShape): RawMinusEntryJSON;
|
|
28
|
-
/** Rebuild a runtime where-clause from its DSL-JSON condition form. */
|
|
29
|
-
export declare function deserializeWherePath(shape: NodeShape, json: WherePathJSON): WherePath;
|
|
30
|
-
export declare function deserializeSortByPath(shape: NodeShape, json: SortByPathJSON): SortByPath;
|
|
31
|
-
export declare function deserializeRawMinusEntry(shape: NodeShape, json: RawMinusEntryJSON): RawMinusEntry;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Serialization helpers for QueryBuilder fields that contain live object
|
|
4
|
-
* references (where-clauses, sort paths, minus entries).
|
|
5
|
-
*
|
|
6
|
-
* Where-clauses serialize through the DSL-JSON expression codec
|
|
7
|
-
* (`DslJsonExpression.ts`) — the wire form carries no IR. This module wires that
|
|
8
|
-
* codec into the select/mutation envelopes and handles sort + minus.
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.serializeWherePath = serializeWherePath;
|
|
12
|
-
exports.serializeSortByPath = serializeSortByPath;
|
|
13
|
-
exports.serializeRawMinusEntry = serializeRawMinusEntry;
|
|
14
|
-
exports.deserializeWherePath = deserializeWherePath;
|
|
15
|
-
exports.deserializeSortByPath = deserializeSortByPath;
|
|
16
|
-
exports.deserializeRawMinusEntry = deserializeRawMinusEntry;
|
|
17
|
-
const PropertyPath_js_1 = require("./PropertyPath.js");
|
|
18
|
-
const DslJsonExpression_js_1 = require("./DslJsonExpression.js");
|
|
19
|
-
// =============================================================================
|
|
20
|
-
// Serialization
|
|
21
|
-
// =============================================================================
|
|
22
|
-
/** Serialize a runtime where-clause to its DSL-JSON condition form. */
|
|
23
|
-
function serializeWherePath(where, shape) {
|
|
24
|
-
const node = 'existsCondition' in where
|
|
25
|
-
? where.existsCondition
|
|
26
|
-
: where.expressionNode;
|
|
27
|
-
return (0, DslJsonExpression_js_1.encodeCondition)(node, shape);
|
|
28
|
-
}
|
|
29
|
-
function serializeSortByPath(sort) {
|
|
30
|
-
return sort.paths.map((p, i) => ({ [p.toString()]: sort.directions[i] }));
|
|
31
|
-
}
|
|
32
|
-
function serializeRawMinusEntry(entry, shape) {
|
|
33
|
-
const json = {};
|
|
34
|
-
if (entry.shapeId)
|
|
35
|
-
json.shapeId = entry.shapeId;
|
|
36
|
-
if (entry.where)
|
|
37
|
-
json.where = serializeWherePath(entry.where, shape);
|
|
38
|
-
if (entry.propertyPaths) {
|
|
39
|
-
json.propertyPaths = entry.propertyPaths.map((pp) => pp.map((seg) => seg.propertyShapeId));
|
|
40
|
-
}
|
|
41
|
-
return json;
|
|
42
|
-
}
|
|
43
|
-
// =============================================================================
|
|
44
|
-
// Deserialization
|
|
45
|
-
// =============================================================================
|
|
46
|
-
/** Rebuild a runtime where-clause from its DSL-JSON condition form. */
|
|
47
|
-
function deserializeWherePath(shape, json) {
|
|
48
|
-
return (0, DslJsonExpression_js_1.decodeCondition)(json, shape);
|
|
49
|
-
}
|
|
50
|
-
function deserializeSortByPath(shape, json) {
|
|
51
|
-
// Per-path directions: each `{path: dir}` entry keeps its own direction.
|
|
52
|
-
return {
|
|
53
|
-
paths: json.map((e) => (0, PropertyPath_js_1.walkPropertyPath)(shape, Object.keys(e)[0])),
|
|
54
|
-
directions: json.map((e) => Object.values(e)[0]),
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
function deserializeRawMinusEntry(shape, json) {
|
|
58
|
-
const entry = {};
|
|
59
|
-
if (json.shapeId)
|
|
60
|
-
entry.shapeId = json.shapeId;
|
|
61
|
-
if (json.where)
|
|
62
|
-
entry.where = deserializeWherePath(shape, json.where);
|
|
63
|
-
if (json.propertyPaths) {
|
|
64
|
-
entry.propertyPaths = json.propertyPaths.map((pp) => pp.map((id) => ({ propertyShapeId: id })));
|
|
65
|
-
}
|
|
66
|
-
return entry;
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=QueryBuilderSerialization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilderSerialization.js","sourceRoot":"","sources":["../../../src/queries/QueryBuilderSerialization.ts"],"names":[],"mappings":"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"}
|