@_linked/core 2.9.0 → 2.10.0-next.20260630061713

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 (153) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/README.md +102 -59
  3. package/lib/cjs/expressions/ExpressionNode.d.ts +2 -1
  4. package/lib/cjs/expressions/ExpressionNode.js +4 -0
  5. package/lib/cjs/expressions/ExpressionNode.js.map +1 -1
  6. package/lib/cjs/index.d.ts +12 -1
  7. package/lib/cjs/index.js +26 -1
  8. package/lib/cjs/index.js.map +1 -1
  9. package/lib/cjs/interfaces/IDataset.d.ts +5 -3
  10. package/lib/cjs/package.json +7 -1
  11. package/lib/cjs/queries/ContextRef.d.ts +21 -0
  12. package/lib/cjs/queries/ContextRef.js +58 -0
  13. package/lib/cjs/queries/ContextRef.js.map +1 -0
  14. package/lib/cjs/queries/CreateBuilder.d.ts +20 -4
  15. package/lib/cjs/queries/CreateBuilder.js +43 -11
  16. package/lib/cjs/queries/CreateBuilder.js.map +1 -1
  17. package/lib/cjs/queries/CreateQuery.d.ts +16 -13
  18. package/lib/cjs/queries/CreateQuery.js +0 -17
  19. package/lib/cjs/queries/CreateQuery.js.map +1 -1
  20. package/lib/cjs/queries/DeleteBuilder.d.ts +19 -4
  21. package/lib/cjs/queries/DeleteBuilder.js +82 -29
  22. package/lib/cjs/queries/DeleteBuilder.js.map +1 -1
  23. package/lib/cjs/queries/DeleteQuery.d.ts +16 -13
  24. package/lib/cjs/queries/DeleteQuery.js +0 -17
  25. package/lib/cjs/queries/DeleteQuery.js.map +1 -1
  26. package/lib/cjs/queries/IRLower.js +48 -3
  27. package/lib/cjs/queries/IRLower.js.map +1 -1
  28. package/lib/cjs/queries/IntermediateRepresentation.d.ts +12 -2
  29. package/lib/cjs/queries/MutationQuery.d.ts +9 -0
  30. package/lib/cjs/queries/MutationQuery.js +27 -0
  31. package/lib/cjs/queries/MutationQuery.js.map +1 -1
  32. package/lib/cjs/queries/MutationSerialization.d.ts +103 -0
  33. package/lib/cjs/queries/MutationSerialization.js +161 -0
  34. package/lib/cjs/queries/MutationSerialization.js.map +1 -0
  35. package/lib/cjs/queries/QueryBuilder.d.ts +44 -33
  36. package/lib/cjs/queries/QueryBuilder.js +55 -43
  37. package/lib/cjs/queries/QueryBuilder.js.map +1 -1
  38. package/lib/cjs/queries/QueryBuilderSerialization.js +16 -5
  39. package/lib/cjs/queries/QueryBuilderSerialization.js.map +1 -1
  40. package/lib/cjs/queries/QueryContext.d.ts +36 -0
  41. package/lib/cjs/queries/QueryContext.js +96 -12
  42. package/lib/cjs/queries/QueryContext.js.map +1 -1
  43. package/lib/cjs/queries/SelectQuery.d.ts +16 -7
  44. package/lib/cjs/queries/SelectQuery.js +22 -13
  45. package/lib/cjs/queries/SelectQuery.js.map +1 -1
  46. package/lib/cjs/queries/UpdateBuilder.d.ts +23 -5
  47. package/lib/cjs/queries/UpdateBuilder.js +102 -43
  48. package/lib/cjs/queries/UpdateBuilder.js.map +1 -1
  49. package/lib/cjs/queries/UpdateQuery.d.ts +14 -12
  50. package/lib/cjs/queries/UpdateQuery.js +0 -20
  51. package/lib/cjs/queries/UpdateQuery.js.map +1 -1
  52. package/lib/cjs/queries/fromJSON.d.ts +16 -0
  53. package/lib/cjs/queries/fromJSON.js +41 -0
  54. package/lib/cjs/queries/fromJSON.js.map +1 -0
  55. package/lib/cjs/queries/lower.d.ts +28 -0
  56. package/lib/cjs/queries/lower.js +115 -0
  57. package/lib/cjs/queries/lower.js.map +1 -0
  58. package/lib/cjs/queries/lowerMutationJSON.d.ts +12 -0
  59. package/lib/cjs/queries/lowerMutationJSON.js +135 -0
  60. package/lib/cjs/queries/lowerMutationJSON.js.map +1 -0
  61. package/lib/cjs/queries/mutationLowerSpec.d.ts +32 -0
  62. package/lib/cjs/queries/mutationLowerSpec.js +8 -0
  63. package/lib/cjs/queries/mutationLowerSpec.js.map +1 -0
  64. package/lib/cjs/queries/wireVersion.d.ts +7 -0
  65. package/lib/cjs/queries/wireVersion.js +25 -0
  66. package/lib/cjs/queries/wireVersion.js.map +1 -0
  67. package/lib/cjs/shapes/Shape.d.ts +4 -3
  68. package/lib/cjs/shapes/Shape.js.map +1 -1
  69. package/lib/cjs/sparql/SparqlDataset.js +22 -17
  70. package/lib/cjs/sparql/SparqlDataset.js.map +1 -1
  71. package/lib/cjs/sparql/irToAlgebra.js +20 -5
  72. package/lib/cjs/sparql/irToAlgebra.js.map +1 -1
  73. package/lib/cjs/test-helpers/query-capture-store.js +8 -4
  74. package/lib/cjs/test-helpers/query-capture-store.js.map +1 -1
  75. package/lib/cjs/utils/LinkedStorage.d.ts +1 -1
  76. package/lib/cjs/utils/LinkedStorage.js +20 -7
  77. package/lib/cjs/utils/LinkedStorage.js.map +1 -1
  78. package/lib/esm/expressions/ExpressionNode.d.ts +2 -1
  79. package/lib/esm/expressions/ExpressionNode.js +4 -0
  80. package/lib/esm/expressions/ExpressionNode.js.map +1 -1
  81. package/lib/esm/index.d.ts +12 -1
  82. package/lib/esm/index.js +10 -1
  83. package/lib/esm/index.js.map +1 -1
  84. package/lib/esm/interfaces/IDataset.d.ts +5 -3
  85. package/lib/esm/package.json +7 -1
  86. package/lib/esm/queries/ContextRef.d.ts +21 -0
  87. package/lib/esm/queries/ContextRef.js +52 -0
  88. package/lib/esm/queries/ContextRef.js.map +1 -0
  89. package/lib/esm/queries/CreateBuilder.d.ts +20 -4
  90. package/lib/esm/queries/CreateBuilder.js +43 -11
  91. package/lib/esm/queries/CreateBuilder.js.map +1 -1
  92. package/lib/esm/queries/CreateQuery.d.ts +16 -13
  93. package/lib/esm/queries/CreateQuery.js +1 -15
  94. package/lib/esm/queries/CreateQuery.js.map +1 -1
  95. package/lib/esm/queries/DeleteBuilder.d.ts +19 -4
  96. package/lib/esm/queries/DeleteBuilder.js +82 -29
  97. package/lib/esm/queries/DeleteBuilder.js.map +1 -1
  98. package/lib/esm/queries/DeleteQuery.d.ts +16 -13
  99. package/lib/esm/queries/DeleteQuery.js +1 -15
  100. package/lib/esm/queries/DeleteQuery.js.map +1 -1
  101. package/lib/esm/queries/IRLower.js +48 -3
  102. package/lib/esm/queries/IRLower.js.map +1 -1
  103. package/lib/esm/queries/IntermediateRepresentation.d.ts +12 -2
  104. package/lib/esm/queries/MutationQuery.d.ts +9 -0
  105. package/lib/esm/queries/MutationQuery.js +27 -0
  106. package/lib/esm/queries/MutationQuery.js.map +1 -1
  107. package/lib/esm/queries/MutationSerialization.d.ts +103 -0
  108. package/lib/esm/queries/MutationSerialization.js +155 -0
  109. package/lib/esm/queries/MutationSerialization.js.map +1 -0
  110. package/lib/esm/queries/QueryBuilder.d.ts +44 -33
  111. package/lib/esm/queries/QueryBuilder.js +55 -42
  112. package/lib/esm/queries/QueryBuilder.js.map +1 -1
  113. package/lib/esm/queries/QueryBuilderSerialization.js +16 -5
  114. package/lib/esm/queries/QueryBuilderSerialization.js.map +1 -1
  115. package/lib/esm/queries/QueryContext.d.ts +36 -0
  116. package/lib/esm/queries/QueryContext.js +92 -11
  117. package/lib/esm/queries/QueryContext.js.map +1 -1
  118. package/lib/esm/queries/SelectQuery.d.ts +16 -7
  119. package/lib/esm/queries/SelectQuery.js +22 -13
  120. package/lib/esm/queries/SelectQuery.js.map +1 -1
  121. package/lib/esm/queries/UpdateBuilder.d.ts +23 -5
  122. package/lib/esm/queries/UpdateBuilder.js +102 -43
  123. package/lib/esm/queries/UpdateBuilder.js.map +1 -1
  124. package/lib/esm/queries/UpdateQuery.d.ts +14 -12
  125. package/lib/esm/queries/UpdateQuery.js +1 -18
  126. package/lib/esm/queries/UpdateQuery.js.map +1 -1
  127. package/lib/esm/queries/fromJSON.d.ts +16 -0
  128. package/lib/esm/queries/fromJSON.js +38 -0
  129. package/lib/esm/queries/fromJSON.js.map +1 -0
  130. package/lib/esm/queries/lower.d.ts +28 -0
  131. package/lib/esm/queries/lower.js +112 -0
  132. package/lib/esm/queries/lower.js.map +1 -0
  133. package/lib/esm/queries/lowerMutationJSON.d.ts +12 -0
  134. package/lib/esm/queries/lowerMutationJSON.js +131 -0
  135. package/lib/esm/queries/lowerMutationJSON.js.map +1 -0
  136. package/lib/esm/queries/mutationLowerSpec.d.ts +32 -0
  137. package/lib/esm/queries/mutationLowerSpec.js +7 -0
  138. package/lib/esm/queries/mutationLowerSpec.js.map +1 -0
  139. package/lib/esm/queries/wireVersion.d.ts +7 -0
  140. package/lib/esm/queries/wireVersion.js +21 -0
  141. package/lib/esm/queries/wireVersion.js.map +1 -0
  142. package/lib/esm/shapes/Shape.d.ts +4 -3
  143. package/lib/esm/shapes/Shape.js.map +1 -1
  144. package/lib/esm/sparql/SparqlDataset.js +22 -17
  145. package/lib/esm/sparql/SparqlDataset.js.map +1 -1
  146. package/lib/esm/sparql/irToAlgebra.js +20 -5
  147. package/lib/esm/sparql/irToAlgebra.js.map +1 -1
  148. package/lib/esm/test-helpers/query-capture-store.js +8 -4
  149. package/lib/esm/test-helpers/query-capture-store.js.map +1 -1
  150. package/lib/esm/utils/LinkedStorage.d.ts +1 -1
  151. package/lib/esm/utils/LinkedStorage.js +20 -7
  152. package/lib/esm/utils/LinkedStorage.js.map +1 -1
  153. package/package.json +7 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,62 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.10.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#114](https://github.com/linked-cm/core/pull/114) [`30dd8d4`](https://github.com/linked-cm/core/commit/30dd8d47a990836dce2c078d07e50258b7a1c659) Thanks [@flyon](https://github.com/flyon)! - Flip the query contract: datasets receive the live query, DSL-JSON is the wire format, and the IR becomes an opt-in store detail behind a free `lower()`.
8
+
9
+ **Breaking changes** (the package is pre-adoption, so this ships as a minor rather than a major — there are no published consumers to protect yet)
10
+
11
+ - **`build()` is removed** from all builders. Use the free `lower(query)` function to produce IR:
12
+ ```ts
13
+ import { lower } from "@_linked/core";
14
+ const ir = lower(query); // select or any mutation
15
+ ```
16
+ - **`IDataset` methods now receive the live (closed) query object, not IR.** A dataset opts into the IR by calling `lower(query)`, or forwards the query as DSL-JSON via `query.toJSON()`:
17
+ ```ts
18
+ class MyStore implements IDataset {
19
+ async selectQuery(query: SelectQuery) {
20
+ return run(lower(query));
21
+ }
22
+ }
23
+ ```
24
+ - **`SelectQuery`/`CreateQuery`/`UpdateQuery`/`DeleteQuery` are now closed read-only interfaces** (the live query), not aliases of the IR. The IR types are `IRSelectQuery` / `IRCreateMutation` / `IRUpdateMutation` / `IRDeleteMutation`.
25
+ - **`QueryBuilder` is renamed to `SelectBuilder`** (a deprecated `QueryBuilder` alias is still exported).
26
+ - **`RemoteDataset` (and `RemoteClient`/`RemoteProtocol`) are removed.** Forwarding is now just an `IDataset` that ships `query.toJSON()` over your transport and rehydrates with `fromJSON(json)` on the other side.
27
+
28
+ **New: DSL-JSON, the standardized wire format**
29
+
30
+ Every query — select and every mutation — serializes losslessly to a compact, versioned JSON structure and rehydrates anywhere:
31
+
32
+ ```ts
33
+ import { fromJSON } from "@_linked/core";
34
+ const json = query.toJSON(); // builder → DSL-JSON (carries a wire version `v` and the shape)
35
+ await fromJSON(json).exec(); // DSL-JSON → live query → run (kind-detected by `op`)
36
+ ```
37
+
38
+ See the new [DSL-JSON specification](./documentation/dsl-json.md) for the envelope shapes, value encodings, and versioning.
39
+
40
+ **New: `{$ctx}` query-context references**
41
+
42
+ A query can reference the current context (e.g. the signed-in user) without resolving it yet — it travels on the wire as `{$ctx: "user"}` and is resolved at lowering time, whether the context is set or unset when the query is built. Works for the select subject, update target, mutation field values, delete ids, and where-clause args:
43
+
44
+ ```ts
45
+ Person.select((p) => p.name).for(getQueryContext("user")); // subject: {$ctx:"user"}
46
+ Person.delete(getQueryContext("user")); // delete-by-context (no .for() needed)
47
+ Person.update({ hobby: "x" }).for(getQueryContext("user"));
48
+ ```
49
+
50
+ Mutations throw `UnresolvedContextError` if the context isn't set at lowering; selects resolve to `null`. `subscribeQueryContext(fn)` is exported as the reactivity primitive for re-running queries when a context lands.
51
+
52
+ **New / changed exports**
53
+
54
+ `lower`, `fromJSON`, `lowerMutationJSON`, `encodeNodeData`, `decodeNodeData`, `subscribeQueryContext`, `UnresolvedContextError`, `encodeContextRef`, `isContextRefJSON`, `resolveContextId`, `CONTEXT_REF_KEY`, and the types `ContextRefJSON` / `DeleteId` / `IRSelectQuery` / `IR*Mutation`.
55
+
56
+ **Tree-shaking**
57
+
58
+ The IR pipeline (and the SPARQL layer) is reachable only through `lower()`. A client that builds, serializes, and forwards queries but never lowers them tree-shakes the entire IR + SPARQL pipeline out of its bundle. `package.json` now declares `sideEffects` accordingly.
59
+
3
60
  ## 2.9.0
4
61
 
5
62
  ### Minor Changes
package/README.md CHANGED
@@ -2,16 +2,17 @@
2
2
 
3
3
  A type-safe graph query builder and OGM for linked data — like Drizzle or Prisma, but for RDF and SPARQL.
4
4
 
5
- Linked gives you a schema-parameterized query language and SHACL-driven Shape classes for graph data. It compiles queries into a normalized [Intermediate Representation (IR)](./documentation/intermediate-representation.md) that can be executed by any store SPARQL endpoints, in-memory RDF stores, or custom backends.
5
+ Linked gives you a schema-parameterized query language and SHACL-driven Shape classes for graph data. Every query has one canonical, language-neutral form **[DSL-JSON](./documentation/dsl-json.md)** that serializes losslessly, crosses any boundary, and rehydrates anywhere. Datasets execute these queries however they like; the built-in SPARQL dataset lowers them to a normalized [IR](./documentation/intermediate-representation.md) and on to SPARQL.
6
6
 
7
7
  ## Linked core offers
8
8
 
9
9
  - **Schema-Parameterized Query DSL**: TypeScript-embedded queries driven by your Shape definitions.
10
10
  - **Fully Inferred Result Types**: The TypeScript return type of every query is automatically inferred from the selected paths — no manual type annotations needed. Select `p.name` and get `{id: string; name: string}[]`. Select `p.friends.name` and get nested result types. This works for all operations: select, create, update, and delete.
11
- - **Dynamic Query Building**: Build queries programmatically with `QueryBuilder`, compose field selections with `FieldSet`, and serialize/deserialize queries as JSON for CMS dashboards, dynamic forms, and API-driven query construction.
11
+ - **DSL-JSON, the standard wire format**: Every query select, create, update, delete serializes to a compact, lossless JSON structure with `query.toJSON()` and rehydrates with `fromJSON(json)`. This is the canonical interchange format for Linked queries: send it over HTTP, cache it, queue it, or implement it in another language. See **[DSL-JSON](./documentation/dsl-json.md)**.
12
+ - **Dynamic Query Building**: Build queries programmatically with `SelectBuilder` (and `Create`/`Update`/`DeleteBuilder`), compose field selections with `FieldSet` — for CMS dashboards, dynamic forms, and API-driven query construction.
12
13
  - **Shape Classes (SHACL)**: TypeScript classes that generate SHACL shape metadata.
13
14
  - **Full CRUD Operations**: Query, create, update, and delete data using the same Shape-based API — including expression-based updates, conditional mutations, and bulk operations.
14
- - **Storage Routing**: `LinkedStorage` routes query objects to your configured store(s) that implement `IQuadStore`.
15
+ - **Dataset Routing**: `LinkedStorage` routes query objects (by their target shape) to your configured dataset(s) that implement `IDataset`.
15
16
  - **Automatic Data Validation**: SHACL shapes can be synced to your store for schema-level validation, and enforced at runtime by stores that support it.
16
17
 
17
18
  ## Installation
@@ -33,12 +34,13 @@ npm run setup
33
34
 
34
35
  ## Related packages
35
36
 
36
- - `@_linked/rdf-mem-store`: in-memory RDF store that implements `IQuadStore`.
37
+ - `@_linked/rdf-mem-store`: in-memory RDF store that implements `IDataset`.
37
38
  - `@_linked/react`: React bindings for Linked queries and shapes.
38
39
 
39
40
  ## Documentation
40
41
 
41
- - [Intermediate Representation (IR)](./documentation/intermediate-representation.md)
42
+ - **[DSL-JSON the Linked query wire format](./documentation/dsl-json.md)** — the canonical, standardized query structure.
43
+ - [Intermediate Representation (IR)](./documentation/intermediate-representation.md) — the internal algebra the SPARQL dataset lowers to.
42
44
  - [SPARQL Algebra Layer](./documentation/sparql-algebra.md)
43
45
 
44
46
  ## How Linked works — from shapes to query results
@@ -105,7 +107,7 @@ The DSL compiles to a backend-agnostic AST — the [Intermediate Representation]
105
107
  }
106
108
  ```
107
109
 
108
- The IR uses full SHACL-derived URIs for shapes and properties. Any store that implements `IQuadStore` receives these IR objects and translates them into its native query language.
110
+ The IR uses full SHACL-derived URIs for shapes and properties. A dataset (`IDataset`) that wants the IR obtains it by calling `lower(query)` and translates it into its native query language. (Datasets that forward or execute directly never touch the IR — see [Datasets, target languages, and the IR](#datasets-target-languages-and-the-ir).)
109
111
 
110
112
  ### 4. IR → SPARQL Algebra
111
113
 
@@ -267,7 +269,7 @@ const updated = await Person.update({name: 'Alicia'}).for({id: 'https://my.app/n
267
269
 
268
270
  ## Storage configuration
269
271
 
270
- `LinkedStorage` is the routing helper (not an interface). It forwards query objects to a store that implements `IQuadStore`.
272
+ `LinkedStorage` is the routing helper (not an interface). It routes query objects — by their target shape — to a dataset that implements `IDataset`.
271
273
 
272
274
  ```typescript
273
275
  import {LinkedStorage} from '@_linked/core';
@@ -349,9 +351,10 @@ The query DSL is schema-parameterized: you define your own SHACL shapes, and Lin
349
351
  - Preloading (`preloadFor`) for component-like queries
350
352
  - Create / Update / Delete mutations (including bulk and conditional)
351
353
  - Expression-based updates (`p => ({age: p.age.plus(1)})`)
352
- - Dynamic query building with `QueryBuilder`
354
+ - Dynamic query building with `SelectBuilder` (alias `QueryBuilder`)
353
355
  - Composable field sets with `FieldSet`
354
356
  - Mutation builders (`CreateBuilder`, `UpdateBuilder`, `DeleteBuilder`)
357
+ - DSL-JSON serialization (`toJSON` / `fromJSON`) — the standard wire format
355
358
  - Query and FieldSet JSON serialization / deserialization
356
359
 
357
360
  ### Query examples
@@ -746,12 +749,14 @@ Override behavior:
746
749
 
747
750
  The DSL (`Person.select(...)`) is ideal when you know shapes at compile time. For apps that need to build queries at runtime — CMS dashboards, configurable reports, API endpoints that accept field selections — use `QueryBuilder` and `FieldSet`.
748
751
 
749
- ### QueryBuilder
752
+ ### SelectBuilder
750
753
 
751
- `QueryBuilder` provides a fluent, chainable API for constructing queries programmatically. It accepts a Shape class or a shape IRI string.
754
+ `SelectBuilder` provides a fluent, chainable API for constructing select queries programmatically. It
755
+ accepts a Shape class or a shape IRI string. (`QueryBuilder` is a deprecated alias for `SelectBuilder`
756
+ and is used in the examples below; the mutation builders are `CreateBuilder`/`UpdateBuilder`/`DeleteBuilder`.)
752
757
 
753
758
  ```typescript
754
- import {QueryBuilder} from '@_linked/core';
759
+ import {QueryBuilder} from '@_linked/core'; // alias of SelectBuilder
755
760
 
756
761
  // From a Shape class
757
762
  const query = QueryBuilder.from(Person)
@@ -764,11 +769,12 @@ const query = QueryBuilder.from('https://schema.org/Person')
764
769
  .select(['name', 'knows'])
765
770
  .where(p => p.name.equals('Semmy'));
766
771
 
767
- // QueryBuilder is PromiseLike — await it directly
772
+ // SelectBuilder is PromiseLike — await it directly
768
773
  const results = await query;
769
774
 
770
- // Or inspect the compiled IR without executing
771
- const ir = query.build();
775
+ // Serialize to DSL-JSON, or lower to the IR without executing
776
+ const json = query.toJSON();
777
+ const ir = lower(query); // `lower` is a free import from '@_linked/core'
772
778
  ```
773
779
 
774
780
  **Target specific entities:**
@@ -905,75 +911,112 @@ await DeleteBuilder.from(Person).all();
905
911
  // Conditional update — equivalent to Person.update({...}).where(fn)
906
912
  await UpdateBuilder.from(Person).set({verified: true}).forAll();
907
913
 
908
- // All builders are PromiseLike — await them or call .build() for the IR
909
- const ir = CreateBuilder.from(Person).set({name: 'Alice'}).build();
914
+ // All builders are PromiseLike — await them to run, toJSON() for the wire form,
915
+ // or lower() (a free function) for the IR
916
+ import {lower} from '@_linked/core';
917
+ const ir = lower(CreateBuilder.from(Person).set({name: 'Alice'}));
910
918
  ```
911
919
 
912
- ### JSON Serialization
920
+ ### DSL-JSON — the standard query format
913
921
 
914
- Queries and FieldSets can be serialized to JSON and reconstructed useful for saving query configurations, sending them over the wire, or building query editor UIs.
922
+ Every Linked query select **and** every mutationhas one canonical, language-neutral form:
923
+ **DSL-JSON**. `query.toJSON()` serializes any query to a compact, lossless JSON object;
924
+ `fromJSON(json)` rehydrates it back into a live query you can run, inspect, or re-serialize. This is
925
+ the format to send over HTTP, cache, queue, persist in a query-editor UI, or implement on a non-JS
926
+ backend. See the full **[DSL-JSON specification](./documentation/dsl-json.md)**.
915
927
 
916
928
  ```typescript
917
- // Serialize a QueryBuilder
918
- const query = QueryBuilder.from(Person)
919
- .select(p => [p.name, p.knows])
920
- .where(p => p.name.equals('Semmy'));
929
+ import {fromJSON} from '@_linked/core';
921
930
 
922
- const json = query.toJSON();
923
- // json is a plain object — store it, send it, etc.
924
-
925
- // Reconstruct from JSON
926
- const restored = QueryBuilder.fromJSON(json);
927
- const results = await restored;
931
+ // Any query → JSON (outbound)
932
+ const json = Person.select(p => [p.name, p.knows])
933
+ .where(p => p.name.equals('Semmy'))
934
+ .toJSON();
928
935
 
929
- // FieldSet serialization works the same way
930
- const fs = FieldSet.for(Person, ['name', 'knows']);
931
- const fsJson = fs.toJSON();
932
- const restoredFs = FieldSet.fromJSON(fsJson);
936
+ // JSON live query → run it (inbound). `fromJSON` detects the kind (select/create/update/delete).
937
+ const results = await fromJSON(json).exec();
933
938
  ```
934
939
 
935
- Example JSON output for `QueryBuilder.from(Person).select(p => p.name).toJSON()`:
940
+ Every envelope carries a wire version (`v`) and the target shape. A select:
941
+
936
942
  ```json
937
943
  {
944
+ "v": "1.0",
938
945
  "shape": "https://schema.org/Person",
939
- "fields": [{"path": "name"}]
946
+ "fields": [{ "path": "name" }, { "path": "hobby" }],
947
+ "limit": 10
940
948
  }
941
949
  ```
942
950
 
943
- ## TODO
944
-
945
- - Allow `preloadFor` to accept another query (not just a component).
946
- - Make and expose functions for auto syncing shapes to the graph.
947
-
948
- ## Intermediate Representation (IR)
951
+ A create:
949
952
 
950
- Every Linked query compiles to a plain, JSON-serializable JavaScript object — the **Intermediate Representation**. This IR is the contract between the DSL and any storage backend. A store receives these objects and translates them into its native query language (SPARQL, SQL, etc.).
953
+ ```json
954
+ {
955
+ "v": "1.0",
956
+ "op": "create",
957
+ "shape": "https://schema.org/Person",
958
+ "data": {
959
+ "shape": "https://schema.org/Person",
960
+ "fields": [
961
+ { "prop": "name", "value": { "kind": "lit", "value": "Alice" } },
962
+ { "prop": "hobby", "value": { "kind": "lit", "value": "Chess" } }
963
+ ]
964
+ }
965
+ }
966
+ ```
951
967
 
952
- For example, this DSL call:
968
+ An update targeting one node, and a delete by id:
953
969
 
954
- ```typescript
955
- const names = await Person.select((p) => p.name);
970
+ ```json
971
+ { "v": "1.0", "op": "update", "shape": "https://schema.org/Person", "mode": "for",
972
+ "targetId": "https://my.app/alice",
973
+ "data": { "shape": "https://schema.org/Person",
974
+ "fields": [{ "prop": "hobby", "value": { "kind": "lit", "value": "Go" } }] } }
975
+ ```
976
+ ```json
977
+ { "v": "1.0", "op": "delete", "shape": "https://schema.org/Person", "mode": "ids",
978
+ "ids": ["https://my.app/alice"] }
956
979
  ```
957
980
 
958
- produces the following IR object, which is passed to your store's `selectQuery()` method:
981
+ A query can also reference the current **context** (e.g. the signed-in user) without resolving it
982
+ yet — it travels as a `{$ctx}` marker and is resolved wherever the query is finally run:
959
983
 
960
984
  ```json
961
- {
962
- "kind": "select",
963
- "root": {"kind": "shape_scan", "shape": "https://schema.org/Person", "alias": "a0"},
964
- "patterns": [],
965
- "projection": [
966
- {
967
- "alias": "a1",
968
- "expression": {"kind": "property_expr", "sourceAlias": "a0", "property": "https://schema.org/name"}
969
- }
970
- ],
971
- "resultMap": [{"key": "name", "alias": "a1"}],
972
- "singleResult": false
973
- }
985
+ { "v": "1.0", "shape": "https://schema.org/Person",
986
+ "fields": [{ "path": "name" }], "subject": { "$ctx": "user" }, "singleResult": true }
974
987
  ```
975
988
 
976
- All IR types are available from `@_linked/core/queries/IntermediateRepresentation`. See the full [Intermediate Representation docs](./documentation/intermediate-representation.md) for the complete type reference, examples, and a store implementer guide.
989
+ `FieldSet` serializes the same way (`FieldSet.for(Person, ['name','knows']).toJSON()` /
990
+ `FieldSet.fromJSON(json)`).
991
+
992
+ ## TODO
993
+
994
+ - Allow `preloadFor` to accept another query (not just a component).
995
+ - Make and expose functions for auto syncing shapes to the graph.
996
+
997
+ ## Datasets, target languages, and the IR
998
+
999
+ A **dataset** (`IDataset`) receives the live query and decides what to do with it. `LinkedStorage`
1000
+ routes each query to a dataset by its target shape. A dataset can:
1001
+
1002
+ - **execute it directly** against an in-memory graph,
1003
+ - **forward it** as [DSL-JSON](./documentation/dsl-json.md) (`query.toJSON()`) to another service, or
1004
+ - **lower it to an algebra** for a query engine, via the free `lower(query)` function.
1005
+
1006
+ **SPARQL is built in.** This package ships a `SparqlStore` base class (`@_linked/core/sparql`) — extend
1007
+ it for any SPARQL endpoint. Internally it calls `lower(query)` to obtain a normalized
1008
+ **[Intermediate Representation (IR)](./documentation/intermediate-representation.md)** and compiles that
1009
+ to SPARQL.
1010
+
1011
+ The **IR is an internal lowering target, not the contract** — DSL-JSON is. It is a shape-resolved,
1012
+ normalized algebra, which makes it a convenient thing to compile *from*: a backend for another target
1013
+ language (SQL, a graph API, …) can consume the IR as-is, or just use it as a reference and lower
1014
+ DSL-JSON to its own algebra directly. The IR is reached only through `lower()`, and the query
1015
+ builders/serialization carry no dependency on it — so a client that never lowers (e.g. a frontend that
1016
+ only builds and forwards queries) tree-shakes the entire IR + SPARQL pipeline out of its bundle. The IR
1017
+ types are available from `@_linked/core/queries/IntermediateRepresentation`; see the
1018
+ [IR docs](./documentation/intermediate-representation.md) for the type reference and the dataset
1019
+ implementer guide.
977
1020
 
978
1021
  **Store packages:**
979
1022
 
@@ -1,5 +1,6 @@
1
1
  import type { IRExpression } from '../queries/IntermediateRepresentation.js';
2
- export type ExpressionInput = ExpressionNode | string | number | boolean | Date;
2
+ import { PendingQueryContext } from '../queries/QueryContext.js';
3
+ export type ExpressionInput = ExpressionNode | string | number | boolean | Date | PendingQueryContext;
3
4
  /**
4
5
  * Map from placeholder sourceAlias → PropertyShape ID segments.
5
6
  * Used to track unresolved property references from proxy tracing
@@ -7,6 +7,7 @@ exports.tracedAliasExpression = tracedAliasExpression;
7
7
  exports.resolveExpressionRefs = resolveExpressionRefs;
8
8
  exports.isExistsCondition = isExistsCondition;
9
9
  exports.isExpressionNode = isExpressionNode;
10
+ const QueryContext_js_1 = require("../queries/QueryContext.js");
10
11
  const VALID_REGEX_FLAGS = new Set(['i', 'm', 's']);
11
12
  function validateRegexFlags(flags) {
12
13
  if (!flags)
@@ -28,6 +29,9 @@ function toIRExpression(input) {
28
29
  return { kind: 'literal_expr', value: input };
29
30
  if (input instanceof Date)
30
31
  return { kind: 'literal_expr', value: input.toISOString() };
32
+ // A live query-context reference → carry the name; `lower()` resolves it.
33
+ if (input instanceof QueryContext_js_1.PendingQueryContext)
34
+ return { kind: 'reference_expr', contextName: input.contextName };
31
35
  if (typeof input === 'object' && input !== null && 'id' in input)
32
36
  return { kind: 'reference_expr', value: input.id };
33
37
  throw new Error(`Invalid expression input: ${input}`);
@@ -1 +1 @@
1
- {"version":3,"file":"ExpressionNode.js","sourceRoot":"","sources":["../../../src/expressions/ExpressionNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpressionNode.js","sourceRoot":"","sources":["../../../src/expressions/ExpressionNode.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,14 @@
1
1
  export { syncShapes, syncShape } from './shapes/syncShapes.js';
2
2
  export { rdfList } from './shapes/List.js';
3
3
  export { serializePathToNodeData } from './shapes/serializePathToNodeData.js';
4
- export { QueryBuilder } from './queries/QueryBuilder.js';
4
+ export { SelectBuilder, QueryBuilder } from './queries/QueryBuilder.js';
5
+ export { lower } from './queries/lower.js';
6
+ export type { LowerableQuery } from './queries/lower.js';
7
+ export { fromJSON } from './queries/fromJSON.js';
8
+ export type { QueryJSON } from './queries/fromJSON.js';
9
+ export { getQueryContext, setQueryContext, subscribeQueryContext, PendingQueryContext, UnresolvedContextError, } from './queries/QueryContext.js';
10
+ export { CONTEXT_REF_KEY, encodeContextRef, isContextRefJSON, resolveContextId, } from './queries/ContextRef.js';
11
+ export type { ContextRefJSON } from './queries/ContextRef.js';
5
12
  export { PropertyPath, walkPropertyPath } from './queries/PropertyPath.js';
6
13
  export type { WhereCondition, WhereOperator } from './queries/WhereCondition.js';
7
14
  export { FieldSet } from './queries/FieldSet.js';
@@ -10,9 +17,13 @@ export type { QueryBuilderJSON } from './queries/QueryBuilder.js';
10
17
  export { CreateBuilder } from './queries/CreateBuilder.js';
11
18
  export { UpdateBuilder } from './queries/UpdateBuilder.js';
12
19
  export { DeleteBuilder } from './queries/DeleteBuilder.js';
20
+ export type { DeleteId } from './queries/DeleteBuilder.js';
13
21
  export { ExpressionNode } from './expressions/ExpressionNode.js';
14
22
  export type { ExpressionInput, PropertyRefMap } from './expressions/ExpressionNode.js';
15
23
  export { Expr } from './expressions/Expr.js';
16
24
  export type { ExpressionUpdateProxy, ExpressionUpdateResult, BaseExpressionMethods, NumericExpressionMethods, StringExpressionMethods, DateExpressionMethods, BooleanExpressionMethods, } from './expressions/ExpressionMethods.js';
17
25
  export type { LinkedComponentInterface, QueryComponentLike } from './queries/SelectQuery.js';
26
+ export { encodeNodeData, encodeValue, } from './queries/MutationSerialization.js';
27
+ export { decodeNodeData, lowerMutationJSON, } from './queries/lowerMutationJSON.js';
28
+ export type { MutationJSON, CreateMutationJSON, UpdateMutationJSON, DeleteMutationJSON, MutationValueJSON, MutationFieldJSON, MutationNodeDataJSON, } from './queries/MutationSerialization.js';
18
29
  export declare function initModularApp(): void;
package/lib/cjs/index.js CHANGED
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Expr = exports.ExpressionNode = exports.DeleteBuilder = exports.UpdateBuilder = exports.CreateBuilder = exports.FieldSet = exports.walkPropertyPath = exports.PropertyPath = exports.QueryBuilder = exports.serializePathToNodeData = exports.rdfList = exports.syncShape = exports.syncShapes = void 0;
36
+ exports.lowerMutationJSON = exports.decodeNodeData = exports.encodeValue = exports.encodeNodeData = exports.Expr = exports.ExpressionNode = exports.DeleteBuilder = exports.UpdateBuilder = exports.CreateBuilder = exports.FieldSet = exports.walkPropertyPath = exports.PropertyPath = exports.resolveContextId = exports.isContextRefJSON = exports.encodeContextRef = exports.CONTEXT_REF_KEY = exports.UnresolvedContextError = exports.PendingQueryContext = exports.subscribeQueryContext = exports.setQueryContext = exports.getQueryContext = exports.fromJSON = exports.lower = exports.QueryBuilder = exports.SelectBuilder = exports.serializePathToNodeData = exports.rdfList = exports.syncShape = exports.syncShapes = void 0;
37
37
  exports.initModularApp = initModularApp;
38
38
  /*
39
39
  * This Source Code Form is subject to the terms of the Mozilla Public
@@ -82,6 +82,7 @@ const coreOntology = __importStar(require("./ontologies/linked-core.js"));
82
82
  const owl = __importStar(require("./ontologies/owl.js"));
83
83
  const npm = __importStar(require("./ontologies/npm.js"));
84
84
  const Sparql = __importStar(require("./sparql/index.js"));
85
+ const MutationSerializationModule = __importStar(require("./queries/MutationSerialization.js"));
85
86
  const QueryBuilderModule = __importStar(require("./queries/QueryBuilder.js"));
86
87
  const PropertyPathModule = __importStar(require("./queries/PropertyPath.js"));
87
88
  const WhereConditionModule = __importStar(require("./queries/WhereCondition.js"));
@@ -91,7 +92,23 @@ const UpdateBuilderModule = __importStar(require("./queries/UpdateBuilder.js"));
91
92
  const DeleteBuilderModule = __importStar(require("./queries/DeleteBuilder.js"));
92
93
  // New dynamic query building API (Phase 2)
93
94
  var QueryBuilder_js_1 = require("./queries/QueryBuilder.js");
95
+ Object.defineProperty(exports, "SelectBuilder", { enumerable: true, get: function () { return QueryBuilder_js_1.SelectBuilder; } });
94
96
  Object.defineProperty(exports, "QueryBuilder", { enumerable: true, get: function () { return QueryBuilder_js_1.QueryBuilder; } });
97
+ var lower_js_1 = require("./queries/lower.js");
98
+ Object.defineProperty(exports, "lower", { enumerable: true, get: function () { return lower_js_1.lower; } });
99
+ var fromJSON_js_1 = require("./queries/fromJSON.js");
100
+ Object.defineProperty(exports, "fromJSON", { enumerable: true, get: function () { return fromJSON_js_1.fromJSON; } });
101
+ var QueryContext_js_1 = require("./queries/QueryContext.js");
102
+ Object.defineProperty(exports, "getQueryContext", { enumerable: true, get: function () { return QueryContext_js_1.getQueryContext; } });
103
+ Object.defineProperty(exports, "setQueryContext", { enumerable: true, get: function () { return QueryContext_js_1.setQueryContext; } });
104
+ Object.defineProperty(exports, "subscribeQueryContext", { enumerable: true, get: function () { return QueryContext_js_1.subscribeQueryContext; } });
105
+ Object.defineProperty(exports, "PendingQueryContext", { enumerable: true, get: function () { return QueryContext_js_1.PendingQueryContext; } });
106
+ Object.defineProperty(exports, "UnresolvedContextError", { enumerable: true, get: function () { return QueryContext_js_1.UnresolvedContextError; } });
107
+ var ContextRef_js_1 = require("./queries/ContextRef.js");
108
+ Object.defineProperty(exports, "CONTEXT_REF_KEY", { enumerable: true, get: function () { return ContextRef_js_1.CONTEXT_REF_KEY; } });
109
+ Object.defineProperty(exports, "encodeContextRef", { enumerable: true, get: function () { return ContextRef_js_1.encodeContextRef; } });
110
+ Object.defineProperty(exports, "isContextRefJSON", { enumerable: true, get: function () { return ContextRef_js_1.isContextRefJSON; } });
111
+ Object.defineProperty(exports, "resolveContextId", { enumerable: true, get: function () { return ContextRef_js_1.resolveContextId; } });
95
112
  var PropertyPath_js_1 = require("./queries/PropertyPath.js");
96
113
  Object.defineProperty(exports, "PropertyPath", { enumerable: true, get: function () { return PropertyPath_js_1.PropertyPath; } });
97
114
  Object.defineProperty(exports, "walkPropertyPath", { enumerable: true, get: function () { return PropertyPath_js_1.walkPropertyPath; } });
@@ -110,6 +127,13 @@ var ExpressionNode_js_1 = require("./expressions/ExpressionNode.js");
110
127
  Object.defineProperty(exports, "ExpressionNode", { enumerable: true, get: function () { return ExpressionNode_js_1.ExpressionNode; } });
111
128
  var Expr_js_1 = require("./expressions/Expr.js");
112
129
  Object.defineProperty(exports, "Expr", { enumerable: true, get: function () { return Expr_js_1.Expr; } });
130
+ // Mutation DSL-JSON serialization (create/update/delete to/from JSON)
131
+ var MutationSerialization_js_1 = require("./queries/MutationSerialization.js");
132
+ Object.defineProperty(exports, "encodeNodeData", { enumerable: true, get: function () { return MutationSerialization_js_1.encodeNodeData; } });
133
+ Object.defineProperty(exports, "encodeValue", { enumerable: true, get: function () { return MutationSerialization_js_1.encodeValue; } });
134
+ var lowerMutationJSON_js_1 = require("./queries/lowerMutationJSON.js");
135
+ Object.defineProperty(exports, "decodeNodeData", { enumerable: true, get: function () { return lowerMutationJSON_js_1.decodeNodeData; } });
136
+ Object.defineProperty(exports, "lowerMutationJSON", { enumerable: true, get: function () { return lowerMutationJSON_js_1.lowerMutationJSON; } });
113
137
  function initModularApp() {
114
138
  let publicFiles = {
115
139
  Package,
@@ -147,6 +171,7 @@ function initModularApp() {
147
171
  owl,
148
172
  npm,
149
173
  Sparql,
174
+ MutationSerializationModule,
150
175
  QueryBuilderModule,
151
176
  PropertyPathModule,
152
177
  WhereConditionModule,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,11 @@ import type { SelectResult, CreateResult, UpdateResult } from '../queries/Interm
8
8
  * Linked Queries as input. The implementing class decides how to handle them —
9
9
  * compiling to SPARQL for Fuseki, forwarding as-is to a Host Agent API, etc.
10
10
  *
11
- * Each method receives a canonical IR query object and returns the result.
12
- * The calling layer (LinkedStorage via queryDispatch) threads the precise
13
- * DSL-level TypeScript result type back to the caller.
11
+ * Each method receives the live, closed (read-only) query object the builder
12
+ * viewed through its `*Query` interface and returns the result. A store reads
13
+ * `query.toJSON()` to forward it, or `lower(query)` to get canonical IR. The
14
+ * calling layer (LinkedStorage via queryDispatch) threads the precise DSL-level
15
+ * TypeScript result type back to the caller.
14
16
  */
15
17
  export interface IDataset {
16
18
  /**
@@ -1,3 +1,9 @@
1
1
  {
2
- "type": "commonjs"
2
+ "type": "commonjs",
3
+ "sideEffects": [
4
+ "**/ontologies/*.js",
5
+ "**/ontologies/*.ts",
6
+ "**/utils/Package.js",
7
+ "**/utils/Package.ts"
8
+ ]
3
9
  }
@@ -0,0 +1,21 @@
1
+ /** The reserved key that tags a context reference in DSL-JSON. */
2
+ export declare const CONTEXT_REF_KEY = "$ctx";
3
+ /** The wire shape of a context reference: `{$ctx: "<contextName>"}`. */
4
+ export interface ContextRefJSON {
5
+ [CONTEXT_REF_KEY]: string;
6
+ }
7
+ /** Build a context-reference marker for the given context name. */
8
+ export declare function encodeContextRef(name: string): ContextRefJSON;
9
+ /** Type guard: is this value a `{$ctx: "..."}` context-reference marker? */
10
+ export declare function isContextRefJSON(value: unknown): value is ContextRefJSON;
11
+ /**
12
+ * Resolve a context name to its node id against the current context map.
13
+ *
14
+ * @param name the context name (e.g. `'user'`)
15
+ * @param required when true, throw {@link UnresolvedContextError} if the context
16
+ * isn't set (the mutation contract — a mutation must not silently target
17
+ * nothing). When false, return `undefined` (the select contract — an
18
+ * unresolved subject simply yields no results, and a reactive layer re-runs
19
+ * the query once the context lands).
20
+ */
21
+ export declare function resolveContextId(name: string, required: boolean): string | undefined;