@_linked/core 2.3.0-next.20260325032529 → 2.3.0-next.20260403145630

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 (64) hide show
  1. package/CHANGELOG.md +278 -30
  2. package/lib/cjs/queries/IRDesugar.d.ts +1 -0
  3. package/lib/cjs/queries/IRDesugar.js +6 -0
  4. package/lib/cjs/queries/IRDesugar.js.map +1 -1
  5. package/lib/cjs/queries/IRLower.js +6 -3
  6. package/lib/cjs/queries/IRLower.js.map +1 -1
  7. package/lib/cjs/queries/IRProjection.d.ts +1 -1
  8. package/lib/cjs/queries/IRProjection.js +5 -2
  9. package/lib/cjs/queries/IRProjection.js.map +1 -1
  10. package/lib/cjs/queries/IntermediateRepresentation.d.ts +3 -1
  11. package/lib/cjs/queries/MutationQuery.d.ts +1 -1
  12. package/lib/cjs/queries/MutationQuery.js +5 -3
  13. package/lib/cjs/queries/MutationQuery.js.map +1 -1
  14. package/lib/cjs/queries/QueryBuilder.d.ts +8 -1
  15. package/lib/cjs/queries/QueryBuilder.js +31 -1
  16. package/lib/cjs/queries/QueryBuilder.js.map +1 -1
  17. package/lib/cjs/queries/QueryContext.d.ts +10 -0
  18. package/lib/cjs/queries/QueryContext.js +29 -8
  19. package/lib/cjs/queries/QueryContext.js.map +1 -1
  20. package/lib/cjs/sparql/SparqlStore.d.ts +3 -1
  21. package/lib/cjs/sparql/SparqlStore.js +5 -2
  22. package/lib/cjs/sparql/SparqlStore.js.map +1 -1
  23. package/lib/cjs/sparql/irToAlgebra.js +4 -0
  24. package/lib/cjs/sparql/irToAlgebra.js.map +1 -1
  25. package/lib/cjs/sparql/resultMapping.js +120 -54
  26. package/lib/cjs/sparql/resultMapping.js.map +1 -1
  27. package/lib/cjs/test-helpers/fuseki-test-store.d.ts +1 -0
  28. package/lib/cjs/test-helpers/fuseki-test-store.js +8 -7
  29. package/lib/cjs/test-helpers/fuseki-test-store.js.map +1 -1
  30. package/lib/cjs/test-helpers/query-fixtures.d.ts +5 -0
  31. package/lib/cjs/test-helpers/query-fixtures.js +1 -0
  32. package/lib/cjs/test-helpers/query-fixtures.js.map +1 -1
  33. package/lib/esm/queries/IRDesugar.d.ts +1 -0
  34. package/lib/esm/queries/IRDesugar.js +6 -0
  35. package/lib/esm/queries/IRDesugar.js.map +1 -1
  36. package/lib/esm/queries/IRLower.js +6 -3
  37. package/lib/esm/queries/IRLower.js.map +1 -1
  38. package/lib/esm/queries/IRProjection.d.ts +1 -1
  39. package/lib/esm/queries/IRProjection.js +5 -2
  40. package/lib/esm/queries/IRProjection.js.map +1 -1
  41. package/lib/esm/queries/IntermediateRepresentation.d.ts +3 -1
  42. package/lib/esm/queries/MutationQuery.d.ts +1 -1
  43. package/lib/esm/queries/MutationQuery.js +5 -3
  44. package/lib/esm/queries/MutationQuery.js.map +1 -1
  45. package/lib/esm/queries/QueryBuilder.d.ts +8 -1
  46. package/lib/esm/queries/QueryBuilder.js +31 -1
  47. package/lib/esm/queries/QueryBuilder.js.map +1 -1
  48. package/lib/esm/queries/QueryContext.d.ts +10 -0
  49. package/lib/esm/queries/QueryContext.js +27 -8
  50. package/lib/esm/queries/QueryContext.js.map +1 -1
  51. package/lib/esm/sparql/SparqlStore.d.ts +3 -1
  52. package/lib/esm/sparql/SparqlStore.js +5 -2
  53. package/lib/esm/sparql/SparqlStore.js.map +1 -1
  54. package/lib/esm/sparql/irToAlgebra.js +4 -0
  55. package/lib/esm/sparql/irToAlgebra.js.map +1 -1
  56. package/lib/esm/sparql/resultMapping.js +120 -54
  57. package/lib/esm/sparql/resultMapping.js.map +1 -1
  58. package/lib/esm/test-helpers/fuseki-test-store.d.ts +1 -0
  59. package/lib/esm/test-helpers/fuseki-test-store.js +1 -1
  60. package/lib/esm/test-helpers/fuseki-test-store.js.map +1 -1
  61. package/lib/esm/test-helpers/query-fixtures.d.ts +5 -0
  62. package/lib/esm/test-helpers/query-fixtures.js +1 -0
  63. package/lib/esm/test-helpers/query-fixtures.js.map +1 -1
  64. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -4,6 +4,91 @@
4
4
 
5
5
  ### Minor Changes
6
6
 
7
+ - [#47](https://github.com/Semantu/linked/pull/47) [`4917894`](https://github.com/Semantu/linked/commit/49178946a0a5fc95c71c69a430da6602e561c5f2) Thanks [@flyon](https://github.com/flyon)! - Fix maxCount-aware result mapping for single-value and multi-value properties
8
+
9
+ **Single-value properties** (`maxCount: 1`, e.g. `bestFriend`) now return a single `ResultRow` (or `null` when absent) instead of `ResultRow[]` when accessed via traversal queries like `Person.select(p => p.bestFriend.name)`.
10
+
11
+ **Multi-value object properties** (e.g. `friends`, without `maxCount`) now correctly return `ResultRow[]` arrays when selected via flat projections like `Person.select(p => p.friends)`. Previously, only the first entity reference was returned.
12
+
13
+ **Multi-value literal properties** (e.g. `nickNames: string[]`) now correctly return typed arrays (e.g. `string[]`). Previously, values were silently dropped and an empty array was returned.
14
+
15
+ **Behavioral changes:**
16
+
17
+ - If your code accesses single-value traversal results as arrays (e.g. `result.bestFriend[0]`), update to access the value directly (`result.bestFriend`).
18
+ - If your code expects multi-value flat select results as single objects (e.g. `result.friends.id`), update to handle arrays (`result.friends[0].id`).
19
+
20
+ The `maxCount` metadata from `PropertyShape` is now propagated through the full IR pipeline (`IRTraversePattern.maxCount`, `IRPropertyExpression.maxCount`) and used during SPARQL result mapping.
21
+
22
+ ## 2.2.3
23
+
24
+ ### Patch Changes
25
+
26
+ - [#42](https://github.com/Semantu/linked/pull/42) [`1b4d114`](https://github.com/Semantu/linked/commit/1b4d114f22aec4e984b744733dbab603df8b282d) Thanks [@flyon](https://github.com/flyon)! - Add `PendingQueryContext` for lazy query context resolution. `getQueryContext()` now returns a live reference with a lazy `.id` getter instead of `null` when the context hasn't been set yet. `QueryBuilder.for()` accepts `PendingQueryContext` and `null`. New `hasPendingContext()` method. `setQueryContext(name, null)` now properly clears the entry. Test Fuseki port changed to 3939; `globalSetup`/`globalTeardown` added for reliable Fuseki auto-start.
27
+
28
+ ## 2.2.2
29
+
30
+ ### Patch Changes
31
+
32
+ - [#40](https://github.com/Semantu/linked/pull/40) [`4688fdd`](https://github.com/Semantu/linked/commit/4688fdd3edb949ddca50886d51549aa543a99033) Thanks [@flyon](https://github.com/flyon)! - ### Bug fixes
33
+
34
+ - **`MutationQuery.convertNodeDescription()`** no longer mutates the caller's input object. Previously, `delete obj.id` / `delete obj.__id` operated directly on the passed-in object, causing shared references to lose their `id` across sequential creates.
35
+ - **`SparqlStore.createQuery()`** now respects a pre-set `data.id` from `__id` instead of always generating a new URI via `generateEntityUri()`. Entities created with custom identity (e.g. webID) are now stored under the correct URI.
36
+
37
+ ### Test infrastructure
38
+
39
+ - Jest config simplified: `roots` + single `testMatch` pattern prevents duplicate test runs.
40
+ - Fuseki integration tests now call `ensureFuseki()` to auto-start Docker when Fuseki isn't running.
41
+ - Parallel test safety: `afterAll` clears data instead of deleting the shared dataset.
42
+ - Added regression tests for both fixes (unit + Fuseki integration).
43
+
44
+ ## 2.2.1
45
+
46
+ ### Patch Changes
47
+
48
+ - [#37](https://github.com/Semantu/linked/pull/37) [`0a3adc1`](https://github.com/Semantu/linked/commit/0a3adc1b9c47d9101da6d5c8b09e44531e2e396f) Thanks [@flyon](https://github.com/flyon)! - Fix SPARQL generation for `.where()` filters with OR conditions and `.every()`/`.some()` quantifiers.
49
+ Tightened assertions across multiple integration tests.
50
+
51
+ ## 2.2.0
52
+
53
+ ### Patch Changes
54
+
55
+ - [#34](https://github.com/Semantu/linked/pull/34) [`e2ae4a2`](https://github.com/Semantu/linked/commit/e2ae4a28e5be28716e1634ca81d9c379a291cbc6) Thanks [@flyon](https://github.com/flyon)! - ### SHACL property path support
56
+
57
+ Property decorators now accept full SPARQL property path syntax:
58
+
59
+ ```ts
60
+ @literalProperty({path: 'foaf:knows/foaf:name'}) // sequence
61
+ @literalProperty({path: '<http://ex.org/a>|<http://ex.org/b>'}) // alternative
62
+ @literalProperty({path: '^foaf:knows'}) // inverse
63
+ @literalProperty({path: 'foaf:knows*'}) // zeroOrMore
64
+ ```
65
+
66
+ New exports from `src/paths/`:
67
+
68
+ - `PathExpr`, `PathRef` — AST types for property paths
69
+ - `parsePropertyPath(input): PathExpr` — parser for SPARQL property path strings
70
+ - `normalizePropertyPath(input): PathExpr` — normalizes any input form to canonical AST
71
+ - `pathExprToSparql(expr): string` — renders PathExpr to SPARQL syntax
72
+ - `serializePathToSHACL(expr): SHACLPathResult` — serializes to SHACL RDF triples
73
+
74
+ `PropertyShape.path` is now typed as `PathExpr` (was opaque). Complex paths flow through the full IR pipeline and emit correct SPARQL property path syntax in generated queries.
75
+
76
+ ### Strict prefix resolution in query API
77
+
78
+ `QueryBuilder.for()` and `.forAll()` now throw on unregistered prefixes instead of silently passing through. New export:
79
+
80
+ - `resolveUriOrThrow(str): string` — strict prefix resolution (throws on unknown prefix)
81
+
82
+ ### SHACL constraint field fixes
83
+
84
+ - `hasValue` and `in` config fields now correctly handle literal values (`string`, `number`, `boolean`) — previously all values were wrapped as IRI nodes
85
+ - `lessThan` and `lessThanOrEquals` config fields are now wired into `createPropertyShape` and exposed via `getResult()`
86
+ - New `PropertyShapeResult` interface provides typed access to `getResult()` output
87
+
88
+ ## 2.1.0
89
+
90
+ ### Minor Changes
91
+
7
92
  - [#31](https://github.com/Semantu/linked/pull/31) [`eb88865`](https://github.com/Semantu/linked/commit/eb8886564f2c9663805c4308a834ca615f9a1dab) Thanks [@flyon](https://github.com/flyon)! - Properties in `select()` and `update()` now support expressions — you can compute values dynamically instead of just reading or writing raw fields.
8
93
 
9
94
  ### What's new
@@ -51,58 +136,221 @@
51
136
 
52
137
  See the [README](./README.md#computed-expressions) for the full method reference and more examples.
53
138
 
139
+ ## 2.0.1
140
+
54
141
  ### Patch Changes
55
142
 
56
- - [#37](https://github.com/Semantu/linked/pull/37) [`0a3adc1`](https://github.com/Semantu/linked/commit/0a3adc1b9c47d9101da6d5c8b09e44531e2e396f) Thanks [@flyon](https://github.com/flyon)! - Fix SPARQL generation for `.where()` filters with OR conditions and `.every()`/`.some()` quantifiers.
143
+ - [#27](https://github.com/Semantu/linked/pull/27) [`d3c1e91`](https://github.com/Semantu/linked/commit/d3c1e918b2a63240ddbf3cb550ec43fa1e019c35) Thanks [@flyon](https://github.com/flyon)! - Add MINUS support on QueryBuilder with multiple call styles:
57
144
 
58
- ### Inline where with OR filters
145
+ - `.minus(Shape)` exclude by shape type
146
+ - `.minus(p => p.prop.equals(val))` — exclude by condition
147
+ - `.minus(p => p.prop)` — exclude by property existence
148
+ - `.minus(p => [p.prop1, p.nested.prop2])` — exclude by multi-property existence with nested path support
59
149
 
60
- Previously, filter property triples inside inline `.where()` blocks were required, causing OR filters to fail when some entities lacked certain properties. For example, `.where(f => f.name.equals('Jinx').or(f.hobby.equals('Jogging')))` would exclude entities without a `hobby` triple, even if they matched the `name` condition.
150
+ Add bulk delete operations:
61
151
 
62
- Filter property triples are now wrapped in nested OPTIONALs within the filtered block, so SPARQL's `||` short-circuits correctly over unbound variables.
152
+ - `Shape.deleteAll()` / `DeleteBuilder.from(Shape).all()` delete all instances with schema-aware blank node cleanup
153
+ - `Shape.deleteWhere(fn)` / `DeleteBuilder.from(Shape).where(fn)` — conditional delete
63
154
 
64
- ### EXISTS/NOT EXISTS scope fix
155
+ Add conditional update operations:
65
156
 
66
- Property triples referenced inside `.every()` and `.some()` quantifier filters were incorrectly placed in the outer query scope instead of inside the EXISTS block. This caused `.every()` to return incorrect results (e.g., not excluding entities whose members fail the predicate).
157
+ - `.update(data).where(fn)` update matching instances
158
+ - `.update(data).forAll()` — update all instances
67
159
 
68
- Filter property triples are now emitted directly inside the EXISTS pattern where they are semantically scoped.
160
+ API cleanup:
69
161
 
70
- ### Test improvements
162
+ - Deprecate `sortBy()` in favor of `orderBy()`
163
+ - Remove `DeleteBuilder.for()` — use `DeleteBuilder.from(shape, ids)` instead
164
+ - Require `data` parameter in `Shape.update(data)`
71
165
 
72
- Tightened assertions across multiple integration tests (`whereOr`, `whereAnd`, `whereEvery`, `whereSequences`, `countEquals`, `selectBirthDate`, and others) to verify exact result counts, correct inclusion/exclusion, and proper type coercion.
166
+ ## 2.0.0
73
167
 
74
- - [#34](https://github.com/Semantu/linked/pull/34) [`e2ae4a2`](https://github.com/Semantu/linked/commit/e2ae4a28e5be28716e1634ca81d9c379a291cbc6) Thanks [@flyon](https://github.com/flyon)! - ### SHACL property path support
168
+ ### Major Changes
75
169
 
76
- Property decorators now accept full SPARQL property path syntax:
170
+ - [#23](https://github.com/Semantu/linked/pull/23) [`d2d1eca`](https://github.com/Semantu/linked/commit/d2d1eca3517af11f39348dc83ba5e60703ef86d2) Thanks [@flyon](https://github.com/flyon)! - ## Breaking Changes
77
171
 
78
- ```ts
79
- @literalProperty({path: 'foaf:knows/foaf:name'}) // sequence
80
- @literalProperty({path: '<http://ex.org/a>|<http://ex.org/b>'}) // alternative
81
- @literalProperty({path: '^foaf:knows'}) // inverse
82
- @literalProperty({path: 'foaf:knows*'}) // zeroOrMore
172
+ ### `Shape.select()` and `Shape.update()` no longer accept an ID as the first argument
173
+
174
+ Use `.for(id)` to target a specific entity instead.
175
+
176
+ **Select:**
177
+
178
+ ```typescript
179
+ // Before
180
+ const result = await Person.select({ id: "..." }, (p) => p.name);
181
+
182
+ // After
183
+ const result = await Person.select((p) => p.name).for({ id: "..." });
83
184
  ```
84
185
 
85
- New exports from `src/paths/`:
186
+ `.for(id)` unwraps the result type from array to single object, matching the old single-subject overload behavior.
86
187
 
87
- - `PathExpr`, `PathRef` — AST types for property paths
88
- - `parsePropertyPath(input): PathExpr` — parser for SPARQL property path strings
89
- - `normalizePropertyPath(input): PathExpr` — normalizes any input form to canonical AST
90
- - `pathExprToSparql(expr): string` — renders PathExpr to SPARQL syntax
91
- - `serializePathToSHACL(expr): SHACLPathResult` — serializes to SHACL RDF triples
188
+ **Update:**
92
189
 
93
- `PropertyShape.path` is now typed as `PathExpr` (was opaque). Complex paths flow through the full IR pipeline and emit correct SPARQL property path syntax in generated queries.
190
+ ```typescript
191
+ // Before
192
+ const result = await Person.update({ id: "..." }, { name: "Alice" });
94
193
 
95
- ### Strict prefix resolution in query API
194
+ // After
195
+ const result = await Person.update({ name: "Alice" }).for({ id: "..." });
196
+ ```
96
197
 
97
- `QueryBuilder.for()` and `.forAll()` now throw on unregistered prefixes instead of silently passing through. New export:
198
+ `Shape.selectAll(id)` also no longer accepts an id use `Person.selectAll().for(id)`.
98
199
 
99
- - `resolveUriOrThrow(str): string` strict prefix resolution (throws on unknown prefix)
200
+ ### `ShapeType` renamed to `ShapeConstructor`
100
201
 
101
- ### SHACL constraint field fixes
202
+ The type alias for concrete Shape subclass constructors has been renamed. Update any imports or references:
102
203
 
103
- - `hasValue` and `in` config fields now correctly handle literal values (`string`, `number`, `boolean`) — previously all values were wrapped as IRI nodes
104
- - `lessThan` and `lessThanOrEquals` config fields are now wired into `createPropertyShape` and exposed via `getResult()`
105
- - New `PropertyShapeResult` interface provides typed access to `getResult()` output
204
+ ```typescript
205
+ // Before
206
+ import type { ShapeType } from "@_linked/core/shapes/Shape";
207
+
208
+ // After
209
+ import type { ShapeConstructor } from "@_linked/core/shapes/Shape";
210
+ ```
211
+
212
+ ### `QueryString`, `QueryNumber`, `QueryBoolean`, `QueryDate` classes removed
213
+
214
+ These have been consolidated into a single generic `QueryPrimitive<T>` class. If you were using `instanceof` checks against these classes, use `instanceof QueryPrimitive` instead and check the value's type.
215
+
216
+ ### Internal IR types removed
217
+
218
+ The following types and functions have been removed from `SelectQuery`. These were internal pipeline types — if you were using them for custom store integrations, the replacement is `FieldSetEntry[]` (available from `FieldSet`):
219
+
220
+ - Types: `SelectPath`, `QueryPath`, `CustomQueryObject`, `SubQueryPaths`, `ComponentQueryPath`
221
+ - Functions: `fieldSetToSelectPath()`, `entryToQueryPath()`
222
+ - Methods: `QueryBuilder.getQueryPaths()`, `BoundComponent.getComponentQueryPaths()`
223
+ - `RawSelectInput.select` field renamed to `RawSelectInput.entries` (type changed from `SelectPath` to `FieldSetEntry[]`)
224
+
225
+ ### `getPackageShape()` return type is now nullable
226
+
227
+ Returns `ShapeConstructor | undefined` instead of `typeof Shape`. Code that didn't null-check the return value will now get TypeScript errors.
228
+
229
+ ## New Features
230
+
231
+ ### `.for(id)` and `.forAll(ids)` chaining
232
+
233
+ Consistent API for targeting entities across select and update operations:
234
+
235
+ ```typescript
236
+ // Single entity (result is unwrapped, not an array)
237
+ await Person.select((p) => p.name).for({ id: "..." });
238
+ await Person.select((p) => p.name).for("https://...");
239
+
240
+ // Multiple specific entities
241
+ await QueryBuilder.from(Person)
242
+ .select((p) => p.name)
243
+ .forAll([{ id: "..." }, { id: "..." }]);
244
+
245
+ // All instances (default — no .for() needed)
246
+ await Person.select((p) => p.name);
247
+ ```
248
+
249
+ ### Dynamic Query Building with `QueryBuilder` and `FieldSet`
250
+
251
+ Build queries programmatically at runtime — for CMS dashboards, API endpoints, configurable reports. See the [Dynamic Query Building](./README.md#dynamic-query-building) section in the README for full documentation and examples.
252
+
253
+ Key capabilities:
254
+
255
+ - `QueryBuilder.from(Person)` or `QueryBuilder.from('https://schema.org/Person')` — fluent, chainable, immutable query construction
256
+ - `FieldSet.for(Person, ['name', 'knows'])` — composable field selections with `.add()`, `.remove()`, `.pick()`, `FieldSet.merge()`
257
+ - `FieldSet.all(Person, {depth: 2})` — select all decorated properties with optional depth
258
+ - JSON serialization: `query.toJSON()` / `QueryBuilder.fromJSON(json)` and `fieldSet.toJSON()` / `FieldSet.fromJSON(json)`
259
+ - All builders are `PromiseLike` — `await` them directly or call `.build()` to inspect the IR
260
+
261
+ ### Mutation Builders
262
+
263
+ `CreateBuilder`, `UpdateBuilder`, and `DeleteBuilder` provide the programmatic equivalent of `Person.create()`, `Person.update()`, and `Person.delete()`, accepting Shape classes or shape IRI strings. See the [Mutation Builders](./README.md#mutation-builders) section in the README.
264
+
265
+ ### `PropertyPath` exported
266
+
267
+ The `PropertyPath` value object is now a public export — a type-safe representation of a sequence of property traversals through a shape graph.
268
+
269
+ ```typescript
270
+ import { PropertyPath, walkPropertyPath } from "@_linked/core";
271
+ ```
272
+
273
+ ### `ShapeConstructor<S>` type
274
+
275
+ New concrete constructor type for Shape subclasses. Eliminates ~30 `as any` casts across the codebase and provides better type safety at runtime boundaries (builder `.from()` methods, Shape static methods).
276
+
277
+ ## 1.3.0
278
+
279
+ ### Minor Changes
280
+
281
+ - [#20](https://github.com/Semantu/linked/pull/20) [`33e9fb0`](https://github.com/Semantu/linked/commit/33e9fb0205343eca8c84723cbabc3f3342e40be5) Thanks [@flyon](https://github.com/flyon)! - **Breaking:** `QueryParser` has been removed. If you imported `QueryParser` directly, replace with `getQueryDispatch()` from `@_linked/core/queries/queryDispatch`. The Shape DSL (`Shape.select()`, `.create()`, `.update()`, `.delete()`) and `SelectQuery.exec()` are unchanged.
282
+
283
+ **New:** `getQueryDispatch()` and `setQueryDispatch()` are now exported, allowing custom query dispatch implementations (e.g. for testing or alternative storage backends) without subclassing `LinkedStorage`.
284
+
285
+ ## 1.2.1
286
+
287
+ ### Patch Changes
288
+
289
+ - [#17](https://github.com/Semantu/linked/pull/17) [`0654780`](https://github.com/Semantu/linked/commit/06547807a7bae56e992eba73263f83e092b7788b) Thanks [@flyon](https://github.com/flyon)! - Preserve nested array sub-select branches in canonical IR so `build()` emits complete traversals, projection fields, and `resultMap` entries for nested selections.
290
+
291
+ This fixes cases where nested branches present in `toRawInput().select` were dropped during desugar/lowering (for example nested `friends.select([name, hobby])` branches under another sub-select).
292
+
293
+ Also adds regression coverage for desugar preservation, IR lowering completeness, and updated SPARQL golden output for nested query fixtures.
294
+
295
+ ## 1.2.0
296
+
297
+ ### Minor Changes
298
+
299
+ - [#9](https://github.com/Semantu/linked/pull/9) [`381067b`](https://github.com/Semantu/linked/commit/381067b0fbc25f4a0446c5f8cc0eec57ddded466) Thanks [@flyon](https://github.com/flyon)! - Replaced internal query representation with a canonical backend-agnostic IR AST. `SelectQuery`, `CreateQuery`, `UpdateQuery`, and `DeleteQuery` are now typed IR objects with `kind` discriminators, compact shape/property ID references, and expression trees — replacing the previous ad-hoc nested arrays. The public Shape DSL is unchanged; what changed is what `IQuadStore` implementations receive. Store result types (`ResultRow`, `SelectResult`, `CreateResult`, `UpdateResult`) are now exported. All factories expose `build()` as the primary method. See `documentation/intermediate-representation.md` for the full IR reference and migration guidance.
300
+
301
+ - [#14](https://github.com/Semantu/linked/pull/14) [`b65e156`](https://github.com/Semantu/linked/commit/b65e15688ac173478e58e1dbb9f26dbaf5fc5a37) Thanks [@flyon](https://github.com/flyon)! - Add SPARQL conversion layer — compiles Linked IR queries into executable SPARQL and maps results back to typed DSL objects.
302
+
303
+ **New exports from `@_linked/core/sparql`:**
304
+
305
+ - **`SparqlStore`** — abstract base class for SPARQL-backed stores. Extend it and implement two methods to connect any SPARQL 1.1 endpoint:
306
+
307
+ ```ts
308
+ import { SparqlStore } from "@_linked/core/sparql";
309
+
310
+ class MyStore extends SparqlStore {
311
+ protected async executeSparqlSelect(
312
+ sparql: string
313
+ ): Promise<SparqlJsonResults> {
314
+ /* ... */
315
+ }
316
+ protected async executeSparqlUpdate(sparql: string): Promise<void> {
317
+ /* ... */
318
+ }
319
+ }
320
+ ```
321
+
322
+ - **IR → SPARQL string** convenience functions (full pipeline in one call):
323
+
324
+ - `selectToSparql(query, options?)` — SelectQuery → SPARQL string
325
+ - `createToSparql(query, options?)` — CreateQuery → SPARQL string
326
+ - `updateToSparql(query, options?)` — UpdateQuery → SPARQL string
327
+ - `deleteToSparql(query, options?)` — DeleteQuery → SPARQL string
328
+
329
+ - **IR → SPARQL algebra** (for stores that want to inspect/optimize the algebra before serialization):
330
+
331
+ - `selectToAlgebra(query, options?)` — returns `SparqlSelectPlan`
332
+ - `createToAlgebra(query, options?)` — returns `SparqlInsertDataPlan`
333
+ - `updateToAlgebra(query, options?)` — returns `SparqlDeleteInsertPlan`
334
+ - `deleteToAlgebra(query, options?)` — returns `SparqlDeleteInsertPlan`
335
+
336
+ - **Algebra → SPARQL string** serialization:
337
+
338
+ - `selectPlanToSparql(plan, options?)`, `insertDataPlanToSparql(plan, options?)`, `deleteInsertPlanToSparql(plan, options?)`, `deleteWherePlanToSparql(plan, options?)`
339
+ - `serializeAlgebraNode(node)`, `serializeExpression(expr)`, `serializeTerm(term)`
340
+
341
+ - **Result mapping** (SPARQL JSON results → typed DSL objects):
342
+
343
+ - `mapSparqlSelectResult(json, query)` — handles flat/nested/aggregated results with XSD type coercion
344
+ - `mapSparqlCreateResult(uri, query)` — echoes created fields with generated URI
345
+ - `mapSparqlUpdateResult(query)` — echoes updated fields
346
+
347
+ - **All algebra types** re-exported: `SparqlTerm`, `SparqlTriple`, `SparqlAlgebraNode`, `SparqlExpression`, `SparqlSelectPlan`, `SparqlInsertDataPlan`, `SparqlDeleteInsertPlan`, `SparqlDeleteWherePlan`, `SparqlPlan`, `SparqlOptions`, etc.
348
+
349
+ **Bug fixes included:**
350
+
351
+ - Fixed `isNodeReference()` in MutationQuery.ts — nested creates with predefined IDs (e.g., `{id: '...', name: 'Bestie'}`) now correctly insert entity data instead of only creating the link.
352
+
353
+ See [SPARQL Algebra Layer docs](./documentation/sparql-algebra.md) for the full type reference, conversion rules, and store implementation guide.
106
354
 
107
355
  ## 1.1.0
108
356
 
@@ -38,6 +38,7 @@ export type DesugaredPropertyStep = {
38
38
  propertyShapeId: string;
39
39
  pathExpr?: PathExpr;
40
40
  where?: DesugaredWhere;
41
+ maxCount?: number;
41
42
  };
42
43
  export type DesugaredCountStep = {
43
44
  kind: 'count_step';
@@ -16,6 +16,9 @@ const segmentsToSteps = (segments) => segments.map((seg) => {
16
16
  if (seg.path && (0, PropertyPathExpr_js_1.isComplexPathExpr)(seg.path)) {
17
17
  step.pathExpr = seg.path;
18
18
  }
19
+ if (typeof seg.maxCount === 'number') {
20
+ step.maxCount = seg.maxCount;
21
+ }
19
22
  return step;
20
23
  });
21
24
  /**
@@ -71,6 +74,9 @@ const desugarEntry = (entry) => {
71
74
  if (segment.path && (0, PropertyPathExpr_js_1.isComplexPathExpr)(segment.path)) {
72
75
  step.pathExpr = segment.path;
73
76
  }
77
+ if (typeof segment.maxCount === 'number') {
78
+ step.maxCount = segment.maxCount;
79
+ }
74
80
  if (entry.scopedFilter && i === filterIndex) {
75
81
  step.where = (0, exports.toWhere)(entry.scopedFilter);
76
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IRDesugar.js","sourceRoot":"","sources":["../../../src/queries/IRDesugar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IRDesugar.js","sourceRoot":"","sources":["../../../src/queries/IRDesugar.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ class LoweringContext {
36
36
  nextAlias() {
37
37
  return `a${this.counter++}`;
38
38
  }
39
- getOrCreateTraversal(fromAlias, propertyShapeId, pathExpr) {
39
+ getOrCreateTraversal(fromAlias, propertyShapeId, pathExpr, maxCount) {
40
40
  const key = `${fromAlias}:${propertyShapeId}`;
41
41
  const existing = this.traverseMap.get(key);
42
42
  if (existing)
@@ -51,6 +51,9 @@ class LoweringContext {
51
51
  if (pathExpr) {
52
52
  pattern.pathExpr = pathExpr;
53
53
  }
54
+ if (typeof maxCount === 'number') {
55
+ pattern.maxCount = maxCount;
56
+ }
54
57
  this.patterns.push(pattern);
55
58
  this.traverseMap.set(key, toAlias);
56
59
  return toAlias;
@@ -181,7 +184,7 @@ const lowerSelectQuery = (canonical) => {
181
184
  const ctx = new LoweringContext();
182
185
  const pathOptions = {
183
186
  rootAlias: ctx.rootAlias,
184
- resolveTraversal: (fromAlias, propertyShapeId, pathExpr) => ctx.getOrCreateTraversal(fromAlias, propertyShapeId, pathExpr),
187
+ resolveTraversal: (fromAlias, propertyShapeId, pathExpr, maxCount) => ctx.getOrCreateTraversal(fromAlias, propertyShapeId, pathExpr, maxCount),
185
188
  };
186
189
  const root = {
187
190
  kind: 'shape_scan',
@@ -192,7 +195,7 @@ const lowerSelectQuery = (canonical) => {
192
195
  let currentAlias = pathOptions.rootAlias;
193
196
  for (const step of steps) {
194
197
  if (step.kind === 'property_step') {
195
- currentAlias = pathOptions.resolveTraversal(currentAlias, step.propertyShapeId, step.pathExpr);
198
+ currentAlias = pathOptions.resolveTraversal(currentAlias, step.propertyShapeId, step.pathExpr, step.maxCount);
196
199
  }
197
200
  }
198
201
  return currentAlias;
@@ -1 +1 @@
1
- {"version":3,"file":"IRLower.js","sourceRoot":"","sources":["../../../src/queries/IRLower.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IRLower.js","sourceRoot":"","sources":["../../../src/queries/IRLower.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import type { PathExpr } from '../paths/PropertyPathExpr.js';
10
10
  export type InlineFilterCallback = (traverseAlias: string, where: DesugaredWhere) => void;
11
11
  export type ProjectionPathLoweringOptions = {
12
12
  rootAlias: string;
13
- resolveTraversal: (fromAlias: string, propertyShapeId: string, pathExpr?: PathExpr) => string;
13
+ resolveTraversal: (fromAlias: string, propertyShapeId: string, pathExpr?: PathExpr, maxCount?: number) => string;
14
14
  };
15
15
  export type CanonicalProjectionResult = {
16
16
  projection: IRProjectionItem[];
@@ -36,7 +36,7 @@ const lowerSelectionPathExpression = (path, options, onInlineFilter) => {
36
36
  if (step.kind === 'property_step') {
37
37
  if (step.where && onInlineFilter) {
38
38
  // Force traversal creation for step with inline where
39
- currentAlias = options.resolveTraversal(currentAlias, step.propertyShapeId, step.pathExpr);
39
+ currentAlias = options.resolveTraversal(currentAlias, step.propertyShapeId, step.pathExpr, step.maxCount);
40
40
  onInlineFilter(currentAlias, step.where);
41
41
  if (isLast) {
42
42
  return { kind: 'alias_expr', alias: currentAlias };
@@ -52,9 +52,12 @@ const lowerSelectionPathExpression = (path, options, onInlineFilter) => {
52
52
  if (step.pathExpr) {
53
53
  expr.pathExpr = step.pathExpr;
54
54
  }
55
+ if (typeof step.maxCount === 'number') {
56
+ expr.maxCount = step.maxCount;
57
+ }
55
58
  return expr;
56
59
  }
57
- currentAlias = options.resolveTraversal(currentAlias, step.propertyShapeId, step.pathExpr);
60
+ currentAlias = options.resolveTraversal(currentAlias, step.propertyShapeId, step.pathExpr, step.maxCount);
58
61
  continue;
59
62
  }
60
63
  if (step.kind === 'count_step') {
@@ -1 +1 @@
1
- {"version":3,"file":"IRProjection.js","sourceRoot":"","sources":["../../../src/queries/IRProjection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IRProjection.js","sourceRoot":"","sources":["../../../src/queries/IRProjection.ts"],"names":[],"mappings":";;;AACA,uDAA+C;AA+B/C,wEAAwE;AACjE,MAAM,qBAAqB,GAAG,CAAC,IAA4B,EAAU,EAAE;IAC5E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe;QAAE,OAAO,QAAQ,CAAC,eAAe,CAAC;IACvE,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC;IACrE,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAChE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAPW,QAAA,qBAAqB,yBAOhC;AAEF;;;;;;;;GAQG;AACI,MAAM,4BAA4B,GAAG,CAC1C,IAA4B,EAC5B,OAAsC,EACtC,cAAqC,EACvB,EAAE;IAChB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAC,CAAC;IACxD,CAAC;IAED,IAAI,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC;gBACjC,sDAAsD;gBACtD,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1G,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;gBACnD,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,GAAiB;oBACzB,IAAI,EAAE,eAAe;oBACrB,WAAW,EAAE,YAAY;oBACzB,QAAQ,EAAE,IAAI,CAAC,eAAe;iBAC/B,CAAC;gBACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACjB,IAAuE,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACpG,CAAC;gBACD,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACrC,IAAuE,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACpG,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1G,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,OAAO;gBACL,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;oBACrC,IAAI,EAAE,eAAe;oBACrB,WAAW,EAAE,YAAY;oBACzB,QAAQ,EAAE,YAAY,CAAC,eAAe;iBACvC,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC,CAAC;AACnD,CAAC,CAAC;AA3DW,QAAA,4BAA4B,gCA2DvC;AAEF;;;GAGG;AACI,MAAM,wBAAwB,GAAG,CACtC,UAAiC,EACjC,OAAsC,EACtC,KAAK,GAAG,IAAI,8BAAY,CAAC,YAAY,CAAC,EACX,EAAE;IAC7B,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5D,MAAM,SAAS,GAAG,GAAG,IAAI,IAAA,6BAAqB,EAAC,IAAI,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC/C,UAAU,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,IAAA,oCAA4B,EAAC,IAAI,EAAE,OAAO,CAAC;SACxD,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,SAAS,EAAE,OAAO;KACnB,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,wBAAwB,4BA2BnC"}
@@ -43,6 +43,7 @@ export type IRTraversePattern = {
43
43
  property: string;
44
44
  pathExpr?: PathExpr;
45
45
  filter?: IRExpression;
46
+ maxCount?: number;
46
47
  };
47
48
  export type IRJoinPattern = {
48
49
  kind: 'join';
@@ -83,6 +84,7 @@ export type IRPropertyExpression = {
83
84
  sourceAlias: IRAlias;
84
85
  property: string;
85
86
  pathExpr?: import('../paths/PropertyPathExpr.js').PathExpr;
87
+ maxCount?: number;
86
88
  };
87
89
  export type IRContextPropertyExpression = {
88
90
  kind: 'context_property_expr';
@@ -186,7 +188,7 @@ export type ResultRow = {
186
188
  /**
187
189
  * Possible field values in a select or create result row.
188
190
  */
189
- export type ResultFieldValue = string | number | boolean | Date | null | undefined | ResultRow | ResultRow[];
191
+ export type ResultFieldValue = string | number | boolean | Date | null | undefined | ResultRow | ResultRow[] | string[] | number[] | boolean[] | Date[];
190
192
  /**
191
193
  * What `selectQuery` should return.
192
194
  *
@@ -10,7 +10,7 @@ export declare class MutationQueryFactory extends QueryFactory {
10
10
  protected convertSetRemoveValue(obj: UpdatePartial | UpdatePartial[], shape: PropertyShape): NodeReferenceValue[];
11
11
  protected convertSetAddValue(obj: UpdatePartial | UpdatePartial[], shape: PropertyShape): UpdatePartial[];
12
12
  protected convertSingleRemoveValue(value: any, shape: PropertyShape): NodeReferenceValue;
13
- protected convertNodeDescription(obj: Record<string, unknown>, shape: NodeShape): NodeDescriptionValue;
13
+ protected convertNodeDescription(inputObj: Record<string, unknown>, shape: NodeShape): NodeDescriptionValue;
14
14
  protected createNodePropertyValue(value: any, propShape: PropertyShape): UpdateNodePropertyValue;
15
15
  protected convertUpdateValue(value: any, propShape?: PropertyShape, allowArrays?: boolean): PropUpdateValue;
16
16
  protected isNodeReference(obj: any): obj is NodeReferenceValue;