@orpc/client 0.0.0-next.9dfcee8 → 0.0.0-next.9e880d7
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 +2 -0
- package/dist/adapters/fetch/index.d.mts +3 -2
- package/dist/adapters/fetch/index.d.ts +3 -2
- package/dist/adapters/fetch/index.mjs +2 -1
- package/dist/adapters/standard/index.d.mts +6 -70
- package/dist/adapters/standard/index.d.ts +6 -70
- package/dist/adapters/standard/index.mjs +2 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/plugins/index.d.mts +62 -0
- package/dist/plugins/index.d.ts +62 -0
- package/dist/plugins/index.mjs +127 -0
- package/dist/shared/{client.D_CzLDyB.d.mts → client.45nqoGFI.d.mts} +1 -1
- package/dist/shared/{client.D_CzLDyB.d.ts → client.45nqoGFI.d.ts} +1 -1
- package/dist/shared/client.CS0uVV6J.d.mts +81 -0
- package/dist/shared/client.CmE0kcXu.d.ts +81 -0
- package/dist/shared/client.CvnV7_uV.mjs +12 -0
- package/dist/shared/{client.CPmBUYbj.mjs → client.cZd8JfIk.mjs} +13 -1
- package/package.json +9 -4
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
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
|
|
2
2
|
import { ToFetchRequestOptions } from '@orpc/standard-server-fetch';
|
|
3
|
-
import {
|
|
4
|
-
import { StandardLinkClient
|
|
3
|
+
import { a as ClientContext, C as ClientOptionsOut, b as ClientLink } from '../../shared/client.45nqoGFI.mjs';
|
|
4
|
+
import { b as StandardLinkClient } from '../../shared/client.CS0uVV6J.mjs';
|
|
5
|
+
import { StandardRPCLinkOptions } from '../standard/index.mjs';
|
|
5
6
|
import '@orpc/shared';
|
|
6
7
|
|
|
7
8
|
interface LinkFetchClientOptions<T extends ClientContext> extends ToFetchRequestOptions {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
|
|
2
2
|
import { ToFetchRequestOptions } from '@orpc/standard-server-fetch';
|
|
3
|
-
import {
|
|
4
|
-
import { StandardLinkClient
|
|
3
|
+
import { a as ClientContext, C as ClientOptionsOut, b as ClientLink } from '../../shared/client.45nqoGFI.js';
|
|
4
|
+
import { b as StandardLinkClient } from '../../shared/client.CmE0kcXu.js';
|
|
5
|
+
import { StandardRPCLinkOptions } from '../standard/index.js';
|
|
5
6
|
import '@orpc/shared';
|
|
6
7
|
|
|
7
8
|
interface LinkFetchClientOptions<T extends ClientContext> extends ToFetchRequestOptions {
|
|
@@ -1,8 +1,9 @@
|
|
|
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.
|
|
2
|
+
import { b as StandardRPCJsonSerializer, c as StandardRPCLinkCodec, d as StandardRPCSerializer, S as StandardLink } from '../../shared/client.cZd8JfIk.mjs';
|
|
3
3
|
import '@orpc/shared';
|
|
4
4
|
import '../../shared/client.XAn8cDTM.mjs';
|
|
5
5
|
import '@orpc/standard-server';
|
|
6
|
+
import '../../shared/client.CvnV7_uV.mjs';
|
|
6
7
|
|
|
7
8
|
class LinkFetchClient {
|
|
8
9
|
fetch;
|
|
@@ -1,72 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
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 number of retry attempts for event iterator errors 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, S as StandardLinkOptions } from '../../shared/client.CS0uVV6J.mjs';
|
|
2
|
+
export { I as InvalidEventIteratorRetryResponse, d as StandardLink, b as StandardLinkClient } from '../../shared/client.CS0uVV6J.mjs';
|
|
3
|
+
import { Segment, Value } from '@orpc/shared';
|
|
4
|
+
import { a as ClientContext, C as ClientOptionsOut } from '../../shared/client.45nqoGFI.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;
|
|
@@ -166,4 +102,4 @@ declare class StandardRPCLinkCodec<T extends ClientContext> implements StandardL
|
|
|
166
102
|
interface StandardRPCLinkOptions<T extends ClientContext> extends StandardLinkOptions<T>, StandardRPCLinkCodecOptions<T>, StandardRPCJsonSerializerOptions {
|
|
167
103
|
}
|
|
168
104
|
|
|
169
|
-
export {
|
|
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 {
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
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 number of retry attempts for event iterator errors 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, S as StandardLinkOptions } from '../../shared/client.CmE0kcXu.js';
|
|
2
|
+
export { I as InvalidEventIteratorRetryResponse, d as StandardLink, b as StandardLinkClient } from '../../shared/client.CmE0kcXu.js';
|
|
3
|
+
import { Segment, Value } from '@orpc/shared';
|
|
4
|
+
import { a as ClientContext, C as ClientOptionsOut } from '../../shared/client.45nqoGFI.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;
|
|
@@ -166,4 +102,4 @@ declare class StandardRPCLinkCodec<T extends ClientContext> implements StandardL
|
|
|
166
102
|
interface StandardRPCLinkOptions<T extends ClientContext> extends StandardLinkOptions<T>, StandardRPCLinkCodecOptions<T>, StandardRPCJsonSerializerOptions {
|
|
167
103
|
}
|
|
168
104
|
|
|
169
|
-
export {
|
|
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,5 @@
|
|
|
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.
|
|
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.cZd8JfIk.mjs';
|
|
2
2
|
import '@orpc/shared';
|
|
3
3
|
import '../../shared/client.XAn8cDTM.mjs';
|
|
4
4
|
import '@orpc/standard-server';
|
|
5
|
+
import '../../shared/client.CvnV7_uV.mjs';
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as NestedClient, b as ClientLink, I as InferClientContext,
|
|
2
|
-
export { g as Client, e as ClientOptions, f as ClientRest, E as EventIteratorReconnectOptions, d as createAutoRetryEventIterator, m as mapEventIterator } from './shared/client.
|
|
1
|
+
import { N as NestedClient, b as ClientLink, I as InferClientContext, a as ClientContext, C as ClientOptionsOut, c as ClientPromiseResult } from './shared/client.45nqoGFI.mjs';
|
|
2
|
+
export { g as Client, e as ClientOptions, f as ClientRest, E as EventIteratorReconnectOptions, d as createAutoRetryEventIterator, m as mapEventIterator } from './shared/client.45nqoGFI.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';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { N as NestedClient, b as ClientLink, I as InferClientContext,
|
|
2
|
-
export { g as Client, e as ClientOptions, f as ClientRest, E as EventIteratorReconnectOptions, d as createAutoRetryEventIterator, m as mapEventIterator } from './shared/client.
|
|
1
|
+
import { N as NestedClient, b as ClientLink, I as InferClientContext, a as ClientContext, C as ClientOptionsOut, c as ClientPromiseResult } from './shared/client.45nqoGFI.js';
|
|
2
|
+
export { g as Client, e as ClientOptions, f as ClientRest, E as EventIteratorReconnectOptions, d as createAutoRetryEventIterator, m as mapEventIterator } from './shared/client.45nqoGFI.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';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { C as ClientPlugin, S as StandardLinkOptions } from '../shared/client.CS0uVV6J.mjs';
|
|
2
|
+
export { a as CompositeClientPlugin } from '../shared/client.CS0uVV6J.mjs';
|
|
3
|
+
import { Value } from '@orpc/shared';
|
|
4
|
+
import { C as ClientOptionsOut, a as ClientContext } from '../shared/client.45nqoGFI.mjs';
|
|
5
|
+
import '@orpc/standard-server';
|
|
6
|
+
|
|
7
|
+
interface ClientRetryPluginAttemptOptions {
|
|
8
|
+
eventIteratorLastRetry: number | undefined;
|
|
9
|
+
eventIteratorLastEventId: string | undefined;
|
|
10
|
+
attemptIndex: number;
|
|
11
|
+
error: unknown;
|
|
12
|
+
}
|
|
13
|
+
interface ClientRetryPluginContext {
|
|
14
|
+
/**
|
|
15
|
+
* Maximum retry attempts before throwing
|
|
16
|
+
* Use `Number.POSITIVE_INFINITY` for infinite retries (e.g., when handling Server-Sent Events).
|
|
17
|
+
*
|
|
18
|
+
* @default 0
|
|
19
|
+
*/
|
|
20
|
+
retry?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Delay (in ms) before retrying.
|
|
23
|
+
*
|
|
24
|
+
* @default (o) => o.eventIteratorLastRetry ?? 2000
|
|
25
|
+
*/
|
|
26
|
+
retryDelay?: Value<number, [
|
|
27
|
+
attemptOptions: ClientRetryPluginAttemptOptions,
|
|
28
|
+
clientOptions: ClientOptionsOut<ClientRetryPluginContext>,
|
|
29
|
+
path: readonly string[],
|
|
30
|
+
input: unknown
|
|
31
|
+
]>;
|
|
32
|
+
/**
|
|
33
|
+
* Determine should retry or not.
|
|
34
|
+
*
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
shouldRetry?: Value<boolean, [
|
|
38
|
+
attemptOptions: ClientRetryPluginAttemptOptions,
|
|
39
|
+
clientOptions: ClientOptionsOut<ClientRetryPluginContext>,
|
|
40
|
+
path: readonly string[],
|
|
41
|
+
input: unknown
|
|
42
|
+
]>;
|
|
43
|
+
/**
|
|
44
|
+
* The hook called when retrying, and return the unsubscribe function.
|
|
45
|
+
*/
|
|
46
|
+
onRetry?: (options: ClientRetryPluginAttemptOptions, clientOptions: ClientOptionsOut<ClientRetryPluginContext>, path: readonly string[], input: unknown) => void | (() => void);
|
|
47
|
+
}
|
|
48
|
+
declare class ClientRetryPluginInvalidEventIteratorRetryResponse extends Error {
|
|
49
|
+
}
|
|
50
|
+
interface ClientRetryPluginOptions {
|
|
51
|
+
default?: ClientRetryPluginContext;
|
|
52
|
+
}
|
|
53
|
+
declare class ClientRetryPlugin<T extends ClientContext & ClientRetryPluginContext> implements ClientPlugin<T> {
|
|
54
|
+
private readonly defaultRetry;
|
|
55
|
+
private readonly defaultRetryDelay;
|
|
56
|
+
private readonly defaultShouldRetry;
|
|
57
|
+
private readonly defaultOnRetry;
|
|
58
|
+
constructor(options?: ClientRetryPluginOptions);
|
|
59
|
+
init(options: StandardLinkOptions<T>): void;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export { ClientPlugin, ClientRetryPlugin, type ClientRetryPluginAttemptOptions, type ClientRetryPluginContext, ClientRetryPluginInvalidEventIteratorRetryResponse, type ClientRetryPluginOptions };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { C as ClientPlugin, S as StandardLinkOptions } from '../shared/client.CmE0kcXu.js';
|
|
2
|
+
export { a as CompositeClientPlugin } from '../shared/client.CmE0kcXu.js';
|
|
3
|
+
import { Value } from '@orpc/shared';
|
|
4
|
+
import { C as ClientOptionsOut, a as ClientContext } from '../shared/client.45nqoGFI.js';
|
|
5
|
+
import '@orpc/standard-server';
|
|
6
|
+
|
|
7
|
+
interface ClientRetryPluginAttemptOptions {
|
|
8
|
+
eventIteratorLastRetry: number | undefined;
|
|
9
|
+
eventIteratorLastEventId: string | undefined;
|
|
10
|
+
attemptIndex: number;
|
|
11
|
+
error: unknown;
|
|
12
|
+
}
|
|
13
|
+
interface ClientRetryPluginContext {
|
|
14
|
+
/**
|
|
15
|
+
* Maximum retry attempts before throwing
|
|
16
|
+
* Use `Number.POSITIVE_INFINITY` for infinite retries (e.g., when handling Server-Sent Events).
|
|
17
|
+
*
|
|
18
|
+
* @default 0
|
|
19
|
+
*/
|
|
20
|
+
retry?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Delay (in ms) before retrying.
|
|
23
|
+
*
|
|
24
|
+
* @default (o) => o.eventIteratorLastRetry ?? 2000
|
|
25
|
+
*/
|
|
26
|
+
retryDelay?: Value<number, [
|
|
27
|
+
attemptOptions: ClientRetryPluginAttemptOptions,
|
|
28
|
+
clientOptions: ClientOptionsOut<ClientRetryPluginContext>,
|
|
29
|
+
path: readonly string[],
|
|
30
|
+
input: unknown
|
|
31
|
+
]>;
|
|
32
|
+
/**
|
|
33
|
+
* Determine should retry or not.
|
|
34
|
+
*
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
shouldRetry?: Value<boolean, [
|
|
38
|
+
attemptOptions: ClientRetryPluginAttemptOptions,
|
|
39
|
+
clientOptions: ClientOptionsOut<ClientRetryPluginContext>,
|
|
40
|
+
path: readonly string[],
|
|
41
|
+
input: unknown
|
|
42
|
+
]>;
|
|
43
|
+
/**
|
|
44
|
+
* The hook called when retrying, and return the unsubscribe function.
|
|
45
|
+
*/
|
|
46
|
+
onRetry?: (options: ClientRetryPluginAttemptOptions, clientOptions: ClientOptionsOut<ClientRetryPluginContext>, path: readonly string[], input: unknown) => void | (() => void);
|
|
47
|
+
}
|
|
48
|
+
declare class ClientRetryPluginInvalidEventIteratorRetryResponse extends Error {
|
|
49
|
+
}
|
|
50
|
+
interface ClientRetryPluginOptions {
|
|
51
|
+
default?: ClientRetryPluginContext;
|
|
52
|
+
}
|
|
53
|
+
declare class ClientRetryPlugin<T extends ClientContext & ClientRetryPluginContext> implements ClientPlugin<T> {
|
|
54
|
+
private readonly defaultRetry;
|
|
55
|
+
private readonly defaultRetryDelay;
|
|
56
|
+
private readonly defaultShouldRetry;
|
|
57
|
+
private readonly defaultOnRetry;
|
|
58
|
+
constructor(options?: ClientRetryPluginOptions);
|
|
59
|
+
init(options: StandardLinkOptions<T>): void;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export { ClientPlugin, ClientRetryPlugin, type ClientRetryPluginAttemptOptions, type ClientRetryPluginContext, ClientRetryPluginInvalidEventIteratorRetryResponse, type ClientRetryPluginOptions };
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
export { C as CompositeClientPlugin } from '../shared/client.CvnV7_uV.mjs';
|
|
2
|
+
import { isAsyncIteratorObject, value } from '@orpc/shared';
|
|
3
|
+
import { getEventMeta } from '@orpc/standard-server';
|
|
4
|
+
|
|
5
|
+
class ClientRetryPluginInvalidEventIteratorRetryResponse extends Error {
|
|
6
|
+
}
|
|
7
|
+
class ClientRetryPlugin {
|
|
8
|
+
defaultRetry;
|
|
9
|
+
defaultRetryDelay;
|
|
10
|
+
defaultShouldRetry;
|
|
11
|
+
defaultOnRetry;
|
|
12
|
+
constructor(options = {}) {
|
|
13
|
+
this.defaultRetry = options.default?.retry ?? 0;
|
|
14
|
+
this.defaultRetryDelay = options.default?.retryDelay ?? ((o) => o.eventIteratorLastRetry ?? 2e3);
|
|
15
|
+
this.defaultShouldRetry = options.default?.shouldRetry ?? true;
|
|
16
|
+
this.defaultOnRetry = options.default?.onRetry;
|
|
17
|
+
}
|
|
18
|
+
init(options) {
|
|
19
|
+
options.interceptors ??= [];
|
|
20
|
+
options.interceptors.push(async (interceptorOptions) => {
|
|
21
|
+
const maxAttempts = interceptorOptions.options.context.retry ?? this.defaultRetry;
|
|
22
|
+
const retryDelay = interceptorOptions.options.context.retryDelay ?? this.defaultRetryDelay;
|
|
23
|
+
const shouldRetry = interceptorOptions.options.context.shouldRetry ?? this.defaultShouldRetry;
|
|
24
|
+
const onRetry = interceptorOptions.options.context.onRetry ?? this.defaultOnRetry;
|
|
25
|
+
if (maxAttempts <= 0) {
|
|
26
|
+
return interceptorOptions.next();
|
|
27
|
+
}
|
|
28
|
+
let eventIteratorLastEventId = interceptorOptions.options.lastEventId;
|
|
29
|
+
let eventIteratorLastRetry;
|
|
30
|
+
let unsubscribe;
|
|
31
|
+
let attemptIndex = 0;
|
|
32
|
+
const next = async (initial) => {
|
|
33
|
+
let current = initial;
|
|
34
|
+
while (true) {
|
|
35
|
+
if (current) {
|
|
36
|
+
if (attemptIndex >= maxAttempts) {
|
|
37
|
+
throw current.error;
|
|
38
|
+
}
|
|
39
|
+
const attemptOptions = {
|
|
40
|
+
attemptIndex,
|
|
41
|
+
error: current.error,
|
|
42
|
+
eventIteratorLastEventId,
|
|
43
|
+
eventIteratorLastRetry
|
|
44
|
+
};
|
|
45
|
+
const shouldRetryBool = await value(
|
|
46
|
+
shouldRetry,
|
|
47
|
+
attemptOptions,
|
|
48
|
+
interceptorOptions.options,
|
|
49
|
+
interceptorOptions.path,
|
|
50
|
+
interceptorOptions.input
|
|
51
|
+
);
|
|
52
|
+
if (!shouldRetryBool) {
|
|
53
|
+
throw current.error;
|
|
54
|
+
}
|
|
55
|
+
unsubscribe = onRetry?.(
|
|
56
|
+
attemptOptions,
|
|
57
|
+
interceptorOptions.options,
|
|
58
|
+
interceptorOptions.path,
|
|
59
|
+
interceptorOptions.input
|
|
60
|
+
);
|
|
61
|
+
const retryDelayMs = await value(
|
|
62
|
+
retryDelay,
|
|
63
|
+
attemptOptions,
|
|
64
|
+
interceptorOptions.options,
|
|
65
|
+
interceptorOptions.path,
|
|
66
|
+
interceptorOptions.input
|
|
67
|
+
);
|
|
68
|
+
await new Promise((resolve) => setTimeout(resolve, retryDelayMs));
|
|
69
|
+
attemptIndex++;
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const newClientOptions = { ...interceptorOptions.options, lastEventId: eventIteratorLastEventId };
|
|
73
|
+
const output2 = await interceptorOptions.next({
|
|
74
|
+
...interceptorOptions,
|
|
75
|
+
options: newClientOptions
|
|
76
|
+
});
|
|
77
|
+
return output2;
|
|
78
|
+
} catch (error) {
|
|
79
|
+
if (interceptorOptions.options.signal?.aborted === true) {
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
current = { error };
|
|
83
|
+
} finally {
|
|
84
|
+
unsubscribe?.();
|
|
85
|
+
unsubscribe = void 0;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
const output = await next();
|
|
90
|
+
if (!isAsyncIteratorObject(output)) {
|
|
91
|
+
return output;
|
|
92
|
+
}
|
|
93
|
+
return async function* () {
|
|
94
|
+
let current = output;
|
|
95
|
+
try {
|
|
96
|
+
while (true) {
|
|
97
|
+
try {
|
|
98
|
+
const item = await current.next();
|
|
99
|
+
const meta = getEventMeta(item.value);
|
|
100
|
+
eventIteratorLastEventId = meta?.id ?? eventIteratorLastEventId;
|
|
101
|
+
eventIteratorLastRetry = meta?.retry ?? eventIteratorLastRetry;
|
|
102
|
+
if (item.done) {
|
|
103
|
+
return item.value;
|
|
104
|
+
}
|
|
105
|
+
yield item.value;
|
|
106
|
+
} catch (error) {
|
|
107
|
+
const meta = getEventMeta(error);
|
|
108
|
+
eventIteratorLastEventId = meta?.id ?? eventIteratorLastEventId;
|
|
109
|
+
eventIteratorLastRetry = meta?.retry ?? eventIteratorLastRetry;
|
|
110
|
+
const maybeEventIterator = await next({ error });
|
|
111
|
+
if (!isAsyncIteratorObject(maybeEventIterator)) {
|
|
112
|
+
throw new ClientRetryPluginInvalidEventIteratorRetryResponse(
|
|
113
|
+
"RetryPlugin: Expected an Event Iterator, got a non-Event Iterator"
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
current = maybeEventIterator;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
} finally {
|
|
120
|
+
await current.return?.();
|
|
121
|
+
}
|
|
122
|
+
}();
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export { ClientRetryPlugin, ClientRetryPluginInvalidEventIteratorRetryResponse };
|
|
@@ -39,4 +39,4 @@ interface EventIteratorReconnectOptions {
|
|
|
39
39
|
}
|
|
40
40
|
declare function createAutoRetryEventIterator<TYield, TReturn>(initial: AsyncIterator<TYield, TReturn, void>, reconnect: (options: EventIteratorReconnectOptions) => Promise<AsyncIterator<TYield, TReturn, void> | null>, initialLastEventId: string | undefined): AsyncGenerator<TYield, TReturn, void>;
|
|
41
41
|
|
|
42
|
-
export { type
|
|
42
|
+
export { type ClientOptionsOut as C, type EventIteratorReconnectOptions as E, type InferClientContext as I, type NestedClient as N, type ClientContext as a, type ClientLink as b, type ClientPromiseResult as c, createAutoRetryEventIterator as d, type ClientOptions as e, type ClientRest as f, type Client as g, mapEventIterator as m };
|
|
@@ -39,4 +39,4 @@ interface EventIteratorReconnectOptions {
|
|
|
39
39
|
}
|
|
40
40
|
declare function createAutoRetryEventIterator<TYield, TReturn>(initial: AsyncIterator<TYield, TReturn, void>, reconnect: (options: EventIteratorReconnectOptions) => Promise<AsyncIterator<TYield, TReturn, void> | null>, initialLastEventId: string | undefined): AsyncGenerator<TYield, TReturn, void>;
|
|
41
41
|
|
|
42
|
-
export { type
|
|
42
|
+
export { type ClientOptionsOut as C, type EventIteratorReconnectOptions as E, type InferClientContext as I, type NestedClient as N, type ClientContext as a, type ClientLink as b, type ClientPromiseResult as c, createAutoRetryEventIterator as d, type ClientOptions as e, type ClientRest as f, type Client as g, mapEventIterator as m };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Value, Interceptor } from '@orpc/shared';
|
|
2
|
+
import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
|
|
3
|
+
import { a as ClientContext, C as ClientOptionsOut, E as EventIteratorReconnectOptions, b as ClientLink } from './client.45nqoGFI.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
|
+
plugins?: ClientPlugin<T>[];
|
|
58
|
+
}
|
|
59
|
+
declare class StandardLink<T extends ClientContext> implements ClientLink<T> {
|
|
60
|
+
#private;
|
|
61
|
+
readonly codec: StandardLinkCodec<T>;
|
|
62
|
+
readonly sender: StandardLinkClient<T>;
|
|
63
|
+
private readonly eventIteratorMaxRetries;
|
|
64
|
+
private readonly eventIteratorRetryDelay;
|
|
65
|
+
private readonly eventIteratorShouldRetry;
|
|
66
|
+
private readonly interceptors;
|
|
67
|
+
private readonly clientInterceptors;
|
|
68
|
+
constructor(codec: StandardLinkCodec<T>, sender: StandardLinkClient<T>, options: StandardLinkOptions<T>);
|
|
69
|
+
call(path: readonly string[], input: unknown, options: ClientOptionsOut<T>): Promise<unknown>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
interface ClientPlugin<T extends ClientContext> {
|
|
73
|
+
init?(options: StandardLinkOptions<T>): void;
|
|
74
|
+
}
|
|
75
|
+
declare class CompositeClientPlugin<T extends ClientContext> implements ClientPlugin<T> {
|
|
76
|
+
private readonly plugins;
|
|
77
|
+
constructor(plugins?: ClientPlugin<T>[]);
|
|
78
|
+
init(options: StandardLinkOptions<T>): void;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { type ClientPlugin as C, InvalidEventIteratorRetryResponse as I, type StandardLinkOptions as S, CompositeClientPlugin as a, type StandardLinkClient as b, type StandardLinkCodec as c, StandardLink as d };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Value, Interceptor } from '@orpc/shared';
|
|
2
|
+
import { StandardRequest, StandardLazyResponse } from '@orpc/standard-server';
|
|
3
|
+
import { a as ClientContext, C as ClientOptionsOut, E as EventIteratorReconnectOptions, b as ClientLink } from './client.45nqoGFI.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
|
+
plugins?: ClientPlugin<T>[];
|
|
58
|
+
}
|
|
59
|
+
declare class StandardLink<T extends ClientContext> implements ClientLink<T> {
|
|
60
|
+
#private;
|
|
61
|
+
readonly codec: StandardLinkCodec<T>;
|
|
62
|
+
readonly sender: StandardLinkClient<T>;
|
|
63
|
+
private readonly eventIteratorMaxRetries;
|
|
64
|
+
private readonly eventIteratorRetryDelay;
|
|
65
|
+
private readonly eventIteratorShouldRetry;
|
|
66
|
+
private readonly interceptors;
|
|
67
|
+
private readonly clientInterceptors;
|
|
68
|
+
constructor(codec: StandardLinkCodec<T>, sender: StandardLinkClient<T>, options: StandardLinkOptions<T>);
|
|
69
|
+
call(path: readonly string[], input: unknown, options: ClientOptionsOut<T>): Promise<unknown>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
interface ClientPlugin<T extends ClientContext> {
|
|
73
|
+
init?(options: StandardLinkOptions<T>): void;
|
|
74
|
+
}
|
|
75
|
+
declare class CompositeClientPlugin<T extends ClientContext> implements ClientPlugin<T> {
|
|
76
|
+
private readonly plugins;
|
|
77
|
+
constructor(plugins?: ClientPlugin<T>[]);
|
|
78
|
+
init(options: StandardLinkOptions<T>): void;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { type ClientPlugin as C, InvalidEventIteratorRetryResponse as I, type StandardLinkOptions as S, CompositeClientPlugin as a, type StandardLinkClient as b, type StandardLinkCodec as c, StandardLink as d };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { intercept, isAsyncIteratorObject, value, isObject, trim, stringifyJSON } from '@orpc/shared';
|
|
2
2
|
import { c as createAutoRetryEventIterator, O as ORPCError, m as mapEventIterator, t as toORPCError } from './client.XAn8cDTM.mjs';
|
|
3
|
+
import { C as CompositeClientPlugin } from './client.CvnV7_uV.mjs';
|
|
3
4
|
import { ErrorEvent } from '@orpc/standard-server';
|
|
4
5
|
|
|
5
6
|
class InvalidEventIteratorRetryResponse extends Error {
|
|
@@ -8,6 +9,8 @@ class StandardLink {
|
|
|
8
9
|
constructor(codec, sender, options) {
|
|
9
10
|
this.codec = codec;
|
|
10
11
|
this.sender = sender;
|
|
12
|
+
const plugin = new CompositeClientPlugin(options.plugins);
|
|
13
|
+
plugin.init(options);
|
|
11
14
|
this.eventIteratorMaxRetries = options.eventIteratorMaxRetries ?? 5;
|
|
12
15
|
this.eventIteratorRetryDelay = options.eventIteratorRetryDelay ?? ((o) => o.lastRetry ?? 1e3 * 2 ** o.retryTimes);
|
|
13
16
|
this.eventIteratorShouldRetry = options.eventIteratorShouldRetry ?? true;
|
|
@@ -216,9 +219,18 @@ class StandardRPCLinkCodec {
|
|
|
216
219
|
headers;
|
|
217
220
|
async encode(path, input, options) {
|
|
218
221
|
const expectedMethod = await value(this.expectedMethod, options, path, input);
|
|
219
|
-
const headers = await value(this.headers, options, path, input);
|
|
222
|
+
const headers = { ...await value(this.headers, options, path, input) };
|
|
220
223
|
const baseUrl = await value(this.baseUrl, options, path, input);
|
|
221
224
|
const url = new URL(`${trim(baseUrl.toString(), "/")}/${path.map(encodeURIComponent).join("/")}`);
|
|
225
|
+
if (options.lastEventId !== void 0) {
|
|
226
|
+
if (Array.isArray(headers["last-event-id"])) {
|
|
227
|
+
headers["last-event-id"] = [...headers["last-event-id"], options.lastEventId];
|
|
228
|
+
} else if (headers["last-event-id"] !== void 0) {
|
|
229
|
+
headers["last-event-id"] = [headers["last-event-id"], options.lastEventId];
|
|
230
|
+
} else {
|
|
231
|
+
headers["last-event-id"] = options.lastEventId;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
222
234
|
const serialized = this.serializer.serialize(input);
|
|
223
235
|
if (expectedMethod === "GET" && !(serialized instanceof FormData) && !(serialized instanceof Blob) && !isAsyncIteratorObject(serialized)) {
|
|
224
236
|
const maxUrlLength = await value(this.maxUrlLength, options, path, input);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orpc/client",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.0-next.
|
|
4
|
+
"version": "0.0.0-next.9e880d7",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://orpc.unnoq.com",
|
|
7
7
|
"repository": {
|
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
"import": "./dist/index.mjs",
|
|
20
20
|
"default": "./dist/index.mjs"
|
|
21
21
|
},
|
|
22
|
+
"./plugins": {
|
|
23
|
+
"types": "./dist/plugins/index.d.mts",
|
|
24
|
+
"import": "./dist/plugins/index.mjs",
|
|
25
|
+
"default": "./dist/plugins/index.mjs"
|
|
26
|
+
},
|
|
22
27
|
"./standard": {
|
|
23
28
|
"types": "./dist/adapters/standard/index.d.mts",
|
|
24
29
|
"import": "./dist/adapters/standard/index.mjs",
|
|
@@ -34,9 +39,9 @@
|
|
|
34
39
|
"dist"
|
|
35
40
|
],
|
|
36
41
|
"dependencies": {
|
|
37
|
-
"@orpc/
|
|
38
|
-
"@orpc/standard-server
|
|
39
|
-
"@orpc/
|
|
42
|
+
"@orpc/shared": "0.0.0-next.9e880d7",
|
|
43
|
+
"@orpc/standard-server": "0.0.0-next.9e880d7",
|
|
44
|
+
"@orpc/standard-server-fetch": "0.0.0-next.9e880d7"
|
|
40
45
|
},
|
|
41
46
|
"devDependencies": {
|
|
42
47
|
"zod": "^3.24.2"
|