@restatedev/restate-sdk-cloudflare-workers 1.17.1 → 1.17.3

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.
Files changed (49) hide show
  1. package/dist/common_api.d.cts +2 -2
  2. package/dist/common_api.d.cts.map +1 -1
  3. package/dist/common_api.d.ts +2 -2
  4. package/dist/common_api.d.ts.map +1 -1
  5. package/dist/common_api.js.map +1 -1
  6. package/dist/context_impl.cjs +74 -17
  7. package/dist/context_impl.js +74 -17
  8. package/dist/context_impl.js.map +1 -1
  9. package/dist/endpoint/endpoint.cjs +1 -1
  10. package/dist/endpoint/endpoint.js +1 -1
  11. package/dist/endpoint/endpoint.js.map +1 -1
  12. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +3 -1
  13. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings_bg.js +24 -0
  14. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings_bg.wasm +0 -0
  15. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings_bg.wasm.d.ts +3 -1
  16. package/dist/fetch.d.cts +2 -2
  17. package/dist/fetch.d.ts +2 -2
  18. package/dist/index.d.cts +2 -2
  19. package/dist/index.d.ts +2 -2
  20. package/dist/internal.cjs +19 -1
  21. package/dist/internal.d.cts +67 -4
  22. package/dist/internal.d.cts.map +1 -1
  23. package/dist/internal.d.ts +67 -4
  24. package/dist/internal.d.ts.map +1 -1
  25. package/dist/internal.js +19 -1
  26. package/dist/internal.js.map +1 -1
  27. package/dist/lambda.d.cts +2 -2
  28. package/dist/lambda.d.ts +2 -2
  29. package/dist/node.d.cts +2 -2
  30. package/dist/node.d.ts +2 -2
  31. package/dist/package.cjs +1 -1
  32. package/dist/package.js +1 -1
  33. package/dist/package.js.map +1 -1
  34. package/dist/promises.cjs +5 -1
  35. package/dist/promises.d.cts.map +1 -1
  36. package/dist/promises.d.ts.map +1 -1
  37. package/dist/promises.js +5 -1
  38. package/dist/promises.js.map +1 -1
  39. package/dist/types/errors.cjs +2 -2
  40. package/dist/types/errors.d.cts +1 -1
  41. package/dist/types/errors.d.cts.map +1 -1
  42. package/dist/types/errors.d.ts +1 -1
  43. package/dist/types/errors.d.ts.map +1 -1
  44. package/dist/types/errors.js +2 -2
  45. package/dist/types/errors.js.map +1 -1
  46. package/dist/types/interface.cjs +4 -2
  47. package/dist/types/interface.js +4 -2
  48. package/dist/types/interface.js.map +1 -1
  49. package/package.json +3 -3
@@ -1,10 +1,24 @@
1
1
  import { isSuspendedError } from "./types/errors.cjs";
2
2
  import { Context, InvocationId, RestatePromise } from "./context.cjs";
3
+ import { Serde } from "@restatedev/restate-sdk-core";
3
4
 
4
5
  //#region src/internal.d.ts
5
6
  declare namespace internal_d_exports {
6
- export { ContextInternal, isSuspendedError };
7
+ export { ContextInternal, GetProjectOptions, asInternal, isSuspendedError };
7
8
  }
9
+ /**
10
+ * Downcast the given context to {@link ContextInternal}, to access the internal APIs.
11
+ *
12
+ * Works with every context type passed to handlers, e.g. `Context`, `ObjectContext`, `ObjectSharedContext`, `WorkflowContext`.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const ctxInternal = restate.internal.asInternal(ctx);
17
+ * ```
18
+ *
19
+ * @experimental
20
+ */
21
+ declare function asInternal(ctx: Context): ContextInternal;
8
22
  /**
9
23
  * Internal {@link Context} interface exposing additional features.
10
24
  *
@@ -40,7 +54,7 @@ interface ContextInternal extends Context {
40
54
  * name: "greeter",
41
55
  * handlers: {
42
56
  * greet: async (ctx: restate.Context, name: string) => {
43
- * ctxInternal = ctx as restate.internal.ContextInternal;
57
+ * const ctxInternal = restate.internal.asInternal(ctx);
44
58
  * const result = await RestatePromise.race([
45
59
  * ctx.run(() => longRunningTask(name)),
46
60
  * ctxInternal.cancellation().map(() => { throw new restate.TerminalError("Cancelled") }),
@@ -58,7 +72,7 @@ interface ContextInternal extends Context {
58
72
  * name: "greeter",
59
73
  * handlers: {
60
74
  * greet: async (ctx: restate.Context, name: string) => {
61
- * const ctxInternal = ctx as restate.internal.ContextInternal;
75
+ * const ctxInternal = restate.internal.asInternal(ctx);
62
76
  * const controller = new AbortController();
63
77
  * const cancellation = ctxInternal.cancellation()
64
78
  * .map(() => {
@@ -82,7 +96,7 @@ interface ContextInternal extends Context {
82
96
  * name: "greeter",
83
97
  * handlers: {
84
98
  * greet: async (ctx: restate.Context, name: string) => {
85
- * const ctxInternal = ctx as restate.internal.ContextInternal;
99
+ * const ctxInternal = restate.internal.asInternal(ctx);
86
100
  * try {
87
101
  * return await RestatePromise.race([
88
102
  * ctx.run(() => longRunningTask(name)),
@@ -118,7 +132,56 @@ interface ContextInternal extends Context {
118
132
  * @experimental
119
133
  */
120
134
  cancelPreviousCalls(): RestatePromise<InvocationId[]>;
135
+ /**
136
+ * Get state from the Restate runtime, apply the given `projection` to it,
137
+ * and record in the journal only the result of the projection.
138
+ *
139
+ * Use this to read big state values when you need only a small part of them:
140
+ * unlike `ctx.get`, the complete state value is not recorded in the journal,
141
+ * only its projection.
142
+ *
143
+ * It will appear in the UI as run(project:state_key).
144
+ *
145
+ * This method **MUST** only be used within Virtual Object and Workflow handlers.
146
+ *
147
+ * **NOTE:** Requires Restate >= 1.8 with service protocol V8 enabled, and **does not** work with request/response protocol mode (e.g. with AWS Lambda).
148
+ *
149
+ * @param name key of the state to retrieve
150
+ * @param projection function receiving the state value, or `null` if the state is empty.
151
+ * @param options serde for the state value, and serde for the projection result.
152
+ * @returns a {@link RestatePromise} resolved with the result of the projection.
153
+ *
154
+ * @example
155
+ * ```ts
156
+ * const ctxInternal = restate.internal.asInternal(ctx);
157
+ * const itemsCount = await ctxInternal.getProject<Item[], number>(
158
+ * "items",
159
+ * (items) => items?.length ?? 0
160
+ * );
161
+ * ```
162
+ *
163
+ * @experimental
164
+ */
165
+ getProject<TValue, TResult>(name: string, projection: (value: TValue | null) => TResult | Promise<TResult>, options?: GetProjectOptions<TValue, TResult>): RestatePromise<TResult>;
121
166
  }
167
+ /**
168
+ * Options for {@link ContextInternal.getProject}.
169
+ *
170
+ * @experimental
171
+ */
172
+ type GetProjectOptions<TValue, TResult> = {
173
+ /**
174
+ * Serde used to deserialize the state value.
175
+ */
176
+ serde?: Serde<TValue>;
177
+ /**
178
+ * Serde used to serialize the projection result, recorded in the journal.
179
+ *
180
+ * If not set, defaults to {@link GetProjectOptions.serde} when that is set,
181
+ * otherwise to the default serde.
182
+ */
183
+ resultSerde?: Serde<TResult>;
184
+ };
122
185
  //#endregion
123
186
  export { internal_d_exports };
124
187
  //# sourceMappingURL=internal.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.cts","names":[],"sources":["../src/internal.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;AAWiB,UAAA,eAAA,SAAwB,OAAR,CAAA;EAgGf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAA;;;;;;;;;;yBAWO,eAAe"}
1
+ {"version":3,"file":"internal.d.cts","names":[],"sources":["../src/internal.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;AAiBA;AAWA;;AA2GwC,iBAtHxB,UAAA,CAsHwB,GAAA,EAtHR,OAsHQ,CAAA,EAtHE,eAsHF;;;;;;;;AAmC1B,UA9IG,eAAA,SAAwB,OA8I3B,CAAA;EACM;;;;AAQpB;;;;EAYgB,YAAA,EAAA,EAAA,OAAA;EAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAnEH;;;;;;;;;;yBAWO,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAkChB,kBAAkB,UAAU,QAAQ,oBAC9C,kBAAkB,QAAQ,WACnC,eAAe;;;;;;;KAQR;;;;UAIF,MAAM;;;;;;;gBAQA,MAAM"}
@@ -1,10 +1,24 @@
1
1
  import { isSuspendedError } from "./types/errors.js";
2
2
  import { Context, InvocationId, RestatePromise } from "./context.js";
3
+ import { Serde } from "@restatedev/restate-sdk-core";
3
4
 
4
5
  //#region src/internal.d.ts
5
6
  declare namespace internal_d_exports {
6
- export { ContextInternal, isSuspendedError };
7
+ export { ContextInternal, GetProjectOptions, asInternal, isSuspendedError };
7
8
  }
9
+ /**
10
+ * Downcast the given context to {@link ContextInternal}, to access the internal APIs.
11
+ *
12
+ * Works with every context type passed to handlers, e.g. `Context`, `ObjectContext`, `ObjectSharedContext`, `WorkflowContext`.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const ctxInternal = restate.internal.asInternal(ctx);
17
+ * ```
18
+ *
19
+ * @experimental
20
+ */
21
+ declare function asInternal(ctx: Context): ContextInternal;
8
22
  /**
9
23
  * Internal {@link Context} interface exposing additional features.
10
24
  *
@@ -40,7 +54,7 @@ interface ContextInternal extends Context {
40
54
  * name: "greeter",
41
55
  * handlers: {
42
56
  * greet: async (ctx: restate.Context, name: string) => {
43
- * ctxInternal = ctx as restate.internal.ContextInternal;
57
+ * const ctxInternal = restate.internal.asInternal(ctx);
44
58
  * const result = await RestatePromise.race([
45
59
  * ctx.run(() => longRunningTask(name)),
46
60
  * ctxInternal.cancellation().map(() => { throw new restate.TerminalError("Cancelled") }),
@@ -58,7 +72,7 @@ interface ContextInternal extends Context {
58
72
  * name: "greeter",
59
73
  * handlers: {
60
74
  * greet: async (ctx: restate.Context, name: string) => {
61
- * const ctxInternal = ctx as restate.internal.ContextInternal;
75
+ * const ctxInternal = restate.internal.asInternal(ctx);
62
76
  * const controller = new AbortController();
63
77
  * const cancellation = ctxInternal.cancellation()
64
78
  * .map(() => {
@@ -82,7 +96,7 @@ interface ContextInternal extends Context {
82
96
  * name: "greeter",
83
97
  * handlers: {
84
98
  * greet: async (ctx: restate.Context, name: string) => {
85
- * const ctxInternal = ctx as restate.internal.ContextInternal;
99
+ * const ctxInternal = restate.internal.asInternal(ctx);
86
100
  * try {
87
101
  * return await RestatePromise.race([
88
102
  * ctx.run(() => longRunningTask(name)),
@@ -118,7 +132,56 @@ interface ContextInternal extends Context {
118
132
  * @experimental
119
133
  */
120
134
  cancelPreviousCalls(): RestatePromise<InvocationId[]>;
135
+ /**
136
+ * Get state from the Restate runtime, apply the given `projection` to it,
137
+ * and record in the journal only the result of the projection.
138
+ *
139
+ * Use this to read big state values when you need only a small part of them:
140
+ * unlike `ctx.get`, the complete state value is not recorded in the journal,
141
+ * only its projection.
142
+ *
143
+ * It will appear in the UI as run(project:state_key).
144
+ *
145
+ * This method **MUST** only be used within Virtual Object and Workflow handlers.
146
+ *
147
+ * **NOTE:** Requires Restate >= 1.8 with service protocol V8 enabled, and **does not** work with request/response protocol mode (e.g. with AWS Lambda).
148
+ *
149
+ * @param name key of the state to retrieve
150
+ * @param projection function receiving the state value, or `null` if the state is empty.
151
+ * @param options serde for the state value, and serde for the projection result.
152
+ * @returns a {@link RestatePromise} resolved with the result of the projection.
153
+ *
154
+ * @example
155
+ * ```ts
156
+ * const ctxInternal = restate.internal.asInternal(ctx);
157
+ * const itemsCount = await ctxInternal.getProject<Item[], number>(
158
+ * "items",
159
+ * (items) => items?.length ?? 0
160
+ * );
161
+ * ```
162
+ *
163
+ * @experimental
164
+ */
165
+ getProject<TValue, TResult>(name: string, projection: (value: TValue | null) => TResult | Promise<TResult>, options?: GetProjectOptions<TValue, TResult>): RestatePromise<TResult>;
121
166
  }
167
+ /**
168
+ * Options for {@link ContextInternal.getProject}.
169
+ *
170
+ * @experimental
171
+ */
172
+ type GetProjectOptions<TValue, TResult> = {
173
+ /**
174
+ * Serde used to deserialize the state value.
175
+ */
176
+ serde?: Serde<TValue>;
177
+ /**
178
+ * Serde used to serialize the projection result, recorded in the journal.
179
+ *
180
+ * If not set, defaults to {@link GetProjectOptions.serde} when that is set,
181
+ * otherwise to the default serde.
182
+ */
183
+ resultSerde?: Serde<TResult>;
184
+ };
122
185
  //#endregion
123
186
  export { internal_d_exports };
124
187
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","names":[],"sources":["../src/internal.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;AAWiB,UAAA,eAAA,SAAwB,OAAR,CAAA;EAgGf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAA;;;;;;;;;;yBAWO,eAAe"}
1
+ {"version":3,"file":"internal.d.ts","names":[],"sources":["../src/internal.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;AAiBA;AAWA;;AA2GwC,iBAtHxB,UAAA,CAsHwB,GAAA,EAtHR,OAsHQ,CAAA,EAtHE,eAsHF;;;;;;;;AAmC1B,UA9IG,eAAA,SAAwB,OA8I3B,CAAA;EACM;;;;AAQpB;;;;EAYgB,YAAA,EAAA,EAAA,OAAA;EAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAnEH;;;;;;;;;;yBAWO,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAkChB,kBAAkB,UAAU,QAAQ,oBAC9C,kBAAkB,QAAQ,WACnC,eAAe;;;;;;;KAQR;;;;UAIF,MAAM;;;;;;;gBAQA,MAAM"}
package/dist/internal.js CHANGED
@@ -2,7 +2,25 @@ import { __export } from "./_virtual/rolldown_runtime.js";
2
2
  import { isSuspendedError } from "./types/errors.js";
3
3
 
4
4
  //#region src/internal.ts
5
- var internal_exports = /* @__PURE__ */ __export({ isSuspendedError: () => isSuspendedError });
5
+ var internal_exports = /* @__PURE__ */ __export({
6
+ asInternal: () => asInternal,
7
+ isSuspendedError: () => isSuspendedError
8
+ });
9
+ /**
10
+ * Downcast the given context to {@link ContextInternal}, to access the internal APIs.
11
+ *
12
+ * Works with every context type passed to handlers, e.g. `Context`, `ObjectContext`, `ObjectSharedContext`, `WorkflowContext`.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const ctxInternal = restate.internal.asInternal(ctx);
17
+ * ```
18
+ *
19
+ * @experimental
20
+ */
21
+ function asInternal(ctx) {
22
+ return ctx;
23
+ }
6
24
 
7
25
  //#endregion
8
26
  export { internal_exports };
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","names":[],"sources":["../src/internal.ts"],"sourcesContent":["import { Context, InvocationId, RestatePromise } from \"./context.js\";\n\nexport { isSuspendedError } from \"./types/errors.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 /**\n * Returns a {@link RestatePromise} that resolves with `undefined` when Restate signals cancellation\n * of the current invocation.\n *\n * This method **MUST** only be used when the handler (or its parent service/endpoint) is configured\n * with `explicitCancellation: true`. Without configuring this option, cancellations are propagated automatically,\n * and this promise will **NEVER** resolve.\n *\n * **Promise reuse:** calling this method multiple times returns the **same** promise instance as long as\n * the current cancellation signal has not yet arrived. Once the promise resolves (cancellation received),\n * later calls return a **new** promise that will resolve on the next cancellation signal.\n *\n * @example Race a long-running side effect against cancellation\n * ```ts\n * const greeter = restate.service({\n * name: \"greeter\",\n * handlers: {\n * greet: async (ctx: restate.Context, name: string) => {\n * ctxInternal = ctx as restate.internal.ContextInternal;\n * const result = await RestatePromise.race([\n * ctx.run(() => longRunningTask(name)),\n * ctxInternal.cancellation().map(() => { throw new restate.TerminalError(\"Cancelled\") }),\n * ]);\n * return result;\n * },\n * },\n * options: { explicitCancellation: true },\n * });\n * ```\n *\n * @example Use the cancellation promise to create an AbortSignal for ctx.run\n * ```ts\n * const greeter = restate.service({\n * name: \"greeter\",\n * handlers: {\n * greet: async (ctx: restate.Context, name: string) => {\n * const ctxInternal = ctx as restate.internal.ContextInternal;\n * const controller = new AbortController();\n * const cancellation = ctxInternal.cancellation()\n * .map(() => {\n * controller.abort();\n * throw new restate.TerminalError(\"Cancelled\");\n * });\n *\n * return RestatePromise.race([\n * ctx.run(() => fetch(`https://api.example.com/greet/${name}`, { signal: controller.signal })),\n * cancellation,\n * ]);\n * },\n * },\n * options: { explicitCancellation: true },\n * });\n * ```\n *\n * @example Handle cancellation, perform cleanup, then listen for the next cancellation\n * ```ts\n * const greeter = restate.service({\n * name: \"greeter\",\n * handlers: {\n * greet: async (ctx: restate.Context, name: string) => {\n * const ctxInternal = ctx as restate.internal.ContextInternal;\n * try {\n * return await RestatePromise.race([\n * ctx.run(() => longRunningTask(name)),\n * ctxInternal.cancellation().map(() => { throw new restate.TerminalError(\"Cancelled\") }),\n * ]);\n * } catch (e) {\n * // Perform cleanup\n * await ctx.run(() => cleanupResources(name));\n *\n * // After cancellation is resolved, ctx.cancellation() returns a fresh promise.\n * // Race cleanup confirmation against the next cancellation signal.\n * await RestatePromise.race([\n * ctx.run(() => confirmCleanup(name)),\n * ctxInternal.cancellation().map(() => { throw new restate.TerminalError(\"Canceled during cleanup\") }),\n * ]);\n * }\n * },\n * },\n * options: { explicitCancellation: true },\n * });\n * ```\n *\n * @experimental\n */\n cancellation(): RestatePromise<void>;\n\n /**\n * Cancel all previous calls made from this handler.\n *\n * This method **MUST** only be used when the handler (or its parent service/endpoint) is configured\n * with `explicitCancellation: true`. Without configuring this option, this operation will always be a no-op.\n *\n * @return the invocation id of the canceled calls.\n * @experimental\n */\n cancelPreviousCalls(): RestatePromise<InvocationId[]>;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"internal.js","names":[],"sources":["../src/internal.ts"],"sourcesContent":["import { Context, InvocationId, RestatePromise } from \"./context.js\";\nimport type { Serde } from \"@restatedev/restate-sdk-core\";\n\nexport { isSuspendedError } from \"./types/errors.js\";\n\n/**\n * Downcast the given context to {@link ContextInternal}, to access the internal APIs.\n *\n * Works with every context type passed to handlers, e.g. `Context`, `ObjectContext`, `ObjectSharedContext`, `WorkflowContext`.\n *\n * @example\n * ```ts\n * const ctxInternal = restate.internal.asInternal(ctx);\n * ```\n *\n * @experimental\n */\nexport function asInternal(ctx: Context): ContextInternal {\n return ctx as ContextInternal;\n}\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 /**\n * Returns a {@link RestatePromise} that resolves with `undefined` when Restate signals cancellation\n * of the current invocation.\n *\n * This method **MUST** only be used when the handler (or its parent service/endpoint) is configured\n * with `explicitCancellation: true`. Without configuring this option, cancellations are propagated automatically,\n * and this promise will **NEVER** resolve.\n *\n * **Promise reuse:** calling this method multiple times returns the **same** promise instance as long as\n * the current cancellation signal has not yet arrived. Once the promise resolves (cancellation received),\n * later calls return a **new** promise that will resolve on the next cancellation signal.\n *\n * @example Race a long-running side effect against cancellation\n * ```ts\n * const greeter = restate.service({\n * name: \"greeter\",\n * handlers: {\n * greet: async (ctx: restate.Context, name: string) => {\n * const ctxInternal = restate.internal.asInternal(ctx);\n * const result = await RestatePromise.race([\n * ctx.run(() => longRunningTask(name)),\n * ctxInternal.cancellation().map(() => { throw new restate.TerminalError(\"Cancelled\") }),\n * ]);\n * return result;\n * },\n * },\n * options: { explicitCancellation: true },\n * });\n * ```\n *\n * @example Use the cancellation promise to create an AbortSignal for ctx.run\n * ```ts\n * const greeter = restate.service({\n * name: \"greeter\",\n * handlers: {\n * greet: async (ctx: restate.Context, name: string) => {\n * const ctxInternal = restate.internal.asInternal(ctx);\n * const controller = new AbortController();\n * const cancellation = ctxInternal.cancellation()\n * .map(() => {\n * controller.abort();\n * throw new restate.TerminalError(\"Cancelled\");\n * });\n *\n * return RestatePromise.race([\n * ctx.run(() => fetch(`https://api.example.com/greet/${name}`, { signal: controller.signal })),\n * cancellation,\n * ]);\n * },\n * },\n * options: { explicitCancellation: true },\n * });\n * ```\n *\n * @example Handle cancellation, perform cleanup, then listen for the next cancellation\n * ```ts\n * const greeter = restate.service({\n * name: \"greeter\",\n * handlers: {\n * greet: async (ctx: restate.Context, name: string) => {\n * const ctxInternal = restate.internal.asInternal(ctx);\n * try {\n * return await RestatePromise.race([\n * ctx.run(() => longRunningTask(name)),\n * ctxInternal.cancellation().map(() => { throw new restate.TerminalError(\"Cancelled\") }),\n * ]);\n * } catch (e) {\n * // Perform cleanup\n * await ctx.run(() => cleanupResources(name));\n *\n * // After cancellation is resolved, ctx.cancellation() returns a fresh promise.\n * // Race cleanup confirmation against the next cancellation signal.\n * await RestatePromise.race([\n * ctx.run(() => confirmCleanup(name)),\n * ctxInternal.cancellation().map(() => { throw new restate.TerminalError(\"Canceled during cleanup\") }),\n * ]);\n * }\n * },\n * },\n * options: { explicitCancellation: true },\n * });\n * ```\n *\n * @experimental\n */\n cancellation(): RestatePromise<void>;\n\n /**\n * Cancel all previous calls made from this handler.\n *\n * This method **MUST** only be used when the handler (or its parent service/endpoint) is configured\n * with `explicitCancellation: true`. Without configuring this option, this operation will always be a no-op.\n *\n * @return the invocation id of the canceled calls.\n * @experimental\n */\n cancelPreviousCalls(): RestatePromise<InvocationId[]>;\n\n /**\n * Get state from the Restate runtime, apply the given `projection` to it,\n * and record in the journal only the result of the projection.\n *\n * Use this to read big state values when you need only a small part of them:\n * unlike `ctx.get`, the complete state value is not recorded in the journal,\n * only its projection.\n *\n * It will appear in the UI as run(project:state_key).\n *\n * This method **MUST** only be used within Virtual Object and Workflow handlers.\n *\n * **NOTE:** Requires Restate >= 1.8 with service protocol V8 enabled, and **does not** work with request/response protocol mode (e.g. with AWS Lambda).\n *\n * @param name key of the state to retrieve\n * @param projection function receiving the state value, or `null` if the state is empty.\n * @param options serde for the state value, and serde for the projection result.\n * @returns a {@link RestatePromise} resolved with the result of the projection.\n *\n * @example\n * ```ts\n * const ctxInternal = restate.internal.asInternal(ctx);\n * const itemsCount = await ctxInternal.getProject<Item[], number>(\n * \"items\",\n * (items) => items?.length ?? 0\n * );\n * ```\n *\n * @experimental\n */\n getProject<TValue, TResult>(\n name: string,\n projection: (value: TValue | null) => TResult | Promise<TResult>,\n options?: GetProjectOptions<TValue, TResult>\n ): RestatePromise<TResult>;\n}\n\n/**\n * Options for {@link ContextInternal.getProject}.\n *\n * @experimental\n */\nexport type GetProjectOptions<TValue, TResult> = {\n /**\n * Serde used to deserialize the state value.\n */\n serde?: Serde<TValue>;\n\n /**\n * Serde used to serialize the projection result, recorded in the journal.\n *\n * If not set, defaults to {@link GetProjectOptions.serde} when that is set,\n * otherwise to the default serde.\n */\n resultSerde?: Serde<TResult>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAiBA,SAAgB,WAAW,KAA+B;AACxD,QAAO"}
package/dist/lambda.d.cts CHANGED
@@ -8,7 +8,7 @@ import { internal_d_exports } from "./internal.cjs";
8
8
  import { isRestatePromise } from "./promises.cjs";
9
9
  import { FnOf, ObjectImplHandlers, ObjectPerHandlerOpts, ServiceImplHandlers, ServicePerHandlerOpts, WorkflowImplHandlers, WorkflowPerHandlerOpts, implement } from "./types/interface.cjs";
10
10
  import { EndpointOptions } from "./endpoint/types.cjs";
11
- import { CombineablePromise, Descriptor, Duration, HandlerDescriptor, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferInput, InferOutput, JournalValueCodec, ObjectDescriptor, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceInterface, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, iface, serde } from "./common_api.cjs";
11
+ import { CombineablePromise, Descriptor, DescriptorOpts, Duration, HandlerDescriptor, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferInput, InferOutput, JournalValueCodec, ObjectDescriptor, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceInterface, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, iface, serde } from "./common_api.cjs";
12
12
  import { LambdaEndpoint } from "./endpoint/lambda_endpoint.cjs";
13
13
 
14
14
  //#region src/lambda.d.ts
@@ -32,5 +32,5 @@ declare function endpoint(): LambdaEndpoint;
32
32
  */
33
33
  declare function createEndpointHandler(options: EndpointOptions): (event: any, ctx: any) => Promise<any>;
34
34
  //#endregion
35
- export { CancelledError, Client, ClientCallOptions, ClientFromDescriptors, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, Descriptor, DurablePromise, Duration, EndpointOptions, FnOf, GenericCall, GenericSend, HandlerDescriptor, Hooks, HooksProvider, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferArg, InferInput, InferOutput, Interceptor, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, InvocationReference, JournalValueCodec, KeyValueStore, type LambdaEndpoint, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectDescriptor, ObjectHandler, ObjectHandlerOpts, ObjectImplHandlers, ObjectOptions, ObjectOpts, ObjectPerHandlerOpts, ObjectSharedContext, Opts, PauseError, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, ScopedContext, SendClient, SendClientFromDescriptors, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceHandlerOpts, ServiceImplHandlers, ServiceInterface, ServiceOptions, ServiceOpts, ServicePerHandlerOpts, SignalReference, Target, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowHandlerOpts, WorkflowImplHandlers, WorkflowOptions, WorkflowOpts, WorkflowPerHandlerOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, iface, implement, internal_d_exports as internal, isRestatePromise, object, rpc, serde, service, workflow };
35
+ export { CancelledError, Client, ClientCallOptions, ClientFromDescriptors, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, Descriptor, DescriptorOpts, DurablePromise, Duration, EndpointOptions, FnOf, GenericCall, GenericSend, HandlerDescriptor, Hooks, HooksProvider, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferArg, InferInput, InferOutput, Interceptor, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, InvocationReference, JournalValueCodec, KeyValueStore, type LambdaEndpoint, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectDescriptor, ObjectHandler, ObjectHandlerOpts, ObjectImplHandlers, ObjectOptions, ObjectOpts, ObjectPerHandlerOpts, ObjectSharedContext, Opts, PauseError, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, ScopedContext, SendClient, SendClientFromDescriptors, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceHandlerOpts, ServiceImplHandlers, ServiceInterface, ServiceOptions, ServiceOpts, ServicePerHandlerOpts, SignalReference, Target, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowHandlerOpts, WorkflowImplHandlers, WorkflowOptions, WorkflowOpts, WorkflowPerHandlerOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, iface, implement, internal_d_exports as internal, isRestatePromise, object, rpc, serde, service, workflow };
36
36
  //# sourceMappingURL=lambda.d.cts.map
package/dist/lambda.d.ts CHANGED
@@ -8,7 +8,7 @@ import { internal_d_exports } from "./internal.js";
8
8
  import { isRestatePromise } from "./promises.js";
9
9
  import { FnOf, ObjectImplHandlers, ObjectPerHandlerOpts, ServiceImplHandlers, ServicePerHandlerOpts, WorkflowImplHandlers, WorkflowPerHandlerOpts, implement } from "./types/interface.js";
10
10
  import { EndpointOptions } from "./endpoint/types.js";
11
- import { CombineablePromise, Descriptor, Duration, HandlerDescriptor, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferInput, InferOutput, JournalValueCodec, ObjectDescriptor, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceInterface, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, iface, serde } from "./common_api.js";
11
+ import { CombineablePromise, Descriptor, DescriptorOpts, Duration, HandlerDescriptor, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferInput, InferOutput, JournalValueCodec, ObjectDescriptor, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceInterface, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, iface, serde } from "./common_api.js";
12
12
  import { LambdaEndpoint } from "./endpoint/lambda_endpoint.js";
13
13
 
14
14
  //#region src/lambda.d.ts
@@ -32,5 +32,5 @@ declare function endpoint(): LambdaEndpoint;
32
32
  */
33
33
  declare function createEndpointHandler(options: EndpointOptions): (event: any, ctx: any) => Promise<any>;
34
34
  //#endregion
35
- export { CancelledError, Client, ClientCallOptions, ClientFromDescriptors, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, Descriptor, DurablePromise, Duration, EndpointOptions, FnOf, GenericCall, GenericSend, HandlerDescriptor, Hooks, HooksProvider, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferArg, InferInput, InferOutput, Interceptor, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, InvocationReference, JournalValueCodec, KeyValueStore, type LambdaEndpoint, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectDescriptor, ObjectHandler, ObjectHandlerOpts, ObjectImplHandlers, ObjectOptions, ObjectOpts, ObjectPerHandlerOpts, ObjectSharedContext, Opts, PauseError, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, ScopedContext, SendClient, SendClientFromDescriptors, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceHandlerOpts, ServiceImplHandlers, ServiceInterface, ServiceOptions, ServiceOpts, ServicePerHandlerOpts, SignalReference, Target, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowHandlerOpts, WorkflowImplHandlers, WorkflowOptions, WorkflowOpts, WorkflowPerHandlerOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, iface, implement, internal_d_exports as internal, isRestatePromise, object, rpc, serde, service, workflow };
35
+ export { CancelledError, Client, ClientCallOptions, ClientFromDescriptors, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, Descriptor, DescriptorOpts, DurablePromise, Duration, EndpointOptions, FnOf, GenericCall, GenericSend, HandlerDescriptor, Hooks, HooksProvider, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferArg, InferInput, InferOutput, Interceptor, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, InvocationReference, JournalValueCodec, KeyValueStore, type LambdaEndpoint, LogMetadata, LogSource, LoggerContext, LoggerTransport, ObjectContext, ObjectDescriptor, ObjectHandler, ObjectHandlerOpts, ObjectImplHandlers, ObjectOptions, ObjectOpts, ObjectPerHandlerOpts, ObjectSharedContext, Opts, PauseError, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, ScopedContext, SendClient, SendClientFromDescriptors, SendOpts, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceHandlerOpts, ServiceImplHandlers, ServiceInterface, ServiceOptions, ServiceOpts, ServicePerHandlerOpts, SignalReference, Target, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowHandlerOpts, WorkflowImplHandlers, WorkflowOptions, WorkflowOpts, WorkflowPerHandlerOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, iface, implement, internal_d_exports as internal, isRestatePromise, object, rpc, serde, service, workflow };
36
36
  //# sourceMappingURL=lambda.d.ts.map
package/dist/node.d.cts CHANGED
@@ -8,7 +8,7 @@ import { internal_d_exports } from "./internal.cjs";
8
8
  import { isRestatePromise } from "./promises.cjs";
9
9
  import { FnOf, ObjectImplHandlers, ObjectPerHandlerOpts, ServiceImplHandlers, ServicePerHandlerOpts, WorkflowImplHandlers, WorkflowPerHandlerOpts, implement } from "./types/interface.cjs";
10
10
  import { EndpointOptions } from "./endpoint/types.cjs";
11
- import { CombineablePromise, Descriptor, Duration, HandlerDescriptor, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferInput, InferOutput, JournalValueCodec, ObjectDescriptor, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceInterface, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, iface, serde } from "./common_api.cjs";
11
+ import { CombineablePromise, Descriptor, DescriptorOpts, Duration, HandlerDescriptor, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferInput, InferOutput, JournalValueCodec, ObjectDescriptor, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceInterface, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, iface, serde } from "./common_api.cjs";
12
12
  import * as http0 from "http";
13
13
  import * as http20 from "http2";
14
14
 
@@ -87,5 +87,5 @@ declare function serve({
87
87
  ...options
88
88
  }: ServeOptions): Promise<number>;
89
89
  //#endregion
90
- export { CancelledError, Client, ClientCallOptions, ClientFromDescriptors, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, Descriptor, DurablePromise, Duration, EndpointOptions, FnOf, GenericCall, GenericSend, HandlerDescriptor, Hooks, HooksProvider, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferArg, InferInput, InferOutput, Interceptor, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, InvocationReference, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, NodeEndpointOptions, ObjectContext, ObjectDescriptor, ObjectHandler, ObjectHandlerOpts, ObjectImplHandlers, ObjectOptions, ObjectOpts, ObjectPerHandlerOpts, ObjectSharedContext, Opts, PauseError, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, ScopedContext, SendClient, SendClientFromDescriptors, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceHandlerOpts, ServiceImplHandlers, ServiceInterface, ServiceOptions, ServiceOpts, ServicePerHandlerOpts, SignalReference, Target, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowHandlerOpts, WorkflowImplHandlers, WorkflowOptions, WorkflowOpts, WorkflowPerHandlerOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, iface, implement, internal_d_exports as internal, isRestatePromise, object, rpc, serde, serve, service, workflow };
90
+ export { CancelledError, Client, ClientCallOptions, ClientFromDescriptors, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, Descriptor, DescriptorOpts, DurablePromise, Duration, EndpointOptions, FnOf, GenericCall, GenericSend, HandlerDescriptor, Hooks, HooksProvider, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferArg, InferInput, InferOutput, Interceptor, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, InvocationReference, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, NodeEndpointOptions, ObjectContext, ObjectDescriptor, ObjectHandler, ObjectHandlerOpts, ObjectImplHandlers, ObjectOptions, ObjectOpts, ObjectPerHandlerOpts, ObjectSharedContext, Opts, PauseError, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, ScopedContext, SendClient, SendClientFromDescriptors, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceHandlerOpts, ServiceImplHandlers, ServiceInterface, ServiceOptions, ServiceOpts, ServicePerHandlerOpts, SignalReference, Target, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowHandlerOpts, WorkflowImplHandlers, WorkflowOptions, WorkflowOpts, WorkflowPerHandlerOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, iface, implement, internal_d_exports as internal, isRestatePromise, object, rpc, serde, serve, service, workflow };
91
91
  //# sourceMappingURL=node.d.cts.map
package/dist/node.d.ts CHANGED
@@ -8,7 +8,7 @@ import { internal_d_exports } from "./internal.js";
8
8
  import { isRestatePromise } from "./promises.js";
9
9
  import { FnOf, ObjectImplHandlers, ObjectPerHandlerOpts, ServiceImplHandlers, ServicePerHandlerOpts, WorkflowImplHandlers, WorkflowPerHandlerOpts, implement } from "./types/interface.js";
10
10
  import { EndpointOptions } from "./endpoint/types.js";
11
- import { CombineablePromise, Descriptor, Duration, HandlerDescriptor, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferInput, InferOutput, JournalValueCodec, ObjectDescriptor, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceInterface, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, iface, serde } from "./common_api.js";
11
+ import { CombineablePromise, Descriptor, DescriptorOpts, Duration, HandlerDescriptor, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferInput, InferOutput, JournalValueCodec, ObjectDescriptor, ObjectHandler, RestateContext, RestateObjectContext, RestateObjectSharedContext, RestateWorkflowContext, RestateWorkflowSharedContext, Serde, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceInterface, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowSharedHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, iface, serde } from "./common_api.js";
12
12
  import * as http0 from "http";
13
13
  import * as http20 from "http2";
14
14
 
@@ -87,5 +87,5 @@ declare function serve({
87
87
  ...options
88
88
  }: ServeOptions): Promise<number>;
89
89
  //#endregion
90
- export { CancelledError, Client, ClientCallOptions, ClientFromDescriptors, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, Descriptor, DurablePromise, Duration, EndpointOptions, FnOf, GenericCall, GenericSend, HandlerDescriptor, Hooks, HooksProvider, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferArg, InferInput, InferOutput, Interceptor, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, InvocationReference, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, NodeEndpointOptions, ObjectContext, ObjectDescriptor, ObjectHandler, ObjectHandlerOpts, ObjectImplHandlers, ObjectOptions, ObjectOpts, ObjectPerHandlerOpts, ObjectSharedContext, Opts, PauseError, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, ScopedContext, SendClient, SendClientFromDescriptors, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceHandlerOpts, ServiceImplHandlers, ServiceInterface, ServiceOptions, ServiceOpts, ServicePerHandlerOpts, SignalReference, Target, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowHandlerOpts, WorkflowImplHandlers, WorkflowOptions, WorkflowOpts, WorkflowPerHandlerOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, iface, implement, internal_d_exports as internal, isRestatePromise, object, rpc, serde, serve, service, workflow };
90
+ export { CancelledError, Client, ClientCallOptions, ClientFromDescriptors, ClientSendOptions, CombineablePromise, Context, ContextDate, DefaultServiceOptions, Descriptor, DescriptorOpts, DurablePromise, Duration, EndpointOptions, FnOf, GenericCall, GenericSend, HandlerDescriptor, Hooks, HooksProvider, ImplementedDefinition, ImplementedObjectDefinition, ImplementedServiceDefinition, ImplementedWorkflowDefinition, InferArg, InferInput, InferOutput, Interceptor, InvocationHandle, InvocationId, InvocationIdParser, InvocationPromise, InvocationReference, JournalValueCodec, KeyValueStore, LogMetadata, LogSource, LoggerContext, LoggerTransport, NodeEndpointOptions, ObjectContext, ObjectDescriptor, ObjectHandler, ObjectHandlerOpts, ObjectImplHandlers, ObjectOptions, ObjectOpts, ObjectPerHandlerOpts, ObjectSharedContext, Opts, PauseError, Rand, RemoveVoidArgument, Request, RestateContext, RestateEndpoint, RestateEndpointBase, RestateError, RestateLogLevel, RestateObjectContext, RestateObjectSharedContext, RestatePromise, RestateWorkflowContext, RestateWorkflowSharedContext, RetryPolicy, RetryableError, RetryableErrorOptions, RunAction, RunOptions, ScopedContext, SendClient, SendClientFromDescriptors, SendOpts, Serde, ServeOptions, Service, ServiceDefinition, ServiceDefinitionFrom, ServiceDescriptor, ServiceHandler, ServiceHandlerOpts, ServiceImplHandlers, ServiceInterface, ServiceOptions, ServiceOpts, ServicePerHandlerOpts, SignalReference, Target, TerminalError, TimeoutError, TypedState, UntypedState, VirtualObject, VirtualObjectDefinition, VirtualObjectDefinitionFrom, Workflow, WorkflowContext, WorkflowDefinition, WorkflowDefinitionFrom, WorkflowDescriptor, WorkflowHandler, WorkflowHandlerOpts, WorkflowImplHandlers, WorkflowOptions, WorkflowOpts, WorkflowPerHandlerOpts, WorkflowSharedContext, WorkflowSharedHandler, createEndpointHandler, createObjectHandler, createObjectSharedHandler, createServiceHandler, createWorkflowHandler, createWorkflowSharedHandler, endpoint, handlers, iface, implement, internal_d_exports as internal, isRestatePromise, object, rpc, serde, serve, service, workflow };
91
91
  //# sourceMappingURL=node.d.ts.map
package/dist/package.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  //#region package.json
3
- var version = "1.17.1";
3
+ var version = "1.17.3";
4
4
 
5
5
  //#endregion
6
6
  Object.defineProperty(exports, 'version', {
package/dist/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "1.17.1";
2
+ var version = "1.17.3";
3
3
 
4
4
  //#endregion
5
5
  export { version };
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","names":[],"sources":["../package.json"],"sourcesContent":["{\n \"name\": \"@restatedev/restate-sdk\",\n \"version\": \"1.17.1\",\n \"description\": \"Typescript SDK for Restate\",\n \"author\": \"Restate Developers\",\n \"email\": \"code@restate.dev\",\n \"license\": \"MIT\",\n \"homepage\": \"https://github.com/restatedev/sdk-typescript#readme\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/restatedev/sdk-typescript.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/restatedev/sdk-typescript/issues\"\n },\n \"type\": \"module\",\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.cts\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./fetch\": {\n \"import\": \"./dist/fetch.js\",\n \"require\": \"./dist/fetch.cjs\"\n },\n \"./lambda\": {\n \"import\": \"./dist/lambda.js\",\n \"require\": \"./dist/lambda.cjs\"\n },\n \"./node\": {\n \"import\": \"./dist/node.js\",\n \"require\": \"./dist/node.cjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\",\n \"README.md\"\n ],\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"test\": \"turbo run _test --filter={.}...\",\n \"_test\": \"vitest run\",\n \"build\": \"turbo run _build --filter={.}...\",\n \"_build\": \"tsc --noEmit && tsdown\",\n \"dev\": \"tsc --noEmit --watch\",\n \"clean\": \"rm -rf dist *.tsbuildinfo .turbo\",\n \"check:types\": \"turbo run _check:types --filter={.}...\",\n \"_check:types\": \"tsc --noEmit --project tsconfig.build.json\",\n \"lint\": \"eslint .\",\n \"check:exports\": \"turbo run _check:exports --filter={.}...\",\n \"_check:exports\": \"attw --pack .\",\n \"check:api\": \"turbo run _check:api --filter={.}...\",\n \"_check:api\": \"api-extractor run --local && api-extractor run --local --config api-extractor.fetch.json && api-extractor run --local --config api-extractor.lambda.json && api-extractor run --local --config api-extractor.node.json\",\n \"prepublishOnly\": \"pnpm -w verify\"\n },\n \"dependencies\": {\n \"@restatedev/restate-sdk-core\": \"workspace:*\"\n },\n \"devDependencies\": {\n \"@types/aws-lambda\": \"^8.10.115\"\n },\n \"typesVersions\": {\n \"*\": {\n \"fetch\": [\n \"./dist/fetch.d.ts\"\n ],\n \"lambda\": [\n \"./dist/lambda.d.ts\"\n ],\n \"node\": [\n \"./dist/node.d.ts\"\n ]\n }\n }\n}\n"],"mappings":";cAEa"}
1
+ {"version":3,"file":"package.js","names":[],"sources":["../package.json"],"sourcesContent":["{\n \"name\": \"@restatedev/restate-sdk\",\n \"version\": \"1.17.3\",\n \"description\": \"Typescript SDK for Restate\",\n \"author\": \"Restate Developers\",\n \"email\": \"code@restate.dev\",\n \"license\": \"MIT\",\n \"homepage\": \"https://github.com/restatedev/sdk-typescript#readme\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/restatedev/sdk-typescript.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/restatedev/sdk-typescript/issues\"\n },\n \"type\": \"module\",\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.cts\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./fetch\": {\n \"import\": \"./dist/fetch.js\",\n \"require\": \"./dist/fetch.cjs\"\n },\n \"./lambda\": {\n \"import\": \"./dist/lambda.js\",\n \"require\": \"./dist/lambda.cjs\"\n },\n \"./node\": {\n \"import\": \"./dist/node.js\",\n \"require\": \"./dist/node.cjs\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"files\": [\n \"dist\",\n \"README.md\"\n ],\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"scripts\": {\n \"test\": \"turbo run _test --filter={.}...\",\n \"_test\": \"vitest run\",\n \"build\": \"turbo run _build --filter={.}...\",\n \"_build\": \"tsc --noEmit && tsdown\",\n \"dev\": \"tsc --noEmit --watch\",\n \"clean\": \"rm -rf dist *.tsbuildinfo .turbo\",\n \"check:types\": \"turbo run _check:types --filter={.}...\",\n \"_check:types\": \"tsc --noEmit --project tsconfig.build.json\",\n \"lint\": \"eslint .\",\n \"check:exports\": \"turbo run _check:exports --filter={.}...\",\n \"_check:exports\": \"attw --pack .\",\n \"check:api\": \"turbo run _check:api --filter={.}...\",\n \"_check:api\": \"api-extractor run --local && api-extractor run --local --config api-extractor.fetch.json && api-extractor run --local --config api-extractor.lambda.json && api-extractor run --local --config api-extractor.node.json\",\n \"prepublishOnly\": \"pnpm -w verify\"\n },\n \"dependencies\": {\n \"@restatedev/restate-sdk-core\": \"workspace:*\"\n },\n \"devDependencies\": {\n \"@types/aws-lambda\": \"^8.10.115\"\n },\n \"typesVersions\": {\n \"*\": {\n \"fetch\": [\n \"./dist/fetch.d.ts\"\n ],\n \"lambda\": [\n \"./dist/lambda.d.ts\"\n ],\n \"node\": [\n \"./dist/node.d.ts\"\n ]\n }\n }\n}\n"],"mappings":";cAEa"}
package/dist/promises.cjs CHANGED
@@ -234,10 +234,11 @@ var ConstRestatePromise = class ConstRestatePromise extends InternalRestatePromi
234
234
  * Promises executor, gluing VM with I/O and Promises given to user space.
235
235
  */
236
236
  var PromisesExecutor = class {
237
- constructor(coreVm, outputPump, runClosuresTracker, externalProgressChannel, errorCallback) {
237
+ constructor(coreVm, outputPump, runClosuresTracker, ephemeralRequestTracker, externalProgressChannel, errorCallback) {
238
238
  this.coreVm = coreVm;
239
239
  this.outputPump = outputPump;
240
240
  this.runClosuresTracker = runClosuresTracker;
241
+ this.ephemeralRequestTracker = ephemeralRequestTracker;
241
242
  this.externalProgressChannel = externalProgressChannel;
242
243
  this.errorCallback = errorCallback;
243
244
  }
@@ -263,6 +264,9 @@ var PromisesExecutor = class {
263
264
  } else if (doProgressResult === "CancelSignalReceived") {
264
265
  restatePromise.tryCancel();
265
266
  return;
267
+ } else if ("EphemeralNotificationReady" in doProgressResult) {
268
+ const completionId = doProgressResult.EphemeralNotificationReady;
269
+ await this.ephemeralRequestTracker.complete(completionId, this.coreVm.take_ephemeral_notification(completionId));
266
270
  } else {
267
271
  this.runClosuresTracker.executeRun(doProgressResult.ExecuteRun);
268
272
  await (0, node_timers_promises.setImmediate)();
@@ -1 +1 @@
1
- {"version":3,"file":"promises.d.cts","names":[],"sources":["../src/promises.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;iBA8CgB,uBAAuB,QAAQ,UAAU,eAAe"}
1
+ {"version":3,"file":"promises.d.cts","names":[],"sources":["../src/promises.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;iBAkDgB,uBAAuB,QAAQ,UAAU,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"promises.d.ts","names":[],"sources":["../src/promises.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;iBA8CgB,uBAAuB,QAAQ,UAAU,eAAe"}
1
+ {"version":3,"file":"promises.d.ts","names":[],"sources":["../src/promises.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;iBAkDgB,uBAAuB,QAAQ,UAAU,eAAe"}
package/dist/promises.js CHANGED
@@ -232,10 +232,11 @@ var ConstRestatePromise = class ConstRestatePromise extends InternalRestatePromi
232
232
  * Promises executor, gluing VM with I/O and Promises given to user space.
233
233
  */
234
234
  var PromisesExecutor = class {
235
- constructor(coreVm, outputPump, runClosuresTracker, externalProgressChannel, errorCallback) {
235
+ constructor(coreVm, outputPump, runClosuresTracker, ephemeralRequestTracker, externalProgressChannel, errorCallback) {
236
236
  this.coreVm = coreVm;
237
237
  this.outputPump = outputPump;
238
238
  this.runClosuresTracker = runClosuresTracker;
239
+ this.ephemeralRequestTracker = ephemeralRequestTracker;
239
240
  this.externalProgressChannel = externalProgressChannel;
240
241
  this.errorCallback = errorCallback;
241
242
  }
@@ -261,6 +262,9 @@ var PromisesExecutor = class {
261
262
  } else if (doProgressResult === "CancelSignalReceived") {
262
263
  restatePromise.tryCancel();
263
264
  return;
265
+ } else if ("EphemeralNotificationReady" in doProgressResult) {
266
+ const completionId = doProgressResult.EphemeralNotificationReady;
267
+ await this.ephemeralRequestTracker.complete(completionId, this.coreVm.take_ephemeral_notification(completionId));
264
268
  } else {
265
269
  this.runClosuresTracker.executeRun(doProgressResult.ExecuteRun);
266
270
  await setImmediate();