@restatedev/restate-sdk 1.10.3 → 1.11.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/dist/_virtual/rolldown_runtime.js +13 -0
- package/dist/common_api.cjs +1 -0
- package/dist/common_api.d.cts +1 -0
- package/dist/common_api.d.cts.map +1 -1
- package/dist/common_api.d.ts +1 -0
- package/dist/common_api.d.ts.map +1 -1
- package/dist/common_api.js +1 -0
- package/dist/common_api.js.map +1 -1
- package/dist/context_impl.cjs +20 -6
- package/dist/context_impl.d.ts +7 -5
- package/dist/context_impl.d.ts.map +1 -1
- package/dist/context_impl.js +20 -6
- package/dist/context_impl.js.map +1 -1
- package/dist/endpoint/endpoint.cjs +2 -2
- package/dist/endpoint/endpoint.js +2 -2
- package/dist/endpoint/fetch_endpoint.cjs +2 -2
- package/dist/endpoint/fetch_endpoint.js +2 -2
- package/dist/endpoint/fetch_endpoint.js.map +1 -1
- package/dist/endpoint/handlers/core_logging.cjs +52 -0
- package/dist/endpoint/handlers/core_logging.d.ts +10 -0
- package/dist/endpoint/handlers/core_logging.d.ts.map +1 -0
- package/dist/endpoint/handlers/core_logging.js +51 -0
- package/dist/endpoint/handlers/core_logging.js.map +1 -0
- package/dist/endpoint/handlers/discovery.cjs +58 -0
- package/dist/endpoint/handlers/discovery.d.ts +5 -0
- package/dist/endpoint/handlers/discovery.d.ts.map +1 -0
- package/dist/endpoint/handlers/discovery.js +59 -0
- package/dist/endpoint/handlers/discovery.js.map +1 -0
- package/dist/endpoint/handlers/fetch.cjs +23 -11
- package/dist/endpoint/handlers/fetch.d.ts +2 -2
- package/dist/endpoint/handlers/fetch.d.ts.map +1 -1
- package/dist/endpoint/handlers/fetch.js +24 -11
- package/dist/endpoint/handlers/fetch.js.map +1 -1
- package/dist/endpoint/handlers/generic.cjs +167 -248
- package/dist/endpoint/handlers/generic.d.ts +2 -58
- package/dist/endpoint/handlers/generic.d.ts.map +1 -1
- package/dist/endpoint/handlers/generic.js +166 -244
- package/dist/endpoint/handlers/generic.js.map +1 -1
- package/dist/endpoint/handlers/lambda.cjs +64 -61
- package/dist/endpoint/handlers/lambda.d.ts +2 -2
- package/dist/endpoint/handlers/lambda.d.ts.map +1 -1
- package/dist/endpoint/handlers/lambda.js +64 -60
- package/dist/endpoint/handlers/lambda.js.map +1 -1
- package/dist/endpoint/handlers/types.d.ts +41 -0
- package/dist/endpoint/handlers/types.d.ts.map +1 -0
- package/dist/endpoint/handlers/types.js +2 -0
- package/dist/endpoint/handlers/types.js.map +1 -0
- package/dist/endpoint/handlers/utils.cjs +51 -0
- package/dist/endpoint/handlers/utils.d.ts +11 -0
- package/dist/endpoint/handlers/utils.d.ts.map +1 -0
- package/dist/endpoint/handlers/utils.js +48 -0
- package/dist/endpoint/handlers/utils.js.map +1 -0
- package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.cjs +283 -283
- package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +107 -107
- package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts.map +1 -1
- package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js +282 -282
- package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js.map +1 -1
- package/dist/endpoint/lambda_endpoint.cjs +2 -2
- package/dist/endpoint/lambda_endpoint.js +2 -2
- package/dist/endpoint/lambda_endpoint.js.map +1 -1
- package/dist/endpoint/node_endpoint.cjs +41 -41
- package/dist/endpoint/node_endpoint.d.ts +1 -1
- package/dist/endpoint/node_endpoint.d.ts.map +1 -1
- package/dist/endpoint/node_endpoint.js +41 -40
- package/dist/endpoint/node_endpoint.js.map +1 -1
- package/dist/fetch.cjs +7 -0
- package/dist/fetch.d.cts +2 -1
- package/dist/fetch.d.cts.map +1 -1
- package/dist/fetch.d.ts +2 -1
- package/dist/fetch.d.ts.map +1 -1
- package/dist/fetch.js +2 -1
- package/dist/fetch.js.map +1 -1
- package/dist/index.cjs +7 -0
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/internal.cjs +11 -0
- package/dist/internal.d.cts +27 -0
- package/dist/internal.d.cts.map +1 -0
- package/dist/internal.d.ts +27 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +6 -0
- package/dist/internal.js.map +1 -0
- package/dist/io.cjs +2 -2
- package/dist/io.d.ts +3 -3
- package/dist/io.d.ts.map +1 -1
- package/dist/io.js +2 -2
- package/dist/io.js.map +1 -1
- package/dist/lambda.cjs +7 -0
- package/dist/lambda.d.cts +2 -1
- package/dist/lambda.d.cts.map +1 -1
- package/dist/lambda.d.ts +2 -1
- package/dist/lambda.d.ts.map +1 -1
- package/dist/lambda.js +2 -1
- package/dist/lambda.js.map +1 -1
- package/dist/node.cjs +7 -0
- package/dist/node.d.cts +2 -1
- package/dist/node.d.cts.map +1 -1
- package/dist/node.d.ts +2 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +2 -1
- package/dist/node.js.map +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/dist/types/errors.cjs +2 -0
- package/dist/types/errors.d.cts +8 -0
- package/dist/types/errors.d.cts.map +1 -1
- package/dist/types/errors.d.ts +8 -0
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +2 -0
- package/dist/types/errors.js.map +1 -1
- package/package.json +2 -2
- package/dist/utils/streams.cjs +0 -14
- package/dist/utils/streams.d.ts +0 -3
- package/dist/utils/streams.d.ts.map +0 -1
- package/dist/utils/streams.js +0 -13
- package/dist/utils/streams.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_generic = require('./handlers/generic.cjs');
|
|
2
1
|
const require_endpoint = require('./endpoint.cjs');
|
|
2
|
+
const require_generic = require('./handlers/generic.cjs');
|
|
3
3
|
const require_lambda = require('./handlers/lambda.cjs');
|
|
4
4
|
|
|
5
5
|
//#region src/endpoint/lambda_endpoint.ts
|
|
@@ -27,7 +27,7 @@ var LambdaEndpointImpl = class {
|
|
|
27
27
|
}
|
|
28
28
|
handler() {
|
|
29
29
|
const compressionEnabled = require_lambda.isCompressionSupported();
|
|
30
|
-
const lambdaHandler = new require_lambda.LambdaHandler(
|
|
30
|
+
const lambdaHandler = new require_lambda.LambdaHandler(require_generic.createRestateHandler(this.builder.build(), "REQUEST_RESPONSE", compressionEnabled ? { lambdaCompression: "zstd" } : {}), compressionEnabled);
|
|
31
31
|
return lambdaHandler.handleRequest.bind(lambdaHandler);
|
|
32
32
|
}
|
|
33
33
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { GenericHandler } from "./handlers/generic.js";
|
|
2
1
|
import { EndpointBuilder } from "./endpoint.js";
|
|
2
|
+
import { createRestateHandler } from "./handlers/generic.js";
|
|
3
3
|
import { LambdaHandler, isCompressionSupported } from "./handlers/lambda.js";
|
|
4
4
|
|
|
5
5
|
//#region src/endpoint/lambda_endpoint.ts
|
|
@@ -27,7 +27,7 @@ var LambdaEndpointImpl = class {
|
|
|
27
27
|
}
|
|
28
28
|
handler() {
|
|
29
29
|
const compressionEnabled = isCompressionSupported();
|
|
30
|
-
const lambdaHandler = new LambdaHandler(
|
|
30
|
+
const lambdaHandler = new LambdaHandler(createRestateHandler(this.builder.build(), "REQUEST_RESPONSE", compressionEnabled ? { lambdaCompression: "zstd" } : {}), compressionEnabled);
|
|
31
31
|
return lambdaHandler.handleRequest.bind(lambdaHandler);
|
|
32
32
|
}
|
|
33
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda_endpoint.js","names":[],"sources":["../../src/endpoint/lambda_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\nimport { EndpointBuilder } from \"./endpoint.js\";\nimport type {\n DefaultServiceOptions,\n RestateEndpointBase,\n} from \"../endpoint.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"lambda_endpoint.js","names":[],"sources":["../../src/endpoint/lambda_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\nimport { EndpointBuilder } from \"./endpoint.js\";\nimport type {\n DefaultServiceOptions,\n RestateEndpointBase,\n} from \"../endpoint.js\";\nimport { createRestateHandler } from \"./handlers/generic.js\";\nimport { isCompressionSupported, LambdaHandler } from \"./handlers/lambda.js\";\nimport type { LoggerTransport } from \"../logging/logger_transport.js\";\n\n/**\n * LambdaEndpoint encapsulates all the Restate services served by this endpoint.\n *\n *\n * @example\n * A typical endpoint served as Lambda would look like this:\n * ```\n * import * as restate from \"@restatedev/restate-sdk/lambda\";\n *\n * export const handler = restate\n * .endpoint()\n * .bind(myService)\n * .handler();\n */\nexport interface LambdaEndpoint extends RestateEndpointBase<LambdaEndpoint> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handler(): (event: any, ctx: any) => Promise<any>;\n}\n\nexport class LambdaEndpointImpl implements LambdaEndpoint {\n private builder: EndpointBuilder = new EndpointBuilder();\n\n public bind<P extends string, M>(\n definition:\n | ServiceDefinition<P, M>\n | VirtualObjectDefinition<P, M>\n | WorkflowDefinition<P, M>\n ): LambdaEndpoint {\n this.builder.bind(definition);\n return this;\n }\n\n public withIdentityV1(...keys: string[]): LambdaEndpoint {\n this.builder.addIdentityKeys(...keys);\n return this;\n }\n\n public defaultServiceOptions(options: DefaultServiceOptions): LambdaEndpoint {\n this.builder.setDefaultServiceOptions(options);\n return this;\n }\n\n public setLogger(logger: LoggerTransport): LambdaEndpoint {\n this.builder.setLogger(logger);\n return this;\n }\n\n public journalValueCodecProvider(\n codecProvider: () => Promise<JournalValueCodec>\n ): LambdaEndpoint {\n this.builder.setJournalValueCodecProvider(codecProvider);\n return this;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n handler(): (event: any, ctx: any) => Promise<any> {\n const compressionEnabled = isCompressionSupported();\n\n const genericHandler = createRestateHandler(\n this.builder.build(),\n \"REQUEST_RESPONSE\",\n compressionEnabled\n ? {\n lambdaCompression: \"zstd\",\n }\n : {}\n );\n const lambdaHandler = new LambdaHandler(genericHandler, compressionEnabled);\n return lambdaHandler.handleRequest.bind(lambdaHandler);\n }\n}\n"],"mappings":";;;;;AA6CA,IAAa,qBAAb,MAA0D;CACxD,AAAQ,UAA2B,IAAI,iBAAiB;CAExD,AAAO,KACL,YAIgB;AAChB,OAAK,QAAQ,KAAK,WAAW;AAC7B,SAAO;;CAGT,AAAO,eAAe,GAAG,MAAgC;AACvD,OAAK,QAAQ,gBAAgB,GAAG,KAAK;AACrC,SAAO;;CAGT,AAAO,sBAAsB,SAAgD;AAC3E,OAAK,QAAQ,yBAAyB,QAAQ;AAC9C,SAAO;;CAGT,AAAO,UAAU,QAAyC;AACxD,OAAK,QAAQ,UAAU,OAAO;AAC9B,SAAO;;CAGT,AAAO,0BACL,eACgB;AAChB,OAAK,QAAQ,6BAA6B,cAAc;AACxD,SAAO;;CAIT,UAAkD;EAChD,MAAM,qBAAqB,wBAAwB;EAWnD,MAAM,gBAAgB,IAAI,cATH,qBACrB,KAAK,QAAQ,OAAO,EACpB,oBACA,qBACI,EACE,mBAAmB,QACpB,GACD,EAAE,CACP,EACuD,mBAAmB;AAC3E,SAAO,cAAc,cAAc,KAAK,cAAc"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_errors = require('../types/errors.cjs');
|
|
3
|
-
const require_generic = require('./handlers/generic.cjs');
|
|
4
3
|
const require_endpoint = require('./endpoint.cjs');
|
|
4
|
+
const require_utils = require('./handlers/utils.cjs');
|
|
5
|
+
const require_generic = require('./handlers/generic.cjs');
|
|
5
6
|
let http2 = require("http2");
|
|
6
7
|
http2 = require_rolldown_runtime.__toESM(http2);
|
|
7
|
-
let node_stream = require("node:stream");
|
|
8
|
-
node_stream = require_rolldown_runtime.__toESM(node_stream);
|
|
9
8
|
|
|
10
9
|
//#region src/endpoint/node_endpoint.ts
|
|
11
10
|
var NodeEndpoint = class {
|
|
@@ -54,46 +53,47 @@ var NodeEndpoint = class {
|
|
|
54
53
|
}
|
|
55
54
|
};
|
|
56
55
|
function nodeHttp2Handler(endpoint) {
|
|
57
|
-
const handler =
|
|
58
|
-
return (
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
56
|
+
const handler = require_generic.createRestateHandler(endpoint, "BIDI_STREAM", {});
|
|
57
|
+
return (httpRequest, httpResponse) => {
|
|
58
|
+
const url = httpRequest.url;
|
|
59
|
+
const abortController = new AbortController();
|
|
60
|
+
httpRequest.on("close", () => {
|
|
61
|
+
abortController.abort();
|
|
62
|
+
});
|
|
63
|
+
const restateResponse = handler.handle({
|
|
64
|
+
url,
|
|
65
|
+
headers: httpRequest.headers,
|
|
66
|
+
extraArgs: []
|
|
67
|
+
});
|
|
68
|
+
httpResponse.writeHead(restateResponse.statusCode, restateResponse.headers);
|
|
69
|
+
restateResponse.process({
|
|
70
|
+
inputReader: inputReaderAdapter(httpRequest),
|
|
71
|
+
outputWriter: outputWriterAdapter(httpResponse),
|
|
72
|
+
abortSignal: abortController.signal
|
|
73
|
+
}).catch((e) => {
|
|
74
|
+
const error = require_errors.ensureError(e);
|
|
75
|
+
(require_utils.tryCreateContextualLogger(endpoint.loggerTransport, url, httpRequest.headers) ?? endpoint.rlog).error("Unexpected error: " + (error.stack ?? error.message));
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function inputReaderAdapter(request) {
|
|
80
|
+
return request[Symbol.asyncIterator]();
|
|
81
|
+
}
|
|
82
|
+
function outputWriterAdapter(response) {
|
|
83
|
+
return {
|
|
84
|
+
write: function(value) {
|
|
85
|
+
return new Promise((resolve, reject) => {
|
|
86
|
+
response.write(value, (err) => {
|
|
87
|
+
if (err) reject(err);
|
|
88
|
+
else resolve();
|
|
89
|
+
});
|
|
66
90
|
});
|
|
67
|
-
|
|
68
|
-
|
|
91
|
+
},
|
|
92
|
+
close: function() {
|
|
93
|
+
return new Promise((resolve) => {
|
|
94
|
+
response.end(() => resolve());
|
|
69
95
|
});
|
|
70
|
-
|
|
71
|
-
endpoint.rlog.error("Client disconnected");
|
|
72
|
-
abortController.abort();
|
|
73
|
-
}
|
|
74
|
-
try {
|
|
75
|
-
const url = request.url;
|
|
76
|
-
const webRequestBody = node_stream.Readable.toWeb(request);
|
|
77
|
-
const resp = await handler.handle({
|
|
78
|
-
url,
|
|
79
|
-
headers: request.headers,
|
|
80
|
-
body: webRequestBody,
|
|
81
|
-
extraArgs: [],
|
|
82
|
-
abortSignal: abortController.signal
|
|
83
|
-
});
|
|
84
|
-
if (response.destroyed) return;
|
|
85
|
-
response.writeHead(resp.statusCode, resp.headers);
|
|
86
|
-
const responseWeb = node_stream.Writable.toWeb(response);
|
|
87
|
-
await resp.body.pipeTo(responseWeb);
|
|
88
|
-
} catch (e) {
|
|
89
|
-
const error = require_errors.ensureError(e);
|
|
90
|
-
const logger = require_generic.tryCreateContextualLogger(endpoint.loggerTransport, request.url, request.headers) ?? endpoint.rlog;
|
|
91
|
-
if (error.name === "AbortError") logger.error("Got abort error from connection: " + error.message + "\nThis might indicate that:\n* The restate-server aborted the connection after hitting the 'abort-timeout'\n* The connection with the restate-server was lost\n\nPlease check the invocation in the Restate UI for more details.");
|
|
92
|
-
else logger.error("Error while handling request: " + (error.stack ?? error.message));
|
|
93
|
-
response.destroy(error);
|
|
94
|
-
abortController.abort();
|
|
95
|
-
}
|
|
96
|
-
})().catch(() => {});
|
|
96
|
+
}
|
|
97
97
|
};
|
|
98
98
|
}
|
|
99
99
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RestateEndpoint } from "../index.js";
|
|
2
2
|
import type { JournalValueCodec, ServiceDefinition, VirtualObjectDefinition, WorkflowDefinition } from "@restatedev/restate-sdk-core";
|
|
3
|
-
import
|
|
3
|
+
import { Http2ServerRequest, Http2ServerResponse } from "http2";
|
|
4
4
|
import type { LoggerTransport } from "../logging/logger_transport.js";
|
|
5
5
|
import type { DefaultServiceOptions } from "../endpoint.js";
|
|
6
6
|
export declare class NodeEndpoint implements RestateEndpoint {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node_endpoint.d.ts","sourceRoot":"","sources":["../../src/endpoint/node_endpoint.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"node_endpoint.d.ts","sourceRoot":"","sources":["../../src/endpoint/node_endpoint.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAMhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAI5D,qBAAa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,OAAO,CAA0C;IAElD,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC7B,UAAU,EACN,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAC3B,eAAe;IAKX,cAAc,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe;IAKlD,qBAAqB,CAC1B,OAAO,EAAE,qBAAqB,GAC7B,eAAe;IAKX,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe;IAKnD,yBAAyB,CAC9B,aAAa,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAC9C,eAAe;IAKlB,YAAY,IAAI,CACd,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,mBAAmB,KAC1B,IAAI;IAIT,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BvC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ensureError } from "../types/errors.js";
|
|
2
|
-
import { GenericHandler, tryCreateContextualLogger } from "./handlers/generic.js";
|
|
3
2
|
import { EndpointBuilder } from "./endpoint.js";
|
|
3
|
+
import { tryCreateContextualLogger } from "./handlers/utils.js";
|
|
4
|
+
import { createRestateHandler } from "./handlers/generic.js";
|
|
4
5
|
import * as http2 from "http2";
|
|
5
|
-
import { Readable, Writable } from "node:stream";
|
|
6
6
|
|
|
7
7
|
//#region src/endpoint/node_endpoint.ts
|
|
8
8
|
var NodeEndpoint = class {
|
|
@@ -51,46 +51,47 @@ var NodeEndpoint = class {
|
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
function nodeHttp2Handler(endpoint) {
|
|
54
|
-
const handler =
|
|
55
|
-
return (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
54
|
+
const handler = createRestateHandler(endpoint, "BIDI_STREAM", {});
|
|
55
|
+
return (httpRequest, httpResponse) => {
|
|
56
|
+
const url = httpRequest.url;
|
|
57
|
+
const abortController = new AbortController();
|
|
58
|
+
httpRequest.on("close", () => {
|
|
59
|
+
abortController.abort();
|
|
60
|
+
});
|
|
61
|
+
const restateResponse = handler.handle({
|
|
62
|
+
url,
|
|
63
|
+
headers: httpRequest.headers,
|
|
64
|
+
extraArgs: []
|
|
65
|
+
});
|
|
66
|
+
httpResponse.writeHead(restateResponse.statusCode, restateResponse.headers);
|
|
67
|
+
restateResponse.process({
|
|
68
|
+
inputReader: inputReaderAdapter(httpRequest),
|
|
69
|
+
outputWriter: outputWriterAdapter(httpResponse),
|
|
70
|
+
abortSignal: abortController.signal
|
|
71
|
+
}).catch((e) => {
|
|
72
|
+
const error = ensureError(e);
|
|
73
|
+
(tryCreateContextualLogger(endpoint.loggerTransport, url, httpRequest.headers) ?? endpoint.rlog).error("Unexpected error: " + (error.stack ?? error.message));
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function inputReaderAdapter(request) {
|
|
78
|
+
return request[Symbol.asyncIterator]();
|
|
79
|
+
}
|
|
80
|
+
function outputWriterAdapter(response) {
|
|
81
|
+
return {
|
|
82
|
+
write: function(value) {
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
response.write(value, (err) => {
|
|
85
|
+
if (err) reject(err);
|
|
86
|
+
else resolve();
|
|
87
|
+
});
|
|
63
88
|
});
|
|
64
|
-
|
|
65
|
-
|
|
89
|
+
},
|
|
90
|
+
close: function() {
|
|
91
|
+
return new Promise((resolve) => {
|
|
92
|
+
response.end(() => resolve());
|
|
66
93
|
});
|
|
67
|
-
|
|
68
|
-
endpoint.rlog.error("Client disconnected");
|
|
69
|
-
abortController.abort();
|
|
70
|
-
}
|
|
71
|
-
try {
|
|
72
|
-
const url = request.url;
|
|
73
|
-
const webRequestBody = Readable.toWeb(request);
|
|
74
|
-
const resp = await handler.handle({
|
|
75
|
-
url,
|
|
76
|
-
headers: request.headers,
|
|
77
|
-
body: webRequestBody,
|
|
78
|
-
extraArgs: [],
|
|
79
|
-
abortSignal: abortController.signal
|
|
80
|
-
});
|
|
81
|
-
if (response.destroyed) return;
|
|
82
|
-
response.writeHead(resp.statusCode, resp.headers);
|
|
83
|
-
const responseWeb = Writable.toWeb(response);
|
|
84
|
-
await resp.body.pipeTo(responseWeb);
|
|
85
|
-
} catch (e) {
|
|
86
|
-
const error = ensureError(e);
|
|
87
|
-
const logger = tryCreateContextualLogger(endpoint.loggerTransport, request.url, request.headers) ?? endpoint.rlog;
|
|
88
|
-
if (error.name === "AbortError") logger.error("Got abort error from connection: " + error.message + "\nThis might indicate that:\n* The restate-server aborted the connection after hitting the 'abort-timeout'\n* The connection with the restate-server was lost\n\nPlease check the invocation in the Restate UI for more details.");
|
|
89
|
-
else logger.error("Error while handling request: " + (error.stack ?? error.message));
|
|
90
|
-
response.destroy(error);
|
|
91
|
-
abortController.abort();
|
|
92
|
-
}
|
|
93
|
-
})().catch(() => {});
|
|
94
|
+
}
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
97
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node_endpoint.js","names":[],"sources":["../../src/endpoint/node_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type { RestateEndpoint } from \"../index.js\";\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\
|
|
1
|
+
{"version":3,"file":"node_endpoint.js","names":[],"sources":["../../src/endpoint/node_endpoint.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nimport type { RestateEndpoint } from \"../index.js\";\nimport type {\n JournalValueCodec,\n ServiceDefinition,\n VirtualObjectDefinition,\n WorkflowDefinition,\n} from \"@restatedev/restate-sdk-core\";\nimport { Http2ServerRequest, Http2ServerResponse } from \"http2\";\nimport * as http2 from \"http2\";\nimport type { Endpoint } from \"./endpoint.js\";\nimport { EndpointBuilder } from \"./endpoint.js\";\nimport { createRestateHandler } from \"./handlers/generic.js\";\nimport { ensureError } from \"../types/errors.js\";\nimport type { LoggerTransport } from \"../logging/logger_transport.js\";\nimport type { DefaultServiceOptions } from \"../endpoint.js\";\nimport { tryCreateContextualLogger } from \"./handlers/utils.js\";\nimport { InputReader, OutputWriter } from \"./handlers/types.js\";\n\nexport class NodeEndpoint implements RestateEndpoint {\n private builder: EndpointBuilder = new EndpointBuilder();\n\n public bind<P extends string, M>(\n definition:\n | ServiceDefinition<P, M>\n | VirtualObjectDefinition<P, M>\n | WorkflowDefinition<P, M>\n ): RestateEndpoint {\n this.builder.bind(definition);\n return this;\n }\n\n public withIdentityV1(...keys: string[]): RestateEndpoint {\n this.builder.addIdentityKeys(...keys);\n return this;\n }\n\n public defaultServiceOptions(\n options: DefaultServiceOptions\n ): RestateEndpoint {\n this.builder.setDefaultServiceOptions(options);\n return this;\n }\n\n public setLogger(logger: LoggerTransport): RestateEndpoint {\n this.builder.setLogger(logger);\n return this;\n }\n\n public journalValueCodecProvider(\n codecProvider: () => Promise<JournalValueCodec>\n ): RestateEndpoint {\n this.builder.setJournalValueCodecProvider(codecProvider);\n return this;\n }\n\n http2Handler(): (\n request: Http2ServerRequest,\n response: Http2ServerResponse\n ) => void {\n return nodeHttp2Handler(this.builder.build());\n }\n\n listen(port?: number): Promise<number> {\n const endpoint = this.builder.build();\n\n const actualPort = port ?? parseInt(process.env.PORT ?? \"9080\");\n endpoint.rlog.info(`Restate SDK started listening on ${actualPort}...`);\n\n const server = http2.createServer(nodeHttp2Handler(endpoint));\n\n return new Promise((resolve, reject) => {\n let failed = false;\n server.once(\"error\", (e: Error) => {\n failed = true;\n reject(e);\n });\n server.listen(actualPort, () => {\n if (failed) {\n return;\n }\n const address = server.address();\n if (address === null || typeof address === \"string\") {\n reject(\n new TypeError(\n \"endpoint.listen() currently supports only binding to a PORT\"\n )\n );\n } else {\n resolve(address.port);\n }\n });\n });\n }\n}\n\nfunction nodeHttp2Handler(\n endpoint: Endpoint\n): (request: Http2ServerRequest, response: Http2ServerResponse) => void {\n const handler = createRestateHandler(endpoint, \"BIDI_STREAM\", {});\n\n return (httpRequest, httpResponse) => {\n const url = httpRequest.url;\n\n // Abort controller used to cleanup resources at the end of this stream lifecycle\n const abortController = new AbortController();\n httpRequest.on(\"close\", () => {\n // The 'close' event is emitted when the Http2Stream is destroyed.\n abortController.abort();\n });\n\n const restateResponse = handler.handle({\n url,\n headers: httpRequest.headers,\n extraArgs: [],\n });\n\n httpResponse.writeHead(restateResponse.statusCode, restateResponse.headers);\n\n restateResponse\n .process({\n inputReader: inputReaderAdapter(httpRequest),\n outputWriter: outputWriterAdapter(httpResponse),\n abortSignal: abortController.signal,\n })\n .catch((e) => {\n // handle should never throw\n const error = ensureError(e);\n const logger =\n tryCreateContextualLogger(\n endpoint.loggerTransport,\n url,\n httpRequest.headers\n ) ?? endpoint.rlog;\n logger.error(\"Unexpected error: \" + (error.stack ?? error.message));\n });\n };\n}\n\nfunction inputReaderAdapter(request: Http2ServerRequest): InputReader {\n return request[Symbol.asyncIterator]();\n}\n\nfunction outputWriterAdapter(response: Http2ServerResponse): OutputWriter {\n return {\n write: function (value: Uint8Array): Promise<void> {\n return new Promise((resolve, reject) => {\n response.write(value, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n });\n },\n close: function (): Promise<void> {\n return new Promise((resolve) => {\n response.end(() => resolve());\n });\n },\n };\n}\n"],"mappings":";;;;;;;AA6BA,IAAa,eAAb,MAAqD;CACnD,AAAQ,UAA2B,IAAI,iBAAiB;CAExD,AAAO,KACL,YAIiB;AACjB,OAAK,QAAQ,KAAK,WAAW;AAC7B,SAAO;;CAGT,AAAO,eAAe,GAAG,MAAiC;AACxD,OAAK,QAAQ,gBAAgB,GAAG,KAAK;AACrC,SAAO;;CAGT,AAAO,sBACL,SACiB;AACjB,OAAK,QAAQ,yBAAyB,QAAQ;AAC9C,SAAO;;CAGT,AAAO,UAAU,QAA0C;AACzD,OAAK,QAAQ,UAAU,OAAO;AAC9B,SAAO;;CAGT,AAAO,0BACL,eACiB;AACjB,OAAK,QAAQ,6BAA6B,cAAc;AACxD,SAAO;;CAGT,eAGU;AACR,SAAO,iBAAiB,KAAK,QAAQ,OAAO,CAAC;;CAG/C,OAAO,MAAgC;EACrC,MAAM,WAAW,KAAK,QAAQ,OAAO;EAErC,MAAM,aAAa,QAAQ,SAAS,QAAQ,IAAI,QAAQ,OAAO;AAC/D,WAAS,KAAK,KAAK,oCAAoC,WAAW,KAAK;EAEvE,MAAM,SAAS,MAAM,aAAa,iBAAiB,SAAS,CAAC;AAE7D,SAAO,IAAI,SAAS,SAAS,WAAW;GACtC,IAAI,SAAS;AACb,UAAO,KAAK,UAAU,MAAa;AACjC,aAAS;AACT,WAAO,EAAE;KACT;AACF,UAAO,OAAO,kBAAkB;AAC9B,QAAI,OACF;IAEF,MAAM,UAAU,OAAO,SAAS;AAChC,QAAI,YAAY,QAAQ,OAAO,YAAY,SACzC,wBACE,IAAI,UACF,8DACD,CACF;QAED,SAAQ,QAAQ,KAAK;KAEvB;IACF;;;AAIN,SAAS,iBACP,UACsE;CACtE,MAAM,UAAU,qBAAqB,UAAU,eAAe,EAAE,CAAC;AAEjE,SAAQ,aAAa,iBAAiB;EACpC,MAAM,MAAM,YAAY;EAGxB,MAAM,kBAAkB,IAAI,iBAAiB;AAC7C,cAAY,GAAG,eAAe;AAE5B,mBAAgB,OAAO;IACvB;EAEF,MAAM,kBAAkB,QAAQ,OAAO;GACrC;GACA,SAAS,YAAY;GACrB,WAAW,EAAE;GACd,CAAC;AAEF,eAAa,UAAU,gBAAgB,YAAY,gBAAgB,QAAQ;AAE3E,kBACG,QAAQ;GACP,aAAa,mBAAmB,YAAY;GAC5C,cAAc,oBAAoB,aAAa;GAC/C,aAAa,gBAAgB;GAC9B,CAAC,CACD,OAAO,MAAM;GAEZ,MAAM,QAAQ,YAAY,EAAE;AAO5B,IALE,0BACE,SAAS,iBACT,KACA,YAAY,QACb,IAAI,SAAS,MACT,MAAM,wBAAwB,MAAM,SAAS,MAAM,SAAS;IACnE;;;AAIR,SAAS,mBAAmB,SAA0C;AACpE,QAAO,QAAQ,OAAO,gBAAgB;;AAGxC,SAAS,oBAAoB,UAA6C;AACxE,QAAO;EACL,OAAO,SAAU,OAAkC;AACjD,UAAO,IAAI,SAAS,SAAS,WAAW;AACtC,aAAS,MAAM,QAAQ,QAAQ;AAC7B,SAAI,IACF,QAAO,IAAI;SAEX,UAAS;MAEX;KACF;;EAEJ,OAAO,WAA2B;AAChC,UAAO,IAAI,SAAS,YAAY;AAC9B,aAAS,UAAU,SAAS,CAAC;KAC7B;;EAEL"}
|
package/dist/fetch.cjs
CHANGED
|
@@ -2,6 +2,7 @@ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
|
2
2
|
const require_errors = require('./types/errors.cjs');
|
|
3
3
|
const require_rpc = require('./types/rpc.cjs');
|
|
4
4
|
const require_context = require('./context.cjs');
|
|
5
|
+
const require_internal = require('./internal.cjs');
|
|
5
6
|
const require_common_api = require('./common_api.cjs');
|
|
6
7
|
const require_fetch_endpoint = require('./endpoint/fetch_endpoint.cjs');
|
|
7
8
|
const require_withOptions = require('./endpoint/withOptions.cjs');
|
|
@@ -66,6 +67,12 @@ Object.defineProperty(exports, 'handlers', {
|
|
|
66
67
|
return require_rpc.handlers;
|
|
67
68
|
}
|
|
68
69
|
});
|
|
70
|
+
Object.defineProperty(exports, 'internal', {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
get: function () {
|
|
73
|
+
return require_internal.internal_exports;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
69
76
|
exports.object = require_rpc.object;
|
|
70
77
|
Object.defineProperty(exports, 'rpc', {
|
|
71
78
|
enumerable: true,
|
package/dist/fetch.d.cts
CHANGED
|
@@ -4,6 +4,7 @@ import { Context, ContextDate, DurablePromise, GenericCall, GenericSend, Invocat
|
|
|
4
4
|
import { LogMetadata, LogSource, LoggerContext, LoggerTransport, RestateLogLevel } from "./logging/logger_transport.cjs";
|
|
5
5
|
import { DefaultServiceOptions, RestateEndpoint, RestateEndpointBase } from "./endpoint.cjs";
|
|
6
6
|
import { EndpointOptions } from "./endpoint/types.cjs";
|
|
7
|
+
import { internal_d_exports } from "./internal.cjs";
|
|
7
8
|
import { CombineablePromise, Duration, JournalValueCodec, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.cjs";
|
|
8
9
|
import { FetchEndpoint } from "./endpoint/fetch_endpoint.cjs";
|
|
9
10
|
|
|
@@ -48,5 +49,5 @@ interface FetchEndpointOptions extends EndpointOptions {
|
|
|
48
49
|
*/
|
|
49
50
|
declare function createEndpointHandler(options: FetchEndpointOptions): (request: Request, ...extraArgs: unknown[]) => Promise<Response>;
|
|
50
51
|
//#endregion
|
|
51
|
-
export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, type FetchEndpoint, FetchEndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request$1 as Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, service, workflow };
|
|
52
|
+
export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, type FetchEndpoint, FetchEndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request$1 as Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_d_exports as internal, object, rpc, serde, service, workflow };
|
|
52
53
|
//# sourceMappingURL=fetch.d.cts.map
|
package/dist/fetch.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.cts","names":[],"sources":["../src/fetch.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.d.cts","names":[],"sources":["../src/fetch.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;iBAyBgB,QAAA,CAAA,GAAY;UAIX,oBAAA,SAA6B;;AAJ9C;AAIA;AAiCA;;;;;EAAmE,aAAA,CAAA,EAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;iBAAnD,qBAAA,UAA+B,iCAAoB,qCAAA,QAAA"}
|
package/dist/fetch.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { Context, ContextDate, DurablePromise, GenericCall, GenericSend, Invocat
|
|
|
4
4
|
import { LogMetadata, LogSource, LoggerContext, LoggerTransport, RestateLogLevel } from "./logging/logger_transport.js";
|
|
5
5
|
import { DefaultServiceOptions, RestateEndpoint, RestateEndpointBase } from "./endpoint.js";
|
|
6
6
|
import { EndpointOptions } from "./endpoint/types.js";
|
|
7
|
+
import { internal_d_exports } from "./internal.js";
|
|
7
8
|
import { CombineablePromise, Duration, JournalValueCodec, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.js";
|
|
8
9
|
import { FetchEndpoint } from "./endpoint/fetch_endpoint.js";
|
|
9
10
|
|
|
@@ -48,5 +49,5 @@ interface FetchEndpointOptions extends EndpointOptions {
|
|
|
48
49
|
*/
|
|
49
50
|
declare function createEndpointHandler(options: FetchEndpointOptions): (request: Request, ...extraArgs: unknown[]) => Promise<Response>;
|
|
50
51
|
//#endregion
|
|
51
|
-
export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, type FetchEndpoint, FetchEndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request$1 as Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, service, workflow };
|
|
52
|
+
export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, type FetchEndpoint, FetchEndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request$1 as Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_d_exports as internal, object, rpc, serde, service, workflow };
|
|
52
53
|
//# sourceMappingURL=fetch.d.ts.map
|
package/dist/fetch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","names":[],"sources":["../src/fetch.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","names":[],"sources":["../src/fetch.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;iBAyBgB,QAAA,CAAA,GAAY;UAIX,oBAAA,SAA6B;;AAJ9C;AAIA;AAiCA;;;;;EAAmE,aAAA,CAAA,EAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;iBAAnD,qBAAA,UAA+B,iCAAoB,qCAAA,QAAA"}
|
package/dist/fetch.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CancelledError, RestateError, RetryableError, TerminalError, TimeoutError } from "./types/errors.js";
|
|
2
2
|
import { Opts, SendOpts, handlers, object, rpc, service, workflow } from "./types/rpc.js";
|
|
3
3
|
import { InvocationIdParser, RestatePromise } from "./context.js";
|
|
4
|
+
import { internal_exports } from "./internal.js";
|
|
4
5
|
import { CombineablePromise, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.js";
|
|
5
6
|
import { FetchEndpointImpl } from "./endpoint/fetch_endpoint.js";
|
|
6
7
|
import { withOptions } from "./endpoint/withOptions.js";
|
|
@@ -40,5 +41,5 @@ function createEndpointHandler(options) {
|
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
//#endregion
|
|
43
|
-
export { CancelledError, CombineablePromise, InvocationIdParser, Opts, RestateError, RestatePromise, RetryableError, SendOpts, TerminalError, TimeoutError, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, service, workflow };
|
|
44
|
+
export { CancelledError, CombineablePromise, InvocationIdParser, Opts, RestateError, RestatePromise, RetryableError, SendOpts, TerminalError, TimeoutError, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_exports as internal, object, rpc, serde, service, workflow };
|
|
44
45
|
//# sourceMappingURL=fetch.js.map
|
package/dist/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","names":[],"sources":["../src/fetch.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nexport * from \"./common_api.js\";\n\nimport {\n type FetchEndpoint,\n FetchEndpointImpl,\n} from \"./endpoint/fetch_endpoint.js\";\nimport type { EndpointOptions } from \"./endpoint/types.js\";\nimport { withOptions } from \"./endpoint/withOptions.js\";\n\n/**\n * Create a new {@link RestateEndpoint} in request response protocol mode.\n * Bidirectional mode (must be served over http2) can be enabled with .enableHttp2()\n * @deprecated Please use {@link createEndpointHandler}\n */\nexport function endpoint(): FetchEndpoint {\n return new FetchEndpointImpl(\"REQUEST_RESPONSE\");\n}\n\nexport interface FetchEndpointOptions extends EndpointOptions {\n /**\n * Enables bidirectional communication for the handler.\n *\n * When set to `true`, the handler supports bidirectional streaming (e.g., via HTTP/2 or compatible HTTP/1.1 servers).\n * When `false`, the handler operates in request-response mode only.\n *\n * @default false\n */\n bidirectional?: boolean;\n}\n\n/**\n * Creates a Fetch handler that encapsulates all the Restate services served by this endpoint.\n *\n * @param {FetchEndpointOptions} options - Configuration options for the endpoint handler.\n * @returns A fetch handler function.\n *\n * @example\n * A typical request-response handler would look like this:\n * ```\n * import { createEndpointHandler } from \"@restatedev/restate-sdk/fetch\";\n *\n * export const handler = createEndpointHandler({ services: [myService] })\n *\n * @example\n * A typical bidirectional handler (works with http2 and some http1.1 servers) would look like this:\n * ```\n * import { createEndpointHandler } from \"@restatedev/restate-sdk/fetch\";\n *\n * export const handler = createEndpointHandler({ services: [myService], bidirectional: true })\n *\n */\nexport function createEndpointHandler(options: FetchEndpointOptions) {\n return withOptions<FetchEndpoint>(\n new FetchEndpointImpl(\n options.bidirectional ? \"BIDI_STREAM\" : \"REQUEST_RESPONSE\"\n ),\n options\n ).handler().fetch;\n}\nexport { type FetchEndpoint } from \"./endpoint/fetch_endpoint.js\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.js","names":[],"sources":["../src/fetch.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024 - Restate Software, Inc., Restate GmbH\n *\n * This file is part of the Restate SDK for Node.js/TypeScript,\n * which is released under the MIT license.\n *\n * You can find a copy of the license in file LICENSE in the root\n * directory of this repository or package, or at\n * https://github.com/restatedev/sdk-typescript/blob/main/LICENSE\n */\n\nexport * from \"./common_api.js\";\n\nimport {\n type FetchEndpoint,\n FetchEndpointImpl,\n} from \"./endpoint/fetch_endpoint.js\";\nimport type { EndpointOptions } from \"./endpoint/types.js\";\nimport { withOptions } from \"./endpoint/withOptions.js\";\n\n/**\n * Create a new {@link RestateEndpoint} in request response protocol mode.\n * Bidirectional mode (must be served over http2) can be enabled with .enableHttp2()\n * @deprecated Please use {@link createEndpointHandler}\n */\nexport function endpoint(): FetchEndpoint {\n return new FetchEndpointImpl(\"REQUEST_RESPONSE\");\n}\n\nexport interface FetchEndpointOptions extends EndpointOptions {\n /**\n * Enables bidirectional communication for the handler.\n *\n * When set to `true`, the handler supports bidirectional streaming (e.g., via HTTP/2 or compatible HTTP/1.1 servers).\n * When `false`, the handler operates in request-response mode only.\n *\n * @default false\n */\n bidirectional?: boolean;\n}\n\n/**\n * Creates a Fetch handler that encapsulates all the Restate services served by this endpoint.\n *\n * @param {FetchEndpointOptions} options - Configuration options for the endpoint handler.\n * @returns A fetch handler function.\n *\n * @example\n * A typical request-response handler would look like this:\n * ```\n * import { createEndpointHandler } from \"@restatedev/restate-sdk/fetch\";\n *\n * export const handler = createEndpointHandler({ services: [myService] })\n *\n * @example\n * A typical bidirectional handler (works with http2 and some http1.1 servers) would look like this:\n * ```\n * import { createEndpointHandler } from \"@restatedev/restate-sdk/fetch\";\n *\n * export const handler = createEndpointHandler({ services: [myService], bidirectional: true })\n *\n */\nexport function createEndpointHandler(options: FetchEndpointOptions) {\n return withOptions<FetchEndpoint>(\n new FetchEndpointImpl(\n options.bidirectional ? \"BIDI_STREAM\" : \"REQUEST_RESPONSE\"\n ),\n options\n ).handler().fetch;\n}\nexport { type FetchEndpoint } from \"./endpoint/fetch_endpoint.js\";\n"],"mappings":";;;;;;;;;;;;;;AAyBA,SAAgB,WAA0B;AACxC,QAAO,IAAI,kBAAkB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;AAoClD,SAAgB,sBAAsB,SAA+B;AACnE,QAAO,YACL,IAAI,kBACF,QAAQ,gBAAgB,gBAAgB,mBACzC,EACD,QACD,CAAC,SAAS,CAAC"}
|
package/dist/index.cjs
CHANGED
|
@@ -2,6 +2,7 @@ const require_rolldown_runtime = require('./_virtual/rolldown_runtime.cjs');
|
|
|
2
2
|
const require_errors = require('./types/errors.cjs');
|
|
3
3
|
const require_rpc = require('./types/rpc.cjs');
|
|
4
4
|
const require_context = require('./context.cjs');
|
|
5
|
+
const require_internal = require('./internal.cjs');
|
|
5
6
|
const require_common_api = require('./common_api.cjs');
|
|
6
7
|
const require_node = require('./node.cjs');
|
|
7
8
|
let __restatedev_restate_sdk_core = require("@restatedev/restate-sdk-core");
|
|
@@ -30,6 +31,12 @@ Object.defineProperty(exports, 'handlers', {
|
|
|
30
31
|
return require_rpc.handlers;
|
|
31
32
|
}
|
|
32
33
|
});
|
|
34
|
+
Object.defineProperty(exports, 'internal', {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function () {
|
|
37
|
+
return require_internal.internal_exports;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
33
40
|
exports.object = require_rpc.object;
|
|
34
41
|
Object.defineProperty(exports, 'rpc', {
|
|
35
42
|
enumerable: true,
|
package/dist/index.d.cts
CHANGED
|
@@ -4,6 +4,7 @@ import { Context, ContextDate, DurablePromise, GenericCall, GenericSend, Invocat
|
|
|
4
4
|
import { LogMetadata, LogSource, LoggerContext, LoggerTransport, RestateLogLevel } from "./logging/logger_transport.cjs";
|
|
5
5
|
import { DefaultServiceOptions, RestateEndpoint, RestateEndpointBase } from "./endpoint.cjs";
|
|
6
6
|
import { EndpointOptions } from "./endpoint/types.cjs";
|
|
7
|
+
import { internal_d_exports } from "./internal.cjs";
|
|
7
8
|
import { CombineablePromise, Duration, JournalValueCodec, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.cjs";
|
|
8
9
|
import { ServeOptions, createEndpointHandler, endpoint, serve } from "./node.cjs";
|
|
9
|
-
export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, serve, service, workflow };
|
|
10
|
+
export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_d_exports as internal, object, rpc, serde, serve, service, workflow };
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { Context, ContextDate, DurablePromise, GenericCall, GenericSend, Invocat
|
|
|
4
4
|
import { LogMetadata, LogSource, LoggerContext, LoggerTransport, RestateLogLevel } from "./logging/logger_transport.js";
|
|
5
5
|
import { DefaultServiceOptions, RestateEndpoint, RestateEndpointBase } from "./endpoint.js";
|
|
6
6
|
import { EndpointOptions } from "./endpoint/types.js";
|
|
7
|
+
import { internal_d_exports } from "./internal.js";
|
|
7
8
|
import { CombineablePromise, Duration, JournalValueCodec, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.js";
|
|
8
9
|
import { ServeOptions, createEndpointHandler, endpoint, serve } from "./node.js";
|
|
9
|
-
export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, serve, service, workflow };
|
|
10
|
+
export { CancelledError, Client, ClientCallOptions, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, DurablePromise, Duration, EndpointOptions, GenericCall, GenericSend, InferArg, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectHandler, ObjectHandlerOpts, ObjectOptions, ObjectOpts, ObjectSharedContext, Opts, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, SendClient, SendOptions, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceHandler, ServiceHandlerOpts, ServiceOptions, ServiceOpts, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowHandler, WorkflowHandlerOpts, WorkflowOptions, WorkflowOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_d_exports as internal, object, rpc, serde, serve, service, workflow };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { CancelledError, RestateError, RetryableError, TerminalError, TimeoutError } from "./types/errors.js";
|
|
2
2
|
import { Opts, SendOpts, handlers, object, rpc, service, workflow } from "./types/rpc.js";
|
|
3
3
|
import { InvocationIdParser, RestatePromise } from "./context.js";
|
|
4
|
+
import { internal_exports } from "./internal.js";
|
|
4
5
|
import { CombineablePromise, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, serde } from "./common_api.js";
|
|
5
6
|
import { createEndpointHandler, endpoint, serve } from "./node.js";
|
|
6
7
|
|
|
7
|
-
export { CancelledError, CombineablePromise, InvocationIdParser, Opts, RestateError, RestatePromise, RetryableError, SendOpts, TerminalError, TimeoutError, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, object, rpc, serde, serve, service, workflow };
|
|
8
|
+
export { CancelledError, CombineablePromise, InvocationIdParser, Opts, RestateError, RestatePromise, RetryableError, SendOpts, TerminalError, TimeoutError, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, internal_exports as internal, object, rpc, serde, serve, service, workflow };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Context } from "./context.cjs";
|
|
2
|
+
|
|
3
|
+
//#region src/internal.d.ts
|
|
4
|
+
declare namespace internal_d_exports {
|
|
5
|
+
export { ContextInternal };
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Internal {@link Context} interface exposing additional features.
|
|
9
|
+
*
|
|
10
|
+
* Please note that this API is to be considered experimental and might change without notice.
|
|
11
|
+
*
|
|
12
|
+
* @experimental
|
|
13
|
+
*/
|
|
14
|
+
interface ContextInternal extends Context {
|
|
15
|
+
/**
|
|
16
|
+
* Returns true if the handler is in the processing phase.
|
|
17
|
+
* This is the mechanism used by `ctx.console` to distinguish whether we should log or not in replaying/processing.
|
|
18
|
+
*
|
|
19
|
+
* **WARNING**: This method should not be used to influence control flow, as it will **surely** lead to non-determinism errors!
|
|
20
|
+
*
|
|
21
|
+
* @experimental
|
|
22
|
+
*/
|
|
23
|
+
isProcessing(): boolean;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { internal_d_exports };
|
|
27
|
+
//# sourceMappingURL=internal.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.cts","names":[],"sources":["../src/internal.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;AASA;;;UAAiB,eAAA,SAAwB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Context } from "./context.js";
|
|
2
|
+
|
|
3
|
+
//#region src/internal.d.ts
|
|
4
|
+
declare namespace internal_d_exports {
|
|
5
|
+
export { ContextInternal };
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Internal {@link Context} interface exposing additional features.
|
|
9
|
+
*
|
|
10
|
+
* Please note that this API is to be considered experimental and might change without notice.
|
|
11
|
+
*
|
|
12
|
+
* @experimental
|
|
13
|
+
*/
|
|
14
|
+
interface ContextInternal extends Context {
|
|
15
|
+
/**
|
|
16
|
+
* Returns true if the handler is in the processing phase.
|
|
17
|
+
* This is the mechanism used by `ctx.console` to distinguish whether we should log or not in replaying/processing.
|
|
18
|
+
*
|
|
19
|
+
* **WARNING**: This method should not be used to influence control flow, as it will **surely** lead to non-determinism errors!
|
|
20
|
+
*
|
|
21
|
+
* @experimental
|
|
22
|
+
*/
|
|
23
|
+
isProcessing(): boolean;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { internal_d_exports };
|
|
27
|
+
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.d.ts","names":[],"sources":["../src/internal.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;AASA;;;UAAiB,eAAA,SAAwB"}
|
package/dist/internal.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","names":[],"sources":["../src/internal.ts"],"sourcesContent":["import { Context } from \"./context.js\";\n\n/**\n * Internal {@link Context} interface exposing additional features.\n *\n * Please note that this API is to be considered experimental and might change without notice.\n *\n * @experimental\n */\nexport interface ContextInternal extends Context {\n /**\n * Returns true if the handler is in the processing phase.\n * This is the mechanism used by `ctx.console` to distinguish whether we should log or not in replaying/processing.\n *\n * **WARNING**: This method should not be used to influence control flow, as it will **surely** lead to non-determinism errors!\n *\n * @experimental\n */\n isProcessing(): boolean;\n}\n"],"mappings":""}
|
package/dist/io.cjs
CHANGED
|
@@ -20,13 +20,13 @@ var InputPump = class {
|
|
|
20
20
|
async readNext() {
|
|
21
21
|
let nextValue;
|
|
22
22
|
try {
|
|
23
|
-
nextValue = await this.inputReader.
|
|
23
|
+
nextValue = await this.inputReader.next();
|
|
24
24
|
} catch (e) {
|
|
25
25
|
this.errorCallback(e);
|
|
26
26
|
return require_promises.pendingPromise();
|
|
27
27
|
}
|
|
28
|
-
if (nextValue.value !== void 0) this.coreVm.notify_input(nextValue.value);
|
|
29
28
|
if (nextValue.done) this.coreVm.notify_input_closed();
|
|
29
|
+
else if (nextValue.value !== void 0) this.coreVm.notify_input(nextValue.value);
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
/**
|