@procedures/client 0.27.0 → 0.27.2

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 CHANGED
@@ -1,5 +1,30 @@
1
1
  # @procedures/client
2
2
 
3
+ ## 0.27.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 7bc4c6d: Fixes from the audit s21.
8
+
9
+ PATCH: bug fixes. A caller that used the documented behavior sees no change.
10
+
11
+ - A stream that its reader closes before the first item now ends. An async generator ignores a `return()` before its first `next()`, so no wrapper of the stream ran its end. Thus an HTTP request without `Accept: application/x-ndjson` for a stream without an end (`NOT_ACCEPTABLE`) stayed in flight, so `drain()` and `stop()` waited for their deadline. It also kept its storages in use, so `useStorage(..., { close })` waited for its grace. The subscription of `events.subscribe` kept its listeners on the bus. Now each wrapper on the path of the server (`ProcedureServer`, the invocation, the timeout and the tracing interceptors) gives the `return()` to its source and runs its end. The tests in `unbounded.test.ts`, `use-storage.test.ts` and `interceptors.test.ts` pin this.
12
+ - The idempotency cache of `ProcedureServer` now keeps the results of each principal apart. Before, its key was the procedure and the idempotency key alone. Thus a caller with the idempotency key of another principal got the result of that call, and its own write did not run. A second try of one principal still gets its first result. The test in `idempotency.client.test.ts` pins this.
13
+ - `server.start` of `@procedures/server` now starts only the `mark` CLI: `dist/bin.js` or `dist/cli.js` of `mark`. Before, it took each running script whose name ends in `cli.js`, so a start in `procedure-server` started `procedure-server`. The test in `procedures.test.ts` pins this.
14
+
15
+ ## 0.27.1
16
+
17
+ ### Patch Changes
18
+
19
+ - 146d38e: The kernel `@mark1russell7/coeval` goes from `^0.5.0` to `^0.6.3` in `@procedures/client` and `@procedures/compiler`.
20
+
21
+ PATCH: a dependency update with no change that a caller can see.
22
+
23
+ - Since coeval 0.6.3, the kernel gives a `Failure` of the host its own error value, without a cause. The client now keeps a `Failure` that a procedure throws as the cause of that error value. Thus `client.exec()`, `runProgram()`, `client.tryCatch` and `client.parallel` give the same `Failure` and the same message `<code> <reason>` as with coeval 0.5. The tests in `program.test.ts` pin this.
24
+ - In coeval 0.6.3, an attribute of the standard tree that holds `undefined` no longer reads as `#N/A`. The world of a program has no standard tree, and its names are plain objects. Thus a `$ref` gives the same result as before.
25
+ - In coeval 0.6.0, `mergeMachines` refuses a name that two machines define, unless the later machine names it in `replaces`. The client does not merge machines.
26
+ - The declarations of `PROGRAM_WORLD`, `programMachine()`, `documentAt()` and `ProgramDocument` use the coeval types `World`, `Machine`, `Key` and `Json`. These types have no change. The types that `Machine` reaches get only new optional fields. The public API snapshot has no change.
27
+
3
28
  ## 0.27.0
4
29
 
5
30
  ### Minor Changes