@orpc/server 0.0.0-next.4e27480 → 0.0.0-next.4f63ec1

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 (73) hide show
  1. package/dist/chunk-KPT6FDBK.js +32 -0
  2. package/dist/chunk-LXOL226G.js +182 -0
  3. package/dist/chunk-MHVECKBC.js +421 -0
  4. package/dist/chunk-XI6WGCB3.js +125 -0
  5. package/dist/fetch.js +6 -11
  6. package/dist/hono.js +18 -14
  7. package/dist/index.js +214 -844
  8. package/dist/next.js +6 -11
  9. package/dist/node.js +19 -75
  10. package/dist/plugins.js +11 -0
  11. package/dist/src/adapters/fetch/index.d.ts +1 -4
  12. package/dist/src/adapters/fetch/rpc-handler.d.ts +11 -0
  13. package/dist/src/adapters/fetch/types.d.ts +4 -11
  14. package/dist/src/adapters/hono/middleware.d.ts +6 -6
  15. package/dist/src/adapters/next/serve.d.ts +11 -11
  16. package/dist/src/adapters/node/index.d.ts +1 -3
  17. package/dist/src/adapters/node/rpc-handler.d.ts +11 -0
  18. package/dist/src/adapters/node/types.d.ts +15 -15
  19. package/dist/src/adapters/standard/handler.d.ts +51 -0
  20. package/dist/src/adapters/standard/index.d.ts +6 -0
  21. package/dist/src/adapters/standard/rpc-codec.d.ts +16 -0
  22. package/dist/src/adapters/standard/rpc-handler.d.ts +8 -0
  23. package/dist/src/adapters/standard/rpc-matcher.d.ts +10 -0
  24. package/dist/src/adapters/standard/types.d.ts +21 -0
  25. package/dist/src/builder-variants.d.ts +75 -0
  26. package/dist/src/builder.d.ts +47 -38
  27. package/dist/src/context.d.ts +7 -10
  28. package/dist/src/error.d.ts +8 -6
  29. package/dist/src/hidden.d.ts +5 -3
  30. package/dist/src/implementer-procedure.d.ts +33 -0
  31. package/dist/src/implementer-variants.d.ts +18 -0
  32. package/dist/src/implementer.d.ts +29 -0
  33. package/dist/src/index.d.ts +11 -12
  34. package/dist/src/lazy-utils.d.ts +4 -2
  35. package/dist/src/lazy.d.ts +9 -5
  36. package/dist/src/middleware-decorated.d.ts +7 -6
  37. package/dist/src/middleware-utils.d.ts +5 -0
  38. package/dist/src/middleware.d.ts +23 -21
  39. package/dist/src/plugins/base.d.ts +13 -0
  40. package/dist/src/plugins/cors.d.ts +19 -0
  41. package/dist/src/plugins/index.d.ts +4 -0
  42. package/dist/src/plugins/response-headers.d.ts +10 -0
  43. package/dist/src/procedure-client.d.ts +23 -12
  44. package/dist/src/procedure-decorated.d.ts +13 -15
  45. package/dist/src/procedure-utils.d.ts +6 -4
  46. package/dist/src/procedure.d.ts +18 -32
  47. package/dist/src/router-accessible-lazy.d.ts +8 -0
  48. package/dist/src/router-client.d.ts +8 -22
  49. package/dist/src/router.d.ts +26 -12
  50. package/dist/src/utils.d.ts +23 -2
  51. package/dist/standard.js +13 -0
  52. package/package.json +20 -3
  53. package/dist/chunk-GK2Z6B6W.js +0 -230
  54. package/dist/chunk-SXUFCJBY.js +0 -301
  55. package/dist/chunk-WUOGVGWG.js +0 -1
  56. package/dist/src/adapters/fetch/orpc-handler.d.ts +0 -20
  57. package/dist/src/adapters/fetch/orpc-payload-codec.d.ts +0 -16
  58. package/dist/src/adapters/fetch/orpc-procedure-matcher.d.ts +0 -12
  59. package/dist/src/adapters/fetch/super-json.d.ts +0 -12
  60. package/dist/src/adapters/node/orpc-handler.d.ts +0 -12
  61. package/dist/src/adapters/node/request-listener.d.ts +0 -28
  62. package/dist/src/builder-with-errors-middlewares.d.ts +0 -51
  63. package/dist/src/builder-with-errors.d.ts +0 -52
  64. package/dist/src/builder-with-middlewares.d.ts +0 -48
  65. package/dist/src/implementer-chainable.d.ts +0 -14
  66. package/dist/src/lazy-decorated.d.ts +0 -7
  67. package/dist/src/procedure-builder-with-input.d.ts +0 -34
  68. package/dist/src/procedure-builder-with-output.d.ts +0 -33
  69. package/dist/src/procedure-builder.d.ts +0 -27
  70. package/dist/src/procedure-implementer.d.ts +0 -22
  71. package/dist/src/router-builder.d.ts +0 -33
  72. package/dist/src/router-implementer.d.ts +0 -22
  73. package/dist/src/types.d.ts +0 -14
package/dist/index.js CHANGED
@@ -1,32 +1,42 @@
1
1
  import {
2
2
  LAZY_LOADER_SYMBOL,
3
3
  Procedure,
4
- createORPCErrorConstructorMap,
4
+ adaptRouter,
5
+ addMiddleware,
6
+ convertPathToHttpPath,
7
+ createAccessibleLazyRouter,
8
+ createContractedProcedure,
9
+ createLazyProcedureFormAnyLazy,
5
10
  createProcedureClient,
11
+ deepSetLazyRouterPrefix,
12
+ eachAllContractProcedure,
13
+ eachContractProcedure,
6
14
  flatLazy,
15
+ getLazyRouterPrefix,
7
16
  getRouterChild,
17
+ getRouterContract,
8
18
  isLazy,
9
19
  isProcedure,
10
20
  lazy,
11
- mergeContext,
12
21
  middlewareOutputFn,
22
+ setRouterContract,
13
23
  unlazy
14
- } from "./chunk-GK2Z6B6W.js";
24
+ } from "./chunk-MHVECKBC.js";
15
25
 
16
26
  // src/builder.ts
17
- import { ContractProcedure as ContractProcedure4 } from "@orpc/contract";
18
-
19
- // src/builder-with-errors.ts
20
- import { ContractProcedure as ContractProcedure2 } from "@orpc/contract";
21
-
22
- // src/builder-with-errors-middlewares.ts
23
- import { ContractProcedure } from "@orpc/contract";
27
+ import { mergeErrorMap as mergeErrorMap2, mergeMeta as mergeMeta2, mergePrefix, mergeRoute as mergeRoute2, mergeTags } from "@orpc/contract";
24
28
 
25
- // src/procedure-builder.ts
26
- import { ContractProcedureBuilder, DecoratedContractProcedure as DecoratedContractProcedure4 } from "@orpc/contract";
27
-
28
- // src/procedure-builder-with-input.ts
29
- import { ContractProcedureBuilderWithInput, DecoratedContractProcedure as DecoratedContractProcedure2 } from "@orpc/contract";
29
+ // src/config.ts
30
+ var DEFAULT_CONFIG = {
31
+ initialInputValidationIndex: 0,
32
+ initialOutputValidationIndex: 0
33
+ };
34
+ function fallbackConfig(key, value) {
35
+ if (value === void 0) {
36
+ return DEFAULT_CONFIG[key];
37
+ }
38
+ return value;
39
+ }
30
40
 
31
41
  // src/middleware-decorated.ts
32
42
  function decorateMiddleware(middleware) {
@@ -40,10 +50,14 @@ function decorateMiddleware(middleware) {
40
50
  decorated.concat = (concatMiddleware, mapInput) => {
41
51
  const mapped = mapInput ? decorateMiddleware(concatMiddleware).mapInput(mapInput) : concatMiddleware;
42
52
  const concatted = decorateMiddleware((options, input, output, ...rest) => {
43
- const next = async (nextOptions) => {
44
- return mapped({ ...options, context: mergeContext(nextOptions.context, options.context) }, input, output, ...rest);
45
- };
46
- const merged = middleware({ ...options, next }, input, output, ...rest);
53
+ const merged = middleware({
54
+ ...options,
55
+ next: (...[nextOptions1]) => mapped({
56
+ ...options,
57
+ context: { ...options.context, ...nextOptions1?.context },
58
+ next: (...[nextOptions2]) => options.next({ context: { ...nextOptions1?.context, ...nextOptions2?.context } })
59
+ }, input, output, ...rest)
60
+ }, input, output, ...rest);
47
61
  return merged;
48
62
  });
49
63
  return concatted;
@@ -52,64 +66,31 @@ function decorateMiddleware(middleware) {
52
66
  }
53
67
 
54
68
  // src/procedure-decorated.ts
55
- import { DecoratedContractProcedure } from "@orpc/contract";
69
+ import { mergeErrorMap, mergeMeta, mergeRoute } from "@orpc/contract";
56
70
  var DecoratedProcedure = class _DecoratedProcedure extends Procedure {
57
- static decorate(procedure) {
58
- if (procedure instanceof _DecoratedProcedure) {
59
- return procedure;
60
- }
61
- return new _DecoratedProcedure(procedure["~orpc"]);
62
- }
63
- prefix(prefix) {
64
- return new _DecoratedProcedure({
65
- ...this["~orpc"],
66
- contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).prefix(prefix)
67
- });
68
- }
69
- route(route) {
70
- return new _DecoratedProcedure({
71
- ...this["~orpc"],
72
- contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).route(route)
73
- });
74
- }
75
71
  errors(errors) {
76
72
  return new _DecoratedProcedure({
77
73
  ...this["~orpc"],
78
- contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).errors(errors)
74
+ errorMap: mergeErrorMap(this["~orpc"].errorMap, errors)
79
75
  });
80
76
  }
81
- use(middleware, mapInput) {
82
- const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
77
+ meta(meta) {
83
78
  return new _DecoratedProcedure({
84
79
  ...this["~orpc"],
85
- middlewares: [...this["~orpc"].middlewares, middleware_]
80
+ meta: mergeMeta(this["~orpc"].meta, meta)
86
81
  });
87
82
  }
88
- unshiftTag(...tags) {
83
+ route(route) {
89
84
  return new _DecoratedProcedure({
90
85
  ...this["~orpc"],
91
- contract: DecoratedContractProcedure.decorate(this["~orpc"].contract).unshiftTag(...tags)
86
+ route: mergeRoute(this["~orpc"].route, route)
92
87
  });
93
88
  }
94
- unshiftMiddleware(...middlewares) {
95
- const castedMiddlewares = middlewares;
96
- if (this["~orpc"].middlewares.length) {
97
- let min = 0;
98
- for (let i = 0; i < this["~orpc"].middlewares.length; i++) {
99
- const index = castedMiddlewares.indexOf(this["~orpc"].middlewares[i], min);
100
- if (index === -1) {
101
- castedMiddlewares.push(...this["~orpc"].middlewares.slice(i));
102
- break;
103
- }
104
- min = index + 1;
105
- }
106
- }
107
- const numNewMiddlewares = castedMiddlewares.length - this["~orpc"].middlewares.length;
89
+ use(middleware, mapInput) {
90
+ const mapped = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
108
91
  return new _DecoratedProcedure({
109
92
  ...this["~orpc"],
110
- inputValidationIndex: this["~orpc"].inputValidationIndex + numNewMiddlewares,
111
- outputValidationIndex: this["~orpc"].outputValidationIndex + numNewMiddlewares,
112
- middlewares: castedMiddlewares
93
+ middlewares: addMiddleware(this["~orpc"].middlewares, mapped)
113
94
  });
114
95
  }
115
96
  /**
@@ -129,851 +110,230 @@ var DecoratedProcedure = class _DecoratedProcedure extends Procedure {
129
110
  }
130
111
  };
131
112
 
132
- // src/procedure-implementer.ts
133
- var ProcedureImplementer = class _ProcedureImplementer {
134
- "~type" = "ProcedureImplementer";
135
- "~orpc";
136
- constructor(def) {
137
- this["~orpc"] = def;
138
- }
139
- use(middleware, mapInput) {
140
- const mappedMiddleware = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
141
- return new _ProcedureImplementer({
142
- ...this["~orpc"],
143
- middlewares: [...this["~orpc"].middlewares, mappedMiddleware]
144
- });
145
- }
146
- handler(handler) {
147
- return new DecoratedProcedure({
148
- ...this["~orpc"],
149
- handler
150
- });
151
- }
152
- };
153
-
154
- // src/procedure-builder-with-input.ts
155
- var ProcedureBuilderWithInput = class _ProcedureBuilderWithInput {
156
- "~type" = "ProcedureBuilderWithInput";
157
- "~orpc";
158
- constructor(def) {
159
- this["~orpc"] = def;
160
- }
161
- errors(errors) {
162
- return new _ProcedureBuilderWithInput({
163
- ...this["~orpc"],
164
- contract: DecoratedContractProcedure2.decorate(this["~orpc"].contract).errors(errors)
165
- });
166
- }
167
- route(route) {
168
- return new _ProcedureBuilderWithInput({
169
- ...this["~orpc"],
170
- contract: DecoratedContractProcedure2.decorate(this["~orpc"].contract).route(route)
171
- });
172
- }
173
- use(middleware, mapInput) {
174
- const maybeWithMapInput = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
175
- return new _ProcedureBuilderWithInput({
176
- ...this["~orpc"],
177
- outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
178
- middlewares: [...this["~orpc"].middlewares, maybeWithMapInput]
179
- });
180
- }
181
- output(schema, example) {
182
- return new ProcedureImplementer({
183
- ...this["~orpc"],
184
- contract: new ContractProcedureBuilderWithInput(this["~orpc"].contract["~orpc"]).output(schema, example)
185
- });
186
- }
187
- handler(handler) {
188
- return new DecoratedProcedure({
189
- ...this["~orpc"],
190
- handler
191
- });
192
- }
193
- };
194
-
195
- // src/procedure-builder-with-output.ts
196
- import { ContractProcedureBuilderWithOutput, DecoratedContractProcedure as DecoratedContractProcedure3 } from "@orpc/contract";
197
- var ProcedureBuilderWithOutput = class _ProcedureBuilderWithOutput {
198
- "~type" = "ProcedureBuilderWithOutput";
199
- "~orpc";
200
- constructor(def) {
201
- this["~orpc"] = def;
202
- }
203
- errors(errors) {
204
- return new _ProcedureBuilderWithOutput({
205
- ...this["~orpc"],
206
- contract: DecoratedContractProcedure3.decorate(this["~orpc"].contract).errors(errors)
207
- });
208
- }
209
- route(route) {
210
- return new _ProcedureBuilderWithOutput({
211
- ...this["~orpc"],
212
- contract: DecoratedContractProcedure3.decorate(this["~orpc"].contract).route(route)
213
- });
214
- }
215
- use(middleware) {
216
- return new _ProcedureBuilderWithOutput({
217
- ...this["~orpc"],
218
- inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
219
- middlewares: [...this["~orpc"].middlewares, middleware]
220
- });
221
- }
222
- input(schema, example) {
223
- return new ProcedureImplementer({
224
- ...this["~orpc"],
225
- contract: new ContractProcedureBuilderWithOutput(this["~orpc"].contract["~orpc"]).input(schema, example)
226
- });
227
- }
228
- handler(handler) {
229
- return new DecoratedProcedure({
230
- ...this["~orpc"],
231
- handler
232
- });
233
- }
234
- };
235
-
236
- // src/procedure-builder.ts
237
- var ProcedureBuilder = class _ProcedureBuilder {
238
- "~type" = "ProcedureBuilder";
113
+ // src/builder.ts
114
+ var Builder = class _Builder {
239
115
  "~orpc";
240
116
  constructor(def) {
241
117
  this["~orpc"] = def;
242
118
  }
243
- errors(errors) {
244
- return new _ProcedureBuilder({
245
- ...this["~orpc"],
246
- contract: DecoratedContractProcedure4.decorate(this["~orpc"].contract).errors(errors)
247
- });
248
- }
249
- route(route) {
250
- return new _ProcedureBuilder({
251
- ...this["~orpc"],
252
- contract: DecoratedContractProcedure4.decorate(this["~orpc"].contract).route(route)
253
- });
254
- }
255
- use(middleware) {
256
- return new _ProcedureBuilder({
257
- ...this["~orpc"],
258
- inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
259
- outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
260
- middlewares: [...this["~orpc"].middlewares, middleware]
261
- });
262
- }
263
- input(schema, example) {
264
- return new ProcedureBuilderWithInput({
119
+ /**
120
+ * Reset config
121
+ */
122
+ $config(config) {
123
+ const inputValidationCount = this["~orpc"].inputValidationIndex - fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex);
124
+ const outputValidationCount = this["~orpc"].outputValidationIndex - fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex);
125
+ return new _Builder({
265
126
  ...this["~orpc"],
266
- contract: new ContractProcedureBuilder(this["~orpc"].contract["~orpc"]).input(schema, example)
127
+ config,
128
+ inputValidationIndex: fallbackConfig("initialInputValidationIndex", config.initialInputValidationIndex) + inputValidationCount,
129
+ outputValidationIndex: fallbackConfig("initialOutputValidationIndex", config.initialOutputValidationIndex) + outputValidationCount
267
130
  });
268
131
  }
269
- output(schema, example) {
270
- return new ProcedureBuilderWithOutput({
132
+ /**
133
+ * Reset initial context
134
+ */
135
+ $context() {
136
+ return new _Builder({
271
137
  ...this["~orpc"],
272
- contract: new ContractProcedureBuilder(this["~orpc"].contract["~orpc"]).output(schema, example)
138
+ middlewares: [],
139
+ inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
140
+ outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex)
273
141
  });
274
142
  }
275
- handler(handler) {
276
- return new DecoratedProcedure({
143
+ /**
144
+ * Reset initial meta
145
+ */
146
+ $meta(initialMeta) {
147
+ return new _Builder({
277
148
  ...this["~orpc"],
278
- handler
149
+ meta: initialMeta
279
150
  });
280
151
  }
281
- };
282
-
283
- // src/hidden.ts
284
- var ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_ROUTER_CONTRACT");
285
- function setRouterContract(obj, contract) {
286
- return new Proxy(obj, {
287
- get(target, key) {
288
- if (key === ROUTER_CONTRACT_SYMBOL) {
289
- return contract;
290
- }
291
- return Reflect.get(target, key);
292
- }
293
- });
294
- }
295
- function getRouterContract(obj) {
296
- return obj[ROUTER_CONTRACT_SYMBOL];
297
- }
298
- var LAZY_ROUTER_PREFIX_SYMBOL = Symbol("ORPC_LAZY_ROUTER_PREFIX");
299
- function deepSetLazyRouterPrefix(router, prefix) {
300
- return new Proxy(router, {
301
- get(target, key) {
302
- if (key !== LAZY_ROUTER_PREFIX_SYMBOL) {
303
- const val = Reflect.get(target, key);
304
- if (val && (typeof val === "object" || typeof val === "function")) {
305
- return deepSetLazyRouterPrefix(val, prefix);
306
- }
307
- return val;
308
- }
309
- return prefix;
310
- }
311
- });
312
- }
313
- function getLazyRouterPrefix(obj) {
314
- return obj[LAZY_ROUTER_PREFIX_SYMBOL];
315
- }
316
-
317
- // src/lazy-decorated.ts
318
- function decorateLazy(lazied) {
319
- const flattenLazy = flatLazy(lazied);
320
- const recursive = new Proxy(flattenLazy, {
321
- get(target, key) {
322
- if (typeof key !== "string") {
323
- return Reflect.get(target, key);
324
- }
325
- const next = getRouterChild(flattenLazy, key);
326
- return decorateLazy(next);
327
- }
328
- });
329
- return recursive;
330
- }
331
-
332
- // src/router-builder.ts
333
- var RouterBuilder = class _RouterBuilder {
334
- "~type" = "RouterBuilder";
335
- "~orpc";
336
- constructor(def) {
337
- this["~orpc"] = def;
338
- if (def.prefix && def.prefix.includes("{")) {
339
- throw new Error(`
340
- Dynamic routing in prefix not supported yet.
341
- Please remove "{" from "${def.prefix}".
342
- `);
343
- }
344
- }
345
- prefix(prefix) {
346
- return new _RouterBuilder({
152
+ /**
153
+ * Reset initial route
154
+ */
155
+ $route(initialRoute) {
156
+ return new _Builder({
347
157
  ...this["~orpc"],
348
- prefix: `${this["~orpc"].prefix ?? ""}${prefix}`
158
+ route: initialRoute
349
159
  });
350
160
  }
351
- tag(...tags) {
352
- return new _RouterBuilder({
353
- ...this["~orpc"],
354
- tags: [...this["~orpc"].tags ?? [], ...tags]
355
- });
161
+ middleware(middleware) {
162
+ return decorateMiddleware(middleware);
356
163
  }
357
164
  errors(errors) {
358
- return new _RouterBuilder({
359
- ...this["~orpc"],
360
- errorMap: {
361
- ...this["~orpc"].errorMap,
362
- ...errors
363
- }
364
- });
365
- }
366
- use(middleware) {
367
- return new _RouterBuilder({
165
+ return new _Builder({
368
166
  ...this["~orpc"],
369
- middlewares: [...this["~orpc"].middlewares, middleware]
167
+ errorMap: mergeErrorMap2(this["~orpc"].errorMap, errors)
370
168
  });
371
169
  }
372
- router(router) {
373
- const adapted = adapt(router, this["~orpc"]);
374
- return adapted;
375
- }
376
- lazy(loader) {
377
- const adapted = adapt(flatLazy(lazy(loader)), this["~orpc"]);
378
- return adapted;
379
- }
380
- };
381
- function adapt(item, options) {
382
- if (isLazy(item)) {
383
- const adaptedLazy = decorateLazy(lazy(async () => {
384
- const routerOrProcedure = (await unlazy(item)).default;
385
- const adapted2 = adapt(routerOrProcedure, options);
386
- return { default: adapted2 };
387
- }));
388
- const lazyPrefix = getLazyRouterPrefix(item);
389
- if (options.prefix || lazyPrefix) {
390
- const prefixed = deepSetLazyRouterPrefix(adaptedLazy, `${options.prefix ?? ""}${lazyPrefix ?? ""}`);
391
- return prefixed;
392
- }
393
- return adaptedLazy;
394
- }
395
- if (isProcedure(item)) {
396
- let decorated = DecoratedProcedure.decorate(item);
397
- if (options.tags?.length) {
398
- decorated = decorated.unshiftTag(...options.tags);
399
- }
400
- if (options.prefix) {
401
- decorated = decorated.prefix(options.prefix);
402
- }
403
- if (options.middlewares?.length) {
404
- decorated = decorated.unshiftMiddleware(...options.middlewares);
405
- }
406
- if (Object.keys(options.errorMap).length) {
407
- decorated = decorated.errors(options.errorMap);
408
- }
409
- return decorated;
410
- }
411
- const adapted = {};
412
- for (const key in item) {
413
- adapted[key] = adapt(item[key], options);
414
- }
415
- return adapted;
416
- }
417
-
418
- // src/builder-with-errors-middlewares.ts
419
- var BuilderWithErrorsMiddlewares = class _BuilderWithErrorsMiddlewares {
420
- "~type" = "BuilderWithErrorsMiddlewares";
421
- "~orpc";
422
- constructor(def) {
423
- this["~orpc"] = def;
424
- }
425
- errors(errors) {
426
- return new _BuilderWithErrorsMiddlewares({
170
+ use(middleware, mapInput) {
171
+ const mapped = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
172
+ return new _Builder({
427
173
  ...this["~orpc"],
428
- errorMap: {
429
- ...this["~orpc"].errorMap,
430
- ...errors
431
- }
174
+ middlewares: addMiddleware(this["~orpc"].middlewares, mapped)
432
175
  });
433
176
  }
434
- use(middleware) {
435
- return new _BuilderWithErrorsMiddlewares({
177
+ meta(meta) {
178
+ return new _Builder({
436
179
  ...this["~orpc"],
437
- inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
438
- outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
439
- middlewares: [...this["~orpc"].middlewares, middleware]
440
- // FIXME: I believe we can remove `as any` here
180
+ meta: mergeMeta2(this["~orpc"].meta, meta)
441
181
  });
442
182
  }
443
183
  route(route) {
444
- return new ProcedureBuilder({
184
+ return new _Builder({
445
185
  ...this["~orpc"],
446
- contract: new ContractProcedure({
447
- route: {
448
- ...this["~orpc"].config.initialRoute,
449
- ...route
450
- },
451
- InputSchema: void 0,
452
- OutputSchema: void 0,
453
- errorMap: this["~orpc"].errorMap
454
- })
186
+ route: mergeRoute2(this["~orpc"].route, route)
455
187
  });
456
188
  }
457
- input(schema, example) {
458
- return new ProcedureBuilderWithInput({
189
+ input(schema) {
190
+ return new _Builder({
459
191
  ...this["~orpc"],
460
- contract: new ContractProcedure({
461
- route: this["~orpc"].config.initialRoute,
462
- OutputSchema: void 0,
463
- InputSchema: schema,
464
- inputExample: example,
465
- errorMap: this["~orpc"].errorMap
466
- })
192
+ inputSchema: schema,
193
+ inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex) + this["~orpc"].middlewares.length
467
194
  });
468
195
  }
469
- output(schema, example) {
470
- return new ProcedureBuilderWithOutput({
196
+ output(schema) {
197
+ return new _Builder({
471
198
  ...this["~orpc"],
472
- contract: new ContractProcedure({
473
- route: this["~orpc"].config.initialRoute,
474
- InputSchema: void 0,
475
- OutputSchema: schema,
476
- outputExample: example,
477
- errorMap: this["~orpc"].errorMap
478
- })
199
+ outputSchema: schema,
200
+ outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex) + this["~orpc"].middlewares.length
479
201
  });
480
202
  }
481
203
  handler(handler) {
482
204
  return new DecoratedProcedure({
483
205
  ...this["~orpc"],
484
- contract: new ContractProcedure({
485
- route: this["~orpc"].config.initialRoute,
486
- InputSchema: void 0,
487
- OutputSchema: void 0,
488
- errorMap: this["~orpc"].errorMap
489
- }),
490
206
  handler
491
207
  });
492
208
  }
493
209
  prefix(prefix) {
494
- return new RouterBuilder({
210
+ return new _Builder({
495
211
  ...this["~orpc"],
496
- prefix
212
+ prefix: mergePrefix(this["~orpc"].prefix, prefix)
497
213
  });
498
214
  }
499
215
  tag(...tags) {
500
- return new RouterBuilder({
216
+ return new _Builder({
501
217
  ...this["~orpc"],
502
- tags
218
+ tags: mergeTags(this["~orpc"].tags, tags)
503
219
  });
504
220
  }
505
221
  router(router) {
506
- return new RouterBuilder(this["~orpc"]).router(router);
222
+ return adaptRouter(router, this["~orpc"]);
507
223
  }
508
224
  lazy(loader) {
509
- return new RouterBuilder(this["~orpc"]).lazy(loader);
225
+ return adaptRouter(flatLazy(lazy(loader)), this["~orpc"]);
510
226
  }
511
227
  };
228
+ var os = new Builder({
229
+ config: {},
230
+ route: {},
231
+ meta: {},
232
+ errorMap: {},
233
+ inputSchema: void 0,
234
+ outputSchema: void 0,
235
+ inputValidationIndex: fallbackConfig("initialInputValidationIndex"),
236
+ outputValidationIndex: fallbackConfig("initialOutputValidationIndex"),
237
+ middlewares: []
238
+ });
512
239
 
513
- // src/config.ts
514
- var DEFAULT_CONFIG = {
515
- initialInputValidationIndex: 0,
516
- initialOutputValidationIndex: 0
517
- };
518
- function fallbackConfig(key, value) {
519
- if (value === void 0) {
520
- return DEFAULT_CONFIG[key];
521
- }
522
- return value;
240
+ // src/context.ts
241
+ function mergeContext(context, other) {
242
+ return { ...context, ...other };
523
243
  }
524
244
 
525
- // src/builder-with-errors.ts
526
- var BuilderWithErrors = class _BuilderWithErrors {
527
- "~type" = "BuilderWithErrors";
528
- "~orpc";
529
- constructor(def) {
530
- this["~orpc"] = def;
531
- }
532
- config(config) {
533
- return new _BuilderWithErrors({
534
- ...this["~orpc"],
535
- config: {
536
- ...this["~orpc"].config,
537
- ...config
538
- }
539
- });
540
- }
541
- context() {
542
- return this;
543
- }
544
- errors(errors) {
545
- return new _BuilderWithErrors({
546
- ...this["~orpc"],
547
- errorMap: {
548
- ...this["~orpc"].errorMap,
549
- ...errors
550
- }
551
- });
552
- }
553
- middleware(middleware) {
554
- return decorateMiddleware(middleware);
555
- }
556
- use(middleware) {
557
- return new BuilderWithErrorsMiddlewares({
558
- ...this["~orpc"],
559
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex) + 1,
560
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex) + 1,
561
- middlewares: [middleware]
562
- // FIXME: I believe we can remove `as any` here
563
- });
564
- }
565
- route(route) {
566
- return new ProcedureBuilder({
567
- middlewares: [],
568
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
569
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
570
- contract: new ContractProcedure2({
571
- route: {
572
- ...this["~orpc"].config.initialRoute,
573
- ...route
574
- },
575
- InputSchema: void 0,
576
- OutputSchema: void 0,
577
- errorMap: this["~orpc"].errorMap
578
- })
579
- });
580
- }
581
- input(schema, example) {
582
- return new ProcedureBuilderWithInput({
583
- middlewares: [],
584
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
585
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
586
- contract: new ContractProcedure2({
587
- route: this["~orpc"].config.initialRoute,
588
- OutputSchema: void 0,
589
- InputSchema: schema,
590
- inputExample: example,
591
- errorMap: this["~orpc"].errorMap
592
- })
593
- });
594
- }
595
- output(schema, example) {
596
- return new ProcedureBuilderWithOutput({
597
- middlewares: [],
598
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
599
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
600
- contract: new ContractProcedure2({
601
- route: this["~orpc"].config.initialRoute,
602
- InputSchema: void 0,
603
- OutputSchema: schema,
604
- outputExample: example,
605
- errorMap: this["~orpc"].errorMap
606
- })
607
- });
608
- }
609
- handler(handler) {
610
- return new DecoratedProcedure({
611
- middlewares: [],
612
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
613
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
614
- contract: new ContractProcedure2({
615
- route: this["~orpc"].config.initialRoute,
616
- InputSchema: void 0,
617
- OutputSchema: void 0,
618
- errorMap: this["~orpc"].errorMap
619
- }),
620
- handler
621
- });
622
- }
623
- prefix(prefix) {
624
- return new RouterBuilder({
625
- middlewares: [],
626
- errorMap: this["~orpc"].errorMap,
627
- prefix
628
- });
629
- }
630
- tag(...tags) {
631
- return new RouterBuilder({
632
- middlewares: [],
633
- errorMap: this["~orpc"].errorMap,
634
- tags
635
- });
636
- }
637
- router(router) {
638
- return new RouterBuilder({
639
- middlewares: [],
640
- ...this["~orpc"]
641
- }).router(router);
642
- }
643
- lazy(loader) {
644
- return new RouterBuilder({
645
- middlewares: [],
646
- ...this["~orpc"]
647
- }).lazy(loader);
648
- }
649
- };
650
-
651
- // src/builder-with-middlewares.ts
652
- import { ContractProcedure as ContractProcedure3 } from "@orpc/contract";
653
-
654
- // src/implementer-chainable.ts
245
+ // src/implementer.ts
655
246
  import { isContractProcedure } from "@orpc/contract";
656
- import { createCallableObject } from "@orpc/shared";
657
-
658
- // src/router-implementer.ts
659
- var RouterImplementer = class _RouterImplementer {
660
- "~type" = "RouterImplementer";
661
- "~orpc";
662
- constructor(def) {
663
- this["~orpc"] = def;
664
- }
665
- use(middleware) {
666
- return new _RouterImplementer({
667
- ...this["~orpc"],
668
- middlewares: [...this["~orpc"].middlewares ?? [], middleware]
669
- });
670
- }
671
- router(router) {
672
- const adapted = new RouterBuilder({
673
- ...this["~orpc"],
674
- errorMap: {}
675
- }).router(router);
676
- const contracted = setRouterContract(adapted, this["~orpc"].contract);
677
- return contracted;
678
- }
679
- lazy(loader) {
680
- const adapted = new RouterBuilder({
681
- ...this["~orpc"],
682
- errorMap: {}
683
- }).lazy(loader);
684
- const contracted = setRouterContract(adapted, this["~orpc"].contract);
685
- return contracted;
686
- }
687
- };
688
-
689
- // src/implementer-chainable.ts
690
- function createChainableImplementer(contract, options) {
247
+ function implementerInternal(contract, config, middlewares) {
691
248
  if (isContractProcedure(contract)) {
692
- const implementer = new ProcedureImplementer({
693
- contract,
694
- middlewares: options.middlewares,
695
- inputValidationIndex: options.inputValidationIndex,
696
- outputValidationIndex: options.outputValidationIndex
697
- });
698
- return implementer;
699
- }
700
- const chainable = {};
701
- for (const key in contract) {
702
- chainable[key] = createChainableImplementer(contract[key], options);
703
- }
704
- const routerImplementer = new RouterImplementer({
705
- contract,
706
- middlewares: options.middlewares
707
- });
708
- const merged = new Proxy(chainable, {
709
- get(target, key) {
249
+ const impl2 = new Builder({
250
+ ...contract["~orpc"],
251
+ config,
252
+ middlewares,
253
+ inputValidationIndex: fallbackConfig("initialInputValidationIndex", config?.initialInputValidationIndex) + middlewares.length,
254
+ outputValidationIndex: fallbackConfig("initialOutputValidationIndex", config?.initialOutputValidationIndex) + middlewares.length
255
+ });
256
+ return impl2;
257
+ }
258
+ const impl = new Proxy(contract, {
259
+ get: (target, key) => {
260
+ let method;
261
+ if (key === "middleware") {
262
+ method = (mid) => decorateMiddleware(mid);
263
+ } else if (key === "use") {
264
+ method = (mid) => {
265
+ return implementerInternal(
266
+ contract,
267
+ config,
268
+ addMiddleware(middlewares, mid)
269
+ );
270
+ };
271
+ } else if (key === "router") {
272
+ method = (router) => {
273
+ const adapted = adaptRouter(router, {
274
+ middlewares,
275
+ errorMap: {}
276
+ });
277
+ return setRouterContract(adapted, contract);
278
+ };
279
+ } else if (key === "lazy") {
280
+ method = (loader) => {
281
+ const adapted = adaptRouter(flatLazy(lazy(loader)), {
282
+ middlewares,
283
+ errorMap: {}
284
+ });
285
+ return setRouterContract(adapted, contract);
286
+ };
287
+ }
710
288
  const next = Reflect.get(target, key);
711
- const method = Reflect.get(routerImplementer, key);
712
- if (typeof key !== "string" || typeof method !== "function") {
713
- return next;
289
+ if (!next || typeof next !== "function" && typeof next !== "object") {
290
+ return method ?? next;
714
291
  }
715
- if (!next) {
716
- return method.bind(routerImplementer);
292
+ const nextImpl = implementerInternal(next, config, middlewares);
293
+ if (method) {
294
+ return new Proxy(method, {
295
+ get(_, key2) {
296
+ return Reflect.get(nextImpl, key2);
297
+ }
298
+ });
717
299
  }
718
- return createCallableObject(next, method.bind(routerImplementer));
300
+ return nextImpl;
719
301
  }
720
302
  });
721
- return merged;
303
+ return impl;
722
304
  }
723
-
724
- // src/builder-with-middlewares.ts
725
- var BuilderWithMiddlewares = class _BuilderWithMiddlewares {
726
- "~type" = "BuilderHasMiddlewares";
727
- "~orpc";
728
- constructor(def) {
729
- this["~orpc"] = def;
730
- }
731
- use(middleware) {
732
- return new _BuilderWithMiddlewares({
733
- ...this["~orpc"],
734
- inputValidationIndex: this["~orpc"].inputValidationIndex + 1,
735
- outputValidationIndex: this["~orpc"].outputValidationIndex + 1,
736
- middlewares: [...this["~orpc"].middlewares, middleware]
737
- });
738
- }
739
- errors(errors) {
740
- return new BuilderWithErrorsMiddlewares({
741
- ...this["~orpc"],
742
- errorMap: errors
743
- });
744
- }
745
- route(route) {
746
- return new ProcedureBuilder({
747
- ...this["~orpc"],
748
- contract: new ContractProcedure3({
749
- route: {
750
- ...this["~orpc"].config.initialRoute,
751
- ...route
752
- },
753
- InputSchema: void 0,
754
- OutputSchema: void 0,
755
- errorMap: {}
756
- })
757
- });
758
- }
759
- input(schema, example) {
760
- return new ProcedureBuilderWithInput({
761
- ...this["~orpc"],
762
- contract: new ContractProcedure3({
763
- route: this["~orpc"].config.initialRoute,
764
- OutputSchema: void 0,
765
- InputSchema: schema,
766
- inputExample: example,
767
- errorMap: {}
768
- })
769
- });
770
- }
771
- output(schema, example) {
772
- return new ProcedureBuilderWithOutput({
773
- ...this["~orpc"],
774
- contract: new ContractProcedure3({
775
- route: this["~orpc"].config.initialRoute,
776
- InputSchema: void 0,
777
- OutputSchema: schema,
778
- outputExample: example,
779
- errorMap: {}
780
- })
781
- });
782
- }
783
- handler(handler) {
784
- return new DecoratedProcedure({
785
- ...this["~orpc"],
786
- contract: new ContractProcedure3({
787
- route: this["~orpc"].config.initialRoute,
788
- InputSchema: void 0,
789
- OutputSchema: void 0,
790
- errorMap: {}
791
- }),
792
- handler
793
- });
794
- }
795
- prefix(prefix) {
796
- return new RouterBuilder({
797
- middlewares: this["~orpc"].middlewares,
798
- errorMap: {},
799
- prefix
800
- });
801
- }
802
- tag(...tags) {
803
- return new RouterBuilder({
804
- middlewares: this["~orpc"].middlewares,
805
- errorMap: {},
806
- tags
807
- });
808
- }
809
- router(router) {
810
- return new RouterBuilder({
811
- errorMap: {},
812
- ...this["~orpc"]
813
- }).router(router);
814
- }
815
- lazy(loader) {
816
- return new RouterBuilder({
817
- errorMap: {},
818
- ...this["~orpc"]
819
- }).lazy(loader);
820
- }
821
- contract(contract) {
822
- return createChainableImplementer(contract, this["~orpc"]);
823
- }
824
- };
825
-
826
- // src/builder.ts
827
- var Builder = class _Builder {
828
- "~type" = "Builder";
829
- "~orpc";
830
- constructor(def) {
831
- this["~orpc"] = def;
832
- }
833
- config(config) {
834
- return new _Builder({
835
- ...this["~orpc"],
836
- config: {
837
- ...this["~orpc"].config,
838
- ...config
305
+ function implement(contract, config = {}) {
306
+ const implInternal = implementerInternal(contract, config, []);
307
+ const impl = new Proxy(implInternal, {
308
+ get: (target, key) => {
309
+ let method;
310
+ if (key === "$context") {
311
+ method = () => impl;
312
+ } else if (key === "$config") {
313
+ method = (config2) => implement(contract, config2);
839
314
  }
840
- });
841
- }
842
- context() {
843
- return this;
844
- }
845
- middleware(middleware) {
846
- return decorateMiddleware(middleware);
847
- }
848
- errors(errors) {
849
- return new BuilderWithErrors({
850
- ...this["~orpc"],
851
- errorMap: errors
852
- });
853
- }
854
- use(middleware) {
855
- return new BuilderWithMiddlewares({
856
- ...this["~orpc"],
857
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex) + 1,
858
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex) + 1,
859
- middlewares: [middleware]
860
- // FIXME: I believe we can remove `as any` here
861
- });
862
- }
863
- route(route) {
864
- return new ProcedureBuilder({
865
- middlewares: [],
866
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
867
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
868
- contract: new ContractProcedure4({
869
- route: {
870
- ...this["~orpc"].config.initialRoute,
871
- ...route
872
- },
873
- InputSchema: void 0,
874
- OutputSchema: void 0,
875
- errorMap: {}
876
- })
877
- });
878
- }
879
- input(schema, example) {
880
- return new ProcedureBuilderWithInput({
881
- middlewares: [],
882
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
883
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
884
- contract: new ContractProcedure4({
885
- route: this["~orpc"].config.initialRoute,
886
- OutputSchema: void 0,
887
- InputSchema: schema,
888
- inputExample: example,
889
- errorMap: {}
890
- })
891
- });
892
- }
893
- output(schema, example) {
894
- return new ProcedureBuilderWithOutput({
895
- middlewares: [],
896
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
897
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
898
- contract: new ContractProcedure4({
899
- route: this["~orpc"].config.initialRoute,
900
- InputSchema: void 0,
901
- OutputSchema: schema,
902
- outputExample: example,
903
- errorMap: {}
904
- })
905
- });
906
- }
907
- handler(handler) {
908
- return new DecoratedProcedure({
909
- middlewares: [],
910
- inputValidationIndex: fallbackConfig("initialInputValidationIndex", this["~orpc"].config.initialInputValidationIndex),
911
- outputValidationIndex: fallbackConfig("initialOutputValidationIndex", this["~orpc"].config.initialOutputValidationIndex),
912
- contract: new ContractProcedure4({
913
- route: this["~orpc"].config.initialRoute,
914
- InputSchema: void 0,
915
- OutputSchema: void 0,
916
- errorMap: {}
917
- }),
918
- handler
919
- });
920
- }
921
- prefix(prefix) {
922
- return new RouterBuilder({
923
- middlewares: [],
924
- errorMap: {},
925
- prefix
926
- });
927
- }
928
- tag(...tags) {
929
- return new RouterBuilder({
930
- middlewares: [],
931
- errorMap: {},
932
- tags
933
- });
934
- }
935
- router(router) {
936
- return new RouterBuilder({
937
- middlewares: [],
938
- errorMap: []
939
- }).router(router);
940
- }
941
- lazy(loader) {
942
- return new RouterBuilder({
943
- middlewares: [],
944
- errorMap: {}
945
- }).lazy(loader);
946
- }
947
- contract(contract) {
948
- return createChainableImplementer(contract, {
949
- middlewares: [],
950
- inputValidationIndex: 0,
951
- outputValidationIndex: 0
952
- });
953
- }
954
- };
315
+ const next = Reflect.get(target, key);
316
+ if (!next || typeof next !== "function" && typeof next !== "object") {
317
+ return method ?? next;
318
+ }
319
+ if (method) {
320
+ return new Proxy(method, {
321
+ get(_, key2) {
322
+ return Reflect.get(next, key2);
323
+ }
324
+ });
325
+ }
326
+ return next;
327
+ }
328
+ });
329
+ return impl;
330
+ }
955
331
 
956
332
  // src/procedure-utils.ts
957
333
  function call(procedure, input, ...rest) {
958
334
  return createProcedureClient(procedure, ...rest)(input);
959
335
  }
960
336
 
961
- // src/lazy-utils.ts
962
- function createLazyProcedureFormAnyLazy(lazied) {
963
- const lazyProcedure = lazy(async () => {
964
- const { default: maybeProcedure } = await unlazy(flatLazy(lazied));
965
- if (!isProcedure(maybeProcedure)) {
966
- throw new Error(`
967
- Expected a lazy<procedure> but got lazy<unknown>.
968
- This should be caught by TypeScript compilation.
969
- Please report this issue if this makes you feel uncomfortable.
970
- `);
971
- }
972
- return { default: maybeProcedure };
973
- });
974
- return lazyProcedure;
975
- }
976
-
977
337
  // src/router-client.ts
978
338
  function createRouterClient(router, ...rest) {
979
339
  if (isProcedure(router)) {
@@ -1001,43 +361,53 @@ function createRouterClient(router, ...rest) {
1001
361
  }
1002
362
 
1003
363
  // src/index.ts
1004
- import { isDefinedError, ORPCError, safe, type } from "@orpc/contract";
1005
- var os = new Builder({
1006
- config: {}
1007
- });
364
+ import { isDefinedError, ORPCError, safe } from "@orpc/client";
365
+ import { eventIterator, type, ValidationError } from "@orpc/contract";
366
+ import { getEventMeta, withEventMeta } from "@orpc/server-standard";
367
+ import { onError, onFinish, onStart, onSuccess } from "@orpc/shared";
1008
368
  export {
1009
369
  Builder,
1010
370
  DecoratedProcedure,
1011
371
  LAZY_LOADER_SYMBOL,
1012
372
  ORPCError,
1013
373
  Procedure,
1014
- ProcedureBuilder,
1015
- ProcedureImplementer,
1016
- RouterBuilder,
1017
- RouterImplementer,
374
+ ValidationError,
375
+ adaptRouter,
1018
376
  call,
1019
- createChainableImplementer,
1020
- createORPCErrorConstructorMap,
377
+ convertPathToHttpPath,
378
+ createAccessibleLazyRouter,
379
+ createContractedProcedure,
380
+ createLazyProcedureFormAnyLazy,
1021
381
  createProcedureClient,
1022
382
  createRouterClient,
1023
- decorateLazy,
1024
383
  decorateMiddleware,
1025
384
  deepSetLazyRouterPrefix,
385
+ eachAllContractProcedure,
386
+ eachContractProcedure,
387
+ eventIterator,
1026
388
  fallbackConfig,
1027
389
  flatLazy,
390
+ getEventMeta,
1028
391
  getLazyRouterPrefix,
1029
392
  getRouterChild,
1030
393
  getRouterContract,
394
+ implement,
395
+ implementerInternal,
1031
396
  isDefinedError,
1032
397
  isLazy,
1033
398
  isProcedure,
1034
399
  lazy,
1035
400
  mergeContext,
1036
401
  middlewareOutputFn,
402
+ onError,
403
+ onFinish,
404
+ onStart,
405
+ onSuccess,
1037
406
  os,
1038
407
  safe,
1039
408
  setRouterContract,
1040
409
  type,
1041
- unlazy
410
+ unlazy,
411
+ withEventMeta
1042
412
  };
1043
413
  //# sourceMappingURL=index.js.map