@orpc/server 0.0.0-next.a8e421c → 0.0.0-next.a910d34
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 +27 -23
- package/dist/adapters/aws-lambda/index.d.mts +46 -0
- package/dist/adapters/aws-lambda/index.d.ts +46 -0
- package/dist/adapters/aws-lambda/index.mjs +42 -0
- package/dist/adapters/bun-ws/index.d.mts +36 -0
- package/dist/adapters/bun-ws/index.d.ts +36 -0
- package/dist/adapters/bun-ws/index.mjs +47 -0
- package/dist/adapters/crossws/index.d.mts +33 -0
- package/dist/adapters/crossws/index.d.ts +33 -0
- package/dist/adapters/crossws/index.mjs +47 -0
- package/dist/adapters/fetch/index.d.mts +62 -11
- package/dist/adapters/fetch/index.d.ts +62 -11
- package/dist/adapters/fetch/index.mjs +109 -8
- package/dist/adapters/message-port/index.d.mts +31 -0
- package/dist/adapters/message-port/index.d.ts +31 -0
- package/dist/adapters/message-port/index.mjs +41 -0
- package/dist/adapters/node/index.d.mts +64 -22
- package/dist/adapters/node/index.d.ts +64 -22
- package/dist/adapters/node/index.mjs +88 -24
- package/dist/adapters/standard/index.d.mts +8 -13
- package/dist/adapters/standard/index.d.ts +8 -13
- package/dist/adapters/standard/index.mjs +5 -3
- package/dist/adapters/standard-peer/index.d.mts +14 -0
- package/dist/adapters/standard-peer/index.d.ts +14 -0
- package/dist/adapters/standard-peer/index.mjs +7 -0
- package/dist/adapters/websocket/index.d.mts +54 -0
- package/dist/adapters/websocket/index.d.ts +54 -0
- package/dist/adapters/websocket/index.mjs +69 -0
- package/dist/adapters/ws/index.d.mts +31 -0
- package/dist/adapters/ws/index.d.ts +31 -0
- package/dist/adapters/ws/index.mjs +39 -0
- package/dist/helpers/index.d.mts +130 -0
- package/dist/helpers/index.d.ts +130 -0
- package/dist/helpers/index.mjs +182 -0
- package/dist/hibernation/index.d.mts +44 -0
- package/dist/hibernation/index.d.ts +44 -0
- package/dist/hibernation/index.mjs +65 -0
- package/dist/index.d.mts +609 -84
- package/dist/index.d.ts +609 -84
- package/dist/index.mjs +162 -15
- package/dist/plugins/index.d.mts +154 -16
- package/dist/plugins/index.d.ts +154 -16
- package/dist/plugins/index.mjs +189 -16
- package/dist/shared/server.B7b2w3_i.d.ts +12 -0
- package/dist/shared/server.BEFBl-Cb.d.mts +12 -0
- package/dist/shared/server.BU4WI18A.d.mts +32 -0
- package/dist/shared/server.BW-nUGgA.mjs +36 -0
- package/dist/shared/server.Bmh5xd4n.d.ts +74 -0
- package/dist/shared/server.C6Q5sqYw.mjs +20 -0
- package/dist/shared/{server.BY9sDlwl.mjs → server.CIL9uKTN.mjs} +66 -30
- package/dist/shared/{server.BYTulgUc.d.mts → server.CYNGeoCm.d.mts} +66 -16
- package/dist/shared/{server.BYTulgUc.d.ts → server.CYNGeoCm.d.ts} +66 -16
- package/dist/shared/server.D0H-iaY3.d.ts +32 -0
- package/dist/shared/server.DZ5BIITo.mjs +9 -0
- package/dist/shared/server.DhJj-1X9.d.mts +42 -0
- package/dist/shared/{server.BtxZnWJ9.mjs → server.NeumLVdS.mjs} +34 -38
- package/dist/shared/server.gqRxT-yN.d.mts +74 -0
- package/dist/shared/server.jMTkVNIb.d.ts +42 -0
- package/package.json +70 -20
- package/dist/adapters/hono/index.d.mts +0 -21
- package/dist/adapters/hono/index.d.ts +0 -21
- package/dist/adapters/hono/index.mjs +0 -32
- package/dist/adapters/next/index.d.mts +0 -28
- package/dist/adapters/next/index.d.ts +0 -28
- package/dist/adapters/next/index.mjs +0 -29
- package/dist/shared/server.B52eKaNe.d.mts +0 -8
- package/dist/shared/server.BA-onDGB.d.ts +0 -8
- package/dist/shared/server.CDzXh8DM.d.mts +0 -75
- package/dist/shared/server.CkGvC2T0.d.ts +0 -75
- package/dist/shared/server.Dba3Iiyp.mjs +0 -12
- package/dist/shared/server.Del5OmaY.mjs +0 -29
@@ -1,6 +1,6 @@
|
|
1
1
|
import { isContractProcedure, ValidationError, mergePrefix, mergeErrorMap, enhanceRoute } from '@orpc/contract';
|
2
|
+
import { resolveMaybeOptionalOptions, toArray, value, intercept } from '@orpc/shared';
|
2
3
|
import { fallbackORPCErrorStatus, ORPCError } from '@orpc/client';
|
3
|
-
import { value, intercept, toError } from '@orpc/shared';
|
4
4
|
|
5
5
|
const LAZY_SYMBOL = Symbol("ORPC_LAZY_SYMBOL");
|
6
6
|
function lazy(loader, meta = {}) {
|
@@ -46,6 +46,9 @@ function addMiddleware(middlewares, addition) {
|
|
46
46
|
}
|
47
47
|
|
48
48
|
class Procedure {
|
49
|
+
/**
|
50
|
+
* This property holds the defined options.
|
51
|
+
*/
|
49
52
|
"~orpc";
|
50
53
|
constructor(def) {
|
51
54
|
this["~orpc"] = def;
|
@@ -68,14 +71,15 @@ function createORPCErrorConstructorMap(errors) {
|
|
68
71
|
if (typeof code !== "string") {
|
69
72
|
return Reflect.get(target, code);
|
70
73
|
}
|
71
|
-
const item = (...
|
74
|
+
const item = (...rest) => {
|
75
|
+
const options = resolveMaybeOptionalOptions(rest);
|
72
76
|
const config = errors[code];
|
73
77
|
return new ORPCError(code, {
|
74
78
|
defined: Boolean(config),
|
75
79
|
status: config?.status,
|
76
|
-
message: options
|
77
|
-
data: options
|
78
|
-
cause: options
|
80
|
+
message: options.message ?? config?.message,
|
81
|
+
data: options.data,
|
82
|
+
cause: options.cause
|
79
83
|
});
|
80
84
|
};
|
81
85
|
return item;
|
@@ -103,16 +107,17 @@ function middlewareOutputFn(output) {
|
|
103
107
|
return { output, context: {} };
|
104
108
|
}
|
105
109
|
|
106
|
-
function createProcedureClient(lazyableProcedure, ...
|
110
|
+
function createProcedureClient(lazyableProcedure, ...rest) {
|
111
|
+
const options = resolveMaybeOptionalOptions(rest);
|
107
112
|
return async (...[input, callerOptions]) => {
|
108
|
-
const path = options
|
113
|
+
const path = toArray(options.path);
|
109
114
|
const { default: procedure } = await unlazy(lazyableProcedure);
|
110
115
|
const clientContext = callerOptions?.context ?? {};
|
111
|
-
const context = await value(options
|
116
|
+
const context = await value(options.context ?? {}, clientContext);
|
112
117
|
const errors = createORPCErrorConstructorMap(procedure["~orpc"].errorMap);
|
113
118
|
try {
|
114
119
|
return await intercept(
|
115
|
-
options
|
120
|
+
toArray(options.interceptors),
|
116
121
|
{
|
117
122
|
context,
|
118
123
|
input,
|
@@ -127,7 +132,7 @@ function createProcedureClient(lazyableProcedure, ...[options]) {
|
|
127
132
|
);
|
128
133
|
} catch (e) {
|
129
134
|
if (!(e instanceof ORPCError)) {
|
130
|
-
throw
|
135
|
+
throw e;
|
131
136
|
}
|
132
137
|
const validated = await validateORPCError(procedure["~orpc"].errorMap, e);
|
133
138
|
throw validated;
|
@@ -169,35 +174,29 @@ async function executeProcedureInternal(procedure, options) {
|
|
169
174
|
const middlewares = procedure["~orpc"].middlewares;
|
170
175
|
const inputValidationIndex = Math.min(Math.max(0, procedure["~orpc"].inputValidationIndex), middlewares.length);
|
171
176
|
const outputValidationIndex = Math.min(Math.max(0, procedure["~orpc"].outputValidationIndex), middlewares.length);
|
172
|
-
|
173
|
-
|
174
|
-
let currentInput = options.input;
|
175
|
-
const next = async (...[nextOptions]) => {
|
176
|
-
const index = currentIndex;
|
177
|
-
const midContext = nextOptions?.context ?? {};
|
178
|
-
currentIndex += 1;
|
179
|
-
currentContext = mergeCurrentContext(currentContext, midContext);
|
177
|
+
const next = async (index, context, input) => {
|
178
|
+
let currentInput = input;
|
180
179
|
if (index === inputValidationIndex) {
|
181
180
|
currentInput = await validateInput(procedure, currentInput);
|
182
181
|
}
|
183
182
|
const mid = middlewares[index];
|
184
|
-
const
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
183
|
+
const output = mid ? (await mid({
|
184
|
+
...options,
|
185
|
+
context,
|
186
|
+
next: async (...[nextOptions]) => {
|
187
|
+
const nextContext = nextOptions?.context ?? {};
|
188
|
+
return {
|
189
|
+
output: await next(index + 1, mergeCurrentContext(context, nextContext), currentInput),
|
190
|
+
context: nextContext
|
191
|
+
};
|
192
|
+
}
|
193
|
+
}, currentInput, middlewareOutputFn)).output : await procedure["~orpc"].handler({ ...options, context, input: currentInput });
|
191
194
|
if (index === outputValidationIndex) {
|
192
|
-
|
193
|
-
return {
|
194
|
-
context: result.context,
|
195
|
-
output: validatedOutput
|
196
|
-
};
|
195
|
+
return await validateOutput(procedure, output);
|
197
196
|
}
|
198
|
-
return
|
197
|
+
return output;
|
199
198
|
};
|
200
|
-
return (
|
199
|
+
return next(0, options.context, options.input);
|
201
200
|
}
|
202
201
|
|
203
202
|
const HIDDEN_ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_HIDDEN_ROUTER_CONTRACT");
|
@@ -364,11 +363,8 @@ function createContractedProcedure(procedure, contract) {
|
|
364
363
|
});
|
365
364
|
}
|
366
365
|
function call(procedure, input, ...rest) {
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
function toHttpPath(path) {
|
371
|
-
return `/${path.map(encodeURIComponent).join("/")}`;
|
366
|
+
const options = resolveMaybeOptionalOptions(rest);
|
367
|
+
return createProcedureClient(procedure, options)(input, options);
|
372
368
|
}
|
373
369
|
|
374
|
-
export { LAZY_SYMBOL as L, Procedure as P,
|
370
|
+
export { LAZY_SYMBOL as L, Procedure as P, createContractedProcedure as a, addMiddleware as b, createProcedureClient as c, isLazy as d, enhanceRouter as e, createAssertedLazyProcedure as f, getRouter as g, createORPCErrorConstructorMap as h, isProcedure as i, getLazyMeta as j, middlewareOutputFn as k, lazy as l, mergeCurrentContext as m, isStartWithMiddlewares as n, mergeMiddlewares as o, call as p, getHiddenRouterContract as q, createAccessibleLazyRouter as r, setHiddenRouterContract as s, traverseContractProcedures as t, unlazy as u, validateORPCError as v, resolveContractProcedures as w, unlazyRouter as x };
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { HTTPPath, ORPCError } from '@orpc/client';
|
2
|
+
import { Meta } from '@orpc/contract';
|
3
|
+
import { Interceptor } from '@orpc/shared';
|
4
|
+
import { StandardResponse, StandardLazyRequest } from '@orpc/standard-server';
|
5
|
+
import { C as Context, R as Router, b as AnyRouter, A as AnyProcedure, d as ProcedureClientInterceptorOptions } from './server.CYNGeoCm.mjs';
|
6
|
+
|
7
|
+
interface StandardHandlerPlugin<T extends Context> {
|
8
|
+
order?: number;
|
9
|
+
init?(options: StandardHandlerOptions<T>, router: Router<any, T>): void;
|
10
|
+
}
|
11
|
+
declare class CompositeStandardHandlerPlugin<T extends Context, TPlugin extends StandardHandlerPlugin<T>> implements StandardHandlerPlugin<T> {
|
12
|
+
protected readonly plugins: TPlugin[];
|
13
|
+
constructor(plugins?: readonly TPlugin[]);
|
14
|
+
init(options: StandardHandlerOptions<T>, router: Router<any, T>): void;
|
15
|
+
}
|
16
|
+
|
17
|
+
type StandardParams = Record<string, string>;
|
18
|
+
type StandardMatchResult = {
|
19
|
+
path: readonly string[];
|
20
|
+
procedure: AnyProcedure;
|
21
|
+
params?: StandardParams;
|
22
|
+
} | undefined;
|
23
|
+
interface StandardMatcher {
|
24
|
+
init(router: AnyRouter): void;
|
25
|
+
match(method: string, pathname: HTTPPath): Promise<StandardMatchResult>;
|
26
|
+
}
|
27
|
+
interface StandardCodec {
|
28
|
+
encode(output: unknown, procedure: AnyProcedure): StandardResponse;
|
29
|
+
encodeError(error: ORPCError<any, any>): StandardResponse;
|
30
|
+
decode(request: StandardLazyRequest, params: StandardParams | undefined, procedure: AnyProcedure): Promise<unknown>;
|
31
|
+
}
|
32
|
+
|
33
|
+
interface StandardHandleOptions<T extends Context> {
|
34
|
+
prefix?: HTTPPath;
|
35
|
+
context: T;
|
36
|
+
}
|
37
|
+
type StandardHandleResult = {
|
38
|
+
matched: true;
|
39
|
+
response: StandardResponse;
|
40
|
+
} | {
|
41
|
+
matched: false;
|
42
|
+
response: undefined;
|
43
|
+
};
|
44
|
+
interface StandardHandlerInterceptorOptions<T extends Context> extends StandardHandleOptions<T> {
|
45
|
+
request: StandardLazyRequest;
|
46
|
+
}
|
47
|
+
interface StandardHandlerOptions<TContext extends Context> {
|
48
|
+
plugins?: StandardHandlerPlugin<TContext>[];
|
49
|
+
/**
|
50
|
+
* Interceptors at the request level, helpful when you want catch errors
|
51
|
+
*/
|
52
|
+
interceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, Promise<StandardHandleResult>>[];
|
53
|
+
/**
|
54
|
+
* Interceptors at the root level, helpful when you want override the request/response
|
55
|
+
*/
|
56
|
+
rootInterceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, Promise<StandardHandleResult>>[];
|
57
|
+
/**
|
58
|
+
*
|
59
|
+
* Interceptors for procedure client.
|
60
|
+
*/
|
61
|
+
clientInterceptors?: Interceptor<ProcedureClientInterceptorOptions<TContext, Record<never, never>, Meta>, Promise<unknown>>[];
|
62
|
+
}
|
63
|
+
declare class StandardHandler<T extends Context> {
|
64
|
+
private readonly matcher;
|
65
|
+
private readonly codec;
|
66
|
+
private readonly interceptors;
|
67
|
+
private readonly clientInterceptors;
|
68
|
+
private readonly rootInterceptors;
|
69
|
+
constructor(router: Router<any, T>, matcher: StandardMatcher, codec: StandardCodec, options: NoInfer<StandardHandlerOptions<T>>);
|
70
|
+
handle(request: StandardLazyRequest, options: StandardHandleOptions<T>): Promise<StandardHandleResult>;
|
71
|
+
}
|
72
|
+
|
73
|
+
export { CompositeStandardHandlerPlugin as C, StandardHandler as f };
|
74
|
+
export type { StandardCodec as S, StandardParams as a, StandardHandleOptions as b, StandardHandleResult as c, StandardHandlerInterceptorOptions as d, StandardHandlerOptions as e, StandardHandlerPlugin as g, StandardMatchResult as h, StandardMatcher as i };
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { ErrorMap, EnhanceRouteOptions, MergedErrorMap, AnyContractRouter, AnyContractProcedure } from '@orpc/contract';
|
2
|
+
import { a as AnyMiddleware, L as Lazyable, b as AnyRouter, C as Context, c as Lazy, A as AnyProcedure, P as Procedure, M as MergedInitialContext } from './server.CYNGeoCm.js';
|
3
|
+
|
4
|
+
declare function getRouter<T extends Lazyable<AnyRouter | undefined>>(router: T, path: readonly string[]): T extends Lazy<any> ? Lazy<AnyRouter | undefined> : Lazyable<AnyRouter | undefined>;
|
5
|
+
type AccessibleLazyRouter<T extends Lazyable<AnyRouter | undefined>> = T extends Lazy<infer U extends AnyRouter | undefined | Lazy<AnyRouter | undefined>> ? AccessibleLazyRouter<U> : T extends AnyProcedure | undefined ? Lazy<T> : Lazy<T> & {
|
6
|
+
[K in keyof T]: T[K] extends Lazyable<AnyRouter> ? AccessibleLazyRouter<T[K]> : never;
|
7
|
+
};
|
8
|
+
declare function createAccessibleLazyRouter<T extends Lazy<AnyRouter | undefined>>(lazied: T): AccessibleLazyRouter<T>;
|
9
|
+
type EnhancedRouter<T extends Lazyable<AnyRouter>, TInitialContext extends Context, TCurrentContext extends Context, TErrorMap extends ErrorMap> = T extends Lazy<infer U extends AnyRouter> ? AccessibleLazyRouter<EnhancedRouter<U, TInitialContext, TCurrentContext, TErrorMap>> : T extends Procedure<infer UInitialContext, infer UCurrentContext, infer UInputSchema, infer UOutputSchema, infer UErrorMap, infer UMeta> ? Procedure<MergedInitialContext<TInitialContext, UInitialContext, TCurrentContext>, UCurrentContext, UInputSchema, UOutputSchema, MergedErrorMap<TErrorMap, UErrorMap>, UMeta> : {
|
10
|
+
[K in keyof T]: T[K] extends Lazyable<AnyRouter> ? EnhancedRouter<T[K], TInitialContext, TCurrentContext, TErrorMap> : never;
|
11
|
+
};
|
12
|
+
interface EnhanceRouterOptions<TErrorMap extends ErrorMap> extends EnhanceRouteOptions {
|
13
|
+
middlewares: readonly AnyMiddleware[];
|
14
|
+
errorMap: TErrorMap;
|
15
|
+
dedupeLeadingMiddlewares: boolean;
|
16
|
+
}
|
17
|
+
declare function enhanceRouter<T extends Lazyable<AnyRouter>, TInitialContext extends Context, TCurrentContext extends Context, TErrorMap extends ErrorMap>(router: T, options: EnhanceRouterOptions<TErrorMap>): EnhancedRouter<T, TInitialContext, TCurrentContext, TErrorMap>;
|
18
|
+
interface TraverseContractProceduresOptions {
|
19
|
+
router: AnyContractRouter | AnyRouter;
|
20
|
+
path: readonly string[];
|
21
|
+
}
|
22
|
+
interface TraverseContractProcedureCallbackOptions {
|
23
|
+
contract: AnyContractProcedure | AnyProcedure;
|
24
|
+
path: readonly string[];
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* @deprecated Use `TraverseContractProcedureCallbackOptions` instead.
|
28
|
+
*/
|
29
|
+
type ContractProcedureCallbackOptions = TraverseContractProcedureCallbackOptions;
|
30
|
+
interface LazyTraverseContractProceduresOptions {
|
31
|
+
router: Lazy<AnyRouter>;
|
32
|
+
path: readonly string[];
|
33
|
+
}
|
34
|
+
declare function traverseContractProcedures(options: TraverseContractProceduresOptions, callback: (options: TraverseContractProcedureCallbackOptions) => void, lazyOptions?: LazyTraverseContractProceduresOptions[]): LazyTraverseContractProceduresOptions[];
|
35
|
+
declare function resolveContractProcedures(options: TraverseContractProceduresOptions, callback: (options: TraverseContractProcedureCallbackOptions) => void): Promise<void>;
|
36
|
+
type UnlaziedRouter<T extends AnyRouter> = T extends AnyProcedure ? T : {
|
37
|
+
[K in keyof T]: T[K] extends Lazyable<infer U extends AnyRouter> ? UnlaziedRouter<U> : never;
|
38
|
+
};
|
39
|
+
declare function unlazyRouter<T extends AnyRouter>(router: T): Promise<UnlaziedRouter<T>>;
|
40
|
+
|
41
|
+
export { createAccessibleLazyRouter as c, enhanceRouter as e, getRouter as g, resolveContractProcedures as r, traverseContractProcedures as t, unlazyRouter as u };
|
42
|
+
export type { AccessibleLazyRouter as A, ContractProcedureCallbackOptions as C, EnhanceRouterOptions as E, LazyTraverseContractProceduresOptions as L, TraverseContractProcedureCallbackOptions as T, UnlaziedRouter as U, EnhancedRouter as a, TraverseContractProceduresOptions as b };
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@orpc/server",
|
3
3
|
"type": "module",
|
4
|
-
"version": "0.0.0-next.
|
4
|
+
"version": "0.0.0-next.a910d34",
|
5
5
|
"license": "MIT",
|
6
6
|
"homepage": "https://orpc.unnoq.com",
|
7
7
|
"repository": {
|
@@ -19,54 +19,104 @@
|
|
19
19
|
"import": "./dist/index.mjs",
|
20
20
|
"default": "./dist/index.mjs"
|
21
21
|
},
|
22
|
+
"./helpers": {
|
23
|
+
"types": "./dist/helpers/index.d.mts",
|
24
|
+
"import": "./dist/helpers/index.mjs",
|
25
|
+
"default": "./dist/helpers/index.mjs"
|
26
|
+
},
|
22
27
|
"./plugins": {
|
23
28
|
"types": "./dist/plugins/index.d.mts",
|
24
29
|
"import": "./dist/plugins/index.mjs",
|
25
30
|
"default": "./dist/plugins/index.mjs"
|
26
31
|
},
|
32
|
+
"./hibernation": {
|
33
|
+
"types": "./dist/hibernation/index.d.mts",
|
34
|
+
"import": "./dist/hibernation/index.mjs",
|
35
|
+
"default": "./dist/hibernation/index.mjs"
|
36
|
+
},
|
27
37
|
"./standard": {
|
28
38
|
"types": "./dist/adapters/standard/index.d.mts",
|
29
39
|
"import": "./dist/adapters/standard/index.mjs",
|
30
40
|
"default": "./dist/adapters/standard/index.mjs"
|
31
41
|
},
|
42
|
+
"./standard-peer": {
|
43
|
+
"types": "./dist/adapters/standard-peer/index.d.mts",
|
44
|
+
"import": "./dist/adapters/standard-peer/index.mjs",
|
45
|
+
"default": "./dist/adapters/standard-peer/index.mjs"
|
46
|
+
},
|
32
47
|
"./fetch": {
|
33
48
|
"types": "./dist/adapters/fetch/index.d.mts",
|
34
49
|
"import": "./dist/adapters/fetch/index.mjs",
|
35
50
|
"default": "./dist/adapters/fetch/index.mjs"
|
36
51
|
},
|
37
|
-
"./hono": {
|
38
|
-
"types": "./dist/adapters/hono/index.d.mts",
|
39
|
-
"import": "./dist/adapters/hono/index.mjs",
|
40
|
-
"default": "./dist/adapters/hono/index.mjs"
|
41
|
-
},
|
42
|
-
"./next": {
|
43
|
-
"types": "./dist/adapters/next/index.d.mts",
|
44
|
-
"import": "./dist/adapters/next/index.mjs",
|
45
|
-
"default": "./dist/adapters/next/index.mjs"
|
46
|
-
},
|
47
52
|
"./node": {
|
48
53
|
"types": "./dist/adapters/node/index.d.mts",
|
49
54
|
"import": "./dist/adapters/node/index.mjs",
|
50
55
|
"default": "./dist/adapters/node/index.mjs"
|
56
|
+
},
|
57
|
+
"./aws-lambda": {
|
58
|
+
"types": "./dist/adapters/aws-lambda/index.d.mts",
|
59
|
+
"import": "./dist/adapters/aws-lambda/index.mjs",
|
60
|
+
"default": "./dist/adapters/aws-lambda/index.mjs"
|
61
|
+
},
|
62
|
+
"./websocket": {
|
63
|
+
"types": "./dist/adapters/websocket/index.d.mts",
|
64
|
+
"import": "./dist/adapters/websocket/index.mjs",
|
65
|
+
"default": "./dist/adapters/websocket/index.mjs"
|
66
|
+
},
|
67
|
+
"./crossws": {
|
68
|
+
"types": "./dist/adapters/crossws/index.d.mts",
|
69
|
+
"import": "./dist/adapters/crossws/index.mjs",
|
70
|
+
"default": "./dist/adapters/crossws/index.mjs"
|
71
|
+
},
|
72
|
+
"./ws": {
|
73
|
+
"types": "./dist/adapters/ws/index.d.mts",
|
74
|
+
"import": "./dist/adapters/ws/index.mjs",
|
75
|
+
"default": "./dist/adapters/ws/index.mjs"
|
76
|
+
},
|
77
|
+
"./bun-ws": {
|
78
|
+
"types": "./dist/adapters/bun-ws/index.d.mts",
|
79
|
+
"import": "./dist/adapters/bun-ws/index.mjs",
|
80
|
+
"default": "./dist/adapters/bun-ws/index.mjs"
|
81
|
+
},
|
82
|
+
"./message-port": {
|
83
|
+
"types": "./dist/adapters/message-port/index.d.mts",
|
84
|
+
"import": "./dist/adapters/message-port/index.mjs",
|
85
|
+
"default": "./dist/adapters/message-port/index.mjs"
|
51
86
|
}
|
52
87
|
},
|
53
88
|
"files": [
|
54
89
|
"dist"
|
55
90
|
],
|
56
91
|
"peerDependencies": {
|
57
|
-
"
|
58
|
-
"
|
92
|
+
"crossws": ">=0.3.4",
|
93
|
+
"ws": ">=8.18.1"
|
94
|
+
},
|
95
|
+
"peerDependenciesMeta": {
|
96
|
+
"crossws": {
|
97
|
+
"optional": true
|
98
|
+
},
|
99
|
+
"ws": {
|
100
|
+
"optional": true
|
101
|
+
}
|
59
102
|
},
|
60
103
|
"dependencies": {
|
61
|
-
"
|
62
|
-
"@orpc/
|
63
|
-
"@orpc/shared": "0.0.0-next.
|
64
|
-
"@orpc/
|
65
|
-
"@orpc/standard-server
|
66
|
-
"@orpc/standard-server-
|
104
|
+
"cookie": "^1.0.2",
|
105
|
+
"@orpc/client": "0.0.0-next.a910d34",
|
106
|
+
"@orpc/shared": "0.0.0-next.a910d34",
|
107
|
+
"@orpc/contract": "0.0.0-next.a910d34",
|
108
|
+
"@orpc/standard-server": "0.0.0-next.a910d34",
|
109
|
+
"@orpc/standard-server-aws-lambda": "0.0.0-next.a910d34",
|
110
|
+
"@orpc/standard-server-fetch": "0.0.0-next.a910d34",
|
111
|
+
"@orpc/standard-server-peer": "0.0.0-next.a910d34",
|
112
|
+
"@orpc/standard-server-node": "0.0.0-next.a910d34"
|
67
113
|
},
|
68
114
|
"devDependencies": {
|
69
|
-
"
|
115
|
+
"@types/ws": "^8.18.1",
|
116
|
+
"crossws": "^0.4.1",
|
117
|
+
"next": "^15.4.5",
|
118
|
+
"supertest": "^7.1.4",
|
119
|
+
"ws": "^8.18.3"
|
70
120
|
},
|
71
121
|
"scripts": {
|
72
122
|
"build": "unbuild",
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { FetchHandler } from '../fetch/index.mjs';
|
2
|
-
export { FetchHandleResult, RPCHandler } from '../fetch/index.mjs';
|
3
|
-
import { Value, MaybeOptionalOptions } from '@orpc/shared';
|
4
|
-
import { Context as Context$1, MiddlewareHandler } from 'hono';
|
5
|
-
import { C as Context } from '../../shared/server.BYTulgUc.mjs';
|
6
|
-
import { S as StandardHandleOptions } from '../../shared/server.CDzXh8DM.mjs';
|
7
|
-
import '@orpc/standard-server-fetch';
|
8
|
-
import '../../shared/server.B52eKaNe.mjs';
|
9
|
-
import '@orpc/client/standard';
|
10
|
-
import '@orpc/client';
|
11
|
-
import '@orpc/contract';
|
12
|
-
import '@orpc/standard-server';
|
13
|
-
|
14
|
-
type CreateMiddlewareOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
|
15
|
-
context?: Value<T, [Context$1]>;
|
16
|
-
} : {
|
17
|
-
context: Value<T, [Context$1]>;
|
18
|
-
});
|
19
|
-
declare function createMiddleware<T extends Context>(handler: FetchHandler<T>, ...[options]: MaybeOptionalOptions<CreateMiddlewareOptions<T>>): MiddlewareHandler;
|
20
|
-
|
21
|
-
export { type CreateMiddlewareOptions, FetchHandler, createMiddleware };
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { FetchHandler } from '../fetch/index.js';
|
2
|
-
export { FetchHandleResult, RPCHandler } from '../fetch/index.js';
|
3
|
-
import { Value, MaybeOptionalOptions } from '@orpc/shared';
|
4
|
-
import { Context as Context$1, MiddlewareHandler } from 'hono';
|
5
|
-
import { C as Context } from '../../shared/server.BYTulgUc.js';
|
6
|
-
import { S as StandardHandleOptions } from '../../shared/server.CkGvC2T0.js';
|
7
|
-
import '@orpc/standard-server-fetch';
|
8
|
-
import '../../shared/server.BA-onDGB.js';
|
9
|
-
import '@orpc/client/standard';
|
10
|
-
import '@orpc/client';
|
11
|
-
import '@orpc/contract';
|
12
|
-
import '@orpc/standard-server';
|
13
|
-
|
14
|
-
type CreateMiddlewareOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
|
15
|
-
context?: Value<T, [Context$1]>;
|
16
|
-
} : {
|
17
|
-
context: Value<T, [Context$1]>;
|
18
|
-
});
|
19
|
-
declare function createMiddleware<T extends Context>(handler: FetchHandler<T>, ...[options]: MaybeOptionalOptions<CreateMiddlewareOptions<T>>): MiddlewareHandler;
|
20
|
-
|
21
|
-
export { type CreateMiddlewareOptions, FetchHandler, createMiddleware };
|
@@ -1,32 +0,0 @@
|
|
1
|
-
export { R as RPCHandler } from '../../shared/server.Del5OmaY.mjs';
|
2
|
-
import { value } from '@orpc/shared';
|
3
|
-
import '@orpc/client/standard';
|
4
|
-
import '@orpc/standard-server-fetch';
|
5
|
-
import '../../shared/server.BY9sDlwl.mjs';
|
6
|
-
import '@orpc/client';
|
7
|
-
import '../../shared/server.Dba3Iiyp.mjs';
|
8
|
-
import '../../shared/server.BtxZnWJ9.mjs';
|
9
|
-
import '@orpc/contract';
|
10
|
-
|
11
|
-
function createMiddleware(handler, ...[options]) {
|
12
|
-
return async (c, next) => {
|
13
|
-
const bodyProps = /* @__PURE__ */ new Set(["arrayBuffer", "blob", "formData", "json", "text"]);
|
14
|
-
const request = c.req.method === "GET" || c.req.method === "HEAD" ? c.req.raw : new Proxy(c.req.raw, {
|
15
|
-
// https://github.com/honojs/middleware/blob/main/packages/trpc-server/src/index.ts#L39
|
16
|
-
get(target, prop) {
|
17
|
-
if (bodyProps.has(prop)) {
|
18
|
-
return () => c.req[prop]();
|
19
|
-
}
|
20
|
-
return Reflect.get(target, prop, target);
|
21
|
-
}
|
22
|
-
});
|
23
|
-
const context = await value(options?.context ?? {}, c);
|
24
|
-
const { matched, response } = await handler.handle(request, { ...options, context });
|
25
|
-
if (matched) {
|
26
|
-
return c.newResponse(response.body, response);
|
27
|
-
}
|
28
|
-
await next();
|
29
|
-
};
|
30
|
-
}
|
31
|
-
|
32
|
-
export { createMiddleware };
|
@@ -1,28 +0,0 @@
|
|
1
|
-
import { FetchHandler } from '../fetch/index.mjs';
|
2
|
-
export { FetchHandleResult, RPCHandler } from '../fetch/index.mjs';
|
3
|
-
import { Value, MaybeOptionalOptions } from '@orpc/shared';
|
4
|
-
import { NextRequest } from 'next/server';
|
5
|
-
import { C as Context } from '../../shared/server.BYTulgUc.mjs';
|
6
|
-
import { S as StandardHandleOptions } from '../../shared/server.CDzXh8DM.mjs';
|
7
|
-
import '@orpc/standard-server-fetch';
|
8
|
-
import '../../shared/server.B52eKaNe.mjs';
|
9
|
-
import '@orpc/client/standard';
|
10
|
-
import '@orpc/client';
|
11
|
-
import '@orpc/contract';
|
12
|
-
import '@orpc/standard-server';
|
13
|
-
|
14
|
-
type ServeOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
|
15
|
-
context?: Value<T, [NextRequest]>;
|
16
|
-
} : {
|
17
|
-
context: Value<T, [NextRequest]>;
|
18
|
-
});
|
19
|
-
interface ServeResult {
|
20
|
-
GET(req: NextRequest): Promise<Response>;
|
21
|
-
POST(req: NextRequest): Promise<Response>;
|
22
|
-
PUT(req: NextRequest): Promise<Response>;
|
23
|
-
PATCH(req: NextRequest): Promise<Response>;
|
24
|
-
DELETE(req: NextRequest): Promise<Response>;
|
25
|
-
}
|
26
|
-
declare function serve<T extends Context>(handler: FetchHandler<T>, ...[options]: MaybeOptionalOptions<ServeOptions<T>>): ServeResult;
|
27
|
-
|
28
|
-
export { FetchHandler, type ServeOptions, type ServeResult, serve };
|
@@ -1,28 +0,0 @@
|
|
1
|
-
import { FetchHandler } from '../fetch/index.js';
|
2
|
-
export { FetchHandleResult, RPCHandler } from '../fetch/index.js';
|
3
|
-
import { Value, MaybeOptionalOptions } from '@orpc/shared';
|
4
|
-
import { NextRequest } from 'next/server';
|
5
|
-
import { C as Context } from '../../shared/server.BYTulgUc.js';
|
6
|
-
import { S as StandardHandleOptions } from '../../shared/server.CkGvC2T0.js';
|
7
|
-
import '@orpc/standard-server-fetch';
|
8
|
-
import '../../shared/server.BA-onDGB.js';
|
9
|
-
import '@orpc/client/standard';
|
10
|
-
import '@orpc/client';
|
11
|
-
import '@orpc/contract';
|
12
|
-
import '@orpc/standard-server';
|
13
|
-
|
14
|
-
type ServeOptions<T extends Context> = Omit<StandardHandleOptions<T>, 'context'> & (Record<never, never> extends T ? {
|
15
|
-
context?: Value<T, [NextRequest]>;
|
16
|
-
} : {
|
17
|
-
context: Value<T, [NextRequest]>;
|
18
|
-
});
|
19
|
-
interface ServeResult {
|
20
|
-
GET(req: NextRequest): Promise<Response>;
|
21
|
-
POST(req: NextRequest): Promise<Response>;
|
22
|
-
PUT(req: NextRequest): Promise<Response>;
|
23
|
-
PATCH(req: NextRequest): Promise<Response>;
|
24
|
-
DELETE(req: NextRequest): Promise<Response>;
|
25
|
-
}
|
26
|
-
declare function serve<T extends Context>(handler: FetchHandler<T>, ...[options]: MaybeOptionalOptions<ServeOptions<T>>): ServeResult;
|
27
|
-
|
28
|
-
export { FetchHandler, type ServeOptions, type ServeResult, serve };
|
@@ -1,29 +0,0 @@
|
|
1
|
-
export { R as RPCHandler } from '../../shared/server.Del5OmaY.mjs';
|
2
|
-
import { value } from '@orpc/shared';
|
3
|
-
import '@orpc/client/standard';
|
4
|
-
import '@orpc/standard-server-fetch';
|
5
|
-
import '../../shared/server.BY9sDlwl.mjs';
|
6
|
-
import '@orpc/client';
|
7
|
-
import '../../shared/server.Dba3Iiyp.mjs';
|
8
|
-
import '../../shared/server.BtxZnWJ9.mjs';
|
9
|
-
import '@orpc/contract';
|
10
|
-
|
11
|
-
function serve(handler, ...[options]) {
|
12
|
-
const main = async (req) => {
|
13
|
-
const context = await value(options?.context ?? {}, req);
|
14
|
-
const { matched, response } = await handler.handle(req, { ...options, context });
|
15
|
-
if (matched) {
|
16
|
-
return response;
|
17
|
-
}
|
18
|
-
return new Response(`Cannot find a matching procedure for ${req.url}`, { status: 404 });
|
19
|
-
};
|
20
|
-
return {
|
21
|
-
GET: main,
|
22
|
-
POST: main,
|
23
|
-
PUT: main,
|
24
|
-
PATCH: main,
|
25
|
-
DELETE: main
|
26
|
-
};
|
27
|
-
}
|
28
|
-
|
29
|
-
export { serve };
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
|
2
|
-
import { C as Context } from './server.BYTulgUc.mjs';
|
3
|
-
import { a as StandardHandlerOptions } from './server.CDzXh8DM.mjs';
|
4
|
-
|
5
|
-
interface StandardRPCHandlerOptions<T extends Context> extends StandardHandlerOptions<T>, StandardRPCJsonSerializerOptions {
|
6
|
-
}
|
7
|
-
|
8
|
-
export type { StandardRPCHandlerOptions as S };
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import { StandardRPCJsonSerializerOptions } from '@orpc/client/standard';
|
2
|
-
import { C as Context } from './server.BYTulgUc.js';
|
3
|
-
import { a as StandardHandlerOptions } from './server.CkGvC2T0.js';
|
4
|
-
|
5
|
-
interface StandardRPCHandlerOptions<T extends Context> extends StandardHandlerOptions<T>, StandardRPCJsonSerializerOptions {
|
6
|
-
}
|
7
|
-
|
8
|
-
export type { StandardRPCHandlerOptions as S };
|
@@ -1,75 +0,0 @@
|
|
1
|
-
import { HTTPPath, AnySchema, Meta, InferSchemaOutput, ErrorFromErrorMap } from '@orpc/contract';
|
2
|
-
import { Interceptor, MaybeOptionalOptions } from '@orpc/shared';
|
3
|
-
import { StandardResponse, StandardLazyRequest } from '@orpc/standard-server';
|
4
|
-
import { a as AnyRouter, A as AnyProcedure, C as Context, P as ProcedureClientInterceptorOptions, R as Router } from './server.BYTulgUc.mjs';
|
5
|
-
import { ORPCError } from '@orpc/client';
|
6
|
-
|
7
|
-
type StandardParams = Record<string, string>;
|
8
|
-
type StandardMatchResult = {
|
9
|
-
path: readonly string[];
|
10
|
-
procedure: AnyProcedure;
|
11
|
-
params?: StandardParams;
|
12
|
-
} | undefined;
|
13
|
-
interface StandardMatcher {
|
14
|
-
init(router: AnyRouter): void;
|
15
|
-
match(method: string, pathname: HTTPPath): Promise<StandardMatchResult>;
|
16
|
-
}
|
17
|
-
interface StandardCodec {
|
18
|
-
encode(output: unknown, procedure: AnyProcedure): StandardResponse;
|
19
|
-
encodeError(error: ORPCError<any, any>): StandardResponse;
|
20
|
-
decode(request: StandardLazyRequest, params: StandardParams | undefined, procedure: AnyProcedure): Promise<unknown>;
|
21
|
-
}
|
22
|
-
|
23
|
-
type StandardHandleOptions<T extends Context> = {
|
24
|
-
prefix?: HTTPPath;
|
25
|
-
} & (Record<never, never> extends T ? {
|
26
|
-
context?: T;
|
27
|
-
} : {
|
28
|
-
context: T;
|
29
|
-
});
|
30
|
-
type StandardHandleResult = {
|
31
|
-
matched: true;
|
32
|
-
response: StandardResponse;
|
33
|
-
} | {
|
34
|
-
matched: false;
|
35
|
-
response: undefined;
|
36
|
-
};
|
37
|
-
type StandardHandlerInterceptorOptions<T extends Context> = StandardHandleOptions<T> & {
|
38
|
-
context: T;
|
39
|
-
request: StandardLazyRequest;
|
40
|
-
};
|
41
|
-
interface StandardHandlerOptions<TContext extends Context> {
|
42
|
-
plugins?: HandlerPlugin<TContext>[];
|
43
|
-
/**
|
44
|
-
* Interceptors at the request level, helpful when you want catch errors
|
45
|
-
*/
|
46
|
-
interceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, StandardHandleResult, unknown>[];
|
47
|
-
/**
|
48
|
-
* Interceptors at the root level, helpful when you want override the request/response
|
49
|
-
*/
|
50
|
-
rootInterceptors?: Interceptor<StandardHandlerInterceptorOptions<TContext>, StandardHandleResult, unknown>[];
|
51
|
-
/**
|
52
|
-
*
|
53
|
-
* Interceptors for procedure client.
|
54
|
-
*/
|
55
|
-
clientInterceptors?: Interceptor<ProcedureClientInterceptorOptions<TContext, AnySchema, Record<never, never>, Meta>, InferSchemaOutput<AnySchema>, ErrorFromErrorMap<Record<never, never>>>[];
|
56
|
-
}
|
57
|
-
declare class StandardHandler<T extends Context> {
|
58
|
-
private readonly matcher;
|
59
|
-
private readonly codec;
|
60
|
-
private readonly options;
|
61
|
-
private readonly plugin;
|
62
|
-
constructor(router: Router<any, T>, matcher: StandardMatcher, codec: StandardCodec, options: NoInfer<StandardHandlerOptions<T>>);
|
63
|
-
handle(request: StandardLazyRequest, ...[options]: MaybeOptionalOptions<StandardHandleOptions<T>>): Promise<StandardHandleResult>;
|
64
|
-
}
|
65
|
-
|
66
|
-
interface HandlerPlugin<TContext extends Context> {
|
67
|
-
init?(options: StandardHandlerOptions<TContext>): void;
|
68
|
-
}
|
69
|
-
declare class CompositeHandlerPlugin<TContext extends Context> implements HandlerPlugin<TContext> {
|
70
|
-
private readonly plugins;
|
71
|
-
constructor(plugins?: HandlerPlugin<TContext>[]);
|
72
|
-
init(options: StandardHandlerOptions<TContext>): void;
|
73
|
-
}
|
74
|
-
|
75
|
-
export { CompositeHandlerPlugin as C, type HandlerPlugin as H, type StandardHandleOptions as S, type StandardHandlerOptions as a, type StandardHandlerInterceptorOptions as b, type StandardCodec as c, type StandardParams as d, type StandardMatcher as e, type StandardMatchResult as f, type StandardHandleResult as g, StandardHandler as h };
|