@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/client.js
CHANGED
|
@@ -1,354 +1,149 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `
|
|
2
|
+
* `Syndroo` — the public HTTP client of `@syndroo/sdk`.
|
|
3
3
|
*
|
|
4
|
-
* The client
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
import { SyndrooAbortError, SyndrooApiError, SyndrooConfigError, SyndrooError, SyndrooValidationError, SyndrooWaitTimeoutError, } from "./errors.js";
|
|
9
|
-
import { DEFAULT_MAX_RESPONSE_BYTES, DEFAULT_TIMEOUT_MS, MIN_MAX_RESPONSE_BYTES, sendRequest, unrefTimer, } from "./http.js";
|
|
10
|
-
import { isPostTerminal, parseHealth, parsePostDetail, parsePostList, parsePostReceipt, } from "./types.js";
|
|
11
|
-
export const DEFAULT_WAIT_TIMEOUT_MS = 60_000;
|
|
12
|
-
export const DEFAULT_POLL_INTERVAL_MS = 250;
|
|
13
|
-
export const DEFAULT_MAX_POLL_INTERVAL_MS = 2_000;
|
|
14
|
-
const IDEMPOTENCY_KEY_PATTERN = /^[A-Za-z0-9._:-]{1,128}$/;
|
|
15
|
-
/**
|
|
16
|
-
* Client for one Syndroo instance.
|
|
4
|
+
* The client is a thin wrapper over the three `/v1` protocol operations plus a
|
|
5
|
+
* status-only `wait`. It mirrors the Core request/result generics from the
|
|
6
|
+
* shared blueprint, adds no server features, and never invents a result the
|
|
7
|
+
* server did not report.
|
|
17
8
|
*
|
|
18
|
-
*
|
|
19
|
-
* const syndroo = new SyndrooClient({
|
|
20
|
-
* baseUrl: process.env.SYNDROO_BASE_URL!,
|
|
21
|
-
* apiKey: process.env.SYNDROO_API_KEY!,
|
|
22
|
-
* });
|
|
9
|
+
* What the client deliberately does not do:
|
|
23
10
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* const post = await syndroo.posts.get(receipt.id);
|
|
30
|
-
* ```
|
|
11
|
+
* - it never approves, confirms or resumes anything on its own;
|
|
12
|
+
* - it never retries a business result (`failed`, `partial`, `unknown` are
|
|
13
|
+
* protocol successes);
|
|
14
|
+
* - it never decides whether a caller-supplied idempotency key is "the same
|
|
15
|
+
* intent" across two separate calls.
|
|
31
16
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
17
|
+
import { SyndrooError } from "./errors.js";
|
|
18
|
+
import { HttpTransport, assertIdempotencyKey, resolveTransportOptions } from "./http.js";
|
|
19
|
+
import { defaultSleep, waitForExecutionRound } from "./wait.js";
|
|
20
|
+
export class Syndroo {
|
|
21
|
+
transport;
|
|
22
|
+
sleep;
|
|
36
23
|
constructor(options) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
validatePositiveDuration(this.#waitTimeoutMs, "waitTimeoutMs");
|
|
40
|
-
if (typeof globalThis.fetch !== "function") {
|
|
41
|
-
throw new SyndrooConfigError("This runtime has no global fetch(). The SDK requires Node.js 22 or newer.");
|
|
24
|
+
if (options === null || typeof options !== "object") {
|
|
25
|
+
throw new SyndrooError("INVALID_ARGUMENT");
|
|
42
26
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
signal: options.signal,
|
|
56
|
-
timeoutMs: options.timeoutMs,
|
|
57
|
-
});
|
|
58
|
-
return parseHealth(response.body, { status: response.status });
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/** The posts resource: create, read, list, and bounded status wait. */
|
|
62
|
-
export class PostsResource {
|
|
63
|
-
#config;
|
|
64
|
-
#defaultWaitTimeoutMs;
|
|
65
|
-
constructor(config, defaultWaitTimeoutMs) {
|
|
66
|
-
this.#config = config;
|
|
67
|
-
this.#defaultWaitTimeoutMs = defaultWaitTimeoutMs;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* `POST /v1/posts`. The returned receipt is an acceptance result: HTTP 202
|
|
71
|
-
* means the request is queued for processing, not that any platform
|
|
72
|
-
* published it. The SDK performs exactly one request and never retries it.
|
|
73
|
-
*/
|
|
74
|
-
async create(input, options = {}) {
|
|
75
|
-
validateCreateInput(input);
|
|
76
|
-
const idempotencyKey = options.idempotencyKey === undefined
|
|
77
|
-
? undefined
|
|
78
|
-
: validateIdempotencyKey(options.idempotencyKey);
|
|
79
|
-
const response = await sendRequest(this.#config, {
|
|
80
|
-
method: "POST",
|
|
81
|
-
path: "/v1/posts",
|
|
82
|
-
json: input,
|
|
83
|
-
idempotencyKey,
|
|
84
|
-
signal: options.signal,
|
|
85
|
-
timeoutMs: options.timeoutMs,
|
|
86
|
-
});
|
|
87
|
-
return parsePostReceipt(response.body, {
|
|
88
|
-
status: response.status,
|
|
89
|
-
requestMayHaveBeenApplied: true,
|
|
27
|
+
const fetchImpl = options.fetch ?? defaultFetch();
|
|
28
|
+
if (typeof fetchImpl !== "function") {
|
|
29
|
+
throw new SyndrooError("INVALID_ARGUMENT");
|
|
30
|
+
}
|
|
31
|
+
const sleepImpl = options.sleep ?? defaultSleep;
|
|
32
|
+
if (typeof sleepImpl !== "function") {
|
|
33
|
+
throw new SyndrooError("INVALID_ARGUMENT");
|
|
34
|
+
}
|
|
35
|
+
this.transport = new HttpTransport({
|
|
36
|
+
baseUrl: options.baseUrl,
|
|
37
|
+
apiKey: options.apiKey,
|
|
38
|
+
fetch: fetchImpl,
|
|
90
39
|
});
|
|
40
|
+
this.sleep = sleepImpl;
|
|
91
41
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
signal: options.signal,
|
|
99
|
-
timeoutMs: options.timeoutMs,
|
|
100
|
-
});
|
|
101
|
-
return parsePostDetail(response.body, { status: response.status });
|
|
42
|
+
async connect(request, options = {}) {
|
|
43
|
+
const result = (await this.call("connect", "ConnectRequest", request, options));
|
|
44
|
+
if ((request.type === "update" || request.type === "disconnect") && result.status !== "done") {
|
|
45
|
+
throw new SyndrooError("INVALID_RESPONSE");
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
102
48
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
query: limit === undefined ? undefined : { limit: String(limit) },
|
|
110
|
-
signal: options.signal,
|
|
111
|
-
timeoutMs: options.timeoutMs,
|
|
112
|
-
});
|
|
113
|
-
return parsePostList(response.body, { status: response.status });
|
|
49
|
+
async publish(request, options = {}) {
|
|
50
|
+
const result = (await this.call("publish", "PublishRequest", request, options));
|
|
51
|
+
if (request.type === "execute" && !isExecutionResult(result)) {
|
|
52
|
+
throw new SyndrooError("INVALID_RESPONSE");
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
114
55
|
}
|
|
115
|
-
/**
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
* timeout leaves the server-side work running and only stops this client from
|
|
121
|
-
* waiting. On timeout it throws `SyndrooWaitTimeoutError`, which keeps the
|
|
122
|
-
* post id, the last status, and the last transient error so a caller can
|
|
123
|
-
* resume instead of starting over.
|
|
124
|
-
*/
|
|
125
|
-
async wait(id, options = {}) {
|
|
126
|
-
const postId = validatePostId(id);
|
|
127
|
-
const timeoutMs = options.timeoutMs ?? this.#defaultWaitTimeoutMs;
|
|
128
|
-
const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
129
|
-
const maxPollIntervalMs = options.maxPollIntervalMs ?? DEFAULT_MAX_POLL_INTERVAL_MS;
|
|
130
|
-
validatePositiveDuration(timeoutMs, "timeoutMs");
|
|
131
|
-
validatePositiveDuration(pollIntervalMs, "pollIntervalMs");
|
|
132
|
-
validatePositiveDuration(maxPollIntervalMs, "maxPollIntervalMs");
|
|
133
|
-
const deadline = Date.now() + timeoutMs;
|
|
134
|
-
let interval = Math.min(pollIntervalMs, maxPollIntervalMs);
|
|
135
|
-
let lastPost;
|
|
136
|
-
let lastError;
|
|
137
|
-
for (;;) {
|
|
138
|
-
const remaining = deadline - Date.now();
|
|
139
|
-
if (remaining <= 0) {
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
try {
|
|
143
|
-
const post = await this.get(postId, {
|
|
144
|
-
signal: options.signal,
|
|
145
|
-
timeoutMs: Math.max(1, Math.min(remaining, this.#config.timeoutMs)),
|
|
146
|
-
});
|
|
147
|
-
lastPost = post;
|
|
148
|
-
lastError = undefined;
|
|
149
|
-
if (isPostTerminal(post.status)) {
|
|
150
|
-
return post;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
const failure = toSyndrooError(error);
|
|
155
|
-
if (isFatalWaitFailure(failure)) {
|
|
156
|
-
throw failure;
|
|
157
|
-
}
|
|
158
|
-
lastError = failure;
|
|
159
|
-
if (failure instanceof SyndrooApiError && failure.retryAfterMs !== undefined) {
|
|
160
|
-
interval = Math.max(interval, failure.retryAfterMs);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
const pause = Math.min(interval, Math.max(0, deadline - Date.now()));
|
|
164
|
-
if (pause > 0) {
|
|
165
|
-
await sleep(pause, options.signal);
|
|
166
|
-
}
|
|
167
|
-
interval = Math.min(interval * 2, maxPollIntervalMs);
|
|
56
|
+
/** Return the exact result type of the query that was asked for. */
|
|
57
|
+
async status(request, options = {}) {
|
|
58
|
+
const result = (await this.call("status", "StatusRequest", request, options));
|
|
59
|
+
if (result === null || typeof result !== "object" || result.type !== request.type) {
|
|
60
|
+
throw new SyndrooError("INVALID_RESPONSE");
|
|
168
61
|
}
|
|
169
|
-
|
|
170
|
-
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
/** Poll `status({ type: "operation" })` until the execution round completes. */
|
|
65
|
+
async wait(operationId, options = {}) {
|
|
66
|
+
return waitForExecutionRound({
|
|
67
|
+
readOperation: async (id, signal) => {
|
|
68
|
+
const result = await this.status({ type: "operation", operationId: id }, signal === undefined ? {} : { signal });
|
|
69
|
+
return result.operation;
|
|
70
|
+
},
|
|
71
|
+
sleep: this.sleep,
|
|
72
|
+
}, operationId, options);
|
|
73
|
+
}
|
|
74
|
+
async call(operation, wireName, body, options) {
|
|
75
|
+
const { timeoutMs, transportRetries } = resolveTransportOptions(options);
|
|
76
|
+
const idempotencyKey = resolveIdempotencyKey(operation, body, options.idempotencyKey);
|
|
77
|
+
const request = {
|
|
78
|
+
operation,
|
|
79
|
+
wireName,
|
|
80
|
+
body,
|
|
171
81
|
timeoutMs,
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
function waitTimeoutMessage(postId, timeoutMs, lastPost, lastError) {
|
|
179
|
-
const observed = lastPost === undefined
|
|
180
|
-
? "no status was observed"
|
|
181
|
-
: `the last observed status was "${lastPost.status}"`;
|
|
182
|
-
const failure = lastError === undefined ? "" : ` The last status read failed with: ${lastError.message}`;
|
|
183
|
-
return (`Stopped waiting for post ${postId} after ${timeoutMs}ms: ${observed}. ` +
|
|
184
|
-
"Waiting only reads, so no post was created or cancelled and the server-side " +
|
|
185
|
-
"work continues; resume with posts.get or a longer posts.wait." +
|
|
186
|
-
failure);
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Only transient conditions keep a wait going. Authentication, validation, and
|
|
190
|
-
* "not found" are configuration or state problems that will not fix themselves
|
|
191
|
-
* by polling, so they surface immediately.
|
|
192
|
-
*/
|
|
193
|
-
function isFatalWaitFailure(error) {
|
|
194
|
-
if (error instanceof SyndrooAbortError ||
|
|
195
|
-
error instanceof SyndrooConfigError ||
|
|
196
|
-
error instanceof SyndrooValidationError) {
|
|
197
|
-
return true;
|
|
198
|
-
}
|
|
199
|
-
if (error instanceof SyndrooApiError) {
|
|
200
|
-
return error.status < 500 && error.status !== 429;
|
|
201
|
-
}
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
function toSyndrooError(error) {
|
|
205
|
-
if (error instanceof SyndrooError) {
|
|
206
|
-
return error;
|
|
82
|
+
transportRetries,
|
|
83
|
+
...(idempotencyKey === undefined ? {} : { idempotencyKey }),
|
|
84
|
+
...(options.signal === undefined ? {} : { signal: options.signal }),
|
|
85
|
+
};
|
|
86
|
+
return this.transport.send(request);
|
|
207
87
|
}
|
|
208
|
-
return new SyndrooError(error instanceof Error ? error.message : "Unknown failure", { code: "UNKNOWN", cause: error });
|
|
209
88
|
}
|
|
210
|
-
function
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
const maxResponseBytes = options.maxResponseBytes ?? DEFAULT_MAX_RESPONSE_BYTES;
|
|
215
|
-
validatePositiveDuration(timeoutMs, "timeoutMs");
|
|
216
|
-
if (!Number.isInteger(maxResponseBytes) ||
|
|
217
|
-
maxResponseBytes < MIN_MAX_RESPONSE_BYTES) {
|
|
218
|
-
throw new SyndrooConfigError(`maxResponseBytes must be an integer of at least ${MIN_MAX_RESPONSE_BYTES} bytes.`);
|
|
89
|
+
function defaultFetch() {
|
|
90
|
+
const impl = globalThis.fetch;
|
|
91
|
+
if (typeof impl !== "function") {
|
|
92
|
+
throw new SyndrooError("INVALID_ARGUMENT");
|
|
219
93
|
}
|
|
220
|
-
return
|
|
94
|
+
return (input, init) => impl(input, init);
|
|
221
95
|
}
|
|
222
|
-
function
|
|
223
|
-
if (typeof
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
let url;
|
|
227
|
-
try {
|
|
228
|
-
url = new URL(value.trim());
|
|
96
|
+
function readType(body) {
|
|
97
|
+
if (body === null || typeof body !== "object") {
|
|
98
|
+
return undefined;
|
|
229
99
|
}
|
|
230
|
-
|
|
231
|
-
throw new SyndrooConfigError(`baseUrl must be an absolute URL, received "${value.trim()}".`);
|
|
232
|
-
}
|
|
233
|
-
if (url.protocol !== "https:" && url.protocol !== "http:") {
|
|
234
|
-
throw new SyndrooConfigError(`baseUrl must use http or https, received "${url.protocol}".`);
|
|
235
|
-
}
|
|
236
|
-
if (url.username !== "" || url.password !== "") {
|
|
237
|
-
throw new SyndrooConfigError("baseUrl must not embed credentials; pass the API key as apiKey so it is sent only as a Bearer header.");
|
|
238
|
-
}
|
|
239
|
-
if (url.search !== "" || url.hash !== "") {
|
|
240
|
-
throw new SyndrooConfigError("baseUrl must not include a query string or fragment.");
|
|
241
|
-
}
|
|
242
|
-
if (url.protocol === "http:" &&
|
|
243
|
-
!allowInsecureHttp &&
|
|
244
|
-
!isLoopbackHost(url.hostname)) {
|
|
245
|
-
throw new SyndrooConfigError("baseUrl must use https outside loopback: a bearer token sent over plaintext " +
|
|
246
|
-
"is readable on the path. Pass allowInsecureHttp: true only for a " +
|
|
247
|
-
"deliberate plaintext deployment.");
|
|
248
|
-
}
|
|
249
|
-
const path = url.pathname.replace(/\/+$/, "");
|
|
250
|
-
return `${url.origin}${path}`;
|
|
251
|
-
}
|
|
252
|
-
function isLoopbackHost(hostname) {
|
|
253
|
-
const host = hostname.toLowerCase().replace(/^\[/u, "").replace(/\]$/u, "");
|
|
254
|
-
return (host === "localhost" ||
|
|
255
|
-
host.endsWith(".localhost") ||
|
|
256
|
-
host === "::1" ||
|
|
257
|
-
host === "0:0:0:0:0:0:0:1" ||
|
|
258
|
-
host.startsWith("127."));
|
|
100
|
+
return body.type;
|
|
259
101
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
102
|
+
/**
|
|
103
|
+
* True when a call carries a write side effect and therefore needs request
|
|
104
|
+
* identity. `resume` is excluded on purpose: it is protected by the connect
|
|
105
|
+
* session id plus step revision, and `execute` is protected by the approval
|
|
106
|
+
* token's admission record.
|
|
107
|
+
*/
|
|
108
|
+
function needsRequestIdentity(operation, body) {
|
|
109
|
+
const type = readType(body);
|
|
110
|
+
if (operation === "connect") {
|
|
111
|
+
return type === "start" || type === "update" || type === "disconnect";
|
|
264
112
|
}
|
|
265
|
-
if (
|
|
266
|
-
|
|
113
|
+
if (operation === "publish") {
|
|
114
|
+
return type === "prepare" || type === "retry";
|
|
267
115
|
}
|
|
268
|
-
return
|
|
116
|
+
return false;
|
|
269
117
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
118
|
+
/**
|
|
119
|
+
* One key per logical call. A caller-supplied key is validated and reused
|
|
120
|
+
* verbatim; the SDK only mints a key for the calls that require request
|
|
121
|
+
* identity. The key is resolved before the first attempt, so every transport
|
|
122
|
+
* retry of the call sends the same value.
|
|
123
|
+
*/
|
|
124
|
+
function resolveIdempotencyKey(operation, body, provided) {
|
|
125
|
+
if (provided !== undefined) {
|
|
126
|
+
return assertIdempotencyKey(provided);
|
|
273
127
|
}
|
|
128
|
+
return needsRequestIdentity(operation, body) ? generateIdempotencyKey() : undefined;
|
|
274
129
|
}
|
|
275
|
-
function
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
if (typeof platform !== "string" || platform.trim().length === 0) {
|
|
287
|
-
throw new SyndrooValidationError(`platforms[${index}] must be a non-empty string.`);
|
|
288
|
-
}
|
|
289
|
-
});
|
|
290
|
-
if (input.scheduledAt !== undefined) {
|
|
291
|
-
if (typeof input.scheduledAt !== "string" ||
|
|
292
|
-
Number.isNaN(Date.parse(input.scheduledAt))) {
|
|
293
|
-
throw new SyndrooValidationError("scheduledAt must be an ISO 8601 date-time string with an explicit " +
|
|
294
|
-
"offset, for example 2030-01-02T03:04:05.000Z.");
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
const overrides = input.overrides;
|
|
298
|
-
if (overrides !== undefined) {
|
|
299
|
-
if (overrides === null || typeof overrides !== "object") {
|
|
300
|
-
throw new SyndrooValidationError("overrides must be an object keyed by platform name.");
|
|
301
|
-
}
|
|
302
|
-
for (const [platform, override] of Object.entries(overrides)) {
|
|
303
|
-
if (override === null || typeof override !== "object") {
|
|
304
|
-
throw new SyndrooValidationError(`overrides.${platform} must be an object with an optional content string.`);
|
|
305
|
-
}
|
|
306
|
-
const content = override.content;
|
|
307
|
-
if (content !== undefined && typeof content !== "string") {
|
|
308
|
-
throw new SyndrooValidationError(`overrides.${platform}.content must be a string.`);
|
|
309
|
-
}
|
|
130
|
+
function generateIdempotencyKey() {
|
|
131
|
+
const cryptoImpl = globalThis.crypto;
|
|
132
|
+
if (typeof cryptoImpl?.randomUUID === "function") {
|
|
133
|
+
return cryptoImpl.randomUUID();
|
|
134
|
+
}
|
|
135
|
+
if (typeof cryptoImpl?.getRandomValues === "function") {
|
|
136
|
+
const bytes = new Uint8Array(16);
|
|
137
|
+
cryptoImpl.getRandomValues(bytes);
|
|
138
|
+
let key = "";
|
|
139
|
+
for (const byte of bytes) {
|
|
140
|
+
key += byte.toString(16).padStart(2, "0");
|
|
310
141
|
}
|
|
142
|
+
return key;
|
|
311
143
|
}
|
|
144
|
+
throw new SyndrooError("INVALID_ARGUMENT");
|
|
312
145
|
}
|
|
313
|
-
function
|
|
314
|
-
|
|
315
|
-
throw new SyndrooValidationError("idempotencyKey must use 1-128 letters, digits, dots, underscores, colons, " +
|
|
316
|
-
"or hyphens, and must be reused for the same logical post.");
|
|
317
|
-
}
|
|
318
|
-
return value;
|
|
319
|
-
}
|
|
320
|
-
function validatePostId(value) {
|
|
321
|
-
if (typeof value !== "string" || value.length === 0) {
|
|
322
|
-
throw new SyndrooValidationError("A post id is required.");
|
|
323
|
-
}
|
|
324
|
-
return value;
|
|
325
|
-
}
|
|
326
|
-
function validateLimit(value) {
|
|
327
|
-
if (!Number.isInteger(value) || value < 1 || value > 100) {
|
|
328
|
-
throw new SyndrooValidationError("limit must be an integer between 1 and 100.");
|
|
329
|
-
}
|
|
330
|
-
return value;
|
|
331
|
-
}
|
|
332
|
-
function sleep(ms, signal) {
|
|
333
|
-
return new Promise((resolve, reject) => {
|
|
334
|
-
if (signal?.aborted === true) {
|
|
335
|
-
reject(new SyndrooAbortError("Waiting was aborted before the next status read. Nothing was created or cancelled.", { cause: signal.reason }));
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
338
|
-
const handle = setTimeout(() => {
|
|
339
|
-
finish();
|
|
340
|
-
resolve();
|
|
341
|
-
}, ms);
|
|
342
|
-
const onAbort = () => {
|
|
343
|
-
finish();
|
|
344
|
-
reject(new SyndrooAbortError("Waiting was aborted. Nothing was created or cancelled; the post continues on the server.", { cause: signal?.reason }));
|
|
345
|
-
};
|
|
346
|
-
function finish() {
|
|
347
|
-
clearTimeout(handle);
|
|
348
|
-
signal?.removeEventListener("abort", onAbort);
|
|
349
|
-
}
|
|
350
|
-
unrefTimer(handle);
|
|
351
|
-
signal?.addEventListener("abort", onAbort, { once: true });
|
|
352
|
-
});
|
|
146
|
+
function isExecutionResult(result) {
|
|
147
|
+
return result.phase === "execution";
|
|
353
148
|
}
|
|
354
149
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|