@ferricstore/ferricstore 0.13.1 → 0.13.3
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/README.md +16 -4
- package/dist/index.cjs +8 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/docs/api/assets/hierarchy.js +1 -1
- package/docs/api/classes/ConnectionClosedError.html +1 -1
- package/docs/api/classes/FerricStoreClient.html +23 -23
- package/docs/api/classes/FerricStoreError.html +1 -1
- package/docs/api/classes/FlowAlreadyExistsError.html +1 -1
- package/docs/api/classes/FlowBatchError.html +1 -1
- package/docs/api/classes/FlowNotFoundError.html +1 -1
- package/docs/api/classes/FlowQueryError.html +1 -1
- package/docs/api/classes/FlowWrongStateError.html +1 -1
- package/docs/api/classes/HTTPTransportError.html +1 -1
- package/docs/api/classes/InvalidCommandError.html +1 -1
- package/docs/api/classes/LeaseRenewalError.html +1 -1
- package/docs/api/classes/LockHeldError.html +1 -1
- package/docs/api/classes/LockNotOwnedError.html +1 -1
- package/docs/api/classes/OverloadedError.html +1 -1
- package/docs/api/classes/QueueCompletionError.html +1 -1
- package/docs/api/classes/RequestNotSentError.html +1 -1
- package/docs/api/classes/RequestTimeoutError.html +1 -1
- package/docs/api/classes/RerouteError.html +1 -1
- package/docs/api/classes/StaleLeaseError.html +1 -1
- package/docs/api/classes/StalePolicyGenerationError.html +1 -1
- package/docs/api/hierarchy.html +52 -52
- package/docs/api/index.html +14 -4
- package/docs/api/interfaces/AdminListOptions.html +1 -1
- package/docs/api/interfaces/AdvanceOptions.html +1 -1
- package/docs/api/interfaces/AlreadyAppliedOutcome.html +1 -1
- package/docs/api/interfaces/AppliedStepOutcome.html +1 -1
- package/docs/api/interfaces/CancelOptions.html +1 -1
- package/docs/api/interfaces/CompleteOptions.html +1 -1
- package/docs/api/interfaces/CompleteOutcome.html +1 -1
- package/docs/api/interfaces/CreateManyOptions.html +1 -1
- package/docs/api/interfaces/EffectCompensateOptions.html +1 -1
- package/docs/api/interfaces/EffectConfirmOptions.html +1 -1
- package/docs/api/interfaces/EffectFailOptions.html +1 -1
- package/docs/api/interfaces/EffectStatusOptions.html +1 -1
- package/docs/api/interfaces/FailOptions.html +1 -1
- package/docs/api/interfaces/FailOutcome.html +1 -1
- package/docs/api/interfaces/FerricStoreClientFromUrlOptions.html +1 -1
- package/docs/api/interfaces/FerricStoreClientOptions.html +1 -1
- package/docs/api/interfaces/FlowQueryCountResult.html +1 -1
- package/docs/api/interfaces/FlowQueryIndexBuild.html +1 -1
- package/docs/api/interfaces/FlowQueryIndexProgress.html +1 -1
- package/docs/api/interfaces/FlowQueryIndexValidation.html +1 -1
- package/docs/api/interfaces/FlowQueryRecordsResult.html +1 -1
- package/docs/api/interfaces/InvocationCreateOptions.html +1 -1
- package/docs/api/interfaces/LeaseMutationOptions.html +1 -1
- package/docs/api/interfaces/LimitListOptions.html +1 -1
- package/docs/api/interfaces/MutateOptions.html +1 -1
- package/docs/api/interfaces/NamedValueMutation.html +1 -1
- package/docs/api/interfaces/ReadOptions.html +1 -1
- package/docs/api/interfaces/ReclaimOptions.html +1 -1
- package/docs/api/interfaces/RequestContextOptions.html +1 -1
- package/docs/api/interfaces/RetryOptions.html +1 -1
- package/docs/api/interfaces/RetryOutcome.html +1 -1
- package/docs/api/interfaces/SearchOptions.html +1 -1
- package/docs/api/interfaces/StepContinueOptions.html +1 -1
- package/docs/api/interfaces/StepOptions.html +1 -1
- package/docs/api/interfaces/TDigestCreateOptions.html +1 -1
- package/docs/api/interfaces/TDigestMergeOptions.html +1 -1
- package/docs/api/interfaces/TransitionOptions.html +1 -1
- package/docs/api/interfaces/TransitionOutcome.html +1 -1
- package/docs/api/media/design.md +10 -0
- package/docs/api/variables/FERRICSTORE_SDK_VERSION.html +1 -1
- package/docs/design.md +10 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -34,13 +34,15 @@ covers every public adapter class and option.
|
|
|
34
34
|
|
|
35
35
|
## Compatibility
|
|
36
36
|
|
|
37
|
-
TypeScript SDK `0.13.
|
|
37
|
+
TypeScript SDK `0.13.3` requires FerricStore server `0.11.4` or newer. With
|
|
38
38
|
FerricStore 0.11.11 it negotiates compact Stream mode 34 for homogeneous auto-ID
|
|
39
39
|
`XADD` pipelines and compact Pub/Sub mode 35 for homogeneous `PUBLISH`
|
|
40
40
|
pipelines. Native wire protocol v1 and the generic fallback are unchanged.
|
|
41
41
|
Capabilities and response-size limits are negotiated
|
|
42
42
|
per connection from the HELLO-shaped startup response rather than inferred from
|
|
43
|
-
a server version table.
|
|
43
|
+
a server version table. Durable rewind reason attribution requires FerricStore
|
|
44
|
+
OSS `0.11.19` or newer; older supported servers still perform the rewind state
|
|
45
|
+
transition without persisting the reason reference.
|
|
44
46
|
|
|
45
47
|
ESM:
|
|
46
48
|
|
|
@@ -60,7 +62,7 @@ const { FerricStoreClient, JsonCodec } = require("@ferricstore/ferricstore");
|
|
|
60
62
|
docker run -p 6388:6388 \
|
|
61
63
|
-e FERRICSTORE_PROTECTED_MODE=false \
|
|
62
64
|
-v ferricstore_data:/data \
|
|
63
|
-
quay.io/ferricstore/ferricstore:0.11.
|
|
65
|
+
quay.io/ferricstore/ferricstore:0.11.19@sha256:6275175c71a75f2d2a47c30c47a6561f994d8a5e31570fc8bd11a9f6ebcb6b31
|
|
64
66
|
```
|
|
65
67
|
|
|
66
68
|
## Query durable runs
|
|
@@ -150,7 +152,7 @@ Run the complete HTTP-compatible integration surface through a real TLS
|
|
|
150
152
|
listener with ACL authentication using:
|
|
151
153
|
|
|
152
154
|
```bash
|
|
153
|
-
FERRICSTORE_IMAGE=quay.io/ferricstore/ferricstore:0.11.
|
|
155
|
+
FERRICSTORE_IMAGE=quay.io/ferricstore/ferricstore:0.11.19@sha256:6275175c71a75f2d2a47c30c47a6561f994d8a5e31570fc8bd11a9f6ebcb6b31 \
|
|
154
156
|
npm run test:integration:http
|
|
155
157
|
```
|
|
156
158
|
|
|
@@ -414,6 +416,16 @@ still need the same stable provider idempotency key. The closure runs in the
|
|
|
414
416
|
calling worker's JavaScript execution context; the SDK does not move it to a
|
|
415
417
|
global thread pool.
|
|
416
418
|
|
|
419
|
+
A waiting workflow does not occupy a worker. Persist a timer, signal, approval,
|
|
420
|
+
or scheduled state and return the waiting transition so the current claim is
|
|
421
|
+
released. When the wait condition is satisfied, any available worker can acquire
|
|
422
|
+
a fresh lease and continue from the stored state. If no worker is
|
|
423
|
+
running, the workflow remains durable until one becomes available.
|
|
424
|
+
|
|
425
|
+
`stepContinue()` remains available only as a deprecated low-level migration API.
|
|
426
|
+
Use `advance(job, { toState })` for a state-only transition and
|
|
427
|
+
`step(job, { name, run, toState })` when the closure result must be journaled.
|
|
428
|
+
|
|
417
429
|
`nowMs` is an explicit client timestamp sent with a command. When omitted, the
|
|
418
430
|
SDK samples the client wall clock separately for each request. It is intended
|
|
419
431
|
mainly for deterministic tests and is not a server-response timestamp or a
|
package/dist/index.cjs
CHANGED
|
@@ -6985,7 +6985,8 @@ function buildProtocolCommand(args, maxBodyBytes = Number.MAX_SAFE_INTEGER, allo
|
|
|
6985
6985
|
"NOW",
|
|
6986
6986
|
"PARTITION",
|
|
6987
6987
|
"TO_EVENT",
|
|
6988
|
-
"EXPECT_STATE"
|
|
6988
|
+
"EXPECT_STATE",
|
|
6989
|
+
"REASON"
|
|
6989
6990
|
]));
|
|
6990
6991
|
}
|
|
6991
6992
|
if (command === "FLOW.COMPLETE_MANY") {
|
|
@@ -18071,6 +18072,7 @@ var FerricStoreFlowSupportClient = class extends FerricStoreFlowQueryClient {
|
|
|
18071
18072
|
append(args, "PARTITION", partitionKey);
|
|
18072
18073
|
append(args, "TO_EVENT", options.toEvent);
|
|
18073
18074
|
append(args, "EXPECT_STATE", options.expectState);
|
|
18075
|
+
appendEncoded(args, "REASON", this.codec, options.reason);
|
|
18074
18076
|
const response = await this.commandArgs(args);
|
|
18075
18077
|
if (returnRecord) {
|
|
18076
18078
|
return await this.recordOrGet(response, id, partitionKey);
|
|
@@ -18681,6 +18683,8 @@ var FerricStoreClaimClient = class extends FerricStoreMutationClient {
|
|
|
18681
18683
|
}
|
|
18682
18684
|
if (jobOnly) {
|
|
18683
18685
|
append(args, "RETURN", compactClaimReturnMode2(captured.includeState === true, captured.includeAttributes === true));
|
|
18686
|
+
} else {
|
|
18687
|
+
args.push("RETURN", "RECORDS");
|
|
18684
18688
|
}
|
|
18685
18689
|
append(args, "BLOCK", captured.blockMs);
|
|
18686
18690
|
appendPayloadRead(args, captured.payload, captured.payloadMaxBytes);
|
|
@@ -18755,6 +18759,8 @@ var FerricStoreClaimClient = class extends FerricStoreMutationClient {
|
|
|
18755
18759
|
append(args, "PRIORITY", captured.priority);
|
|
18756
18760
|
if (jobOnly) {
|
|
18757
18761
|
append(args, "RETURN", compactClaimReturnMode2(true, captured.includeAttributes === true));
|
|
18762
|
+
} else {
|
|
18763
|
+
args.push("RETURN", "RECORDS");
|
|
18758
18764
|
}
|
|
18759
18765
|
appendPayloadRead(args, captured.payload, captured.payloadMaxBytes);
|
|
18760
18766
|
appendValueReturn(args, { values: captured.values, valueMaxBytes: captured.valueMaxBytes });
|
|
@@ -21982,7 +21988,7 @@ function throwError(value) {
|
|
|
21982
21988
|
}
|
|
21983
21989
|
|
|
21984
21990
|
// src/version.ts
|
|
21985
|
-
var FERRICSTORE_SDK_VERSION = "0.13.
|
|
21991
|
+
var FERRICSTORE_SDK_VERSION = "0.13.3";
|
|
21986
21992
|
var FERRICSTORE_MINIMUM_SERVER_VERSION = "0.11.4";
|
|
21987
21993
|
var FERRICSTORE_NATIVE_PROTOCOL_VERSION = 1;
|
|
21988
21994
|
// Annotate the CommonJS export names for ESM import in node:
|