@orpc/server 0.0.0-next.d53d856 → 0.0.0-next.d583bc4

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 (55) hide show
  1. package/README.md +5 -1
  2. package/dist/adapters/aws-lambda/index.d.mts +5 -5
  3. package/dist/adapters/aws-lambda/index.d.ts +5 -5
  4. package/dist/adapters/aws-lambda/index.mjs +3 -3
  5. package/dist/adapters/bun-ws/index.d.mts +5 -5
  6. package/dist/adapters/bun-ws/index.d.ts +5 -5
  7. package/dist/adapters/bun-ws/index.mjs +2 -2
  8. package/dist/adapters/crossws/index.d.mts +5 -5
  9. package/dist/adapters/crossws/index.d.ts +5 -5
  10. package/dist/adapters/crossws/index.mjs +2 -2
  11. package/dist/adapters/fetch/index.d.mts +11 -10
  12. package/dist/adapters/fetch/index.d.ts +11 -10
  13. package/dist/adapters/fetch/index.mjs +15 -7
  14. package/dist/adapters/message-port/index.d.mts +5 -5
  15. package/dist/adapters/message-port/index.d.ts +5 -5
  16. package/dist/adapters/message-port/index.mjs +2 -2
  17. package/dist/adapters/node/index.d.mts +11 -10
  18. package/dist/adapters/node/index.d.ts +11 -10
  19. package/dist/adapters/node/index.mjs +7 -8
  20. package/dist/adapters/standard/index.d.mts +6 -6
  21. package/dist/adapters/standard/index.d.ts +6 -6
  22. package/dist/adapters/standard/index.mjs +2 -2
  23. package/dist/adapters/standard-peer/index.d.mts +3 -3
  24. package/dist/adapters/standard-peer/index.d.ts +3 -3
  25. package/dist/adapters/websocket/index.d.mts +9 -7
  26. package/dist/adapters/websocket/index.d.ts +9 -7
  27. package/dist/adapters/websocket/index.mjs +2 -2
  28. package/dist/adapters/ws/index.d.mts +5 -5
  29. package/dist/adapters/ws/index.d.ts +5 -5
  30. package/dist/adapters/ws/index.mjs +2 -2
  31. package/dist/helpers/index.d.mts +16 -1
  32. package/dist/helpers/index.d.ts +16 -1
  33. package/dist/helpers/index.mjs +11 -1
  34. package/dist/hibernation/index.d.mts +2 -2
  35. package/dist/hibernation/index.d.ts +2 -2
  36. package/dist/index.d.mts +5 -5
  37. package/dist/index.d.ts +5 -5
  38. package/dist/index.mjs +4 -4
  39. package/dist/plugins/index.d.mts +5 -2
  40. package/dist/plugins/index.d.ts +5 -2
  41. package/dist/plugins/index.mjs +13 -11
  42. package/dist/shared/{server.CYNGeoCm.d.mts → server.B4BGqy3Y.d.mts} +2 -3
  43. package/dist/shared/{server.CYNGeoCm.d.ts → server.B4BGqy3Y.d.ts} +2 -3
  44. package/dist/shared/{server.CYRYFTxo.mjs → server.Bxx6tqNe.mjs} +1 -1
  45. package/dist/shared/{server.D0H-iaY3.d.ts → server.COL12UTb.d.ts} +3 -3
  46. package/dist/shared/{server.BEFBl-Cb.d.mts → server.CVKCo60T.d.mts} +2 -2
  47. package/dist/shared/{server.jMTkVNIb.d.ts → server.Cb6yD7DZ.d.ts} +1 -1
  48. package/dist/shared/{server.BU4WI18A.d.mts → server.Ck-gOLzq.d.mts} +3 -3
  49. package/dist/shared/{server.gqRxT-yN.d.mts → server.DBCUJijK.d.mts} +1 -1
  50. package/dist/shared/{server.B7b2w3_i.d.ts → server.DNtJ-p60.d.ts} +2 -2
  51. package/dist/shared/{server.Bmh5xd4n.d.ts → server.DPIFWpxG.d.ts} +1 -1
  52. package/dist/shared/{server.B_fj3X5m.mjs → server.Ds4HPpvH.mjs} +31 -30
  53. package/dist/shared/{server.DhJj-1X9.d.mts → server.DzV1hr3z.d.mts} +1 -1
  54. package/dist/shared/{server.BW-nUGgA.mjs → server.TEVCLCFC.mjs} +3 -0
  55. package/package.json +11 -11
@@ -1,6 +1,6 @@
1
- import { isContractProcedure, ValidationError, mergePrefix, mergeErrorMap, enhanceRoute } from '@orpc/contract';
2
- import { resolveMaybeOptionalOptions, toArray, value, runWithSpan, intercept, isAsyncIteratorObject, asyncIteratorWithSpan } from '@orpc/shared';
3
- import { fallbackORPCErrorStatus, ORPCError } from '@orpc/client';
1
+ import { isContractProcedure, validateORPCError, ValidationError, mergePrefix, mergeErrorMap, enhanceRoute } from '@orpc/contract';
2
+ import { resolveMaybeOptionalOptions, toArray, value, runWithSpan, intercept, isAsyncIteratorObject, overlayProxy, asyncIteratorWithSpan } from '@orpc/shared';
3
+ import { ORPCError, mapEventIterator } from '@orpc/client';
4
4
  import { HibernationEventIterator } from '@orpc/standard-server';
5
5
 
6
6
  const LAZY_SYMBOL = Symbol("ORPC_LAZY_SYMBOL");
@@ -88,21 +88,6 @@ function createORPCErrorConstructorMap(errors) {
88
88
  });
89
89
  return proxy;
90
90
  }
91
- async function validateORPCError(map, error) {
92
- const { code, status, message, data, cause, defined } = error;
93
- const config = map?.[error.code];
94
- if (!config || fallbackORPCErrorStatus(error.code, config.status) !== error.status) {
95
- return defined ? new ORPCError(code, { defined: false, status, message, data, cause }) : error;
96
- }
97
- if (!config.data) {
98
- return defined ? error : new ORPCError(code, { defined: true, status, message, data, cause });
99
- }
100
- const validated = await config.data["~standard"].validate(error.data);
101
- if (validated.issues) {
102
- return defined ? new ORPCError(code, { defined: false, status, message, data, cause }) : error;
103
- }
104
- return new ORPCError(code, { defined: true, status, message, data: validated.value, cause });
105
- }
106
91
 
107
92
  function middlewareOutputFn(output) {
108
93
  return { output, context: {} };
@@ -116,6 +101,12 @@ function createProcedureClient(lazyableProcedure, ...rest) {
116
101
  const clientContext = callerOptions?.context ?? {};
117
102
  const context = await value(options.context ?? {}, clientContext);
118
103
  const errors = createORPCErrorConstructorMap(procedure["~orpc"].errorMap);
104
+ const validateError = async (e) => {
105
+ if (e instanceof ORPCError) {
106
+ return await validateORPCError(procedure["~orpc"].errorMap, e);
107
+ }
108
+ return e;
109
+ };
119
110
  try {
120
111
  const output = await runWithSpan(
121
112
  { name: "call_procedure", signal: callerOptions?.signal },
@@ -141,18 +132,20 @@ function createProcedureClient(lazyableProcedure, ...rest) {
141
132
  if (output instanceof HibernationEventIterator) {
142
133
  return output;
143
134
  }
144
- return asyncIteratorWithSpan(
145
- { name: "consume_event_iterator_output", signal: callerOptions?.signal },
146
- output
147
- );
135
+ return overlayProxy(output, mapEventIterator(
136
+ asyncIteratorWithSpan(
137
+ { name: "consume_event_iterator_output", signal: callerOptions?.signal },
138
+ output
139
+ ),
140
+ {
141
+ value: (v) => v,
142
+ error: (e) => validateError(e)
143
+ }
144
+ ));
148
145
  }
149
146
  return output;
150
147
  } catch (e) {
151
- if (!(e instanceof ORPCError)) {
152
- throw e;
153
- }
154
- const validated = await validateORPCError(procedure["~orpc"].errorMap, e);
155
- throw validated;
148
+ throw await validateError(e);
156
149
  }
157
150
  };
158
151
  }
@@ -171,7 +164,11 @@ async function validateInput(procedure, input) {
171
164
  data: {
172
165
  issues: result.issues
173
166
  },
174
- cause: new ValidationError({ message: "Input validation failed", issues: result.issues })
167
+ cause: new ValidationError({
168
+ message: "Input validation failed",
169
+ issues: result.issues,
170
+ data: input
171
+ })
175
172
  });
176
173
  }
177
174
  return result.value;
@@ -190,7 +187,11 @@ async function validateOutput(procedure, output) {
190
187
  if (result.issues) {
191
188
  throw new ORPCError("INTERNAL_SERVER_ERROR", {
192
189
  message: "Output validation failed",
193
- cause: new ValidationError({ message: "Output validation failed", issues: result.issues })
190
+ cause: new ValidationError({
191
+ message: "Output validation failed",
192
+ issues: result.issues,
193
+ data: output
194
+ })
194
195
  });
195
196
  }
196
197
  return result.value;
@@ -405,4 +406,4 @@ function call(procedure, input, ...rest) {
405
406
  return createProcedureClient(procedure, options)(input, options);
406
407
  }
407
408
 
408
- export { LAZY_SYMBOL as L, Procedure as P, createContractedProcedure as a, addMiddleware as b, createProcedureClient as c, isLazy as d, enhanceRouter as e, createAssertedLazyProcedure as f, getRouter as g, createORPCErrorConstructorMap as h, isProcedure as i, getLazyMeta as j, middlewareOutputFn as k, lazy as l, mergeCurrentContext as m, isStartWithMiddlewares as n, mergeMiddlewares as o, call as p, getHiddenRouterContract as q, createAccessibleLazyRouter as r, setHiddenRouterContract as s, traverseContractProcedures as t, unlazy as u, validateORPCError as v, resolveContractProcedures as w, unlazyRouter as x };
409
+ export { LAZY_SYMBOL as L, Procedure as P, createContractedProcedure as a, addMiddleware as b, createProcedureClient as c, isLazy as d, enhanceRouter as e, createAssertedLazyProcedure as f, getRouter as g, createORPCErrorConstructorMap as h, isProcedure as i, getLazyMeta as j, middlewareOutputFn as k, lazy as l, mergeCurrentContext as m, isStartWithMiddlewares as n, mergeMiddlewares as o, call as p, getHiddenRouterContract as q, createAccessibleLazyRouter as r, setHiddenRouterContract as s, traverseContractProcedures as t, unlazy as u, resolveContractProcedures as v, unlazyRouter as w };
@@ -1,5 +1,5 @@
1
1
  import { ErrorMap, EnhanceRouteOptions, MergedErrorMap, AnyContractRouter, AnyContractProcedure } from '@orpc/contract';
2
- import { a as AnyMiddleware, L as Lazyable, b as AnyRouter, C as Context, c as Lazy, A as AnyProcedure, P as Procedure, M as MergedInitialContext } from './server.CYNGeoCm.mjs';
2
+ import { a as AnyMiddleware, L as Lazyable, b as AnyRouter, C as Context, c as Lazy, A as AnyProcedure, P as Procedure, M as MergedInitialContext } from './server.B4BGqy3Y.mjs';
3
3
 
4
4
  declare function getRouter<T extends Lazyable<AnyRouter | undefined>>(router: T, path: readonly string[]): T extends Lazy<any> ? Lazy<AnyRouter | undefined> : Lazyable<AnyRouter | undefined>;
5
5
  type AccessibleLazyRouter<T extends Lazyable<AnyRouter | undefined>> = T extends Lazy<infer U extends AnyRouter | undefined | Lazy<AnyRouter | undefined>> ? AccessibleLazyRouter<U> : T extends AnyProcedure | undefined ? Lazy<T> : Lazy<T> & {
@@ -3,6 +3,9 @@ import { ORPCError, fallbackContractConfig } from '@orpc/contract';
3
3
  const STRICT_GET_METHOD_PLUGIN_IS_GET_METHOD_CONTEXT_SYMBOL = Symbol("STRICT_GET_METHOD_PLUGIN_IS_GET_METHOD_CONTEXT");
4
4
  class StrictGetMethodPlugin {
5
5
  error;
6
+ /**
7
+ * make sure execute before batch plugin to get real method
8
+ */
6
9
  order = 7e6;
7
10
  constructor(options = {}) {
8
11
  this.error = options.error ?? new ORPCError("METHOD_NOT_SUPPORTED");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/server",
3
3
  "type": "module",
4
- "version": "0.0.0-next.d53d856",
4
+ "version": "0.0.0-next.d583bc4",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -102,20 +102,20 @@
102
102
  },
103
103
  "dependencies": {
104
104
  "cookie": "^1.0.2",
105
- "@orpc/client": "0.0.0-next.d53d856",
106
- "@orpc/contract": "0.0.0-next.d53d856",
107
- "@orpc/interop": "0.0.0-next.d53d856",
108
- "@orpc/standard-server": "0.0.0-next.d53d856",
109
- "@orpc/shared": "0.0.0-next.d53d856",
110
- "@orpc/standard-server-aws-lambda": "0.0.0-next.d53d856",
111
- "@orpc/standard-server-node": "0.0.0-next.d53d856",
112
- "@orpc/standard-server-fetch": "0.0.0-next.d53d856",
113
- "@orpc/standard-server-peer": "0.0.0-next.d53d856"
105
+ "@orpc/client": "0.0.0-next.d583bc4",
106
+ "@orpc/interop": "0.0.0-next.d583bc4",
107
+ "@orpc/shared": "0.0.0-next.d583bc4",
108
+ "@orpc/contract": "0.0.0-next.d583bc4",
109
+ "@orpc/standard-server": "0.0.0-next.d583bc4",
110
+ "@orpc/standard-server-aws-lambda": "0.0.0-next.d583bc4",
111
+ "@orpc/standard-server-node": "0.0.0-next.d583bc4",
112
+ "@orpc/standard-server-fetch": "0.0.0-next.d583bc4",
113
+ "@orpc/standard-server-peer": "0.0.0-next.d583bc4"
114
114
  },
115
115
  "devDependencies": {
116
116
  "@types/ws": "^8.18.1",
117
117
  "crossws": "^0.4.1",
118
- "next": "^15.4.5",
118
+ "next": "^15.5.4",
119
119
  "supertest": "^7.1.4",
120
120
  "ws": "^8.18.3"
121
121
  },