@orpc/client 0.0.0-next.6c1c681 → 0.0.0-next.6d75718

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
@@ -60,6 +60,8 @@ You can find the full documentation [here](https://orpc.unnoq.com).
60
60
  - [@orpc/vue-colada](https://www.npmjs.com/package/@orpc/vue-colada): Integration with [Pinia Colada](https://pinia-colada.esm.dev/).
61
61
  - [@orpc/openapi](https://www.npmjs.com/package/@orpc/openapi): Generate OpenAPI specs and handle OpenAPI requests.
62
62
  - [@orpc/zod](https://www.npmjs.com/package/@orpc/zod): More schemas that [Zod](https://zod.dev/) doesn't support yet.
63
+ - [@orpc/valibot](https://www.npmjs.com/package/@orpc/valibot): OpenAPI spec generation from [Valibot](https://valibot.dev/).
64
+ - [@orpc/arktype](https://www.npmjs.com/package/@orpc/arktype): OpenAPI spec generation from [ArkType](https://arktype.io/).
63
65
 
64
66
  ## `@orpc/client`
65
67
 
@@ -85,6 +87,14 @@ const client: RouterClient<typeof router> = createORPCClient(link)
85
87
  const client: ContractRouterClient<typeof contract> = createORPCClient(link)
86
88
  ```
87
89
 
90
+ ## Sponsors
91
+
92
+ <p align="center">
93
+ <a href="https://cdn.jsdelivr.net/gh/unnoq/unnoq/sponsors.svg">
94
+ <img src='https://cdn.jsdelivr.net/gh/unnoq/unnoq/sponsors.svg'/>
95
+ </a>
96
+ </p>
97
+
88
98
  ## License
89
99
 
90
100
  Distributed under the MIT License. See [LICENSE](https://github.com/unnoq/orpc/blob/main/LICENSE) for more information.
@@ -1,17 +1,18 @@
1
1
  import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
2
2
  import { ToFetchRequestOptions } from '@orpc/standard-server-fetch';
3
- import { C as ClientContext, a as ClientOptionsOut, b as ClientLink } from '../../shared/client.D_CzLDyB.mjs';
4
- import { StandardLinkClient, StandardRPCLinkOptions } from '../standard/index.mjs';
3
+ import { a as ClientContext, C as ClientOptions, b as ClientLink } from '../../shared/client.RZs5Myak.mjs';
4
+ import { b as StandardLinkClient } from '../../shared/client.CKw2tbcl.mjs';
5
+ import { StandardRPCLinkOptions } from '../standard/index.mjs';
5
6
  import '@orpc/shared';
6
7
 
7
8
  interface LinkFetchClientOptions<T extends ClientContext> extends ToFetchRequestOptions {
8
- fetch?: (request: Request, init: Record<never, never>, options: ClientOptionsOut<T>, path: readonly string[], input: unknown) => Promise<Response>;
9
+ fetch?: (request: Request, init: Record<never, never>, options: ClientOptions<T>, path: readonly string[], input: unknown) => Promise<Response>;
9
10
  }
10
11
  declare class LinkFetchClient<T extends ClientContext> implements StandardLinkClient<T> {
11
12
  private readonly fetch;
12
13
  private readonly toFetchRequestOptions;
13
14
  constructor(options: LinkFetchClientOptions<T>);
14
- call(request: StandardRequest, options: ClientOptionsOut<T>, path: readonly string[], input: unknown): Promise<StandardLazyResponse>;
15
+ call(request: StandardRequest, options: ClientOptions<T>, path: readonly string[], input: unknown): Promise<StandardLazyResponse>;
15
16
  }
16
17
 
17
18
  interface RPCLinkOptions<T extends ClientContext> extends StandardRPCLinkOptions<T>, LinkFetchClientOptions<T> {
@@ -19,11 +20,11 @@ interface RPCLinkOptions<T extends ClientContext> extends StandardRPCLinkOptions
19
20
  declare class RPCLink<T extends ClientContext> implements ClientLink<T> {
20
21
  private readonly standardLink;
21
22
  constructor(options: RPCLinkOptions<T>);
22
- call(path: readonly string[], input: unknown, options: ClientOptionsOut<T>): Promise<unknown>;
23
+ call(path: readonly string[], input: unknown, options: ClientOptions<T>): Promise<unknown>;
23
24
  }
24
25
 
25
26
  interface FetchWithContext<TClientContext extends ClientContext> {
26
- (url: URL, init: RequestInit, options: ClientOptionsOut<TClientContext>, path: readonly string[], input: unknown): Promise<Response>;
27
+ (url: URL, init: RequestInit, options: ClientOptions<TClientContext>, path: readonly string[], input: unknown): Promise<Response>;
27
28
  }
28
29
 
29
30
  export { type FetchWithContext, LinkFetchClient, type LinkFetchClientOptions, RPCLink, type RPCLinkOptions };
@@ -1,17 +1,18 @@
1
1
  import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
2
2
  import { ToFetchRequestOptions } from '@orpc/standard-server-fetch';
3
- import { C as ClientContext, a as ClientOptionsOut, b as ClientLink } from '../../shared/client.D_CzLDyB.js';
4
- import { StandardLinkClient, StandardRPCLinkOptions } from '../standard/index.js';
3
+ import { a as ClientContext, C as ClientOptions, b as ClientLink } from '../../shared/client.RZs5Myak.js';
4
+ import { b as StandardLinkClient } from '../../shared/client.Bt40CWA-.js';
5
+ import { StandardRPCLinkOptions } from '../standard/index.js';
5
6
  import '@orpc/shared';
6
7
 
7
8
  interface LinkFetchClientOptions<T extends ClientContext> extends ToFetchRequestOptions {
8
- fetch?: (request: Request, init: Record<never, never>, options: ClientOptionsOut<T>, path: readonly string[], input: unknown) => Promise<Response>;
9
+ fetch?: (request: Request, init: Record<never, never>, options: ClientOptions<T>, path: readonly string[], input: unknown) => Promise<Response>;
9
10
  }
10
11
  declare class LinkFetchClient<T extends ClientContext> implements StandardLinkClient<T> {
11
12
  private readonly fetch;
12
13
  private readonly toFetchRequestOptions;
13
14
  constructor(options: LinkFetchClientOptions<T>);
14
- call(request: StandardRequest, options: ClientOptionsOut<T>, path: readonly string[], input: unknown): Promise<StandardLazyResponse>;
15
+ call(request: StandardRequest, options: ClientOptions<T>, path: readonly string[], input: unknown): Promise<StandardLazyResponse>;
15
16
  }
16
17
 
17
18
  interface RPCLinkOptions<T extends ClientContext> extends StandardRPCLinkOptions<T>, LinkFetchClientOptions<T> {
@@ -19,11 +20,11 @@ interface RPCLinkOptions<T extends ClientContext> extends StandardRPCLinkOptions
19
20
  declare class RPCLink<T extends ClientContext> implements ClientLink<T> {
20
21
  private readonly standardLink;
21
22
  constructor(options: RPCLinkOptions<T>);
22
- call(path: readonly string[], input: unknown, options: ClientOptionsOut<T>): Promise<unknown>;
23
+ call(path: readonly string[], input: unknown, options: ClientOptions<T>): Promise<unknown>;
23
24
  }
24
25
 
25
26
  interface FetchWithContext<TClientContext extends ClientContext> {
26
- (url: URL, init: RequestInit, options: ClientOptionsOut<TClientContext>, path: readonly string[], input: unknown): Promise<Response>;
27
+ (url: URL, init: RequestInit, options: ClientOptions<TClientContext>, path: readonly string[], input: unknown): Promise<Response>;
27
28
  }
28
29
 
29
30
  export { type FetchWithContext, LinkFetchClient, type LinkFetchClientOptions, RPCLink, type RPCLinkOptions };
@@ -1,7 +1,7 @@
1
1
  import { toFetchRequest, toStandardLazyResponse } from '@orpc/standard-server-fetch';
2
- import { b as StandardRPCJsonSerializer, c as StandardRPCLinkCodec, d as StandardRPCSerializer, S as StandardLink } from '../../shared/client.CPmBUYbj.mjs';
2
+ import { b as StandardRPCJsonSerializer, c as StandardRPCLinkCodec, d as StandardRPCSerializer, S as StandardLink } from '../../shared/client.B1XjLWRe.mjs';
3
3
  import '@orpc/shared';
4
- import '../../shared/client.XAn8cDTM.mjs';
4
+ import '../../shared/client.BacCdg3F.mjs';
5
5
  import '@orpc/standard-server';
6
6
 
7
7
  class LinkFetchClient {
@@ -1,72 +1,8 @@
1
- import { Value, Interceptor, Segment } from '@orpc/shared';
2
- import { StandardRequest, StandardLazyResponse, StandardHeaders } from '@orpc/standard-server';
3
- import { C as ClientContext, a as ClientOptionsOut, E as EventIteratorReconnectOptions, b as ClientLink } from '../../shared/client.D_CzLDyB.mjs';
4
-
5
- interface StandardLinkCodec<T extends ClientContext> {
6
- encode(path: readonly string[], input: unknown, options: ClientOptionsOut<any>): Promise<StandardRequest>;
7
- decode(response: StandardLazyResponse, options: ClientOptionsOut<T>, path: readonly string[], input: unknown): Promise<unknown>;
8
- }
9
- interface StandardLinkClient<T extends ClientContext> {
10
- call(request: StandardRequest, options: ClientOptionsOut<T>, path: readonly string[], input: unknown): Promise<StandardLazyResponse>;
11
- }
12
-
13
- declare class InvalidEventIteratorRetryResponse extends Error {
14
- }
15
- interface StandardLinkOptions<T extends ClientContext> {
16
- /**
17
- * Maximum retry attempts for **consecutive failures** before throwing
18
- *
19
- * @default 5
20
- */
21
- eventIteratorMaxRetries?: Value<number, [
22
- reconnectOptions: EventIteratorReconnectOptions,
23
- options: ClientOptionsOut<T>,
24
- path: readonly string[],
25
- input: unknown
26
- ]>;
27
- /**
28
- * Delay (in ms) before retrying an event iterator call.
29
- *
30
- * @default (o) => o.lastRetry ?? (1000 * 2 ** o.retryTimes)
31
- */
32
- eventIteratorRetryDelay?: Value<number, [
33
- reconnectOptions: EventIteratorReconnectOptions,
34
- options: ClientOptionsOut<T>,
35
- path: readonly string[],
36
- input: unknown
37
- ]>;
38
- /**
39
- * Function to determine if an error is retryable.
40
- *
41
- * @default true
42
- */
43
- eventIteratorShouldRetry?: Value<boolean, [
44
- reconnectOptions: EventIteratorReconnectOptions,
45
- options: ClientOptionsOut<T>,
46
- path: readonly string[],
47
- input: unknown
48
- ]>;
49
- interceptors?: Interceptor<{
50
- path: readonly string[];
51
- input: unknown;
52
- options: ClientOptionsOut<T>;
53
- }, unknown, unknown>[];
54
- clientInterceptors?: Interceptor<{
55
- request: StandardRequest;
56
- }, StandardLazyResponse, unknown>[];
57
- }
58
- declare class StandardLink<T extends ClientContext> implements ClientLink<T> {
59
- #private;
60
- readonly codec: StandardLinkCodec<T>;
61
- readonly sender: StandardLinkClient<T>;
62
- private readonly eventIteratorMaxRetries;
63
- private readonly eventIteratorRetryDelay;
64
- private readonly eventIteratorShouldRetry;
65
- private readonly interceptors;
66
- private readonly clientInterceptors;
67
- constructor(codec: StandardLinkCodec<T>, sender: StandardLinkClient<T>, options: StandardLinkOptions<T>);
68
- call(path: readonly string[], input: unknown, options: ClientOptionsOut<T>): Promise<unknown>;
69
- }
1
+ import { c as StandardLinkCodec, a as StandardLinkOptions } from '../../shared/client.CKw2tbcl.mjs';
2
+ export { I as InvalidEventIteratorRetryResponse, d as StandardLink, b as StandardLinkClient, S as StandardLinkPlugin } from '../../shared/client.CKw2tbcl.mjs';
3
+ import { Segment, Value } from '@orpc/shared';
4
+ import { a as ClientContext, C as ClientOptions } from '../../shared/client.RZs5Myak.mjs';
5
+ import { StandardHeaders, StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
70
6
 
71
7
  declare const STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES: {
72
8
  readonly BIGINT: 0;
@@ -101,7 +37,7 @@ declare class StandardRPCSerializer {
101
37
  #private;
102
38
  private readonly jsonSerializer;
103
39
  constructor(jsonSerializer: StandardRPCJsonSerializer);
104
- serialize(data: unknown): unknown;
40
+ serialize(data: unknown): object;
105
41
  deserialize(data: unknown): unknown;
106
42
  }
107
43
 
@@ -111,7 +47,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
111
47
  * Base url for all requests.
112
48
  */
113
49
  url: Value<string | URL, [
114
- options: ClientOptionsOut<T>,
50
+ options: ClientOptions<T>,
115
51
  path: readonly string[],
116
52
  input: unknown
117
53
  ]>;
@@ -121,7 +57,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
121
57
  * @default 2083
122
58
  */
123
59
  maxUrlLength?: Value<number, [
124
- options: ClientOptionsOut<T>,
60
+ options: ClientOptions<T>,
125
61
  path: readonly string[],
126
62
  input: unknown
127
63
  ]>;
@@ -131,7 +67,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
131
67
  * @default 'POST'
132
68
  */
133
69
  method?: Value<HTTPMethod, [
134
- options: ClientOptionsOut<T>,
70
+ options: ClientOptions<T>,
135
71
  path: readonly string[],
136
72
  input: unknown
137
73
  ]>;
@@ -146,7 +82,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
146
82
  * Inject headers to the request.
147
83
  */
148
84
  headers?: Value<StandardHeaders, [
149
- options: ClientOptionsOut<T>,
85
+ options: ClientOptions<T>,
150
86
  path: readonly string[],
151
87
  input: unknown
152
88
  ]>;
@@ -159,11 +95,11 @@ declare class StandardRPCLinkCodec<T extends ClientContext> implements StandardL
159
95
  private readonly expectedMethod;
160
96
  private readonly headers;
161
97
  constructor(serializer: StandardRPCSerializer, options: StandardRPCLinkCodecOptions<T>);
162
- encode(path: readonly string[], input: unknown, options: ClientOptionsOut<any>): Promise<StandardRequest>;
98
+ encode(path: readonly string[], input: unknown, options: ClientOptions<T>): Promise<StandardRequest>;
163
99
  decode(response: StandardLazyResponse): Promise<unknown>;
164
100
  }
165
101
 
166
102
  interface StandardRPCLinkOptions<T extends ClientContext> extends StandardLinkOptions<T>, StandardRPCLinkCodecOptions<T>, StandardRPCJsonSerializerOptions {
167
103
  }
168
104
 
169
- export { InvalidEventIteratorRetryResponse, STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, StandardLink, type StandardLinkClient, type StandardLinkCodec, type StandardLinkOptions, type StandardRPCCustomJsonSerializer, type StandardRPCJsonSerialized, type StandardRPCJsonSerializedMetaItem, StandardRPCJsonSerializer, type StandardRPCJsonSerializerOptions, StandardRPCLinkCodec, type StandardRPCLinkCodecOptions, type StandardRPCLinkOptions, StandardRPCSerializer };
105
+ export { STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, StandardLinkCodec, StandardLinkOptions, type StandardRPCCustomJsonSerializer, type StandardRPCJsonSerialized, type StandardRPCJsonSerializedMetaItem, StandardRPCJsonSerializer, type StandardRPCJsonSerializerOptions, StandardRPCLinkCodec, type StandardRPCLinkCodecOptions, type StandardRPCLinkOptions, StandardRPCSerializer };
@@ -1,72 +1,8 @@
1
- import { Value, Interceptor, Segment } from '@orpc/shared';
2
- import { StandardRequest, StandardLazyResponse, StandardHeaders } from '@orpc/standard-server';
3
- import { C as ClientContext, a as ClientOptionsOut, E as EventIteratorReconnectOptions, b as ClientLink } from '../../shared/client.D_CzLDyB.js';
4
-
5
- interface StandardLinkCodec<T extends ClientContext> {
6
- encode(path: readonly string[], input: unknown, options: ClientOptionsOut<any>): Promise<StandardRequest>;
7
- decode(response: StandardLazyResponse, options: ClientOptionsOut<T>, path: readonly string[], input: unknown): Promise<unknown>;
8
- }
9
- interface StandardLinkClient<T extends ClientContext> {
10
- call(request: StandardRequest, options: ClientOptionsOut<T>, path: readonly string[], input: unknown): Promise<StandardLazyResponse>;
11
- }
12
-
13
- declare class InvalidEventIteratorRetryResponse extends Error {
14
- }
15
- interface StandardLinkOptions<T extends ClientContext> {
16
- /**
17
- * Maximum retry attempts for **consecutive failures** before throwing
18
- *
19
- * @default 5
20
- */
21
- eventIteratorMaxRetries?: Value<number, [
22
- reconnectOptions: EventIteratorReconnectOptions,
23
- options: ClientOptionsOut<T>,
24
- path: readonly string[],
25
- input: unknown
26
- ]>;
27
- /**
28
- * Delay (in ms) before retrying an event iterator call.
29
- *
30
- * @default (o) => o.lastRetry ?? (1000 * 2 ** o.retryTimes)
31
- */
32
- eventIteratorRetryDelay?: Value<number, [
33
- reconnectOptions: EventIteratorReconnectOptions,
34
- options: ClientOptionsOut<T>,
35
- path: readonly string[],
36
- input: unknown
37
- ]>;
38
- /**
39
- * Function to determine if an error is retryable.
40
- *
41
- * @default true
42
- */
43
- eventIteratorShouldRetry?: Value<boolean, [
44
- reconnectOptions: EventIteratorReconnectOptions,
45
- options: ClientOptionsOut<T>,
46
- path: readonly string[],
47
- input: unknown
48
- ]>;
49
- interceptors?: Interceptor<{
50
- path: readonly string[];
51
- input: unknown;
52
- options: ClientOptionsOut<T>;
53
- }, unknown, unknown>[];
54
- clientInterceptors?: Interceptor<{
55
- request: StandardRequest;
56
- }, StandardLazyResponse, unknown>[];
57
- }
58
- declare class StandardLink<T extends ClientContext> implements ClientLink<T> {
59
- #private;
60
- readonly codec: StandardLinkCodec<T>;
61
- readonly sender: StandardLinkClient<T>;
62
- private readonly eventIteratorMaxRetries;
63
- private readonly eventIteratorRetryDelay;
64
- private readonly eventIteratorShouldRetry;
65
- private readonly interceptors;
66
- private readonly clientInterceptors;
67
- constructor(codec: StandardLinkCodec<T>, sender: StandardLinkClient<T>, options: StandardLinkOptions<T>);
68
- call(path: readonly string[], input: unknown, options: ClientOptionsOut<T>): Promise<unknown>;
69
- }
1
+ import { c as StandardLinkCodec, a as StandardLinkOptions } from '../../shared/client.Bt40CWA-.js';
2
+ export { I as InvalidEventIteratorRetryResponse, d as StandardLink, b as StandardLinkClient, S as StandardLinkPlugin } from '../../shared/client.Bt40CWA-.js';
3
+ import { Segment, Value } from '@orpc/shared';
4
+ import { a as ClientContext, C as ClientOptions } from '../../shared/client.RZs5Myak.js';
5
+ import { StandardHeaders, StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
70
6
 
71
7
  declare const STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES: {
72
8
  readonly BIGINT: 0;
@@ -101,7 +37,7 @@ declare class StandardRPCSerializer {
101
37
  #private;
102
38
  private readonly jsonSerializer;
103
39
  constructor(jsonSerializer: StandardRPCJsonSerializer);
104
- serialize(data: unknown): unknown;
40
+ serialize(data: unknown): object;
105
41
  deserialize(data: unknown): unknown;
106
42
  }
107
43
 
@@ -111,7 +47,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
111
47
  * Base url for all requests.
112
48
  */
113
49
  url: Value<string | URL, [
114
- options: ClientOptionsOut<T>,
50
+ options: ClientOptions<T>,
115
51
  path: readonly string[],
116
52
  input: unknown
117
53
  ]>;
@@ -121,7 +57,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
121
57
  * @default 2083
122
58
  */
123
59
  maxUrlLength?: Value<number, [
124
- options: ClientOptionsOut<T>,
60
+ options: ClientOptions<T>,
125
61
  path: readonly string[],
126
62
  input: unknown
127
63
  ]>;
@@ -131,7 +67,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
131
67
  * @default 'POST'
132
68
  */
133
69
  method?: Value<HTTPMethod, [
134
- options: ClientOptionsOut<T>,
70
+ options: ClientOptions<T>,
135
71
  path: readonly string[],
136
72
  input: unknown
137
73
  ]>;
@@ -146,7 +82,7 @@ interface StandardRPCLinkCodecOptions<T extends ClientContext> {
146
82
  * Inject headers to the request.
147
83
  */
148
84
  headers?: Value<StandardHeaders, [
149
- options: ClientOptionsOut<T>,
85
+ options: ClientOptions<T>,
150
86
  path: readonly string[],
151
87
  input: unknown
152
88
  ]>;
@@ -159,11 +95,11 @@ declare class StandardRPCLinkCodec<T extends ClientContext> implements StandardL
159
95
  private readonly expectedMethod;
160
96
  private readonly headers;
161
97
  constructor(serializer: StandardRPCSerializer, options: StandardRPCLinkCodecOptions<T>);
162
- encode(path: readonly string[], input: unknown, options: ClientOptionsOut<any>): Promise<StandardRequest>;
98
+ encode(path: readonly string[], input: unknown, options: ClientOptions<T>): Promise<StandardRequest>;
163
99
  decode(response: StandardLazyResponse): Promise<unknown>;
164
100
  }
165
101
 
166
102
  interface StandardRPCLinkOptions<T extends ClientContext> extends StandardLinkOptions<T>, StandardRPCLinkCodecOptions<T>, StandardRPCJsonSerializerOptions {
167
103
  }
168
104
 
169
- export { InvalidEventIteratorRetryResponse, STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, StandardLink, type StandardLinkClient, type StandardLinkCodec, type StandardLinkOptions, type StandardRPCCustomJsonSerializer, type StandardRPCJsonSerialized, type StandardRPCJsonSerializedMetaItem, StandardRPCJsonSerializer, type StandardRPCJsonSerializerOptions, StandardRPCLinkCodec, type StandardRPCLinkCodecOptions, type StandardRPCLinkOptions, StandardRPCSerializer };
105
+ export { STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, StandardLinkCodec, StandardLinkOptions, type StandardRPCCustomJsonSerializer, type StandardRPCJsonSerialized, type StandardRPCJsonSerializedMetaItem, StandardRPCJsonSerializer, type StandardRPCJsonSerializerOptions, StandardRPCLinkCodec, type StandardRPCLinkCodecOptions, type StandardRPCLinkOptions, StandardRPCSerializer };
@@ -1,4 +1,4 @@
1
- export { I as InvalidEventIteratorRetryResponse, a as STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, S as StandardLink, b as StandardRPCJsonSerializer, c as StandardRPCLinkCodec, d as StandardRPCSerializer } from '../../shared/client.CPmBUYbj.mjs';
1
+ export { I as InvalidEventIteratorRetryResponse, a as STANDARD_RPC_JSON_SERIALIZER_BUILT_IN_TYPES, S as StandardLink, b as StandardRPCJsonSerializer, c as StandardRPCLinkCodec, d as StandardRPCSerializer } from '../../shared/client.B1XjLWRe.mjs';
2
2
  import '@orpc/shared';
3
- import '../../shared/client.XAn8cDTM.mjs';
3
+ import '../../shared/client.BacCdg3F.mjs';
4
4
  import '@orpc/standard-server';
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { N as NestedClient, b as ClientLink, I as InferClientContext, C as ClientContext, a as ClientOptionsOut, c as ClientPromiseResult } from './shared/client.D_CzLDyB.mjs';
2
- export { g as Client, e as ClientOptions, f as ClientRest, E as EventIteratorReconnectOptions, d as createAutoRetryEventIterator, m as mapEventIterator } from './shared/client.D_CzLDyB.mjs';
1
+ import { N as NestedClient, b as ClientLink, I as InferClientContext, a as ClientContext, C as ClientOptions, c as ClientPromiseResult, F as FriendlyClientOptions } from './shared/client.RZs5Myak.mjs';
2
+ export { e as Client, d as ClientRest } from './shared/client.RZs5Myak.mjs';
3
3
  import { Promisable, MaybeOptionalOptions } from '@orpc/shared';
4
4
  export { onError, onFinish, onStart, onSuccess } from '@orpc/shared';
5
5
  export { ErrorEvent } from '@orpc/standard-server';
@@ -18,8 +18,8 @@ declare function createORPCClient<T extends NestedClient<any>>(link: ClientLink<
18
18
  */
19
19
  declare class DynamicLink<TClientContext extends ClientContext> implements ClientLink<TClientContext> {
20
20
  private readonly linkResolver;
21
- constructor(linkResolver: (options: ClientOptionsOut<TClientContext>, path: readonly string[], input: unknown) => Promisable<ClientLink<TClientContext>>);
22
- call(path: readonly string[], input: unknown, options: ClientOptionsOut<TClientContext>): Promise<unknown>;
21
+ constructor(linkResolver: (options: ClientOptions<TClientContext>, path: readonly string[], input: unknown) => Promisable<ClientLink<TClientContext>>);
22
+ call(path: readonly string[], input: unknown, options: ClientOptions<TClientContext>): Promise<unknown>;
23
23
  }
24
24
 
25
25
  declare const COMMON_ORPC_ERROR_DEFS: {
@@ -127,16 +127,10 @@ type ORPCErrorJSON<TCode extends string, TData> = Pick<ORPCError<TCode, TData>,
127
127
  declare function isDefinedError<T>(error: T): error is Extract<T, ORPCError<any, any>>;
128
128
  declare function toORPCError(error: unknown): ORPCError<any, any>;
129
129
 
130
- type ConnectionStatus = 'reconnecting' | 'connected' | 'closed';
131
- interface EventIteratorState {
132
- status: ConnectionStatus;
133
- listeners: Array<(newStatus: ConnectionStatus) => void>;
134
- }
135
- declare function registerEventIteratorState(iterator: AsyncIteratorObject<unknown, unknown, void>, state: EventIteratorState): void;
136
- declare function updateEventIteratorStatus(state: EventIteratorState, status: ConnectionStatus): void;
137
- declare function onEventIteratorStatusChange(iterator: AsyncIteratorObject<unknown, unknown, void>, callback: (status: ConnectionStatus) => void, options?: {
138
- notifyImmediately?: boolean;
139
- }): () => void;
130
+ declare function mapEventIterator<TYield, TReturn, TNext, TMap = TYield | TReturn>(iterator: AsyncIterator<TYield, TReturn, TNext>, maps: {
131
+ value: (value: NoInfer<TYield | TReturn>, done: boolean | undefined) => Promise<TMap>;
132
+ error: (error: unknown) => Promise<unknown>;
133
+ }): AsyncGenerator<TMap, TMap, TNext>;
140
134
 
141
135
  type SafeResult<TOutput, TError extends Error> = [error: null, data: TOutput, isDefined: false] & {
142
136
  error: null;
@@ -152,5 +146,6 @@ type SafeResult<TOutput, TError extends Error> = [error: null, data: TOutput, is
152
146
  isDefined: true;
153
147
  };
154
148
  declare function safe<TOutput, TError extends Error>(promise: ClientPromiseResult<TOutput, TError>): Promise<SafeResult<TOutput, TError>>;
149
+ declare function resolveFriendlyClientOptions<T extends ClientContext>(options: FriendlyClientOptions<T>): ClientOptions<T>;
155
150
 
156
- export { COMMON_ORPC_ERROR_DEFS, ClientContext, ClientLink, ClientOptionsOut, ClientPromiseResult, type CommonORPCErrorCode, type ConnectionStatus, DynamicLink, type EventIteratorState, InferClientContext, NestedClient, ORPCError, type ORPCErrorCode, type ORPCErrorJSON, type ORPCErrorOptions, type SafeResult, createORPCClient, type createORPCClientOptions, fallbackORPCErrorMessage, fallbackORPCErrorStatus, isDefinedError, onEventIteratorStatusChange, registerEventIteratorState, safe, toORPCError, updateEventIteratorStatus };
151
+ export { COMMON_ORPC_ERROR_DEFS, ClientContext, ClientLink, ClientOptions, ClientPromiseResult, type CommonORPCErrorCode, DynamicLink, FriendlyClientOptions, InferClientContext, NestedClient, ORPCError, type ORPCErrorCode, type ORPCErrorJSON, type ORPCErrorOptions, type SafeResult, createORPCClient, type createORPCClientOptions, fallbackORPCErrorMessage, fallbackORPCErrorStatus, isDefinedError, mapEventIterator, resolveFriendlyClientOptions, safe, toORPCError };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { N as NestedClient, b as ClientLink, I as InferClientContext, C as ClientContext, a as ClientOptionsOut, c as ClientPromiseResult } from './shared/client.D_CzLDyB.js';
2
- export { g as Client, e as ClientOptions, f as ClientRest, E as EventIteratorReconnectOptions, d as createAutoRetryEventIterator, m as mapEventIterator } from './shared/client.D_CzLDyB.js';
1
+ import { N as NestedClient, b as ClientLink, I as InferClientContext, a as ClientContext, C as ClientOptions, c as ClientPromiseResult, F as FriendlyClientOptions } from './shared/client.RZs5Myak.js';
2
+ export { e as Client, d as ClientRest } from './shared/client.RZs5Myak.js';
3
3
  import { Promisable, MaybeOptionalOptions } from '@orpc/shared';
4
4
  export { onError, onFinish, onStart, onSuccess } from '@orpc/shared';
5
5
  export { ErrorEvent } from '@orpc/standard-server';
@@ -18,8 +18,8 @@ declare function createORPCClient<T extends NestedClient<any>>(link: ClientLink<
18
18
  */
19
19
  declare class DynamicLink<TClientContext extends ClientContext> implements ClientLink<TClientContext> {
20
20
  private readonly linkResolver;
21
- constructor(linkResolver: (options: ClientOptionsOut<TClientContext>, path: readonly string[], input: unknown) => Promisable<ClientLink<TClientContext>>);
22
- call(path: readonly string[], input: unknown, options: ClientOptionsOut<TClientContext>): Promise<unknown>;
21
+ constructor(linkResolver: (options: ClientOptions<TClientContext>, path: readonly string[], input: unknown) => Promisable<ClientLink<TClientContext>>);
22
+ call(path: readonly string[], input: unknown, options: ClientOptions<TClientContext>): Promise<unknown>;
23
23
  }
24
24
 
25
25
  declare const COMMON_ORPC_ERROR_DEFS: {
@@ -127,16 +127,10 @@ type ORPCErrorJSON<TCode extends string, TData> = Pick<ORPCError<TCode, TData>,
127
127
  declare function isDefinedError<T>(error: T): error is Extract<T, ORPCError<any, any>>;
128
128
  declare function toORPCError(error: unknown): ORPCError<any, any>;
129
129
 
130
- type ConnectionStatus = 'reconnecting' | 'connected' | 'closed';
131
- interface EventIteratorState {
132
- status: ConnectionStatus;
133
- listeners: Array<(newStatus: ConnectionStatus) => void>;
134
- }
135
- declare function registerEventIteratorState(iterator: AsyncIteratorObject<unknown, unknown, void>, state: EventIteratorState): void;
136
- declare function updateEventIteratorStatus(state: EventIteratorState, status: ConnectionStatus): void;
137
- declare function onEventIteratorStatusChange(iterator: AsyncIteratorObject<unknown, unknown, void>, callback: (status: ConnectionStatus) => void, options?: {
138
- notifyImmediately?: boolean;
139
- }): () => void;
130
+ declare function mapEventIterator<TYield, TReturn, TNext, TMap = TYield | TReturn>(iterator: AsyncIterator<TYield, TReturn, TNext>, maps: {
131
+ value: (value: NoInfer<TYield | TReturn>, done: boolean | undefined) => Promise<TMap>;
132
+ error: (error: unknown) => Promise<unknown>;
133
+ }): AsyncGenerator<TMap, TMap, TNext>;
140
134
 
141
135
  type SafeResult<TOutput, TError extends Error> = [error: null, data: TOutput, isDefined: false] & {
142
136
  error: null;
@@ -152,5 +146,6 @@ type SafeResult<TOutput, TError extends Error> = [error: null, data: TOutput, is
152
146
  isDefined: true;
153
147
  };
154
148
  declare function safe<TOutput, TError extends Error>(promise: ClientPromiseResult<TOutput, TError>): Promise<SafeResult<TOutput, TError>>;
149
+ declare function resolveFriendlyClientOptions<T extends ClientContext>(options: FriendlyClientOptions<T>): ClientOptions<T>;
155
150
 
156
- export { COMMON_ORPC_ERROR_DEFS, ClientContext, ClientLink, ClientOptionsOut, ClientPromiseResult, type CommonORPCErrorCode, type ConnectionStatus, DynamicLink, type EventIteratorState, InferClientContext, NestedClient, ORPCError, type ORPCErrorCode, type ORPCErrorJSON, type ORPCErrorOptions, type SafeResult, createORPCClient, type createORPCClientOptions, fallbackORPCErrorMessage, fallbackORPCErrorStatus, isDefinedError, onEventIteratorStatusChange, registerEventIteratorState, safe, toORPCError, updateEventIteratorStatus };
151
+ export { COMMON_ORPC_ERROR_DEFS, ClientContext, ClientLink, ClientOptions, ClientPromiseResult, type CommonORPCErrorCode, DynamicLink, FriendlyClientOptions, InferClientContext, NestedClient, ORPCError, type ORPCErrorCode, type ORPCErrorJSON, type ORPCErrorOptions, type SafeResult, createORPCClient, type createORPCClientOptions, fallbackORPCErrorMessage, fallbackORPCErrorStatus, isDefinedError, mapEventIterator, resolveFriendlyClientOptions, safe, toORPCError };
package/dist/index.mjs CHANGED
@@ -1,17 +1,41 @@
1
- import { i as isDefinedError } from './shared/client.XAn8cDTM.mjs';
2
- export { C as COMMON_ORPC_ERROR_DEFS, O as ORPCError, c as createAutoRetryEventIterator, a as fallbackORPCErrorMessage, f as fallbackORPCErrorStatus, m as mapEventIterator, o as onEventIteratorStatusChange, r as registerEventIteratorState, t as toORPCError, u as updateEventIteratorStatus } from './shared/client.XAn8cDTM.mjs';
1
+ import { i as isDefinedError } from './shared/client.BacCdg3F.mjs';
2
+ export { C as COMMON_ORPC_ERROR_DEFS, O as ORPCError, a as fallbackORPCErrorMessage, f as fallbackORPCErrorStatus, m as mapEventIterator, t as toORPCError } from './shared/client.BacCdg3F.mjs';
3
3
  export { onError, onFinish, onStart, onSuccess } from '@orpc/shared';
4
4
  export { ErrorEvent } from '@orpc/standard-server';
5
5
 
6
+ async function safe(promise) {
7
+ try {
8
+ const output = await promise;
9
+ return Object.assign(
10
+ [null, output, false],
11
+ { error: null, data: output, isDefined: false }
12
+ );
13
+ } catch (e) {
14
+ const error = e;
15
+ if (isDefinedError(error)) {
16
+ return Object.assign(
17
+ [error, void 0, true],
18
+ { error, data: void 0, isDefined: true }
19
+ );
20
+ }
21
+ return Object.assign(
22
+ [error, void 0, false],
23
+ { error, data: void 0, isDefined: false }
24
+ );
25
+ }
26
+ }
27
+ function resolveFriendlyClientOptions(options) {
28
+ return {
29
+ ...options,
30
+ context: options?.context ?? {}
31
+ // Context only optional if all fields are optional
32
+ };
33
+ }
34
+
6
35
  function createORPCClient(link, options) {
7
36
  const path = options?.path ?? [];
8
- const procedureClient = async (...[input, options2]) => {
9
- const optionsOut = {
10
- ...options2,
11
- context: options2?.context ?? {}
12
- // options.context can be undefined when all field is optional
13
- };
14
- return await link.call(path, input, optionsOut);
37
+ const procedureClient = async (...[input, options2 = {}]) => {
38
+ return await link.call(path, input, resolveFriendlyClientOptions(options2));
15
39
  };
16
40
  const recursive = new Proxy(procedureClient, {
17
41
  get(target, key) {
@@ -38,26 +62,4 @@ class DynamicLink {
38
62
  }
39
63
  }
40
64
 
41
- async function safe(promise) {
42
- try {
43
- const output = await promise;
44
- return Object.assign(
45
- [null, output, false],
46
- { error: null, data: output, isDefined: false }
47
- );
48
- } catch (e) {
49
- const error = e;
50
- if (isDefinedError(error)) {
51
- return Object.assign(
52
- [error, void 0, true],
53
- { error, data: void 0, isDefined: true }
54
- );
55
- }
56
- return Object.assign(
57
- [error, void 0, false],
58
- { error, data: void 0, isDefined: false }
59
- );
60
- }
61
- }
62
-
63
- export { DynamicLink, createORPCClient, isDefinedError, safe };
65
+ export { DynamicLink, createORPCClient, isDefinedError, resolveFriendlyClientOptions, safe };
@@ -0,0 +1,61 @@
1
+ import { Value } from '@orpc/shared';
2
+ import { S as StandardLinkPlugin, a as StandardLinkOptions } from '../shared/client.CKw2tbcl.mjs';
3
+ import { C as ClientOptions } from '../shared/client.RZs5Myak.mjs';
4
+ import '@orpc/standard-server';
5
+
6
+ interface ClientRetryPluginAttemptOptions {
7
+ lastEventRetry: number | undefined;
8
+ lastEventId: string | undefined;
9
+ attemptIndex: number;
10
+ error: unknown;
11
+ }
12
+ interface ClientRetryPluginContext {
13
+ /**
14
+ * Maximum retry attempts before throwing
15
+ * Use `Number.POSITIVE_INFINITY` for infinite retries (e.g., when handling Server-Sent Events).
16
+ *
17
+ * @default 0
18
+ */
19
+ retry?: number;
20
+ /**
21
+ * Delay (in ms) before retrying.
22
+ *
23
+ * @default (o) => o.lastEventRetry ?? 2000
24
+ */
25
+ retryDelay?: Value<number, [
26
+ attemptOptions: ClientRetryPluginAttemptOptions,
27
+ clientOptions: ClientOptions<ClientRetryPluginContext>,
28
+ path: readonly string[],
29
+ input: unknown
30
+ ]>;
31
+ /**
32
+ * Determine should retry or not.
33
+ *
34
+ * @default true
35
+ */
36
+ shouldRetry?: Value<boolean, [
37
+ attemptOptions: ClientRetryPluginAttemptOptions,
38
+ clientOptions: ClientOptions<ClientRetryPluginContext>,
39
+ path: readonly string[],
40
+ input: unknown
41
+ ]>;
42
+ /**
43
+ * The hook called when retrying, and return the unsubscribe function.
44
+ */
45
+ onRetry?: (options: ClientRetryPluginAttemptOptions, clientOptions: ClientOptions<ClientRetryPluginContext>, path: readonly string[], input: unknown) => void | (() => void);
46
+ }
47
+ declare class ClientRetryPluginInvalidEventIteratorRetryResponse extends Error {
48
+ }
49
+ interface ClientRetryPluginOptions {
50
+ default?: ClientRetryPluginContext;
51
+ }
52
+ declare class ClientRetryPlugin<T extends ClientRetryPluginContext> implements StandardLinkPlugin<T> {
53
+ private readonly defaultRetry;
54
+ private readonly defaultRetryDelay;
55
+ private readonly defaultShouldRetry;
56
+ private readonly defaultOnRetry;
57
+ constructor(options?: ClientRetryPluginOptions);
58
+ init(options: StandardLinkOptions<T>): void;
59
+ }
60
+
61
+ export { ClientRetryPlugin, type ClientRetryPluginAttemptOptions, type ClientRetryPluginContext, ClientRetryPluginInvalidEventIteratorRetryResponse, type ClientRetryPluginOptions };