@restatedev/restate-sdk 1.11.1 → 1.12.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.
Files changed (128) hide show
  1. package/dist/_virtual/rolldown_runtime.cjs +9 -0
  2. package/dist/common_api.cjs +2 -1
  3. package/dist/common_api.d.cts +6 -2
  4. package/dist/common_api.d.cts.map +1 -1
  5. package/dist/common_api.d.ts +6 -2
  6. package/dist/common_api.d.ts.map +1 -1
  7. package/dist/common_api.js +2 -1
  8. package/dist/common_api.js.map +1 -1
  9. package/dist/context.cjs +13 -9
  10. package/dist/context.d.cts +36 -29
  11. package/dist/context.d.cts.map +1 -1
  12. package/dist/context.d.ts +36 -29
  13. package/dist/context.d.ts.map +1 -1
  14. package/dist/context.js +13 -9
  15. package/dist/context.js.map +1 -1
  16. package/dist/context_impl.cjs +150 -91
  17. package/dist/context_impl.d.cts +8 -0
  18. package/dist/context_impl.d.ts +8 -72
  19. package/dist/context_impl.d.ts.map +1 -1
  20. package/dist/context_impl.js +151 -93
  21. package/dist/context_impl.js.map +1 -1
  22. package/dist/endpoint/components.cjs +35 -20
  23. package/dist/endpoint/components.d.cts +5 -0
  24. package/dist/endpoint/components.d.ts +5 -97
  25. package/dist/endpoint/components.d.ts.map +1 -1
  26. package/dist/endpoint/components.js +35 -20
  27. package/dist/endpoint/components.js.map +1 -1
  28. package/dist/endpoint/endpoint.cjs +2 -2
  29. package/dist/endpoint/endpoint.d.cts +5 -0
  30. package/dist/endpoint/endpoint.d.ts +5 -39
  31. package/dist/endpoint/endpoint.js +2 -2
  32. package/dist/endpoint/endpoint.js.map +1 -1
  33. package/dist/endpoint/handlers/generic.cjs +115 -39
  34. package/dist/endpoint/handlers/generic.d.ts.map +1 -1
  35. package/dist/endpoint/handlers/generic.js +115 -39
  36. package/dist/endpoint/handlers/generic.js.map +1 -1
  37. package/dist/endpoint/handlers/types.d.cts +1 -0
  38. package/dist/endpoint/handlers/types.d.ts +1 -41
  39. package/dist/endpoint/handlers/utils.cjs +1 -1
  40. package/dist/endpoint/handlers/utils.js +1 -1
  41. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.cjs +43 -3
  42. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts +19 -1
  43. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.d.ts.map +1 -1
  44. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js +43 -3
  45. package/dist/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js.map +1 -1
  46. package/dist/endpoint/node_endpoint.cjs +28 -12
  47. package/dist/endpoint/node_endpoint.d.ts +14 -2
  48. package/dist/endpoint/node_endpoint.d.ts.map +1 -1
  49. package/dist/endpoint/node_endpoint.js +27 -11
  50. package/dist/endpoint/node_endpoint.js.map +1 -1
  51. package/dist/endpoint/types.d.cts +1 -1
  52. package/dist/endpoint/types.d.ts +1 -1
  53. package/dist/endpoint.d.cts +87 -5
  54. package/dist/endpoint.d.cts.map +1 -1
  55. package/dist/endpoint.d.ts +87 -5
  56. package/dist/endpoint.d.ts.map +1 -1
  57. package/dist/error_sanitization.cjs +26 -0
  58. package/dist/error_sanitization.d.ts +13 -0
  59. package/dist/error_sanitization.d.ts.map +1 -0
  60. package/dist/error_sanitization.js +26 -0
  61. package/dist/error_sanitization.js.map +1 -0
  62. package/dist/fetch.cjs +3 -1
  63. package/dist/fetch.d.cts +5 -3
  64. package/dist/fetch.d.cts.map +1 -1
  65. package/dist/fetch.d.ts +5 -3
  66. package/dist/fetch.d.ts.map +1 -1
  67. package/dist/fetch.js +3 -2
  68. package/dist/fetch.js.map +1 -1
  69. package/dist/hooks.d.cts +87 -0
  70. package/dist/hooks.d.cts.map +1 -0
  71. package/dist/hooks.d.ts +87 -0
  72. package/dist/hooks.d.ts.map +1 -0
  73. package/dist/hooks.js +2 -0
  74. package/dist/hooks.js.map +1 -0
  75. package/dist/index.cjs +3 -1
  76. package/dist/index.d.cts +6 -4
  77. package/dist/index.d.ts +6 -4
  78. package/dist/index.js +3 -2
  79. package/dist/internal.cjs +3 -1
  80. package/dist/internal.d.cts +186 -2
  81. package/dist/internal.d.cts.map +1 -1
  82. package/dist/internal.d.ts +186 -2
  83. package/dist/internal.d.ts.map +1 -1
  84. package/dist/internal.js +4 -1
  85. package/dist/internal.js.map +1 -1
  86. package/dist/io.d.cts +1 -0
  87. package/dist/io.d.ts +1 -24
  88. package/dist/lambda.cjs +3 -1
  89. package/dist/lambda.d.cts +5 -3
  90. package/dist/lambda.d.cts.map +1 -1
  91. package/dist/lambda.d.ts +5 -3
  92. package/dist/lambda.d.ts.map +1 -1
  93. package/dist/lambda.js +3 -2
  94. package/dist/lambda.js.map +1 -1
  95. package/dist/logging/logger.d.cts +1 -0
  96. package/dist/logging/logger.d.ts +1 -10
  97. package/dist/node.cjs +23 -6
  98. package/dist/node.d.cts +46 -8
  99. package/dist/node.d.cts.map +1 -1
  100. package/dist/node.d.ts +46 -8
  101. package/dist/node.d.ts.map +1 -1
  102. package/dist/node.js +23 -7
  103. package/dist/node.js.map +1 -1
  104. package/dist/package.cjs +1 -1
  105. package/dist/package.js +1 -1
  106. package/dist/package.js.map +1 -1
  107. package/dist/promises.cjs +90 -53
  108. package/dist/promises.d.cts +18 -0
  109. package/dist/promises.d.cts.map +1 -0
  110. package/dist/promises.d.ts +15 -108
  111. package/dist/promises.d.ts.map +1 -1
  112. package/dist/promises.js +85 -48
  113. package/dist/promises.js.map +1 -1
  114. package/dist/types/errors.cjs +13 -0
  115. package/dist/types/errors.d.cts +11 -5
  116. package/dist/types/errors.d.cts.map +1 -1
  117. package/dist/types/errors.d.ts +11 -5
  118. package/dist/types/errors.d.ts.map +1 -1
  119. package/dist/types/errors.js +13 -1
  120. package/dist/types/errors.js.map +1 -1
  121. package/dist/types/rpc.cjs +7 -19
  122. package/dist/types/rpc.d.cts +174 -0
  123. package/dist/types/rpc.d.cts.map +1 -1
  124. package/dist/types/rpc.d.ts +174 -0
  125. package/dist/types/rpc.d.ts.map +1 -1
  126. package/dist/types/rpc.js +7 -19
  127. package/dist/types/rpc.js.map +1 -1
  128. package/package.json +2 -2
@@ -1,4 +1,5 @@
1
1
  import { TerminalError } from "./errors.cjs";
2
+ import { HooksProvider } from "../hooks.cjs";
2
3
  import { Context, InvocationHandle, InvocationPromise, ObjectContext, ObjectSharedContext, TypedState, UntypedState, WorkflowContext, WorkflowSharedContext } from "../context.cjs";
3
4
  import { Duration, ObjectHandler, Serde, ServiceDefinition, ServiceHandler, VirtualObjectDefinition, WorkflowDefinition, WorkflowHandler, WorkflowSharedHandler } from "@restatedev/restate-sdk-core";
4
5
 
@@ -157,6 +158,117 @@ type ServiceHandlerOpts<I, O$1> = {
157
158
  * Retry policy to apply to all requests to this handler. For each unspecified field, the default value configured in the service or, if absent, in the restate-server configuration file, will be applied instead.
158
159
  */
159
160
  retryPolicy?: RetryPolicy;
161
+ /**
162
+ * By default, Restate treats errors as terminal (non-retryable) only when they are instances of `TerminalError`.
163
+ *
164
+ * Use this hook to map domain-specific errors to `TerminalError` (or return `undefined` to keep them retryable).
165
+ * When mapped to `TerminalError`, the error will not be retried.
166
+ *
167
+ * Note: This applies to errors thrown inside `ctx.run` closures as well as errors thrown by Restate handlers.
168
+ *
169
+ * Example:
170
+ *
171
+ * ```ts
172
+ * class MyValidationError extends Error {}
173
+ *
174
+ * const greeter = restate.service({
175
+ * name: "greeter",
176
+ * handlers: {
177
+ * greet: async (ctx: restate.Context, name: string) => {
178
+ * if (name.length === 0) {
179
+ * throw new MyValidationError("Length too short");
180
+ * }
181
+ * return `Hello ${name}`;
182
+ * }
183
+ * },
184
+ * options: {
185
+ * asTerminalError: (err) => {
186
+ * if (err instanceof MyValidationError) {
187
+ * // My validation error is terminal
188
+ * return new restate.TerminalError(err.message, { errorCode: 400 });
189
+ * }
190
+ *
191
+ * // Any other error is retryable
192
+ * }
193
+ * }
194
+ * });
195
+ * ```
196
+ */
197
+ asTerminalError?: (error: any) => TerminalError | undefined;
198
+ /**
199
+ * Default serde to use for requests, responses, state, side effects, awakeables, promises. Used when no other serde is specified.
200
+ *
201
+ * If not provided, defaults to `serde.json`.
202
+ *
203
+ * The input or output of this handler can be overridden using the `input`/`output` fields
204
+ */
205
+ serde?: Serde<any>;
206
+ /**
207
+ * Hooks providers for this handler. Handler-level hooks wrap innermost —
208
+ * they run after service-level hooks. Both levels are merged: service
209
+ * hooks first, then handler hooks. Within each level, hooks execute in
210
+ * array order: for `[A, B]`: A before → B before → handler → B after → A after.
211
+ *
212
+ * The `handler` interceptor fires on every attempt. The `run` interceptor
213
+ * fires only when the `ctx.run()` closure actually executes — replayed
214
+ * runs (already in the journal) are skipped.
215
+ *
216
+ * Errors thrown at any point (before or after `next()`) affect the invocation:
217
+ * {@link TerminalError} fails immediately, any other error triggers a retry.
218
+ * On suspension or pause, `next()` also rejects — do any cleanup and rethrow.
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * const myService = restate.service({
223
+ * name: "MyService",
224
+ * handlers: {
225
+ * greet: restate.createServiceHandler(
226
+ * {
227
+ * hooks: [
228
+ * (ctx) => ({
229
+ * interceptor: {
230
+ * handler: async (next) => {
231
+ * console.log(`before ${ctx.request.target}`);
232
+ * try {
233
+ * await next();
234
+ * console.log(`after ${ctx.request.target}`);
235
+ * } catch (e) {
236
+ * console.log(`error ${ctx.request.target}: ${e}`);
237
+ * // Always rethrow — swallowing the error changes the
238
+ * // invocation outcome. You can also throw a different
239
+ * // error (e.g. TerminalError to fail immediately).
240
+ * throw e;
241
+ * }
242
+ * },
243
+ * run: async (name, next) => {
244
+ * console.log(` before run "${name}"`);
245
+ * try {
246
+ * await next();
247
+ * console.log(` after run "${name}"`);
248
+ * } catch (e) {
249
+ * console.log(` error run "${name}": ${e}`);
250
+ * throw e;
251
+ * }
252
+ * },
253
+ * },
254
+ * }),
255
+ * ],
256
+ * },
257
+ * async (ctx, name) => `Hello, ${name}!`
258
+ * ),
259
+ * },
260
+ * });
261
+ * ```
262
+ */
263
+ hooks?: HooksProvider[];
264
+ /**
265
+ * When set to `true`, the SDK will stop automatically propagating cancellations when awaiting {@link RestatePromise}s.
266
+ *
267
+ * Instead, the user code must explicitly listen to cancellations using the `ctx.cancellation()` API in {@link ContextInternal}.
268
+ *
269
+ * @experimental
270
+ */
271
+ explicitCancellation?: boolean;
160
272
  };
161
273
  type ObjectHandlerOpts<I, O$1> = ServiceHandlerOpts<I, O$1> & {
162
274
  /**
@@ -384,6 +496,68 @@ type ServiceOptions = {
384
496
  * If not provided, defaults to `serde.json`.
385
497
  */
386
498
  serde?: Serde<any>;
499
+ /**
500
+ * Hooks providers for this service. Service-level hooks wrap outermost —
501
+ * they run before handler-level hooks. Both levels are merged: service
502
+ * hooks first, then handler hooks. Within each level, hooks execute in
503
+ * array order: for `[A, B]`: A before → B before → handler → B after → A after.
504
+ *
505
+ * The `handler` interceptor fires on every attempt. The `run` interceptor
506
+ * fires only when the `ctx.run()` closure actually executes — replayed
507
+ * runs (already in the journal) are skipped.
508
+ *
509
+ * Errors thrown at any point (before or after `next()`) affect the invocation:
510
+ * {@link TerminalError} fails immediately, any other error triggers a retry.
511
+ * On suspension or pause, `next()` also rejects — do any cleanup and rethrow.
512
+ *
513
+ * @example
514
+ * ```ts
515
+ * const myService = restate.service({
516
+ * name: "MyService",
517
+ * handlers: { greet: async (ctx, name) => `Hello, ${name}!` },
518
+ * options: {
519
+ * hooks: [
520
+ * (ctx) => ({
521
+ * interceptor: {
522
+ * handler: async (next) => {
523
+ * console.log(`before ${ctx.request.target}`);
524
+ * try {
525
+ * await next();
526
+ * console.log(`after ${ctx.request.target}`);
527
+ * } catch (e) {
528
+ * console.log(`error ${ctx.request.target}: ${e}`);
529
+ * // Always rethrow — swallowing the error changes the
530
+ * // invocation outcome. You can also throw a different
531
+ * // error (e.g. TerminalError to fail immediately).
532
+ * throw e;
533
+ * }
534
+ * },
535
+ * run: async (name, next) => {
536
+ * console.log(` before run "${name}"`);
537
+ * try {
538
+ * await next();
539
+ * console.log(` after run "${name}"`);
540
+ * } catch (e) {
541
+ * console.log(` error run "${name}": ${e}`);
542
+ * throw e;
543
+ * }
544
+ * },
545
+ * },
546
+ * }),
547
+ * ],
548
+ * },
549
+ * });
550
+ * ```
551
+ */
552
+ hooks?: HooksProvider[];
553
+ /**
554
+ * When set to `true`, the SDK will stop automatically propagating cancellations when awaiting {@link RestatePromise}s.
555
+ *
556
+ * Instead, the user code must explicitly listen to cancellations using the `ctx.cancellation()` API in {@link ContextInternal}.
557
+ *
558
+ * @experimental
559
+ */
560
+ explicitCancellation?: boolean;
387
561
  };
388
562
  /**
389
563
  * Define a Restate service.
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.cts","names":[],"sources":["../../src/types/rpc.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc.d.cts","names":[],"sources":["../../src/types/rpc.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { TerminalError } from "./errors.js";
2
+ import { HooksProvider } from "../hooks.js";
2
3
  import { Context, InvocationHandle, InvocationPromise, ObjectContext, ObjectSharedContext, TypedState, UntypedState, WorkflowContext, WorkflowSharedContext } from "../context.js";
3
4
  import { Duration, ObjectHandler, Serde, ServiceDefinition, ServiceHandler, VirtualObjectDefinition, WorkflowDefinition, WorkflowHandler, WorkflowSharedHandler } from "@restatedev/restate-sdk-core";
4
5
 
@@ -157,6 +158,117 @@ type ServiceHandlerOpts<I, O$1> = {
157
158
  * Retry policy to apply to all requests to this handler. For each unspecified field, the default value configured in the service or, if absent, in the restate-server configuration file, will be applied instead.
158
159
  */
159
160
  retryPolicy?: RetryPolicy;
161
+ /**
162
+ * By default, Restate treats errors as terminal (non-retryable) only when they are instances of `TerminalError`.
163
+ *
164
+ * Use this hook to map domain-specific errors to `TerminalError` (or return `undefined` to keep them retryable).
165
+ * When mapped to `TerminalError`, the error will not be retried.
166
+ *
167
+ * Note: This applies to errors thrown inside `ctx.run` closures as well as errors thrown by Restate handlers.
168
+ *
169
+ * Example:
170
+ *
171
+ * ```ts
172
+ * class MyValidationError extends Error {}
173
+ *
174
+ * const greeter = restate.service({
175
+ * name: "greeter",
176
+ * handlers: {
177
+ * greet: async (ctx: restate.Context, name: string) => {
178
+ * if (name.length === 0) {
179
+ * throw new MyValidationError("Length too short");
180
+ * }
181
+ * return `Hello ${name}`;
182
+ * }
183
+ * },
184
+ * options: {
185
+ * asTerminalError: (err) => {
186
+ * if (err instanceof MyValidationError) {
187
+ * // My validation error is terminal
188
+ * return new restate.TerminalError(err.message, { errorCode: 400 });
189
+ * }
190
+ *
191
+ * // Any other error is retryable
192
+ * }
193
+ * }
194
+ * });
195
+ * ```
196
+ */
197
+ asTerminalError?: (error: any) => TerminalError | undefined;
198
+ /**
199
+ * Default serde to use for requests, responses, state, side effects, awakeables, promises. Used when no other serde is specified.
200
+ *
201
+ * If not provided, defaults to `serde.json`.
202
+ *
203
+ * The input or output of this handler can be overridden using the `input`/`output` fields
204
+ */
205
+ serde?: Serde<any>;
206
+ /**
207
+ * Hooks providers for this handler. Handler-level hooks wrap innermost —
208
+ * they run after service-level hooks. Both levels are merged: service
209
+ * hooks first, then handler hooks. Within each level, hooks execute in
210
+ * array order: for `[A, B]`: A before → B before → handler → B after → A after.
211
+ *
212
+ * The `handler` interceptor fires on every attempt. The `run` interceptor
213
+ * fires only when the `ctx.run()` closure actually executes — replayed
214
+ * runs (already in the journal) are skipped.
215
+ *
216
+ * Errors thrown at any point (before or after `next()`) affect the invocation:
217
+ * {@link TerminalError} fails immediately, any other error triggers a retry.
218
+ * On suspension or pause, `next()` also rejects — do any cleanup and rethrow.
219
+ *
220
+ * @example
221
+ * ```ts
222
+ * const myService = restate.service({
223
+ * name: "MyService",
224
+ * handlers: {
225
+ * greet: restate.createServiceHandler(
226
+ * {
227
+ * hooks: [
228
+ * (ctx) => ({
229
+ * interceptor: {
230
+ * handler: async (next) => {
231
+ * console.log(`before ${ctx.request.target}`);
232
+ * try {
233
+ * await next();
234
+ * console.log(`after ${ctx.request.target}`);
235
+ * } catch (e) {
236
+ * console.log(`error ${ctx.request.target}: ${e}`);
237
+ * // Always rethrow — swallowing the error changes the
238
+ * // invocation outcome. You can also throw a different
239
+ * // error (e.g. TerminalError to fail immediately).
240
+ * throw e;
241
+ * }
242
+ * },
243
+ * run: async (name, next) => {
244
+ * console.log(` before run "${name}"`);
245
+ * try {
246
+ * await next();
247
+ * console.log(` after run "${name}"`);
248
+ * } catch (e) {
249
+ * console.log(` error run "${name}": ${e}`);
250
+ * throw e;
251
+ * }
252
+ * },
253
+ * },
254
+ * }),
255
+ * ],
256
+ * },
257
+ * async (ctx, name) => `Hello, ${name}!`
258
+ * ),
259
+ * },
260
+ * });
261
+ * ```
262
+ */
263
+ hooks?: HooksProvider[];
264
+ /**
265
+ * When set to `true`, the SDK will stop automatically propagating cancellations when awaiting {@link RestatePromise}s.
266
+ *
267
+ * Instead, the user code must explicitly listen to cancellations using the `ctx.cancellation()` API in {@link ContextInternal}.
268
+ *
269
+ * @experimental
270
+ */
271
+ explicitCancellation?: boolean;
160
272
  };
161
273
  type ObjectHandlerOpts<I, O$1> = ServiceHandlerOpts<I, O$1> & {
162
274
  /**
@@ -384,6 +496,68 @@ type ServiceOptions = {
384
496
  * If not provided, defaults to `serde.json`.
385
497
  */
386
498
  serde?: Serde<any>;
499
+ /**
500
+ * Hooks providers for this service. Service-level hooks wrap outermost —
501
+ * they run before handler-level hooks. Both levels are merged: service
502
+ * hooks first, then handler hooks. Within each level, hooks execute in
503
+ * array order: for `[A, B]`: A before → B before → handler → B after → A after.
504
+ *
505
+ * The `handler` interceptor fires on every attempt. The `run` interceptor
506
+ * fires only when the `ctx.run()` closure actually executes — replayed
507
+ * runs (already in the journal) are skipped.
508
+ *
509
+ * Errors thrown at any point (before or after `next()`) affect the invocation:
510
+ * {@link TerminalError} fails immediately, any other error triggers a retry.
511
+ * On suspension or pause, `next()` also rejects — do any cleanup and rethrow.
512
+ *
513
+ * @example
514
+ * ```ts
515
+ * const myService = restate.service({
516
+ * name: "MyService",
517
+ * handlers: { greet: async (ctx, name) => `Hello, ${name}!` },
518
+ * options: {
519
+ * hooks: [
520
+ * (ctx) => ({
521
+ * interceptor: {
522
+ * handler: async (next) => {
523
+ * console.log(`before ${ctx.request.target}`);
524
+ * try {
525
+ * await next();
526
+ * console.log(`after ${ctx.request.target}`);
527
+ * } catch (e) {
528
+ * console.log(`error ${ctx.request.target}: ${e}`);
529
+ * // Always rethrow — swallowing the error changes the
530
+ * // invocation outcome. You can also throw a different
531
+ * // error (e.g. TerminalError to fail immediately).
532
+ * throw e;
533
+ * }
534
+ * },
535
+ * run: async (name, next) => {
536
+ * console.log(` before run "${name}"`);
537
+ * try {
538
+ * await next();
539
+ * console.log(` after run "${name}"`);
540
+ * } catch (e) {
541
+ * console.log(` error run "${name}": ${e}`);
542
+ * throw e;
543
+ * }
544
+ * },
545
+ * },
546
+ * }),
547
+ * ],
548
+ * },
549
+ * });
550
+ * ```
551
+ */
552
+ hooks?: HooksProvider[];
553
+ /**
554
+ * When set to `true`, the SDK will stop automatically propagating cancellations when awaiting {@link RestatePromise}s.
555
+ *
556
+ * Instead, the user code must explicitly listen to cancellations using the `ctx.cancellation()` API in {@link ContextInternal}.
557
+ *
558
+ * @experimental
559
+ */
560
+ explicitCancellation?: boolean;
387
561
  };
388
562
  /**
389
563
  * Define a Restate service.
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","names":[],"sources":["../../src/types/rpc.ts"],"sourcesContent":[],"mappings":";;;;;KA6CY;UACF,MAAM;EADJ,MAAA,CAAA,EAED,KAFC,CAEK,GAFL,CAAA;EACI,OAAA,CAAA,EAEJ,MAFI,CAAA,MAAA,EAAA,MAAA,CAAA;EAAN,cAAA,CAAA,EAAA,MAAA;EACO;;;EACC,IAAA,CAAA,EAAA,MAAA;AASlB,CAAA;AAMmD,cANtC,IAMsC,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA;EAAG,iBAAA,IAAA;EAArB;;;;;EAMQ,OAAA,IAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA,IAAA,EANR,iBAMQ,CANU,CAMV,EANa,GAMb,CAAA,CAAA,EANkB,IAMlB,CANuB,CAMvB,EAN0B,GAM1B,CAAA;EAArB,QAAA,WAAA,CAAA;EAAiB,OAAA,CAAA,CAAA,EAAjB,iBAAiB,CAAC,CAAD,EAAI,GAAJ,CAAA;AAKrC;AACgB,KADJ,iBACI,CAAA,CAAA,CAAA,GAAA;EAAN,KAAA,CAAA,EAAA,KAAA,CAAM,CAAN,CAAA;EA0BA;;;AAUV;;;;;;;;AAYA;;;;;;;;;;;;AAiIA;AAEA;EACc,KAAA,CAAA,EA1JJ,QA0JI,GAAA,MAAA;EAAK,OAAA,CAAA,EAzJP,MAyJO,CAAA,MAAA,EAAA,MAAA,CAAA;EAAE,cAAA,CAAA,EAAA,MAAA;EAA2B;;;EAGzC,IAAA,CAAA,EAAA,MAAA;CAEc;AAA4B,cArJpC,QAqJoC,CAAA,CAAA,CAAA,CAAA;EAAT,iBAAA,IAAA;EAAa,OAAA,IAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EApJvB,iBAoJuB,CApJL,CAoJK,CAAA,CAAA,EApJA,QAoJA,CApJS,CAoJT,CAAA;EAAlB,OAAA,CAAA,CAAA,EAhJf,iBAgJe,CAhJG,CAgJH,CAAA;EACN,QAAA,WAAA,CAAA;;AAAD,kBA1IX,GAAA,CA0IW;EAIhB,MAAA,IAAA,EAAA,CAAU,CAAA,EAAA,GAAA,CAAA,CAAA,IAAA,EA7Ia,iBA6Ib,CA7I+B,CA6I/B,EA7IkC,GA6IlC,CAAA,EAAA,GA7IoC,IA6IpC,CA7IoC,CA6IpC,EA7IoC,GA6IpC,CAAA;EACR,MAAA,QAAA,EAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EA5IsB,iBA4ItB,CA5IwC,CA4IxC,CAAA,EAAA,GA5I0C,QA4I1C,CA5I0C,CA4I1C,CAAA;;AAAsC,KAdxC,QAcwC,CAAA,GAAA,CAAA,GAd1B,GAc0B,SAAA,CAAA,KAAA,EAAA,EAAA,GAAA,GAAA,EAAA,CAAA,GAdM,CAcN,GAAA,OAAA;AAAE,KAZ1C,MAY0C,CAAA,CAAA,CAAA,GAAA,QAIlC,MAfN,CAeM,IAfD,CAeC,CAfC,CAeD,CAAA,SAAA,KAAA,GAAA,KAAA,GAf4B,CAe5B,GAfgC,CAehC,CAfkC,CAelC,CAAA,UAAA,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,EAAA,KAAA,EAAA,EAAA,GAZb,WAYa,CAAA,KAAA,EAAA,CAAA,IAAA,CAAA,GAAA,IAAA,EAAA,CAAA,GAVC,CAUD,EAAA,GAAA,CAAA,IAAA,GAVe,IAUf,CAVoB,QAUpB,CAV6B,CAU7B,CAAA,EAViC,CAUjC,CAAA,CAAA,CAAA,EAAA,GATT,iBASS,CATS,CAST,CAAA,GAAA,KAAA,EAAgC;AAAT,KAL/B,UAK+B,CAAA,CAAA,CAAA,GAAA,QAAT,MAJpB,CAIoB,IAJf,CAIe,CAJb,CAIa,CAAA,SAAA,KAAA,GAAA,KAAA,GAJc,CAId,GAJkB,CAIlB,CAJoB,CAIpB,CAAA,UAAA,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,IAAA,EAAA,KAAA,EAAA,EAAA,GAAA,IAAA,IAAA,CAAA,GAAA,IAAA,EAAA,CAAA,GAAd,CAAc,EAAA,GAAA,CAAA,IAAA,GAAA,QAAA,CAAS,QAAT,CAAkB,CAAlB,CAAA,CAAA,CAAA,CAAA,EAAA,GAA4B,gBAA5B,GAAA,KAAA,EAA4B;AAqDjD,KAxCD,kBAwCC,CAAA,CAAA,EAAA,GAAA,CAAA,GAAA;EAOY;;;;;;AAkDzB;;;EAAsC,MAAA,CAAA,EAAA,MAAA;EAAkB;AAUxD;;;;;AA6GA;;EAII,KAAA,CAAA,EAxMM,KAwMN,CAxMY,CAwMZ,CAAA;EACQ;;;;;AAIZ;;;EAQU,MAAA,CAAA,EA3MC,KA2MD,CA3MO,GA2MP,CAAA;EACI;;;EAAsB,WAAA,CAAA,EAAA,MAAA;EACL;;;EAQG,QAAA,CAAA,EA3MrB,MA2MqB,CAAA,MAAA,EAAA,MAAA,CAAA;EAEF;;;;;EACgB,oBAAA,CAAA,EAvMvB,QAuMuB,GAAA,MAAA;EAAc;;;;;;;EAQ9C,gBAAA,CAAA,EAtMK,QAsML,GAAA,MAAA;EAAgC;;;;;;;;;;EAkCV,iBAAA,CAAA,EA5NhB,QA4NgB,GAAA,MAAA;EAAtB;;;;;;;;;;;EAiBoD,YAAA,CAAA,EAhOnD,QAgOmD,GAAA,MAAA;EAAR;;;;;;EA2C3B,cAAA,CAAA,EAAA,OAAA;EAArB;;;EACkC,WAAA,CAAA,EA/P9B,WA+P8B;CAAc;AAAR,KA5PxC,iBA4PwC,CAAA,CAAA,EAAA,GAAA,CAAA,GA5Pd,kBA4Pc,CA5PK,CA4PL,EA5PQ,GA4PR,CAAA,GAAA;EACnB;;;;;;EAmBa,eAAA,CAAA,EAAA,OAAA;CAAc;AAAR,KAtQxC,mBAsQwC,CAAA,CAAA,EAAA,GAAA,CAAA,GAtQZ,kBAsQY,CAtQO,CAsQP,EAtQU,GAsQV,CAAA,GAAA;EACnB;;;;;;EA+CrB,eAAA,CAAA,EAAA,OAAA;CACwB;AAiGxB,KA3SA,kBA2Sc,CAAA,CAAA,CAAA,GA3SU,CA2SV,UAAA,CAAA,GAAA,EAAA,KAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,GAAA,KAAA,EAAA,IAvStB,CAuSsB,SAAA,IAAA,GAAA,CAAA,GAAA,EAtSd,CAsSc,EAAA,GAtSR,CAsSQ,GArSpB,CAqSoB,GApStB,CAoSsB;AAMD,kBAxSR,QAAA,CAwSQ;EASJ;;;;;;EAmFN,SAAA,OAAA,CAAA,GAAA,EAAA,IAAA,IAAA,CAAA,CAAA,IAAA,EA5XL,kBA4XK,CA5Xc,CA4Xd,EA5XiB,GA4XjB,CAAA,EAAA,EAAA,EAAA,CAAA,GAAA,EA3XD,OA2XC,EAAA,KAAA,EA3Xe,CA2Xf,EAAA,GA3XqB,OA2XrB,CA3X6B,GA2X7B,CAAA,CAAA,EA1XV,kBA0XU,CAAA,OA1XgB,EA0XhB,CAAA;EAkDF,UA8BZ,QAAA,CAAA;IA7BO,SAAA,QAAA,CAAA,GAAA,EAAA,IAAA,IAAA,EAAA,eAraa,UAqab,GAra0B,YAqa1B,CAAA,CAAA,IAAA,EAnaI,mBAmaJ,CAnawB,CAmaxB,EAna2B,GAma3B,CAAA,EAAA,EAAA,EAAA,CAAA,GAAA,EAlaQ,eAkaR,CAlawB,MAkaxB,CAAA,EAAA,KAAA,EAlawC,CAkaxC,EAAA,GAla8C,OAka9C,CAlasD,GAkatD,CAAA,CAAA,EAjaD,kBAiaC,CAAA,OAjayB,EAiazB,CAAA;IACgB,SAAA,QAAA,CAAA,GAAA,EAAA,IAAA,IAAA,EAAA,eA7ZH,UA6ZG,GA7ZU,YA6ZV,CAAA,CAAA,EAAA,EAAA,CAAA,GAAA,EA3ZR,eA2ZQ,CA3ZQ,MA2ZR,CAAA,EAAA,KAAA,EA3ZwB,CA2ZxB,EAAA,GA3Z8B,OA2Z9B,CA3ZsC,GA2ZtC,CAAA,CAAA,EA1ZjB,kBA0ZiB,CAAA,OA1ZS,EA0ZT,CAAA;IAAZ;;;;;;;;;IAgCA,SAAU,MAAA,CAAA,GAAA,EAAA,IAAA,IAAA,EAAA,eA5ZD,UA4ZC,GA5ZY,YA4ZZ,CAAA,CAAA,IAAA,EA1ZV,mBA0ZU,CA1ZU,CA0ZV,EA1Za,GA0Zb,CAAA,EAAA,EAAA,EAAA,CAAA,GAAA,EAzZN,qBAyZM,CAzZgB,MAyZhB,CAAA,EAAA,KAAA,EAzZgC,CAyZhC,EAAA,GAzZsC,OAyZtC,CAzZ8C,GAyZ9C,CAAA,CAAA,EAxZf,kBAwZe,CAAA,OAxZW,EAwZX,CAAA;IACR;;;;;;;;;IAER,SAAA,MAAA,CAAA,GAAA,EAAA,IAAA,IAAA,EAAA,eA7Ye,UA6Yf,GA7Y4B,YA6Y5B,CAAA,CAAA,EAAA,EAAA,CAAA,GAAA,EA3YU,qBA2YV,CA3YgC,MA2YhC,CAAA,EAAA,KAAA,EA3YgD,CA2YhD,EAAA,GA3YsD,OA2YtD,CA3Y8D,GA2Y9D,CAAA,CAAA,EA1YC,kBA0YD,CAAA,OA1Y2B,EA0Y3B,CAAA;EAAE;EAAyB,UAAA,MAAA,CAAA;IAAE;;;;;;;;IAGvB,SAAA,SAAA,CAAA,GAAA,EAAA,IAAA,IAAA,EAAA,eArWS,UAqWT,GArWsB,YAqWtB,CAAA,CAAA,IAAA,EAnWA,iBAmWA,CAnWkB,CAmWlB,EAnWqB,GAmWrB,CAAA,EAAA,EAAA,EAAA,CAAA,GAAA,EAlWI,aAkWJ,CAlWkB,MAkWlB,CAAA,EAAA,KAAA,EAlWkC,CAkWlC,EAAA,GAlWwC,OAkWxC,CAlWgD,GAkWhD,CAAA,CAAA,EAjWL,kBAiWK,CAAA,OAjWqB,EAiWrB,CAAA;IACc;;;;;AAG1B;AAgEA;;;;;;IAIa,SAAA,SAAA,CAAA,GAAA,EAAA,IAAA,IAAA,EAAA,eAxZQ,UAwZR,GAxZqB,YAwZrB,CAAA,CAAA,EAAA,EAAA,CAAA,GAAA,EAtZG,aAsZH,CAtZiB,MAsZjB,CAAA,EAAA,KAAA,EAtZiC,CAsZjC,EAAA,GAtZuC,OAsZvC,CAtZ+C,GAsZ/C,CAAA,CAAA,EArZN,kBAqZM,CAAA,OArZoB,EAqZpB,CAAA;IACD;;;;;AAsCZ;;;;;;IAQM,SAAA,MAAA,CAAA,GAAA,EAAA,IAAA,IAAA,EAAA,eAvZe,UAuZf,GAvZ4B,YAuZ5B,CAAA,CAAA,IAAA,EArZM,iBAqZN,CArZwB,CAqZxB,EArZ2B,GAqZ3B,CAAA,EAAA,EAAA,EAAA,CAAA,GAAA,EApZU,mBAoZV,CApZ8B,MAoZ9B,CAAA,EAAA,KAAA,EApZ8C,CAoZ9C,EAAA,GApZoD,OAoZpD,CApZ4D,GAoZ5D,CAAA,CAAA,EAnZC,kBAmZD,CAAA,OAnZ2B,EAmZ3B,CAAA;IACE;;;;;;;;;;;IAGqC,SAAA,MAAA,CAAA,GAAA,EAAA,IAAA,IAAA,EAAA,eAvYxB,UAuYwB,GAvYX,YAuYW,CAAA,CAAA,EAAA,EAAA,CAAA,GAAA,EArY7B,mBAqY6B,CArYT,MAqYS,CAAA,EAAA,KAAA,EArYO,CAqYP,EAAA,GArYa,OAqYb,CArYqB,GAqYrB,CAAA,CAAA,EApYtC,kBAoYsC,CAAA,OApYZ,EAoYY,CAAA;EAAI;;AACvC,KApWE,WAoWF,CAAA,CAAA,CAAA,GAAA,QAAE,MAnWE,CAmWF,GAnWM,CAmWN,CAnWQ,CAmWR,CAAA,SAnWmB,cAmWnB,CAnWkC,CAmWlC,CAnWoC,CAmWpC,CAAA,EAnWwC,OAmWxC,CAAA,GAlWN,CAkWM,CAlWJ,CAkWI,CAAA,GAjWN,cAiWM,CAjWS,CAiWT,CAjWW,CAiWX,CAAA,EAjWe,OAiWf,CAAA,EAAC;AAID,KAlWA,WAAA,GAkWe;EAyDd;;;;EAE0B,WAAA,CAAA,EAAA,MAAA;EAAT;;;;;;;;;;;;;;oBAvYV;;;;;;;gBAQJ;;;;;;KAQJ,cAAA;;;;;;yBAMa;;;;;;;;qBASJ;;;;;;;;;;;sBAYC;;;;;;;;;;;;iBAaL;;;;;;;;;;;gBAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAsCoB;;;;;;UAO1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkDG;QACL;YACI,YAAY,KAAK,SAAS;;aAEzB;YACD;MACR,kBAAkB,KAAG;KA4Bb,8BACE,IAAI,EAAE,WAAW,cAAc,EAAE,IAAI,sBAC7C,EAAE,KACF,EAAE,WAAW,cAAc,EAAE,IAAI,4BAC/B,EAAE,KAEE,cAAc,EAAE,IAAI,sBACpB,cAAc,EAAE,IAAI;KAGpB,aAAA,GAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgEf;QACL;YACI,WAAW,KAAK,SAAS;;aAExB;YACD;MACR,wBAAwB,KAAG;;;;;;;;KAqCnB;aACC,wCAAwC;kBAEvC,IAAI,sEAIT,4BACH,kBACE,EAAE,WAAW,gBAAgB,EAAE,IAAI,wBACjC,EAAE,2GAEJ,EAAE,WAAW,sBAAsB,EAAE,IAAI,8BACvC,EAAE;KAIA,eAAA,GAAkB;;;;;;;sBAOR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkDT;QACL;YACI,aAAa,KAAK,SAAS;;aAE1B;YACD;MACR,mBAAmB,KAAG"}
1
+ {"version":3,"file":"rpc.d.ts","names":[],"sources":["../../src/types/rpc.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/types/rpc.js CHANGED
@@ -77,13 +77,13 @@ const makeRpcCallProxy = (genericCall, defaultSerde, service$1, key) => {
77
77
  };
78
78
  } });
79
79
  };
80
- const makeRpcSendProxy = (genericSend, defaultSerde, service$1, key, legacyDelay) => {
80
+ const makeRpcSendProxy = (genericSend, defaultSerde, service$1, key) => {
81
81
  return new Proxy({}, { get: (_target, prop) => {
82
82
  const method = prop;
83
83
  return (...args) => {
84
84
  const { parameter, opts } = optsFromArgs(args);
85
85
  const requestSerde = opts?.input ?? defaultSerde;
86
- const delay = legacyDelay ?? opts?.delay;
86
+ const delay = opts?.delay;
87
87
  return genericSend({
88
88
  service: service$1,
89
89
  method,
@@ -111,27 +111,15 @@ var HandlerWrapper = class HandlerWrapper {
111
111
  const handlerCopy = function(...args) {
112
112
  return handler.apply(this, args);
113
113
  };
114
- return new HandlerWrapper(kind, handlerCopy, opts?.input, opts?.output, opts?.accept, opts?.description, opts?.metadata, opts?.idempotencyRetention, opts?.journalRetention, opts?.inactivityTimeout, opts?.abortTimeout, opts?.ingressPrivate, opts !== void 0 && "enableLazyState" in opts ? opts?.enableLazyState : void 0, opts?.retryPolicy);
114
+ return new HandlerWrapper(kind, handlerCopy, opts);
115
115
  }
116
116
  static fromHandler(handler) {
117
117
  return handler[HANDLER_SYMBOL];
118
118
  }
119
- constructor(kind, handler, inputSerde, outputSerde, accept, description, metadata, idempotencyRetention, journalRetention, inactivityTimeout, abortTimeout, ingressPrivate, enableLazyState, retryPolicy, asTerminalError) {
119
+ constructor(kind, handler, options) {
120
120
  this.kind = kind;
121
121
  this.handler = handler;
122
- this.inputSerde = inputSerde;
123
- this.outputSerde = outputSerde;
124
- this.accept = accept;
125
- this.description = description;
126
- this.metadata = metadata;
127
- this.idempotencyRetention = idempotencyRetention;
128
- this.journalRetention = journalRetention;
129
- this.inactivityTimeout = inactivityTimeout;
130
- this.abortTimeout = abortTimeout;
131
- this.ingressPrivate = ingressPrivate;
132
- this.enableLazyState = enableLazyState;
133
- this.retryPolicy = retryPolicy;
134
- this.asTerminalError = asTerminalError;
122
+ this.options = options;
135
123
  }
136
124
  bindInstance(t) {
137
125
  this.handler = this.handler.bind(t);
@@ -139,12 +127,12 @@ var HandlerWrapper = class HandlerWrapper {
139
127
  async invoke(context, input) {
140
128
  let req;
141
129
  try {
142
- req = (this.inputSerde ?? context.defaultSerde).deserialize(input);
130
+ req = (this.options?.input ?? context.defaultSerde).deserialize(input);
143
131
  } catch (e) {
144
132
  throw new TerminalError(`Failed to deserialize input: ${ensureError(e).message}`, { errorCode: 400 });
145
133
  }
146
134
  const res = await this.handler(context, req);
147
- return (this.outputSerde ?? context.defaultSerde).serialize(res);
135
+ return (this.options?.output ?? context.defaultSerde).serialize(res);
148
136
  }
149
137
  /**
150
138
  * Instead of a HandlerWrapper with a handler property,