@orpc/client 1.2.0 → 1.3.0

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.
package/README.md CHANGED
@@ -49,6 +49,7 @@ You can find the full documentation [here](https://orpc.unnoq.com).
49
49
  - [@orpc/contract](https://www.npmjs.com/package/@orpc/contract): Build your API contract.
50
50
  - [@orpc/server](https://www.npmjs.com/package/@orpc/server): Build your API or implement API contract.
51
51
  - [@orpc/client](https://www.npmjs.com/package/@orpc/client): Consume your API on the client with type-safety.
52
+ - [@orpc/nest](https://www.npmjs.com/package/@orpc/nest): Deeply integrate oRPC with NestJS.
52
53
  - [@orpc/react](https://www.npmjs.com/package/@orpc/react): Utilities for integrating oRPC with React and React Server Actions.
53
54
  - [@orpc/react-query](https://www.npmjs.com/package/@orpc/react-query): Integration with [React Query](https://tanstack.com/query/latest/docs/framework/react/overview).
54
55
  - [@orpc/vue-query](https://www.npmjs.com/package/@orpc/vue-query): Integration with [Vue Query](https://tanstack.com/query/latest/docs/framework/vue/overview).
@@ -1,8 +1,8 @@
1
1
  import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
2
2
  import { ToFetchRequestOptions } from '@orpc/standard-server-fetch';
3
3
  import { a as ClientContext, b as ClientOptions } from '../../shared/client.4TS_0JaO.mjs';
4
- import { f as StandardLinkClient } from '../../shared/client.ds1abV85.mjs';
5
- import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.ClwIM_ku.mjs';
4
+ import { f as StandardLinkClient } from '../../shared/client.BMoG_EdN.mjs';
5
+ import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.BdD8cpjs.mjs';
6
6
  import '@orpc/shared';
7
7
 
8
8
  interface LinkFetchClientOptions<T extends ClientContext> extends ToFetchRequestOptions {
@@ -1,8 +1,8 @@
1
1
  import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
2
2
  import { ToFetchRequestOptions } from '@orpc/standard-server-fetch';
3
3
  import { a as ClientContext, b as ClientOptions } from '../../shared/client.4TS_0JaO.js';
4
- import { f as StandardLinkClient } from '../../shared/client.7ZYxJok_.js';
5
- import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.B2432-Lu.js';
4
+ import { f as StandardLinkClient } from '../../shared/client.C0KbSWlC.js';
5
+ import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.7UM0t5o-.js';
6
6
  import '@orpc/shared';
7
7
 
8
8
  interface LinkFetchClientOptions<T extends ClientContext> extends ToFetchRequestOptions {
@@ -0,0 +1,59 @@
1
+ import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
2
+ import { a as ClientContext, b as ClientOptions } from '../../shared/client.4TS_0JaO.mjs';
3
+ import { f as StandardLinkClient } from '../../shared/client.BMoG_EdN.mjs';
4
+ import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.BdD8cpjs.mjs';
5
+ import '@orpc/shared';
6
+
7
+ /**
8
+ * The message port used by electron in main process
9
+ */
10
+ interface MessagePortMainLike {
11
+ on: <T extends string>(event: T, callback: (event?: {
12
+ data: any;
13
+ }) => void) => void;
14
+ postMessage: (data: any) => void;
15
+ }
16
+ /**
17
+ * The message port used by browser extension
18
+ */
19
+ interface BrowserPortLike {
20
+ onMessage: {
21
+ addListener: (callback: (data: any) => void) => void;
22
+ };
23
+ onDisconnect: {
24
+ addListener: (callback: () => void) => void;
25
+ };
26
+ postMessage: (data: any) => void;
27
+ }
28
+ type SupportedMessagePort = Pick<MessagePort, 'addEventListener' | 'postMessage'> | MessagePortMainLike | BrowserPortLike;
29
+ /**
30
+ * Message port can support [The structured clone algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm)
31
+ */
32
+ type SupportedMessagePortData = string | ArrayBufferLike;
33
+ declare function postMessagePortMessage(port: SupportedMessagePort, data: SupportedMessagePortData): void;
34
+ declare function onMessagePortMessage(port: SupportedMessagePort, callback: (data: SupportedMessagePortData) => void): void;
35
+ declare function onMessagePortClose(port: SupportedMessagePort, callback: () => void): void;
36
+
37
+ interface experimental_LinkMessagePortClientOptions {
38
+ port: SupportedMessagePort;
39
+ }
40
+ declare class experimental_LinkMessagePortClient<T extends ClientContext> implements StandardLinkClient<T> {
41
+ private readonly peer;
42
+ constructor(options: experimental_LinkMessagePortClientOptions);
43
+ call(request: StandardRequest, _options: ClientOptions<T>, _path: readonly string[], _input: unknown): Promise<StandardLazyResponse>;
44
+ }
45
+
46
+ interface experimental_RPCLinkOptions<T extends ClientContext> extends Omit<StandardRPCLinkOptions<T>, 'url' | 'headers' | 'method' | 'fallbackMethod' | 'maxUrlLength'>, experimental_LinkMessagePortClientOptions {
47
+ }
48
+ /**
49
+ * The RPC Link for common message port implementations.
50
+ *
51
+ * @see {@link https://orpc.unnoq.com/docs/client/rpc-link RPC Link Docs}
52
+ * @see {@link https://orpc.unnoq.com/docs/adapters/message-port Message Port Adapter Docs}
53
+ */
54
+ declare class experimental_RPCLink<T extends ClientContext> extends StandardRPCLink<T> {
55
+ constructor(options: experimental_RPCLinkOptions<T>);
56
+ }
57
+
58
+ export { experimental_LinkMessagePortClient, experimental_RPCLink, onMessagePortClose, onMessagePortMessage, postMessagePortMessage };
59
+ export type { BrowserPortLike, MessagePortMainLike, SupportedMessagePort, SupportedMessagePortData, experimental_LinkMessagePortClientOptions, experimental_RPCLinkOptions };
@@ -0,0 +1,59 @@
1
+ import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
2
+ import { a as ClientContext, b as ClientOptions } from '../../shared/client.4TS_0JaO.js';
3
+ import { f as StandardLinkClient } from '../../shared/client.C0KbSWlC.js';
4
+ import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.7UM0t5o-.js';
5
+ import '@orpc/shared';
6
+
7
+ /**
8
+ * The message port used by electron in main process
9
+ */
10
+ interface MessagePortMainLike {
11
+ on: <T extends string>(event: T, callback: (event?: {
12
+ data: any;
13
+ }) => void) => void;
14
+ postMessage: (data: any) => void;
15
+ }
16
+ /**
17
+ * The message port used by browser extension
18
+ */
19
+ interface BrowserPortLike {
20
+ onMessage: {
21
+ addListener: (callback: (data: any) => void) => void;
22
+ };
23
+ onDisconnect: {
24
+ addListener: (callback: () => void) => void;
25
+ };
26
+ postMessage: (data: any) => void;
27
+ }
28
+ type SupportedMessagePort = Pick<MessagePort, 'addEventListener' | 'postMessage'> | MessagePortMainLike | BrowserPortLike;
29
+ /**
30
+ * Message port can support [The structured clone algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm)
31
+ */
32
+ type SupportedMessagePortData = string | ArrayBufferLike;
33
+ declare function postMessagePortMessage(port: SupportedMessagePort, data: SupportedMessagePortData): void;
34
+ declare function onMessagePortMessage(port: SupportedMessagePort, callback: (data: SupportedMessagePortData) => void): void;
35
+ declare function onMessagePortClose(port: SupportedMessagePort, callback: () => void): void;
36
+
37
+ interface experimental_LinkMessagePortClientOptions {
38
+ port: SupportedMessagePort;
39
+ }
40
+ declare class experimental_LinkMessagePortClient<T extends ClientContext> implements StandardLinkClient<T> {
41
+ private readonly peer;
42
+ constructor(options: experimental_LinkMessagePortClientOptions);
43
+ call(request: StandardRequest, _options: ClientOptions<T>, _path: readonly string[], _input: unknown): Promise<StandardLazyResponse>;
44
+ }
45
+
46
+ interface experimental_RPCLinkOptions<T extends ClientContext> extends Omit<StandardRPCLinkOptions<T>, 'url' | 'headers' | 'method' | 'fallbackMethod' | 'maxUrlLength'>, experimental_LinkMessagePortClientOptions {
47
+ }
48
+ /**
49
+ * The RPC Link for common message port implementations.
50
+ *
51
+ * @see {@link https://orpc.unnoq.com/docs/client/rpc-link RPC Link Docs}
52
+ * @see {@link https://orpc.unnoq.com/docs/adapters/message-port Message Port Adapter Docs}
53
+ */
54
+ declare class experimental_RPCLink<T extends ClientContext> extends StandardRPCLink<T> {
55
+ constructor(options: experimental_RPCLinkOptions<T>);
56
+ }
57
+
58
+ export { experimental_LinkMessagePortClient, experimental_RPCLink, onMessagePortClose, onMessagePortMessage, postMessagePortMessage };
59
+ export type { BrowserPortLike, MessagePortMainLike, SupportedMessagePort, SupportedMessagePortData, experimental_LinkMessagePortClientOptions, experimental_RPCLinkOptions };
@@ -0,0 +1,71 @@
1
+ import { ClientPeer } from '@orpc/standard-server-peer';
2
+ import '@orpc/shared';
3
+ import { c as StandardRPCLink } from '../../shared/client.DpICn1BD.mjs';
4
+ import '@orpc/standard-server';
5
+ import '../../shared/client.CRWEpqLB.mjs';
6
+
7
+ function postMessagePortMessage(port, data) {
8
+ port.postMessage(data);
9
+ }
10
+ function onMessagePortMessage(port, callback) {
11
+ if ("addEventListener" in port) {
12
+ port.addEventListener("message", (event) => {
13
+ callback(event.data);
14
+ });
15
+ } else if ("on" in port) {
16
+ port.on("message", (event) => {
17
+ callback(event?.data);
18
+ });
19
+ } else if ("onMessage" in port) {
20
+ port.onMessage.addListener((data) => {
21
+ callback(data);
22
+ });
23
+ } else {
24
+ throw new Error("Cannot find a addEventListener/on/onMessage method on the port");
25
+ }
26
+ }
27
+ function onMessagePortClose(port, callback) {
28
+ if ("addEventListener" in port) {
29
+ port.addEventListener("close", async () => {
30
+ callback();
31
+ });
32
+ } else if ("on" in port) {
33
+ port.on("close", async () => {
34
+ callback();
35
+ });
36
+ } else if ("onDisconnect" in port) {
37
+ port.onDisconnect.addListener(() => {
38
+ callback();
39
+ });
40
+ } else {
41
+ throw new Error("Cannot find a addEventListener/on/onDisconnect method on the port");
42
+ }
43
+ }
44
+
45
+ class experimental_LinkMessagePortClient {
46
+ peer;
47
+ constructor(options) {
48
+ this.peer = new ClientPeer(async (message) => {
49
+ postMessagePortMessage(options.port, message instanceof Blob ? await message.arrayBuffer() : message);
50
+ });
51
+ onMessagePortMessage(options.port, async (message) => {
52
+ await this.peer.message(message);
53
+ });
54
+ onMessagePortClose(options.port, () => {
55
+ this.peer.close();
56
+ });
57
+ }
58
+ async call(request, _options, _path, _input) {
59
+ const response = await this.peer.request(request);
60
+ return { ...response, body: () => Promise.resolve(response.body) };
61
+ }
62
+ }
63
+
64
+ class experimental_RPCLink extends StandardRPCLink {
65
+ constructor(options) {
66
+ const linkClient = new experimental_LinkMessagePortClient(options);
67
+ super(linkClient, { ...options, url: "orpc:/" });
68
+ }
69
+ }
70
+
71
+ export { experimental_LinkMessagePortClient, experimental_RPCLink, onMessagePortClose, onMessagePortMessage, postMessagePortMessage };
@@ -1,5 +1,5 @@
1
- export { C as CompositeStandardLinkPlugin, d as StandardLink, f as StandardLinkClient, S as StandardLinkClientInterceptorOptions, e as StandardLinkCodec, c as StandardLinkInterceptorOptions, b as StandardLinkOptions, a as StandardLinkPlugin } from '../../shared/client.ds1abV85.mjs';
2
- export { S as STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, c as StandardRPCCustomJsonSerializer, b as StandardRPCJsonSerialized, a as StandardRPCJsonSerializedMetaItem, e as StandardRPCJsonSerializer, d as StandardRPCJsonSerializerOptions, g as StandardRPCLink, i as StandardRPCLinkCodec, h as StandardRPCLinkCodecOptions, f as StandardRPCLinkOptions, j as StandardRPCSerializer } from '../../shared/client.ClwIM_ku.mjs';
1
+ export { C as CompositeStandardLinkPlugin, d as StandardLink, f as StandardLinkClient, S as StandardLinkClientInterceptorOptions, e as StandardLinkCodec, c as StandardLinkInterceptorOptions, b as StandardLinkOptions, a as StandardLinkPlugin } from '../../shared/client.BMoG_EdN.mjs';
2
+ export { S as STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, c as StandardRPCCustomJsonSerializer, b as StandardRPCJsonSerialized, a as StandardRPCJsonSerializedMetaItem, e as StandardRPCJsonSerializer, d as StandardRPCJsonSerializerOptions, g as StandardRPCLink, i as StandardRPCLinkCodec, h as StandardRPCLinkCodecOptions, f as StandardRPCLinkOptions, j as StandardRPCSerializer } from '../../shared/client.BdD8cpjs.mjs';
3
3
  import { H as HTTPPath } from '../../shared/client.4TS_0JaO.mjs';
4
4
  import '@orpc/shared';
5
5
  import '@orpc/standard-server';
@@ -1,5 +1,5 @@
1
- export { C as CompositeStandardLinkPlugin, d as StandardLink, f as StandardLinkClient, S as StandardLinkClientInterceptorOptions, e as StandardLinkCodec, c as StandardLinkInterceptorOptions, b as StandardLinkOptions, a as StandardLinkPlugin } from '../../shared/client.7ZYxJok_.js';
2
- export { S as STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, c as StandardRPCCustomJsonSerializer, b as StandardRPCJsonSerialized, a as StandardRPCJsonSerializedMetaItem, e as StandardRPCJsonSerializer, d as StandardRPCJsonSerializerOptions, g as StandardRPCLink, i as StandardRPCLinkCodec, h as StandardRPCLinkCodecOptions, f as StandardRPCLinkOptions, j as StandardRPCSerializer } from '../../shared/client.B2432-Lu.js';
1
+ export { C as CompositeStandardLinkPlugin, d as StandardLink, f as StandardLinkClient, S as StandardLinkClientInterceptorOptions, e as StandardLinkCodec, c as StandardLinkInterceptorOptions, b as StandardLinkOptions, a as StandardLinkPlugin } from '../../shared/client.C0KbSWlC.js';
2
+ export { S as STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, c as StandardRPCCustomJsonSerializer, b as StandardRPCJsonSerialized, a as StandardRPCJsonSerializedMetaItem, e as StandardRPCJsonSerializer, d as StandardRPCJsonSerializerOptions, g as StandardRPCLink, i as StandardRPCLinkCodec, h as StandardRPCLinkCodecOptions, f as StandardRPCLinkOptions, j as StandardRPCSerializer } from '../../shared/client.7UM0t5o-.js';
3
3
  import { H as HTTPPath } from '../../shared/client.4TS_0JaO.js';
4
4
  import '@orpc/shared';
5
5
  import '@orpc/standard-server';
@@ -1,7 +1,7 @@
1
1
  import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
2
2
  import { a as ClientContext, b as ClientOptions } from '../../shared/client.4TS_0JaO.mjs';
3
- import { f as StandardLinkClient } from '../../shared/client.ds1abV85.mjs';
4
- import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.ClwIM_ku.mjs';
3
+ import { f as StandardLinkClient } from '../../shared/client.BMoG_EdN.mjs';
4
+ import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.BdD8cpjs.mjs';
5
5
  import '@orpc/shared';
6
6
 
7
7
  interface experimental_LinkWebsocketClientOptions {
@@ -1,7 +1,7 @@
1
1
  import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
2
2
  import { a as ClientContext, b as ClientOptions } from '../../shared/client.4TS_0JaO.js';
3
- import { f as StandardLinkClient } from '../../shared/client.7ZYxJok_.js';
4
- import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.B2432-Lu.js';
3
+ import { f as StandardLinkClient } from '../../shared/client.C0KbSWlC.js';
4
+ import { f as StandardRPCLinkOptions, g as StandardRPCLink } from '../../shared/client.7UM0t5o-.js';
5
5
  import '@orpc/shared';
6
6
 
7
7
  interface experimental_LinkWebsocketClientOptions {
@@ -1,6 +1,6 @@
1
- import { Value } from '@orpc/shared';
1
+ import { Value, Promisable } from '@orpc/shared';
2
2
  import { StandardHeaders, StandardRequest } from '@orpc/standard-server';
3
- import { S as StandardLinkClientInterceptorOptions, a as StandardLinkPlugin, b as StandardLinkOptions, c as StandardLinkInterceptorOptions } from '../shared/client.ds1abV85.mjs';
3
+ import { S as StandardLinkClientInterceptorOptions, a as StandardLinkPlugin, b as StandardLinkOptions, c as StandardLinkInterceptorOptions } from '../shared/client.BMoG_EdN.mjs';
4
4
  import { a as ClientContext } from '../shared/client.4TS_0JaO.mjs';
5
5
 
6
6
  interface BatchLinkPluginGroup<T extends ClientContext> {
@@ -16,25 +16,25 @@ interface BatchLinkPluginOptions<T extends ClientContext> {
16
16
  *
17
17
  * @default 10
18
18
  */
19
- maxSize?: Value<number, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
19
+ maxSize?: Value<Promisable<number>, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
20
20
  /**
21
21
  * Defines the URL to use for the batch request.
22
22
  *
23
23
  * @default the URL of the first request in the batch + '/__batch__'
24
24
  */
25
- url?: Value<string | URL, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
25
+ url?: Value<Promisable<string | URL>, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
26
26
  /**
27
27
  * The maximum length of the URL.
28
28
  *
29
29
  * @default 2083
30
30
  */
31
- maxUrlLength?: Value<number, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
31
+ maxUrlLength?: Value<Promisable<number>, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
32
32
  /**
33
33
  * Defines the HTTP headers to use for the batch request.
34
34
  *
35
35
  * @default The same headers of all requests in the batch
36
36
  */
37
- headers?: Value<StandardHeaders, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
37
+ headers?: Value<Promisable<StandardHeaders>, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
38
38
  /**
39
39
  * Map the batch request items before sending them.
40
40
  *
@@ -84,19 +84,19 @@ interface ClientRetryPluginContext {
84
84
  *
85
85
  * @default 0
86
86
  */
87
- retry?: Value<number, [StandardLinkInterceptorOptions<ClientRetryPluginContext>]>;
87
+ retry?: Value<Promisable<number>, [StandardLinkInterceptorOptions<ClientRetryPluginContext>]>;
88
88
  /**
89
89
  * Delay (in ms) before retrying.
90
90
  *
91
91
  * @default (o) => o.lastEventRetry ?? 2000
92
92
  */
93
- retryDelay?: Value<number, [ClientRetryPluginAttemptOptions<ClientRetryPluginContext>]>;
93
+ retryDelay?: Value<Promisable<number>, [ClientRetryPluginAttemptOptions<ClientRetryPluginContext>]>;
94
94
  /**
95
95
  * Determine should retry or not.
96
96
  *
97
97
  * @default true
98
98
  */
99
- shouldRetry?: Value<boolean, [ClientRetryPluginAttemptOptions<ClientRetryPluginContext>]>;
99
+ shouldRetry?: Value<Promisable<boolean>, [ClientRetryPluginAttemptOptions<ClientRetryPluginContext>]>;
100
100
  /**
101
101
  * The hook called when retrying, and return the unsubscribe function.
102
102
  */
@@ -127,20 +127,20 @@ interface SimpleCsrfProtectionLinkPluginOptions<T extends ClientContext> {
127
127
  *
128
128
  * @default 'x-csrf-token'
129
129
  */
130
- headerName?: Value<string, [options: StandardLinkClientInterceptorOptions<T>]>;
130
+ headerName?: Value<Promisable<string>, [options: StandardLinkClientInterceptorOptions<T>]>;
131
131
  /**
132
132
  * The value of the header to check.
133
133
  *
134
134
  * @default 'orpc'
135
135
  *
136
136
  */
137
- headerValue?: Value<string, [options: StandardLinkClientInterceptorOptions<T>]>;
137
+ headerValue?: Value<Promisable<string>, [options: StandardLinkClientInterceptorOptions<T>]>;
138
138
  /**
139
139
  * Exclude a procedure from the plugin.
140
140
  *
141
141
  * @default false
142
142
  */
143
- exclude?: Value<boolean, [options: StandardLinkClientInterceptorOptions<T>]>;
143
+ exclude?: Value<Promisable<boolean>, [options: StandardLinkClientInterceptorOptions<T>]>;
144
144
  }
145
145
  /**
146
146
  * This plugin adds basic Cross-Site Request Forgery (CSRF) protection to your oRPC application.
@@ -1,6 +1,6 @@
1
- import { Value } from '@orpc/shared';
1
+ import { Value, Promisable } from '@orpc/shared';
2
2
  import { StandardHeaders, StandardRequest } from '@orpc/standard-server';
3
- import { S as StandardLinkClientInterceptorOptions, a as StandardLinkPlugin, b as StandardLinkOptions, c as StandardLinkInterceptorOptions } from '../shared/client.7ZYxJok_.js';
3
+ import { S as StandardLinkClientInterceptorOptions, a as StandardLinkPlugin, b as StandardLinkOptions, c as StandardLinkInterceptorOptions } from '../shared/client.C0KbSWlC.js';
4
4
  import { a as ClientContext } from '../shared/client.4TS_0JaO.js';
5
5
 
6
6
  interface BatchLinkPluginGroup<T extends ClientContext> {
@@ -16,25 +16,25 @@ interface BatchLinkPluginOptions<T extends ClientContext> {
16
16
  *
17
17
  * @default 10
18
18
  */
19
- maxSize?: Value<number, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
19
+ maxSize?: Value<Promisable<number>, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
20
20
  /**
21
21
  * Defines the URL to use for the batch request.
22
22
  *
23
23
  * @default the URL of the first request in the batch + '/__batch__'
24
24
  */
25
- url?: Value<string | URL, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
25
+ url?: Value<Promisable<string | URL>, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
26
26
  /**
27
27
  * The maximum length of the URL.
28
28
  *
29
29
  * @default 2083
30
30
  */
31
- maxUrlLength?: Value<number, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
31
+ maxUrlLength?: Value<Promisable<number>, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
32
32
  /**
33
33
  * Defines the HTTP headers to use for the batch request.
34
34
  *
35
35
  * @default The same headers of all requests in the batch
36
36
  */
37
- headers?: Value<StandardHeaders, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
37
+ headers?: Value<Promisable<StandardHeaders>, [readonly [StandardLinkClientInterceptorOptions<T>, ...StandardLinkClientInterceptorOptions<T>[]]]>;
38
38
  /**
39
39
  * Map the batch request items before sending them.
40
40
  *
@@ -84,19 +84,19 @@ interface ClientRetryPluginContext {
84
84
  *
85
85
  * @default 0
86
86
  */
87
- retry?: Value<number, [StandardLinkInterceptorOptions<ClientRetryPluginContext>]>;
87
+ retry?: Value<Promisable<number>, [StandardLinkInterceptorOptions<ClientRetryPluginContext>]>;
88
88
  /**
89
89
  * Delay (in ms) before retrying.
90
90
  *
91
91
  * @default (o) => o.lastEventRetry ?? 2000
92
92
  */
93
- retryDelay?: Value<number, [ClientRetryPluginAttemptOptions<ClientRetryPluginContext>]>;
93
+ retryDelay?: Value<Promisable<number>, [ClientRetryPluginAttemptOptions<ClientRetryPluginContext>]>;
94
94
  /**
95
95
  * Determine should retry or not.
96
96
  *
97
97
  * @default true
98
98
  */
99
- shouldRetry?: Value<boolean, [ClientRetryPluginAttemptOptions<ClientRetryPluginContext>]>;
99
+ shouldRetry?: Value<Promisable<boolean>, [ClientRetryPluginAttemptOptions<ClientRetryPluginContext>]>;
100
100
  /**
101
101
  * The hook called when retrying, and return the unsubscribe function.
102
102
  */
@@ -127,20 +127,20 @@ interface SimpleCsrfProtectionLinkPluginOptions<T extends ClientContext> {
127
127
  *
128
128
  * @default 'x-csrf-token'
129
129
  */
130
- headerName?: Value<string, [options: StandardLinkClientInterceptorOptions<T>]>;
130
+ headerName?: Value<Promisable<string>, [options: StandardLinkClientInterceptorOptions<T>]>;
131
131
  /**
132
132
  * The value of the header to check.
133
133
  *
134
134
  * @default 'orpc'
135
135
  *
136
136
  */
137
- headerValue?: Value<string, [options: StandardLinkClientInterceptorOptions<T>]>;
137
+ headerValue?: Value<Promisable<string>, [options: StandardLinkClientInterceptorOptions<T>]>;
138
138
  /**
139
139
  * Exclude a procedure from the plugin.
140
140
  *
141
141
  * @default false
142
142
  */
143
- exclude?: Value<boolean, [options: StandardLinkClientInterceptorOptions<T>]>;
143
+ exclude?: Value<Promisable<boolean>, [options: StandardLinkClientInterceptorOptions<T>]>;
144
144
  }
145
145
  /**
146
146
  * This plugin adds basic Cross-Site Request Forgery (CSRF) protection to your oRPC application.
@@ -1,6 +1,6 @@
1
1
  import { a as ClientContext, b as ClientOptions, d as HTTPMethod } from './client.4TS_0JaO.js';
2
- import { e as StandardLinkCodec, b as StandardLinkOptions, d as StandardLink, f as StandardLinkClient } from './client.7ZYxJok_.js';
3
- import { Segment, Value } from '@orpc/shared';
2
+ import { e as StandardLinkCodec, b as StandardLinkOptions, d as StandardLink, f as StandardLinkClient } from './client.C0KbSWlC.js';
3
+ import { Segment, Value, Promisable } from '@orpc/shared';
4
4
  import { StandardHeaders, StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
5
5
 
6
6
  declare const STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES: {
@@ -44,19 +44,19 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
44
44
  /**
45
45
  * Base url for all requests.
46
46
  */
47
- url: Value<string | URL, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
47
+ url: Value<Promisable<string | URL>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
48
48
  /**
49
49
  * The maximum length of the URL.
50
50
  *
51
51
  * @default 2083
52
52
  */
53
- maxUrlLength?: Value<number, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
53
+ maxUrlLength?: Value<Promisable<number>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
54
54
  /**
55
55
  * The method used to make the request.
56
56
  *
57
57
  * @default 'POST'
58
58
  */
59
- method?: Value<Exclude<HTTPMethod, 'HEAD'>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
59
+ method?: Value<Promisable<Exclude<HTTPMethod, 'HEAD'>>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
60
60
  /**
61
61
  * The method to use when the payload cannot safely pass to the server with method return from method function.
62
62
  * GET is not allowed, it's very dangerous.
@@ -67,7 +67,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
67
67
  /**
68
68
  * Inject headers to the request.
69
69
  */
70
- headers?: Value<StandardHeaders, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
70
+ headers?: Value<Promisable<StandardHeaders>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
71
71
  }
72
72
  declare class StandardRPCLinkCodec<T extends ClientContext> implements StandardLinkCodec<T> {
73
73
  private readonly serializer;
@@ -1,4 +1,4 @@
1
- import { Interceptor, ThrowableError } from '@orpc/shared';
1
+ import { Interceptor } from '@orpc/shared';
2
2
  import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
3
3
  import { a as ClientContext, b as ClientOptions, C as ClientLink } from './client.4TS_0JaO.mjs';
4
4
 
@@ -28,8 +28,8 @@ interface StandardLinkClientInterceptorOptions<T extends ClientContext> extends
28
28
  request: StandardRequest;
29
29
  }
30
30
  interface StandardLinkOptions<T extends ClientContext> {
31
- interceptors?: Interceptor<StandardLinkInterceptorOptions<T>, unknown, ThrowableError>[];
32
- clientInterceptors?: Interceptor<StandardLinkClientInterceptorOptions<T>, StandardLazyResponse, ThrowableError>[];
31
+ interceptors?: Interceptor<StandardLinkInterceptorOptions<T>, Promise<unknown>>[];
32
+ clientInterceptors?: Interceptor<StandardLinkClientInterceptorOptions<T>, Promise<StandardLazyResponse>>[];
33
33
  plugins?: StandardLinkPlugin<T>[];
34
34
  }
35
35
  declare class StandardLink<T extends ClientContext> implements ClientLink<T> {
@@ -1,6 +1,6 @@
1
1
  import { a as ClientContext, b as ClientOptions, d as HTTPMethod } from './client.4TS_0JaO.mjs';
2
- import { e as StandardLinkCodec, b as StandardLinkOptions, d as StandardLink, f as StandardLinkClient } from './client.ds1abV85.mjs';
3
- import { Segment, Value } from '@orpc/shared';
2
+ import { e as StandardLinkCodec, b as StandardLinkOptions, d as StandardLink, f as StandardLinkClient } from './client.BMoG_EdN.mjs';
3
+ import { Segment, Value, Promisable } from '@orpc/shared';
4
4
  import { StandardHeaders, StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
5
5
 
6
6
  declare const STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES: {
@@ -44,19 +44,19 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
44
44
  /**
45
45
  * Base url for all requests.
46
46
  */
47
- url: Value<string | URL, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
47
+ url: Value<Promisable<string | URL>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
48
48
  /**
49
49
  * The maximum length of the URL.
50
50
  *
51
51
  * @default 2083
52
52
  */
53
- maxUrlLength?: Value<number, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
53
+ maxUrlLength?: Value<Promisable<number>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
54
54
  /**
55
55
  * The method used to make the request.
56
56
  *
57
57
  * @default 'POST'
58
58
  */
59
- method?: Value<Exclude<HTTPMethod, 'HEAD'>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
59
+ method?: Value<Promisable<Exclude<HTTPMethod, 'HEAD'>>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
60
60
  /**
61
61
  * The method to use when the payload cannot safely pass to the server with method return from method function.
62
62
  * GET is not allowed, it's very dangerous.
@@ -67,7 +67,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
67
67
  /**
68
68
  * Inject headers to the request.
69
69
  */
70
- headers?: Value<StandardHeaders, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
70
+ headers?: Value<Promisable<StandardHeaders>, [options: ClientOptions<T>, path: readonly string[], input: unknown]>;
71
71
  }
72
72
  declare class StandardRPCLinkCodec<T extends ClientContext> implements StandardLinkCodec<T> {
73
73
  private readonly serializer;
@@ -1,4 +1,4 @@
1
- import { Interceptor, ThrowableError } from '@orpc/shared';
1
+ import { Interceptor } from '@orpc/shared';
2
2
  import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
3
3
  import { a as ClientContext, b as ClientOptions, C as ClientLink } from './client.4TS_0JaO.js';
4
4
 
@@ -28,8 +28,8 @@ interface StandardLinkClientInterceptorOptions<T extends ClientContext> extends
28
28
  request: StandardRequest;
29
29
  }
30
30
  interface StandardLinkOptions<T extends ClientContext> {
31
- interceptors?: Interceptor<StandardLinkInterceptorOptions<T>, unknown, ThrowableError>[];
32
- clientInterceptors?: Interceptor<StandardLinkClientInterceptorOptions<T>, StandardLazyResponse, ThrowableError>[];
31
+ interceptors?: Interceptor<StandardLinkInterceptorOptions<T>, Promise<unknown>>[];
32
+ clientInterceptors?: Interceptor<StandardLinkClientInterceptorOptions<T>, Promise<StandardLazyResponse>>[];
33
33
  plugins?: StandardLinkPlugin<T>[];
34
34
  }
35
35
  declare class StandardLink<T extends ClientContext> implements ClientLink<T> {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/client",
3
3
  "type": "module",
4
- "version": "1.2.0",
4
+ "version": "1.3.0",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -38,19 +38,24 @@
38
38
  "types": "./dist/adapters/websocket/index.d.mts",
39
39
  "import": "./dist/adapters/websocket/index.mjs",
40
40
  "default": "./dist/adapters/websocket/index.mjs"
41
+ },
42
+ "./message-port": {
43
+ "types": "./dist/adapters/message-port/index.d.mts",
44
+ "import": "./dist/adapters/message-port/index.mjs",
45
+ "default": "./dist/adapters/message-port/index.mjs"
41
46
  }
42
47
  },
43
48
  "files": [
44
49
  "dist"
45
50
  ],
46
51
  "dependencies": {
47
- "@orpc/shared": "1.2.0",
48
- "@orpc/standard-server": "1.2.0",
49
- "@orpc/standard-server-fetch": "1.2.0",
50
- "@orpc/standard-server-peer": "1.2.0"
52
+ "@orpc/shared": "1.3.0",
53
+ "@orpc/standard-server": "1.3.0",
54
+ "@orpc/standard-server-fetch": "1.3.0",
55
+ "@orpc/standard-server-peer": "1.3.0"
51
56
  },
52
57
  "devDependencies": {
53
- "zod": "^3.24.2"
58
+ "zod": "^3.25.11"
54
59
  },
55
60
  "scripts": {
56
61
  "build": "unbuild",