@_linked/core 2.0.0-next.20260311072023 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -31
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#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:
|
|
8
|
+
|
|
9
|
+
- `.minus(Shape)` — exclude by shape type
|
|
10
|
+
- `.minus(p => p.prop.equals(val))` — exclude by condition
|
|
11
|
+
- `.minus(p => p.prop)` — exclude by property existence
|
|
12
|
+
- `.minus(p => [p.prop1, p.nested.prop2])` — exclude by multi-property existence with nested path support
|
|
13
|
+
|
|
14
|
+
Add bulk delete operations:
|
|
15
|
+
|
|
16
|
+
- `Shape.deleteAll()` / `DeleteBuilder.from(Shape).all()` — delete all instances with schema-aware blank node cleanup
|
|
17
|
+
- `Shape.deleteWhere(fn)` / `DeleteBuilder.from(Shape).where(fn)` — conditional delete
|
|
18
|
+
|
|
19
|
+
Add conditional update operations:
|
|
20
|
+
|
|
21
|
+
- `.update(data).where(fn)` — update matching instances
|
|
22
|
+
- `.update(data).forAll()` — update all instances
|
|
23
|
+
|
|
24
|
+
API cleanup:
|
|
25
|
+
|
|
26
|
+
- Deprecate `sortBy()` in favor of `orderBy()`
|
|
27
|
+
- Remove `DeleteBuilder.for()` — use `DeleteBuilder.from(shape, ids)` instead
|
|
28
|
+
- Require `data` parameter in `Shape.update(data)`
|
|
29
|
+
|
|
3
30
|
## 2.0.0
|
|
4
31
|
|
|
5
32
|
### Major Changes
|
|
@@ -111,12 +138,28 @@
|
|
|
111
138
|
|
|
112
139
|
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).
|
|
113
140
|
|
|
141
|
+
## 1.3.0
|
|
142
|
+
|
|
114
143
|
### Minor Changes
|
|
115
144
|
|
|
116
145
|
- [#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.
|
|
117
146
|
|
|
118
147
|
**New:** `getQueryDispatch()` and `setQueryDispatch()` are now exported, allowing custom query dispatch implementations (e.g. for testing or alternative storage backends) without subclassing `LinkedStorage`.
|
|
119
148
|
|
|
149
|
+
## 1.2.1
|
|
150
|
+
|
|
151
|
+
### Patch Changes
|
|
152
|
+
|
|
153
|
+
- [#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.
|
|
154
|
+
|
|
155
|
+
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).
|
|
156
|
+
|
|
157
|
+
Also adds regression coverage for desugar preservation, IR lowering completeness, and updated SPARQL golden output for nested query fixtures.
|
|
158
|
+
|
|
159
|
+
## 1.2.0
|
|
160
|
+
|
|
161
|
+
### Minor Changes
|
|
162
|
+
|
|
120
163
|
- [#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.
|
|
121
164
|
|
|
122
165
|
- [#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.
|
|
@@ -173,37 +216,6 @@
|
|
|
173
216
|
|
|
174
217
|
See [SPARQL Algebra Layer docs](./documentation/sparql-algebra.md) for the full type reference, conversion rules, and store implementation guide.
|
|
175
218
|
|
|
176
|
-
### Patch Changes
|
|
177
|
-
|
|
178
|
-
- [#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:
|
|
179
|
-
|
|
180
|
-
- `.minus(Shape)` — exclude by shape type
|
|
181
|
-
- `.minus(p => p.prop.equals(val))` — exclude by condition
|
|
182
|
-
- `.minus(p => p.prop)` — exclude by property existence
|
|
183
|
-
- `.minus(p => [p.prop1, p.nested.prop2])` — exclude by multi-property existence with nested path support
|
|
184
|
-
|
|
185
|
-
Add bulk delete operations:
|
|
186
|
-
|
|
187
|
-
- `Shape.deleteAll()` / `DeleteBuilder.from(Shape).all()` — delete all instances with schema-aware blank node cleanup
|
|
188
|
-
- `Shape.deleteWhere(fn)` / `DeleteBuilder.from(Shape).where(fn)` — conditional delete
|
|
189
|
-
|
|
190
|
-
Add conditional update operations:
|
|
191
|
-
|
|
192
|
-
- `.update(data).where(fn)` — update matching instances
|
|
193
|
-
- `.update(data).forAll()` — update all instances
|
|
194
|
-
|
|
195
|
-
API cleanup:
|
|
196
|
-
|
|
197
|
-
- Deprecate `sortBy()` in favor of `orderBy()`
|
|
198
|
-
- Remove `DeleteBuilder.for()` — use `DeleteBuilder.from(shape, ids)` instead
|
|
199
|
-
- Require `data` parameter in `Shape.update(data)`
|
|
200
|
-
|
|
201
|
-
- [#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.
|
|
202
|
-
|
|
203
|
-
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).
|
|
204
|
-
|
|
205
|
-
Also adds regression coverage for desugar preservation, IR lowering completeness, and updated SPARQL golden output for nested query fixtures.
|
|
206
|
-
|
|
207
219
|
## 1.1.0
|
|
208
220
|
|
|
209
221
|
### Minor Changes
|