@trpc/client 11.1.3-alpha-tmp-tsdown.24 → 11.1.3-alpha-tmp-tsdown.28
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/dist/{TRPCClientError.js → TRPCClientError-CGgRtttT.cjs} +14 -4
- package/dist/{TRPCClientError.mjs → TRPCClientError-COkhCKf3.mjs} +1 -1
- package/dist/TRPCClientError-COkhCKf3.mjs.map +1 -0
- package/dist/httpBatchLink-CIC9PZ_Z.cjs +267 -0
- package/dist/httpBatchLink-DIfnmmcu.mjs +238 -0
- package/dist/httpBatchLink-DIfnmmcu.mjs.map +1 -0
- package/dist/{links/HTTPBatchLinkOptions.d.mts → httpBatchLink.d-BN2Iw_cK.d.mts} +13 -5
- package/dist/httpBatchLink.d-BN2Iw_cK.d.mts.map +1 -0
- package/dist/{links/HTTPBatchLinkOptions.d.ts → httpBatchLink.d-CLAuJKNV.d.cts} +13 -5
- package/dist/httpBatchLink.d-CLAuJKNV.d.cts.map +1 -0
- package/dist/httpLink-9bpwQ15c.mjs +90 -0
- package/dist/httpLink-9bpwQ15c.mjs.map +1 -0
- package/dist/{links/httpLink.js → httpLink-BbVj_TgM.cjs} +43 -9
- package/dist/{links/httpLink.d.ts → httpLink.d-CTSOARfE.d.mts} +3 -3
- package/dist/httpLink.d-CTSOARfE.d.mts.map +1 -0
- package/dist/httpLink.d-yMKfOlTU.d.cts +23 -0
- package/dist/httpLink.d-yMKfOlTU.d.cts.map +1 -0
- package/dist/{links/internals/httpUtils.mjs → httpUtils-3pbQzhUL.mjs} +13 -4
- package/dist/httpUtils-3pbQzhUL.mjs.map +1 -0
- package/dist/{links/internals/httpUtils.js → httpUtils-Buf6jCgh.cjs} +55 -10
- package/dist/{links/internals/httpUtils.d.ts → httpUtils.d-C8wPxU79.d.mts} +3 -3
- package/dist/httpUtils.d-C8wPxU79.d.mts.map +1 -0
- package/dist/{links/internals/httpUtils.d.mts → httpUtils.d-DNRVGNHs.d.cts} +3 -3
- package/dist/httpUtils.d-DNRVGNHs.d.cts.map +1 -0
- package/dist/index.cjs +731 -0
- package/dist/index.d.cts +197 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +197 -21
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +733 -19
- package/dist/index.mjs.map +1 -0
- package/dist/links/httpBatchLink.cjs +6 -0
- package/dist/links/httpBatchLink.d.cts +6 -0
- package/dist/links/httpBatchLink.d.mts +6 -15
- package/dist/links/httpBatchLink.mjs +5 -93
- package/dist/links/httpLink.cjs +6 -0
- package/dist/links/httpLink.d.cts +6 -0
- package/dist/links/httpLink.d.mts +6 -23
- package/dist/links/httpLink.mjs +5 -78
- package/dist/links/loggerLink.cjs +3 -0
- package/dist/links/loggerLink.d.cts +4 -0
- package/dist/links/loggerLink.d.mts +4 -55
- package/dist/links/loggerLink.mjs +2 -124
- package/dist/links/splitLink.cjs +3 -0
- package/dist/links/splitLink.d.cts +4 -0
- package/dist/links/splitLink.d.mts +4 -20
- package/dist/links/splitLink.mjs +2 -25
- package/dist/links/wsLink/wsLink.cjs +6 -0
- package/dist/links/wsLink/wsLink.d.cts +5 -0
- package/dist/links/wsLink/wsLink.d.mts +5 -14
- package/dist/links/wsLink/wsLink.mjs +4 -32
- package/dist/{links/loggerLink.js → loggerLink-CsDfg5Bb.cjs} +8 -3
- package/dist/loggerLink-PGBSQFcR.mjs +125 -0
- package/dist/loggerLink-PGBSQFcR.mjs.map +1 -0
- package/dist/{links/loggerLink.d.ts → loggerLink.d-CZjK1CXm.d.mts} +2 -3
- package/dist/loggerLink.d-CZjK1CXm.d.mts.map +1 -0
- package/dist/loggerLink.d-DU855urG.d.cts +54 -0
- package/dist/loggerLink.d-DU855urG.d.cts.map +1 -0
- package/dist/splitLink-BMgxggng.cjs +58 -0
- package/dist/{links/internals/createChain.mjs → splitLink-BVblHq4n.mjs} +23 -2
- package/dist/splitLink-BVblHq4n.mjs.map +1 -0
- package/dist/{links/splitLink.d.ts → splitLink.d-BAqgq0NG.d.mts} +2 -2
- package/dist/splitLink.d-BAqgq0NG.d.mts.map +1 -0
- package/dist/splitLink.d-GdevSkGW.d.cts +20 -0
- package/dist/splitLink.d-GdevSkGW.d.cts.map +1 -0
- package/dist/{links/internals/subscriptions.d.mts → subscriptions.d-Ciljg_dH.d.cts} +1 -1
- package/dist/subscriptions.d-Ciljg_dH.d.cts.map +1 -0
- package/dist/{links/internals/subscriptions.d.ts → subscriptions.d-U92STdZl.d.mts} +1 -1
- package/dist/subscriptions.d-U92STdZl.d.mts.map +1 -0
- package/dist/types.d-DXbqQLCC.d.mts +182 -0
- package/dist/types.d-DXbqQLCC.d.mts.map +1 -0
- package/dist/types.d-DqGYG6S_.d.cts +182 -0
- package/dist/types.d-DqGYG6S_.d.cts.map +1 -0
- package/dist/{internals/transformer.js → unstable-internals-CYBH4jbF.cjs} +6 -1
- package/dist/{internals/transformer.mjs → unstable-internals-DU4WecoG.mjs} +1 -1
- package/dist/unstable-internals-DU4WecoG.mjs.map +1 -0
- package/dist/unstable-internals.cjs +3 -0
- package/dist/{internals/transformer.d.mts → unstable-internals.d-DyLd-B0J.d.mts} +1 -1
- package/dist/unstable-internals.d-DyLd-B0J.d.mts.map +1 -0
- package/dist/{internals/transformer.d.ts → unstable-internals.d-kWsZTlQq.d.cts} +1 -1
- package/dist/unstable-internals.d-kWsZTlQq.d.cts.map +1 -0
- package/dist/unstable-internals.d.cts +3 -0
- package/dist/unstable-internals.d.mts +2 -2
- package/dist/unstable-internals.mjs +1 -1
- package/dist/wsLink-DbSHOzlB.mjs +698 -0
- package/dist/wsLink-DbSHOzlB.mjs.map +1 -0
- package/dist/wsLink-DhJ50EC5.cjs +715 -0
- package/dist/wsLink.d-BqO7ltN_.d.mts +194 -0
- package/dist/wsLink.d-BqO7ltN_.d.mts.map +1 -0
- package/dist/wsLink.d-DtZjg09g.d.cts +194 -0
- package/dist/wsLink.d-DtZjg09g.d.cts.map +1 -0
- package/links/httpBatchLink/package.json +1 -1
- package/links/httpLink/package.json +1 -1
- package/links/loggerLink/package.json +1 -1
- package/links/splitLink/package.json +1 -1
- package/links/wsLink/wsLink/package.json +1 -1
- package/package.json +22 -21
- package/unstable-internals/package.json +1 -1
- package/dist/TRPCClientError.d.mts +0 -32
- package/dist/TRPCClientError.d.mts.map +0 -1
- package/dist/TRPCClientError.d.ts +0 -32
- package/dist/TRPCClientError.d.ts.map +0 -1
- package/dist/TRPCClientError.mjs.map +0 -1
- package/dist/_virtual/rolldown_runtime.mjs +0 -27
- package/dist/createTRPCClient.d.mts +0 -69
- package/dist/createTRPCClient.d.mts.map +0 -1
- package/dist/createTRPCClient.d.ts +0 -69
- package/dist/createTRPCClient.d.ts.map +0 -1
- package/dist/createTRPCClient.js +0 -48
- package/dist/createTRPCClient.mjs +0 -45
- package/dist/createTRPCClient.mjs.map +0 -1
- package/dist/createTRPCUntypedClient.d.mts +0 -8
- package/dist/createTRPCUntypedClient.d.mts.map +0 -1
- package/dist/createTRPCUntypedClient.d.ts +0 -8
- package/dist/createTRPCUntypedClient.d.ts.map +0 -1
- package/dist/createTRPCUntypedClient.js +0 -9
- package/dist/createTRPCUntypedClient.mjs +0 -10
- package/dist/createTRPCUntypedClient.mjs.map +0 -1
- package/dist/getFetch.d.mts +0 -9
- package/dist/getFetch.d.mts.map +0 -1
- package/dist/getFetch.d.ts +0 -9
- package/dist/getFetch.d.ts.map +0 -1
- package/dist/getFetch.js +0 -12
- package/dist/getFetch.mjs +0 -12
- package/dist/getFetch.mjs.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.js +0 -43
- package/dist/internals/TRPCUntypedClient.d.mts +0 -45
- package/dist/internals/TRPCUntypedClient.d.mts.map +0 -1
- package/dist/internals/TRPCUntypedClient.d.ts +0 -45
- package/dist/internals/TRPCUntypedClient.d.ts.map +0 -1
- package/dist/internals/TRPCUntypedClient.js +0 -96
- package/dist/internals/TRPCUntypedClient.mjs +0 -96
- package/dist/internals/TRPCUntypedClient.mjs.map +0 -1
- package/dist/internals/dataLoader.js +0 -106
- package/dist/internals/dataLoader.mjs +0 -106
- package/dist/internals/dataLoader.mjs.map +0 -1
- package/dist/internals/inputWithTrackedEventId.js +0 -13
- package/dist/internals/inputWithTrackedEventId.mjs +0 -13
- package/dist/internals/inputWithTrackedEventId.mjs.map +0 -1
- package/dist/internals/signals.js +0 -46
- package/dist/internals/signals.mjs +0 -44
- package/dist/internals/signals.mjs.map +0 -1
- package/dist/internals/transformer.d.mts.map +0 -1
- package/dist/internals/transformer.d.ts.map +0 -1
- package/dist/internals/transformer.mjs.map +0 -1
- package/dist/internals/types.d.mts +0 -84
- package/dist/internals/types.d.mts.map +0 -1
- package/dist/internals/types.d.ts +0 -84
- package/dist/internals/types.d.ts.map +0 -1
- package/dist/links/HTTPBatchLinkOptions.d.mts.map +0 -1
- package/dist/links/HTTPBatchLinkOptions.d.ts.map +0 -1
- package/dist/links/httpBatchLink.d.mts.map +0 -1
- package/dist/links/httpBatchLink.d.ts +0 -15
- package/dist/links/httpBatchLink.d.ts.map +0 -1
- package/dist/links/httpBatchLink.js +0 -94
- package/dist/links/httpBatchLink.mjs.map +0 -1
- package/dist/links/httpBatchStreamLink.d.mts +0 -19
- package/dist/links/httpBatchStreamLink.d.mts.map +0 -1
- package/dist/links/httpBatchStreamLink.d.ts +0 -19
- package/dist/links/httpBatchStreamLink.d.ts.map +0 -1
- package/dist/links/httpBatchStreamLink.js +0 -126
- package/dist/links/httpBatchStreamLink.mjs +0 -125
- package/dist/links/httpBatchStreamLink.mjs.map +0 -1
- package/dist/links/httpLink.d.mts.map +0 -1
- package/dist/links/httpLink.d.ts.map +0 -1
- package/dist/links/httpLink.mjs.map +0 -1
- package/dist/links/httpSubscriptionLink.d.mts +0 -29
- package/dist/links/httpSubscriptionLink.d.mts.map +0 -1
- package/dist/links/httpSubscriptionLink.d.ts +0 -29
- package/dist/links/httpSubscriptionLink.d.ts.map +0 -1
- package/dist/links/httpSubscriptionLink.js +0 -142
- package/dist/links/httpSubscriptionLink.mjs +0 -141
- package/dist/links/httpSubscriptionLink.mjs.map +0 -1
- package/dist/links/internals/contentTypes.d.mts +0 -9
- package/dist/links/internals/contentTypes.d.mts.map +0 -1
- package/dist/links/internals/contentTypes.d.ts +0 -9
- package/dist/links/internals/contentTypes.d.ts.map +0 -1
- package/dist/links/internals/contentTypes.js +0 -16
- package/dist/links/internals/contentTypes.mjs +0 -14
- package/dist/links/internals/contentTypes.mjs.map +0 -1
- package/dist/links/internals/createChain.js +0 -26
- package/dist/links/internals/createChain.mjs.map +0 -1
- package/dist/links/internals/httpUtils.d.mts.map +0 -1
- package/dist/links/internals/httpUtils.d.ts.map +0 -1
- package/dist/links/internals/httpUtils.mjs.map +0 -1
- package/dist/links/internals/subscriptions.d.mts.map +0 -1
- package/dist/links/internals/subscriptions.d.ts.map +0 -1
- package/dist/links/internals/urlWithConnectionParams.d.mts +0 -24
- package/dist/links/internals/urlWithConnectionParams.d.mts.map +0 -1
- package/dist/links/internals/urlWithConnectionParams.d.ts +0 -24
- package/dist/links/internals/urlWithConnectionParams.d.ts.map +0 -1
- package/dist/links/internals/urlWithConnectionParams.js +0 -12
- package/dist/links/internals/urlWithConnectionParams.mjs +0 -12
- package/dist/links/internals/urlWithConnectionParams.mjs.map +0 -1
- package/dist/links/localLink.d.mts +0 -21
- package/dist/links/localLink.d.mts.map +0 -1
- package/dist/links/localLink.d.ts +0 -21
- package/dist/links/localLink.d.ts.map +0 -1
- package/dist/links/localLink.js +0 -192
- package/dist/links/localLink.mjs +0 -193
- package/dist/links/localLink.mjs.map +0 -1
- package/dist/links/loggerLink.d.mts.map +0 -1
- package/dist/links/loggerLink.d.ts.map +0 -1
- package/dist/links/loggerLink.mjs.map +0 -1
- package/dist/links/retryLink.d.mts +0 -36
- package/dist/links/retryLink.d.mts.map +0 -1
- package/dist/links/retryLink.d.ts +0 -36
- package/dist/links/retryLink.d.ts.map +0 -1
- package/dist/links/retryLink.js +0 -64
- package/dist/links/retryLink.mjs +0 -64
- package/dist/links/retryLink.mjs.map +0 -1
- package/dist/links/splitLink.d.mts.map +0 -1
- package/dist/links/splitLink.d.ts.map +0 -1
- package/dist/links/splitLink.js +0 -26
- package/dist/links/splitLink.mjs.map +0 -1
- package/dist/links/types.d.mts +0 -68
- package/dist/links/types.d.mts.map +0 -1
- package/dist/links/types.d.ts +0 -68
- package/dist/links/types.d.ts.map +0 -1
- package/dist/links/wsLink/createWsClient.d.mts +0 -9
- package/dist/links/wsLink/createWsClient.d.mts.map +0 -1
- package/dist/links/wsLink/createWsClient.d.ts +0 -9
- package/dist/links/wsLink/createWsClient.d.ts.map +0 -1
- package/dist/links/wsLink/createWsClient.js +0 -9
- package/dist/links/wsLink/createWsClient.mjs +0 -10
- package/dist/links/wsLink/createWsClient.mjs.map +0 -1
- package/dist/links/wsLink/wsClient/options.d.mts +0 -69
- package/dist/links/wsLink/wsClient/options.d.mts.map +0 -1
- package/dist/links/wsLink/wsClient/options.d.ts +0 -69
- package/dist/links/wsLink/wsClient/options.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/options.js +0 -24
- package/dist/links/wsLink/wsClient/options.mjs +0 -22
- package/dist/links/wsLink/wsClient/options.mjs.map +0 -1
- package/dist/links/wsLink/wsClient/requestManager.js +0 -136
- package/dist/links/wsLink/wsClient/requestManager.mjs +0 -137
- package/dist/links/wsLink/wsClient/requestManager.mjs.map +0 -1
- package/dist/links/wsLink/wsClient/utils.js +0 -77
- package/dist/links/wsLink/wsClient/utils.mjs +0 -74
- package/dist/links/wsLink/wsClient/utils.mjs.map +0 -1
- package/dist/links/wsLink/wsClient/wsClient.d.mts +0 -101
- package/dist/links/wsLink/wsClient/wsClient.d.mts.map +0 -1
- package/dist/links/wsLink/wsClient/wsClient.d.ts +0 -101
- package/dist/links/wsLink/wsClient/wsClient.d.ts.map +0 -1
- package/dist/links/wsLink/wsClient/wsClient.js +0 -276
- package/dist/links/wsLink/wsClient/wsClient.mjs +0 -276
- package/dist/links/wsLink/wsClient/wsClient.mjs.map +0 -1
- package/dist/links/wsLink/wsClient/wsConnection.js +0 -165
- package/dist/links/wsLink/wsClient/wsConnection.mjs +0 -164
- package/dist/links/wsLink/wsClient/wsConnection.mjs.map +0 -1
- package/dist/links/wsLink/wsLink.d.mts.map +0 -1
- package/dist/links/wsLink/wsLink.d.ts +0 -14
- package/dist/links/wsLink/wsLink.d.ts.map +0 -1
- package/dist/links/wsLink/wsLink.js +0 -34
- package/dist/links/wsLink/wsLink.mjs.map +0 -1
- package/dist/links.js +0 -11
- package/dist/links.mjs +0 -11
- package/dist/node_modules/.pnpm/@oxc-project_runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js +0 -68
- package/dist/node_modules/.pnpm/@oxc-project_runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.mjs +0 -66
- package/dist/node_modules/.pnpm/@oxc-project_runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.mjs.map +0 -1
- package/dist/unstable-internals.d.ts +0 -3
- package/dist/unstable-internals.js +0 -3
- /package/dist/{_virtual/rolldown_runtime.js → chunk-DWy1uDak.cjs} +0 -0
package/dist/links/localLink.js
DELETED
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
-
const require_TRPCClientError = require('../TRPCClientError.js');
|
|
3
|
-
const require_signals = require('../internals/signals.js');
|
|
4
|
-
const require_transformer = require('../internals/transformer.js');
|
|
5
|
-
const require_inputWithTrackedEventId = require('../internals/inputWithTrackedEventId.js');
|
|
6
|
-
const require_usingCtx$1 = require('../node_modules/.pnpm/@oxc-project_runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js');
|
|
7
|
-
const __trpc_server_observable = require_rolldown_runtime.__toESM(require("@trpc/server/observable"));
|
|
8
|
-
const __trpc_server_unstable_core_do_not_import = require_rolldown_runtime.__toESM(require("@trpc/server/unstable-core-do-not-import"));
|
|
9
|
-
const __trpc_server = require_rolldown_runtime.__toESM(require("@trpc/server"));
|
|
10
|
-
const __trpc_server_rpc = require_rolldown_runtime.__toESM(require("@trpc/server/rpc"));
|
|
11
|
-
|
|
12
|
-
//#region src/links/localLink.ts
|
|
13
|
-
var import_usingCtx = require_rolldown_runtime.__toESM(require_usingCtx$1.require_usingCtx());
|
|
14
|
-
/**
|
|
15
|
-
* localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.
|
|
16
|
-
*
|
|
17
|
-
* @see https://trpc.io/docs/links/localLink
|
|
18
|
-
*/
|
|
19
|
-
function experimental_localLink(opts) {
|
|
20
|
-
const transformer = require_transformer.getTransformer(opts.transformer);
|
|
21
|
-
const transformChunk = (chunk) => {
|
|
22
|
-
if (opts.transformer) return chunk;
|
|
23
|
-
if (chunk === void 0) return chunk;
|
|
24
|
-
const serialized = JSON.stringify(transformer.input.serialize(chunk));
|
|
25
|
-
const deserialized = JSON.parse(transformer.output.deserialize(serialized));
|
|
26
|
-
return deserialized;
|
|
27
|
-
};
|
|
28
|
-
return () => ({ op }) => (0, __trpc_server_observable.observable)((observer) => {
|
|
29
|
-
let ctx = void 0;
|
|
30
|
-
const ac = new AbortController();
|
|
31
|
-
const signal = require_signals.raceAbortSignals(op.signal, ac.signal);
|
|
32
|
-
const signalPromise = require_signals.abortSignalToPromise(signal);
|
|
33
|
-
signalPromise.catch(() => {});
|
|
34
|
-
let input = op.input;
|
|
35
|
-
async function runProcedure(newInput) {
|
|
36
|
-
input = newInput;
|
|
37
|
-
ctx = await opts.createContext();
|
|
38
|
-
return (0, __trpc_server_unstable_core_do_not_import.callProcedure)({
|
|
39
|
-
router: opts.router,
|
|
40
|
-
path: op.path,
|
|
41
|
-
getRawInput: async () => newInput,
|
|
42
|
-
ctx,
|
|
43
|
-
type: op.type,
|
|
44
|
-
signal
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
function onErrorCallback(cause) {
|
|
48
|
-
if ((0, __trpc_server_unstable_core_do_not_import.isAbortError)(cause)) return;
|
|
49
|
-
opts.onError?.({
|
|
50
|
-
error: (0, __trpc_server.getTRPCErrorFromUnknown)(cause),
|
|
51
|
-
type: op.type,
|
|
52
|
-
path: op.path,
|
|
53
|
-
input,
|
|
54
|
-
ctx
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
function coerceToTRPCClientError(cause) {
|
|
58
|
-
if (require_TRPCClientError.isTRPCClientError(cause)) return cause;
|
|
59
|
-
const error = (0, __trpc_server.getTRPCErrorFromUnknown)(cause);
|
|
60
|
-
const shape = (0, __trpc_server.getTRPCErrorShape)({
|
|
61
|
-
config: opts.router._def._config,
|
|
62
|
-
ctx,
|
|
63
|
-
error,
|
|
64
|
-
input,
|
|
65
|
-
path: op.path,
|
|
66
|
-
type: op.type
|
|
67
|
-
});
|
|
68
|
-
return require_TRPCClientError.TRPCClientError.from({ error: transformChunk(shape) });
|
|
69
|
-
}
|
|
70
|
-
(0, __trpc_server_unstable_core_do_not_import.run)(async () => {
|
|
71
|
-
switch (op.type) {
|
|
72
|
-
case "query":
|
|
73
|
-
case "mutation": {
|
|
74
|
-
const result = await runProcedure(op.input);
|
|
75
|
-
if (!(0, __trpc_server_unstable_core_do_not_import.isAsyncIterable)(result)) {
|
|
76
|
-
observer.next({ result: { data: transformChunk(result) } });
|
|
77
|
-
observer.complete();
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
observer.next({ result: { data: async function* () {
|
|
81
|
-
try {
|
|
82
|
-
var _usingCtx = (0, import_usingCtx.default)();
|
|
83
|
-
const iterator = _usingCtx.a((0, __trpc_server_unstable_core_do_not_import.iteratorResource)(result));
|
|
84
|
-
const _finally = _usingCtx.u((0, __trpc_server_unstable_core_do_not_import.makeResource)({}, () => {
|
|
85
|
-
observer.complete();
|
|
86
|
-
}));
|
|
87
|
-
try {
|
|
88
|
-
while (true) {
|
|
89
|
-
const res = await Promise.race([iterator.next(), signalPromise]);
|
|
90
|
-
if (res.done) return transformChunk(res.value);
|
|
91
|
-
yield transformChunk(res.value);
|
|
92
|
-
}
|
|
93
|
-
} catch (cause) {
|
|
94
|
-
onErrorCallback(cause);
|
|
95
|
-
throw coerceToTRPCClientError(cause);
|
|
96
|
-
}
|
|
97
|
-
} catch (_) {
|
|
98
|
-
_usingCtx.e = _;
|
|
99
|
-
} finally {
|
|
100
|
-
await _usingCtx.d();
|
|
101
|
-
}
|
|
102
|
-
}() } });
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
case "subscription": try {
|
|
106
|
-
var _usingCtx3 = (0, import_usingCtx.default)();
|
|
107
|
-
const connectionState = (0, __trpc_server_observable.behaviorSubject)({
|
|
108
|
-
type: "state",
|
|
109
|
-
state: "connecting",
|
|
110
|
-
error: null
|
|
111
|
-
});
|
|
112
|
-
const connectionSub = connectionState.subscribe({ next(state) {
|
|
113
|
-
observer.next({ result: state });
|
|
114
|
-
} });
|
|
115
|
-
let lastEventId = void 0;
|
|
116
|
-
const _finally = _usingCtx3.u((0, __trpc_server_unstable_core_do_not_import.makeResource)({}, async () => {
|
|
117
|
-
observer.complete();
|
|
118
|
-
connectionState.next({
|
|
119
|
-
type: "state",
|
|
120
|
-
state: "idle",
|
|
121
|
-
error: null
|
|
122
|
-
});
|
|
123
|
-
connectionSub.unsubscribe();
|
|
124
|
-
}));
|
|
125
|
-
while (true) try {
|
|
126
|
-
var _usingCtx4 = (0, import_usingCtx.default)();
|
|
127
|
-
const result = await runProcedure(require_inputWithTrackedEventId.inputWithTrackedEventId(op.input, lastEventId));
|
|
128
|
-
if (!(0, __trpc_server_unstable_core_do_not_import.isAsyncIterable)(result)) throw new Error("Expected an async iterable");
|
|
129
|
-
const iterator = _usingCtx4.a((0, __trpc_server_unstable_core_do_not_import.iteratorResource)(result));
|
|
130
|
-
observer.next({ result: { type: "started" } });
|
|
131
|
-
connectionState.next({
|
|
132
|
-
type: "state",
|
|
133
|
-
state: "pending",
|
|
134
|
-
error: null
|
|
135
|
-
});
|
|
136
|
-
while (true) {
|
|
137
|
-
let res;
|
|
138
|
-
try {
|
|
139
|
-
res = await Promise.race([iterator.next(), signalPromise]);
|
|
140
|
-
} catch (cause) {
|
|
141
|
-
if ((0, __trpc_server_unstable_core_do_not_import.isAbortError)(cause)) return;
|
|
142
|
-
const error = (0, __trpc_server.getTRPCErrorFromUnknown)(cause);
|
|
143
|
-
if (!__trpc_server_unstable_core_do_not_import.retryableRpcCodes.includes(__trpc_server_rpc.TRPC_ERROR_CODES_BY_KEY[error.code])) throw coerceToTRPCClientError(error);
|
|
144
|
-
onErrorCallback(error);
|
|
145
|
-
connectionState.next({
|
|
146
|
-
type: "state",
|
|
147
|
-
state: "connecting",
|
|
148
|
-
error: coerceToTRPCClientError(error)
|
|
149
|
-
});
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
if (res.done) return;
|
|
153
|
-
let chunk;
|
|
154
|
-
if ((0, __trpc_server.isTrackedEnvelope)(res.value)) {
|
|
155
|
-
lastEventId = res.value[0];
|
|
156
|
-
chunk = {
|
|
157
|
-
id: res.value[0],
|
|
158
|
-
data: {
|
|
159
|
-
id: res.value[0],
|
|
160
|
-
data: res.value[1]
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
} else chunk = { data: res.value };
|
|
164
|
-
observer.next({ result: {
|
|
165
|
-
...chunk,
|
|
166
|
-
data: transformChunk(chunk.data)
|
|
167
|
-
} });
|
|
168
|
-
}
|
|
169
|
-
} catch (_) {
|
|
170
|
-
_usingCtx4.e = _;
|
|
171
|
-
} finally {
|
|
172
|
-
await _usingCtx4.d();
|
|
173
|
-
}
|
|
174
|
-
break;
|
|
175
|
-
} catch (_) {
|
|
176
|
-
_usingCtx3.e = _;
|
|
177
|
-
} finally {
|
|
178
|
-
_usingCtx3.d();
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}).catch((cause) => {
|
|
182
|
-
onErrorCallback(cause);
|
|
183
|
-
observer.error(coerceToTRPCClientError(cause));
|
|
184
|
-
});
|
|
185
|
-
return () => {
|
|
186
|
-
ac.abort();
|
|
187
|
-
};
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
//#endregion
|
|
192
|
-
exports.experimental_localLink = experimental_localLink;
|
package/dist/links/localLink.mjs
DELETED
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { __toESM } from "../_virtual/rolldown_runtime.mjs";
|
|
2
|
-
import { TRPCClientError, isTRPCClientError } from "../TRPCClientError.mjs";
|
|
3
|
-
import { abortSignalToPromise, raceAbortSignals } from "../internals/signals.mjs";
|
|
4
|
-
import { getTransformer } from "../internals/transformer.mjs";
|
|
5
|
-
import { inputWithTrackedEventId } from "../internals/inputWithTrackedEventId.mjs";
|
|
6
|
-
import { require_usingCtx } from "../node_modules/.pnpm/@oxc-project_runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.mjs";
|
|
7
|
-
import { behaviorSubject, observable } from "@trpc/server/observable";
|
|
8
|
-
import { callProcedure, isAbortError, isAsyncIterable, iteratorResource, makeResource, retryableRpcCodes, run } from "@trpc/server/unstable-core-do-not-import";
|
|
9
|
-
import { getTRPCErrorFromUnknown, getTRPCErrorShape, isTrackedEnvelope } from "@trpc/server";
|
|
10
|
-
import { TRPC_ERROR_CODES_BY_KEY } from "@trpc/server/rpc";
|
|
11
|
-
|
|
12
|
-
//#region src/links/localLink.ts
|
|
13
|
-
var import_usingCtx = __toESM(require_usingCtx());
|
|
14
|
-
/**
|
|
15
|
-
* localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.
|
|
16
|
-
*
|
|
17
|
-
* @see https://trpc.io/docs/links/localLink
|
|
18
|
-
*/
|
|
19
|
-
function experimental_localLink(opts) {
|
|
20
|
-
const transformer = getTransformer(opts.transformer);
|
|
21
|
-
const transformChunk = (chunk) => {
|
|
22
|
-
if (opts.transformer) return chunk;
|
|
23
|
-
if (chunk === void 0) return chunk;
|
|
24
|
-
const serialized = JSON.stringify(transformer.input.serialize(chunk));
|
|
25
|
-
const deserialized = JSON.parse(transformer.output.deserialize(serialized));
|
|
26
|
-
return deserialized;
|
|
27
|
-
};
|
|
28
|
-
return () => ({ op }) => observable((observer) => {
|
|
29
|
-
let ctx = void 0;
|
|
30
|
-
const ac = new AbortController();
|
|
31
|
-
const signal = raceAbortSignals(op.signal, ac.signal);
|
|
32
|
-
const signalPromise = abortSignalToPromise(signal);
|
|
33
|
-
signalPromise.catch(() => {});
|
|
34
|
-
let input = op.input;
|
|
35
|
-
async function runProcedure(newInput) {
|
|
36
|
-
input = newInput;
|
|
37
|
-
ctx = await opts.createContext();
|
|
38
|
-
return callProcedure({
|
|
39
|
-
router: opts.router,
|
|
40
|
-
path: op.path,
|
|
41
|
-
getRawInput: async () => newInput,
|
|
42
|
-
ctx,
|
|
43
|
-
type: op.type,
|
|
44
|
-
signal
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
function onErrorCallback(cause) {
|
|
48
|
-
if (isAbortError(cause)) return;
|
|
49
|
-
opts.onError?.({
|
|
50
|
-
error: getTRPCErrorFromUnknown(cause),
|
|
51
|
-
type: op.type,
|
|
52
|
-
path: op.path,
|
|
53
|
-
input,
|
|
54
|
-
ctx
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
function coerceToTRPCClientError(cause) {
|
|
58
|
-
if (isTRPCClientError(cause)) return cause;
|
|
59
|
-
const error = getTRPCErrorFromUnknown(cause);
|
|
60
|
-
const shape = getTRPCErrorShape({
|
|
61
|
-
config: opts.router._def._config,
|
|
62
|
-
ctx,
|
|
63
|
-
error,
|
|
64
|
-
input,
|
|
65
|
-
path: op.path,
|
|
66
|
-
type: op.type
|
|
67
|
-
});
|
|
68
|
-
return TRPCClientError.from({ error: transformChunk(shape) });
|
|
69
|
-
}
|
|
70
|
-
run(async () => {
|
|
71
|
-
switch (op.type) {
|
|
72
|
-
case "query":
|
|
73
|
-
case "mutation": {
|
|
74
|
-
const result = await runProcedure(op.input);
|
|
75
|
-
if (!isAsyncIterable(result)) {
|
|
76
|
-
observer.next({ result: { data: transformChunk(result) } });
|
|
77
|
-
observer.complete();
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
observer.next({ result: { data: async function* () {
|
|
81
|
-
try {
|
|
82
|
-
var _usingCtx = (0, import_usingCtx.default)();
|
|
83
|
-
const iterator = _usingCtx.a(iteratorResource(result));
|
|
84
|
-
const _finally = _usingCtx.u(makeResource({}, () => {
|
|
85
|
-
observer.complete();
|
|
86
|
-
}));
|
|
87
|
-
try {
|
|
88
|
-
while (true) {
|
|
89
|
-
const res = await Promise.race([iterator.next(), signalPromise]);
|
|
90
|
-
if (res.done) return transformChunk(res.value);
|
|
91
|
-
yield transformChunk(res.value);
|
|
92
|
-
}
|
|
93
|
-
} catch (cause) {
|
|
94
|
-
onErrorCallback(cause);
|
|
95
|
-
throw coerceToTRPCClientError(cause);
|
|
96
|
-
}
|
|
97
|
-
} catch (_) {
|
|
98
|
-
_usingCtx.e = _;
|
|
99
|
-
} finally {
|
|
100
|
-
await _usingCtx.d();
|
|
101
|
-
}
|
|
102
|
-
}() } });
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
case "subscription": try {
|
|
106
|
-
var _usingCtx3 = (0, import_usingCtx.default)();
|
|
107
|
-
const connectionState = behaviorSubject({
|
|
108
|
-
type: "state",
|
|
109
|
-
state: "connecting",
|
|
110
|
-
error: null
|
|
111
|
-
});
|
|
112
|
-
const connectionSub = connectionState.subscribe({ next(state) {
|
|
113
|
-
observer.next({ result: state });
|
|
114
|
-
} });
|
|
115
|
-
let lastEventId = void 0;
|
|
116
|
-
const _finally = _usingCtx3.u(makeResource({}, async () => {
|
|
117
|
-
observer.complete();
|
|
118
|
-
connectionState.next({
|
|
119
|
-
type: "state",
|
|
120
|
-
state: "idle",
|
|
121
|
-
error: null
|
|
122
|
-
});
|
|
123
|
-
connectionSub.unsubscribe();
|
|
124
|
-
}));
|
|
125
|
-
while (true) try {
|
|
126
|
-
var _usingCtx4 = (0, import_usingCtx.default)();
|
|
127
|
-
const result = await runProcedure(inputWithTrackedEventId(op.input, lastEventId));
|
|
128
|
-
if (!isAsyncIterable(result)) throw new Error("Expected an async iterable");
|
|
129
|
-
const iterator = _usingCtx4.a(iteratorResource(result));
|
|
130
|
-
observer.next({ result: { type: "started" } });
|
|
131
|
-
connectionState.next({
|
|
132
|
-
type: "state",
|
|
133
|
-
state: "pending",
|
|
134
|
-
error: null
|
|
135
|
-
});
|
|
136
|
-
while (true) {
|
|
137
|
-
let res;
|
|
138
|
-
try {
|
|
139
|
-
res = await Promise.race([iterator.next(), signalPromise]);
|
|
140
|
-
} catch (cause) {
|
|
141
|
-
if (isAbortError(cause)) return;
|
|
142
|
-
const error = getTRPCErrorFromUnknown(cause);
|
|
143
|
-
if (!retryableRpcCodes.includes(TRPC_ERROR_CODES_BY_KEY[error.code])) throw coerceToTRPCClientError(error);
|
|
144
|
-
onErrorCallback(error);
|
|
145
|
-
connectionState.next({
|
|
146
|
-
type: "state",
|
|
147
|
-
state: "connecting",
|
|
148
|
-
error: coerceToTRPCClientError(error)
|
|
149
|
-
});
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
if (res.done) return;
|
|
153
|
-
let chunk;
|
|
154
|
-
if (isTrackedEnvelope(res.value)) {
|
|
155
|
-
lastEventId = res.value[0];
|
|
156
|
-
chunk = {
|
|
157
|
-
id: res.value[0],
|
|
158
|
-
data: {
|
|
159
|
-
id: res.value[0],
|
|
160
|
-
data: res.value[1]
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
} else chunk = { data: res.value };
|
|
164
|
-
observer.next({ result: {
|
|
165
|
-
...chunk,
|
|
166
|
-
data: transformChunk(chunk.data)
|
|
167
|
-
} });
|
|
168
|
-
}
|
|
169
|
-
} catch (_) {
|
|
170
|
-
_usingCtx4.e = _;
|
|
171
|
-
} finally {
|
|
172
|
-
await _usingCtx4.d();
|
|
173
|
-
}
|
|
174
|
-
break;
|
|
175
|
-
} catch (_) {
|
|
176
|
-
_usingCtx3.e = _;
|
|
177
|
-
} finally {
|
|
178
|
-
_usingCtx3.d();
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}).catch((cause) => {
|
|
182
|
-
onErrorCallback(cause);
|
|
183
|
-
observer.error(coerceToTRPCClientError(cause));
|
|
184
|
-
});
|
|
185
|
-
return () => {
|
|
186
|
-
ac.abort();
|
|
187
|
-
};
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
//#endregion
|
|
192
|
-
export { experimental_localLink };
|
|
193
|
-
//# sourceMappingURL=localLink.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"localLink.mjs","names":["opts: LocalLinkOptions<TRouter>","chunk: unknown","ctx: inferRouterContext<TRouter> | undefined","newInput: unknown","cause: unknown","lastEventId: string | undefined","chunk: TRPCResult<unknown>"],"sources":["../../src/links/localLink.ts"],"sourcesContent":["import {\n getTRPCErrorFromUnknown,\n getTRPCErrorShape,\n isTrackedEnvelope,\n} from '@trpc/server';\nimport { behaviorSubject, observable } from '@trpc/server/observable';\nimport { TRPC_ERROR_CODES_BY_KEY, type TRPCResult } from '@trpc/server/rpc';\nimport {\n callProcedure,\n isAbortError,\n isAsyncIterable,\n iteratorResource,\n makeResource,\n retryableRpcCodes,\n run,\n type AnyRouter,\n type ErrorHandlerOptions,\n type inferClientTypes,\n type inferRouterContext,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { inputWithTrackedEventId } from '../internals/inputWithTrackedEventId';\nimport { abortSignalToPromise, raceAbortSignals } from '../internals/signals';\nimport { getTransformer } from '../internals/transformer';\nimport type { TransformerOptions } from '../internals/transformer';\nimport { isTRPCClientError, TRPCClientError } from '../TRPCClientError';\nimport type { TRPCConnectionState } from './internals/subscriptions';\nimport type { TRPCLink } from './types';\n\nexport type LocalLinkOptions<TRouter extends AnyRouter> = {\n router: TRouter;\n createContext: () => Promise<inferRouterContext<TRouter>>;\n onError?: (opts: ErrorHandlerOptions<inferRouterContext<TRouter>>) => void;\n} & TransformerOptions<inferClientTypes<TRouter>>;\n\n/**\n * localLink is a terminating link that allows you to make tRPC procedure calls directly in your application without going through HTTP.\n *\n * @see https://trpc.io/docs/links/localLink\n */\nexport function experimental_localLink<TRouter extends AnyRouter>(\n opts: LocalLinkOptions<TRouter>,\n): TRPCLink<TRouter> {\n const transformer = getTransformer(opts.transformer);\n\n const transformChunk = (chunk: unknown) => {\n if (opts.transformer) {\n // assume transformer will do the right thing\n return chunk;\n }\n // Special case for undefined, because `JSON.stringify(undefined)` throws\n if (chunk === undefined) {\n return chunk;\n }\n const serialized = JSON.stringify(transformer.input.serialize(chunk));\n const deserialized = JSON.parse(transformer.output.deserialize(serialized));\n return deserialized;\n };\n\n return () =>\n ({ op }) =>\n observable((observer) => {\n let ctx: inferRouterContext<TRouter> | undefined = undefined;\n const ac = new AbortController();\n\n const signal = raceAbortSignals(op.signal, ac.signal);\n const signalPromise = abortSignalToPromise(signal);\n\n signalPromise.catch(() => {\n // prevent unhandled rejection\n });\n\n let input = op.input;\n async function runProcedure(newInput: unknown): Promise<unknown> {\n input = newInput;\n\n ctx = await opts.createContext();\n\n return callProcedure({\n router: opts.router,\n path: op.path,\n getRawInput: async () => newInput,\n ctx,\n type: op.type,\n signal,\n });\n }\n\n function onErrorCallback(cause: unknown) {\n if (isAbortError(cause)) {\n return;\n }\n opts.onError?.({\n error: getTRPCErrorFromUnknown(cause),\n type: op.type,\n path: op.path,\n input,\n ctx,\n });\n }\n\n function coerceToTRPCClientError(cause: unknown) {\n if (isTRPCClientError<TRouter>(cause)) {\n return cause;\n }\n const error = getTRPCErrorFromUnknown(cause);\n\n const shape = getTRPCErrorShape({\n config: opts.router._def._config,\n ctx,\n error,\n input,\n path: op.path,\n type: op.type,\n });\n return TRPCClientError.from({\n error: transformChunk(shape),\n });\n }\n\n run(async () => {\n switch (op.type) {\n case 'query':\n case 'mutation': {\n const result = await runProcedure(op.input);\n if (!isAsyncIterable(result)) {\n observer.next({\n result: { data: transformChunk(result) },\n });\n observer.complete();\n break;\n }\n\n observer.next({\n result: {\n data: (async function* () {\n await using iterator = iteratorResource(result);\n using _finally = makeResource({}, () => {\n observer.complete();\n });\n try {\n while (true) {\n const res = await Promise.race([\n iterator.next(),\n signalPromise,\n ]);\n if (res.done) {\n return transformChunk(res.value);\n }\n yield transformChunk(res.value);\n }\n } catch (cause) {\n onErrorCallback(cause);\n throw coerceToTRPCClientError(cause);\n }\n })(),\n },\n });\n break;\n }\n case 'subscription': {\n const connectionState = behaviorSubject<\n TRPCConnectionState<TRPCClientError<any>>\n >({\n type: 'state',\n state: 'connecting',\n error: null,\n });\n\n const connectionSub = connectionState.subscribe({\n next(state) {\n observer.next({\n result: state,\n });\n },\n });\n let lastEventId: string | undefined = undefined;\n\n using _finally = makeResource({}, async () => {\n observer.complete();\n\n connectionState.next({\n type: 'state',\n state: 'idle',\n error: null,\n });\n connectionSub.unsubscribe();\n });\n while (true) {\n const result = await runProcedure(\n inputWithTrackedEventId(op.input, lastEventId),\n );\n if (!isAsyncIterable(result)) {\n throw new Error('Expected an async iterable');\n }\n await using iterator = iteratorResource(result);\n\n observer.next({\n result: {\n type: 'started',\n },\n });\n connectionState.next({\n type: 'state',\n state: 'pending',\n error: null,\n });\n\n // Use a while loop to handle errors and reconnects\n while (true) {\n let res;\n try {\n res = await Promise.race([iterator.next(), signalPromise]);\n } catch (cause) {\n if (isAbortError(cause)) {\n return;\n }\n const error = getTRPCErrorFromUnknown(cause);\n\n if (\n !retryableRpcCodes.includes(\n TRPC_ERROR_CODES_BY_KEY[error.code],\n )\n ) {\n throw coerceToTRPCClientError(error);\n }\n\n onErrorCallback(error);\n connectionState.next({\n type: 'state',\n state: 'connecting',\n error: coerceToTRPCClientError(error),\n });\n\n break;\n }\n\n if (res.done) {\n return;\n }\n let chunk: TRPCResult<unknown>;\n if (isTrackedEnvelope(res.value)) {\n lastEventId = res.value[0];\n\n chunk = {\n id: res.value[0],\n data: {\n id: res.value[0],\n data: res.value[1],\n },\n };\n } else {\n chunk = {\n data: res.value,\n };\n }\n\n observer.next({\n result: {\n ...chunk,\n data: transformChunk(chunk.data),\n },\n });\n }\n }\n break;\n }\n }\n }).catch((cause) => {\n onErrorCallback(cause);\n observer.error(coerceToTRPCClientError(cause));\n });\n\n return () => {\n ac.abort();\n };\n });\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loggerLink.d.mts","names":[],"sources":["../../src/links/loggerLink.ts"],"sourcesContent":[],"mappings":";;;;;KAeK,YAAA;;EAAA,KAAA,EAAA,CAAA,GAAA,IAAY,EAAA,GAAA,EAAA,EAAA,GAAA,IAAA;AAAA,CAAA;KAKZ,eAAe,CAAA,gBAAiB,qBAAjB,CAAA,GAAA;EAAA,SAAiB,EAAA,MAAA;EAAqB,MAIC,EAAjD,uBAAiD,CAAA,OAAA,EAAhB,eAAgB,CAAA,OAAA,CAAA,CAAA,GACjD,eADiD,CACjC,OADiC,CAAA;CAAO,GAAA,CAG7D,SAHsC,GAAA;EAAe,SAAhD,EAAA,IAAA;CAAuB,CAAA;KAM5B,SALK,CAAA,gBAKqB,SALrB,CAAA,GAAA,CAAA,IAAA,EAMF,eANE,CAMc,OANd,CAAA,EAAA,GAAA,OAAA;KASL,mBAPA,CAAA,gBAOoC,SAPpC,CAAA,GAOiD,SAPjD,GAAA,CAAA;EAAS;AAAA;;EAGA,SAAiB,EAAA,MAAA;EAAS,MAChB,EAWZ,uBAXY,CAAA,OAAA,EAWqB,eAXrB,CAWqC,OAXrC,CAAA,CAAA,GAYZ,eAZY,CAYI,OAZJ,CAAA;EAAO,SAAvB,EAAA,MAAA;AAAe,CAAA,GAAA;EAGlB;;;EAA6C,SAAI,EAAA,IAAA;CAAS,CAAA;KAoB1D,YAZwC,CAAA,gBAYX,SAZW,CAAA,GAAA,CAAA,IAAA,EAarC,mBAbqC,CAajB,OAbiB,CAAA,EAAA,GAAA,IAAA;KAgBxC,SAAA,GAhBO,MAAA,GAAA,KAAA,GAAA,MAAA;AACgB,UAiBX,iBAjBW,CAAA,gBAiBuB,SAjBvB,CAAA,CAAA;EAAO,MAAvB,CAAA,EAkBD,YAlBC,CAkBY,OAlBZ,CAAA;EAAe,OAAA,CAAA,EAmBf,SAnBe,CAmBL,OAnBK,CAAA;EAWtB;;;EAAsC,OACf,CAAA,EAWhB,YAXgB;EAAO;AAAR;AAAA;AAK3B;EAAkC,SAAA,CAAA,EAWpB,SAXoB;EAAA;;;EACX,WACD,CAAA,EAAA,OAAA;;;;AASC;AA8IP,iBAAA,UAAU,CAAA,gBAAiB,SAAjB,GAA6B,SAA7B,CAAA,CAAA,IAAA,CAAA,EAClB,iBADkB,CACA,OADA,CAAA,CAAA,EAEvB,QAFuB,CAEd,OAFc,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loggerLink.d.ts","names":[],"sources":["../../src/links/loggerLink.ts"],"sourcesContent":[],"mappings":";;;;;KAeK,YAAA;;EAAA,KAAA,EAAA,CAAA,GAAA,IAAY,EAAA,GAAA,EAAA,EAAA,GAAA,IAAA;AAAA,CAAA;KAKZ,eAAe,CAAA,gBAAiB,qBAAjB,CAAA,GAAA;EAAA,SAAiB,EAAA,MAAA;EAAqB,MAIC,EAAjD,uBAAiD,CAAA,OAAA,EAAhB,eAAgB,CAAA,OAAA,CAAA,CAAA,GACjD,eADiD,CACjC,OADiC,CAAA;CAAO,GAAA,CAG7D,SAHsC,GAAA;EAAe,SAAhD,EAAA,IAAA;CAAuB,CAAA;KAM5B,SALK,CAAA,gBAKqB,SALrB,CAAA,GAAA,CAAA,IAAA,EAMF,eANE,CAMc,OANd,CAAA,EAAA,GAAA,OAAA;KASL,mBAPA,CAAA,gBAOoC,SAPpC,CAAA,GAOiD,SAPjD,GAAA,CAAA;EAAS;AAAA;;EAGA,SAAiB,EAAA,MAAA;EAAS,MAChB,EAWZ,uBAXY,CAAA,OAAA,EAWqB,eAXrB,CAWqC,OAXrC,CAAA,CAAA,GAYZ,eAZY,CAYI,OAZJ,CAAA;EAAO,SAAvB,EAAA,MAAA;AAAe,CAAA,GAAA;EAGlB;;;EAA6C,SAAI,EAAA,IAAA;CAAS,CAAA;KAoB1D,YAZwC,CAAA,gBAYX,SAZW,CAAA,GAAA,CAAA,IAAA,EAarC,mBAbqC,CAajB,OAbiB,CAAA,EAAA,GAAA,IAAA;KAgBxC,SAAA,GAhBO,MAAA,GAAA,KAAA,GAAA,MAAA;AACgB,UAiBX,iBAjBW,CAAA,gBAiBuB,SAjBvB,CAAA,CAAA;EAAO,MAAvB,CAAA,EAkBD,YAlBC,CAkBY,OAlBZ,CAAA;EAAe,OAAA,CAAA,EAmBf,SAnBe,CAmBL,OAnBK,CAAA;EAWtB;;;EAAsC,OACf,CAAA,EAWhB,YAXgB;EAAO;AAAR;AAAA;AAK3B;EAAkC,SAAA,CAAA,EAWpB,SAXoB;EAAA;;;EACX,WACD,CAAA,EAAA,OAAA;;;;AASC;AA8IP,iBAAA,UAAU,CAAA,gBAAiB,SAAjB,GAA6B,SAA7B,CAAA,CAAA,IAAA,CAAA,EAClB,iBADkB,CACA,OADA,CAAA,CAAA,EAEvB,QAFuB,CAEd,OAFc,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loggerLink.mjs","names":["value: unknown","opts: LoggerLinkFnOptions<any> & {\n colorMode: ColorMode;\n withContext?: boolean;\n }","parts: string[]","args: any[]","fn: 'error' | 'log'","opts: LoggerLinkOptions<TRouter>","result:\n | OperationResultEnvelope<unknown, TRPCClientError<TRouter>>\n | TRPCClientError<TRouter>"],"sources":["../../src/links/loggerLink.ts"],"sourcesContent":["/// <reference lib=\"dom.iterable\" />\n\n// `dom.iterable` types are explicitly required for extracting `FormData` values,\n// as all implementations of `Symbol.iterable` are separated from the main `dom` types.\n// Using triple-slash directive makes sure that it will be available,\n// even if end-user `tsconfig.json` omits it in the `lib` array.\n\nimport { observable, tap } from '@trpc/server/observable';\nimport type {\n AnyRouter,\n InferrableClientTypes,\n} from '@trpc/server/unstable-core-do-not-import';\nimport type { TRPCClientError } from '../TRPCClientError';\nimport type { Operation, OperationResultEnvelope, TRPCLink } from './types';\n\ntype ConsoleEsque = {\n log: (...args: any[]) => void;\n error: (...args: any[]) => void;\n};\n\ntype EnableFnOptions<TRouter extends InferrableClientTypes> =\n | {\n direction: 'down';\n result:\n | OperationResultEnvelope<unknown, TRPCClientError<TRouter>>\n | TRPCClientError<TRouter>;\n }\n | (Operation & {\n direction: 'up';\n });\ntype EnabledFn<TRouter extends AnyRouter> = (\n opts: EnableFnOptions<TRouter>,\n) => boolean;\n\ntype LoggerLinkFnOptions<TRouter extends AnyRouter> = Operation &\n (\n | {\n /**\n * Request result\n */\n direction: 'down';\n result:\n | OperationResultEnvelope<unknown, TRPCClientError<TRouter>>\n | TRPCClientError<TRouter>;\n elapsedMs: number;\n }\n | {\n /**\n * Request was just initialized\n */\n direction: 'up';\n }\n );\n\ntype LoggerLinkFn<TRouter extends AnyRouter> = (\n opts: LoggerLinkFnOptions<TRouter>,\n) => void;\n\ntype ColorMode = 'ansi' | 'css' | 'none';\n\nexport interface LoggerLinkOptions<TRouter extends AnyRouter> {\n logger?: LoggerLinkFn<TRouter>;\n enabled?: EnabledFn<TRouter>;\n /**\n * Used in the built-in defaultLogger\n */\n console?: ConsoleEsque;\n /**\n * Color mode\n * @default typeof window === 'undefined' ? 'ansi' : 'css'\n */\n colorMode?: ColorMode;\n\n /**\n * Include context in the log - defaults to false unless `colorMode` is 'css'\n */\n withContext?: boolean;\n}\n\nfunction isFormData(value: unknown): value is FormData {\n if (typeof FormData === 'undefined') {\n // FormData is not supported\n return false;\n }\n return value instanceof FormData;\n}\n\nconst palettes = {\n css: {\n query: ['72e3ff', '3fb0d8'],\n mutation: ['c5a3fc', '904dfc'],\n subscription: ['ff49e1', 'd83fbe'],\n },\n ansi: {\n regular: {\n // Cyan background, black and white text respectively\n query: ['\\x1b[30;46m', '\\x1b[97;46m'],\n // Magenta background, black and white text respectively\n mutation: ['\\x1b[30;45m', '\\x1b[97;45m'],\n // Green background, black and white text respectively\n subscription: ['\\x1b[30;42m', '\\x1b[97;42m'],\n },\n bold: {\n query: ['\\x1b[1;30;46m', '\\x1b[1;97;46m'],\n mutation: ['\\x1b[1;30;45m', '\\x1b[1;97;45m'],\n subscription: ['\\x1b[1;30;42m', '\\x1b[1;97;42m'],\n },\n },\n} as const;\n\nfunction constructPartsAndArgs(\n opts: LoggerLinkFnOptions<any> & {\n colorMode: ColorMode;\n withContext?: boolean;\n },\n) {\n const { direction, type, withContext, path, id, input } = opts;\n\n const parts: string[] = [];\n const args: any[] = [];\n\n if (opts.colorMode === 'none') {\n parts.push(direction === 'up' ? '>>' : '<<', type, `#${id}`, path);\n } else if (opts.colorMode === 'ansi') {\n const [lightRegular, darkRegular] = palettes.ansi.regular[type];\n const [lightBold, darkBold] = palettes.ansi.bold[type];\n const reset = '\\x1b[0m';\n\n parts.push(\n direction === 'up' ? lightRegular : darkRegular,\n direction === 'up' ? '>>' : '<<',\n type,\n direction === 'up' ? lightBold : darkBold,\n `#${id}`,\n path,\n reset,\n );\n } else {\n // css color mode\n const [light, dark] = palettes.css[type];\n const css = `\n background-color: #${direction === 'up' ? light : dark};\n color: ${direction === 'up' ? 'black' : 'white'};\n padding: 2px;\n `;\n\n parts.push(\n '%c',\n direction === 'up' ? '>>' : '<<',\n type,\n `#${id}`,\n `%c${path}%c`,\n '%O',\n );\n args.push(\n css,\n `${css}; font-weight: bold;`,\n `${css}; font-weight: normal;`,\n );\n }\n\n if (direction === 'up') {\n args.push(withContext ? { input, context: opts.context } : { input });\n } else {\n args.push({\n input,\n result: opts.result,\n elapsedMs: opts.elapsedMs,\n ...(withContext && { context: opts.context }),\n });\n }\n\n return { parts, args };\n}\n\n// maybe this should be moved to it's own package\nconst defaultLogger =\n <TRouter extends AnyRouter>({\n c = console,\n colorMode = 'css',\n withContext,\n }: {\n c?: ConsoleEsque;\n colorMode?: ColorMode;\n withContext?: boolean;\n }): LoggerLinkFn<TRouter> =>\n (props) => {\n const rawInput = props.input;\n const input = isFormData(rawInput)\n ? Object.fromEntries(rawInput)\n : rawInput;\n\n const { parts, args } = constructPartsAndArgs({\n ...props,\n colorMode,\n input,\n withContext,\n });\n\n const fn: 'error' | 'log' =\n props.direction === 'down' &&\n props.result &&\n (props.result instanceof Error ||\n ('error' in props.result.result && props.result.result.error))\n ? 'error'\n : 'log';\n\n c[fn].apply(null, [parts.join(' ')].concat(args));\n };\n\n/**\n * @see https://trpc.io/docs/v11/client/links/loggerLink\n */\nexport function loggerLink<TRouter extends AnyRouter = AnyRouter>(\n opts: LoggerLinkOptions<TRouter> = {},\n): TRPCLink<TRouter> {\n const { enabled = () => true } = opts;\n\n const colorMode =\n opts.colorMode ?? (typeof window === 'undefined' ? 'ansi' : 'css');\n const withContext = opts.withContext ?? colorMode === 'css';\n const {\n logger = defaultLogger({ c: opts.console, colorMode, withContext }),\n } = opts;\n\n return () => {\n return ({ op, next }) => {\n return observable((observer) => {\n // ->\n if (enabled({ ...op, direction: 'up' })) {\n logger({\n ...op,\n direction: 'up',\n });\n }\n const requestStartTime = Date.now();\n function logResult(\n result:\n | OperationResultEnvelope<unknown, TRPCClientError<TRouter>>\n | TRPCClientError<TRouter>,\n ) {\n const elapsedMs = Date.now() - requestStartTime;\n\n if (enabled({ ...op, direction: 'down', result })) {\n logger({\n ...op,\n direction: 'down',\n elapsedMs,\n result,\n });\n }\n }\n return next(op)\n .pipe(\n tap({\n next(result) {\n logResult(result);\n },\n error(result) {\n logResult(result);\n },\n }),\n )\n .subscribe(observer);\n });\n };\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { TRPCClientError } from "../TRPCClientError.mjs";
|
|
2
|
-
import { Operation, TRPCLink } from "./types.mjs";
|
|
3
|
-
import { InferrableClientTypes } from "@trpc/server/unstable-core-do-not-import";
|
|
4
|
-
|
|
5
|
-
//#region src/links/retryLink.d.ts
|
|
6
|
-
interface RetryLinkOptions<TInferrable extends InferrableClientTypes> {
|
|
7
|
-
/**
|
|
8
|
-
* The retry function
|
|
9
|
-
*/
|
|
10
|
-
retry: (opts: RetryFnOptions<TInferrable>) => boolean;
|
|
11
|
-
/**
|
|
12
|
-
* The delay between retries in ms (defaults to 0)
|
|
13
|
-
*/
|
|
14
|
-
retryDelayMs?: (attempt: number) => number;
|
|
15
|
-
}
|
|
16
|
-
interface RetryFnOptions<TInferrable extends InferrableClientTypes> {
|
|
17
|
-
/**
|
|
18
|
-
* The operation that failed
|
|
19
|
-
*/
|
|
20
|
-
op: Operation;
|
|
21
|
-
/**
|
|
22
|
-
* The error that occurred
|
|
23
|
-
*/
|
|
24
|
-
error: TRPCClientError<TInferrable>;
|
|
25
|
-
/**
|
|
26
|
-
* The number of attempts that have been made (including the first call)
|
|
27
|
-
*/
|
|
28
|
-
attempts: number;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* @see https://trpc.io/docs/v11/client/links/retryLink
|
|
32
|
-
*/
|
|
33
|
-
declare function retryLink<TInferrable extends InferrableClientTypes>(opts: RetryLinkOptions<TInferrable>): TRPCLink<TInferrable>;
|
|
34
|
-
//#endregion
|
|
35
|
-
export { retryLink };
|
|
36
|
-
//# sourceMappingURL=retryLink.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retryLink.d.mts","names":[],"sources":["../../src/links/retryLink.ts"],"sourcesContent":[],"mappings":";;;;;UASU,qCAAqC;;AAFI;;EAEzB,KAAqB,EAAA,CAAA,IAAA,EAI/B,cAJ+B,CAIhB,WAJgB,CAAA,EAAA,GAAA,OAAA;EAAqB;;AAItC;EAOpB,YAAA,CAAA,EAAA,CAAA,OAAc,EAAA,MAAA,EAAA,GAAA,MAAA;;UAAd,cAAmC,CAAA,oBAAA,qBAAA,CAAA,CAAA;EAAqB;;;EAQ1C,EAAA,EAJlB,SAIkB;EAUR;;;EAAmD,KAC1C,EAXhB,eAWgB,CAXA,WAWA,CAAA;EAAW;;;EACzB,QAAA,EAAA,MAAA;;;;;iBAFK,8BAA8B,6BACtC,iBAAiB,eACtB,SAAS"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { TRPCClientError } from "../TRPCClientError.js";
|
|
2
|
-
import { Operation, TRPCLink } from "./types.js";
|
|
3
|
-
import { InferrableClientTypes } from "@trpc/server/unstable-core-do-not-import";
|
|
4
|
-
|
|
5
|
-
//#region src/links/retryLink.d.ts
|
|
6
|
-
interface RetryLinkOptions<TInferrable extends InferrableClientTypes> {
|
|
7
|
-
/**
|
|
8
|
-
* The retry function
|
|
9
|
-
*/
|
|
10
|
-
retry: (opts: RetryFnOptions<TInferrable>) => boolean;
|
|
11
|
-
/**
|
|
12
|
-
* The delay between retries in ms (defaults to 0)
|
|
13
|
-
*/
|
|
14
|
-
retryDelayMs?: (attempt: number) => number;
|
|
15
|
-
}
|
|
16
|
-
interface RetryFnOptions<TInferrable extends InferrableClientTypes> {
|
|
17
|
-
/**
|
|
18
|
-
* The operation that failed
|
|
19
|
-
*/
|
|
20
|
-
op: Operation;
|
|
21
|
-
/**
|
|
22
|
-
* The error that occurred
|
|
23
|
-
*/
|
|
24
|
-
error: TRPCClientError<TInferrable>;
|
|
25
|
-
/**
|
|
26
|
-
* The number of attempts that have been made (including the first call)
|
|
27
|
-
*/
|
|
28
|
-
attempts: number;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* @see https://trpc.io/docs/v11/client/links/retryLink
|
|
32
|
-
*/
|
|
33
|
-
declare function retryLink<TInferrable extends InferrableClientTypes>(opts: RetryLinkOptions<TInferrable>): TRPCLink<TInferrable>;
|
|
34
|
-
//#endregion
|
|
35
|
-
export { retryLink };
|
|
36
|
-
//# sourceMappingURL=retryLink.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retryLink.d.ts","names":[],"sources":["../../src/links/retryLink.ts"],"sourcesContent":[],"mappings":";;;;;UASU,qCAAqC;;AAFI;;EAEzB,KAAqB,EAAA,CAAA,IAAA,EAI/B,cAJ+B,CAIhB,WAJgB,CAAA,EAAA,GAAA,OAAA;EAAqB;;AAItC;EAOpB,YAAA,CAAA,EAAA,CAAA,OAAc,EAAA,MAAA,EAAA,GAAA,MAAA;;UAAd,cAAmC,CAAA,oBAAA,qBAAA,CAAA,CAAA;EAAqB;;;EAQ1C,EAAA,EAJlB,SAIkB;EAUR;;;EAAmD,KAC1C,EAXhB,eAWgB,CAXA,WAWA,CAAA;EAAW;;;EACzB,QAAA,EAAA,MAAA;;;;;iBAFK,8BAA8B,6BACtC,iBAAiB,eACtB,SAAS"}
|
package/dist/links/retryLink.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
-
const require_inputWithTrackedEventId = require('../internals/inputWithTrackedEventId.js');
|
|
3
|
-
const __trpc_server_observable = require_rolldown_runtime.__toESM(require("@trpc/server/observable"));
|
|
4
|
-
|
|
5
|
-
//#region src/links/retryLink.ts
|
|
6
|
-
/**
|
|
7
|
-
* @see https://trpc.io/docs/v11/client/links/retryLink
|
|
8
|
-
*/
|
|
9
|
-
function retryLink(opts) {
|
|
10
|
-
return () => {
|
|
11
|
-
return (callOpts) => {
|
|
12
|
-
return (0, __trpc_server_observable.observable)((observer) => {
|
|
13
|
-
let next$;
|
|
14
|
-
let callNextTimeout = void 0;
|
|
15
|
-
let lastEventId = void 0;
|
|
16
|
-
attempt(1);
|
|
17
|
-
function opWithLastEventId() {
|
|
18
|
-
const op = callOpts.op;
|
|
19
|
-
if (!lastEventId) return op;
|
|
20
|
-
return {
|
|
21
|
-
...op,
|
|
22
|
-
input: require_inputWithTrackedEventId.inputWithTrackedEventId(op.input, lastEventId)
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
function attempt(attempts) {
|
|
26
|
-
const op = opWithLastEventId();
|
|
27
|
-
next$ = callOpts.next(op).subscribe({
|
|
28
|
-
error(error) {
|
|
29
|
-
const shouldRetry = opts.retry({
|
|
30
|
-
op,
|
|
31
|
-
attempts,
|
|
32
|
-
error
|
|
33
|
-
});
|
|
34
|
-
if (!shouldRetry) {
|
|
35
|
-
observer.error(error);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const delayMs = opts.retryDelayMs?.(attempts) ?? 0;
|
|
39
|
-
if (delayMs <= 0) {
|
|
40
|
-
attempt(attempts + 1);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
callNextTimeout = setTimeout(() => attempt(attempts + 1), delayMs);
|
|
44
|
-
},
|
|
45
|
-
next(envelope) {
|
|
46
|
-
if ((!envelope.result.type || envelope.result.type === "data") && envelope.result.id) lastEventId = envelope.result.id;
|
|
47
|
-
observer.next(envelope);
|
|
48
|
-
},
|
|
49
|
-
complete() {
|
|
50
|
-
observer.complete();
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
return () => {
|
|
55
|
-
next$.unsubscribe();
|
|
56
|
-
clearTimeout(callNextTimeout);
|
|
57
|
-
};
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
//#endregion
|
|
64
|
-
exports.retryLink = retryLink;
|
package/dist/links/retryLink.mjs
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { inputWithTrackedEventId } from "../internals/inputWithTrackedEventId.mjs";
|
|
2
|
-
import { observable } from "@trpc/server/observable";
|
|
3
|
-
|
|
4
|
-
//#region src/links/retryLink.ts
|
|
5
|
-
/**
|
|
6
|
-
* @see https://trpc.io/docs/v11/client/links/retryLink
|
|
7
|
-
*/
|
|
8
|
-
function retryLink(opts) {
|
|
9
|
-
return () => {
|
|
10
|
-
return (callOpts) => {
|
|
11
|
-
return observable((observer) => {
|
|
12
|
-
let next$;
|
|
13
|
-
let callNextTimeout = void 0;
|
|
14
|
-
let lastEventId = void 0;
|
|
15
|
-
attempt(1);
|
|
16
|
-
function opWithLastEventId() {
|
|
17
|
-
const op = callOpts.op;
|
|
18
|
-
if (!lastEventId) return op;
|
|
19
|
-
return {
|
|
20
|
-
...op,
|
|
21
|
-
input: inputWithTrackedEventId(op.input, lastEventId)
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
function attempt(attempts) {
|
|
25
|
-
const op = opWithLastEventId();
|
|
26
|
-
next$ = callOpts.next(op).subscribe({
|
|
27
|
-
error(error) {
|
|
28
|
-
const shouldRetry = opts.retry({
|
|
29
|
-
op,
|
|
30
|
-
attempts,
|
|
31
|
-
error
|
|
32
|
-
});
|
|
33
|
-
if (!shouldRetry) {
|
|
34
|
-
observer.error(error);
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
const delayMs = opts.retryDelayMs?.(attempts) ?? 0;
|
|
38
|
-
if (delayMs <= 0) {
|
|
39
|
-
attempt(attempts + 1);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
callNextTimeout = setTimeout(() => attempt(attempts + 1), delayMs);
|
|
43
|
-
},
|
|
44
|
-
next(envelope) {
|
|
45
|
-
if ((!envelope.result.type || envelope.result.type === "data") && envelope.result.id) lastEventId = envelope.result.id;
|
|
46
|
-
observer.next(envelope);
|
|
47
|
-
},
|
|
48
|
-
complete() {
|
|
49
|
-
observer.complete();
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
return () => {
|
|
54
|
-
next$.unsubscribe();
|
|
55
|
-
clearTimeout(callNextTimeout);
|
|
56
|
-
};
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
//#endregion
|
|
63
|
-
export { retryLink };
|
|
64
|
-
//# sourceMappingURL=retryLink.mjs.map
|