@ontemper/sdk 0.1.0-rc.1 → 0.2.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 +92 -22
- package/dist/AxiosError.d.ts +46 -0
- package/dist/AxiosError.d.ts.map +1 -0
- package/dist/AxiosError.js +118 -0
- package/dist/AxiosError.js.map +1 -0
- package/dist/Contract/Invocation.d.ts +21 -0
- package/dist/Contract/Invocation.d.ts.map +1 -0
- package/dist/Contract/Invocation.js +2 -0
- package/dist/Contract/Invocation.js.map +1 -0
- package/dist/Contract/Manifest.d.ts +125 -0
- package/dist/Contract/Manifest.d.ts.map +1 -0
- package/dist/Contract/Manifest.js +59 -0
- package/dist/Contract/Manifest.js.map +1 -0
- package/dist/Contract/RuntimeApi.d.ts +143 -0
- package/dist/Contract/RuntimeApi.d.ts.map +1 -0
- package/dist/Contract/RuntimeApi.js +148 -0
- package/dist/Contract/RuntimeApi.js.map +1 -0
- package/dist/Contract/index.d.ts +4 -0
- package/dist/Contract/index.d.ts.map +1 -0
- package/dist/Contract/index.js +3 -0
- package/dist/Contract/index.js.map +1 -0
- package/dist/Correlation.d.ts +33 -0
- package/dist/Correlation.d.ts.map +1 -0
- package/dist/Correlation.js +57 -0
- package/dist/Correlation.js.map +1 -0
- package/dist/HttpApiResource.d.ts +32 -0
- package/dist/HttpApiResource.d.ts.map +1 -0
- package/dist/HttpApiResource.js +35 -0
- package/dist/HttpApiResource.js.map +1 -0
- package/dist/HttpClient.d.ts +10 -0
- package/dist/HttpClient.d.ts.map +1 -0
- package/dist/HttpClient.js +167 -0
- package/dist/HttpClient.js.map +1 -0
- package/dist/HttpPayload.d.ts +9 -0
- package/dist/HttpPayload.d.ts.map +1 -0
- package/dist/HttpPayload.js +32 -0
- package/dist/HttpPayload.js.map +1 -0
- package/dist/Invocation.d.ts +1 -20
- package/dist/Invocation.d.ts.map +1 -1
- package/dist/Invocation.js.map +1 -1
- package/dist/LogContext.d.ts +59 -0
- package/dist/LogContext.d.ts.map +1 -0
- package/dist/LogContext.js +47 -0
- package/dist/LogContext.js.map +1 -0
- package/dist/Logger.d.ts +3 -3
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +305 -37
- package/dist/Logger.js.map +1 -1
- package/dist/Manifest.d.ts +4 -16
- package/dist/Manifest.d.ts.map +1 -1
- package/dist/Manifest.js +65 -4
- package/dist/Manifest.js.map +1 -1
- package/dist/Middleware.d.ts +5 -2
- package/dist/Middleware.d.ts.map +1 -1
- package/dist/Middleware.js +278 -27
- package/dist/Middleware.js.map +1 -1
- package/dist/Redaction.d.ts +27 -0
- package/dist/Redaction.d.ts.map +1 -0
- package/dist/Redaction.js +149 -0
- package/dist/Redaction.js.map +1 -0
- package/dist/Resource.d.ts +66 -0
- package/dist/Resource.d.ts.map +1 -0
- package/dist/Resource.js +57 -0
- package/dist/Resource.js.map +1 -0
- package/dist/ResourcesErrors.d.ts +36 -0
- package/dist/ResourcesErrors.d.ts.map +1 -0
- package/dist/ResourcesErrors.js +27 -0
- package/dist/ResourcesErrors.js.map +1 -0
- package/dist/ResourcesToken.d.ts +10 -0
- package/dist/ResourcesToken.d.ts.map +1 -0
- package/dist/ResourcesToken.js +63 -0
- package/dist/ResourcesToken.js.map +1 -0
- package/dist/RuntimeResources.d.ts +26 -0
- package/dist/RuntimeResources.d.ts.map +1 -0
- package/dist/RuntimeResources.js +115 -0
- package/dist/RuntimeResources.js.map +1 -0
- package/dist/Trigger.d.ts +1 -26
- package/dist/Trigger.d.ts.map +1 -1
- package/dist/Trigger.js +1 -24
- package/dist/Trigger.js.map +1 -1
- package/dist/Workflow.d.ts +26 -9
- package/dist/Workflow.d.ts.map +1 -1
- package/dist/Workflow.js +48 -12
- package/dist/Workflow.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +193 -41
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +15 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/testing.d.ts +34 -2
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +35 -0
- package/dist/testing.js.map +1 -1
- package/package.json +6 -2
package/dist/Workflow.js
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
|
-
import { Context, FileSystem, Layer, Path
|
|
1
|
+
import { Clock, ConfigProvider, Context, FileSystem, Layer, Path } from 'effect';
|
|
2
2
|
import { Etag, HttpPlatform, HttpRouter, HttpServer, HttpServerResponse } from 'effect/unstable/http';
|
|
3
|
-
import { HttpApiBuilder } from 'effect/unstable/httpapi';
|
|
3
|
+
import { HttpApi, HttpApiBuilder } from 'effect/unstable/httpapi';
|
|
4
|
+
import { httpClientLayer } from './HttpClient.js';
|
|
4
5
|
import { Invocation } from './Invocation.js';
|
|
5
|
-
import {
|
|
6
|
-
import { makeManifest } from './Manifest.js';
|
|
7
|
-
import {
|
|
6
|
+
import { loggerLayer, writeStdoutLine } from './Logger.js';
|
|
7
|
+
import { HEALTHCHECK_PATH, makeManifest } from './Manifest.js';
|
|
8
|
+
import { EventRequestMiddleware, UnmatchedRequestMiddleware } from './Middleware.js';
|
|
9
|
+
import { makeSecretMasks, SecretMasks } from './Redaction.js';
|
|
10
|
+
import { declarationLayer, declarationOf } from './Resource.js';
|
|
11
|
+
import { RuntimeResources } from './RuntimeResources.js';
|
|
8
12
|
/**
|
|
9
13
|
* Kubernetes probes every workflow pod on `GET /healthcheck` (startup, liveness, readiness). The
|
|
10
14
|
* runtime owns that route so a migrated workflow cannot crash-loop by omitting it. It is composed
|
|
11
15
|
* onto the router ahead of the user API, so it is served regardless of the user's `Api` and never
|
|
12
|
-
* appears in the manifest.
|
|
16
|
+
* appears in the manifest, which rejects an API declaring it. Like legacy, it runs outside any
|
|
17
|
+
* request trace and logs nothing.
|
|
13
18
|
*/
|
|
14
|
-
const PlatformRoutes = HttpRouter.add('GET',
|
|
19
|
+
const PlatformRoutes = HttpRouter.add('GET', HEALTHCHECK_PATH, HttpServerResponse.jsonUnsafe({ status: 'ok' }));
|
|
15
20
|
const InMemoryHttpPlatform = Layer.mergeAll(HttpPlatform.layer.pipe(Layer.provide(FileSystem.layerNoop({}))), FileSystem.layerNoop({}), Path.layer, Etag.layerWeak);
|
|
21
|
+
/**
|
|
22
|
+
* Standard Effect services the workflow depends on: `Effect.log*` as legacy JSON lines, `Config`
|
|
23
|
+
* over the environment, and the platform `HttpClient`. One secret registry lives per module.
|
|
24
|
+
*/
|
|
25
|
+
const platformLayer = (platform) => Layer.mergeAll(loggerLayer(platform.writeLog ?? writeStdoutLine), httpClientLayer(platform.outboundFetch ?? ((url, init) => globalThis.fetch(url, init)))).pipe(Layer.provideMerge(Layer.mergeAll(
|
|
26
|
+
// Legacy `process.env.X ?? fallback` treated an empty variable as set.
|
|
27
|
+
ConfigProvider.layer(platform.configProvider ?? ConfigProvider.fromEnvRecord(process.env, { preserveEmptyStrings: true })), Layer.succeed(SecretMasks, makeSecretMasks()), platform.clock === undefined ? Layer.empty : Layer.succeed(Clock.Clock, platform.clock))));
|
|
16
28
|
/** Platform run metadata travels in `context`; the header copies are removed so handlers cannot drift onto them. */
|
|
17
29
|
const stripPlatformHeaders = (request) => {
|
|
18
30
|
const names = [];
|
|
@@ -23,22 +35,46 @@ const stripPlatformHeaders = (request) => {
|
|
|
23
35
|
for (const name of names)
|
|
24
36
|
request.headers.delete(name);
|
|
25
37
|
};
|
|
38
|
+
/** One middleware layer per resource, variable, and resource type the API's endpoints declare. */
|
|
39
|
+
const declarationsOf = (api, platform) => {
|
|
40
|
+
const layers = new Map();
|
|
41
|
+
HttpApi.reflect(api, {
|
|
42
|
+
onGroup() { },
|
|
43
|
+
onEndpoint({ middleware }) {
|
|
44
|
+
for (const key of middleware) {
|
|
45
|
+
const runtime = declarationOf(key);
|
|
46
|
+
if (runtime !== undefined && !layers.has(key.key))
|
|
47
|
+
layers.set(key.key, declarationLayer(key, runtime));
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
return Layer.mergeAll(Layer.empty, ...layers.values()).pipe(Layer.provide(platform.resources === undefined ? RuntimeResources.layer : Layer.succeed(RuntimeResources, platform.resources)));
|
|
52
|
+
};
|
|
26
53
|
export const workflow = (options) => {
|
|
27
54
|
const manifest = makeManifest(options.api);
|
|
28
|
-
const
|
|
29
|
-
const
|
|
55
|
+
const handlers = options.handlers.pipe(Layer.provide(declarationsOf(options.api, options)));
|
|
56
|
+
const appLayer = Layer.mergeAll(PlatformRoutes, HttpApiBuilder.layer(options.api).pipe(Layer.provide(handlers), Layer.provide(EventRequestMiddleware)), UnmatchedRequestMiddleware).pipe(Layer.provide(HttpServer.layerServices), Layer.provide(InMemoryHttpPlatform), Layer.provideMerge(platformLayer(options)));
|
|
57
|
+
// Legacy Hono routing: exact case, no trailing- or duplicate-slash folding, unbounded parameters.
|
|
58
|
+
const web = HttpRouter.toWebHandler(appLayer, {
|
|
59
|
+
disableLogger: true,
|
|
60
|
+
routerConfig: {
|
|
61
|
+
caseSensitive: true,
|
|
62
|
+
ignoreTrailingSlash: false,
|
|
63
|
+
ignoreDuplicateSlashes: false,
|
|
64
|
+
maxParamLength: Number.POSITIVE_INFINITY,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
30
67
|
// SAFETY: WorkflowOptions accepts a complete handler layer whose only request service is Invocation.
|
|
31
68
|
const handler = web.handler;
|
|
32
|
-
const loggers = makeWorkflowLoggers(options.writeLog ?? writeStdoutLine);
|
|
33
69
|
return Object.freeze({
|
|
34
70
|
api: options.api,
|
|
35
71
|
manifest,
|
|
36
72
|
fetch: (request, invocation) => {
|
|
37
73
|
stripPlatformHeaders(request);
|
|
38
|
-
|
|
39
|
-
return handler(request, Context.make(Invocation, invocation).pipe(Context.add(References.CurrentLoggers, loggers)));
|
|
74
|
+
return handler(request, Context.make(Invocation, invocation));
|
|
40
75
|
},
|
|
41
76
|
dispose: web.dispose,
|
|
77
|
+
withPlatform: (platform) => workflow({ ...options, ...platform }),
|
|
42
78
|
});
|
|
43
79
|
};
|
|
44
80
|
//# sourceMappingURL=Workflow.js.map
|
package/dist/Workflow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workflow.js","sourceRoot":"","sources":["../src/Workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"Workflow.js","sourceRoot":"","sources":["../src/Workflow.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAgeA,eAAO,MAAM,MAAM,eAAsB,aAAa,CAAC,MAAM,CAAC,KAAG,OAAO,CAAC,IAAI,CAK5E,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,7 @@ import { mkdtemp, rm } from 'node:fs/promises';
|
|
|
5
5
|
import { createServer } from 'node:http';
|
|
6
6
|
import { tmpdir } from 'node:os';
|
|
7
7
|
import { dirname, join, resolve } from 'node:path';
|
|
8
|
+
import { finished } from 'node:stream';
|
|
8
9
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
9
10
|
const usage = `Usage:
|
|
10
11
|
temper-workflow dev --entrypoint <file> [--host 127.0.0.1] [--port 3051]
|
|
@@ -117,6 +118,26 @@ const loadBuiltWorkflow = async (entrypoint) => {
|
|
|
117
118
|
};
|
|
118
119
|
/** Mirrors the Firecracker guest's 115 s request deadline so local runs surface the same interruption. */
|
|
119
120
|
const LOCAL_DEADLINE_MS = 115_000;
|
|
121
|
+
/**
|
|
122
|
+
* The platform sends SIGTERM after a 20 s preStop drain and SIGKILL 40 s later
|
|
123
|
+
* (packages/infrastructure/k8s-workflow/defaults.ts). Requests still being handled get the grace and
|
|
124
|
+
* are then interrupted; whatever still runs at the deadline, module disposal included, ends with the
|
|
125
|
+
* process. Tests shorten both through the environment.
|
|
126
|
+
*/
|
|
127
|
+
const SHUTDOWN_GRACE_MS = 30_000;
|
|
128
|
+
const SHUTDOWN_DEADLINE_MS = 35_000;
|
|
129
|
+
/** A whole number of milliseconds from the environment, else `fallback`. */
|
|
130
|
+
const millisecondsFromEnvironment = (name, fallback) => {
|
|
131
|
+
const text = process.env[name];
|
|
132
|
+
if (text === undefined)
|
|
133
|
+
return fallback;
|
|
134
|
+
if (!/^\d+$/.test(text))
|
|
135
|
+
fail(`${name} must be a whole number of milliseconds.`);
|
|
136
|
+
return Number(text);
|
|
137
|
+
};
|
|
138
|
+
/** The legacy host (@hono/node-server) discarded unread request bytes this long, and at most this many, after a response. */
|
|
139
|
+
const DRAIN_TIMEOUT_MS = 500;
|
|
140
|
+
const MAX_DRAIN_BYTES = 64 * 1024 * 1024;
|
|
120
141
|
const invocationFor = (module, triggerKind) => ({
|
|
121
142
|
workflowId: module.manifest.apiId,
|
|
122
143
|
deploymentId: 'local',
|
|
@@ -127,35 +148,97 @@ const invocationFor = (module, triggerKind) => ({
|
|
|
127
148
|
deadline: Date.now() + LOCAL_DEADLINE_MS,
|
|
128
149
|
token: '',
|
|
129
150
|
});
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
151
|
+
/**
|
|
152
|
+
* The request body, read from the socket only as the workflow reads it, so the module's 100 MiB
|
|
153
|
+
* ceiling and invocation deadline govern the read, as they did behind the legacy host. Cancelling it
|
|
154
|
+
* stops the reads but keeps the socket, which still carries the response.
|
|
155
|
+
*/
|
|
156
|
+
const requestBody = (incoming) => {
|
|
157
|
+
let detach = () => undefined;
|
|
158
|
+
return new ReadableStream({
|
|
159
|
+
start(controller) {
|
|
160
|
+
const onData = (chunk) => {
|
|
161
|
+
incoming.pause();
|
|
162
|
+
controller.enqueue(chunk);
|
|
163
|
+
};
|
|
164
|
+
incoming.pause();
|
|
165
|
+
incoming.on('data', onData);
|
|
166
|
+
const stopWatching = finished(incoming, (error) => {
|
|
167
|
+
detach();
|
|
168
|
+
if (error === undefined || error === null)
|
|
169
|
+
controller.close();
|
|
170
|
+
else
|
|
171
|
+
controller.error(error);
|
|
172
|
+
});
|
|
173
|
+
detach = () => {
|
|
174
|
+
incoming.off('data', onData);
|
|
175
|
+
stopWatching();
|
|
176
|
+
};
|
|
177
|
+
},
|
|
178
|
+
pull() {
|
|
179
|
+
incoming.resume();
|
|
180
|
+
},
|
|
181
|
+
cancel() {
|
|
182
|
+
detach();
|
|
183
|
+
},
|
|
184
|
+
}, { highWaterMark: 0 });
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* After a response, request bytes nobody read are discarded briefly and the socket then closes, so a
|
|
188
|
+
* client still sending (e.g. after a 413) can read the answer: the legacy host's drain.
|
|
189
|
+
*/
|
|
190
|
+
const drainIncoming = (incoming) => {
|
|
191
|
+
if (incoming.readableEnded || incoming.destroyed)
|
|
192
|
+
return;
|
|
193
|
+
let discarded = 0;
|
|
194
|
+
const onData = (chunk) => {
|
|
195
|
+
discarded += chunk.byteLength;
|
|
196
|
+
if (discarded > MAX_DRAIN_BYTES)
|
|
197
|
+
close();
|
|
198
|
+
};
|
|
199
|
+
const release = () => {
|
|
200
|
+
clearTimeout(timer);
|
|
201
|
+
incoming.off('data', onData);
|
|
202
|
+
};
|
|
203
|
+
const close = () => {
|
|
204
|
+
release();
|
|
205
|
+
incoming.socket.destroySoon();
|
|
206
|
+
};
|
|
207
|
+
const timer = setTimeout(close, DRAIN_TIMEOUT_MS);
|
|
208
|
+
timer.unref();
|
|
209
|
+
// The body stream's own listener would pause the socket again.
|
|
210
|
+
incoming.removeAllListeners('data');
|
|
211
|
+
incoming.on('data', onData);
|
|
212
|
+
incoming.once('end', release);
|
|
213
|
+
incoming.once('error', release);
|
|
214
|
+
incoming.resume();
|
|
144
215
|
};
|
|
145
|
-
const toWebRequest =
|
|
216
|
+
const toWebRequest = (incoming, host, signal) => {
|
|
146
217
|
const headers = new Headers();
|
|
147
218
|
let index = 0;
|
|
148
|
-
while (index <
|
|
149
|
-
headers.append(
|
|
219
|
+
while (index < incoming.rawHeaders.length) {
|
|
220
|
+
headers.append(incoming.rawHeaders[index], incoming.rawHeaders[index + 1]);
|
|
150
221
|
index += 2;
|
|
151
222
|
}
|
|
152
|
-
|
|
153
|
-
method:
|
|
223
|
+
const init = {
|
|
224
|
+
method: incoming.method,
|
|
154
225
|
headers,
|
|
155
|
-
body:
|
|
156
|
-
|
|
226
|
+
body: incoming.method === 'GET' || incoming.method === 'HEAD' ? undefined : requestBody(incoming),
|
|
227
|
+
// A streamed body is sent half-duplex.
|
|
228
|
+
duplex: 'half',
|
|
229
|
+
signal,
|
|
230
|
+
};
|
|
231
|
+
return new Request(`http://${incoming.headers.host ?? host}${incoming.url ?? '/'}`, init);
|
|
157
232
|
};
|
|
158
|
-
|
|
233
|
+
/**
|
|
234
|
+
* Writes the response until it ends or `signal` aborts. A response nobody will read is cancelled
|
|
235
|
+
* unread, and one cut short ends with its connection, so it cannot look complete.
|
|
236
|
+
*/
|
|
237
|
+
const sendWebResponse = async (response, outgoing, signal) => {
|
|
238
|
+
if (signal.aborted) {
|
|
239
|
+
await response.body?.cancel();
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
159
242
|
for (const [name, value] of response.headers) {
|
|
160
243
|
if (name !== 'set-cookie')
|
|
161
244
|
outgoing.setHeader(name, value);
|
|
@@ -170,6 +253,13 @@ const sendWebResponse = async (response, outgoing) => {
|
|
|
170
253
|
return;
|
|
171
254
|
}
|
|
172
255
|
const reader = response.body.getReader();
|
|
256
|
+
// Cancelling ends a pending read and releases the body's source; the abort also ends a drain wait.
|
|
257
|
+
const aborted = Promise.withResolvers();
|
|
258
|
+
const onAbort = () => {
|
|
259
|
+
aborted.resolve(undefined);
|
|
260
|
+
reader.cancel().catch(() => undefined);
|
|
261
|
+
};
|
|
262
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
173
263
|
try {
|
|
174
264
|
while (true) {
|
|
175
265
|
const item = await reader.read();
|
|
@@ -177,17 +267,52 @@ const sendWebResponse = async (response, outgoing) => {
|
|
|
177
267
|
break;
|
|
178
268
|
if (!outgoing.write(item.value)) {
|
|
179
269
|
const drained = Promise.withResolvers();
|
|
180
|
-
|
|
181
|
-
|
|
270
|
+
const onDrain = () => drained.resolve(undefined);
|
|
271
|
+
outgoing.once('drain', onDrain);
|
|
272
|
+
await Promise.race([drained.promise, aborted.promise]);
|
|
273
|
+
outgoing.off('drain', onDrain);
|
|
182
274
|
}
|
|
183
275
|
}
|
|
184
276
|
}
|
|
185
277
|
finally {
|
|
278
|
+
signal.removeEventListener('abort', onAbort);
|
|
186
279
|
reader.releaseLock();
|
|
187
280
|
}
|
|
188
|
-
|
|
281
|
+
if (signal.aborted)
|
|
282
|
+
outgoing.destroy();
|
|
283
|
+
else
|
|
284
|
+
outgoing.end();
|
|
285
|
+
};
|
|
286
|
+
/** Waits until every promise settles or `milliseconds` pass. */
|
|
287
|
+
const settleWithin = async (pending, milliseconds) => {
|
|
288
|
+
const elapsed = Promise.withResolvers();
|
|
289
|
+
const timer = setTimeout(() => elapsed.resolve(undefined), milliseconds);
|
|
290
|
+
await Promise.race([Promise.allSettled(pending), elapsed.promise]);
|
|
291
|
+
clearTimeout(timer);
|
|
292
|
+
};
|
|
293
|
+
/**
|
|
294
|
+
* Stops accepting connections and stops responses already streaming: after the platform's drain
|
|
295
|
+
* window they are long-lived streams that would hold the process open. Requests still being handled
|
|
296
|
+
* get `grace`; then their handlers are interrupted and their connections closed.
|
|
297
|
+
*/
|
|
298
|
+
const closeServer = async (server, requests, responding, grace) => {
|
|
299
|
+
const closed = Promise.withResolvers();
|
|
300
|
+
server.close((error) => (error === undefined ? closed.resolve(undefined) : closed.reject(error)));
|
|
301
|
+
for (const exchange of responding)
|
|
302
|
+
exchange.response.abort();
|
|
303
|
+
await settleWithin(requests.values(), grace);
|
|
304
|
+
for (const exchange of requests.keys()) {
|
|
305
|
+
exchange.handler.abort();
|
|
306
|
+
exchange.response.abort();
|
|
307
|
+
}
|
|
308
|
+
// The shutdown deadline bounds this wait, like everything after the signal.
|
|
309
|
+
await Promise.allSettled(requests.values());
|
|
310
|
+
server.closeAllConnections();
|
|
311
|
+
await closed.promise;
|
|
189
312
|
};
|
|
190
313
|
const runServer = async (options, loader, reload) => {
|
|
314
|
+
const shutdownGrace = millisecondsFromEnvironment('TEMPER_WORKFLOW_SHUTDOWN_GRACE_MS', SHUTDOWN_GRACE_MS);
|
|
315
|
+
const shutdownDeadline = millisecondsFromEnvironment('TEMPER_WORKFLOW_SHUTDOWN_DEADLINE_MS', SHUTDOWN_DEADLINE_MS);
|
|
191
316
|
let current = await loader(options.entrypoint);
|
|
192
317
|
let reloadTimer;
|
|
193
318
|
let stopping = false;
|
|
@@ -214,18 +339,39 @@ const runServer = async (options, loader, reload) => {
|
|
|
214
339
|
}, 40);
|
|
215
340
|
})
|
|
216
341
|
: undefined;
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
342
|
+
const requests = new Map();
|
|
343
|
+
const responding = new Set();
|
|
344
|
+
const server = createServer((incoming, outgoing) => {
|
|
345
|
+
const exchange = { handler: new AbortController(), response: new AbortController() };
|
|
346
|
+
// A client that leaves early stops only its response. As behind the legacy host, the handler runs
|
|
347
|
+
// to completion, since an interrupted handler could stop between two side effects.
|
|
348
|
+
outgoing.once('close', () => {
|
|
349
|
+
if (!outgoing.writableFinished)
|
|
350
|
+
exchange.response.abort();
|
|
351
|
+
});
|
|
352
|
+
outgoing.once('finish', () => drainIncoming(incoming));
|
|
353
|
+
const module = current.module;
|
|
354
|
+
const served = (async () => {
|
|
355
|
+
// The deadline starts at arrival and the body streams in, so both bound the body read.
|
|
356
|
+
const response = await module.fetch(toWebRequest(incoming, options.host, exchange.handler.signal), invocationFor(module, 'http'));
|
|
357
|
+
responding.add(exchange);
|
|
358
|
+
await sendWebResponse(response, outgoing, exchange.response.signal);
|
|
359
|
+
})()
|
|
224
360
|
.catch((error) => {
|
|
225
|
-
response.statusCode = 500;
|
|
226
|
-
response.end('Workflow request failed.');
|
|
227
361
|
process.stderr.write(`${String(error)}\n`);
|
|
362
|
+
// A response already under way cannot become an error response.
|
|
363
|
+
if (responding.has(exchange))
|
|
364
|
+
outgoing.destroy();
|
|
365
|
+
else if (!outgoing.destroyed) {
|
|
366
|
+
outgoing.statusCode = 500;
|
|
367
|
+
outgoing.end('Workflow request failed.');
|
|
368
|
+
}
|
|
369
|
+
})
|
|
370
|
+
.finally(() => {
|
|
371
|
+
requests.delete(exchange);
|
|
372
|
+
responding.delete(exchange);
|
|
228
373
|
});
|
|
374
|
+
requests.set(exchange, served);
|
|
229
375
|
});
|
|
230
376
|
const listening = Promise.withResolvers();
|
|
231
377
|
server.once('error', listening.reject);
|
|
@@ -242,17 +388,20 @@ const runServer = async (options, loader, reload) => {
|
|
|
242
388
|
process.once('SIGINT', () => shutdown.resolve(undefined));
|
|
243
389
|
process.once('SIGTERM', () => shutdown.resolve(undefined));
|
|
244
390
|
await shutdown.promise;
|
|
391
|
+
// One deadline bounds the whole shutdown, reload work and disposal included. It never holds the
|
|
392
|
+
// process open itself, but ends it even while a finalizer's timer or socket still would.
|
|
393
|
+
setTimeout(() => {
|
|
394
|
+
process.stderr.write(`Workflow shutdown passed its ${shutdownDeadline} ms deadline; exiting.\n`);
|
|
395
|
+
process.exit(1);
|
|
396
|
+
}, shutdownDeadline).unref();
|
|
245
397
|
}
|
|
246
398
|
finally {
|
|
247
399
|
stopping = true;
|
|
248
400
|
watcher?.close();
|
|
249
401
|
clearTimeout(reloadTimer);
|
|
250
402
|
await reloadWork;
|
|
251
|
-
if (server.listening)
|
|
252
|
-
|
|
253
|
-
server.close((error) => (error === undefined ? closed.resolve(undefined) : closed.reject(error)));
|
|
254
|
-
await closed.promise;
|
|
255
|
-
}
|
|
403
|
+
if (server.listening)
|
|
404
|
+
await closeServer(server, requests, responding, shutdownGrace);
|
|
256
405
|
await current.dispose();
|
|
257
406
|
}
|
|
258
407
|
};
|
|
@@ -260,20 +409,23 @@ const runDev = (options) => runServer(options, loadWorkflow, true);
|
|
|
260
409
|
const runServe = (options) => runServer(options, loadBuiltWorkflow, false);
|
|
261
410
|
const runInvoke = async (options) => {
|
|
262
411
|
const loaded = await loadWorkflow(options.entrypoint);
|
|
412
|
+
// stdout carries only the response body; log lines go to stderr.
|
|
413
|
+
const module = loaded.module.withPlatform({ writeLog: (line) => process.stderr.write(`${line}\n`) });
|
|
263
414
|
try {
|
|
264
415
|
const headers = new Headers();
|
|
265
416
|
if (options.body !== undefined)
|
|
266
417
|
headers.set('content-type', 'application/json');
|
|
267
|
-
const response = await
|
|
418
|
+
const response = await module.fetch(new Request(`http://127.0.0.1${options.path}`, {
|
|
268
419
|
method: options.method,
|
|
269
420
|
headers,
|
|
270
421
|
body: options.method === 'GET' || options.method === 'HEAD' ? undefined : options.body,
|
|
271
|
-
}), invocationFor(
|
|
422
|
+
}), invocationFor(module, 'manual'));
|
|
272
423
|
process.stdout.write(new Uint8Array(await response.arrayBuffer()));
|
|
273
424
|
if (!response.ok)
|
|
274
425
|
process.exitCode = 1;
|
|
275
426
|
}
|
|
276
427
|
finally {
|
|
428
|
+
await module.dispose();
|
|
277
429
|
await loaded.dispose();
|
|
278
430
|
}
|
|
279
431
|
};
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { AxiosError, LegacyAxiosErrorFormat, toAxiosError, toAxiosErrorJson } from './AxiosError.js';
|
|
2
|
+
export { type ChildRequest, childMessageId, type Correlation, currentCorrelation, withCorrelation, withFreshTrace, } from './Correlation.js';
|
|
3
|
+
export { type OutboundFetch } from './HttpClient.js';
|
|
4
|
+
export type { InvocationContext, InvocationTriggerKind } from './Contract/Invocation.js';
|
|
5
|
+
export { ManifestResource, ResponsePolicy, TriggerKind, TriggerMetadata, WorkflowManifest, WorkflowManifestEndpoint, } from './Contract/Manifest.js';
|
|
6
|
+
export { HttpApiResource } from './HttpApiResource.js';
|
|
7
|
+
export { Invocation } from './Invocation.js';
|
|
8
|
+
export { type SpanLinesOptions, type SpanOutcome, withSpanLines } from './LogContext.js';
|
|
2
9
|
export { type DeadlineExceededBody } from './Middleware.js';
|
|
3
|
-
export { makeManifest, RUNTIME_API_VERSION, SDK_VERSION
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
10
|
+
export { makeManifest, RUNTIME_API_VERSION, SDK_VERSION } from './Manifest.js';
|
|
11
|
+
export { registerSecrets } from './Redaction.js';
|
|
12
|
+
export { type AnyDeclaration, type Declaration, Resource, type ResourceSelection, ResourceType, Variable, } from './Resource.js';
|
|
13
|
+
export { type ResourceReader } from './RuntimeResources.js';
|
|
14
|
+
export { InvalidResourceError, ResourceNotFoundError, ResourceNotSelectableError, ResourcesUnauthorizedError, ResourcesUnavailableError, } from './ResourcesErrors.js';
|
|
15
|
+
export { Trigger } from './Trigger.js';
|
|
16
|
+
export { workflow, type WorkflowModule, type WorkflowOptions, type WorkflowPlatform } from './Workflow.js';
|
|
6
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrG,OAAO,EACL,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,WAAW,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACzF,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,QAAQ,EACR,KAAK,iBAAiB,EACtB,YAAY,EACZ,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
export { AxiosError, LegacyAxiosErrorFormat, toAxiosError, toAxiosErrorJson } from './AxiosError.js';
|
|
2
|
+
export { childMessageId, currentCorrelation, withCorrelation, withFreshTrace, } from './Correlation.js';
|
|
3
|
+
export {} from './HttpClient.js';
|
|
4
|
+
export { ManifestResource, ResponsePolicy, TriggerKind, TriggerMetadata, WorkflowManifest, WorkflowManifestEndpoint, } from './Contract/Manifest.js';
|
|
5
|
+
export { HttpApiResource } from './HttpApiResource.js';
|
|
1
6
|
export { Invocation } from './Invocation.js';
|
|
7
|
+
export { withSpanLines } from './LogContext.js';
|
|
2
8
|
export {} from './Middleware.js';
|
|
3
|
-
export { makeManifest, RUNTIME_API_VERSION, SDK_VERSION
|
|
4
|
-
export {
|
|
9
|
+
export { makeManifest, RUNTIME_API_VERSION, SDK_VERSION } from './Manifest.js';
|
|
10
|
+
export { registerSecrets } from './Redaction.js';
|
|
11
|
+
export { Resource, ResourceType, Variable, } from './Resource.js';
|
|
12
|
+
export {} from './RuntimeResources.js';
|
|
13
|
+
export { InvalidResourceError, ResourceNotFoundError, ResourceNotSelectableError, ResourcesUnauthorizedError, ResourcesUnavailableError, } from './ResourcesErrors.js';
|
|
14
|
+
export { Trigger } from './Trigger.js';
|
|
5
15
|
export { workflow } from './Workflow.js';
|
|
6
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAEL,cAAc,EAEd,kBAAkB,EAClB,eAAe,EACf,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAsB,MAAM,iBAAiB,CAAC;AAErD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAA2C,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAA6B,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAGL,QAAQ,EAER,YAAY,EACZ,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAuB,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAoE,MAAM,eAAe,CAAC"}
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
1
|
+
import { type Clock, type Schema } from 'effect';
|
|
2
|
+
import type { InvocationContext } from './Contract/Invocation.js';
|
|
3
|
+
import type { OutboundFetch } from './HttpClient.js';
|
|
4
|
+
import type { WorkflowModule, WorkflowPlatform } from './Workflow.js';
|
|
3
5
|
export interface InvokeOptions {
|
|
4
6
|
readonly request: Request;
|
|
5
7
|
readonly context: InvocationContext;
|
|
@@ -7,4 +9,34 @@ export interface InvokeOptions {
|
|
|
7
9
|
/** A complete invocation for tests. Override only the fields the test observes. */
|
|
8
10
|
export declare const testInvocation: (overrides?: Partial<InvocationContext>) => InvocationContext;
|
|
9
11
|
export declare const invoke: (module: WorkflowModule, options: InvokeOptions) => Promise<Response>;
|
|
12
|
+
/** What declared resources, variables, and resource types read in a test instead of the runtime API. */
|
|
13
|
+
export interface TestResources {
|
|
14
|
+
/** Resource key → its resolved value, secrets filled in, as the runtime API answers it. */
|
|
15
|
+
readonly values?: Readonly<Record<string, Schema.Json>>;
|
|
16
|
+
/** Variable key → its value. */
|
|
17
|
+
readonly variables?: Readonly<Record<string, string>>;
|
|
18
|
+
/** The key of the record a selection finds; `undefined` when no record matches. */
|
|
19
|
+
readonly select?: (resourceTypeKey: string, match: Readonly<Record<string, string>>) => string | undefined;
|
|
20
|
+
}
|
|
21
|
+
export interface TestPlatformOptions {
|
|
22
|
+
/** Values every `Config` read sees; the real environment is never read. */
|
|
23
|
+
readonly config?: Readonly<Record<string, string>>;
|
|
24
|
+
/** Answers the workflow's outbound requests; without it every outbound request fails. */
|
|
25
|
+
readonly fetch?: OutboundFetch;
|
|
26
|
+
/** Drives the invocation deadline, for example a `TestClock`. */
|
|
27
|
+
readonly clock?: Clock.Clock;
|
|
28
|
+
/**
|
|
29
|
+
* Answers declared resources; a read of anything absent fails with `ResourceNotFoundError`. Without it,
|
|
30
|
+
* declared resources read through the runtime API at `UNNBOUND_API_URL`, answered by `fetch`.
|
|
31
|
+
*/
|
|
32
|
+
readonly resources?: TestResources;
|
|
33
|
+
}
|
|
34
|
+
export interface TestPlatform {
|
|
35
|
+
/** Pass to `module.withPlatform(platform)`. */
|
|
36
|
+
readonly platform: WorkflowPlatform;
|
|
37
|
+
/** Every JSON log line the workflow wrote, in order. */
|
|
38
|
+
readonly logs: Array<string>;
|
|
39
|
+
}
|
|
40
|
+
/** Platform services isolated from the process: no environment, network, or stdout. */
|
|
41
|
+
export declare const testPlatform: (options?: TestPlatformOptions) => TestPlatform;
|
|
10
42
|
//# sourceMappingURL=testing.d.ts.map
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAoC,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;CACrC;AAED,mFAAmF;AACnF,eAAO,MAAM,cAAc,eAAe,OAAO,CAAC,iBAAiB,CAAC,KAAQ,iBAU1E,CAAC;AAEH,eAAO,MAAM,MAAM,WAAY,cAAc,WAAW,aAAa,KAAG,OAAO,CAAC,QAAQ,CACxC,CAAC;AAEjD,wGAAwG;AACxG,MAAM,WAAW,aAAa;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,gCAAgC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;CAC5G;AAED,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,yFAAyF;IACzF,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAC9B;AAuBD,uFAAuF;AACvF,eAAO,MAAM,YAAY,aAAa,mBAAmB,KAAQ,YAehE,CAAC"}
|