@dr_nikson/effect-grpc 0.2.0-mvp-35390ba5835ef85042f042d86878a7e9aee0dad9 → 3.0.0-alpha.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 (42) hide show
  1. package/README.md +928 -0
  2. package/dist/client.d.ts +38 -3
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.internal.d.ts.map +1 -1
  5. package/dist/client.internal.js +36 -9
  6. package/dist/client.internal.js.map +1 -1
  7. package/dist/client.js +2 -0
  8. package/dist/client.js.map +1 -1
  9. package/dist/grpcException.d.ts +243 -0
  10. package/dist/grpcException.d.ts.map +1 -0
  11. package/dist/grpcException.internal.d.ts +28 -0
  12. package/dist/grpcException.internal.d.ts.map +1 -0
  13. package/dist/grpcException.internal.js +72 -0
  14. package/dist/grpcException.internal.js.map +1 -0
  15. package/dist/grpcException.js +218 -0
  16. package/dist/grpcException.js.map +1 -0
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/protoRuntime.d.ts +7 -6
  22. package/dist/protoRuntime.d.ts.map +1 -1
  23. package/dist/protoRuntime.internal.d.ts +8 -7
  24. package/dist/protoRuntime.internal.d.ts.map +1 -1
  25. package/dist/protoRuntime.internal.js +16 -2
  26. package/dist/protoRuntime.internal.js.map +1 -1
  27. package/dist/protoRuntime.js +2 -0
  28. package/dist/protoRuntime.js.map +1 -1
  29. package/dist/protocGenPlugin.d.ts.map +1 -1
  30. package/dist/protocGenPlugin.js +6 -5
  31. package/dist/protocGenPlugin.js.map +1 -1
  32. package/dist/server.d.ts +8 -4
  33. package/dist/server.d.ts.map +1 -1
  34. package/dist/server.internal.d.ts +5 -4
  35. package/dist/server.internal.d.ts.map +1 -1
  36. package/dist/server.internal.js +50 -13
  37. package/dist/server.internal.js.map +1 -1
  38. package/dist/server.js +4 -0
  39. package/dist/server.js.map +1 -1
  40. package/dist/typeUtils.js +1 -1
  41. package/dist/typeUtils.js.map +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,218 @@
1
+ // packages/effect-grpc/src/grpcException.ts
2
+ import { Data } from "effect";
3
+ import * as internal from "./grpcException.internal.js";
4
+ /**
5
+ * A high-level error type for gRPC operations in Effect programs.
6
+ *
7
+ * GrpcException is a tagged error that extends Data.TaggedError, designed as part of the DSL
8
+ * for gRPC error handling. It focuses on application-level concerns (code, message, description, cause)
9
+ * rather than low-level wire-format details.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { Effect } from "effect";
14
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
15
+ * import { Code } from "@connectrpc/connect";
16
+ *
17
+ * // Create an exception with a code and message
18
+ * const notFoundError = GrpcException.create(
19
+ * Code.NotFound,
20
+ * "User not found"
21
+ * );
22
+ *
23
+ * // Use in Effect programs with catchTag
24
+ * const program = Effect.gen(function* () {
25
+ * yield* notFoundError; // The error is yieldable
26
+ * yield* Effect.fail(notFoundError);
27
+ * }).pipe(
28
+ * Effect.catchTag(GrpcException, (error) => {
29
+ * console.log(`gRPC error [${Code[error.code]}]: ${error.message}`);
30
+ * return Effect.succeed("recovered");
31
+ * })
32
+ * );
33
+ *
34
+ * // Convert from unknown error
35
+ * try {
36
+ * // some operation
37
+ * } catch (error) {
38
+ * yield* GrpcException.from(Code.Internal, error);
39
+ * }
40
+ *
41
+ * // Add context with description
42
+ * const enriched = GrpcException.withDescription(
43
+ * notFoundError,
44
+ * "Database query failed"
45
+ * );
46
+ * ```
47
+ *
48
+ * @category Error Handling
49
+ * @since 0.2.0
50
+ */
51
+ export class GrpcException extends Data.TaggedError("@dr_nikson/effect-grpc/grpcException/GrpcException") {
52
+ /**
53
+ * Returns a formatted error message including the status code, message, and description (if present).
54
+ * This is called automatically when the error is converted to a string.
55
+ *
56
+ * Format:
57
+ * - Without description: "[code] message"
58
+ * - With description: "[code] message (description)"
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
63
+ * import { Code } from "@connectrpc/connect";
64
+ *
65
+ * const error1 = GrpcException.create(
66
+ * Code.NotFound,
67
+ * "User not found"
68
+ * );
69
+ * console.log(error1.toString());
70
+ * // Output: "[not_found] User not found"
71
+ *
72
+ * const error2 = GrpcException.withDescription(
73
+ * error1,
74
+ * "Database query failed"
75
+ * );
76
+ * console.log(error2.toString());
77
+ * // Output: "[not_found] User not found (Database query failed)"
78
+ * ```
79
+ */
80
+ toString() {
81
+ return internal.toString(this);
82
+ }
83
+ /**
84
+ * Custom inspection for Node.js util.inspect
85
+ */
86
+ [Symbol.for("nodejs.util.inspect.custom")]() {
87
+ return internal.inspect(this);
88
+ }
89
+ }
90
+ /**
91
+ * Creates a new GrpcException from the provided parameters.
92
+ *
93
+ * This is the primary constructor for creating GrpcException instances.
94
+ * Code and message are required; cause is optional.
95
+ *
96
+ * @param code - The gRPC status code (required)
97
+ * @param message - The error message (required)
98
+ * @param cause - Optional cause of the error
99
+ * @returns A new GrpcException instance
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
104
+ * import { Code } from "@connectrpc/connect";
105
+ *
106
+ * // Simple error
107
+ * const error1 = GrpcException.create(
108
+ * Code.NotFound,
109
+ * "User not found"
110
+ * );
111
+ *
112
+ * // With cause
113
+ * try {
114
+ * // some operation
115
+ * } catch (err) {
116
+ * const error2 = GrpcException.create(
117
+ * Code.Internal,
118
+ * "Operation failed",
119
+ * err
120
+ * );
121
+ * }
122
+ * ```
123
+ */
124
+ export const create = internal.create;
125
+ /**
126
+ * Converts any value into a GrpcException, following these rules:
127
+ * - If the cause is a ConnectError, wraps it preserving code and message
128
+ * - For other Errors, creates a GrpcException with the error message and sets it as cause
129
+ * - For other values, converts to string and uses as message
130
+ *
131
+ * @param code - The gRPC status code to use (required)
132
+ * @param cause - The error/value to convert (native Error, ConnectError, or any value)
133
+ * @returns A GrpcException instance
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * import { Effect } from "effect";
138
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
139
+ * import { Code, ConnectError } from "@connectrpc/connect";
140
+ *
141
+ * const handleError = (error: unknown) =>
142
+ * Effect.fail(GrpcException.from(Code.Internal, error));
143
+ *
144
+ * // From ConnectError - preserves code and message
145
+ * const connectErr = new ConnectError("Not found", Code.NotFound);
146
+ * const grpcErr1 = GrpcException.from(Code.Internal, connectErr);
147
+ * // grpcErr1.code === Code.NotFound (from ConnectError, not the parameter)
148
+ * // grpcErr1.message === "Not found"
149
+ *
150
+ * // From regular Error - sets as cause
151
+ * const regularErr = new Error("Network timeout");
152
+ * const grpcErr2 = GrpcException.from(Code.Unavailable, regularErr);
153
+ * // grpcErr2.code === Code.Unavailable
154
+ * // grpcErr2.message === "Network timeout"
155
+ * // grpcErr2.cause === regularErr
156
+ * ```
157
+ */
158
+ export const from = internal.from;
159
+ /**
160
+ * Sets or replaces the description field of a GrpcException.
161
+ * Returns a new GrpcException with the specified description.
162
+ *
163
+ * @param error - The GrpcException to modify
164
+ * @param description - The description to set
165
+ * @returns A new GrpcException with the description
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
170
+ * import { Code } from "@connectrpc/connect";
171
+ *
172
+ * const error = GrpcException.create(
173
+ * Code.NotFound,
174
+ * "User not found"
175
+ * );
176
+ * const enriched = GrpcException.withDescription(
177
+ * error,
178
+ * "Database query failed"
179
+ * );
180
+ * // enriched.description === "Database query failed"
181
+ * ```
182
+ */
183
+ export const withDescription = internal.withDescription;
184
+ /**
185
+ * Converts a GrpcException to a ConnectError for use with Connect-RPC.
186
+ * This is useful when you need to throw or return errors in Connect-RPC handlers.
187
+ *
188
+ * Only the code, message, and cause are preserved. Description is not included
189
+ * as ConnectError doesn't have a corresponding field.
190
+ *
191
+ * @param error - The GrpcException to convert
192
+ * @returns A ConnectError instance
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * import { GrpcException } from "@dr_nikson/effect-grpc";
197
+ * import { Code } from "@connectrpc/connect";
198
+ *
199
+ * const error = GrpcException.create(
200
+ * Code.NotFound,
201
+ * "User not found"
202
+ * );
203
+ * const withDesc = GrpcException.withDescription(
204
+ * error,
205
+ * "Database query failed"
206
+ * );
207
+ *
208
+ * const connectError = GrpcException.toConnectError(withDesc);
209
+ * // connectError.code === Code.NotFound
210
+ * // connectError.rawMessage === "User not found"
211
+ * // Note: description is lost in conversion
212
+ *
213
+ * // Can be thrown in Connect-RPC handlers
214
+ * throw GrpcException.toConnectError(error);
215
+ * ```
216
+ */
217
+ export const toConnectError = internal.toConnectError;
218
+ //# sourceMappingURL=grpcException.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grpcException.js","sourceRoot":"","sources":["../src/grpcException.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,OAAO,aAAc,SAAQ,IAAI,CAAC,WAAW,CACjD,oDAAoD,CA2BpD;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,QAAQ;QACN,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,MAAM,MAAM,GAEf,QAAQ,CAAC,MAAM,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,IAAI,GAEb,QAAQ,CAAC,IAAI,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,eAAe,GAExB,QAAQ,CAAC,eAAe,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,cAAc,GAEvB,QAAQ,CAAC,cAAc,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * as EffectGrpcServer from "./server.js";
2
2
  export * as EffectGrpcClient from "./client.js";
3
+ export * as GrpcException from "./grpcException.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * as EffectGrpcServer from "./server.js";
2
2
  export * as EffectGrpcClient from "./client.js";
3
+ export * as GrpcException from "./grpcException.js";
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,gBAAgB,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC"}
@@ -1,8 +1,9 @@
1
- import { Effect, ManagedRuntime } from "effect";
1
+ import { Effect, Runtime } from "effect";
2
2
  import type { DescMessage, MessageInitShape, MessageShape } from "@bufbuild/protobuf";
3
3
  import type { GenMessage, GenServiceMethods } from "@bufbuild/protobuf/codegenv2";
4
- import { HandlerContext } from "@connectrpc/connect";
5
- import { RequestMeta } from "./client.js";
4
+ import type { HandlerContext } from "@connectrpc/connect";
5
+ import * as GrpcException from "./grpcException.js";
6
+ import type { RequestMeta } from "./client.js";
6
7
  /**
7
8
  * Type-safe executor interface for gRPC service methods.
8
9
  *
@@ -69,14 +70,14 @@ type UnaryClientExecutorFn<I extends DescMessage, O extends DescMessage> = (requ
69
70
  * ```
70
71
  */
71
72
  export interface ServerExecutor<Ctx> {
72
- unary<In, Out>(req: In, ctx: HandlerContext, prog: (req: In, ctx: Ctx) => Effect.Effect<Out>): Promise<Out>;
73
+ unary<In, Out>(req: In, ctx: HandlerContext, prog: (req: In, ctx: Ctx) => Effect.Effect<Out, GrpcException.GrpcException>): Promise<Out>;
73
74
  }
74
75
  export declare const ServerExecutor: {
75
- (runtime: ManagedRuntime.ManagedRuntime<never, never>): ServerExecutor<HandlerContext>;
76
+ (runtime: Runtime.Runtime<never>): ServerExecutor<HandlerContext>;
76
77
  };
77
78
  export interface ServerExecutorTransformer<Ctx> {
78
79
  readonly transformation: (underlying: ServerExecutor<HandlerContext>) => ServerExecutor<Ctx>;
79
- transformContext<Ctx1>(f: (ctx: Ctx) => Effect.Effect<Ctx1>): ServerExecutorTransformer<Ctx1>;
80
+ transformContext<Ctx1>(f: (ctx: Ctx) => Effect.Effect<Ctx1, GrpcException.GrpcException>): ServerExecutorTransformer<Ctx1>;
80
81
  }
81
82
  export declare const ServerExecutorTransformer: {
82
83
  (): ServerExecutorTransformer<HandlerContext>;
@@ -1 +1 @@
1
- {"version":3,"file":"protoRuntime.d.ts","sourceRoot":"","sources":["../src/protoRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,cAAc,CAAC,YAAY,SAAS,iBAAiB,IAAI;KAClE,CAAC,IAAI,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CACjD;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;KAAE,CACpF,GACC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GACtD,0CAA0C;CAC7C,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,WAAW,IAAI,CACzE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,IAAI,CAAC,EAAE,WAAW,KACf,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG;IACjC,KAAK,CAAC,EAAE,EAAE,GAAG,EACX,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAC9C,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB;AACD,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;CACrD,CAAC;AAErC,MAAM,WAAW,yBAAyB,CAAC,GAAG;IAC5C,QAAQ,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,CAAC,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC;IAE7F,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;CAC/F;AACD,eAAO,MAAM,yBAAyB,EAAE;IACtC,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;CACA,CAAC"}
1
+ {"version":3,"file":"protoRuntime.d.ts","sourceRoot":"","sources":["../src/protoRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,cAAc,CAAC,YAAY,SAAS,iBAAiB,IAAI;KAClE,CAAC,IAAI,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CACjD;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAA;KAAE,CACpF,GACC,qBAAqB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GACtD,0CAA0C;CAC7C,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,WAAW,IAAI,CACzE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,IAAI,CAAC,EAAE,WAAW,KACf,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,cAAc,CAAC,GAAG;IACjC,KAAK,CAAC,EAAE,EAAE,GAAG,EACX,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC,GAC3E,OAAO,CAAC,GAAG,CAAC,CAAC;CACjB;AACD,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;CAChC,CAAC;AAErC,MAAM,WAAW,yBAAyB,CAAC,GAAG;IAC5C,QAAQ,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,cAAc,CAAC,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC;IAE7F,gBAAgB,CAAC,IAAI,EACnB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,GAChE,yBAAyB,CAAC,IAAI,CAAC,CAAC;CACpC;AACD,eAAO,MAAM,yBAAyB,EAAE;IACtC,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;CACA,CAAC"}
@@ -1,5 +1,6 @@
1
- import { Effect, ManagedRuntime } from "effect";
2
- import { HandlerContext } from "@connectrpc/connect";
1
+ import { Effect, Runtime } from "effect";
2
+ import type { HandlerContext } from "@connectrpc/connect";
3
+ import * as GrpcException from "./grpcException.js";
3
4
  import type * as T from "./protoRuntime.js";
4
5
  /**
5
6
  * @internal
@@ -7,10 +8,10 @@ import type * as T from "./protoRuntime.js";
7
8
  * Handles the execution of Effect programs within gRPC service handlers.
8
9
  */
9
10
  export declare class ServerExecutorLive implements T.ServerExecutor<HandlerContext> {
10
- readonly runtime: ManagedRuntime.ManagedRuntime<never, never>;
11
- constructor(runtime: ManagedRuntime.ManagedRuntime<never, never>);
12
- static make(runtime: ManagedRuntime.ManagedRuntime<never, never>): T.ServerExecutor<HandlerContext>;
13
- unary<In, Out>(req: In, ctx: HandlerContext, prog: (req: In, ctx: HandlerContext) => Effect.Effect<Out>): Promise<Out>;
11
+ readonly runtime: Runtime.Runtime<never>;
12
+ constructor(runtime: Runtime.Runtime<never>);
13
+ static make(runtime: Runtime.Runtime<never>): T.ServerExecutor<HandlerContext>;
14
+ unary<In, Out>(req: In, ctx: HandlerContext, prog: (req: In, ctx: HandlerContext) => Effect.Effect<Out, GrpcException.GrpcException>): Promise<Out>;
14
15
  }
15
16
  /**
16
17
  * @internal
@@ -21,6 +22,6 @@ export declare class ServerExecutorTransformerLive<Ctx> implements T.ServerExecu
21
22
  readonly transformation: (underlying: T.ServerExecutor<HandlerContext>) => T.ServerExecutor<Ctx>;
22
23
  constructor(transformation: (underlying: T.ServerExecutor<HandlerContext>) => T.ServerExecutor<Ctx>);
23
24
  static empty(): ServerExecutorTransformerLive<HandlerContext>;
24
- transformContext<Ctx1>(f: (ctx: Ctx) => Effect.Effect<Ctx1>): ServerExecutorTransformerLive<Ctx1>;
25
+ transformContext<Ctx1>(f: (ctx: Ctx) => Effect.Effect<Ctx1, GrpcException.GrpcException>): ServerExecutorTransformerLive<Ctx1>;
25
26
  }
26
27
  //# sourceMappingURL=protoRuntime.internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protoRuntime.internal.d.ts","sourceRoot":"","sources":["../src/protoRuntime.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,KAAK,CAAC,MAAM,mBAAmB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;aAC7C,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;gBAApD,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC;IAEhF,MAAM,CAAC,IAAI,CACT,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GACnD,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;IAInC,KAAK,CAAC,EAAE,EAAE,GAAG,EACX,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GACzD,OAAO,CAAC,GAAG,CAAC;CAGhB;AAED;;;;GAIG;AACH,qBAAa,6BAA6B,CAAC,GAAG,CAAE,YAAW,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC;aAEvE,cAAc,EAAE,CAC9B,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KACzC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;gBAFV,cAAc,EAAE,CAC9B,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KACzC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;IAG5B,MAAM,CAAC,KAAK,IAAI,6BAA6B,CAAC,cAAc,CAAC;IAI7D,gBAAgB,CAAC,IAAI,EACnB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GACnC,6BAA6B,CAAC,IAAI,CAAC;CAiBvC"}
1
+ {"version":3,"file":"protoRuntime.internal.d.ts","sourceRoot":"","sources":["../src/protoRuntime.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAQ,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,KAAK,CAAC,MAAM,mBAAmB,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;aAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;gBAA/B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAE3D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;IAI9E,KAAK,CAAC,EAAE,EAAE,GAAG,EACX,GAAG,EAAE,EAAE,EACP,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC,GACtF,OAAO,CAAC,GAAG,CAAC;CA0BhB;AAED;;;;GAIG;AACH,qBAAa,6BAA6B,CAAC,GAAG,CAAE,YAAW,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC;aAEvE,cAAc,EAAE,CAC9B,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KACzC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;gBAFV,cAAc,EAAE,CAC9B,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,KACzC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;IAG5B,MAAM,CAAC,KAAK,IAAI,6BAA6B,CAAC,cAAc,CAAC;IAI7D,gBAAgB,CAAC,IAAI,EACnB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,GAChE,6BAA6B,CAAC,IAAI,CAAC;CAiBvC"}
@@ -1,4 +1,6 @@
1
- import { Effect } from "effect";
1
+ import { Cause, Effect, Exit, Runtime } from "effect";
2
+ import { Code, ConnectError } from "@connectrpc/connect";
3
+ import * as GrpcException from "./grpcException.js";
2
4
  /**
3
5
  * @internal
4
6
  * Live implementation of the Executor interface using Effect's ManagedRuntime.
@@ -13,7 +15,19 @@ export class ServerExecutorLive {
13
15
  return new ServerExecutorLive(runtime);
14
16
  }
15
17
  unary(req, ctx, prog) {
16
- return this.runtime.runPromise(prog(req, ctx), { signal: ctx.signal });
18
+ return Runtime.runPromiseExit(this.runtime, prog(req, ctx), { signal: ctx.signal }).then(Exit.match({
19
+ onFailure: (cause) => {
20
+ throw Cause.match(cause, {
21
+ onEmpty: new ConnectError("Unknown error", Code.Unknown),
22
+ onFail: (error) => GrpcException.toConnectError(error),
23
+ onDie: (defect) => new ConnectError("Internal server error", Code.Internal, undefined, undefined, defect),
24
+ onInterrupt: () => new ConnectError("Request was canceled", Code.Aborted),
25
+ onSequential: (left, right) => new ConnectError(`${left.rawMessage}; ${right.rawMessage}`, Code.Internal),
26
+ onParallel: (left, right) => new ConnectError(`${left.rawMessage} | ${right.rawMessage}`, Code.Internal),
27
+ });
28
+ },
29
+ onSuccess: (value) => value,
30
+ }));
17
31
  }
18
32
  }
19
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"protoRuntime.internal.js","sourceRoot":"","sources":["../src/protoRuntime.internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAC;AAMhD;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACD;IAA5B,YAA4B,OAAoD;QAApD,YAAO,GAAP,OAAO,CAA6C;IAAG,CAAC;IAEpF,MAAM,CAAC,IAAI,CACT,OAAoD;QAEpD,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CACH,GAAO,EACP,GAAmB,EACnB,IAA0D;QAE1D,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,6BAA6B;IAEtB;IADlB,YACkB,cAEU;QAFV,mBAAc,GAAd,cAAc,CAEJ;IACzB,CAAC;IAEJ,MAAM,CAAC,KAAK;QACV,OAAO,IAAI,6BAA6B,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IACvE,CAAC;IAED,gBAAgB,CACd,CAAoC;QAEpC,OAAO,IAAI,6BAA6B,CAAO,CAAC,UAAU,EAAE,EAAE;YAC5D,MAAM,QAAQ,GAA0B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAExE,OAAO;gBACL,KAAK,CACH,GAAO,EACP,GAAmB,EACnB,IAAgD;oBAEhD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;wBAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC5D,CAAC,CAAC,CAAC;gBACL,CAAC;aACwB,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"protoRuntime.internal.js","sourceRoot":"","sources":["../src/protoRuntime.internal.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { Effect, Runtime } from "effect";
2
+ import * as GrpcException from "./grpcException.js";
1
3
  import * as internal from "./protoRuntime.internal.js";
2
4
  export const ServerExecutor = internal.ServerExecutorLive.make;
3
5
  export const ServerExecutorTransformer = internal.ServerExecutorTransformerLive.empty;
@@ -1 +1 @@
1
- {"version":3,"file":"protoRuntime.js","sourceRoot":"","sources":["../src/protoRuntime.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAC;AAgFvD,MAAM,CAAC,MAAM,cAAc,GAEvB,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAOrC,MAAM,CAAC,MAAM,yBAAyB,GAElC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,CAAC"}
1
+ {"version":3,"file":"protoRuntime.js","sourceRoot":"","sources":["../src/protoRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMzC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAC;AAgFvD,MAAM,CAAC,MAAM,cAAc,GAEvB,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC;AASrC,MAAM,CAAC,MAAM,yBAAyB,GAElC,QAAQ,CAAC,6BAA6B,CAAC,KAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"protocGenPlugin.d.ts","sourceRoot":"","sources":["../src/protocGenPlugin.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,wCAI9B,CAAC"}
1
+ {"version":3,"file":"protocGenPlugin.d.ts","sourceRoot":"","sources":["../src/protocGenPlugin.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,wCAI9B,CAAC"}
@@ -1,4 +1,3 @@
1
- // #!/usr/bin/env -S node
2
1
  import { createEcmaScriptPlugin, safeIdentifier } from "@bufbuild/protoplugin";
3
2
  import packageJson from "../package.json" with { type: "json" };
4
3
  export const protocGenEffectGrpc = createEcmaScriptPlugin({
@@ -65,8 +64,10 @@ function generateEffectService(f, service) {
65
64
  const importEffect = f.import("Effect", "effect");
66
65
  const importContext = f.import("Context", "effect");
67
66
  const importLayer = f.import("Layer", "effect");
68
- const importHandlerContext = f.import("HandlerContext", "@connectrpc/connect");
67
+ const importScope = f.import("Scope", "effect");
68
+ const importHandlerContext = f.import("HandlerContext", "@connectrpc/connect", true);
69
69
  const importEffectGrpcService = f.import("EffectGrpcServer", packageJson.name);
70
+ const importGrpcException = f.import("GrpcException", packageJson.name);
70
71
  const importService = f.importSchema(service);
71
72
  const serviceId = service.typeName;
72
73
  const serviceIdSymbol = safeIdentifier(service.name + "Id");
@@ -211,7 +212,7 @@ function generateEffectService(f, service) {
211
212
  f.print(" ): ", importLayer, ".Layer<");
212
213
  f.print(" ", importContext, ".Tag.Identifier<Tag>,");
213
214
  f.print(" never,");
214
- f.print(" ", importContext, ".Tag.Identifier<", configTagSymbol, "> | ", importEffectGrpcClient, ".GrpcClientRuntime");
215
+ f.print(" ", importContext, ".Tag.Identifier<", configTagSymbol, "> | ", importEffectGrpcClient, ".GrpcClientRuntime | ", importScope, ".Scope");
215
216
  f.print(" >;");
216
217
  f.print();
217
218
  f.print(" liveLayer<Tag extends ", clientTagSymbol, "<object>>(");
@@ -219,7 +220,7 @@ function generateEffectService(f, service) {
219
220
  f.print(" ): ", importLayer, ".Layer<");
220
221
  f.print(" ", importContext, ".Tag.Identifier<Tag>,");
221
222
  f.print(" never,");
222
- f.print(" ", importContext, ".Tag.Identifier<", configTagSymbol, "> | ", importEffectGrpcClient, ".GrpcClientRuntime");
223
+ f.print(" ", importContext, ".Tag.Identifier<", configTagSymbol, "> | ", importEffectGrpcClient, ".GrpcClientRuntime | ", importScope, ".Scope");
223
224
  f.print(" >;");
224
225
  f.print("} = {");
225
226
  f.print(" makeTag: ", makeClientTagSymbol, ",");
@@ -324,7 +325,7 @@ function generateEffectService(f, service) {
324
325
  case "unary":
325
326
  f.print();
326
327
  f.print(f.jsDoc(method, " "));
327
- f.print(" ", method.localName, "(request: ", inputType, ", ctx: Ctx): ", importEffect, ".Effect<", importMessageInitShape, "<typeof ", outputDesc, ">>;");
328
+ f.print(" ", method.localName, "(request: ", inputType, ", ctx: Ctx): ", importEffect, ".Effect<", importMessageInitShape, "<typeof ", outputDesc, ">, ", importGrpcException, ".GrpcException>;");
328
329
  return;
329
330
  default:
330
331
  f.print("// Method[", method.localName, "] wasn't generated: methodKind is not yet supported [", method.methodKind, "]");
@@ -1 +1 @@
1
- {"version":3,"file":"protocGenPlugin.js","sourceRoot":"","sources":["../src/protocGenPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocGenPlugin.js","sourceRoot":"","sources":["../src/protocGenPlugin.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Effect, Scope, Types } from "effect";
2
2
  import type { GenService, GenServiceMethods } from "@bufbuild/protobuf/codegenv2";
3
- import { HandlerContext, ServiceImpl } from "@connectrpc/connect";
3
+ import type { HandlerContext, ServiceImpl } from "@connectrpc/connect";
4
+ import * as GrpcException from "./grpcException.js";
4
5
  import * as ProtoRuntime from "./protoRuntime.js";
5
6
  import * as internal from "./server.internal.js";
6
7
  /**
@@ -32,7 +33,10 @@ import * as internal from "./server.internal.js";
32
33
  */
33
34
  export interface GrpcServer<in Services> {
34
35
  readonly _Services: Types.Contravariant<Services>;
35
- run(): Effect.Effect<never, never, Scope.Scope>;
36
+ run(options: {
37
+ host: string;
38
+ port: number;
39
+ }): Effect.Effect<never, never, Scope.Scope>;
36
40
  }
37
41
  /**
38
42
  * Utility type that concatenates service tags when adding a new service to an existing collection.
@@ -112,9 +116,9 @@ export type UniqueTag<S extends GrpcService<any, any, any>, Services> = S extend
112
116
  * ```
113
117
  */
114
118
  export interface GrpcServerBuilder<Ctx, Services> {
115
- readonly transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx>;
119
+ readonly transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx, GrpcException.GrpcException>;
116
120
  readonly services: Record<string & Services, GrpcService<any, any, Ctx>>;
117
- withContextTransformer<This extends GrpcServerBuilder<Ctx, Services>, Ctx1>(this: [Services] extends [never] ? This : never, f: (ctx: Ctx) => Effect.Effect<Ctx1>): GrpcServerBuilder<Ctx1, never>;
121
+ withContextTransformer<This extends GrpcServerBuilder<Ctx, Services>, Ctx1>(this: [Services] extends [never] ? This : never, f: (ctx: Ctx) => Effect.Effect<Ctx1, GrpcException.GrpcException>): GrpcServerBuilder<Ctx1, never>;
118
122
  withService<S extends GrpcService<any, any, Ctx>>(service: UniqueTag<S, Services>): GrpcServerBuilder<Ctx, ConcatServiceTags<S, Services>>;
119
123
  build<This extends GrpcServerBuilder<Ctx, Services>>(this: [Services] extends [never] ? never : This): GrpcServer<Services>;
120
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Effect } from "effect";
2
2
  import type { GenService, GenServiceMethods } from "@bufbuild/protobuf/codegenv2";
3
- import { HandlerContext, ServiceImpl } from "@connectrpc/connect";
3
+ import type { HandlerContext, ServiceImpl } from "@connectrpc/connect";
4
+ import * as GrpcException from "./grpcException.js";
4
5
  import * as ProtoRuntime from "./protoRuntime.js";
5
6
  import type * as T from "./server.js";
6
7
  /**
@@ -19,11 +20,11 @@ export declare function makeGrpcService<Tag, Proto extends GenService<RuntimeSha
19
20
  * Provides the fluent API for building gRPC servers with context transformation.
20
21
  */
21
22
  export declare class ConnectEsGprcServerBuilder<Ctx, Services> implements T.GrpcServerBuilder<Ctx, Services> {
22
- readonly transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx>;
23
+ readonly transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx, GrpcException.GrpcException>;
23
24
  readonly services: Record<string, T.GrpcService<any, any, Ctx>>;
24
- constructor(transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx>, services: Record<string, T.GrpcService<any, any, Ctx>>);
25
+ constructor(transformCtx: (ctx: HandlerContext) => Effect.Effect<Ctx, GrpcException.GrpcException>, services: Record<string, T.GrpcService<any, any, Ctx>>);
25
26
  static get empty(): T.GrpcServerBuilder<HandlerContext, never>;
26
- withContextTransformer<This extends T.GrpcServerBuilder<Ctx, Services>, Ctx1>(this: This, f: (ctx: Ctx) => Effect.Effect<Ctx1>): T.GrpcServerBuilder<Ctx1, never>;
27
+ withContextTransformer<This extends T.GrpcServerBuilder<Ctx, Services>, Ctx1>(this: This, f: (ctx: Ctx) => Effect.Effect<Ctx1, GrpcException.GrpcException>): T.GrpcServerBuilder<Ctx1, never>;
27
28
  withService<S extends T.GrpcService<any, any, Ctx>>(service: T.UniqueTag<S, Services>): T.GrpcServerBuilder<Ctx, T.ConcatServiceTags<S, Services>>;
28
29
  build<This extends T.GrpcServerBuilder<Ctx, Services>>(this: This): T.GrpcServer<Services>;
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.internal.d.ts","sourceRoot":"","sources":["../src/server.internal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAuC,MAAM,QAAQ,CAAC;AAGrE,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAGL,cAAc,EACd,WAAW,EAEZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,KAAK,CAAC,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA+C,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EACH,KAAK,SAAS,UAAU,CAAC,YAAY,CAAC,EACtC,YAAY,SAAS,iBAAiB,EACtC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,IACnB,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,KAQpF,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAEtC;AAuHD;;;;GAIG;AACH,qBAAa,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CACnD,YAAW,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC;aAG3B,YAAY,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;aACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBADtD,YAAY,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAGxE,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAE7D;IAED,sBAAsB,CAAC,IAAI,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAC1E,IAAI,EAAE,IAAI,EACV,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GACnC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;IAOnC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChD,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAO7D,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;CAO3F"}
1
+ {"version":3,"file":"server.internal.d.ts","sourceRoot":"","sources":["../src/server.internal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAgB,MAAM,QAAQ,CAAC;AAG9C,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAGV,cAAc,EACd,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,KAAK,CAAC,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,iBAAiB,eAA+C,CAAC;AAE9E;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EACH,KAAK,SAAS,UAAU,CAAC,YAAY,CAAC,EACtC,YAAY,SAAS,iBAAiB,EACtC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,IACnB,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,KAQpF,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAEtC;AAkKD;;;;GAIG;AACH,qBAAa,0BAA0B,CAAC,GAAG,EAAE,QAAQ,CACnD,YAAW,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC;aAG3B,YAAY,EAAE,CAC5B,GAAG,EAAE,cAAc,KAChB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC;aACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAHtD,YAAY,EAAE,CAC5B,GAAG,EAAE,cAAc,KAChB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,aAAa,CAAC,EACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAGxE,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAE7D;IAED,sBAAsB,CAAC,IAAI,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAC1E,IAAI,EAAE,IAAI,EACV,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,aAAa,CAAC,GAChE,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;IAOnC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChD,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,GAChC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAO7D,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;CAO3F"}