@orpc/server 0.0.0-next.57c6d70 → 0.0.0-next.57cda55

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 (62) hide show
  1. package/README.md +10 -5
  2. package/dist/adapters/aws-lambda/index.d.mts +7 -7
  3. package/dist/adapters/aws-lambda/index.d.ts +7 -7
  4. package/dist/adapters/aws-lambda/index.mjs +3 -3
  5. package/dist/adapters/bun-ws/index.d.mts +7 -7
  6. package/dist/adapters/bun-ws/index.d.ts +7 -7
  7. package/dist/adapters/bun-ws/index.mjs +10 -10
  8. package/dist/adapters/crossws/index.d.mts +7 -7
  9. package/dist/adapters/crossws/index.d.ts +7 -7
  10. package/dist/adapters/crossws/index.mjs +5 -7
  11. package/dist/adapters/fastify/index.d.mts +53 -0
  12. package/dist/adapters/fastify/index.d.ts +53 -0
  13. package/dist/adapters/fastify/index.mjs +54 -0
  14. package/dist/adapters/fetch/index.d.mts +57 -12
  15. package/dist/adapters/fetch/index.d.ts +57 -12
  16. package/dist/adapters/fetch/index.mjs +74 -4
  17. package/dist/adapters/message-port/index.d.mts +37 -11
  18. package/dist/adapters/message-port/index.d.ts +37 -11
  19. package/dist/adapters/message-port/index.mjs +29 -15
  20. package/dist/adapters/node/index.d.mts +34 -13
  21. package/dist/adapters/node/index.d.ts +34 -13
  22. package/dist/adapters/node/index.mjs +69 -13
  23. package/dist/adapters/standard/index.d.mts +6 -6
  24. package/dist/adapters/standard/index.d.ts +6 -6
  25. package/dist/adapters/standard/index.mjs +2 -2
  26. package/dist/adapters/standard-peer/index.d.mts +9 -5
  27. package/dist/adapters/standard-peer/index.d.ts +9 -5
  28. package/dist/adapters/standard-peer/index.mjs +1 -1
  29. package/dist/adapters/websocket/index.d.mts +11 -9
  30. package/dist/adapters/websocket/index.d.ts +11 -9
  31. package/dist/adapters/websocket/index.mjs +5 -7
  32. package/dist/adapters/ws/index.d.mts +7 -7
  33. package/dist/adapters/ws/index.d.ts +7 -7
  34. package/dist/adapters/ws/index.mjs +5 -7
  35. package/dist/helpers/index.d.mts +20 -1
  36. package/dist/helpers/index.d.ts +20 -1
  37. package/dist/helpers/index.mjs +17 -1
  38. package/dist/hibernation/index.d.mts +13 -13
  39. package/dist/hibernation/index.d.ts +13 -13
  40. package/dist/hibernation/index.mjs +8 -8
  41. package/dist/index.d.mts +102 -102
  42. package/dist/index.d.ts +102 -102
  43. package/dist/index.mjs +34 -31
  44. package/dist/plugins/index.d.mts +46 -11
  45. package/dist/plugins/index.d.ts +46 -11
  46. package/dist/plugins/index.mjs +110 -58
  47. package/dist/shared/{server.Bmh5xd4n.d.ts → server.7cEtMB30.d.ts} +1 -1
  48. package/dist/shared/{server.BEFBl-Cb.d.mts → server.B8gYOD5g.d.mts} +2 -2
  49. package/dist/shared/{server.gqRxT-yN.d.mts → server.BqadksTP.d.mts} +1 -1
  50. package/dist/shared/{server.CIL9uKTN.mjs → server.Bxx6tqNe.mjs} +64 -39
  51. package/dist/shared/{server.DhJj-1X9.d.mts → server.C8_sRzQB.d.mts} +1 -1
  52. package/dist/shared/{server.BU4WI18A.d.mts → server.ChUyt5-i.d.mts} +3 -3
  53. package/dist/shared/{server.jMTkVNIb.d.ts → server.ChyoA9XY.d.ts} +1 -1
  54. package/dist/shared/{server.NeumLVdS.mjs → server.Ds4HPpvH.mjs} +105 -66
  55. package/dist/shared/{server.B7b2w3_i.d.ts → server.EfTOZ2Q7.d.ts} +2 -2
  56. package/dist/shared/{server.BW-nUGgA.mjs → server.TEVCLCFC.mjs} +3 -0
  57. package/dist/shared/server.UVMTOWrk.mjs +26 -0
  58. package/dist/shared/{server.CYNGeoCm.d.mts → server.qKsRrdxW.d.mts} +10 -11
  59. package/dist/shared/{server.CYNGeoCm.d.ts → server.qKsRrdxW.d.ts} +10 -11
  60. package/dist/shared/{server.D0H-iaY3.d.ts → server.yoEB3Fx4.d.ts} +3 -3
  61. package/package.json +24 -14
  62. package/dist/shared/server.C6Q5sqYw.mjs +0 -20
@@ -1,15 +1,16 @@
1
1
  import { ORPCError } from '@orpc/client';
2
- import { toArray, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
2
+ import { once, toArray, intercept, resolveMaybeOptionalOptions } from '@orpc/shared';
3
+ import compression from '@orpc/interop/compression';
3
4
  import { toStandardLazyRequest, sendStandardResponse } from '@orpc/standard-server-node';
4
5
  import { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
5
6
  import '@orpc/standard-server';
6
7
  import '@orpc/contract';
7
- import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.CIL9uKTN.mjs';
8
+ import { C as CompositeStandardHandlerPlugin, b as StandardRPCHandler } from '../../shared/server.Bxx6tqNe.mjs';
8
9
  import '@orpc/client/standard';
9
10
  import '@orpc/standard-server/batch';
10
11
  import '@orpc/standard-server-fetch';
11
- import { S as StrictGetMethodPlugin } from '../../shared/server.BW-nUGgA.mjs';
12
- import '../../shared/server.NeumLVdS.mjs';
12
+ import { S as StrictGetMethodPlugin } from '../../shared/server.TEVCLCFC.mjs';
13
+ import '../../shared/server.Ds4HPpvH.mjs';
13
14
 
14
15
  class BodyLimitPlugin {
15
16
  maxBodySize;
@@ -19,14 +20,12 @@ class BodyLimitPlugin {
19
20
  initRuntimeAdapter(options) {
20
21
  options.adapterInterceptors ??= [];
21
22
  options.adapterInterceptors.push(async (options2) => {
22
- let isHeaderChecked = false;
23
- const checkHeader = () => {
24
- if (!isHeaderChecked && Number(options2.request.headers["content-length"]) > this.maxBodySize) {
23
+ const checkHeader = once(() => {
24
+ if (Number(options2.request.headers["content-length"]) > this.maxBodySize) {
25
25
  throw new ORPCError("PAYLOAD_TOO_LARGE");
26
26
  }
27
- isHeaderChecked = true;
28
- };
29
- const originalEmit = options2.request.emit.bind(options2.request);
27
+ });
28
+ const originalEmit = options2.request.emit;
30
29
  let currentBodySize = 0;
31
30
  options2.request.emit = (event, ...args) => {
32
31
  if (event === "data") {
@@ -36,9 +35,66 @@ class BodyLimitPlugin {
36
35
  throw new ORPCError("PAYLOAD_TOO_LARGE");
37
36
  }
38
37
  }
39
- return originalEmit(event, ...args);
38
+ return originalEmit.call(options2.request, event, ...args);
40
39
  };
41
- return options2.next();
40
+ try {
41
+ return await options2.next(options2);
42
+ } finally {
43
+ options2.request.emit = originalEmit;
44
+ }
45
+ });
46
+ }
47
+ }
48
+
49
+ class CompressionPlugin {
50
+ compressionHandler;
51
+ constructor(options = {}) {
52
+ this.compressionHandler = compression({
53
+ ...options,
54
+ filter: (req, res) => {
55
+ const hasContentDisposition = res.hasHeader("content-disposition");
56
+ const contentType = res.getHeader("content-type")?.toString();
57
+ if (!hasContentDisposition && contentType?.startsWith("text/event-stream")) {
58
+ return false;
59
+ }
60
+ return options.filter ? options.filter(req, res) : compression.filter(req, res);
61
+ }
62
+ });
63
+ }
64
+ initRuntimeAdapter(options) {
65
+ options.adapterInterceptors ??= [];
66
+ options.adapterInterceptors.unshift(async (options2) => {
67
+ let resolve;
68
+ let reject;
69
+ const promise = new Promise((res, rej) => {
70
+ resolve = res;
71
+ reject = rej;
72
+ });
73
+ const originalWrite = options2.response.write;
74
+ const originalEnd = options2.response.end;
75
+ const originalOn = options2.response.on;
76
+ this.compressionHandler(
77
+ options2.request,
78
+ options2.response,
79
+ async (err) => {
80
+ if (err) {
81
+ reject(err);
82
+ } else {
83
+ try {
84
+ resolve(await options2.next());
85
+ } catch (error) {
86
+ reject(error);
87
+ }
88
+ }
89
+ }
90
+ );
91
+ try {
92
+ return await promise;
93
+ } finally {
94
+ options2.response.write = originalWrite;
95
+ options2.response.end = originalEnd;
96
+ options2.response.on = originalOn;
97
+ }
42
98
  });
43
99
  }
44
100
  }
@@ -93,4 +149,4 @@ class RPCHandler extends NodeHttpHandler {
93
149
  }
94
150
  }
95
151
 
96
- export { BodyLimitPlugin, CompositeNodeHttpHandlerPlugin, NodeHttpHandler, RPCHandler };
152
+ export { BodyLimitPlugin, CompositeNodeHttpHandlerPlugin, CompressionPlugin, NodeHttpHandler, RPCHandler };
@@ -1,14 +1,14 @@
1
- import { S as StandardCodec, a as StandardParams } from '../../shared/server.gqRxT-yN.mjs';
2
- export { C as CompositeStandardHandlerPlugin, b as StandardHandleOptions, c as StandardHandleResult, f as StandardHandler, d as StandardHandlerInterceptorOptions, e as StandardHandlerOptions, g as StandardHandlerPlugin, h as StandardMatchResult, i as StandardMatcher } from '../../shared/server.gqRxT-yN.mjs';
1
+ import { S as StandardCodec, a as StandardParams } from '../../shared/server.BqadksTP.mjs';
2
+ export { C as CompositeStandardHandlerPlugin, b as StandardHandleOptions, c as StandardHandleResult, f as StandardHandler, d as StandardHandlerInterceptorOptions, e as StandardHandlerOptions, g as StandardHandlerPlugin, h as StandardMatchResult, i as StandardMatcher } from '../../shared/server.BqadksTP.mjs';
3
3
  import { ORPCError } from '@orpc/client';
4
4
  import { StandardRPCSerializer } from '@orpc/client/standard';
5
5
  import { StandardLazyRequest, StandardResponse } from '@orpc/standard-server';
6
- import { A as AnyProcedure } from '../../shared/server.CYNGeoCm.mjs';
7
- export { a as StandardRPCHandler, S as StandardRPCHandlerOptions, c as StandardRPCMatcher, b as StandardRPCMatcherOptions } from '../../shared/server.BU4WI18A.mjs';
8
- export { F as FriendlyStandardHandleOptions, r as resolveFriendlyStandardHandleOptions } from '../../shared/server.BEFBl-Cb.mjs';
6
+ import { A as AnyProcedure } from '../../shared/server.qKsRrdxW.mjs';
7
+ export { a as StandardRPCHandler, S as StandardRPCHandlerOptions, c as StandardRPCMatcher, b as StandardRPCMatcherOptions } from '../../shared/server.ChUyt5-i.mjs';
8
+ export { F as FriendlyStandardHandleOptions, r as resolveFriendlyStandardHandleOptions } from '../../shared/server.B8gYOD5g.mjs';
9
9
  import '@orpc/contract';
10
10
  import '@orpc/shared';
11
- import '../../shared/server.DhJj-1X9.mjs';
11
+ import '../../shared/server.C8_sRzQB.mjs';
12
12
 
13
13
  declare class StandardRPCCodec implements StandardCodec {
14
14
  private readonly serializer;
@@ -1,14 +1,14 @@
1
- import { S as StandardCodec, a as StandardParams } from '../../shared/server.Bmh5xd4n.js';
2
- export { C as CompositeStandardHandlerPlugin, b as StandardHandleOptions, c as StandardHandleResult, f as StandardHandler, d as StandardHandlerInterceptorOptions, e as StandardHandlerOptions, g as StandardHandlerPlugin, h as StandardMatchResult, i as StandardMatcher } from '../../shared/server.Bmh5xd4n.js';
1
+ import { S as StandardCodec, a as StandardParams } from '../../shared/server.7cEtMB30.js';
2
+ export { C as CompositeStandardHandlerPlugin, b as StandardHandleOptions, c as StandardHandleResult, f as StandardHandler, d as StandardHandlerInterceptorOptions, e as StandardHandlerOptions, g as StandardHandlerPlugin, h as StandardMatchResult, i as StandardMatcher } from '../../shared/server.7cEtMB30.js';
3
3
  import { ORPCError } from '@orpc/client';
4
4
  import { StandardRPCSerializer } from '@orpc/client/standard';
5
5
  import { StandardLazyRequest, StandardResponse } from '@orpc/standard-server';
6
- import { A as AnyProcedure } from '../../shared/server.CYNGeoCm.js';
7
- export { a as StandardRPCHandler, S as StandardRPCHandlerOptions, c as StandardRPCMatcher, b as StandardRPCMatcherOptions } from '../../shared/server.D0H-iaY3.js';
8
- export { F as FriendlyStandardHandleOptions, r as resolveFriendlyStandardHandleOptions } from '../../shared/server.B7b2w3_i.js';
6
+ import { A as AnyProcedure } from '../../shared/server.qKsRrdxW.js';
7
+ export { a as StandardRPCHandler, S as StandardRPCHandlerOptions, c as StandardRPCMatcher, b as StandardRPCMatcherOptions } from '../../shared/server.yoEB3Fx4.js';
8
+ export { F as FriendlyStandardHandleOptions, r as resolveFriendlyStandardHandleOptions } from '../../shared/server.EfTOZ2Q7.js';
9
9
  import '@orpc/contract';
10
10
  import '@orpc/shared';
11
- import '../../shared/server.jMTkVNIb.js';
11
+ import '../../shared/server.ChyoA9XY.js';
12
12
 
13
13
  declare class StandardRPCCodec implements StandardCodec {
14
14
  private readonly serializer;
@@ -1,8 +1,8 @@
1
- export { C as CompositeStandardHandlerPlugin, S as StandardHandler, a as StandardRPCCodec, b as StandardRPCHandler, c as StandardRPCMatcher } from '../../shared/server.CIL9uKTN.mjs';
1
+ export { C as CompositeStandardHandlerPlugin, S as StandardHandler, a as StandardRPCCodec, b as StandardRPCHandler, c as StandardRPCMatcher } from '../../shared/server.Bxx6tqNe.mjs';
2
2
  export { r as resolveFriendlyStandardHandleOptions } from '../../shared/server.DZ5BIITo.mjs';
3
3
  import '@orpc/client/standard';
4
4
  import '@orpc/client';
5
5
  import '@orpc/shared';
6
6
  import '@orpc/standard-server';
7
- import '../../shared/server.NeumLVdS.mjs';
7
+ import '../../shared/server.Ds4HPpvH.mjs';
8
8
  import '@orpc/contract';
@@ -1,14 +1,18 @@
1
- import { ServerPeer, EncodedMessage } from '@orpc/standard-server-peer';
2
- import { C as Context } from '../../shared/server.CYNGeoCm.mjs';
3
- import { f as StandardHandler } from '../../shared/server.gqRxT-yN.mjs';
4
- import { F as FriendlyStandardHandleOptions } from '../../shared/server.BEFBl-Cb.mjs';
1
+ import { ServerPeer, EncodedMessage, ServerPeerHandleRequestFn } from '@orpc/standard-server-peer';
2
+ import { C as Context } from '../../shared/server.qKsRrdxW.mjs';
3
+ import { f as StandardHandler } from '../../shared/server.BqadksTP.mjs';
4
+ import { F as FriendlyStandardHandleOptions } from '../../shared/server.B8gYOD5g.mjs';
5
5
  import '@orpc/client';
6
6
  import '@orpc/contract';
7
7
  import '@orpc/shared';
8
8
  import '@orpc/standard-server';
9
9
 
10
10
  type HandleStandardServerPeerMessageOptions<T extends Context> = Omit<FriendlyStandardHandleOptions<T>, 'prefix'>;
11
+ /**
12
+ * @deprecated Use `createServerPeerRequestHandleFn` instead.
13
+ */
11
14
  declare function handleStandardServerPeerMessage<T extends Context>(handler: StandardHandler<T>, peer: ServerPeer, message: EncodedMessage, options: HandleStandardServerPeerMessageOptions<T>): Promise<void>;
15
+ declare function createServerPeerHandleRequestFn<T extends Context>(handler: StandardHandler<T>, options: HandleStandardServerPeerMessageOptions<T>): ServerPeerHandleRequestFn;
12
16
 
13
- export { handleStandardServerPeerMessage };
17
+ export { createServerPeerHandleRequestFn, handleStandardServerPeerMessage };
14
18
  export type { HandleStandardServerPeerMessageOptions };
@@ -1,14 +1,18 @@
1
- import { ServerPeer, EncodedMessage } from '@orpc/standard-server-peer';
2
- import { C as Context } from '../../shared/server.CYNGeoCm.js';
3
- import { f as StandardHandler } from '../../shared/server.Bmh5xd4n.js';
4
- import { F as FriendlyStandardHandleOptions } from '../../shared/server.B7b2w3_i.js';
1
+ import { ServerPeer, EncodedMessage, ServerPeerHandleRequestFn } from '@orpc/standard-server-peer';
2
+ import { C as Context } from '../../shared/server.qKsRrdxW.js';
3
+ import { f as StandardHandler } from '../../shared/server.7cEtMB30.js';
4
+ import { F as FriendlyStandardHandleOptions } from '../../shared/server.EfTOZ2Q7.js';
5
5
  import '@orpc/client';
6
6
  import '@orpc/contract';
7
7
  import '@orpc/shared';
8
8
  import '@orpc/standard-server';
9
9
 
10
10
  type HandleStandardServerPeerMessageOptions<T extends Context> = Omit<FriendlyStandardHandleOptions<T>, 'prefix'>;
11
+ /**
12
+ * @deprecated Use `createServerPeerRequestHandleFn` instead.
13
+ */
11
14
  declare function handleStandardServerPeerMessage<T extends Context>(handler: StandardHandler<T>, peer: ServerPeer, message: EncodedMessage, options: HandleStandardServerPeerMessageOptions<T>): Promise<void>;
15
+ declare function createServerPeerHandleRequestFn<T extends Context>(handler: StandardHandler<T>, options: HandleStandardServerPeerMessageOptions<T>): ServerPeerHandleRequestFn;
12
16
 
13
- export { handleStandardServerPeerMessage };
17
+ export { createServerPeerHandleRequestFn, handleStandardServerPeerMessage };
14
18
  export type { HandleStandardServerPeerMessageOptions };
@@ -1,4 +1,4 @@
1
- export { h as handleStandardServerPeerMessage } from '../../shared/server.C6Q5sqYw.mjs';
1
+ export { c as createServerPeerHandleRequestFn, h as handleStandardServerPeerMessage } from '../../shared/server.UVMTOWrk.mjs';
2
2
  import '@orpc/client';
3
3
  import '@orpc/shared';
4
4
  import '@orpc/standard-server';
@@ -1,15 +1,15 @@
1
1
  import { MaybeOptionalOptions } from '@orpc/shared';
2
- import { C as Context, R as Router } from '../../shared/server.CYNGeoCm.mjs';
3
- import { f as StandardHandler } from '../../shared/server.gqRxT-yN.mjs';
2
+ import { C as Context, R as Router } from '../../shared/server.qKsRrdxW.mjs';
3
+ import { f as StandardHandler } from '../../shared/server.BqadksTP.mjs';
4
4
  import { HandleStandardServerPeerMessageOptions } from '../standard-peer/index.mjs';
5
- import { S as StandardRPCHandlerOptions } from '../../shared/server.BU4WI18A.mjs';
5
+ import { S as StandardRPCHandlerOptions } from '../../shared/server.ChUyt5-i.mjs';
6
6
  import '@orpc/client';
7
7
  import '@orpc/contract';
8
8
  import '@orpc/standard-server';
9
9
  import '@orpc/standard-server-peer';
10
- import '../../shared/server.BEFBl-Cb.mjs';
10
+ import '../../shared/server.B8gYOD5g.mjs';
11
11
  import '@orpc/client/standard';
12
- import '../../shared/server.DhJj-1X9.mjs';
12
+ import '../../shared/server.C8_sRzQB.mjs';
13
13
 
14
14
  type MinimalWebsocket = Pick<WebSocket, 'addEventListener' | 'send'>;
15
15
  declare class WebsocketHandler<T extends Context> {
@@ -40,15 +40,17 @@ declare class WebsocketHandler<T extends Context> {
40
40
  close(ws: MinimalWebsocket): void;
41
41
  }
42
42
 
43
+ interface RPCHandlerOptions<T extends Context> extends StandardRPCHandlerOptions<T> {
44
+ }
43
45
  /**
44
46
  * RPC Handler for Websocket adapter
45
47
  *
46
- * @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
47
- * @see {@link https://orpc.unnoq.com/docs/adapters/websocket Websocket Adapter Docs}
48
+ * @see {@link https://orpc.dev/docs/rpc-handler RPC Handler Docs}
49
+ * @see {@link https://orpc.dev/docs/adapters/websocket Websocket Adapter Docs}
48
50
  */
49
51
  declare class RPCHandler<T extends Context> extends WebsocketHandler<T> {
50
- constructor(router: Router<any, T>, options?: NoInfer<StandardRPCHandlerOptions<T>>);
52
+ constructor(router: Router<any, T>, options?: NoInfer<RPCHandlerOptions<T>>);
51
53
  }
52
54
 
53
55
  export { RPCHandler, WebsocketHandler };
54
- export type { MinimalWebsocket };
56
+ export type { MinimalWebsocket, RPCHandlerOptions };
@@ -1,15 +1,15 @@
1
1
  import { MaybeOptionalOptions } from '@orpc/shared';
2
- import { C as Context, R as Router } from '../../shared/server.CYNGeoCm.js';
3
- import { f as StandardHandler } from '../../shared/server.Bmh5xd4n.js';
2
+ import { C as Context, R as Router } from '../../shared/server.qKsRrdxW.js';
3
+ import { f as StandardHandler } from '../../shared/server.7cEtMB30.js';
4
4
  import { HandleStandardServerPeerMessageOptions } from '../standard-peer/index.js';
5
- import { S as StandardRPCHandlerOptions } from '../../shared/server.D0H-iaY3.js';
5
+ import { S as StandardRPCHandlerOptions } from '../../shared/server.yoEB3Fx4.js';
6
6
  import '@orpc/client';
7
7
  import '@orpc/contract';
8
8
  import '@orpc/standard-server';
9
9
  import '@orpc/standard-server-peer';
10
- import '../../shared/server.B7b2w3_i.js';
10
+ import '../../shared/server.EfTOZ2Q7.js';
11
11
  import '@orpc/client/standard';
12
- import '../../shared/server.jMTkVNIb.js';
12
+ import '../../shared/server.ChyoA9XY.js';
13
13
 
14
14
  type MinimalWebsocket = Pick<WebSocket, 'addEventListener' | 'send'>;
15
15
  declare class WebsocketHandler<T extends Context> {
@@ -40,15 +40,17 @@ declare class WebsocketHandler<T extends Context> {
40
40
  close(ws: MinimalWebsocket): void;
41
41
  }
42
42
 
43
+ interface RPCHandlerOptions<T extends Context> extends StandardRPCHandlerOptions<T> {
44
+ }
43
45
  /**
44
46
  * RPC Handler for Websocket adapter
45
47
  *
46
- * @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
47
- * @see {@link https://orpc.unnoq.com/docs/adapters/websocket Websocket Adapter Docs}
48
+ * @see {@link https://orpc.dev/docs/rpc-handler RPC Handler Docs}
49
+ * @see {@link https://orpc.dev/docs/adapters/websocket Websocket Adapter Docs}
48
50
  */
49
51
  declare class RPCHandler<T extends Context> extends WebsocketHandler<T> {
50
- constructor(router: Router<any, T>, options?: NoInfer<StandardRPCHandlerOptions<T>>);
52
+ constructor(router: Router<any, T>, options?: NoInfer<RPCHandlerOptions<T>>);
51
53
  }
52
54
 
53
55
  export { RPCHandler, WebsocketHandler };
54
- export type { MinimalWebsocket };
56
+ export type { MinimalWebsocket, RPCHandlerOptions };
@@ -1,13 +1,13 @@
1
1
  import { readAsBuffer, resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { ServerPeer } from '@orpc/standard-server-peer';
3
- import { h as handleStandardServerPeerMessage } from '../../shared/server.C6Q5sqYw.mjs';
3
+ import { c as createServerPeerHandleRequestFn } from '../../shared/server.UVMTOWrk.mjs';
4
4
  import '@orpc/client';
5
5
  import '@orpc/standard-server';
6
6
  import '@orpc/contract';
7
- import { b as StandardRPCHandler } from '../../shared/server.CIL9uKTN.mjs';
7
+ import { b as StandardRPCHandler } from '../../shared/server.Bxx6tqNe.mjs';
8
8
  import '@orpc/client/standard';
9
9
  import '../../shared/server.DZ5BIITo.mjs';
10
- import '../../shared/server.NeumLVdS.mjs';
10
+ import '../../shared/server.Ds4HPpvH.mjs';
11
11
 
12
12
  class WebsocketHandler {
13
13
  #peers = /* @__PURE__ */ new WeakMap();
@@ -40,11 +40,9 @@ class WebsocketHandler {
40
40
  this.#peers.set(ws, peer = new ServerPeer(ws.send.bind(ws)));
41
41
  }
42
42
  const message = data instanceof Blob ? await readAsBuffer(data) : data;
43
- await handleStandardServerPeerMessage(
44
- this.#handler,
45
- peer,
43
+ await peer.message(
46
44
  message,
47
- resolveMaybeOptionalOptions(rest)
45
+ createServerPeerHandleRequestFn(this.#handler, resolveMaybeOptionalOptions(rest))
48
46
  );
49
47
  }
50
48
  /**
@@ -1,16 +1,16 @@
1
1
  import { MaybeOptionalOptions } from '@orpc/shared';
2
2
  import { WebSocket } from 'ws';
3
- import { C as Context, R as Router } from '../../shared/server.CYNGeoCm.mjs';
4
- import { f as StandardHandler } from '../../shared/server.gqRxT-yN.mjs';
3
+ import { C as Context, R as Router } from '../../shared/server.qKsRrdxW.mjs';
4
+ import { f as StandardHandler } from '../../shared/server.BqadksTP.mjs';
5
5
  import { HandleStandardServerPeerMessageOptions } from '../standard-peer/index.mjs';
6
- import { S as StandardRPCHandlerOptions } from '../../shared/server.BU4WI18A.mjs';
6
+ import { S as StandardRPCHandlerOptions } from '../../shared/server.ChUyt5-i.mjs';
7
7
  import '@orpc/client';
8
8
  import '@orpc/contract';
9
9
  import '@orpc/standard-server';
10
10
  import '@orpc/standard-server-peer';
11
- import '../../shared/server.BEFBl-Cb.mjs';
11
+ import '../../shared/server.B8gYOD5g.mjs';
12
12
  import '@orpc/client/standard';
13
- import '../../shared/server.DhJj-1X9.mjs';
13
+ import '../../shared/server.C8_sRzQB.mjs';
14
14
 
15
15
  declare class WsHandler<T extends Context> {
16
16
  private readonly standardHandler;
@@ -21,8 +21,8 @@ declare class WsHandler<T extends Context> {
21
21
  /**
22
22
  * RPC Handler for ws (node ws) adapter
23
23
  *
24
- * @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
25
- * @see {@link https://orpc.unnoq.com/docs/adapters/websocket Websocket Adapter Docs}
24
+ * @see {@link https://orpc.dev/docs/rpc-handler RPC Handler Docs}
25
+ * @see {@link https://orpc.dev/docs/adapters/websocket Websocket Adapter Docs}
26
26
  */
27
27
  declare class RPCHandler<T extends Context> extends WsHandler<T> {
28
28
  constructor(router: Router<any, T>, options?: NoInfer<StandardRPCHandlerOptions<T>>);
@@ -1,16 +1,16 @@
1
1
  import { MaybeOptionalOptions } from '@orpc/shared';
2
2
  import { WebSocket } from 'ws';
3
- import { C as Context, R as Router } from '../../shared/server.CYNGeoCm.js';
4
- import { f as StandardHandler } from '../../shared/server.Bmh5xd4n.js';
3
+ import { C as Context, R as Router } from '../../shared/server.qKsRrdxW.js';
4
+ import { f as StandardHandler } from '../../shared/server.7cEtMB30.js';
5
5
  import { HandleStandardServerPeerMessageOptions } from '../standard-peer/index.js';
6
- import { S as StandardRPCHandlerOptions } from '../../shared/server.D0H-iaY3.js';
6
+ import { S as StandardRPCHandlerOptions } from '../../shared/server.yoEB3Fx4.js';
7
7
  import '@orpc/client';
8
8
  import '@orpc/contract';
9
9
  import '@orpc/standard-server';
10
10
  import '@orpc/standard-server-peer';
11
- import '../../shared/server.B7b2w3_i.js';
11
+ import '../../shared/server.EfTOZ2Q7.js';
12
12
  import '@orpc/client/standard';
13
- import '../../shared/server.jMTkVNIb.js';
13
+ import '../../shared/server.ChyoA9XY.js';
14
14
 
15
15
  declare class WsHandler<T extends Context> {
16
16
  private readonly standardHandler;
@@ -21,8 +21,8 @@ declare class WsHandler<T extends Context> {
21
21
  /**
22
22
  * RPC Handler for ws (node ws) adapter
23
23
  *
24
- * @see {@link https://orpc.unnoq.com/docs/rpc-handler RPC Handler Docs}
25
- * @see {@link https://orpc.unnoq.com/docs/adapters/websocket Websocket Adapter Docs}
24
+ * @see {@link https://orpc.dev/docs/rpc-handler RPC Handler Docs}
25
+ * @see {@link https://orpc.dev/docs/adapters/websocket Websocket Adapter Docs}
26
26
  */
27
27
  declare class RPCHandler<T extends Context> extends WsHandler<T> {
28
28
  constructor(router: Router<any, T>, options?: NoInfer<StandardRPCHandlerOptions<T>>);
@@ -1,13 +1,13 @@
1
1
  import { readAsBuffer, resolveMaybeOptionalOptions } from '@orpc/shared';
2
2
  import { ServerPeer } from '@orpc/standard-server-peer';
3
- import { h as handleStandardServerPeerMessage } from '../../shared/server.C6Q5sqYw.mjs';
3
+ import { c as createServerPeerHandleRequestFn } from '../../shared/server.UVMTOWrk.mjs';
4
4
  import '@orpc/client';
5
5
  import '@orpc/standard-server';
6
6
  import '@orpc/contract';
7
- import { b as StandardRPCHandler } from '../../shared/server.CIL9uKTN.mjs';
7
+ import { b as StandardRPCHandler } from '../../shared/server.Bxx6tqNe.mjs';
8
8
  import '@orpc/client/standard';
9
9
  import '../../shared/server.DZ5BIITo.mjs';
10
- import '../../shared/server.NeumLVdS.mjs';
10
+ import '../../shared/server.Ds4HPpvH.mjs';
11
11
 
12
12
  class WsHandler {
13
13
  constructor(standardHandler) {
@@ -17,11 +17,9 @@ class WsHandler {
17
17
  const peer = new ServerPeer(ws.send.bind(ws));
18
18
  ws.addEventListener("message", async (event) => {
19
19
  const message = Array.isArray(event.data) ? await readAsBuffer(new Blob(event.data)) : event.data;
20
- await handleStandardServerPeerMessage(
21
- this.standardHandler,
22
- peer,
20
+ await peer.message(
23
21
  message,
24
- resolveMaybeOptionalOptions(rest)
22
+ createServerPeerHandleRequestFn(this.standardHandler, resolveMaybeOptionalOptions(rest))
25
23
  );
26
24
  });
27
25
  ws.addEventListener("close", () => {
@@ -68,6 +68,10 @@ interface GetCookieOptions extends ParseOptions {
68
68
  * ```
69
69
  */
70
70
  declare function getCookie(headers: Headers | undefined, name: string, options?: GetCookieOptions): string | undefined;
71
+ /**
72
+ * Deletes a cookie by marking it expired.
73
+ */
74
+ declare function deleteCookie(headers: Headers | undefined, name: string, options?: Omit<SetCookieOptions, 'maxAge'>): void;
71
75
 
72
76
  /**
73
77
  * Encrypts a string using AES-GCM with a secret key.
@@ -125,6 +129,21 @@ declare function sign(value: string, secret: string): Promise<string>;
125
129
  * ```
126
130
  */
127
131
  declare function unsign(signedValue: string | undefined | null, secret: string): Promise<string | undefined>;
132
+ /**
133
+ * Extracts the value part from a signed string without verification.
134
+ *
135
+ * This function simply extracts the original value from a signed string
136
+ * without performing any signature verification. It's useful when you need
137
+ * to access the value quickly without the overhead of cryptographic verification.
138
+ *
139
+ * @example
140
+ * ```ts
141
+ * const signedValue = "user123.oneQsU0r5dvwQFHFEjjV1uOI_IR3gZfkYHij3TRauVA"
142
+ * const value = getSignedValue(signedValue)
143
+ * expect(value).toEqual("user123")
144
+ * ```
145
+ */
146
+ declare function getSignedValue(signedValue: string | undefined | null): string | undefined;
128
147
 
129
- export { decodeBase64url, decrypt, encodeBase64url, encrypt, getCookie, setCookie, sign, unsign };
148
+ export { decodeBase64url, decrypt, deleteCookie, encodeBase64url, encrypt, getCookie, getSignedValue, setCookie, sign, unsign };
130
149
  export type { GetCookieOptions, SetCookieOptions };
@@ -68,6 +68,10 @@ interface GetCookieOptions extends ParseOptions {
68
68
  * ```
69
69
  */
70
70
  declare function getCookie(headers: Headers | undefined, name: string, options?: GetCookieOptions): string | undefined;
71
+ /**
72
+ * Deletes a cookie by marking it expired.
73
+ */
74
+ declare function deleteCookie(headers: Headers | undefined, name: string, options?: Omit<SetCookieOptions, 'maxAge'>): void;
71
75
 
72
76
  /**
73
77
  * Encrypts a string using AES-GCM with a secret key.
@@ -125,6 +129,21 @@ declare function sign(value: string, secret: string): Promise<string>;
125
129
  * ```
126
130
  */
127
131
  declare function unsign(signedValue: string | undefined | null, secret: string): Promise<string | undefined>;
132
+ /**
133
+ * Extracts the value part from a signed string without verification.
134
+ *
135
+ * This function simply extracts the original value from a signed string
136
+ * without performing any signature verification. It's useful when you need
137
+ * to access the value quickly without the overhead of cryptographic verification.
138
+ *
139
+ * @example
140
+ * ```ts
141
+ * const signedValue = "user123.oneQsU0r5dvwQFHFEjjV1uOI_IR3gZfkYHij3TRauVA"
142
+ * const value = getSignedValue(signedValue)
143
+ * expect(value).toEqual("user123")
144
+ * ```
145
+ */
146
+ declare function getSignedValue(signedValue: string | undefined | null): string | undefined;
128
147
 
129
- export { decodeBase64url, decrypt, encodeBase64url, encrypt, getCookie, setCookie, sign, unsign };
148
+ export { decodeBase64url, decrypt, deleteCookie, encodeBase64url, encrypt, getCookie, getSignedValue, setCookie, sign, unsign };
130
149
  export type { GetCookieOptions, SetCookieOptions };
@@ -50,6 +50,12 @@ function getCookie(headers, name, options = {}) {
50
50
  }
51
51
  return parse(cookieHeader, options)[name];
52
52
  }
53
+ function deleteCookie(headers, name, options = {}) {
54
+ return setCookie(headers, name, "", {
55
+ ...options,
56
+ maxAge: 0
57
+ });
58
+ }
53
59
 
54
60
  const PBKDF2_CONFIG = {
55
61
  name: "PBKDF2",
@@ -178,5 +184,15 @@ async function unsign(signedValue, secret) {
178
184
  );
179
185
  return isValid ? value : void 0;
180
186
  }
187
+ function getSignedValue(signedValue) {
188
+ if (typeof signedValue !== "string") {
189
+ return void 0;
190
+ }
191
+ const lastDotIndex = signedValue.lastIndexOf(".");
192
+ if (lastDotIndex === -1) {
193
+ return void 0;
194
+ }
195
+ return signedValue.slice(0, lastDotIndex);
196
+ }
181
197
 
182
- export { decodeBase64url, decrypt, encodeBase64url, encrypt, getCookie, setCookie, sign, unsign };
198
+ export { decodeBase64url, decrypt, deleteCookie, encodeBase64url, encrypt, getCookie, getSignedValue, setCookie, sign, unsign };
@@ -1,13 +1,13 @@
1
1
  import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
2
- import { g as StandardHandlerPlugin, e as StandardHandlerOptions } from '../shared/server.gqRxT-yN.mjs';
3
- import { experimental_HibernationEventIterator } from '@orpc/standard-server';
4
- export { experimental_HibernationEventIterator, experimental_HibernationEventIteratorCallback } from '@orpc/standard-server';
5
- import { C as Context, R as Router } from '../shared/server.CYNGeoCm.mjs';
2
+ import { g as StandardHandlerPlugin, e as StandardHandlerOptions } from '../shared/server.BqadksTP.mjs';
3
+ import { HibernationEventIterator } from '@orpc/standard-server';
4
+ export { HibernationEventIterator, HibernationEventIteratorCallback } from '@orpc/standard-server';
5
+ import { C as Context, R as Router } from '../shared/server.qKsRrdxW.mjs';
6
6
  import '@orpc/client';
7
7
  import '@orpc/contract';
8
8
  import '@orpc/shared';
9
9
 
10
- interface experimental_EncodeHibernationRPCEventOptions extends StandardRPCJsonSerializerOptions {
10
+ interface EncodeHibernationRPCEventOptions extends StandardRPCJsonSerializerOptions {
11
11
  /**
12
12
  * The type of event, each type corresponds a different operation
13
13
  *
@@ -22,23 +22,23 @@ interface experimental_EncodeHibernationRPCEventOptions extends StandardRPCJsonS
22
22
  /**
23
23
  * Encodes a Hibernation RPC Event
24
24
  *
25
- * @see {@link https://orpc.unnoq.com/docs/plugins/hibernation Hibernation Plugin}
25
+ * @see {@link https://orpc.dev/docs/plugins/hibernation Hibernation Plugin}
26
26
  */
27
- declare function experimental_encodeHibernationRPCEvent(id: string, payload: unknown, options?: experimental_EncodeHibernationRPCEventOptions): string;
27
+ declare function encodeHibernationRPCEvent(id: string, payload: unknown, options?: EncodeHibernationRPCEventOptions): string;
28
28
 
29
- interface experimental_HibernationPluginContext {
30
- iterator?: experimental_HibernationEventIterator<any>;
29
+ interface HibernationPluginContext {
30
+ iterator?: HibernationEventIterator<any>;
31
31
  }
32
32
  /**
33
33
  * Enable Hibernation APIs
34
34
  *
35
- * @see {@link https://orpc.unnoq.com/docs/plugins/hibernation Hibernation Plugin}
35
+ * @see {@link https://orpc.dev/docs/plugins/hibernation Hibernation Plugin}
36
36
  */
37
- declare class experimental_HibernationPlugin<T extends Context> implements StandardHandlerPlugin<T> {
37
+ declare class HibernationPlugin<T extends Context> implements StandardHandlerPlugin<T> {
38
38
  readonly CONTEXT_SYMBOL: symbol;
39
39
  order: number;
40
40
  init(options: StandardHandlerOptions<T>, _router: Router<any, T>): void;
41
41
  }
42
42
 
43
- export { experimental_HibernationPlugin, experimental_encodeHibernationRPCEvent };
44
- export type { experimental_EncodeHibernationRPCEventOptions, experimental_HibernationPluginContext };
43
+ export { HibernationPlugin, encodeHibernationRPCEvent };
44
+ export type { EncodeHibernationRPCEventOptions, HibernationPluginContext };