@orpc/server 0.0.0-next.a0ab4bf → 0.0.0-next.a15ca72

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 (53) hide show
  1. package/dist/adapters/aws-lambda/index.d.mts +5 -5
  2. package/dist/adapters/aws-lambda/index.d.ts +5 -5
  3. package/dist/adapters/aws-lambda/index.mjs +3 -2
  4. package/dist/adapters/bun-ws/index.d.mts +5 -5
  5. package/dist/adapters/bun-ws/index.d.ts +5 -5
  6. package/dist/adapters/bun-ws/index.mjs +2 -2
  7. package/dist/adapters/crossws/index.d.mts +5 -5
  8. package/dist/adapters/crossws/index.d.ts +5 -5
  9. package/dist/adapters/crossws/index.mjs +2 -2
  10. package/dist/adapters/fetch/index.d.mts +5 -5
  11. package/dist/adapters/fetch/index.d.ts +5 -5
  12. package/dist/adapters/fetch/index.mjs +2 -2
  13. package/dist/adapters/message-port/index.d.mts +5 -5
  14. package/dist/adapters/message-port/index.d.ts +5 -5
  15. package/dist/adapters/message-port/index.mjs +2 -2
  16. package/dist/adapters/node/index.d.mts +5 -5
  17. package/dist/adapters/node/index.d.ts +5 -5
  18. package/dist/adapters/node/index.mjs +3 -2
  19. package/dist/adapters/standard/index.d.mts +6 -6
  20. package/dist/adapters/standard/index.d.ts +6 -6
  21. package/dist/adapters/standard/index.mjs +2 -2
  22. package/dist/adapters/standard-peer/index.d.mts +3 -3
  23. package/dist/adapters/standard-peer/index.d.ts +3 -3
  24. package/dist/adapters/websocket/index.d.mts +5 -5
  25. package/dist/adapters/websocket/index.d.ts +5 -5
  26. package/dist/adapters/websocket/index.mjs +2 -2
  27. package/dist/adapters/ws/index.d.mts +5 -5
  28. package/dist/adapters/ws/index.d.ts +5 -5
  29. package/dist/adapters/ws/index.mjs +2 -2
  30. package/dist/helpers/index.d.mts +134 -0
  31. package/dist/helpers/index.d.ts +134 -0
  32. package/dist/helpers/index.mjs +188 -0
  33. package/dist/hibernation/index.d.mts +2 -2
  34. package/dist/hibernation/index.d.ts +2 -2
  35. package/dist/index.d.mts +5 -5
  36. package/dist/index.d.ts +5 -5
  37. package/dist/index.mjs +6 -5
  38. package/dist/plugins/index.d.mts +17 -4
  39. package/dist/plugins/index.d.ts +17 -4
  40. package/dist/plugins/index.mjs +18 -1
  41. package/dist/shared/{server.mGrd7l1v.d.ts → server.B7b2w3_i.d.ts} +2 -2
  42. package/dist/shared/{server.VjZAmjFs.d.mts → server.BEFBl-Cb.d.mts} +2 -2
  43. package/dist/shared/{server.C-F_fMXW.d.mts → server.BU4WI18A.d.mts} +3 -3
  44. package/dist/shared/{server.BX8Iro5z.d.ts → server.Bmh5xd4n.d.ts} +1 -1
  45. package/dist/shared/{server.Aqc4pYFD.mjs → server.CIL9uKTN.mjs} +1 -1
  46. package/dist/shared/{server.CRejaM08.d.mts → server.CYNGeoCm.d.mts} +4 -2
  47. package/dist/shared/{server.CRejaM08.d.ts → server.CYNGeoCm.d.ts} +4 -2
  48. package/dist/shared/{server.CPC5w4d2.d.ts → server.D0H-iaY3.d.ts} +3 -3
  49. package/dist/shared/{server.DrG30u7a.d.mts → server.DhJj-1X9.d.mts} +1 -1
  50. package/dist/shared/{server.DLJzqnSX.mjs → server.NeumLVdS.mjs} +11 -9
  51. package/dist/shared/{server.De2J-WNx.d.mts → server.gqRxT-yN.d.mts} +1 -1
  52. package/dist/shared/{server.Bi2_bIHo.d.ts → server.jMTkVNIb.d.ts} +1 -1
  53. package/package.json +17 -11
@@ -1,6 +1,7 @@
1
1
  import { value, isAsyncIteratorObject, clone } from '@orpc/shared';
2
2
  import { flattenHeader } from '@orpc/standard-server';
3
3
  import { parseBatchRequest, toBatchResponse } from '@orpc/standard-server/batch';
4
+ import { toFetchHeaders } from '@orpc/standard-server-fetch';
4
5
  import { ORPCError } from '@orpc/client';
5
6
  export { S as StrictGetMethodPlugin } from '../shared/server.BW-nUGgA.mjs';
6
7
  import '@orpc/contract';
@@ -177,6 +178,22 @@ class CORSPlugin {
177
178
  }
178
179
  }
179
180
 
181
+ class RequestHeadersPlugin {
182
+ init(options) {
183
+ options.rootInterceptors ??= [];
184
+ options.rootInterceptors.push((interceptorOptions) => {
185
+ const reqHeaders = interceptorOptions.context.reqHeaders ?? toFetchHeaders(interceptorOptions.request.headers);
186
+ return interceptorOptions.next({
187
+ ...interceptorOptions,
188
+ context: {
189
+ ...interceptorOptions.context,
190
+ reqHeaders
191
+ }
192
+ });
193
+ });
194
+ }
195
+ }
196
+
180
197
  class ResponseHeadersPlugin {
181
198
  init(options) {
182
199
  options.rootInterceptors ??= [];
@@ -256,4 +273,4 @@ class SimpleCsrfProtectionHandlerPlugin {
256
273
  }
257
274
  }
258
275
 
259
- export { BatchHandlerPlugin, CORSPlugin, ResponseHeadersPlugin, SimpleCsrfProtectionHandlerPlugin };
276
+ export { BatchHandlerPlugin, CORSPlugin, RequestHeadersPlugin, ResponseHeadersPlugin, SimpleCsrfProtectionHandlerPlugin };
@@ -1,5 +1,5 @@
1
- import { C as Context } from './server.CRejaM08.js';
2
- import { b as StandardHandleOptions } from './server.BX8Iro5z.js';
1
+ import { C as Context } from './server.CYNGeoCm.js';
2
+ import { b as StandardHandleOptions } from './server.Bmh5xd4n.js';
3
3
 
4
4
  type FriendlyStandardHandleOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
5
5
  context?: T;
@@ -1,5 +1,5 @@
1
- import { C as Context } from './server.CRejaM08.mjs';
2
- import { b as StandardHandleOptions } from './server.De2J-WNx.mjs';
1
+ import { C as Context } from './server.CYNGeoCm.mjs';
2
+ import { b as StandardHandleOptions } from './server.gqRxT-yN.mjs';
3
3
 
4
4
  type FriendlyStandardHandleOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
5
5
  context?: T;
@@ -1,9 +1,9 @@
1
1
  import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
2
- import { b as AnyRouter, C as Context, R as Router } from './server.CRejaM08.mjs';
3
- import { i as StandardMatcher, h as StandardMatchResult, e as StandardHandlerOptions, f as StandardHandler } from './server.De2J-WNx.mjs';
2
+ import { b as AnyRouter, C as Context, R as Router } from './server.CYNGeoCm.mjs';
3
+ import { i as StandardMatcher, h as StandardMatchResult, e as StandardHandlerOptions, f as StandardHandler } from './server.gqRxT-yN.mjs';
4
4
  import { HTTPPath } from '@orpc/client';
5
5
  import { Value } from '@orpc/shared';
6
- import { T as TraverseContractProcedureCallbackOptions } from './server.DrG30u7a.mjs';
6
+ import { T as TraverseContractProcedureCallbackOptions } from './server.DhJj-1X9.mjs';
7
7
 
8
8
  interface StandardRPCMatcherOptions {
9
9
  /**
@@ -2,7 +2,7 @@ import { HTTPPath, ORPCError } from '@orpc/client';
2
2
  import { Meta } from '@orpc/contract';
3
3
  import { Interceptor } from '@orpc/shared';
4
4
  import { StandardResponse, StandardLazyRequest } from '@orpc/standard-server';
5
- import { C as Context, R as Router, b as AnyRouter, A as AnyProcedure, d as ProcedureClientInterceptorOptions } from './server.CRejaM08.js';
5
+ import { C as Context, R as Router, b as AnyRouter, A as AnyProcedure, d as ProcedureClientInterceptorOptions } from './server.CYNGeoCm.js';
6
6
 
7
7
  interface StandardHandlerPlugin<T extends Context> {
8
8
  order?: number;
@@ -2,7 +2,7 @@ import { toHttpPath, StandardRPCJsonSerializer, StandardRPCSerializer } from '@o
2
2
  import { ORPCError, toORPCError } from '@orpc/client';
3
3
  import { toArray, intercept, parseEmptyableJSON, NullProtoObj, value } from '@orpc/shared';
4
4
  import { flattenHeader } from '@orpc/standard-server';
5
- import { c as createProcedureClient, t as traverseContractProcedures, i as isProcedure, u as unlazy, g as getRouter, a as createContractedProcedure } from './server.DLJzqnSX.mjs';
5
+ import { c as createProcedureClient, t as traverseContractProcedures, i as isProcedure, u as unlazy, g as getRouter, a as createContractedProcedure } from './server.NeumLVdS.mjs';
6
6
 
7
7
  class CompositeStandardHandlerPlugin {
8
8
  plugins;
@@ -29,7 +29,9 @@ interface Lazy<T> {
29
29
  }
30
30
  type Lazyable<T> = T | Lazy<T>;
31
31
  /**
32
- * Create a lazy thing.
32
+ * Creates a lazy-loaded item.
33
+ *
34
+ * @warning The `prefix` in `meta` only holds metadata and does not apply the prefix to the lazy router, use `os.prefix(...).lazy(...)` instead.
33
35
  */
34
36
  declare function lazy<T>(loader: () => Promise<{
35
37
  default: T;
@@ -138,7 +140,7 @@ type CreateProcedureClientOptions<TInitialContext extends Context, TOutputSchema
138
140
  *
139
141
  * @see {@link https://orpc.unnoq.com/docs/client/server-side Server-side Client Docs}
140
142
  */
141
- declare function createProcedureClient<TInitialContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap, TMeta extends Meta, TClientContext extends ClientContext>(lazyableProcedure: Lazyable<Procedure<TInitialContext, any, TInputSchema, TOutputSchema, TErrorMap, TMeta>>, ...[options]: MaybeOptionalOptions<CreateProcedureClientOptions<TInitialContext, TOutputSchema, TErrorMap, TMeta, TClientContext>>): ProcedureClient<TClientContext, TInputSchema, TOutputSchema, TErrorMap>;
143
+ declare function createProcedureClient<TInitialContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap, TMeta extends Meta, TClientContext extends ClientContext>(lazyableProcedure: Lazyable<Procedure<TInitialContext, any, TInputSchema, TOutputSchema, TErrorMap, TMeta>>, ...rest: MaybeOptionalOptions<CreateProcedureClientOptions<TInitialContext, TOutputSchema, TErrorMap, TMeta, TClientContext>>): ProcedureClient<TClientContext, TInputSchema, TOutputSchema, TErrorMap>;
142
144
 
143
145
  /**
144
146
  * Represents a router, which defines a hierarchical structure of procedures.
@@ -29,7 +29,9 @@ interface Lazy<T> {
29
29
  }
30
30
  type Lazyable<T> = T | Lazy<T>;
31
31
  /**
32
- * Create a lazy thing.
32
+ * Creates a lazy-loaded item.
33
+ *
34
+ * @warning The `prefix` in `meta` only holds metadata and does not apply the prefix to the lazy router, use `os.prefix(...).lazy(...)` instead.
33
35
  */
34
36
  declare function lazy<T>(loader: () => Promise<{
35
37
  default: T;
@@ -138,7 +140,7 @@ type CreateProcedureClientOptions<TInitialContext extends Context, TOutputSchema
138
140
  *
139
141
  * @see {@link https://orpc.unnoq.com/docs/client/server-side Server-side Client Docs}
140
142
  */
141
- declare function createProcedureClient<TInitialContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap, TMeta extends Meta, TClientContext extends ClientContext>(lazyableProcedure: Lazyable<Procedure<TInitialContext, any, TInputSchema, TOutputSchema, TErrorMap, TMeta>>, ...[options]: MaybeOptionalOptions<CreateProcedureClientOptions<TInitialContext, TOutputSchema, TErrorMap, TMeta, TClientContext>>): ProcedureClient<TClientContext, TInputSchema, TOutputSchema, TErrorMap>;
143
+ declare function createProcedureClient<TInitialContext extends Context, TInputSchema extends AnySchema, TOutputSchema extends AnySchema, TErrorMap extends ErrorMap, TMeta extends Meta, TClientContext extends ClientContext>(lazyableProcedure: Lazyable<Procedure<TInitialContext, any, TInputSchema, TOutputSchema, TErrorMap, TMeta>>, ...rest: MaybeOptionalOptions<CreateProcedureClientOptions<TInitialContext, TOutputSchema, TErrorMap, TMeta, TClientContext>>): ProcedureClient<TClientContext, TInputSchema, TOutputSchema, TErrorMap>;
142
144
 
143
145
  /**
144
146
  * Represents a router, which defines a hierarchical structure of procedures.
@@ -1,9 +1,9 @@
1
1
  import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
2
- import { b as AnyRouter, C as Context, R as Router } from './server.CRejaM08.js';
3
- import { i as StandardMatcher, h as StandardMatchResult, e as StandardHandlerOptions, f as StandardHandler } from './server.BX8Iro5z.js';
2
+ import { b as AnyRouter, C as Context, R as Router } from './server.CYNGeoCm.js';
3
+ import { i as StandardMatcher, h as StandardMatchResult, e as StandardHandlerOptions, f as StandardHandler } from './server.Bmh5xd4n.js';
4
4
  import { HTTPPath } from '@orpc/client';
5
5
  import { Value } from '@orpc/shared';
6
- import { T as TraverseContractProcedureCallbackOptions } from './server.Bi2_bIHo.js';
6
+ import { T as TraverseContractProcedureCallbackOptions } from './server.jMTkVNIb.js';
7
7
 
8
8
  interface StandardRPCMatcherOptions {
9
9
  /**
@@ -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.CRejaM08.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.CYNGeoCm.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> & {
@@ -1,5 +1,5 @@
1
1
  import { isContractProcedure, ValidationError, mergePrefix, mergeErrorMap, enhanceRoute } from '@orpc/contract';
2
- import { value, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
2
+ import { resolveMaybeOptionalOptions, toArray, value, intercept } from '@orpc/shared';
3
3
  import { fallbackORPCErrorStatus, ORPCError } from '@orpc/client';
4
4
 
5
5
  const LAZY_SYMBOL = Symbol("ORPC_LAZY_SYMBOL");
@@ -71,14 +71,15 @@ function createORPCErrorConstructorMap(errors) {
71
71
  if (typeof code !== "string") {
72
72
  return Reflect.get(target, code);
73
73
  }
74
- const item = (...[options]) => {
74
+ const item = (...rest) => {
75
+ const options = resolveMaybeOptionalOptions(rest);
75
76
  const config = errors[code];
76
77
  return new ORPCError(code, {
77
78
  defined: Boolean(config),
78
79
  status: config?.status,
79
- message: options?.message ?? config?.message,
80
- data: options?.data,
81
- cause: options?.cause
80
+ message: options.message ?? config?.message,
81
+ data: options.data,
82
+ cause: options.cause
82
83
  });
83
84
  };
84
85
  return item;
@@ -106,16 +107,17 @@ function middlewareOutputFn(output) {
106
107
  return { output, context: {} };
107
108
  }
108
109
 
109
- function createProcedureClient(lazyableProcedure, ...[options]) {
110
+ function createProcedureClient(lazyableProcedure, ...rest) {
111
+ const options = resolveMaybeOptionalOptions(rest);
110
112
  return async (...[input, callerOptions]) => {
111
- const path = options?.path ?? [];
113
+ const path = toArray(options.path);
112
114
  const { default: procedure } = await unlazy(lazyableProcedure);
113
115
  const clientContext = callerOptions?.context ?? {};
114
- const context = await value(options?.context ?? {}, clientContext);
116
+ const context = await value(options.context ?? {}, clientContext);
115
117
  const errors = createORPCErrorConstructorMap(procedure["~orpc"].errorMap);
116
118
  try {
117
119
  return await intercept(
118
- options?.interceptors ?? [],
120
+ toArray(options.interceptors),
119
121
  {
120
122
  context,
121
123
  input,
@@ -2,7 +2,7 @@ import { HTTPPath, ORPCError } from '@orpc/client';
2
2
  import { Meta } from '@orpc/contract';
3
3
  import { Interceptor } from '@orpc/shared';
4
4
  import { StandardResponse, StandardLazyRequest } from '@orpc/standard-server';
5
- import { C as Context, R as Router, b as AnyRouter, A as AnyProcedure, d as ProcedureClientInterceptorOptions } from './server.CRejaM08.mjs';
5
+ import { C as Context, R as Router, b as AnyRouter, A as AnyProcedure, d as ProcedureClientInterceptorOptions } from './server.CYNGeoCm.mjs';
6
6
 
7
7
  interface StandardHandlerPlugin<T extends Context> {
8
8
  order?: number;
@@ -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.CRejaM08.js';
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.js';
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> & {
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.a0ab4bf",
4
+ "version": "0.0.0-next.a15ca72",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -19,6 +19,11 @@
19
19
  "import": "./dist/index.mjs",
20
20
  "default": "./dist/index.mjs"
21
21
  },
22
+ "./helpers": {
23
+ "types": "./dist/helpers/index.d.mts",
24
+ "import": "./dist/helpers/index.mjs",
25
+ "default": "./dist/helpers/index.mjs"
26
+ },
22
27
  "./plugins": {
23
28
  "types": "./dist/plugins/index.d.mts",
24
29
  "import": "./dist/plugins/index.mjs",
@@ -96,20 +101,21 @@
96
101
  }
97
102
  },
98
103
  "dependencies": {
99
- "@orpc/contract": "0.0.0-next.a0ab4bf",
100
- "@orpc/shared": "0.0.0-next.a0ab4bf",
101
- "@orpc/standard-server-aws-lambda": "0.0.0-next.a0ab4bf",
102
- "@orpc/standard-server": "0.0.0-next.a0ab4bf",
103
- "@orpc/client": "0.0.0-next.a0ab4bf",
104
- "@orpc/standard-server-fetch": "0.0.0-next.a0ab4bf",
105
- "@orpc/standard-server-node": "0.0.0-next.a0ab4bf",
106
- "@orpc/standard-server-peer": "0.0.0-next.a0ab4bf"
104
+ "cookie": "^1.0.2",
105
+ "@orpc/client": "0.0.0-next.a15ca72",
106
+ "@orpc/contract": "0.0.0-next.a15ca72",
107
+ "@orpc/standard-server-aws-lambda": "0.0.0-next.a15ca72",
108
+ "@orpc/shared": "0.0.0-next.a15ca72",
109
+ "@orpc/standard-server-fetch": "0.0.0-next.a15ca72",
110
+ "@orpc/standard-server": "0.0.0-next.a15ca72",
111
+ "@orpc/standard-server-node": "0.0.0-next.a15ca72",
112
+ "@orpc/standard-server-peer": "0.0.0-next.a15ca72"
107
113
  },
108
114
  "devDependencies": {
109
115
  "@types/ws": "^8.18.1",
110
116
  "crossws": "^0.4.1",
111
- "next": "^15.4.1",
112
- "supertest": "^7.1.3",
117
+ "next": "^15.4.5",
118
+ "supertest": "^7.1.4",
113
119
  "ws": "^8.18.3"
114
120
  },
115
121
  "scripts": {