@_linked/core 2.12.0 → 2.13.0-next.20260706164859

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.
Files changed (246) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/lib/esm/queries/IRPipeline.d.ts +7 -1
  3. package/lib/esm/queries/IRPipeline.js +20 -6
  4. package/lib/esm/queries/IRPipeline.js.map +1 -1
  5. package/lib/esm/queries/queryDispatch.js +12 -2
  6. package/lib/esm/queries/queryDispatch.js.map +1 -1
  7. package/package.json +10 -13
  8. package/lib/cjs/collections/CoreSet.d.ts +0 -47
  9. package/lib/cjs/collections/CoreSet.js +0 -136
  10. package/lib/cjs/collections/CoreSet.js.map +0 -1
  11. package/lib/cjs/collections/ShapeSet.d.ts +0 -6
  12. package/lib/cjs/collections/ShapeSet.js +0 -20
  13. package/lib/cjs/collections/ShapeSet.js.map +0 -1
  14. package/lib/cjs/expressions/Expr.d.ts +0 -29
  15. package/lib/cjs/expressions/Expr.js +0 -80
  16. package/lib/cjs/expressions/Expr.js.map +0 -1
  17. package/lib/cjs/expressions/ExpressionMethods.d.ts +0 -85
  18. package/lib/cjs/expressions/ExpressionMethods.js +0 -3
  19. package/lib/cjs/expressions/ExpressionMethods.js.map +0 -1
  20. package/lib/cjs/expressions/ExpressionNode.d.ts +0 -144
  21. package/lib/cjs/expressions/ExpressionNode.js +0 -432
  22. package/lib/cjs/expressions/ExpressionNode.js.map +0 -1
  23. package/lib/cjs/index.d.ts +0 -29
  24. package/lib/cjs/index.js +0 -65
  25. package/lib/cjs/index.js.map +0 -1
  26. package/lib/cjs/interfaces/ICoreIterable.d.ts +0 -14
  27. package/lib/cjs/interfaces/ICoreIterable.js +0 -3
  28. package/lib/cjs/interfaces/ICoreIterable.js.map +0 -1
  29. package/lib/cjs/interfaces/IDataset.d.ts +0 -26
  30. package/lib/cjs/interfaces/IDataset.js +0 -3
  31. package/lib/cjs/interfaces/IDataset.js.map +0 -1
  32. package/lib/cjs/interfaces/IFileStore.d.ts +0 -16
  33. package/lib/cjs/interfaces/IFileStore.js +0 -3
  34. package/lib/cjs/interfaces/IFileStore.js.map +0 -1
  35. package/lib/cjs/ontologies/linked-core.d.ts +0 -15
  36. package/lib/cjs/ontologies/linked-core.js +0 -38
  37. package/lib/cjs/ontologies/linked-core.js.map +0 -1
  38. package/lib/cjs/ontologies/npm.d.ts +0 -6
  39. package/lib/cjs/ontologies/npm.js +0 -15
  40. package/lib/cjs/ontologies/npm.js.map +0 -1
  41. package/lib/cjs/ontologies/owl.d.ts +0 -14
  42. package/lib/cjs/ontologies/owl.js +0 -21
  43. package/lib/cjs/ontologies/owl.js.map +0 -1
  44. package/lib/cjs/ontologies/rdf.d.ts +0 -13
  45. package/lib/cjs/ontologies/rdf.js +0 -27
  46. package/lib/cjs/ontologies/rdf.js.map +0 -1
  47. package/lib/cjs/ontologies/rdfs.d.ts +0 -16
  48. package/lib/cjs/ontologies/rdfs.js +0 -33
  49. package/lib/cjs/ontologies/rdfs.js.map +0 -1
  50. package/lib/cjs/ontologies/shacl.d.ts +0 -103
  51. package/lib/cjs/ontologies/shacl.js +0 -152
  52. package/lib/cjs/ontologies/shacl.js.map +0 -1
  53. package/lib/cjs/ontologies/xsd.d.ts +0 -19
  54. package/lib/cjs/ontologies/xsd.js +0 -41
  55. package/lib/cjs/ontologies/xsd.js.map +0 -1
  56. package/lib/cjs/package.d.ts +0 -4
  57. package/lib/cjs/package.js +0 -6
  58. package/lib/cjs/package.js.map +0 -1
  59. package/lib/cjs/package.json +0 -9
  60. package/lib/cjs/paths/PropertyPathExpr.d.ts +0 -38
  61. package/lib/cjs/paths/PropertyPathExpr.js +0 -221
  62. package/lib/cjs/paths/PropertyPathExpr.js.map +0 -1
  63. package/lib/cjs/paths/normalizePropertyPath.d.ts +0 -23
  64. package/lib/cjs/paths/normalizePropertyPath.js +0 -75
  65. package/lib/cjs/paths/normalizePropertyPath.js.map +0 -1
  66. package/lib/cjs/paths/pathExprToSparql.d.ts +0 -14
  67. package/lib/cjs/paths/pathExprToSparql.js +0 -136
  68. package/lib/cjs/paths/pathExprToSparql.js.map +0 -1
  69. package/lib/cjs/queries/ContextRef.d.ts +0 -32
  70. package/lib/cjs/queries/ContextRef.js +0 -69
  71. package/lib/cjs/queries/ContextRef.js.map +0 -1
  72. package/lib/cjs/queries/CreateBuilder.d.ts +0 -59
  73. package/lib/cjs/queries/CreateBuilder.js +0 -138
  74. package/lib/cjs/queries/CreateBuilder.js.map +0 -1
  75. package/lib/cjs/queries/CreateQuery.d.ts +0 -20
  76. package/lib/cjs/queries/CreateQuery.js +0 -3
  77. package/lib/cjs/queries/CreateQuery.js.map +0 -1
  78. package/lib/cjs/queries/DeleteBuilder.d.ts +0 -56
  79. package/lib/cjs/queries/DeleteBuilder.js +0 -172
  80. package/lib/cjs/queries/DeleteBuilder.js.map +0 -1
  81. package/lib/cjs/queries/DeleteQuery.d.ts +0 -37
  82. package/lib/cjs/queries/DeleteQuery.js +0 -3
  83. package/lib/cjs/queries/DeleteQuery.js.map +0 -1
  84. package/lib/cjs/queries/DslJsonExpression.d.ts +0 -68
  85. package/lib/cjs/queries/DslJsonExpression.js +0 -427
  86. package/lib/cjs/queries/DslJsonExpression.js.map +0 -1
  87. package/lib/cjs/queries/FieldSet.d.ts +0 -310
  88. package/lib/cjs/queries/FieldSet.js +0 -802
  89. package/lib/cjs/queries/FieldSet.js.map +0 -1
  90. package/lib/cjs/queries/IRAliasScope.d.ts +0 -20
  91. package/lib/cjs/queries/IRAliasScope.js +0 -52
  92. package/lib/cjs/queries/IRAliasScope.js.map +0 -1
  93. package/lib/cjs/queries/IRCanonicalize.d.ts +0 -19
  94. package/lib/cjs/queries/IRCanonicalize.js +0 -19
  95. package/lib/cjs/queries/IRCanonicalize.js.map +0 -1
  96. package/lib/cjs/queries/IRDesugar.d.ts +0 -123
  97. package/lib/cjs/queries/IRDesugar.js +0 -261
  98. package/lib/cjs/queries/IRDesugar.js.map +0 -1
  99. package/lib/cjs/queries/IRLower.d.ts +0 -25
  100. package/lib/cjs/queries/IRLower.js +0 -398
  101. package/lib/cjs/queries/IRLower.js.map +0 -1
  102. package/lib/cjs/queries/IRMutation.d.ts +0 -53
  103. package/lib/cjs/queries/IRMutation.js +0 -130
  104. package/lib/cjs/queries/IRMutation.js.map +0 -1
  105. package/lib/cjs/queries/IRPipeline.d.ts +0 -8
  106. package/lib/cjs/queries/IRPipeline.js +0 -25
  107. package/lib/cjs/queries/IRPipeline.js.map +0 -1
  108. package/lib/cjs/queries/IRProjection.d.ts +0 -39
  109. package/lib/cjs/queries/IRProjection.js +0 -105
  110. package/lib/cjs/queries/IRProjection.js.map +0 -1
  111. package/lib/cjs/queries/IntermediateRepresentation.d.ts +0 -282
  112. package/lib/cjs/queries/IntermediateRepresentation.js +0 -3
  113. package/lib/cjs/queries/IntermediateRepresentation.js.map +0 -1
  114. package/lib/cjs/queries/MutationQuery.d.ts +0 -50
  115. package/lib/cjs/queries/MutationQuery.js +0 -334
  116. package/lib/cjs/queries/MutationQuery.js.map +0 -1
  117. package/lib/cjs/queries/MutationSerialization.d.ts +0 -102
  118. package/lib/cjs/queries/MutationSerialization.js +0 -207
  119. package/lib/cjs/queries/MutationSerialization.js.map +0 -1
  120. package/lib/cjs/queries/MutationThenable.d.ts +0 -18
  121. package/lib/cjs/queries/MutationThenable.js +0 -32
  122. package/lib/cjs/queries/MutationThenable.js.map +0 -1
  123. package/lib/cjs/queries/PropertyPath.d.ts +0 -38
  124. package/lib/cjs/queries/PropertyPath.js +0 -82
  125. package/lib/cjs/queries/PropertyPath.js.map +0 -1
  126. package/lib/cjs/queries/ProxiedPathBuilder.d.ts +0 -14
  127. package/lib/cjs/queries/ProxiedPathBuilder.js +0 -29
  128. package/lib/cjs/queries/ProxiedPathBuilder.js.map +0 -1
  129. package/lib/cjs/queries/QueryBuilder.d.ts +0 -193
  130. package/lib/cjs/queries/QueryBuilder.js +0 -519
  131. package/lib/cjs/queries/QueryBuilder.js.map +0 -1
  132. package/lib/cjs/queries/QueryBuilderSerialization.d.ts +0 -31
  133. package/lib/cjs/queries/QueryBuilderSerialization.js +0 -68
  134. package/lib/cjs/queries/QueryBuilderSerialization.js.map +0 -1
  135. package/lib/cjs/queries/QueryContext.d.ts +0 -50
  136. package/lib/cjs/queries/QueryContext.js +0 -147
  137. package/lib/cjs/queries/QueryContext.js.map +0 -1
  138. package/lib/cjs/queries/QueryFactory.d.ts +0 -80
  139. package/lib/cjs/queries/QueryFactory.js +0 -21
  140. package/lib/cjs/queries/QueryFactory.js.map +0 -1
  141. package/lib/cjs/queries/SelectQuery.d.ts +0 -302
  142. package/lib/cjs/queries/SelectQuery.js +0 -761
  143. package/lib/cjs/queries/SelectQuery.js.map +0 -1
  144. package/lib/cjs/queries/UpdateBuilder.d.ts +0 -69
  145. package/lib/cjs/queries/UpdateBuilder.js +0 -199
  146. package/lib/cjs/queries/UpdateBuilder.js.map +0 -1
  147. package/lib/cjs/queries/UpdateQuery.d.ts +0 -18
  148. package/lib/cjs/queries/UpdateQuery.js +0 -3
  149. package/lib/cjs/queries/UpdateQuery.js.map +0 -1
  150. package/lib/cjs/queries/fromJSON.d.ts +0 -16
  151. package/lib/cjs/queries/fromJSON.js +0 -41
  152. package/lib/cjs/queries/fromJSON.js.map +0 -1
  153. package/lib/cjs/queries/lower.d.ts +0 -28
  154. package/lib/cjs/queries/lower.js +0 -114
  155. package/lib/cjs/queries/lower.js.map +0 -1
  156. package/lib/cjs/queries/lowerMutationJSON.d.ts +0 -25
  157. package/lib/cjs/queries/lowerMutationJSON.js +0 -173
  158. package/lib/cjs/queries/lowerMutationJSON.js.map +0 -1
  159. package/lib/cjs/queries/mutationLowerSpec.d.ts +0 -32
  160. package/lib/cjs/queries/mutationLowerSpec.js +0 -8
  161. package/lib/cjs/queries/mutationLowerSpec.js.map +0 -1
  162. package/lib/cjs/queries/queryDispatch.d.ts +0 -33
  163. package/lib/cjs/queries/queryDispatch.js +0 -33
  164. package/lib/cjs/queries/queryDispatch.js.map +0 -1
  165. package/lib/cjs/queries/resolveShape.d.ts +0 -10
  166. package/lib/cjs/queries/resolveShape.js +0 -23
  167. package/lib/cjs/queries/resolveShape.js.map +0 -1
  168. package/lib/cjs/queries/wireVersion.d.ts +0 -7
  169. package/lib/cjs/queries/wireVersion.js +0 -25
  170. package/lib/cjs/queries/wireVersion.js.map +0 -1
  171. package/lib/cjs/shapes/List.d.ts +0 -35
  172. package/lib/cjs/shapes/List.js +0 -72
  173. package/lib/cjs/shapes/List.js.map +0 -1
  174. package/lib/cjs/shapes/PathNode.d.ts +0 -20
  175. package/lib/cjs/shapes/PathNode.js +0 -68
  176. package/lib/cjs/shapes/PathNode.js.map +0 -1
  177. package/lib/cjs/shapes/SHACL.d.ts +0 -300
  178. package/lib/cjs/shapes/SHACL.js +0 -612
  179. package/lib/cjs/shapes/SHACL.js.map +0 -1
  180. package/lib/cjs/shapes/Shape.d.ts +0 -74
  181. package/lib/cjs/shapes/Shape.js +0 -124
  182. package/lib/cjs/shapes/Shape.js.map +0 -1
  183. package/lib/cjs/shapes/serializePathToNodeData.d.ts +0 -24
  184. package/lib/cjs/shapes/serializePathToNodeData.js +0 -67
  185. package/lib/cjs/shapes/serializePathToNodeData.js.map +0 -1
  186. package/lib/cjs/shapes/syncShapes.d.ts +0 -38
  187. package/lib/cjs/shapes/syncShapes.js +0 -214
  188. package/lib/cjs/shapes/syncShapes.js.map +0 -1
  189. package/lib/cjs/sparql/SparqlAlgebra.d.ts +0 -190
  190. package/lib/cjs/sparql/SparqlAlgebra.js +0 -4
  191. package/lib/cjs/sparql/SparqlAlgebra.js.map +0 -1
  192. package/lib/cjs/sparql/SparqlDataset.d.ts +0 -60
  193. package/lib/cjs/sparql/SparqlDataset.js +0 -117
  194. package/lib/cjs/sparql/SparqlDataset.js.map +0 -1
  195. package/lib/cjs/sparql/algebraToString.d.ts +0 -13
  196. package/lib/cjs/sparql/algebraToString.js +0 -385
  197. package/lib/cjs/sparql/algebraToString.js.map +0 -1
  198. package/lib/cjs/sparql/index.d.ts +0 -9
  199. package/lib/cjs/sparql/index.js +0 -41
  200. package/lib/cjs/sparql/index.js.map +0 -1
  201. package/lib/cjs/sparql/irToAlgebra.d.ts +0 -79
  202. package/lib/cjs/sparql/irToAlgebra.js +0 -2042
  203. package/lib/cjs/sparql/irToAlgebra.js.map +0 -1
  204. package/lib/cjs/sparql/resultMapping.d.ts +0 -36
  205. package/lib/cjs/sparql/resultMapping.js +0 -563
  206. package/lib/cjs/sparql/resultMapping.js.map +0 -1
  207. package/lib/cjs/sparql/sparqlUtils.d.ts +0 -53
  208. package/lib/cjs/sparql/sparqlUtils.js +0 -154
  209. package/lib/cjs/sparql/sparqlUtils.js.map +0 -1
  210. package/lib/cjs/utils/LinkedErrorLogging.d.ts +0 -13
  211. package/lib/cjs/utils/LinkedErrorLogging.js +0 -22
  212. package/lib/cjs/utils/LinkedErrorLogging.js.map +0 -1
  213. package/lib/cjs/utils/LinkedFileStorage.d.ts +0 -23
  214. package/lib/cjs/utils/LinkedFileStorage.js +0 -62
  215. package/lib/cjs/utils/LinkedFileStorage.js.map +0 -1
  216. package/lib/cjs/utils/LinkedStorage.d.ts +0 -40
  217. package/lib/cjs/utils/LinkedStorage.js +0 -148
  218. package/lib/cjs/utils/LinkedStorage.js.map +0 -1
  219. package/lib/cjs/utils/NameSpace.d.ts +0 -2
  220. package/lib/cjs/utils/NameSpace.js +0 -8
  221. package/lib/cjs/utils/NameSpace.js.map +0 -1
  222. package/lib/cjs/utils/NodeReference.d.ts +0 -30
  223. package/lib/cjs/utils/NodeReference.js +0 -54
  224. package/lib/cjs/utils/NodeReference.js.map +0 -1
  225. package/lib/cjs/utils/Package.d.ts +0 -153
  226. package/lib/cjs/utils/Package.js +0 -419
  227. package/lib/cjs/utils/Package.js.map +0 -1
  228. package/lib/cjs/utils/Prefix.d.ts +0 -22
  229. package/lib/cjs/utils/Prefix.js +0 -104
  230. package/lib/cjs/utils/Prefix.js.map +0 -1
  231. package/lib/cjs/utils/ShapeClass.d.ts +0 -30
  232. package/lib/cjs/utils/ShapeClass.js +0 -180
  233. package/lib/cjs/utils/ShapeClass.js.map +0 -1
  234. package/lib/cjs/utils/URI.d.ts +0 -18
  235. package/lib/cjs/utils/URI.js +0 -42
  236. package/lib/cjs/utils/URI.js.map +0 -1
  237. package/lib/cjs/utils/cached.d.ts +0 -14
  238. package/lib/cjs/utils/cached.js +0 -71
  239. package/lib/cjs/utils/cached.js.map +0 -1
  240. package/lib/cjs/utils/loadStores.d.ts +0 -34
  241. package/lib/cjs/utils/loadStores.js +0 -105
  242. package/lib/cjs/utils/loadStores.js.map +0 -1
  243. package/lib/cjs/utils/parseDatasetsConfig.d.ts +0 -49
  244. package/lib/cjs/utils/parseDatasetsConfig.js +0 -110
  245. package/lib/cjs/utils/parseDatasetsConfig.js.map +0 -1
  246. 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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"}