@syndroo/sdk 0.4.0-rc.1 → 0.7.0
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 +83 -136
- package/dist/client.d.ts +30 -102
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +120 -325
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +48 -93
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +131 -137
- package/dist/errors.js.map +1 -1
- package/dist/generated/compiled.d.ts +182 -0
- package/dist/generated/compiled.d.ts.map +1 -0
- package/dist/generated/compiled.js +25761 -0
- package/dist/generated/compiled.js.map +1 -0
- package/dist/generated/types.d.ts +387 -0
- package/dist/generated/types.d.ts.map +1 -0
- package/dist/generated/types.js +2 -0
- package/dist/generated/types.js.map +1 -0
- package/dist/generated/validation.d.ts +18 -0
- package/dist/generated/validation.d.ts.map +1 -0
- package/dist/generated/validation.js +184 -0
- package/dist/generated/validation.js.map +1 -0
- package/dist/generated/validators.d.ts +3 -0
- package/dist/generated/validators.d.ts.map +1 -0
- package/dist/generated/validators.js +10 -0
- package/dist/generated/validators.js.map +1 -0
- package/dist/http.d.ts +91 -35
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +345 -243
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +90 -83
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +16 -155
- package/dist/types.js.map +1 -1
- package/dist/wait.d.ts +65 -0
- package/dist/wait.d.ts.map +1 -0
- package/dist/wait.js +192 -0
- package/dist/wait.js.map +1 -0
- package/package.json +6 -3
package/dist/wait.js
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status-only polling for `@syndroo/sdk`.
|
|
3
|
+
*
|
|
4
|
+
* `wait` never publishes, never confirms and never resumes a credential step.
|
|
5
|
+
* It polls exactly one query shape, `status({ type: "operation" })`, until the
|
|
6
|
+
* current execution round is complete, and returns that round. A prepared
|
|
7
|
+
* operation is not an execution round, so it yields a static
|
|
8
|
+
* `CONFIRMATION_REQUIRED` / `CONFIRMATION_EXPIRED` error instead.
|
|
9
|
+
*
|
|
10
|
+
* Round completion is decided from delivery results, not from the aggregate
|
|
11
|
+
* `status` string. An aggregate `unknown` is required to survive alongside
|
|
12
|
+
* deliveries that are still unresolved (spec 6.4), so stopping on
|
|
13
|
+
* `status === "unknown"` would return a round that is still sending to other
|
|
14
|
+
* targets. The round is complete when every delivery has a resolved outcome.
|
|
15
|
+
*
|
|
16
|
+
* Timeout and cancellation end the local wait only. They never cancel server
|
|
17
|
+
* work and never start a new publish.
|
|
18
|
+
*/
|
|
19
|
+
import { SyndrooError } from "./errors.js";
|
|
20
|
+
/** Documented wait bounds. Changing one is an API decision. */
|
|
21
|
+
export const WAIT_LIMITS = Object.freeze({
|
|
22
|
+
/** Poll interval when the caller does not choose one. */
|
|
23
|
+
defaultIntervalMs: 2000,
|
|
24
|
+
minIntervalMs: 250,
|
|
25
|
+
maxIntervalMs: 30000,
|
|
26
|
+
/** Total wait when the caller does not choose one. */
|
|
27
|
+
defaultTimeoutMs: 120000,
|
|
28
|
+
minTimeoutMs: 1,
|
|
29
|
+
maxTimeoutMs: 3600000,
|
|
30
|
+
});
|
|
31
|
+
function assertIntegerInRange(value, min, max) {
|
|
32
|
+
if (!Number.isInteger(value) || value < min || value > max) {
|
|
33
|
+
throw new SyndrooError("INVALID_ARGUMENT");
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
function resolveWaitOptions(options) {
|
|
38
|
+
const intervalMs = options.intervalMs === undefined
|
|
39
|
+
? WAIT_LIMITS.defaultIntervalMs
|
|
40
|
+
: assertIntegerInRange(options.intervalMs, WAIT_LIMITS.minIntervalMs, WAIT_LIMITS.maxIntervalMs);
|
|
41
|
+
const timeoutMs = options.timeoutMs === undefined
|
|
42
|
+
? WAIT_LIMITS.defaultTimeoutMs
|
|
43
|
+
: assertIntegerInRange(options.timeoutMs, WAIT_LIMITS.minTimeoutMs, WAIT_LIMITS.maxTimeoutMs);
|
|
44
|
+
return { intervalMs, timeoutMs, signal: options.signal };
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* A round is complete when every delivery has resolved.
|
|
48
|
+
*
|
|
49
|
+
* `outcome: null` means "this target is not resolved yet", which is exactly the
|
|
50
|
+
* case an aggregate `unknown` can hide. A round with no deliveries at all has
|
|
51
|
+
* nothing to resolve, so only an aggregate terminal status can end it.
|
|
52
|
+
*/
|
|
53
|
+
export function isExecutionRoundComplete(round) {
|
|
54
|
+
if (round.deliveries.length === 0) {
|
|
55
|
+
return round.status !== "pending" && round.status !== "running";
|
|
56
|
+
}
|
|
57
|
+
return round.deliveries.every((delivery) => delivery.outcome !== null);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The default injected sleep: timer-backed and cancellation-aware.
|
|
61
|
+
*
|
|
62
|
+
* The timer stays referenced. Between two polls this timer is often the only
|
|
63
|
+
* thing keeping the Node event loop alive, so unreferencing it would let a real
|
|
64
|
+
* process exit (13) before the wait completed or timed out.
|
|
65
|
+
*/
|
|
66
|
+
export function defaultSleep(ms, signal) {
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
if (signal?.aborted === true) {
|
|
69
|
+
reject(new SyndrooError("ABORTED"));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (!Number.isFinite(ms) || ms < 0) {
|
|
73
|
+
reject(new SyndrooError("INVALID_ARGUMENT"));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
let timer;
|
|
77
|
+
const onAbort = () => {
|
|
78
|
+
if (timer !== undefined) {
|
|
79
|
+
clearTimeout(timer);
|
|
80
|
+
}
|
|
81
|
+
reject(new SyndrooError("ABORTED"));
|
|
82
|
+
};
|
|
83
|
+
timer = setTimeout(() => {
|
|
84
|
+
signal?.removeEventListener("abort", onAbort);
|
|
85
|
+
resolve();
|
|
86
|
+
}, ms);
|
|
87
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/** Merge cancellation signals into one, so a single value guards the whole wait. */
|
|
91
|
+
function combineSignals(signals) {
|
|
92
|
+
const present = signals.filter((signal) => signal !== undefined);
|
|
93
|
+
if (present.length === 0) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
if (present.length === 1) {
|
|
97
|
+
return present[0];
|
|
98
|
+
}
|
|
99
|
+
const controller = new AbortController();
|
|
100
|
+
const abort = () => controller.abort();
|
|
101
|
+
for (const signal of present) {
|
|
102
|
+
if (signal.aborted) {
|
|
103
|
+
controller.abort();
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
107
|
+
}
|
|
108
|
+
return controller.signal;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Poll until the current execution round completes, then return it.
|
|
112
|
+
*
|
|
113
|
+
* Throws `CONFIRMATION_REQUIRED` / `CONFIRMATION_EXPIRED` for a prepared
|
|
114
|
+
* operation, `WAIT_TIMEOUT` when the deadline elapses, and `ABORTED` when the
|
|
115
|
+
* caller cancels. Nothing here sends content.
|
|
116
|
+
*/
|
|
117
|
+
export async function waitForExecutionRound(deps, operationId, options = {}) {
|
|
118
|
+
if (typeof operationId !== "string" || operationId.length === 0) {
|
|
119
|
+
throw new SyndrooError("INVALID_ARGUMENT");
|
|
120
|
+
}
|
|
121
|
+
const { intervalMs, timeoutMs, signal } = resolveWaitOptions(options);
|
|
122
|
+
const injectedNow = deps.now;
|
|
123
|
+
const now = injectedNow ?? (() => Date.now());
|
|
124
|
+
const deadline = now() + timeoutMs;
|
|
125
|
+
/*
|
|
126
|
+
* One deadline, two effects: it is checked before every poll and before any
|
|
127
|
+
* result is returned, and it also aborts whatever is in flight - the status
|
|
128
|
+
* request or the sleep - so a slow poll cannot push the wait past its budget.
|
|
129
|
+
*
|
|
130
|
+
* A real clock gets a real abort timer. An injected clock is driven by the
|
|
131
|
+
* test through `now()`, so no wall-clock timer is left dangling behind it.
|
|
132
|
+
*/
|
|
133
|
+
const deadlineController = new AbortController();
|
|
134
|
+
let deadlineElapsed = false;
|
|
135
|
+
const timer = injectedNow === undefined
|
|
136
|
+
? setTimeout(() => {
|
|
137
|
+
deadlineElapsed = true;
|
|
138
|
+
deadlineController.abort();
|
|
139
|
+
}, timeoutMs)
|
|
140
|
+
: undefined;
|
|
141
|
+
const pollSignal = combineSignals([signal, deadlineController.signal]);
|
|
142
|
+
const deadlineReached = () => deadlineElapsed || now() >= deadline;
|
|
143
|
+
const timeoutError = () => new SyndrooError("WAIT_TIMEOUT");
|
|
144
|
+
try {
|
|
145
|
+
for (;;) {
|
|
146
|
+
if (signal?.aborted === true) {
|
|
147
|
+
throw new SyndrooError("ABORTED");
|
|
148
|
+
}
|
|
149
|
+
if (deadlineReached()) {
|
|
150
|
+
throw timeoutError();
|
|
151
|
+
}
|
|
152
|
+
let view;
|
|
153
|
+
try {
|
|
154
|
+
view = await deps.readOperation(operationId, pollSignal);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
if (deadlineElapsed) {
|
|
158
|
+
throw timeoutError();
|
|
159
|
+
}
|
|
160
|
+
throw error;
|
|
161
|
+
}
|
|
162
|
+
if (deadlineReached()) {
|
|
163
|
+
throw timeoutError();
|
|
164
|
+
}
|
|
165
|
+
if (view.phase === "prepared") {
|
|
166
|
+
throw new SyndrooError(view.confirmation === "expired" ? "CONFIRMATION_EXPIRED" : "CONFIRMATION_REQUIRED");
|
|
167
|
+
}
|
|
168
|
+
if (isExecutionRoundComplete(view)) {
|
|
169
|
+
return view;
|
|
170
|
+
}
|
|
171
|
+
const remaining = deadline - now();
|
|
172
|
+
if (remaining <= 0) {
|
|
173
|
+
throw timeoutError();
|
|
174
|
+
}
|
|
175
|
+
try {
|
|
176
|
+
await deps.sleep(Math.min(intervalMs, remaining), pollSignal);
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
if (deadlineElapsed) {
|
|
180
|
+
throw timeoutError();
|
|
181
|
+
}
|
|
182
|
+
throw error;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
finally {
|
|
187
|
+
if (timer !== undefined) {
|
|
188
|
+
clearTimeout(timer);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=wait.js.map
|
package/dist/wait.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../src/wait.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syndroo/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Standalone TypeScript HTTP client for a Syndroo server. No Core or Provider imports.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -29,11 +29,14 @@
|
|
|
29
29
|
"README.md"
|
|
30
30
|
],
|
|
31
31
|
"engines": {
|
|
32
|
-
"node": ">=
|
|
32
|
+
"node": ">=24.19.0"
|
|
33
33
|
},
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public"
|
|
36
36
|
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"esbuild": "0.28.1"
|
|
39
|
+
},
|
|
37
40
|
"scripts": {
|
|
38
41
|
"build": "tsc -p tsconfig.json",
|
|
39
42
|
"check": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json",
|