@procedures/store 0.40.0 → 0.41.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 +18 -0
- package/README.md +3 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/storage/hybrid.d.ts +7 -3
- package/dist/storage/hybrid.d.ts.map +1 -1
- package/dist/storage/hybrid.js +24 -5
- package/dist/storage/hybrid.js.map +1 -1
- package/package.json +4 -4
- package/src/storage/hybrid.ts +24 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @procedures/store
|
|
2
2
|
|
|
3
|
+
## 0.41.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 84182cb: `HybridStorage`: a queued write whose answer was lost does not go to the remote a second time (roadmap O69). The push gets `VERSION_CONFLICT`, and each id of the write is its echo: a set finds its own value, or a delete finds no item. At this time the write leaves the queue with no further send, and the base versions become the current versions. Thus the second change event of the resend is gone. When only some ids of a batch are echoes, the policy decides for the other ids, as before.
|
|
8
|
+
- Updated dependencies [69cee92]
|
|
9
|
+
- @procedures/client@0.41.1
|
|
10
|
+
- @procedures/collections@0.41.1
|
|
11
|
+
|
|
12
|
+
## 0.41.0
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies [37deb07]
|
|
17
|
+
- Updated dependencies [fc52431]
|
|
18
|
+
- @procedures/client@0.41.0
|
|
19
|
+
- @procedures/collections@0.41.0
|
|
20
|
+
|
|
3
21
|
## 0.40.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -241,7 +241,9 @@ With `versionOf`, the push of a queued write sends its base version as the expec
|
|
|
241
241
|
- `merge`: `mergeFn` gives the item. A new queued write sends it, with the current version as its base.
|
|
242
242
|
- `local`: the current version becomes the base, and the push sends the queued write again. It replaces the remote item.
|
|
243
243
|
- `error`: the push throws `ConflictError` with the ids. The queue and the remote keep their items, and the next push tries again.
|
|
244
|
-
- A remote item that is the value of the queued write is not a conflict. An earlier send reached the remote, and its answer was lost.
|
|
244
|
+
- A remote item that is the value of the queued write is not a conflict. An earlier send reached the remote, and its answer was lost. A queued delete that finds no remote item is also not a conflict.
|
|
245
|
+
- When each id of the queued write is such an echo, the write leaves the queue with no further send. Thus a subscriber of the remote gets no second change event (roadmap O69).
|
|
246
|
+
- When only some ids of a batch are echoes, the batch does not leave the queue. The policy decides for the other ids, as before.
|
|
245
247
|
- An id without a known base version gets no expected version. Its queued write wins, as before.
|
|
246
248
|
- The remote must test the precondition: an `ApiStorage` of the collection procedures over a storage with the same `versionOf`. A remote that cannot test it refuses each push.
|
|
247
249
|
- The option `sendBaseVersions: false` stops the expected versions. Then a queued write replaces the remote item, as before CLI-16.
|