@orpc/server 0.0.0-next.bc9d3dd → 0.0.0-next.c0088c7

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 (82) hide show
  1. package/README.md +118 -0
  2. package/dist/adapters/fetch/index.d.mts +26 -0
  3. package/dist/adapters/fetch/index.d.ts +26 -0
  4. package/dist/adapters/fetch/index.mjs +9 -0
  5. package/dist/adapters/hono/index.d.mts +19 -0
  6. package/dist/adapters/hono/index.d.ts +19 -0
  7. package/dist/{hono.js → adapters/hono/index.mjs} +11 -19
  8. package/dist/adapters/next/index.d.mts +26 -0
  9. package/dist/adapters/next/index.d.ts +26 -0
  10. package/dist/{next.js → adapters/next/index.mjs} +11 -19
  11. package/dist/adapters/node/index.d.mts +34 -0
  12. package/dist/adapters/node/index.d.ts +34 -0
  13. package/dist/adapters/node/index.mjs +31 -0
  14. package/dist/adapters/standard/index.d.mts +25 -0
  15. package/dist/adapters/standard/index.d.ts +25 -0
  16. package/dist/adapters/standard/index.mjs +6 -0
  17. package/dist/index.d.mts +255 -0
  18. package/dist/index.d.ts +255 -0
  19. package/dist/{index.js → index.mjs} +41 -112
  20. package/dist/plugins/index.d.mts +31 -0
  21. package/dist/plugins/index.d.ts +31 -0
  22. package/dist/{chunk-XFBAK67J.js → plugins/index.mjs} +17 -42
  23. package/dist/shared/server.BHIDiY4a.mjs +28 -0
  24. package/dist/shared/server.CtBp-i4f.d.mts +77 -0
  25. package/dist/shared/server.DKrKGnk2.mjs +161 -0
  26. package/dist/shared/server.Drm1Lma3.d.ts +77 -0
  27. package/dist/shared/server.Q6ZmnTgO.mjs +12 -0
  28. package/dist/{chunk-SV6DBVXJ.js → shared/server.V6zT5iYQ.mjs} +84 -82
  29. package/dist/shared/server.ptXwNGQr.d.mts +158 -0
  30. package/dist/shared/server.ptXwNGQr.d.ts +158 -0
  31. package/package.json +29 -31
  32. package/dist/chunk-4IQKTPXM.js +0 -145
  33. package/dist/chunk-SD2T3J2Z.js +0 -319
  34. package/dist/fetch.js +0 -16
  35. package/dist/node.js +0 -170
  36. package/dist/plugins.js +0 -11
  37. package/dist/src/adapters/fetch/index.d.ts +0 -4
  38. package/dist/src/adapters/fetch/rpc-handler.d.ts +0 -10
  39. package/dist/src/adapters/fetch/types.d.ts +0 -13
  40. package/dist/src/adapters/fetch/utils.d.ts +0 -5
  41. package/dist/src/adapters/hono/index.d.ts +0 -3
  42. package/dist/src/adapters/hono/middleware.d.ts +0 -13
  43. package/dist/src/adapters/next/index.d.ts +0 -3
  44. package/dist/src/adapters/next/serve.d.ts +0 -20
  45. package/dist/src/adapters/node/index.d.ts +0 -4
  46. package/dist/src/adapters/node/rpc-handler.d.ts +0 -10
  47. package/dist/src/adapters/node/types.d.ts +0 -21
  48. package/dist/src/adapters/node/utils.d.ts +0 -5
  49. package/dist/src/adapters/standard/handler.d.ts +0 -51
  50. package/dist/src/adapters/standard/index.d.ts +0 -7
  51. package/dist/src/adapters/standard/rpc-codec.d.ts +0 -15
  52. package/dist/src/adapters/standard/rpc-handler.d.ts +0 -8
  53. package/dist/src/adapters/standard/rpc-matcher.d.ts +0 -10
  54. package/dist/src/adapters/standard/rpc-serializer.d.ts +0 -16
  55. package/dist/src/adapters/standard/types.d.ts +0 -44
  56. package/dist/src/builder-variants.d.ts +0 -74
  57. package/dist/src/builder.d.ts +0 -57
  58. package/dist/src/config.d.ts +0 -6
  59. package/dist/src/context.d.ts +0 -9
  60. package/dist/src/hidden.d.ts +0 -8
  61. package/dist/src/implementer-procedure.d.ts +0 -30
  62. package/dist/src/implementer-variants.d.ts +0 -17
  63. package/dist/src/implementer.d.ts +0 -28
  64. package/dist/src/index.d.ts +0 -23
  65. package/dist/src/lazy-utils.d.ts +0 -6
  66. package/dist/src/lazy.d.ts +0 -22
  67. package/dist/src/middleware-decorated.d.ts +0 -10
  68. package/dist/src/middleware-utils.d.ts +0 -5
  69. package/dist/src/middleware.d.ts +0 -37
  70. package/dist/src/plugins/base.d.ts +0 -13
  71. package/dist/src/plugins/cors.d.ts +0 -19
  72. package/dist/src/plugins/index.d.ts +0 -4
  73. package/dist/src/plugins/response-headers.d.ts +0 -10
  74. package/dist/src/procedure-client.d.ts +0 -31
  75. package/dist/src/procedure-decorated.d.ts +0 -21
  76. package/dist/src/procedure-utils.d.ts +0 -17
  77. package/dist/src/procedure.d.ts +0 -29
  78. package/dist/src/router-accessible-lazy.d.ts +0 -8
  79. package/dist/src/router-client.d.ts +0 -11
  80. package/dist/src/router.d.ts +0 -29
  81. package/dist/src/utils.d.ts +0 -24
  82. package/dist/standard.js +0 -17
@@ -1,33 +1,12 @@
1
- import {
2
- LAZY_LOADER_SYMBOL,
3
- Procedure,
4
- adaptRouter,
5
- addMiddleware,
6
- convertPathToHttpPath,
7
- createAccessibleLazyRouter,
8
- createContractedProcedure,
9
- createLazyProcedureFormAnyLazy,
10
- createProcedureClient,
11
- deepSetLazyRouterPrefix,
12
- eachAllContractProcedure,
13
- eachContractProcedure,
14
- flatLazy,
15
- getLazyRouterPrefix,
16
- getRouterChild,
17
- getRouterContract,
18
- isLazy,
19
- isProcedure,
20
- lazy,
21
- middlewareOutputFn,
22
- setRouterContract,
23
- unlazy
24
- } from "./chunk-SV6DBVXJ.js";
1
+ import { mergeErrorMap, mergeMeta, mergeRoute, mergePrefix, mergeTags, isContractProcedure } from '@orpc/contract';
2
+ export { ValidationError, eventIterator, type } from '@orpc/contract';
3
+ import { P as Procedure, d as addMiddleware, c as createProcedureClient, f as adaptRouter, h as flatLazy, l as lazy, s as setRouterContract, i as isProcedure, j as isLazy, k as createLazyProcedureFormAnyLazy, g as getRouterChild } from './shared/server.V6zT5iYQ.mjs';
4
+ export { L as LAZY_LOADER_SYMBOL, a as convertPathToHttpPath, q as createAccessibleLazyRouter, b as createContractedProcedure, n as deepSetLazyRouterPrefix, r as eachAllContractProcedure, e as eachContractProcedure, o as getLazyRouterPrefix, m as getRouterContract, p as middlewareOutputFn, u as unlazy } from './shared/server.V6zT5iYQ.mjs';
5
+ export { ORPCError, isDefinedError, safe } from '@orpc/client';
6
+ export { onError, onFinish, onStart, onSuccess } from '@orpc/shared';
7
+ export { getEventMeta, withEventMeta } from '@orpc/standard-server';
25
8
 
26
- // src/builder.ts
27
- import { mergeErrorMap as mergeErrorMap2, mergeMeta as mergeMeta2, mergePrefix, mergeRoute as mergeRoute2, mergeTags } from "@orpc/contract";
28
-
29
- // src/config.ts
30
- var DEFAULT_CONFIG = {
9
+ const DEFAULT_CONFIG = {
31
10
  initialInputValidationIndex: 0,
32
11
  initialOutputValidationIndex: 0
33
12
  };
@@ -38,7 +17,6 @@ function fallbackConfig(key, value) {
38
17
  return value;
39
18
  }
40
19
 
41
- // src/middleware-decorated.ts
42
20
  function decorateMiddleware(middleware) {
43
21
  const decorated = middleware;
44
22
  decorated.mapInput = (mapInput) => {
@@ -50,10 +28,14 @@ function decorateMiddleware(middleware) {
50
28
  decorated.concat = (concatMiddleware, mapInput) => {
51
29
  const mapped = mapInput ? decorateMiddleware(concatMiddleware).mapInput(mapInput) : concatMiddleware;
52
30
  const concatted = decorateMiddleware((options, input, output, ...rest) => {
53
- const next = async (...[nextOptions]) => {
54
- return mapped({ ...options, context: { ...nextOptions?.context, ...options.context } }, input, output, ...rest);
55
- };
56
- const merged = middleware({ ...options, next }, input, output, ...rest);
31
+ const merged = middleware({
32
+ ...options,
33
+ next: (...[nextOptions1]) => mapped({
34
+ ...options,
35
+ context: { ...options.context, ...nextOptions1?.context },
36
+ next: (...[nextOptions2]) => options.next({ context: { ...nextOptions1?.context, ...nextOptions2?.context } })
37
+ }, input, output, ...rest)
38
+ }, input, output, ...rest);
57
39
  return merged;
58
40
  });
59
41
  return concatted;
@@ -61,30 +43,28 @@ function decorateMiddleware(middleware) {
61
43
  return decorated;
62
44
  }
63
45
 
64
- // src/procedure-decorated.ts
65
- import { mergeErrorMap, mergeMeta, mergeRoute } from "@orpc/contract";
66
- var DecoratedProcedure = class _DecoratedProcedure extends Procedure {
46
+ class DecoratedProcedure extends Procedure {
67
47
  errors(errors) {
68
- return new _DecoratedProcedure({
48
+ return new DecoratedProcedure({
69
49
  ...this["~orpc"],
70
50
  errorMap: mergeErrorMap(this["~orpc"].errorMap, errors)
71
51
  });
72
52
  }
73
53
  meta(meta) {
74
- return new _DecoratedProcedure({
54
+ return new DecoratedProcedure({
75
55
  ...this["~orpc"],
76
56
  meta: mergeMeta(this["~orpc"].meta, meta)
77
57
  });
78
58
  }
79
59
  route(route) {
80
- return new _DecoratedProcedure({
60
+ return new DecoratedProcedure({
81
61
  ...this["~orpc"],
82
62
  route: mergeRoute(this["~orpc"].route, route)
83
63
  });
84
64
  }
85
65
  use(middleware, mapInput) {
86
66
  const mapped = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
87
- return new _DecoratedProcedure({
67
+ return new DecoratedProcedure({
88
68
  ...this["~orpc"],
89
69
  middlewares: addMiddleware(this["~orpc"].middlewares, mapped)
90
70
  });
@@ -104,10 +84,9 @@ var DecoratedProcedure = class _DecoratedProcedure extends Procedure {
104
84
  actionable(...rest) {
105
85
  return this.callable(...rest);
106
86
  }
107
- };
87
+ }
108
88
 
109
- // src/builder.ts
110
- var Builder = class _Builder {
89
+ class Builder {
111
90
  "~orpc";
112
91
  constructor(def) {
113
92
  this["~orpc"] = def;
@@ -118,7 +97,7 @@ var Builder = class _Builder {
118
97
  $config(config) {
119
98
  const inputValidationCount = this["~orpc"].inputValidationIndex - fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex);
120
99
  const outputValidationCount = this["~orpc"].outputValidationIndex - fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex);
121
- return new _Builder({
100
+ return new Builder({
122
101
  ...this["~orpc"],
123
102
  config,
124
103
  inputValidationIndex: fallbackConfig("initialInputValidationIndex", config.initialInputValidationIndex) + inputValidationCount,
@@ -129,7 +108,7 @@ var Builder = class _Builder {
129
108
  * Reset initial context
130
109
  */
131
110
  $context() {
132
- return new _Builder({
111
+ return new Builder({
133
112
  ...this["~orpc"],
134
113
  middlewares: [],
135
114
  inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
@@ -140,7 +119,7 @@ var Builder = class _Builder {
140
119
  * Reset initial meta
141
120
  */
142
121
  $meta(initialMeta) {
143
- return new _Builder({
122
+ return new Builder({
144
123
  ...this["~orpc"],
145
124
  meta: initialMeta
146
125
  });
@@ -149,7 +128,7 @@ var Builder = class _Builder {
149
128
  * Reset initial route
150
129
  */
151
130
  $route(initialRoute) {
152
- return new _Builder({
131
+ return new Builder({
153
132
  ...this["~orpc"],
154
133
  route: initialRoute
155
134
  });
@@ -158,39 +137,39 @@ var Builder = class _Builder {
158
137
  return decorateMiddleware(middleware);
159
138
  }
160
139
  errors(errors) {
161
- return new _Builder({
140
+ return new Builder({
162
141
  ...this["~orpc"],
163
- errorMap: mergeErrorMap2(this["~orpc"].errorMap, errors)
142
+ errorMap: mergeErrorMap(this["~orpc"].errorMap, errors)
164
143
  });
165
144
  }
166
145
  use(middleware, mapInput) {
167
146
  const mapped = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
168
- return new _Builder({
147
+ return new Builder({
169
148
  ...this["~orpc"],
170
149
  middlewares: addMiddleware(this["~orpc"].middlewares, mapped)
171
150
  });
172
151
  }
173
152
  meta(meta) {
174
- return new _Builder({
153
+ return new Builder({
175
154
  ...this["~orpc"],
176
- meta: mergeMeta2(this["~orpc"].meta, meta)
155
+ meta: mergeMeta(this["~orpc"].meta, meta)
177
156
  });
178
157
  }
179
158
  route(route) {
180
- return new _Builder({
159
+ return new Builder({
181
160
  ...this["~orpc"],
182
- route: mergeRoute2(this["~orpc"].route, route)
161
+ route: mergeRoute(this["~orpc"].route, route)
183
162
  });
184
163
  }
185
164
  input(schema) {
186
- return new _Builder({
165
+ return new Builder({
187
166
  ...this["~orpc"],
188
167
  inputSchema: schema,
189
168
  inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex) + this["~orpc"].middlewares.length
190
169
  });
191
170
  }
192
171
  output(schema) {
193
- return new _Builder({
172
+ return new Builder({
194
173
  ...this["~orpc"],
195
174
  outputSchema: schema,
196
175
  outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex) + this["~orpc"].middlewares.length
@@ -203,13 +182,13 @@ var Builder = class _Builder {
203
182
  });
204
183
  }
205
184
  prefix(prefix) {
206
- return new _Builder({
185
+ return new Builder({
207
186
  ...this["~orpc"],
208
187
  prefix: mergePrefix(this["~orpc"].prefix, prefix)
209
188
  });
210
189
  }
211
190
  tag(...tags) {
212
- return new _Builder({
191
+ return new Builder({
213
192
  ...this["~orpc"],
214
193
  tags: mergeTags(this["~orpc"].tags, tags)
215
194
  });
@@ -220,8 +199,8 @@ var Builder = class _Builder {
220
199
  lazy(loader) {
221
200
  return adaptRouter(flatLazy(lazy(loader)), this["~orpc"]);
222
201
  }
223
- };
224
- var os = new Builder({
202
+ }
203
+ const os = new Builder({
225
204
  config: {},
226
205
  route: {},
227
206
  meta: {},
@@ -233,13 +212,10 @@ var os = new Builder({
233
212
  middlewares: []
234
213
  });
235
214
 
236
- // src/context.ts
237
215
  function mergeContext(context, other) {
238
216
  return { ...context, ...other };
239
217
  }
240
218
 
241
- // src/implementer.ts
242
- import { isContractProcedure } from "@orpc/contract";
243
219
  function implementerInternal(contract, config, middlewares) {
244
220
  if (isContractProcedure(contract)) {
245
221
  const impl2 = new Builder({
@@ -325,12 +301,10 @@ function implement(contract, config = {}) {
325
301
  return impl;
326
302
  }
327
303
 
328
- // src/procedure-utils.ts
329
304
  function call(procedure, input, ...rest) {
330
305
  return createProcedureClient(procedure, ...rest)(input);
331
306
  }
332
307
 
333
- // src/router-client.ts
334
308
  function createRouterClient(router, ...rest) {
335
309
  if (isProcedure(router)) {
336
310
  const caller = createProcedureClient(router, ...rest);
@@ -356,49 +330,4 @@ function createRouterClient(router, ...rest) {
356
330
  return recursive;
357
331
  }
358
332
 
359
- // src/index.ts
360
- import { isDefinedError, ORPCError, safe, type, ValidationError } from "@orpc/contract";
361
- import { onError, onFinish, onStart, onSuccess } from "@orpc/shared";
362
- export {
363
- Builder,
364
- DecoratedProcedure,
365
- LAZY_LOADER_SYMBOL,
366
- ORPCError,
367
- Procedure,
368
- ValidationError,
369
- adaptRouter,
370
- call,
371
- convertPathToHttpPath,
372
- createAccessibleLazyRouter,
373
- createContractedProcedure,
374
- createLazyProcedureFormAnyLazy,
375
- createProcedureClient,
376
- createRouterClient,
377
- decorateMiddleware,
378
- deepSetLazyRouterPrefix,
379
- eachAllContractProcedure,
380
- eachContractProcedure,
381
- fallbackConfig,
382
- flatLazy,
383
- getLazyRouterPrefix,
384
- getRouterChild,
385
- getRouterContract,
386
- implement,
387
- implementerInternal,
388
- isDefinedError,
389
- isLazy,
390
- isProcedure,
391
- lazy,
392
- mergeContext,
393
- middlewareOutputFn,
394
- onError,
395
- onFinish,
396
- onStart,
397
- onSuccess,
398
- os,
399
- safe,
400
- setRouterContract,
401
- type,
402
- unlazy
403
- };
404
- //# sourceMappingURL=index.js.map
333
+ export { Builder, DecoratedProcedure, Procedure, adaptRouter, call, createLazyProcedureFormAnyLazy, createProcedureClient, createRouterClient, decorateMiddleware, fallbackConfig, flatLazy, getRouterChild, implement, implementerInternal, isLazy, isProcedure, lazy, mergeContext, os, setRouterContract };
@@ -0,0 +1,31 @@
1
+ import { a as StandardHandlerInterceptorOptions, P as Plugin, b as StandardHandlerOptions } from '../shared/server.CtBp-i4f.mjs';
2
+ export { C as CompositePlugin } from '../shared/server.CtBp-i4f.mjs';
3
+ import { Value } from '@orpc/shared';
4
+ import { C as Context } from '../shared/server.ptXwNGQr.mjs';
5
+ import '@orpc/contract';
6
+ import '@orpc/standard-server';
7
+ import '@orpc/client';
8
+
9
+ interface CORSOptions<TContext extends Context> {
10
+ origin?: Value<string | string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<TContext>]>;
11
+ timingOrigin?: Value<string | string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<TContext>]>;
12
+ allowMethods?: string[];
13
+ allowHeaders?: string[];
14
+ maxAge?: number;
15
+ credentials?: boolean;
16
+ exposeHeaders?: string[];
17
+ }
18
+ declare class CORSPlugin<TContext extends Context> implements Plugin<TContext> {
19
+ private readonly options;
20
+ constructor(options?: Partial<CORSOptions<TContext>>);
21
+ init(options: StandardHandlerOptions<TContext>): void;
22
+ }
23
+
24
+ interface ResponseHeadersPluginContext {
25
+ resHeaders?: Headers;
26
+ }
27
+ declare class ResponseHeadersPlugin<TContext extends ResponseHeadersPluginContext & Context> implements Plugin<TContext> {
28
+ init(options: StandardHandlerOptions<TContext>): void;
29
+ }
30
+
31
+ export { type CORSOptions, CORSPlugin, Plugin, ResponseHeadersPlugin, type ResponseHeadersPluginContext };
@@ -0,0 +1,31 @@
1
+ import { a as StandardHandlerInterceptorOptions, P as Plugin, b as StandardHandlerOptions } from '../shared/server.Drm1Lma3.js';
2
+ export { C as CompositePlugin } from '../shared/server.Drm1Lma3.js';
3
+ import { Value } from '@orpc/shared';
4
+ import { C as Context } from '../shared/server.ptXwNGQr.js';
5
+ import '@orpc/contract';
6
+ import '@orpc/standard-server';
7
+ import '@orpc/client';
8
+
9
+ interface CORSOptions<TContext extends Context> {
10
+ origin?: Value<string | string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<TContext>]>;
11
+ timingOrigin?: Value<string | string[] | null | undefined, [origin: string, options: StandardHandlerInterceptorOptions<TContext>]>;
12
+ allowMethods?: string[];
13
+ allowHeaders?: string[];
14
+ maxAge?: number;
15
+ credentials?: boolean;
16
+ exposeHeaders?: string[];
17
+ }
18
+ declare class CORSPlugin<TContext extends Context> implements Plugin<TContext> {
19
+ private readonly options;
20
+ constructor(options?: Partial<CORSOptions<TContext>>);
21
+ init(options: StandardHandlerOptions<TContext>): void;
22
+ }
23
+
24
+ interface ResponseHeadersPluginContext {
25
+ resHeaders?: Headers;
26
+ }
27
+ declare class ResponseHeadersPlugin<TContext extends ResponseHeadersPluginContext & Context> implements Plugin<TContext> {
28
+ init(options: StandardHandlerOptions<TContext>): void;
29
+ }
30
+
31
+ export { type CORSOptions, CORSPlugin, Plugin, ResponseHeadersPlugin, type ResponseHeadersPluginContext };
@@ -1,40 +1,21 @@
1
- // src/plugins/base.ts
2
- var CompositePlugin = class {
3
- constructor(plugins = []) {
4
- this.plugins = plugins;
5
- }
6
- init(options) {
7
- for (const plugin of this.plugins) {
8
- plugin.init?.(options);
9
- }
10
- }
11
- beforeCreateProcedureClient(clientOptions, interceptorOptions) {
12
- for (const plugin of this.plugins) {
13
- plugin.beforeCreateProcedureClient?.(clientOptions, interceptorOptions);
14
- }
15
- }
16
- };
1
+ export { C as CompositePlugin } from '../shared/server.Q6ZmnTgO.mjs';
2
+ import { value } from '@orpc/shared';
17
3
 
18
- // src/plugins/cors.ts
19
- import { value } from "@orpc/shared";
20
- var CORSPlugin = class {
4
+ class CORSPlugin {
21
5
  options;
22
6
  constructor(options) {
23
7
  const defaults = {
24
- origin: "*",
8
+ origin: (origin) => origin,
25
9
  allowMethods: ["GET", "HEAD", "PUT", "POST", "DELETE", "PATCH"]
26
10
  };
27
- if (options?.credentials) {
28
- defaults.origin = (origin) => origin;
29
- }
30
11
  this.options = {
31
12
  ...defaults,
32
13
  ...options
33
14
  };
34
15
  }
35
16
  init(options) {
36
- options.interceptorsRoot ??= [];
37
- options.interceptorsRoot.unshift(async (interceptorOptions) => {
17
+ options.rootInterceptors ??= [];
18
+ options.rootInterceptors.unshift(async (interceptorOptions) => {
38
19
  if (interceptorOptions.request.method === "OPTIONS") {
39
20
  const resHeaders = {};
40
21
  if (this.options.maxAge !== void 0) {
@@ -60,7 +41,7 @@ var CORSPlugin = class {
60
41
  }
61
42
  return interceptorOptions.next();
62
43
  });
63
- options.interceptorsRoot.unshift(async (interceptorOptions) => {
44
+ options.rootInterceptors.unshift(async (interceptorOptions) => {
64
45
  const result = await interceptorOptions.next();
65
46
  if (!result.matched) {
66
47
  return result;
@@ -92,13 +73,12 @@ var CORSPlugin = class {
92
73
  return result;
93
74
  });
94
75
  }
95
- };
76
+ }
96
77
 
97
- // src/plugins/response-headers.ts
98
- var ResponseHeadersPlugin = class {
78
+ class ResponseHeadersPlugin {
99
79
  init(options) {
100
- options.interceptorsRoot ??= [];
101
- options.interceptorsRoot.push(async (interceptorOptions) => {
80
+ options.rootInterceptors ??= [];
81
+ options.rootInterceptors.push(async (interceptorOptions) => {
102
82
  const headers = new Headers();
103
83
  interceptorOptions.context.resHeaders = headers;
104
84
  const result = await interceptorOptions.next();
@@ -106,23 +86,18 @@ var ResponseHeadersPlugin = class {
106
86
  return result;
107
87
  }
108
88
  const responseHeaders = result.response.headers;
109
- for (const [key, value2] of headers) {
89
+ for (const [key, value] of headers) {
110
90
  if (Array.isArray(responseHeaders[key])) {
111
- responseHeaders[key].push(value2);
91
+ responseHeaders[key].push(value);
112
92
  } else if (responseHeaders[key] !== void 0) {
113
- responseHeaders[key] = [responseHeaders[key], value2];
93
+ responseHeaders[key] = [responseHeaders[key], value];
114
94
  } else {
115
- responseHeaders[key] = value2;
95
+ responseHeaders[key] = value;
116
96
  }
117
97
  }
118
98
  return result;
119
99
  });
120
100
  }
121
- };
101
+ }
122
102
 
123
- export {
124
- CompositePlugin,
125
- CORSPlugin,
126
- ResponseHeadersPlugin
127
- };
128
- //# sourceMappingURL=chunk-XFBAK67J.js.map
103
+ export { CORSPlugin, ResponseHeadersPlugin };
@@ -0,0 +1,28 @@
1
+ import { RPCSerializer } from '@orpc/client/standard';
2
+ import { toStandardLazyRequest, toFetchResponse } from '@orpc/standard-server-fetch';
3
+ import { S as StandardHandler, a as RPCMatcher, R as RPCCodec } from './server.DKrKGnk2.mjs';
4
+
5
+ class RPCHandler {
6
+ standardHandler;
7
+ constructor(router, options = {}) {
8
+ const serializer = new RPCSerializer();
9
+ const matcher = new RPCMatcher();
10
+ const codec = new RPCCodec(serializer);
11
+ this.standardHandler = new StandardHandler(router, matcher, codec, options);
12
+ }
13
+ async handle(request, ...[
14
+ options = {}
15
+ ]) {
16
+ const standardRequest = toStandardLazyRequest(request);
17
+ const result = await this.standardHandler.handle(standardRequest, options);
18
+ if (!result.matched) {
19
+ return result;
20
+ }
21
+ return {
22
+ matched: true,
23
+ response: toFetchResponse(result.response, options)
24
+ };
25
+ }
26
+ }
27
+
28
+ export { RPCHandler as R };
@@ -0,0 +1,77 @@
1
+ import { HTTPPath, Schema, Meta, SchemaOutput, ErrorFromErrorMap } from '@orpc/contract';
2
+ import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
3
+ import { StandardResponse, StandardLazyRequest } from '@orpc/standard-server';
4
+ import { a as AnyRouter, A as AnyProcedure, C as Context, P as ProcedureClientInterceptorOptions, R as Router } from './server.ptXwNGQr.mjs';
5
+ import { ORPCError } from '@orpc/client';
6
+
7
+ type StandardParams = Record<string, string>;
8
+ type StandardMatchResult = {
9
+ path: string[];
10
+ procedure: AnyProcedure;
11
+ params?: StandardParams;
12
+ } | undefined;
13
+ interface StandardMatcher {
14
+ init(router: AnyRouter): void;
15
+ match(method: string, pathname: HTTPPath): Promise<StandardMatchResult>;
16
+ }
17
+ interface StandardCodec {
18
+ encode(output: unknown, procedure: AnyProcedure): StandardResponse;
19
+ encodeError(error: ORPCError<any, any>): StandardResponse;
20
+ decode(request: StandardLazyRequest, params: StandardParams | undefined, procedure: AnyProcedure): Promise<unknown>;
21
+ }
22
+
23
+ type StandardHandleOptions<T extends Context> = {
24
+ prefix?: HTTPPath;
25
+ } & (Record<never, never> extends T ? {
26
+ context?: T;
27
+ } : {
28
+ context: T;
29
+ });
30
+ type WellStandardHandleOptions<T extends Context> = StandardHandleOptions<T> & {
31
+ context: T;
32
+ };
33
+ type StandardHandleResult = {
34
+ matched: true;
35
+ response: StandardResponse;
36
+ } | {
37
+ matched: false;
38
+ response: undefined;
39
+ };
40
+ type StandardHandlerInterceptorOptions<TContext extends Context> = WellStandardHandleOptions<TContext> & {
41
+ request: StandardLazyRequest;
42
+ };
43
+ interface StandardHandlerOptions<TContext extends Context> {
44
+ plugins?: Plugin<TContext>[];
45
+ /**
46
+ * Interceptors at the request level, helpful when you want catch errors
47
+ */
48
+ interceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, StandardHandleResult, unknown>[];
49
+ /**
50
+ * Interceptors at the root level, helpful when you want override the request/response
51
+ */
52
+ rootInterceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, StandardHandleResult, unknown>[];
53
+ /**
54
+ *
55
+ * Interceptors for procedure client.
56
+ */
57
+ clientInterceptors?: Interceptor<ProcedureClientInterceptorOptions<TContext, Schema, Record<never, never>, Meta>, SchemaOutput<Schema, unknown>, ErrorFromErrorMap<Record<never, never>>>[];
58
+ }
59
+ declare class StandardHandler<T extends Context> {
60
+ private readonly matcher;
61
+ private readonly codec;
62
+ private readonly options;
63
+ private readonly plugin;
64
+ constructor(router: Router<T, any>, matcher: StandardMatcher, codec: StandardCodec, options: NoInfer<StandardHandlerOptions<T>>);
65
+ handle(request: StandardLazyRequest, ...[options]: MaybeOptionalOptions<StandardHandleOptions<T>>): Promise<StandardHandleResult>;
66
+ }
67
+
68
+ interface Plugin<TContext extends Context> {
69
+ init?(options: StandardHandlerOptions<TContext>): void;
70
+ }
71
+ declare class CompositePlugin<TContext extends Context> implements Plugin<TContext> {
72
+ private readonly plugins;
73
+ constructor(plugins?: Plugin<TContext>[]);
74
+ init(options: StandardHandlerOptions<TContext>): void;
75
+ }
76
+
77
+ export { CompositePlugin as C, type Plugin as P, type StandardHandleOptions as S, type WellStandardHandleOptions as W, type StandardHandlerInterceptorOptions as a, type StandardHandlerOptions as b, type StandardCodec as c, type StandardParams as d, type StandardMatcher as e, type StandardMatchResult as f, type StandardHandleResult as g, StandardHandler as h };