@restatedev/restate-sdk 0.9.2 → 1.0.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 +10 -0
- package/dist/src/connection/buffered_connection.d.ts +1 -2
- package/dist/src/connection/buffered_connection.d.ts.map +1 -1
- package/dist/src/connection/buffered_connection.js.map +1 -1
- package/dist/src/connection/connection.d.ts +1 -0
- package/dist/src/connection/connection.d.ts.map +1 -1
- package/dist/src/connection/http_connection.d.ts +6 -2
- package/dist/src/connection/http_connection.d.ts.map +1 -1
- package/dist/src/connection/http_connection.js +8 -3
- package/dist/src/connection/http_connection.js.map +1 -1
- package/dist/src/connection/lambda_connection.d.ts +3 -1
- package/dist/src/connection/lambda_connection.d.ts.map +1 -1
- package/dist/src/connection/lambda_connection.js +6 -1
- package/dist/src/connection/lambda_connection.js.map +1 -1
- package/dist/src/context.d.ts +149 -44
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js.map +1 -1
- package/dist/src/context_impl.d.ts +15 -12
- package/dist/src/context_impl.d.ts.map +1 -1
- package/dist/src/context_impl.js +109 -19
- package/dist/src/context_impl.js.map +1 -1
- package/dist/src/endpoint/endpoint_impl.d.ts +5 -6
- package/dist/src/endpoint/endpoint_impl.d.ts.map +1 -1
- package/dist/src/endpoint/endpoint_impl.js +44 -18
- package/dist/src/endpoint/endpoint_impl.js.map +1 -1
- package/dist/src/endpoint/http2_handler.d.ts.map +1 -1
- package/dist/src/endpoint/http2_handler.js +42 -9
- package/dist/src/endpoint/http2_handler.js.map +1 -1
- package/dist/src/endpoint/lambda_handler.d.ts.map +1 -1
- package/dist/src/endpoint/lambda_handler.js +34 -12
- package/dist/src/endpoint/lambda_handler.js.map +1 -1
- package/dist/src/endpoint.d.ts +5 -3
- package/dist/src/endpoint.d.ts.map +1 -1
- package/dist/src/endpoint.js.map +1 -1
- package/dist/src/generated/proto/discovery_pb.d.ts +18 -0
- package/dist/src/generated/proto/discovery_pb.d.ts.map +1 -0
- package/dist/src/generated/proto/discovery_pb.js +40 -0
- package/dist/src/generated/proto/discovery_pb.js.map +1 -0
- package/dist/src/generated/proto/protocol_pb.d.ts +186 -0
- package/dist/src/generated/proto/protocol_pb.d.ts.map +1 -1
- package/dist/src/generated/proto/protocol_pb.js +177 -1
- package/dist/src/generated/proto/protocol_pb.js.map +1 -1
- package/dist/src/generated/version.d.ts +1 -1
- package/dist/src/generated/version.js +1 -1
- package/dist/src/io/decoder.d.ts +0 -1
- package/dist/src/io/decoder.d.ts.map +1 -1
- package/dist/src/io/decoder.js +2 -8
- package/dist/src/io/decoder.js.map +1 -1
- package/dist/src/io/encoder.d.ts.map +1 -1
- package/dist/src/io/encoder.js +1 -2
- package/dist/src/io/encoder.js.map +1 -1
- package/dist/src/journal.d.ts.map +1 -1
- package/dist/src/journal.js +17 -0
- package/dist/src/journal.js.map +1 -1
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/logger.js +0 -7
- package/dist/src/logger.js.map +1 -1
- package/dist/src/public_api.d.ts +4 -4
- package/dist/src/public_api.d.ts.map +1 -1
- package/dist/src/public_api.js +3 -26
- package/dist/src/public_api.js.map +1 -1
- package/dist/src/state_machine.d.ts +3 -2
- package/dist/src/state_machine.d.ts.map +1 -1
- package/dist/src/state_machine.js +9 -9
- package/dist/src/state_machine.js.map +1 -1
- package/dist/src/types/components.d.ts +31 -19
- package/dist/src/types/components.d.ts.map +1 -1
- package/dist/src/types/components.js +127 -30
- package/dist/src/types/components.js.map +1 -1
- package/dist/src/types/discovery.d.ts +6 -3
- package/dist/src/types/discovery.d.ts.map +1 -1
- package/dist/src/types/discovery.js +2 -0
- package/dist/src/types/discovery.js.map +1 -1
- package/dist/src/types/protocol.d.ts +13 -4
- package/dist/src/types/protocol.d.ts.map +1 -1
- package/dist/src/types/protocol.js +95 -5
- package/dist/src/types/protocol.js.map +1 -1
- package/dist/src/types/rpc.d.ts +276 -26
- package/dist/src/types/rpc.d.ts.map +1 -1
- package/dist/src/types/rpc.js +385 -5
- package/dist/src/types/rpc.js.map +1 -1
- package/dist/src/types/types.d.ts +2 -4
- package/dist/src/types/types.d.ts.map +1 -1
- package/dist/src/types/types.js +3 -14
- package/dist/src/types/types.js.map +1 -1
- package/dist/src/utils/serde.d.ts +2 -0
- package/dist/src/utils/serde.d.ts.map +1 -1
- package/dist/src/utils/serde.js +28 -4
- package/dist/src/utils/serde.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/src/clients/workflow_client.d.ts +0 -77
- package/dist/src/clients/workflow_client.d.ts.map +0 -1
- package/dist/src/clients/workflow_client.js +0 -172
- package/dist/src/clients/workflow_client.js.map +0 -1
- package/dist/src/workflows/workflow.d.ts +0 -101
- package/dist/src/workflows/workflow.d.ts.map +0 -1
- package/dist/src/workflows/workflow.js +0 -84
- package/dist/src/workflows/workflow.js.map +0 -1
- package/dist/src/workflows/workflow_state_service.d.ts +0 -35
- package/dist/src/workflows/workflow_state_service.d.ts.map +0 -1
- package/dist/src/workflows/workflow_state_service.js +0 -201
- package/dist/src/workflows/workflow_state_service.js.map +0 -1
- package/dist/src/workflows/workflow_wrapper_service.d.ts +0 -10
- package/dist/src/workflows/workflow_wrapper_service.d.ts.map +0 -1
- package/dist/src/workflows/workflow_wrapper_service.js +0 -285
- package/dist/src/workflows/workflow_wrapper_service.js.map +0 -1
|
@@ -20,9 +20,11 @@ var ServiceType;
|
|
|
20
20
|
(function (ServiceType) {
|
|
21
21
|
ServiceType["VIRTUAL_OBJECT"] = "VIRTUAL_OBJECT";
|
|
22
22
|
ServiceType["SERVICE"] = "SERVICE";
|
|
23
|
+
ServiceType["WORKFLOW"] = "WORKFLOW";
|
|
23
24
|
})(ServiceType = exports.ServiceType || (exports.ServiceType = {}));
|
|
24
25
|
var ServiceHandlerType;
|
|
25
26
|
(function (ServiceHandlerType) {
|
|
27
|
+
ServiceHandlerType["WORKFLOW"] = "WORKFLOW";
|
|
26
28
|
ServiceHandlerType["EXCLUSIVE"] = "EXCLUSIVE";
|
|
27
29
|
ServiceHandlerType["SHARED"] = "SHARED";
|
|
28
30
|
})(ServiceHandlerType = exports.ServiceHandlerType || (exports.ServiceHandlerType = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/types/discovery.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2CAA2B,CAAA;IAC3B,qDAAqC,CAAA;AACvC,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/types/discovery.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2CAA2B,CAAA;IAC3B,qDAAqC,CAAA;AACvC,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gDAAiC,CAAA;IACjC,kCAAmB,CAAA;IACnB,oCAAqB,CAAA;AACvB,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB;AAED,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,2CAAqB,CAAA;IACrB,6CAAuB,CAAA;IACvB,uCAAiB,CAAA;AACnB,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Message } from "@bufbuild/protobuf";
|
|
2
2
|
import { CombinatorEntryMessage } from "../generated/proto/javascript_pb";
|
|
3
|
-
import { AwakeableEntryMessage, OneWayCallEntryMessage, ClearStateEntryMessage, ClearAllStateEntryMessage, CompleteAwakeableEntryMessage, CompletionMessage, EntryAckMessage, ErrorMessage, EndMessage, GetStateEntryMessage, GetStateKeysEntryMessage, CallEntryMessage, OutputEntryMessage, InputEntryMessage, SetStateEntryMessage, SleepEntryMessage, StartMessage, SuspensionMessage, RunEntryMessage } from "../generated/proto/protocol_pb";
|
|
4
|
-
|
|
3
|
+
import { AwakeableEntryMessage, OneWayCallEntryMessage, ClearStateEntryMessage, ClearAllStateEntryMessage, CompleteAwakeableEntryMessage, CompletionMessage, EntryAckMessage, ErrorMessage, EndMessage, GetStateEntryMessage, GetStateKeysEntryMessage, CallEntryMessage, OutputEntryMessage, InputEntryMessage, SetStateEntryMessage, SleepEntryMessage, StartMessage, SuspensionMessage, RunEntryMessage, GetPromiseEntryMessage, PeekPromiseEntryMessage, CompletePromiseEntryMessage, ServiceProtocolVersion } from "../generated/proto/protocol_pb";
|
|
4
|
+
import { ServiceDiscoveryProtocolVersion } from "../generated/proto/discovery_pb";
|
|
5
|
+
export { AwakeableEntryMessage, OneWayCallEntryMessage, ClearStateEntryMessage, ClearAllStateEntryMessage, CompleteAwakeableEntryMessage, CompletionMessage, ErrorMessage, EndMessage, GetStateEntryMessage, GetStateKeysEntryMessage, CallEntryMessage, OutputEntryMessage, InputEntryMessage, SetStateEntryMessage, SleepEntryMessage, StartMessage, SuspensionMessage, EntryAckMessage, GetPromiseEntryMessage, PeekPromiseEntryMessage, CompletePromiseEntryMessage, } from "../generated/proto/protocol_pb";
|
|
5
6
|
export declare const START_MESSAGE_TYPE = 0n;
|
|
6
7
|
export declare const COMPLETION_MESSAGE_TYPE = 1n;
|
|
7
8
|
export declare const SUSPENSION_MESSAGE_TYPE = 2n;
|
|
@@ -23,11 +24,19 @@ export declare const COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE = 3076n;
|
|
|
23
24
|
export declare const AWAKEABLE_IDENTIFIER_PREFIX = "prom_1";
|
|
24
25
|
export declare const SIDE_EFFECT_ENTRY_MESSAGE_TYPE: bigint;
|
|
25
26
|
export declare const COMBINATOR_ENTRY_MESSAGE = 64514n;
|
|
27
|
+
export declare const GET_PROMISE_MESSAGE_TYPE = 2056n;
|
|
28
|
+
export declare const PEEK_PROMISE_MESSAGE_TYPE = 2057n;
|
|
29
|
+
export declare const COMPLETE_PROMISE_MESSAGE_TYPE = 2058n;
|
|
26
30
|
export declare const KNOWN_MESSAGE_TYPES: Set<bigint>;
|
|
27
|
-
export declare
|
|
31
|
+
export declare const formatMessageType: (messageType: bigint) => string;
|
|
28
32
|
export declare const PROTOBUF_MESSAGE_BY_TYPE: Map<bigint, {
|
|
29
33
|
new (): Message<any>;
|
|
30
34
|
}>;
|
|
31
|
-
export type ProtocolMessage = StartMessage | CompletionMessage | SuspensionMessage | ErrorMessage | EntryAckMessage | EndMessage | InputEntryMessage | OutputEntryMessage | GetStateEntryMessage | GetStateKeysEntryMessage | SetStateEntryMessage | ClearStateEntryMessage | ClearAllStateEntryMessage | SleepEntryMessage | CallEntryMessage | OneWayCallEntryMessage | AwakeableEntryMessage | CompleteAwakeableEntryMessage | RunEntryMessage | CombinatorEntryMessage;
|
|
35
|
+
export type ProtocolMessage = StartMessage | CompletionMessage | SuspensionMessage | ErrorMessage | EntryAckMessage | EndMessage | InputEntryMessage | OutputEntryMessage | GetStateEntryMessage | GetStateKeysEntryMessage | SetStateEntryMessage | ClearStateEntryMessage | ClearAllStateEntryMessage | SleepEntryMessage | CallEntryMessage | OneWayCallEntryMessage | AwakeableEntryMessage | CompleteAwakeableEntryMessage | RunEntryMessage | CombinatorEntryMessage | GetPromiseEntryMessage | PeekPromiseEntryMessage | CompletePromiseEntryMessage;
|
|
32
36
|
export declare const SUSPENSION_TRIGGERS: bigint[];
|
|
37
|
+
export declare function isServiceProtocolVersionSupported(version: ServiceProtocolVersion): boolean;
|
|
38
|
+
export declare function parseServiceProtocolVersion(versionString: string | undefined): ServiceProtocolVersion;
|
|
39
|
+
export declare function serviceProtocolVersionToHeaderValue(serviceProtocolVersion: ServiceProtocolVersion): string;
|
|
40
|
+
export declare function serviceDiscoveryProtocolVersionToHeaderValue(serviceDiscoveryProtocolVersion: ServiceDiscoveryProtocolVersion): string;
|
|
41
|
+
export declare function selectSupportedServiceDiscoveryProtocolVersion(acceptVersionsString: string | undefined): ServiceDiscoveryProtocolVersion;
|
|
33
42
|
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/types/protocol.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,6BAA6B,EAC7B,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,eAAe,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/types/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
* https://github.com/restatedev/sdk-typescript/blob/main/LICENSE
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.SUSPENSION_TRIGGERS = exports.PROTOBUF_MESSAGE_BY_TYPE = exports.formatMessageType = exports.KNOWN_MESSAGE_TYPES = exports.COMBINATOR_ENTRY_MESSAGE = exports.SIDE_EFFECT_ENTRY_MESSAGE_TYPE = exports.AWAKEABLE_IDENTIFIER_PREFIX = exports.COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE = exports.AWAKEABLE_ENTRY_MESSAGE_TYPE = exports.BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE = exports.INVOKE_ENTRY_MESSAGE_TYPE = exports.SLEEP_ENTRY_MESSAGE_TYPE = exports.GET_STATE_KEYS_ENTRY_MESSAGE_TYPE = exports.CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE = exports.CLEAR_STATE_ENTRY_MESSAGE_TYPE = exports.SET_STATE_ENTRY_MESSAGE_TYPE = exports.GET_STATE_ENTRY_MESSAGE_TYPE = exports.OUTPUT_ENTRY_MESSAGE_TYPE = exports.INPUT_ENTRY_MESSAGE_TYPE = exports.END_MESSAGE_TYPE = exports.ENTRY_ACK_MESSAGE_TYPE = exports.ERROR_MESSAGE_TYPE = exports.SUSPENSION_MESSAGE_TYPE = exports.COMPLETION_MESSAGE_TYPE = exports.START_MESSAGE_TYPE = exports.EntryAckMessage = exports.SuspensionMessage = exports.StartMessage = exports.SleepEntryMessage = exports.SetStateEntryMessage = exports.InputEntryMessage = exports.OutputEntryMessage = exports.CallEntryMessage = exports.GetStateKeysEntryMessage = exports.GetStateEntryMessage = exports.EndMessage = exports.ErrorMessage = exports.CompletionMessage = exports.CompleteAwakeableEntryMessage = exports.ClearAllStateEntryMessage = exports.ClearStateEntryMessage = exports.OneWayCallEntryMessage = exports.AwakeableEntryMessage = void 0;
|
|
13
|
+
exports.isServiceProtocolVersionSupported = exports.SUSPENSION_TRIGGERS = exports.PROTOBUF_MESSAGE_BY_TYPE = exports.formatMessageType = exports.KNOWN_MESSAGE_TYPES = exports.COMPLETE_PROMISE_MESSAGE_TYPE = exports.PEEK_PROMISE_MESSAGE_TYPE = exports.GET_PROMISE_MESSAGE_TYPE = exports.COMBINATOR_ENTRY_MESSAGE = exports.SIDE_EFFECT_ENTRY_MESSAGE_TYPE = exports.AWAKEABLE_IDENTIFIER_PREFIX = exports.COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE = exports.AWAKEABLE_ENTRY_MESSAGE_TYPE = exports.BACKGROUND_INVOKE_ENTRY_MESSAGE_TYPE = exports.INVOKE_ENTRY_MESSAGE_TYPE = exports.SLEEP_ENTRY_MESSAGE_TYPE = exports.GET_STATE_KEYS_ENTRY_MESSAGE_TYPE = exports.CLEAR_ALL_STATE_ENTRY_MESSAGE_TYPE = exports.CLEAR_STATE_ENTRY_MESSAGE_TYPE = exports.SET_STATE_ENTRY_MESSAGE_TYPE = exports.GET_STATE_ENTRY_MESSAGE_TYPE = exports.OUTPUT_ENTRY_MESSAGE_TYPE = exports.INPUT_ENTRY_MESSAGE_TYPE = exports.END_MESSAGE_TYPE = exports.ENTRY_ACK_MESSAGE_TYPE = exports.ERROR_MESSAGE_TYPE = exports.SUSPENSION_MESSAGE_TYPE = exports.COMPLETION_MESSAGE_TYPE = exports.START_MESSAGE_TYPE = exports.CompletePromiseEntryMessage = exports.PeekPromiseEntryMessage = exports.GetPromiseEntryMessage = exports.EntryAckMessage = exports.SuspensionMessage = exports.StartMessage = exports.SleepEntryMessage = exports.SetStateEntryMessage = exports.InputEntryMessage = exports.OutputEntryMessage = exports.CallEntryMessage = exports.GetStateKeysEntryMessage = exports.GetStateEntryMessage = exports.EndMessage = exports.ErrorMessage = exports.CompletionMessage = exports.CompleteAwakeableEntryMessage = exports.ClearAllStateEntryMessage = exports.ClearStateEntryMessage = exports.OneWayCallEntryMessage = exports.AwakeableEntryMessage = void 0;
|
|
14
|
+
exports.selectSupportedServiceDiscoveryProtocolVersion = exports.serviceDiscoveryProtocolVersionToHeaderValue = exports.serviceProtocolVersionToHeaderValue = exports.parseServiceProtocolVersion = void 0;
|
|
14
15
|
const javascript_pb_1 = require("../generated/proto/javascript_pb");
|
|
15
16
|
const protocol_pb_1 = require("../generated/proto/protocol_pb");
|
|
17
|
+
const discovery_pb_1 = require("../generated/proto/discovery_pb");
|
|
16
18
|
// Re-export the protobuf messages.
|
|
17
19
|
var protocol_pb_2 = require("../generated/proto/protocol_pb");
|
|
18
20
|
Object.defineProperty(exports, "AwakeableEntryMessage", { enumerable: true, get: function () { return protocol_pb_2.AwakeableEntryMessage; } });
|
|
@@ -33,6 +35,9 @@ Object.defineProperty(exports, "SleepEntryMessage", { enumerable: true, get: fun
|
|
|
33
35
|
Object.defineProperty(exports, "StartMessage", { enumerable: true, get: function () { return protocol_pb_2.StartMessage; } });
|
|
34
36
|
Object.defineProperty(exports, "SuspensionMessage", { enumerable: true, get: function () { return protocol_pb_2.SuspensionMessage; } });
|
|
35
37
|
Object.defineProperty(exports, "EntryAckMessage", { enumerable: true, get: function () { return protocol_pb_2.EntryAckMessage; } });
|
|
38
|
+
Object.defineProperty(exports, "GetPromiseEntryMessage", { enumerable: true, get: function () { return protocol_pb_2.GetPromiseEntryMessage; } });
|
|
39
|
+
Object.defineProperty(exports, "PeekPromiseEntryMessage", { enumerable: true, get: function () { return protocol_pb_2.PeekPromiseEntryMessage; } });
|
|
40
|
+
Object.defineProperty(exports, "CompletePromiseEntryMessage", { enumerable: true, get: function () { return protocol_pb_2.CompletePromiseEntryMessage; } });
|
|
36
41
|
// Export the protocol message types as defined by the restate protocol.
|
|
37
42
|
exports.START_MESSAGE_TYPE = 0x0000n;
|
|
38
43
|
exports.COMPLETION_MESSAGE_TYPE = 0x0001n;
|
|
@@ -57,7 +62,10 @@ exports.SIDE_EFFECT_ENTRY_MESSAGE_TYPE = 0x0c00n + 5n;
|
|
|
57
62
|
// Export the custom message types
|
|
58
63
|
// Side effects are custom messages because the runtime does not need to inspect them
|
|
59
64
|
exports.COMBINATOR_ENTRY_MESSAGE = 0xfc02n;
|
|
60
|
-
//
|
|
65
|
+
// Durable promise
|
|
66
|
+
exports.GET_PROMISE_MESSAGE_TYPE = 0x808n;
|
|
67
|
+
exports.PEEK_PROMISE_MESSAGE_TYPE = 0x809n;
|
|
68
|
+
exports.COMPLETE_PROMISE_MESSAGE_TYPE = 0x80an;
|
|
61
69
|
// Message types in the protocol.
|
|
62
70
|
// Custom message types (per SDK) such as side effect entry message should not be included here.
|
|
63
71
|
exports.KNOWN_MESSAGE_TYPES = new Set([
|
|
@@ -81,6 +89,9 @@ exports.KNOWN_MESSAGE_TYPES = new Set([
|
|
|
81
89
|
exports.COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE,
|
|
82
90
|
exports.SIDE_EFFECT_ENTRY_MESSAGE_TYPE,
|
|
83
91
|
exports.COMBINATOR_ENTRY_MESSAGE,
|
|
92
|
+
exports.GET_PROMISE_MESSAGE_TYPE,
|
|
93
|
+
exports.PEEK_PROMISE_MESSAGE_TYPE,
|
|
94
|
+
exports.COMPLETE_PROMISE_MESSAGE_TYPE,
|
|
84
95
|
]);
|
|
85
96
|
const PROTOBUF_MESSAGE_NAME_BY_TYPE = new Map([
|
|
86
97
|
[exports.START_MESSAGE_TYPE, "StartMessage"],
|
|
@@ -103,10 +114,13 @@ const PROTOBUF_MESSAGE_NAME_BY_TYPE = new Map([
|
|
|
103
114
|
[exports.COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, "CompleteAwakeableEntryMessage"],
|
|
104
115
|
[exports.SIDE_EFFECT_ENTRY_MESSAGE_TYPE, "RunEntryMessage"],
|
|
105
116
|
[exports.COMBINATOR_ENTRY_MESSAGE, "CombinatorEntryMessage"],
|
|
117
|
+
[exports.GET_PROMISE_MESSAGE_TYPE, "GetPromiseEntryMessage"],
|
|
118
|
+
[exports.PEEK_PROMISE_MESSAGE_TYPE, "PeekPromiseEntryMessage"],
|
|
119
|
+
[exports.COMPLETE_PROMISE_MESSAGE_TYPE, "CompletePromiseEntryMessage"],
|
|
106
120
|
]);
|
|
107
|
-
|
|
108
|
-
return (PROTOBUF_MESSAGE_NAME_BY_TYPE.get(messageType)
|
|
109
|
-
}
|
|
121
|
+
const formatMessageType = (messageType) => {
|
|
122
|
+
return (PROTOBUF_MESSAGE_NAME_BY_TYPE.get(messageType) ?? messageType.toString());
|
|
123
|
+
};
|
|
110
124
|
exports.formatMessageType = formatMessageType;
|
|
111
125
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
112
126
|
const PROTOBUF_MESSAGES = [
|
|
@@ -130,6 +144,9 @@ const PROTOBUF_MESSAGES = [
|
|
|
130
144
|
[exports.COMPLETE_AWAKEABLE_ENTRY_MESSAGE_TYPE, protocol_pb_1.CompleteAwakeableEntryMessage],
|
|
131
145
|
[exports.SIDE_EFFECT_ENTRY_MESSAGE_TYPE, protocol_pb_1.RunEntryMessage],
|
|
132
146
|
[exports.COMBINATOR_ENTRY_MESSAGE, javascript_pb_1.CombinatorEntryMessage],
|
|
147
|
+
[exports.GET_PROMISE_MESSAGE_TYPE, protocol_pb_1.GetPromiseEntryMessage],
|
|
148
|
+
[exports.PEEK_PROMISE_MESSAGE_TYPE, protocol_pb_1.PeekPromiseEntryMessage],
|
|
149
|
+
[exports.COMPLETE_PROMISE_MESSAGE_TYPE, protocol_pb_1.CompletePromiseEntryMessage],
|
|
133
150
|
];
|
|
134
151
|
exports.PROTOBUF_MESSAGE_BY_TYPE = new Map(PROTOBUF_MESSAGES);
|
|
135
152
|
// These message types will trigger sending a suspension message from the runtime
|
|
@@ -143,5 +160,78 @@ exports.SUSPENSION_TRIGGERS = [
|
|
|
143
160
|
exports.COMBINATOR_ENTRY_MESSAGE,
|
|
144
161
|
// We need it because of the ack
|
|
145
162
|
exports.SIDE_EFFECT_ENTRY_MESSAGE_TYPE,
|
|
163
|
+
// promises need completion
|
|
164
|
+
exports.GET_PROMISE_MESSAGE_TYPE,
|
|
165
|
+
exports.PEEK_PROMISE_MESSAGE_TYPE,
|
|
166
|
+
exports.COMPLETE_PROMISE_MESSAGE_TYPE,
|
|
146
167
|
];
|
|
168
|
+
const MIN_SERVICE_PROTOCOL_VERSION = protocol_pb_1.ServiceProtocolVersion.V1;
|
|
169
|
+
const MAX_SERVICE_PROTOCOL_VERSION = protocol_pb_1.ServiceProtocolVersion.V1;
|
|
170
|
+
const MIN_SERVICE_DISCOVERY_PROTOCOL_VERSION = discovery_pb_1.ServiceDiscoveryProtocolVersion.V1;
|
|
171
|
+
const MAX_SERVICE_DISCOVERY_PROTOCOL_VERSION = discovery_pb_1.ServiceDiscoveryProtocolVersion.V1;
|
|
172
|
+
function isServiceProtocolVersionSupported(version) {
|
|
173
|
+
return (version >= MIN_SERVICE_PROTOCOL_VERSION &&
|
|
174
|
+
version <= MAX_SERVICE_PROTOCOL_VERSION);
|
|
175
|
+
}
|
|
176
|
+
exports.isServiceProtocolVersionSupported = isServiceProtocolVersionSupported;
|
|
177
|
+
function isServiceDiscoveryProtocolVersionSupported(version) {
|
|
178
|
+
return (version >= MIN_SERVICE_DISCOVERY_PROTOCOL_VERSION &&
|
|
179
|
+
version <= MAX_SERVICE_DISCOVERY_PROTOCOL_VERSION);
|
|
180
|
+
}
|
|
181
|
+
function parseServiceProtocolVersion(versionString) {
|
|
182
|
+
// if nothing is set, assume we are using V1
|
|
183
|
+
if (versionString === undefined ||
|
|
184
|
+
versionString === null ||
|
|
185
|
+
versionString === "") {
|
|
186
|
+
return protocol_pb_1.ServiceProtocolVersion.V1;
|
|
187
|
+
}
|
|
188
|
+
versionString = versionString.trim();
|
|
189
|
+
if (versionString === "application/vnd.restate.invocation.v1") {
|
|
190
|
+
return protocol_pb_1.ServiceProtocolVersion.V1;
|
|
191
|
+
}
|
|
192
|
+
return protocol_pb_1.ServiceProtocolVersion.SERVICE_PROTOCOL_VERSION_UNSPECIFIED;
|
|
193
|
+
}
|
|
194
|
+
exports.parseServiceProtocolVersion = parseServiceProtocolVersion;
|
|
195
|
+
function serviceProtocolVersionToHeaderValue(serviceProtocolVersion) {
|
|
196
|
+
switch (serviceProtocolVersion) {
|
|
197
|
+
case protocol_pb_1.ServiceProtocolVersion.V1:
|
|
198
|
+
return "application/vnd.restate.invocation.v1";
|
|
199
|
+
default:
|
|
200
|
+
throw new Error(`Unsupported service discovery protocol version: ${serviceProtocolVersion}`);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
exports.serviceProtocolVersionToHeaderValue = serviceProtocolVersionToHeaderValue;
|
|
204
|
+
function parseServiceDiscoveryProtocolVersion(versionString) {
|
|
205
|
+
versionString = versionString.trim();
|
|
206
|
+
if (versionString === "application/vnd.restate.endpointmanifest.v1+json") {
|
|
207
|
+
return discovery_pb_1.ServiceDiscoveryProtocolVersion.V1;
|
|
208
|
+
}
|
|
209
|
+
return discovery_pb_1.ServiceDiscoveryProtocolVersion.SERVICE_DISCOVERY_PROTOCOL_VERSION_UNSPECIFIED;
|
|
210
|
+
}
|
|
211
|
+
function serviceDiscoveryProtocolVersionToHeaderValue(serviceDiscoveryProtocolVersion) {
|
|
212
|
+
switch (serviceDiscoveryProtocolVersion) {
|
|
213
|
+
case discovery_pb_1.ServiceDiscoveryProtocolVersion.V1:
|
|
214
|
+
return "application/vnd.restate.endpointmanifest.v1+json";
|
|
215
|
+
default:
|
|
216
|
+
throw new Error(`Unsupported service discovery protocol version: ${serviceDiscoveryProtocolVersion}`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
exports.serviceDiscoveryProtocolVersionToHeaderValue = serviceDiscoveryProtocolVersionToHeaderValue;
|
|
220
|
+
function selectSupportedServiceDiscoveryProtocolVersion(acceptVersionsString) {
|
|
221
|
+
if (acceptVersionsString === undefined ||
|
|
222
|
+
acceptVersionsString === null ||
|
|
223
|
+
acceptVersionsString === "") {
|
|
224
|
+
return discovery_pb_1.ServiceDiscoveryProtocolVersion.V1;
|
|
225
|
+
}
|
|
226
|
+
let maxVersion = discovery_pb_1.ServiceDiscoveryProtocolVersion.SERVICE_DISCOVERY_PROTOCOL_VERSION_UNSPECIFIED;
|
|
227
|
+
acceptVersionsString.split(",").forEach((versionString) => {
|
|
228
|
+
const version = parseServiceDiscoveryProtocolVersion(versionString);
|
|
229
|
+
if (isServiceDiscoveryProtocolVersionSupported(version) &&
|
|
230
|
+
version > maxVersion) {
|
|
231
|
+
maxVersion = version;
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
return maxVersion;
|
|
235
|
+
}
|
|
236
|
+
exports.selectSupportedServiceDiscoveryProtocolVersion = selectSupportedServiceDiscoveryProtocolVersion;
|
|
147
237
|
//# sourceMappingURL=protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/types/protocol.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/types/protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types/rpc.d.ts
CHANGED
|
@@ -1,50 +1,300 @@
|
|
|
1
|
-
import { CombineablePromise, Context, ObjectContext } from "../context";
|
|
2
|
-
|
|
1
|
+
import { CombineablePromise, Context, ObjectContext, ObjectSharedContext, WorkflowContext, WorkflowSharedContext } from "../context";
|
|
2
|
+
import { ServiceHandler, ServiceDefinition, ObjectHandler, ObjectSharedHandler, VirtualObjectDefinition, WorkflowHandler, WorkflowDefinition, WorkflowSharedHandler } from "@restatedev/restate-sdk-core";
|
|
3
3
|
export type Client<M> = {
|
|
4
|
-
[K in keyof M as M[K] extends never ? never : K]: M[K] extends (...args: infer P) => PromiseLike<infer O> ? (...args: P) => CombineablePromise<O> : never;
|
|
4
|
+
[K in keyof M as M[K] extends never ? never : K]: M[K] extends (arg: any, ...args: infer P) => PromiseLike<infer O> ? (...args: P) => CombineablePromise<O> : never;
|
|
5
5
|
};
|
|
6
6
|
export type SendClient<M> = {
|
|
7
|
-
[K in keyof M as M[K] extends never ? never : K]: M[K] extends (...args: infer P) => any ? (...args: P) => void : never;
|
|
7
|
+
[K in keyof M as M[K] extends never ? never : K]: M[K] extends (arg: any, ...args: infer P) => any ? (...args: P) => void : never;
|
|
8
8
|
};
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
export declare enum HandlerKind {
|
|
10
|
+
SERVICE = 0,
|
|
11
|
+
EXCLUSIVE = 1,
|
|
12
|
+
SHARED = 2,
|
|
13
|
+
WORKFLOW = 3
|
|
14
|
+
}
|
|
15
|
+
export type ServiceHandlerOpts = {
|
|
16
|
+
accept?: string;
|
|
17
|
+
contentType?: string;
|
|
18
|
+
inputDeserializer?: <T>(input: Uint8Array) => T | undefined;
|
|
19
|
+
outputSerializer?: <T>(output: T | undefined) => Uint8Array;
|
|
12
20
|
};
|
|
13
|
-
export type
|
|
14
|
-
|
|
21
|
+
export type ObjectHandlerOpts = {
|
|
22
|
+
accept?: string;
|
|
23
|
+
contentType?: string;
|
|
24
|
+
inputDeserializer?: <T>(input: Uint8Array) => T | undefined;
|
|
25
|
+
outputSerializer?: <T>(output: T | undefined) => Uint8Array;
|
|
15
26
|
};
|
|
16
|
-
export type
|
|
17
|
-
|
|
18
|
-
|
|
27
|
+
export type WorkflowHandlerOpts = {
|
|
28
|
+
accept?: string;
|
|
29
|
+
contentType?: string;
|
|
30
|
+
inputDeserializer?: <T>(input: Uint8Array) => T | undefined;
|
|
31
|
+
outputSerializer?: <T>(output: T | undefined) => Uint8Array;
|
|
32
|
+
};
|
|
33
|
+
export declare class HandlerWrapper {
|
|
34
|
+
readonly kind: HandlerKind;
|
|
35
|
+
private handler;
|
|
36
|
+
readonly accept: string;
|
|
37
|
+
readonly contentType: string;
|
|
38
|
+
readonly deserializer: (input: Uint8Array) => unknown;
|
|
39
|
+
readonly serializer: (input: unknown) => Uint8Array;
|
|
40
|
+
static from(kind: HandlerKind, handler: Function, opts?: ServiceHandlerOpts | ObjectHandlerOpts): HandlerWrapper;
|
|
41
|
+
static fromHandler(handler: any): HandlerWrapper | undefined;
|
|
42
|
+
private constructor();
|
|
43
|
+
bindInstance(t: unknown): void;
|
|
44
|
+
invoke(context: unknown, input: Uint8Array): Promise<Uint8Array>;
|
|
45
|
+
/**
|
|
46
|
+
* Instead of a HandlerWrapper with a handler property,
|
|
47
|
+
* return the original handler with a HandlerWrapper property.
|
|
48
|
+
* This is needed to keep the appearance of regular functions
|
|
49
|
+
* bound to an object, so that for example, `this.foo(ctx, arg)` would
|
|
50
|
+
* work.
|
|
51
|
+
*/
|
|
52
|
+
transpose<F>(): F;
|
|
53
|
+
}
|
|
54
|
+
export declare namespace handlers {
|
|
55
|
+
/**
|
|
56
|
+
* Create a service handler.
|
|
57
|
+
*
|
|
58
|
+
* @param opts additional configuration
|
|
59
|
+
* @param fn the actual handler code to execute
|
|
60
|
+
*/
|
|
61
|
+
function handler<F>(opts: ServiceHandlerOpts, fn: ServiceHandler<F, Context>): F;
|
|
62
|
+
namespace workflow {
|
|
63
|
+
function workflow<F>(opts: WorkflowHandlerOpts, fn: WorkflowHandler<F, WorkflowContext>): F;
|
|
64
|
+
function workflow<F>(fn: WorkflowHandler<F, WorkflowContext>): F;
|
|
65
|
+
/**
|
|
66
|
+
* Creates a shared handler for a workflow.
|
|
67
|
+
*
|
|
68
|
+
* A shared handler allows a read-only concurrent execution
|
|
69
|
+
* for a given key.
|
|
70
|
+
*
|
|
71
|
+
* @param opts additional configurations
|
|
72
|
+
* @param fn the handler to execute
|
|
73
|
+
*/
|
|
74
|
+
function shared<F>(opts: WorkflowHandlerOpts, fn: WorkflowSharedHandler<F, WorkflowSharedContext>): F;
|
|
75
|
+
/**
|
|
76
|
+
* Creates a shared handler for a workflow.
|
|
77
|
+
*
|
|
78
|
+
* A shared handler allows a read-only concurrent execution
|
|
79
|
+
* for a given key.
|
|
80
|
+
*
|
|
81
|
+
* @param opts additional configurations
|
|
82
|
+
* @param fn the handler to execute
|
|
83
|
+
*/
|
|
84
|
+
function shared<F>(fn: WorkflowSharedHandler<F, WorkflowSharedContext>): F;
|
|
85
|
+
}
|
|
86
|
+
namespace object {
|
|
87
|
+
/**
|
|
88
|
+
* Creates an exclusive handler for a virtual Object.
|
|
89
|
+
*
|
|
90
|
+
* note : This applies only to a virtual object.
|
|
91
|
+
*
|
|
92
|
+
* @param opts additional configurations
|
|
93
|
+
* @param fn the handler to execute
|
|
94
|
+
*/
|
|
95
|
+
function exclusive<F>(opts: ObjectHandlerOpts, fn: ObjectHandler<F, ObjectContext>): F;
|
|
96
|
+
/**
|
|
97
|
+
* Creates an exclusive handler for a virtual Object.
|
|
98
|
+
*
|
|
99
|
+
*
|
|
100
|
+
* note 1: This applies only to a virtual object.
|
|
101
|
+
* note 2: This is the default for virtual objects, so if no
|
|
102
|
+
* additional reconfiguration is needed, you can simply
|
|
103
|
+
* use the handler directly (no need to use exclusive).
|
|
104
|
+
* This variant here is only for symmetry/convenance.
|
|
105
|
+
*
|
|
106
|
+
* @param fn the handler to execute
|
|
107
|
+
*/
|
|
108
|
+
function exclusive<F>(fn: ObjectHandler<F, ObjectContext>): F;
|
|
109
|
+
/**
|
|
110
|
+
* Creates a shared handler for a virtual Object.
|
|
111
|
+
*
|
|
112
|
+
* A shared handler allows a read-only concurrent execution
|
|
113
|
+
* for a given key.
|
|
114
|
+
*
|
|
115
|
+
* note: This applies only to a virtual object.
|
|
116
|
+
*
|
|
117
|
+
* @param opts additional configurations
|
|
118
|
+
* @param fn the handler to execute
|
|
119
|
+
*/
|
|
120
|
+
function shared<F>(opts: ObjectHandlerOpts, fn: ObjectSharedHandler<F, ObjectSharedContext>): F;
|
|
121
|
+
/**
|
|
122
|
+
* Creates a shared handler for a virtual Object.
|
|
123
|
+
*
|
|
124
|
+
* A shared handler allows a read-only concurrent execution
|
|
125
|
+
* for a given key.
|
|
126
|
+
*
|
|
127
|
+
* note: This applies only to a virtual object.
|
|
128
|
+
*
|
|
129
|
+
* @param opts additional configurations
|
|
130
|
+
* @param fn the handler to execute
|
|
131
|
+
*/
|
|
132
|
+
function shared<F>(fn: ObjectSharedHandler<F, ObjectSharedContext>): F;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
export type ServiceOpts<U> = {
|
|
136
|
+
[K in keyof U]: U[K] extends ServiceHandler<any, Context> ? U[K] : never;
|
|
19
137
|
};
|
|
20
138
|
/**
|
|
21
139
|
* Define a Restate service.
|
|
22
140
|
*
|
|
23
|
-
* @
|
|
141
|
+
* @example Here is an example of how to define a service:
|
|
142
|
+
*
|
|
143
|
+
* ```ts
|
|
144
|
+
* const greeter = service({
|
|
145
|
+
* name: "greeter",
|
|
146
|
+
* handlers: {
|
|
147
|
+
* greet: async (ctx: Context, name: string) => {
|
|
148
|
+
* return `Hello ${name}`;
|
|
149
|
+
* }
|
|
150
|
+
* }
|
|
151
|
+
* });
|
|
152
|
+
* ```
|
|
153
|
+
*
|
|
154
|
+
* To use the service, you can bind it to an endpoint:
|
|
155
|
+
* ```
|
|
156
|
+
* ...
|
|
157
|
+
* endpoint.bind(greeter)
|
|
158
|
+
* ```
|
|
159
|
+
* @example To use a service, you can export its type to be used in a client:
|
|
160
|
+
* ```
|
|
161
|
+
* export type Greeter = typeof greeter;
|
|
162
|
+
* ...
|
|
163
|
+
* ...
|
|
164
|
+
* import type { Greeter } from "./greeter";
|
|
165
|
+
* const client = ctx.serviceClient<Greeter>({ name : "greeter"});
|
|
166
|
+
* client.greet("World").then(console.log);
|
|
167
|
+
* ```
|
|
168
|
+
*
|
|
169
|
+
* @example Alternatively to avoid repeating the service name, you can:
|
|
170
|
+
* ```
|
|
171
|
+
* import type {Greeter} from "./greeter";
|
|
172
|
+
* const Greeter: Greeter = { name : "greeter"};
|
|
173
|
+
*
|
|
174
|
+
* // now you can reference the service like this:
|
|
175
|
+
* const client = ctx.serviceClient(Greeter);
|
|
176
|
+
* ```
|
|
177
|
+
*
|
|
178
|
+
* @param name the service name
|
|
179
|
+
* @param handlers the handlers for the service
|
|
180
|
+
* @type P the name of the service
|
|
181
|
+
* @type M the handlers for the service
|
|
24
182
|
*/
|
|
25
183
|
export declare const service: <P extends string, M>(service: {
|
|
26
184
|
name: P;
|
|
27
185
|
handlers: ServiceOpts<M>;
|
|
28
|
-
}) => ServiceDefinition<P,
|
|
29
|
-
export type ObjectHandler<F> = F extends (ctx: ObjectContext, param: any) => Promise<any> ? F : F extends (ctx: ObjectContext) => Promise<any> ? F : never;
|
|
186
|
+
}) => ServiceDefinition<P, M>;
|
|
30
187
|
export type ObjectOpts<U> = {
|
|
31
|
-
[K in keyof U]: U[K] extends ObjectHandler<U[K]> ? U[K] : never;
|
|
32
|
-
};
|
|
33
|
-
export type VirtualObject<U> = {
|
|
34
|
-
[K in keyof U]: U[K] extends ObjectHandler<infer F> ? WithoutRpcContext<F> : never;
|
|
35
|
-
};
|
|
36
|
-
export type VirtualObjectDefinition<P extends string, M> = {
|
|
37
|
-
name: P;
|
|
38
|
-
object?: VirtualObject<M>;
|
|
188
|
+
[K in keyof U]: U[K] extends ObjectHandler<U[K], ObjectContext> ? U[K] : U[K] extends ObjectHandler<U[K], ObjectSharedContext> ? U[K] : never;
|
|
39
189
|
};
|
|
40
190
|
/**
|
|
41
191
|
* Define a Restate virtual object.
|
|
42
192
|
*
|
|
43
|
-
* @
|
|
193
|
+
* @example Here is an example of how to define a virtual object:
|
|
194
|
+
* ```ts
|
|
195
|
+
* const counter = object({
|
|
196
|
+
* name: "counter",
|
|
197
|
+
* handlers: {
|
|
198
|
+
* add: async (ctx: ObjectContext, amount: number) => {},
|
|
199
|
+
* get: async (ctx: ObjectContext) => {}
|
|
200
|
+
* }
|
|
201
|
+
* })
|
|
202
|
+
* ```
|
|
203
|
+
*
|
|
204
|
+
* @example To use the object, you can bind it to an endpoint:
|
|
205
|
+
* ```ts
|
|
206
|
+
* ...
|
|
207
|
+
* endpoint.bind(counter)
|
|
208
|
+
* ```
|
|
209
|
+
*
|
|
210
|
+
* @see to interact with the object, you can use the object client:
|
|
211
|
+
* ```ts
|
|
212
|
+
* ...
|
|
213
|
+
* const client = ctx.objectClient<typeof counter>({ name: "counter"});
|
|
214
|
+
* const res = await client.add(1)
|
|
215
|
+
* ```
|
|
216
|
+
*
|
|
217
|
+
* ### Shared handlers
|
|
218
|
+
*
|
|
219
|
+
* Shared handlers are used to allow concurrent read-only access to the object.
|
|
220
|
+
* This is useful when you want to allow multiple clients to read the object's state at the same time.
|
|
221
|
+
* To define a shared handler, you can use the `shared` decorator as shown below:
|
|
222
|
+
*
|
|
223
|
+
* ```ts
|
|
224
|
+
* const counter = object({
|
|
225
|
+
* name: "counter",
|
|
226
|
+
* handlers: {
|
|
227
|
+
*
|
|
228
|
+
* add: async (ctx: ObjectContext, amount: number) => { .. },
|
|
229
|
+
*
|
|
230
|
+
* get: handlers.object.shared(async (ctx: ObjectSharedContext) => {
|
|
231
|
+
* return ctx.get<number>("count");
|
|
232
|
+
* })
|
|
233
|
+
* }
|
|
234
|
+
* });
|
|
235
|
+
* ```
|
|
236
|
+
*
|
|
237
|
+
* @param name the name of the object
|
|
238
|
+
* @param handlers the handlers for the object
|
|
44
239
|
*/
|
|
45
240
|
export declare const object: <P extends string, M>(object: {
|
|
46
241
|
name: P;
|
|
47
242
|
handlers: ObjectOpts<M>;
|
|
48
|
-
}) => VirtualObjectDefinition<P,
|
|
49
|
-
|
|
243
|
+
}) => VirtualObjectDefinition<P, M>;
|
|
244
|
+
/**
|
|
245
|
+
* A workflow handlers is a type that describes the handlers for a workflow.
|
|
246
|
+
* The handlers must contain exactly one handler named 'run', and this handler must accept as a first argument a WorkflowContext.
|
|
247
|
+
* It can contain any number of additional handlers, which must accept as a first argument a WorkflowSharedContext.
|
|
248
|
+
* The handlers can not be named 'workflowSubmit', 'workflowAttach', 'workflowOutput' - as these are reserved.
|
|
249
|
+
* @see {@link workflow} for an example.
|
|
250
|
+
*/
|
|
251
|
+
export type WorkflowOpts<U> = {
|
|
252
|
+
run: (ctx: WorkflowContext, argument: any) => Promise<any>;
|
|
253
|
+
} & {
|
|
254
|
+
[K in keyof U]: K extends "workflowSubmit" | "workflowAttach" | "workflowOutput" ? `${K} is a reserved keyword` : K extends "run" ? U[K] extends WorkflowHandler<U[K], WorkflowContext> ? U[K] : "An handler named 'run' must take as a first argument a WorkflowContext, and must return a Promise" : U[K] extends WorkflowSharedHandler<U[K], WorkflowSharedContext> ? U[K] : "An handler other then 'run' must accept as a first argument a WorkflowSharedContext";
|
|
255
|
+
};
|
|
256
|
+
/**
|
|
257
|
+
* Define a Restate workflow.
|
|
258
|
+
*
|
|
259
|
+
*
|
|
260
|
+
* @example Here is an example of how to define a workflow:
|
|
261
|
+
* ```ts
|
|
262
|
+
* const mywf = workflow({
|
|
263
|
+
* name: "mywf",
|
|
264
|
+
* handlers: {
|
|
265
|
+
* run: async (ctx: WorkflowContext, argument: any) => {
|
|
266
|
+
* return "Hello World";
|
|
267
|
+
* }
|
|
268
|
+
* }
|
|
269
|
+
* });
|
|
270
|
+
* ```
|
|
271
|
+
*
|
|
272
|
+
* ### Note:
|
|
273
|
+
* * That a workflow must contain exactly one handler named 'run', and this handler must accept as a first argument a WorkflowContext.
|
|
274
|
+
* * The workflow handlers other than 'run' must accept as a first argument a WorkflowSharedContext.
|
|
275
|
+
* * The workflow handlers can not be named 'workflowSubmit', 'workflowAttach', 'workflowOutput' - as these are reserved keywords.
|
|
276
|
+
*
|
|
277
|
+
* @example To use the workflow, you can bind it to an endpoint:
|
|
278
|
+
* ```ts
|
|
279
|
+
* endpoint.bind(mywf)
|
|
280
|
+
* ```
|
|
281
|
+
*
|
|
282
|
+
* @example To interact with the workflow, you can use the workflow client:
|
|
283
|
+
* ```ts
|
|
284
|
+
* const client = ctx.workflowClient<typeof mywf>({ name: "mywf"});
|
|
285
|
+
* const res = await client.run("Hello");
|
|
286
|
+
* ```
|
|
287
|
+
*
|
|
288
|
+
* To use the workflow client from any other environment (like a browser), please refer to the documentation.
|
|
289
|
+
* https://docs.restate.dev
|
|
290
|
+
*
|
|
291
|
+
*
|
|
292
|
+
*
|
|
293
|
+
* @param name the workflow name
|
|
294
|
+
* @param handlers the handlers for the workflow.
|
|
295
|
+
*/
|
|
296
|
+
export declare const workflow: <P extends string, M>(workflow: {
|
|
297
|
+
name: P;
|
|
298
|
+
handlers: WorkflowOpts<M>;
|
|
299
|
+
}) => WorkflowDefinition<P, M>;
|
|
50
300
|
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/types/rpc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/types/rpc.ts"],"names":[],"mappings":"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"}
|