@_linked/core 1.1.0 → 1.2.0-next.20260303081922

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 (187) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +321 -43
  3. package/lib/cjs/index.js +4 -0
  4. package/lib/cjs/index.js.map +1 -1
  5. package/lib/cjs/interfaces/IQuadStore.d.ts +19 -7
  6. package/lib/cjs/queries/CreateQuery.d.ts +7 -8
  7. package/lib/cjs/queries/CreateQuery.js +4 -4
  8. package/lib/cjs/queries/CreateQuery.js.map +1 -1
  9. package/lib/cjs/queries/DeleteQuery.d.ts +7 -8
  10. package/lib/cjs/queries/DeleteQuery.js +4 -4
  11. package/lib/cjs/queries/DeleteQuery.js.map +1 -1
  12. package/lib/cjs/queries/IRAliasScope.d.ts +20 -0
  13. package/lib/cjs/queries/IRAliasScope.js +52 -0
  14. package/lib/cjs/queries/IRAliasScope.js.map +1 -0
  15. package/lib/cjs/queries/IRCanonicalize.d.ts +36 -0
  16. package/lib/cjs/queries/IRCanonicalize.js +121 -0
  17. package/lib/cjs/queries/IRCanonicalize.js.map +1 -0
  18. package/lib/cjs/queries/IRDesugar.d.ts +98 -0
  19. package/lib/cjs/queries/IRDesugar.js +244 -0
  20. package/lib/cjs/queries/IRDesugar.js.map +1 -0
  21. package/lib/cjs/queries/IRLower.d.ts +8 -0
  22. package/lib/cjs/queries/IRLower.js +268 -0
  23. package/lib/cjs/queries/IRLower.js.map +1 -0
  24. package/lib/cjs/queries/IRMutation.d.ts +23 -0
  25. package/lib/cjs/queries/IRMutation.js +77 -0
  26. package/lib/cjs/queries/IRMutation.js.map +1 -0
  27. package/lib/cjs/queries/IRPipeline.d.ts +8 -0
  28. package/lib/cjs/queries/IRPipeline.js +25 -0
  29. package/lib/cjs/queries/IRPipeline.js.map +1 -0
  30. package/lib/cjs/queries/IRProjection.d.ts +38 -0
  31. package/lib/cjs/queries/IRProjection.js +98 -0
  32. package/lib/cjs/queries/IRProjection.js.map +1 -0
  33. package/lib/cjs/queries/IntermediateRepresentation.d.ts +210 -0
  34. package/lib/cjs/queries/IntermediateRepresentation.js +3 -0
  35. package/lib/cjs/queries/IntermediateRepresentation.js.map +1 -0
  36. package/lib/cjs/queries/MutationQuery.js +9 -23
  37. package/lib/cjs/queries/MutationQuery.js.map +1 -1
  38. package/lib/cjs/queries/QueryFactory.d.ts +0 -2
  39. package/lib/cjs/queries/QueryFactory.js +0 -3
  40. package/lib/cjs/queries/QueryFactory.js.map +1 -1
  41. package/lib/cjs/queries/QueryParser.d.ts +6 -1
  42. package/lib/cjs/queries/QueryParser.js +14 -22
  43. package/lib/cjs/queries/QueryParser.js.map +1 -1
  44. package/lib/cjs/queries/SelectQuery.d.ts +18 -27
  45. package/lib/cjs/queries/SelectQuery.js +54 -45
  46. package/lib/cjs/queries/SelectQuery.js.map +1 -1
  47. package/lib/cjs/queries/UpdateQuery.d.ts +8 -9
  48. package/lib/cjs/queries/UpdateQuery.js +4 -4
  49. package/lib/cjs/queries/UpdateQuery.js.map +1 -1
  50. package/lib/cjs/shapes/SHACL.d.ts +1 -0
  51. package/lib/cjs/shapes/SHACL.js +82 -2
  52. package/lib/cjs/shapes/SHACL.js.map +1 -1
  53. package/lib/cjs/shapes/Shape.d.ts +11 -10
  54. package/lib/cjs/shapes/Shape.js +11 -5
  55. package/lib/cjs/shapes/Shape.js.map +1 -1
  56. package/lib/cjs/sparql/SparqlAlgebra.d.ts +158 -0
  57. package/lib/cjs/sparql/SparqlAlgebra.js +4 -0
  58. package/lib/cjs/sparql/SparqlAlgebra.js.map +1 -0
  59. package/lib/cjs/sparql/SparqlStore.d.ts +52 -0
  60. package/lib/cjs/sparql/SparqlStore.js +81 -0
  61. package/lib/cjs/sparql/SparqlStore.js.map +1 -0
  62. package/lib/cjs/sparql/algebraToString.d.ts +13 -0
  63. package/lib/cjs/sparql/algebraToString.js +298 -0
  64. package/lib/cjs/sparql/algebraToString.js.map +1 -0
  65. package/lib/cjs/sparql/index.d.ts +9 -0
  66. package/lib/cjs/sparql/index.js +40 -0
  67. package/lib/cjs/sparql/index.js.map +1 -0
  68. package/lib/cjs/sparql/irToAlgebra.d.ts +39 -0
  69. package/lib/cjs/sparql/irToAlgebra.js +927 -0
  70. package/lib/cjs/sparql/irToAlgebra.js.map +1 -0
  71. package/lib/cjs/sparql/resultMapping.d.ts +36 -0
  72. package/lib/cjs/sparql/resultMapping.js +501 -0
  73. package/lib/cjs/sparql/resultMapping.js.map +1 -0
  74. package/lib/cjs/sparql/sparqlUtils.d.ts +32 -0
  75. package/lib/cjs/sparql/sparqlUtils.js +89 -0
  76. package/lib/cjs/sparql/sparqlUtils.js.map +1 -0
  77. package/lib/cjs/test-helpers/FusekiStore.d.ts +29 -0
  78. package/lib/cjs/test-helpers/FusekiStore.js +82 -0
  79. package/lib/cjs/test-helpers/FusekiStore.js.map +1 -0
  80. package/lib/cjs/test-helpers/fuseki-test-store.d.ts +43 -0
  81. package/lib/cjs/test-helpers/fuseki-test-store.js +144 -0
  82. package/lib/cjs/test-helpers/fuseki-test-store.js.map +1 -0
  83. package/lib/cjs/test-helpers/query-capture-store.d.ts +5 -0
  84. package/lib/cjs/test-helpers/query-capture-store.js +59 -0
  85. package/lib/cjs/test-helpers/query-capture-store.js.map +1 -0
  86. package/lib/cjs/test-helpers/query-fixtures.d.ts +736 -77
  87. package/lib/cjs/test-helpers/query-fixtures.js +45 -1
  88. package/lib/cjs/test-helpers/query-fixtures.js.map +1 -1
  89. package/lib/cjs/utils/LinkedStorage.d.ts +7 -7
  90. package/lib/cjs/utils/LinkedStorage.js +4 -3
  91. package/lib/cjs/utils/LinkedStorage.js.map +1 -1
  92. package/lib/esm/index.js +4 -0
  93. package/lib/esm/index.js.map +1 -1
  94. package/lib/esm/interfaces/IQuadStore.d.ts +19 -7
  95. package/lib/esm/queries/CreateQuery.d.ts +7 -8
  96. package/lib/esm/queries/CreateQuery.js +4 -4
  97. package/lib/esm/queries/CreateQuery.js.map +1 -1
  98. package/lib/esm/queries/DeleteQuery.d.ts +7 -8
  99. package/lib/esm/queries/DeleteQuery.js +4 -4
  100. package/lib/esm/queries/DeleteQuery.js.map +1 -1
  101. package/lib/esm/queries/IRAliasScope.d.ts +20 -0
  102. package/lib/esm/queries/IRAliasScope.js +47 -0
  103. package/lib/esm/queries/IRAliasScope.js.map +1 -0
  104. package/lib/esm/queries/IRCanonicalize.d.ts +36 -0
  105. package/lib/esm/queries/IRCanonicalize.js +116 -0
  106. package/lib/esm/queries/IRCanonicalize.js.map +1 -0
  107. package/lib/esm/queries/IRDesugar.d.ts +98 -0
  108. package/lib/esm/queries/IRDesugar.js +240 -0
  109. package/lib/esm/queries/IRDesugar.js.map +1 -0
  110. package/lib/esm/queries/IRLower.d.ts +8 -0
  111. package/lib/esm/queries/IRLower.js +264 -0
  112. package/lib/esm/queries/IRLower.js.map +1 -0
  113. package/lib/esm/queries/IRMutation.d.ts +23 -0
  114. package/lib/esm/queries/IRMutation.js +71 -0
  115. package/lib/esm/queries/IRMutation.js.map +1 -0
  116. package/lib/esm/queries/IRPipeline.d.ts +8 -0
  117. package/lib/esm/queries/IRPipeline.js +21 -0
  118. package/lib/esm/queries/IRPipeline.js.map +1 -0
  119. package/lib/esm/queries/IRProjection.d.ts +38 -0
  120. package/lib/esm/queries/IRProjection.js +92 -0
  121. package/lib/esm/queries/IRProjection.js.map +1 -0
  122. package/lib/esm/queries/IntermediateRepresentation.d.ts +210 -0
  123. package/lib/esm/queries/IntermediateRepresentation.js +2 -0
  124. package/lib/esm/queries/IntermediateRepresentation.js.map +1 -0
  125. package/lib/esm/queries/MutationQuery.js +9 -23
  126. package/lib/esm/queries/MutationQuery.js.map +1 -1
  127. package/lib/esm/queries/QueryFactory.d.ts +0 -2
  128. package/lib/esm/queries/QueryFactory.js +0 -3
  129. package/lib/esm/queries/QueryFactory.js.map +1 -1
  130. package/lib/esm/queries/QueryParser.d.ts +6 -1
  131. package/lib/esm/queries/QueryParser.js +14 -23
  132. package/lib/esm/queries/QueryParser.js.map +1 -1
  133. package/lib/esm/queries/SelectQuery.d.ts +18 -27
  134. package/lib/esm/queries/SelectQuery.js +54 -45
  135. package/lib/esm/queries/SelectQuery.js.map +1 -1
  136. package/lib/esm/queries/UpdateQuery.d.ts +8 -9
  137. package/lib/esm/queries/UpdateQuery.js +4 -4
  138. package/lib/esm/queries/UpdateQuery.js.map +1 -1
  139. package/lib/esm/shapes/SHACL.d.ts +1 -0
  140. package/lib/esm/shapes/SHACL.js +82 -2
  141. package/lib/esm/shapes/SHACL.js.map +1 -1
  142. package/lib/esm/shapes/Shape.d.ts +11 -10
  143. package/lib/esm/shapes/Shape.js +11 -5
  144. package/lib/esm/shapes/Shape.js.map +1 -1
  145. package/lib/esm/sparql/SparqlAlgebra.d.ts +158 -0
  146. package/lib/esm/sparql/SparqlAlgebra.js +3 -0
  147. package/lib/esm/sparql/SparqlAlgebra.js.map +1 -0
  148. package/lib/esm/sparql/SparqlStore.d.ts +52 -0
  149. package/lib/esm/sparql/SparqlStore.js +77 -0
  150. package/lib/esm/sparql/SparqlStore.js.map +1 -0
  151. package/lib/esm/sparql/algebraToString.d.ts +13 -0
  152. package/lib/esm/sparql/algebraToString.js +289 -0
  153. package/lib/esm/sparql/algebraToString.js.map +1 -0
  154. package/lib/esm/sparql/index.d.ts +9 -0
  155. package/lib/esm/sparql/index.js +13 -0
  156. package/lib/esm/sparql/index.js.map +1 -0
  157. package/lib/esm/sparql/irToAlgebra.d.ts +39 -0
  158. package/lib/esm/sparql/irToAlgebra.js +917 -0
  159. package/lib/esm/sparql/irToAlgebra.js.map +1 -0
  160. package/lib/esm/sparql/resultMapping.d.ts +36 -0
  161. package/lib/esm/sparql/resultMapping.js +496 -0
  162. package/lib/esm/sparql/resultMapping.js.map +1 -0
  163. package/lib/esm/sparql/sparqlUtils.d.ts +32 -0
  164. package/lib/esm/sparql/sparqlUtils.js +82 -0
  165. package/lib/esm/sparql/sparqlUtils.js.map +1 -0
  166. package/lib/esm/test-helpers/FusekiStore.d.ts +29 -0
  167. package/lib/esm/test-helpers/FusekiStore.js +78 -0
  168. package/lib/esm/test-helpers/FusekiStore.js.map +1 -0
  169. package/lib/esm/test-helpers/fuseki-test-store.d.ts +43 -0
  170. package/lib/esm/test-helpers/fuseki-test-store.js +135 -0
  171. package/lib/esm/test-helpers/fuseki-test-store.js.map +1 -0
  172. package/lib/esm/test-helpers/query-capture-store.d.ts +5 -0
  173. package/lib/esm/test-helpers/query-capture-store.js +55 -0
  174. package/lib/esm/test-helpers/query-capture-store.js.map +1 -0
  175. package/lib/esm/test-helpers/query-fixtures.d.ts +736 -77
  176. package/lib/esm/test-helpers/query-fixtures.js +44 -0
  177. package/lib/esm/test-helpers/query-fixtures.js.map +1 -1
  178. package/lib/esm/utils/LinkedStorage.d.ts +7 -7
  179. package/lib/esm/utils/LinkedStorage.js +4 -3
  180. package/lib/esm/utils/LinkedStorage.js.map +1 -1
  181. package/package.json +7 -3
  182. package/lib/cjs/interfaces/IQueryParser.d.ts +0 -13
  183. package/lib/cjs/interfaces/IQueryParser.js +0 -10
  184. package/lib/cjs/interfaces/IQueryParser.js.map +0 -1
  185. package/lib/esm/interfaces/IQueryParser.d.ts +0 -13
  186. package/lib/esm/interfaces/IQueryParser.js +0 -7
  187. package/lib/esm/interfaces/IQueryParser.js.map +0 -1
@@ -0,0 +1,210 @@
1
+ import { NodeReferenceValue } from './QueryFactory.js';
2
+ export type IRDirection = 'ASC' | 'DESC';
3
+ export type IRAlias = string;
4
+ export type IRValue = string | number | boolean | null;
5
+ export type IRQuery = IRSelectQuery | IRCreateMutation | IRUpdateMutation | IRDeleteMutation;
6
+ export type IRSelectQuery = {
7
+ kind: 'select';
8
+ root: IRShapeScanPattern;
9
+ patterns: IRGraphPattern[];
10
+ projection: IRProjectionItem[];
11
+ where?: IRExpression;
12
+ orderBy?: IROrderByItem[];
13
+ limit?: number;
14
+ offset?: number;
15
+ subjectId?: string;
16
+ singleResult?: boolean;
17
+ resultMap?: IRResultMapEntry[];
18
+ };
19
+ export type IRProjectionItem = {
20
+ alias: IRAlias;
21
+ expression: IRExpression;
22
+ };
23
+ export type IROrderByItem = {
24
+ expression: IRExpression;
25
+ direction: IRDirection;
26
+ };
27
+ export type IRResultMapEntry = {
28
+ key: string;
29
+ alias: IRAlias;
30
+ };
31
+ export type IRGraphPattern = IRShapeScanPattern | IRTraversePattern | IRJoinPattern | IROptionalPattern | IRUnionPattern | IRExistsPattern;
32
+ export type IRShapeScanPattern = {
33
+ kind: 'shape_scan';
34
+ shape: string;
35
+ alias: IRAlias;
36
+ };
37
+ export type IRTraversePattern = {
38
+ kind: 'traverse';
39
+ from: IRAlias;
40
+ to: IRAlias;
41
+ property: string;
42
+ filter?: IRExpression;
43
+ };
44
+ export type IRJoinPattern = {
45
+ kind: 'join';
46
+ patterns: IRGraphPattern[];
47
+ };
48
+ export type IROptionalPattern = {
49
+ kind: 'optional';
50
+ pattern: IRGraphPattern;
51
+ };
52
+ export type IRUnionPattern = {
53
+ kind: 'union';
54
+ branches: IRGraphPattern[];
55
+ };
56
+ export type IRExistsPattern = {
57
+ kind: 'exists';
58
+ pattern: IRGraphPattern;
59
+ };
60
+ export type IRExpression = IRLiteralExpression | IRReferenceExpression | IRAliasExpression | IRPropertyExpression | IRContextPropertyExpression | IRBinaryExpression | IRLogicalExpression | IRNotExpression | IRFunctionExpression | IRAggregateExpression | IRExistsExpression;
61
+ export type IRLiteralExpression = {
62
+ kind: 'literal_expr';
63
+ value: IRValue;
64
+ };
65
+ export type IRReferenceExpression = {
66
+ kind: 'reference_expr';
67
+ value: string;
68
+ };
69
+ export type IRAliasExpression = {
70
+ kind: 'alias_expr';
71
+ alias: IRAlias;
72
+ };
73
+ export type IRPropertyExpression = {
74
+ kind: 'property_expr';
75
+ sourceAlias: IRAlias;
76
+ property: string;
77
+ };
78
+ export type IRContextPropertyExpression = {
79
+ kind: 'context_property_expr';
80
+ contextIri: string;
81
+ property: string;
82
+ };
83
+ export type IRBinaryOperator = '=' | '!=' | '>' | '>=' | '<' | '<=';
84
+ export type IRBinaryExpression = {
85
+ kind: 'binary_expr';
86
+ operator: IRBinaryOperator;
87
+ left: IRExpression;
88
+ right: IRExpression;
89
+ };
90
+ export type IRLogicalOperator = 'and' | 'or';
91
+ export type IRLogicalExpression = {
92
+ kind: 'logical_expr';
93
+ operator: IRLogicalOperator;
94
+ expressions: IRExpression[];
95
+ };
96
+ export type IRNotExpression = {
97
+ kind: 'not_expr';
98
+ expression: IRExpression;
99
+ };
100
+ export type IRFunctionExpression = {
101
+ kind: 'function_expr';
102
+ name: string;
103
+ args: IRExpression[];
104
+ };
105
+ export type IRAggregateExpression = {
106
+ kind: 'aggregate_expr';
107
+ name: 'count' | 'sum' | 'avg' | 'min' | 'max';
108
+ args: IRExpression[];
109
+ };
110
+ export type IRExistsExpression = {
111
+ kind: 'exists_expr';
112
+ pattern: IRGraphPattern;
113
+ filter?: IRExpression;
114
+ };
115
+ export type IRCreateMutation = {
116
+ kind: 'create';
117
+ shape: string;
118
+ data: IRNodeData;
119
+ };
120
+ export type IRUpdateMutation = {
121
+ kind: 'update';
122
+ shape: string;
123
+ id: string;
124
+ data: IRNodeData;
125
+ };
126
+ export type IRDeleteMutation = {
127
+ kind: 'delete';
128
+ shape: string;
129
+ ids: NodeReferenceValue[];
130
+ };
131
+ export type IRNodeData = {
132
+ shape: string;
133
+ fields: IRFieldUpdate[];
134
+ id?: string;
135
+ };
136
+ export type IRFieldUpdate = {
137
+ property: string;
138
+ value: IRFieldValue;
139
+ };
140
+ export type IRSetModificationValue = {
141
+ add?: IRFieldValue[];
142
+ remove?: NodeReferenceValue[];
143
+ };
144
+ export type IRFieldValue = IRValue | Date | NodeReferenceValue | IRNodeData | IRSetModificationValue | IRFieldValue[] | undefined;
145
+ /**
146
+ * A single result row — an object with a node id and dynamic fields.
147
+ * Used in select and create results.
148
+ */
149
+ export type ResultRow = {
150
+ id: string;
151
+ [key: string]: ResultFieldValue;
152
+ };
153
+ /**
154
+ * Possible field values in a select or create result row.
155
+ */
156
+ export type ResultFieldValue = string | number | boolean | Date | null | undefined | ResultRow | ResultRow[];
157
+ /**
158
+ * What `selectQuery` should return.
159
+ *
160
+ * - Array of rows for multi-result queries (the default).
161
+ * - A single row when `query.singleResult` is true (`.one()` or subject-targeted query).
162
+ * - `null` when `singleResult` is true and the target node doesn't exist.
163
+ */
164
+ export type SelectResult = ResultRow[] | ResultRow | null;
165
+ /**
166
+ * What `createQuery` should return.
167
+ *
168
+ * A single row with the generated `id` and the created field values.
169
+ * Nested creates appear as nested `ResultRow` objects (with their own ids).
170
+ * Array fields (e.g. friends) appear as `ResultRow[]`.
171
+ */
172
+ export type CreateResult = ResultRow;
173
+ /**
174
+ * When a set property is fully overwritten, the result contains `updatedTo`
175
+ * with the new complete set of values.
176
+ */
177
+ export type SetOverwriteResult = {
178
+ updatedTo: ResultRow[];
179
+ };
180
+ /**
181
+ * When a set property is incrementally modified with `{add, remove}`,
182
+ * the result contains the added and removed entries.
183
+ */
184
+ export type SetModificationResult = {
185
+ added: ResultRow[];
186
+ removed: ResultRow[];
187
+ };
188
+ /**
189
+ * Possible field values in an update result row.
190
+ * Extends `ResultFieldValue` with set modification shapes.
191
+ */
192
+ export type UpdateFieldValue = ResultFieldValue | SetOverwriteResult | SetModificationResult;
193
+ /**
194
+ * What `updateQuery` should return.
195
+ *
196
+ * A single row with the target node's `id` and only the changed fields.
197
+ * Fields not included in the update are omitted (not returned).
198
+ *
199
+ * Field value shapes depend on the type of update:
200
+ * - Literal fields: the new value (string, number, boolean, Date).
201
+ * - Single object fields: a `ResultRow` with the referenced/created node.
202
+ * - Set overwrite (passing an array): `{updatedTo: ResultRow[]}`.
203
+ * - Set add/remove (passing `{add, remove}`): `{added: ResultRow[], removed: ResultRow[]}`.
204
+ * - Unset single field (passing `undefined` or `null`): field is `undefined`.
205
+ * - Unset multi-value field (passing `undefined`): empty array `[]`.
206
+ */
207
+ export type UpdateResult = {
208
+ id: string;
209
+ [key: string]: UpdateFieldValue;
210
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IntermediateRepresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntermediateRepresentation.js","sourceRoot":"","sources":["../../../src/queries/IntermediateRepresentation.ts"],"names":[],"mappings":""}
@@ -21,7 +21,6 @@ class MutationQueryFactory extends QueryFactory_js_1.QueryFactory {
21
21
  }
22
22
  }
23
23
  isSetModification(obj, shape) {
24
- // return obj.add || obj.remove;
25
24
  let hasAdd = obj.add;
26
25
  let hasRemove = obj.remove;
27
26
  let numKeysExpected = (hasAdd ? 1 : 0) + (hasRemove ? 1 : 0);
@@ -77,6 +76,12 @@ class MutationQueryFactory extends QueryFactory_js_1.QueryFactory {
77
76
  //but we should not include it in the fields
78
77
  delete obj.__id;
79
78
  }
79
+ else if (obj && 'id' in obj) {
80
+ //if the object has an id key alongside other data properties,
81
+ //treat it as a nested create with a predefined ID
82
+ id = obj.id.toString();
83
+ delete obj.id;
84
+ }
80
85
  for (var key in obj) {
81
86
  let propShape = props.find((p) => p.label === key);
82
87
  if (!propShape) {
@@ -169,33 +174,14 @@ class MutationQueryFactory extends QueryFactory_js_1.QueryFactory {
169
174
  else {
170
175
  return this.convertNodeDescription(value, valueShape);
171
176
  }
172
- // //check if the property shape allows a single value
173
- // if(propShape.maxCount === 1) {
174
- // //if yes, then the object should be seen as a node description
175
- // return this.convertNodeDescription(value,propShape.valueShape);
176
- // } else {
177
- // if(this.isSetModification(value,propShape)) {
178
- // //but if multiple values are allowed, the value should either be an Array of node descriptions
179
- // //OR an object with add or remove keys
180
- // return this.convertSetModification(value,propShape);
181
- // } else {
182
- // //it must be a set overwrite, and it must be coming from an array
183
- // if(!allowArrays) {
184
- // return this.convertNodeDescription(value,propShape.valueShape);
185
- // } else {
186
- // throw new Error("Invalid array value. Should be a node reference or node description")
187
- // }
188
- // }
189
- // }
190
177
  }
191
178
  }
192
179
  throw new Error(`Unsupported update value type: ${typeof value}`);
193
180
  }
194
181
  isNodeReference(obj) {
195
- //check if obj is an object with an id property
196
- //if yes, all other properties are ignored
197
- return typeof obj === 'object' && obj !== null && 'id' in obj; // && Object.keys(obj).length === 1);
198
- //and id is the only property
182
+ //check if obj is an object with only an id property
183
+ //if additional data properties are present, it's a nested create with predefined ID
184
+ return typeof obj === 'object' && obj !== null && 'id' in obj && Object.keys(obj).length === 1;
199
185
  }
200
186
  convertNodeReferences(input) {
201
187
  if (Array.isArray(input)) {
@@ -1 +1 @@
1
- {"version":3,"file":"MutationQuery.js","sourceRoot":"","sources":["../../../src/queries/MutationQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MutationQuery.js","sourceRoot":"","sources":["../../../src/queries/MutationQuery.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { LinkedQuery } from './SelectQuery.js';
2
1
  import { NodeShape, PropertyShape } from '../shapes/SHACL.js';
3
2
  import { Shape } from '../shapes/Shape.js';
4
3
  import { ShapeSet } from '../collections/ShapeSet.js';
@@ -76,7 +75,6 @@ export type ShapeReferenceValue = {
76
75
  export { toNodeReference } from '../utils/NodeReference.js';
77
76
  export type { NodeReferenceValue };
78
77
  export declare abstract class QueryFactory {
79
- getQueryObject(): LinkedQuery | Promise<LinkedQuery>;
80
78
  }
81
79
  export declare function isSetModificationValue(value: any): value is SetModificationValue;
82
80
  /**
@@ -6,9 +6,6 @@ exports.checkNewCount = checkNewCount;
6
6
  var NodeReference_js_1 = require("../utils/NodeReference.js");
7
7
  Object.defineProperty(exports, "toNodeReference", { enumerable: true, get: function () { return NodeReference_js_1.toNodeReference; } });
8
8
  class QueryFactory {
9
- getQueryObject() {
10
- return null;
11
- }
12
9
  }
13
10
  exports.QueryFactory = QueryFactory;
14
11
  function isSetModificationValue(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryFactory.js","sourceRoot":"","sources":["../../../src/queries/QueryFactory.ts"],"names":[],"mappings":";;;AA6OA,wDAcC;AAQD,sCAeC;AA9CD,8DAA0D;AAAlD,mHAAA,eAAe,OAAA;AAGvB,MAAsB,YAAY;IAChC,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAJD,oCAIC;AAED,SAAgB,sBAAsB,CACpC,KAAU;IAEV,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAC3B,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;IACjC,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACxC,mBAAmB;IACnB,OAAO,CACL,CAAC,SAAS,IAAI,YAAY,IAAI,OAAO,KAAK,CAAC,CAAC;QAC5C,CAAC,SAAS,IAAI,OAAO,KAAK,CAAC,CAAC;QAC5B,CAAC,YAAY,IAAI,OAAO,KAAK,CAAC,CAAC,CAChC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,SAAwB,EAAE,SAAiB;IACvE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,iCAAiC,SAAS,CAAC,KAAK,mBAAmB,SAAS,CAAC,QAAQ,4BAA4B,SAAS,EAAE,CAC7H,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,gCAAgC,SAAS,CAAC,KAAK,mBAAmB,SAAS,CAAC,QAAQ,4BAA4B,SAAS,EAAE,CAC5H,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"QueryFactory.js","sourceRoot":"","sources":["../../../src/queries/QueryFactory.ts"],"names":[],"mappings":";;;AAuKA,wDAcC;AAQD,sCAeC;AA1CD,8DAA0D;AAAlD,mHAAA,eAAe,OAAA;AAGvB,MAAsB,YAAY;CAAG;AAArC,oCAAqC;AAErC,SAAgB,sBAAsB,CACpC,KAAU;IAEV,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAC3B,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;IACjC,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACxC,mBAAmB;IACnB,OAAO,CACL,CAAC,SAAS,IAAI,YAAY,IAAI,OAAO,KAAK,CAAC,CAAC;QAC5C,CAAC,SAAS,IAAI,OAAO,KAAK,CAAC,CAAC;QAC5B,CAAC,YAAY,IAAI,OAAO,KAAK,CAAC,CAAC,CAChC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,SAAwB,EAAE,SAAiB;IACvE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,iCAAiC,SAAS,CAAC,KAAK,mBAAmB,SAAS,CAAC,QAAQ,4BAA4B,SAAS,EAAE,CAC7H,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,gCAAgC,SAAS,CAAC,KAAK,mBAAmB,SAAS,CAAC,QAAQ,4BAA4B,SAAS,EAAE,CAC5H,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,9 +1,14 @@
1
1
  import { GetQueryResponseType, QueryResponseToResultType, SelectQueryFactory } from './SelectQuery.js';
2
2
  import { AddId, NodeReferenceValue, UpdatePartial } from './QueryFactory.js';
3
- import { Shape } from '../shapes/Shape.js';
3
+ import type { Shape } from '../shapes/Shape.js';
4
4
  import { CreateResponse } from './CreateQuery.js';
5
5
  import { DeleteResponse } from './DeleteQuery.js';
6
6
  import { NodeId } from './MutationQuery.js';
7
+ /**
8
+ * Bridges the DSL layer (Shape.select/create/update/delete) to the storage
9
+ * layer (LinkedStorage → IQuadStore). Each method builds the IR from a
10
+ * factory and routes it to the appropriate store.
11
+ */
7
12
  export declare class QueryParser {
8
13
  static selectQuery<ShapeType extends Shape, ResponseType, Source, ResultType = QueryResponseToResultType<GetQueryResponseType<SelectQueryFactory<ShapeType, ResponseType>>, ShapeType>[]>(query: SelectQueryFactory<ShapeType, ResponseType, Source>): Promise<ResultType>;
9
14
  static updateQuery<ShapeType extends Shape, U extends UpdatePartial<ShapeType>>(id: string | NodeReferenceValue, updateObjectOrFn: U, shapeClass: typeof Shape): Promise<AddId<U>>;
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -16,18 +10,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
10
  };
17
11
  Object.defineProperty(exports, "__esModule", { value: true });
18
12
  exports.QueryParser = void 0;
19
- const IQueryParser_js_1 = require("../interfaces/IQueryParser.js");
20
- const Shape_js_1 = require("../shapes/Shape.js");
21
13
  const LinkedStorage_js_1 = require("../utils/LinkedStorage.js");
22
14
  const UpdateQuery_js_1 = require("./UpdateQuery.js");
23
15
  const CreateQuery_js_1 = require("./CreateQuery.js");
24
16
  const DeleteQuery_js_1 = require("./DeleteQuery.js");
25
- let QueryParser = class QueryParser {
17
+ /**
18
+ * Bridges the DSL layer (Shape.select/create/update/delete) to the storage
19
+ * layer (LinkedStorage → IQuadStore). Each method builds the IR from a
20
+ * factory and routes it to the appropriate store.
21
+ */
22
+ class QueryParser {
26
23
  static selectQuery(query) {
27
24
  return __awaiter(this, void 0, void 0, function* () {
28
25
  try {
29
- const queryObject = query.getQueryObject();
30
- return LinkedStorage_js_1.LinkedStorage.selectQuery(queryObject);
26
+ return LinkedStorage_js_1.LinkedStorage.selectQuery(query.build());
31
27
  }
32
28
  catch (e) {
33
29
  return Promise.reject(e);
@@ -36,14 +32,14 @@ let QueryParser = class QueryParser {
36
32
  }
37
33
  static updateQuery(id, updateObjectOrFn, shapeClass) {
38
34
  const query = new UpdateQuery_js_1.UpdateQueryFactory(shapeClass, id, updateObjectOrFn);
39
- let queryObject = query.getQueryObject();
40
- return LinkedStorage_js_1.LinkedStorage.updateQuery(queryObject);
35
+ const irQuery = query.build();
36
+ return LinkedStorage_js_1.LinkedStorage.updateQuery(irQuery);
41
37
  }
42
38
  static createQuery(updateObjectOrFn, shapeClass) {
43
39
  try {
44
40
  const query = new CreateQuery_js_1.CreateQueryFactory(shapeClass, updateObjectOrFn);
45
- let queryObject = query.getQueryObject();
46
- return LinkedStorage_js_1.LinkedStorage.createQuery(queryObject);
41
+ const irQuery = query.build();
42
+ return LinkedStorage_js_1.LinkedStorage.createQuery(irQuery);
47
43
  }
48
44
  catch (e) {
49
45
  console.warn(e);
@@ -51,13 +47,9 @@ let QueryParser = class QueryParser {
51
47
  }
52
48
  static deleteQuery(id, shapeClass) {
53
49
  const query = new DeleteQuery_js_1.DeleteQueryFactory(shapeClass, id);
54
- let queryObject = query.getQueryObject();
55
- return LinkedStorage_js_1.LinkedStorage.deleteQuery(queryObject);
50
+ const irQuery = query.build();
51
+ return LinkedStorage_js_1.LinkedStorage.deleteQuery(irQuery);
56
52
  }
57
- };
53
+ }
58
54
  exports.QueryParser = QueryParser;
59
- exports.QueryParser = QueryParser = __decorate([
60
- (0, IQueryParser_js_1.staticImplements)() /* this class implements this interface with static methods */
61
- ], QueryParser);
62
- Shape_js_1.Shape.queryParser = QueryParser;
63
55
  //# sourceMappingURL=QueryParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryParser.js","sourceRoot":"","sources":["../../../src/queries/QueryParser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,mEAA6E;AAO7E,iDAAyC;AACzC,gEAAwD;AACxD,qDAAoD;AACpD,qDAAoE;AACpE,qDAAoE;AAI7D,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,MAAM,CAAO,WAAW,CAStB,KAA0D;;YAE1D,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC3C,OAAO,gCAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;KAAA;IAED,MAAM,CAAC,WAAW,CAIhB,EAA+B,EAC/B,gBAAmB,EACnB,UAAwB;QAExB,MAAM,KAAK,GAAG,IAAI,mCAAkB,CAClC,UAAU,EACV,EAAE,EACF,gBAAgB,CACjB,CAAC;QACF,IAAI,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACzC,OAAO,gCAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,WAAW,CAGhB,gBAAmB,EAAE,UAAwB;QAC7C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,mCAAkB,CAClC,UAAU,EACV,gBAAgB,CACjB,CAAC;YACF,IAAI,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YACzC,OAAO,gCAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,EAA4C,EAC5C,UAAwB;QAExB,MAAM,KAAK,GAAG,IAAI,mCAAkB,CAAY,UAAU,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QACzC,OAAO,gCAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AA7DY,kCAAW;sBAAX,WAAW;IADvB,IAAA,kCAAgB,GAAgB,CAAC,8DAA8D;GACnF,WAAW,CA6DvB;AAED,gBAAK,CAAC,WAAW,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"QueryParser.js","sourceRoot":"","sources":["../../../src/queries/QueryParser.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,gEAAwD;AACxD,qDAAoD;AACpD,qDAAoE;AACpE,qDAAoE;AAGpE;;;;GAIG;AACH,MAAa,WAAW;IACtB,MAAM,CAAO,WAAW,CAStB,KAA0D;;YAE1D,IAAI,CAAC;gBACH,OAAO,gCAAa,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;KAAA;IAED,MAAM,CAAC,WAAW,CAIhB,EAA+B,EAC/B,gBAAmB,EACnB,UAAwB;QAExB,MAAM,KAAK,GAAG,IAAI,mCAAkB,CAClC,UAAU,EACV,EAAE,EACF,gBAAgB,CACjB,CAAC;QACF,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,gCAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,WAAW,CAGhB,gBAAmB,EAAE,UAAwB;QAC7C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,mCAAkB,CAClC,UAAU,EACV,gBAAgB,CACjB,CAAC;YACF,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,gCAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,EAA4C,EAC5C,UAAwB;QAExB,MAAM,KAAK,GAAG,IAAI,mCAAkB,CAAY,UAAU,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,gCAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF;AA5DD,kCA4DC"}
@@ -4,6 +4,13 @@ import { ShapeSet } from '../collections/ShapeSet.js';
4
4
  import { CoreSet } from '../collections/CoreSet.js';
5
5
  import { CoreMap } from '../collections/CoreMap.js';
6
6
  import { NodeReferenceValue, Prettify, QueryFactory, ShapeReferenceValue } from './QueryFactory.js';
7
+ import type { RawSelectInput } from './IRDesugar.js';
8
+ import type { IRSelectQuery } from './IntermediateRepresentation.js';
9
+ /**
10
+ * The canonical SelectQuery type — an IR AST node representing a select query.
11
+ * This is the type received by IQuadStore.selectQuery().
12
+ */
13
+ export type SelectQuery = IRSelectQuery;
7
14
  /**
8
15
  * ###################################
9
16
  * #### TYPES FOR QUERY BUILDING ####
@@ -29,34 +36,11 @@ export type SortByPath = {
29
36
  paths: QueryPath[];
30
37
  direction: 'ASC' | 'DESC';
31
38
  };
32
- /**
33
- * A LinkedQuery is used to build a query, when complete it can be turned into a LinkedQueryObject
34
- * that is used to send across the network as it can be serialized to JSON
35
- * @todo add | UpdateQuery and others
36
- */
37
- export interface LinkedQuery {
38
- type: string;
39
- }
40
39
  export type SubQueryPaths = SelectPath;
41
40
  /**
42
41
  * A QueryPath is an array of QuerySteps, representing the path of properties that were requested to reach a certain value
43
42
  */
44
43
  export type QueryPath = (QueryStep | SubQueryPaths)[] | WherePath;
45
- /**
46
- * A plain JS object that represents a LinkedQuery created by a Shape.select(...) call
47
- * It can be sent across the network.
48
- * @see LinkedQuery
49
- */
50
- export interface SelectQuery<S extends Shape = Shape, ResultType = any> extends LinkedQuery {
51
- select: SelectPath;
52
- where?: WherePath;
53
- sortBy?: SortByPath;
54
- subject?: S | QResult<S>;
55
- limit?: number;
56
- offset?: number;
57
- shape?: ShapeType<S>;
58
- singleResult?: boolean;
59
- }
60
44
  /**
61
45
  * Much like a querypath, except it can only contain QuerySteps
62
46
  */
@@ -79,8 +63,7 @@ export type WhereAndOr = {
79
63
  andOr: AndOrQueryToken[];
80
64
  };
81
65
  /**
82
- * A WhereQuery is a (sub)query that is used to filter down the results of its parent query
83
- * Hence it extends LinkedQuery and can do anything a normal query can
66
+ * A WhereQuery is a (sub)query that is used to filter down the results of its parent query.
84
67
  */
85
68
  export type AndOrQueryToken = {
86
69
  and?: WherePath;
@@ -97,6 +80,9 @@ export declare enum WhereMethods {
97
80
  export type QueryShapeProps<T extends Shape, Source, Property extends string | number | symbol = any> = {
98
81
  [P in keyof T]: ToQueryBuilderObject<T[P], QShape<T, Source, Property>, P>;
99
82
  };
83
+ export type SelectAllQueryResponse<T extends Shape> = Array<QueryShapeProps<T, null, ''>[Exclude<Extract<{
84
+ [K in keyof T]-?: T[K] extends (...args: any[]) => any ? never : K;
85
+ }[keyof T], string>, Extract<keyof Shape, string>>]>;
100
86
  /**
101
87
  * This type states that the ShapeSet has access to the same methods as the shape of all the items in the set
102
88
  * (this is enabled with the QueryShapeSet.proxifyShapeSet method)
@@ -271,6 +257,7 @@ export declare class QueryShapeSet<S extends Shape = Shape, Source = any, Proper
271
257
  size(): SetSize<this>;
272
258
  where(validation: WhereClause<S>): this;
273
259
  select<QF = unknown>(subQueryFn: QueryBuildFn<S, QF>): SelectQueryFactory<S, QF, QueryShapeSet<S, Source, Property>>;
260
+ selectAll(): SelectQueryFactory<S, SelectAllQueryResponse<S>, QueryShapeSet<S, Source, Property>>;
274
261
  some(validation: WhereClause<S>): SetEvaluation;
275
262
  every(validation: WhereClause<S>): SetEvaluation;
276
263
  private someOrEvery;
@@ -286,6 +273,7 @@ export declare class QueryShape<S extends Shape = Shape, Source = any, Property
286
273
  as<ShapeClass extends typeof Shape>(shape: ShapeClass): QShape<InstanceType<ShapeClass>, Source, Property>;
287
274
  equals(otherValue: NodeReferenceValue | QShape<any>): Evaluation;
288
275
  select<QF = unknown>(subQueryFn: QueryBuildFn<S, QF>): SelectQueryFactory<S, QF, QueryShape<S, Source, Property>>;
276
+ selectAll(): SelectQueryFactory<S, SelectAllQueryResponse<S>, QueryShape<S, Source, Property>>;
289
277
  }
290
278
  export declare class Evaluation {
291
279
  value: QueryBuilderObject | QueryPrimitiveSet;
@@ -364,9 +352,12 @@ export declare class SelectQueryFactory<S extends Shape, ResponseType = any, Sou
364
352
  where(validation: WhereClause<S>): this;
365
353
  exec(): Promise<QueryResponseToResultType<ResponseType>[]>;
366
354
  /**
367
- * Turns the LinkedQuery into a SelectQuery, which is a plain JS object that can be serialized to JSON
355
+ * Returns the raw pipeline input for this query.
356
+ * Used internally by build() and by test helpers that need
357
+ * to feed factory state into individual pipeline stages.
368
358
  */
369
- getQueryObject(): SelectQuery<S>;
359
+ toRawInput(): RawSelectInput;
360
+ build(): SelectQuery;
370
361
  getSubject(): {
371
362
  id: string;
372
363
  } | S | ShapeSet<S>;