@orpc/server 0.0.0-next.b15d206 → 0.0.0-next.d137cdf

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. package/dist/chunk-MZXEMHFS.js +272 -0
  2. package/dist/fetch.js +78 -649
  3. package/dist/index.js +190 -117
  4. package/dist/src/builder.d.ts +5 -1
  5. package/dist/src/fetch/handle.d.ts +7 -0
  6. package/dist/src/fetch/handler.d.ts +3 -0
  7. package/dist/src/fetch/index.d.ts +4 -0
  8. package/dist/src/fetch/types.d.ts +27 -0
  9. package/dist/src/index.d.ts +2 -0
  10. package/dist/src/lazy.d.ts +23 -0
  11. package/dist/src/procedure-caller.d.ts +17 -11
  12. package/dist/src/procedure-implementer.d.ts +5 -1
  13. package/dist/src/procedure.d.ts +5 -2
  14. package/dist/src/router-builder.d.ts +5 -0
  15. package/dist/src/router-caller.d.ts +7 -4
  16. package/dist/src/router-implementer.d.ts +7 -3
  17. package/dist/src/router.d.ts +6 -5
  18. package/package.json +15 -18
  19. package/dist/chunk-TDFYNRZV.js +0 -190
  20. package/dist/chunk-TDFYNRZV.js.map +0 -1
  21. package/dist/fetch.js.map +0 -1
  22. package/dist/index.js.map +0 -1
  23. package/dist/src/adapters/fetch.d.ts +0 -42
  24. package/dist/src/adapters/fetch.d.ts.map +0 -1
  25. package/dist/src/builder.d.ts.map +0 -1
  26. package/dist/src/index.d.ts.map +0 -1
  27. package/dist/src/middleware.d.ts.map +0 -1
  28. package/dist/src/procedure-builder.d.ts.map +0 -1
  29. package/dist/src/procedure-caller.d.ts.map +0 -1
  30. package/dist/src/procedure-implementer.d.ts.map +0 -1
  31. package/dist/src/procedure.d.ts.map +0 -1
  32. package/dist/src/router-builder.d.ts.map +0 -1
  33. package/dist/src/router-caller.d.ts.map +0 -1
  34. package/dist/src/router-implementer.d.ts.map +0 -1
  35. package/dist/src/router.d.ts.map +0 -1
  36. package/dist/src/types.d.ts.map +0 -1
  37. package/dist/src/utils.d.ts.map +0 -1
  38. package/dist/tsconfig.tsbuildinfo +0 -1
  39. package/src/adapters/fetch.test.ts +0 -629
  40. package/src/adapters/fetch.ts +0 -290
  41. package/src/builder.test.ts +0 -371
  42. package/src/builder.ts +0 -238
  43. package/src/index.ts +0 -16
  44. package/src/middleware.test.ts +0 -260
  45. package/src/middleware.ts +0 -136
  46. package/src/procedure-builder.test.ts +0 -223
  47. package/src/procedure-builder.ts +0 -158
  48. package/src/procedure-caller.test.ts +0 -171
  49. package/src/procedure-caller.ts +0 -138
  50. package/src/procedure-implementer.test.ts +0 -220
  51. package/src/procedure-implementer.ts +0 -102
  52. package/src/procedure.test.ts +0 -317
  53. package/src/procedure.ts +0 -237
  54. package/src/router-builder.test.ts +0 -106
  55. package/src/router-builder.ts +0 -122
  56. package/src/router-caller.test.ts +0 -126
  57. package/src/router-caller.ts +0 -64
  58. package/src/router-implementer.test.ts +0 -116
  59. package/src/router-implementer.ts +0 -113
  60. package/src/router.test-d.ts +0 -48
  61. package/src/router.test.ts +0 -142
  62. package/src/router.ts +0 -91
  63. package/src/types.test.ts +0 -18
  64. package/src/types.ts +0 -13
  65. package/src/utils.test.ts +0 -16
  66. package/src/utils.ts +0 -16
@@ -1,20 +1,21 @@
1
1
  import type { ContractProcedure, ContractRouter, SchemaInput, SchemaOutput } from '@orpc/contract';
2
+ import type { ANY_LAZY, DecoratedLazy, Lazy } from './lazy';
2
3
  import type { Context } from './types';
3
4
  import { type DecoratedProcedure, type Procedure } from './procedure';
4
5
  export interface Router<TContext extends Context> {
5
- [k: string]: Procedure<TContext, any, any, any, any> | Router<TContext>;
6
+ [k: string]: Procedure<TContext, any, any, any, any> | Lazy<Procedure<TContext, any, any, any, any>> | Router<TContext> | Lazy<Router<TContext>>;
6
7
  }
7
8
  export type HandledRouter<TRouter extends Router<any>> = {
8
- [K in keyof TRouter]: TRouter[K] extends Procedure<infer UContext, infer UExtraContext, infer UInputSchema, infer UOutputSchema, infer UFuncOutput> ? DecoratedProcedure<UContext, UExtraContext, UInputSchema, UOutputSchema, UFuncOutput> : TRouter[K] extends Router<any> ? HandledRouter<TRouter[K]> : never;
9
+ [K in keyof TRouter]: TRouter[K] extends Procedure<infer UContext, infer UExtraContext, infer UInputSchema, infer UOutputSchema, infer UFuncOutput> ? DecoratedProcedure<UContext, UExtraContext, UInputSchema, UOutputSchema, UFuncOutput> : TRouter[K] extends ANY_LAZY ? DecoratedLazy<TRouter[K]> : TRouter[K] extends Router<any> ? HandledRouter<TRouter[K]> : never;
9
10
  };
10
11
  export type RouterWithContract<TContext extends Context, TContract extends ContractRouter> = {
11
- [K in keyof TContract]: TContract[K] extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? Procedure<TContext, any, UInputSchema, UOutputSchema, any> : TContract[K] extends ContractRouter ? RouterWithContract<TContext, TContract[K]> : never;
12
+ [K in keyof TContract]: TContract[K] extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? Procedure<TContext, any, UInputSchema, UOutputSchema, any> | Lazy<Procedure<TContext, any, UInputSchema, UOutputSchema, any>> : TContract[K] extends ContractRouter ? RouterWithContract<TContext, TContract[K]> | Lazy<RouterWithContract<TContext, TContract[K]>> : never;
12
13
  };
13
14
  export declare function toContractRouter(router: ContractRouter | Router<any>): ContractRouter;
14
15
  export type InferRouterInputs<T extends Router<any>> = {
15
- [K in keyof T]: T[K] extends Procedure<any, any, infer UInputSchema, any, any> ? SchemaInput<UInputSchema> : T[K] extends Router<any> ? InferRouterInputs<T[K]> : never;
16
+ [K in keyof T]: T[K] extends Procedure<any, any, infer UInputSchema, any, any> | Lazy<Procedure<any, any, infer UInputSchema, any, any>> ? SchemaInput<UInputSchema> : T[K] extends Router<any> ? InferRouterInputs<T[K]> : never;
16
17
  };
17
18
  export type InferRouterOutputs<T extends Router<any>> = {
18
- [K in keyof T]: T[K] extends Procedure<any, any, any, infer UOutputSchema, infer UFuncOutput> ? SchemaOutput<UOutputSchema, UFuncOutput> : T[K] extends Router<any> ? InferRouterOutputs<T[K]> : never;
19
+ [K in keyof T]: T[K] extends Procedure<any, any, any, infer UOutputSchema, infer UFuncOutput> | Lazy<Procedure<any, any, any, infer UOutputSchema, infer UFuncOutput>> ? SchemaOutput<UOutputSchema, UFuncOutput> : T[K] extends Router<any> ? InferRouterOutputs<T[K]> : never;
19
20
  };
20
21
  //# sourceMappingURL=router.d.ts.map
package/package.json CHANGED
@@ -1,21 +1,17 @@
1
1
  {
2
2
  "name": "@orpc/server",
3
3
  "type": "module",
4
- "version": "0.0.0-next.b15d206",
5
- "author": {
6
- "name": "unnoq",
7
- "email": "contact@unnoq.com",
8
- "url": "https://unnoq.com"
9
- },
4
+ "version": "0.0.0-next.d137cdf",
10
5
  "license": "MIT",
11
- "homepage": "https://github.com/unnoq/orpc",
6
+ "homepage": "https://orpc.unnoq.com",
12
7
  "repository": {
13
8
  "type": "git",
14
- "url": "https://github.com/unnoq/orpc.git",
9
+ "url": "git+https://github.com/unnoq/orpc.git",
15
10
  "directory": "packages/server"
16
11
  },
17
12
  "keywords": [
18
- "unnoq"
13
+ "unnoq",
14
+ "orpc"
19
15
  ],
20
16
  "exports": {
21
17
  ".": {
@@ -24,7 +20,7 @@
24
20
  "default": "./dist/index.js"
25
21
  },
26
22
  "./fetch": {
27
- "types": "./dist/src/adapters/fetch.d.ts",
23
+ "types": "./dist/src/fetch/index.d.ts",
28
24
  "import": "./dist/fetch.js",
29
25
  "default": "./dist/fetch.js"
30
26
  },
@@ -33,23 +29,24 @@
33
29
  }
34
30
  },
35
31
  "files": [
36
- "dist",
37
- "src"
32
+ "!**/*.map",
33
+ "!**/*.tsbuildinfo",
34
+ "dist"
38
35
  ],
39
36
  "peerDependencies": {
40
37
  "zod": ">=3.23.0",
41
- "@orpc/zod": "0.0.0-next.b15d206"
38
+ "@orpc/zod": "0.0.0-next.d137cdf"
42
39
  },
43
40
  "dependencies": {
44
- "@orpc/contract": "0.0.0-next.b15d206",
45
- "@orpc/shared": "0.0.0-next.b15d206",
46
- "@orpc/transformer": "0.0.0-next.b15d206"
41
+ "@orpc/contract": "0.0.0-next.d137cdf",
42
+ "@orpc/transformer": "0.0.0-next.d137cdf",
43
+ "@orpc/shared": "0.0.0-next.d137cdf"
47
44
  },
48
45
  "devDependencies": {
49
- "hono": "^4.6.3"
46
+ "@orpc/openapi": "0.0.0-next.d137cdf"
50
47
  },
51
48
  "scripts": {
52
- "build": "tsup --clean --sourcemap --entry.index=src/index.ts --entry.fetch=src/adapters/fetch.ts --format=esm --onSuccess='tsc -b --noCheck'",
49
+ "build": "tsup --clean --sourcemap --entry.index=src/index.ts --entry.fetch=src/fetch/index.ts --format=esm --onSuccess='tsc -b --noCheck'",
53
50
  "build:watch": "pnpm run build --watch",
54
51
  "type:check": "tsc -b"
55
52
  }
@@ -1,190 +0,0 @@
1
- // src/utils.ts
2
- function mergeContext(a, b) {
3
- if (!a)
4
- return b;
5
- if (!b)
6
- return a;
7
- return {
8
- ...a,
9
- ...b
10
- };
11
- }
12
-
13
- // src/middleware.ts
14
- var decoratedMiddlewareSymbol = Symbol("\u{1F512}decoratedMiddleware");
15
- function decorateMiddleware(middleware) {
16
- if (Reflect.get(middleware, decoratedMiddlewareSymbol)) {
17
- return middleware;
18
- }
19
- const concat = (concatMiddleware, mapInput2) => {
20
- const concatMiddleware_ = mapInput2 ? decorateMiddleware(concatMiddleware).mapInput(mapInput2) : concatMiddleware;
21
- return decorateMiddleware(async (input, context, meta, ...rest) => {
22
- const input_ = input;
23
- const context_ = context;
24
- const meta_ = meta;
25
- const next = async (options) => {
26
- return concatMiddleware_(input_, mergeContext(context_, options.context), meta_, ...rest);
27
- };
28
- const m1 = await middleware(input_, context_, {
29
- ...meta_,
30
- next
31
- }, ...rest);
32
- return m1;
33
- });
34
- };
35
- const mapInput = (map) => {
36
- return decorateMiddleware(
37
- (input, ...rest) => middleware(map(input), ...rest)
38
- );
39
- };
40
- return Object.assign(middleware, {
41
- [decoratedMiddlewareSymbol]: true,
42
- concat,
43
- mapInput
44
- });
45
- }
46
-
47
- // src/procedure-caller.ts
48
- import { value } from "@orpc/shared";
49
- import { ORPCError } from "@orpc/shared/error";
50
- import { OpenAPIDeserializer } from "@orpc/transformer";
51
- function createProcedureCaller(options) {
52
- const path = options.path ?? [];
53
- const procedure = options.procedure;
54
- const caller = async (input) => {
55
- const input_ = (() => {
56
- if (!(input instanceof FormData)) {
57
- return input;
58
- }
59
- const transformer = new OpenAPIDeserializer({
60
- schema: procedure.zz$p.contract.zz$cp.InputSchema
61
- });
62
- return transformer.deserializeAsFormData(input);
63
- })();
64
- const validInput = (() => {
65
- const schema = procedure.zz$p.contract.zz$cp.InputSchema;
66
- if (!schema) {
67
- return input_;
68
- }
69
- try {
70
- return schema.parse(input_);
71
- } catch (e) {
72
- throw new ORPCError({
73
- message: "Validation input failed",
74
- code: "BAD_REQUEST",
75
- cause: e
76
- });
77
- }
78
- })();
79
- const middlewares = procedure.zz$p.middlewares ?? [];
80
- let currentMidIndex = 0;
81
- let currentContext = await value(options.context);
82
- const next = async (nextOptions) => {
83
- const mid = middlewares[currentMidIndex];
84
- currentMidIndex += 1;
85
- currentContext = mergeContext(currentContext, nextOptions.context);
86
- if (mid) {
87
- return await mid(validInput, currentContext, {
88
- path,
89
- procedure,
90
- next,
91
- output: (output2) => ({ output: output2, context: void 0 })
92
- });
93
- } else {
94
- return {
95
- output: await await procedure.zz$p.func(validInput, currentContext, {
96
- path,
97
- procedure
98
- }),
99
- context: currentContext
100
- };
101
- }
102
- };
103
- const output = (await next({})).output;
104
- const validOutput = await (async () => {
105
- const schema = procedure.zz$p.contract.zz$cp.OutputSchema;
106
- if (!schema) {
107
- return output;
108
- }
109
- const result = await schema.safeParseAsync(output);
110
- if (result.error) {
111
- throw new ORPCError({
112
- message: "Validation output failed",
113
- code: "INTERNAL_SERVER_ERROR",
114
- cause: result.error
115
- });
116
- }
117
- return result.data;
118
- })();
119
- return validOutput;
120
- };
121
- return caller;
122
- }
123
-
124
- // src/procedure.ts
125
- import {
126
- DecoratedContractProcedure,
127
- isContractProcedure
128
- } from "@orpc/contract";
129
- var Procedure = class {
130
- constructor(zz$p) {
131
- this.zz$p = zz$p;
132
- }
133
- };
134
- var DECORATED_PROCEDURE_SYMBOL = Symbol("DECORATED_PROCEDURE");
135
- function decorateProcedure(procedure) {
136
- if (DECORATED_PROCEDURE_SYMBOL in procedure) {
137
- return procedure;
138
- }
139
- return Object.assign(createProcedureCaller({
140
- procedure,
141
- context: void 0
142
- }), {
143
- [DECORATED_PROCEDURE_SYMBOL]: true,
144
- zz$p: procedure.zz$p,
145
- prefix(prefix) {
146
- return decorateProcedure({
147
- zz$p: {
148
- ...procedure.zz$p,
149
- contract: DecoratedContractProcedure.decorate(
150
- procedure.zz$p.contract
151
- ).prefix(prefix)
152
- }
153
- });
154
- },
155
- route(opts) {
156
- return decorateProcedure({
157
- zz$p: {
158
- ...procedure.zz$p,
159
- contract: DecoratedContractProcedure.decorate(
160
- procedure.zz$p.contract
161
- ).route(opts)
162
- }
163
- });
164
- },
165
- use(middleware, mapInput) {
166
- const middleware_ = mapInput ? decorateMiddleware(middleware).mapInput(mapInput) : middleware;
167
- return decorateProcedure({
168
- zz$p: {
169
- ...procedure.zz$p,
170
- middlewares: [middleware_, ...procedure.zz$p.middlewares ?? []]
171
- }
172
- });
173
- }
174
- });
175
- }
176
- function isProcedure(item) {
177
- if (item instanceof Procedure)
178
- return true;
179
- return (typeof item === "object" || typeof item === "function") && item !== null && "zz$p" in item && typeof item.zz$p === "object" && item.zz$p !== null && "contract" in item.zz$p && isContractProcedure(item.zz$p.contract) && "func" in item.zz$p && typeof item.zz$p.func === "function";
180
- }
181
-
182
- export {
183
- mergeContext,
184
- decorateMiddleware,
185
- createProcedureCaller,
186
- Procedure,
187
- decorateProcedure,
188
- isProcedure
189
- };
190
- //# sourceMappingURL=chunk-TDFYNRZV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils.ts","../src/middleware.ts","../src/procedure-caller.ts","../src/procedure.ts"],"sourcesContent":["import type { Context, MergeContext } from './types'\n\nexport function mergeContext<A extends Context, B extends Context>(\n a: A,\n b: B,\n): MergeContext<A, B> {\n if (!a)\n return b as any\n if (!b)\n return a as any\n\n return {\n ...a,\n ...b,\n } as any\n}\n","import type { Promisable } from '@orpc/shared'\nimport type { Context, MergeContext, Meta } from './types'\nimport { mergeContext } from './utils'\n\nexport type MiddlewareResult<TExtraContext extends Context, TOutput> = Promisable<{\n output: TOutput\n context: TExtraContext\n}>\n\nexport interface MiddlewareMeta<\n TOutput,\n> extends Meta {\n next: <UExtraContext extends Context = undefined>(\n options: UExtraContext extends undefined ? { context?: UExtraContext } : { context: UExtraContext }\n ) => MiddlewareResult<UExtraContext, TOutput>\n output: <UOutput>(output: UOutput) => MiddlewareResult<undefined, UOutput>\n}\n\nexport interface Middleware<\n TContext extends Context,\n TExtraContext extends Context,\n TInput,\n TOutput,\n> {\n (\n input: TInput,\n context: TContext,\n meta: MiddlewareMeta<TOutput>,\n ): Promisable<\n MiddlewareResult<TExtraContext, TOutput>\n >\n}\n\nexport interface MapInputMiddleware<TInput, TMappedInput> {\n (input: TInput): TMappedInput\n}\n\nexport interface DecoratedMiddleware<\n TContext extends Context,\n TExtraContext extends Context,\n TInput,\n TOutput,\n> extends Middleware<TContext, TExtraContext, TInput, TOutput> {\n concat: (<\n UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined,\n UInput = TInput,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n UInput & TInput,\n TOutput\n >,\n ) => DecoratedMiddleware<\n TContext,\n MergeContext<TExtraContext, UExtraContext>,\n TInput & UInput,\n TOutput\n >) & (<\n UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined,\n UInput = TInput,\n UMappedInput = unknown,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n UMappedInput,\n TOutput\n >,\n mapInput: MapInputMiddleware<UInput, UMappedInput>,\n ) => DecoratedMiddleware<\n TContext,\n MergeContext<TExtraContext, UExtraContext>,\n TInput & UInput,\n TOutput\n >)\n\n mapInput: <UInput = unknown>(\n map: MapInputMiddleware<UInput, TInput>,\n ) => DecoratedMiddleware<TContext, TExtraContext, UInput, TOutput>\n}\n\nconst decoratedMiddlewareSymbol = Symbol('🔒decoratedMiddleware')\n\nexport function decorateMiddleware<\n TContext extends Context,\n TExtraContext extends Context,\n TInput,\n TOutput,\n>(\n middleware: Middleware<TContext, TExtraContext, TInput, TOutput>,\n): DecoratedMiddleware<TContext, TExtraContext, TInput, TOutput> {\n if (Reflect.get(middleware, decoratedMiddlewareSymbol)) {\n return middleware as any\n }\n\n const concat = (\n concatMiddleware: Middleware<any, any, any, any>,\n mapInput?: MapInputMiddleware<any, any>,\n ): Middleware<any, any, any, any> => {\n const concatMiddleware_ = mapInput\n ? decorateMiddleware(concatMiddleware).mapInput(mapInput)\n : concatMiddleware\n\n return decorateMiddleware(async (input, context, meta, ...rest) => {\n const input_ = input as any\n const context_ = context as any\n const meta_ = meta as any\n\n const next: MiddlewareMeta<any>['next'] = async (options) => {\n return concatMiddleware_(input_, mergeContext(context_, options.context), meta_, ...rest)\n }\n\n const m1 = await middleware(input_, context_, {\n ...meta_,\n next,\n }, ...rest)\n\n return m1\n })\n }\n\n const mapInput = <UInput = unknown>(\n map: MapInputMiddleware<UInput, TInput>,\n ): DecoratedMiddleware<TContext, TExtraContext, UInput, TOutput> => {\n return decorateMiddleware((input, ...rest) =>\n middleware(map(input), ...rest),\n )\n }\n\n return Object.assign(middleware, {\n [decoratedMiddlewareSymbol]: true,\n concat: concat as any,\n mapInput,\n })\n}\n","import type { SchemaInput, SchemaOutput } from '@orpc/contract'\nimport type { MiddlewareMeta } from './middleware'\nimport type { Procedure } from './procedure'\nimport type { Context } from './types'\nimport { type Value, value } from '@orpc/shared'\nimport { ORPCError } from '@orpc/shared/error'\nimport { OpenAPIDeserializer } from '@orpc/transformer'\nimport { mergeContext } from './utils'\n\nexport interface CreateProcedureCallerOptions<\n TProcedure extends Procedure<any, any, any, any, any>,\n> {\n procedure: TProcedure\n\n /**\n * The context used when calling the procedure.\n */\n context: Value<\n TProcedure extends Procedure<infer UContext, any, any, any, any>\n ? UContext\n : never\n >\n\n /**\n * This is helpful for logging and analytics.\n *\n * @internal\n */\n path?: string[]\n}\n\nexport type ProcedureCaller<\n TProcedure extends Procedure<any, any, any, any, any>,\n> = TProcedure extends Procedure<\n any,\n any,\n infer UInputSchema,\n infer UOutputSchema,\n infer UFuncOutput\n>\n ? (\n ...input: [input: SchemaInput<UInputSchema> | FormData] | (undefined extends SchemaInput<UInputSchema> ? [] : never)\n ) => Promise<\n SchemaOutput<UOutputSchema, UFuncOutput>\n >\n : never\n\nexport function createProcedureCaller<\n TProcedure extends Procedure<any, any, any, any, any>,\n>(\n options: CreateProcedureCallerOptions<TProcedure>,\n): ProcedureCaller<TProcedure> {\n const path = options.path ?? []\n const procedure = options.procedure\n\n const caller = async (input: unknown): Promise<unknown> => {\n const input_ = (() => {\n if (!(input instanceof FormData)) {\n return input\n }\n\n const transformer = new OpenAPIDeserializer({\n schema: procedure.zz$p.contract.zz$cp.InputSchema,\n })\n\n return transformer.deserializeAsFormData(input)\n })()\n\n const validInput = (() => {\n const schema = procedure.zz$p.contract.zz$cp.InputSchema\n if (!schema) {\n return input_\n }\n\n try {\n return schema.parse(input_)\n }\n catch (e) {\n throw new ORPCError({\n message: 'Validation input failed',\n code: 'BAD_REQUEST',\n cause: e,\n })\n }\n })()\n\n const middlewares = procedure.zz$p.middlewares ?? []\n let currentMidIndex = 0\n let currentContext: Context = await value(options.context)\n\n const next: MiddlewareMeta<unknown>['next'] = async (nextOptions) => {\n const mid = middlewares[currentMidIndex]\n currentMidIndex += 1\n currentContext = mergeContext(currentContext, nextOptions.context)\n\n if (mid) {\n return await mid(validInput, currentContext, {\n path,\n procedure,\n next,\n output: output => ({ output, context: undefined }),\n })\n }\n else {\n return {\n output: await await procedure.zz$p.func(validInput, currentContext, {\n path,\n procedure,\n }),\n context: currentContext,\n }\n }\n }\n\n const output = (await next({})).output\n\n const validOutput = await (async () => {\n const schema = procedure.zz$p.contract.zz$cp.OutputSchema\n if (!schema) {\n return output\n }\n\n const result = await schema.safeParseAsync(output)\n if (result.error) {\n throw new ORPCError({\n message: 'Validation output failed',\n code: 'INTERNAL_SERVER_ERROR',\n cause: result.error,\n })\n }\n return result.data\n })()\n\n return validOutput\n }\n\n return caller as ProcedureCaller<TProcedure>\n}\n","import type { Promisable } from '@orpc/shared'\nimport type { ProcedureCaller } from './procedure-caller'\nimport type { Context, MergeContext, Meta } from './types'\nimport {\n type ContractProcedure,\n DecoratedContractProcedure,\n type HTTPPath,\n isContractProcedure,\n type RouteOptions,\n type Schema,\n type SchemaInput,\n type SchemaOutput,\n} from '@orpc/contract'\nimport {\n decorateMiddleware,\n type MapInputMiddleware,\n type Middleware,\n} from './middleware'\nimport { createProcedureCaller } from './procedure-caller'\n\nexport class Procedure<\n TContext extends Context,\n TExtraContext extends Context,\n TInputSchema extends Schema,\n TOutputSchema extends Schema,\n TFuncOutput extends SchemaOutput<TOutputSchema>,\n> {\n constructor(\n public zz$p: {\n middlewares?: Middleware<any, any, any, any>[]\n contract: ContractProcedure<TInputSchema, TOutputSchema>\n func: ProcedureFunc<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n TFuncOutput\n >\n },\n ) {}\n}\n\nexport type DecoratedProcedure<\n TContext extends Context,\n TExtraContext extends Context,\n TInputSchema extends Schema,\n TOutputSchema extends Schema,\n TFuncOutput extends SchemaOutput<TOutputSchema>,\n> = Procedure<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n TFuncOutput\n> & {\n prefix: (\n prefix: HTTPPath,\n ) => DecoratedProcedure<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n TFuncOutput\n >\n\n route: (\n opts: RouteOptions,\n ) => DecoratedProcedure<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n TFuncOutput\n >\n\n use: (<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n SchemaOutput<TInputSchema>,\n SchemaInput<TOutputSchema, TFuncOutput>\n >,\n ) => DecoratedProcedure<\n TContext,\n MergeContext<TExtraContext, UExtraContext>,\n TInputSchema,\n TOutputSchema,\n TFuncOutput\n >) & (<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n UMappedInput = unknown,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n UMappedInput,\n SchemaInput<TOutputSchema, TFuncOutput>\n >,\n mapInput: MapInputMiddleware<\n SchemaOutput<TInputSchema, TFuncOutput>,\n UMappedInput\n >,\n ) => DecoratedProcedure<\n TContext,\n MergeContext<TExtraContext, UExtraContext>,\n TInputSchema,\n TOutputSchema,\n TFuncOutput\n >)\n} & (undefined extends TContext\n ? ProcedureCaller<Procedure<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n TFuncOutput\n >>\n : unknown)\n\nexport interface ProcedureFunc<\n TContext extends Context,\n TExtraContext extends Context,\n TInputSchema extends Schema,\n TOutputSchema extends Schema,\n TOutput extends SchemaOutput<TOutputSchema>,\n> {\n (\n input: SchemaOutput<TInputSchema>,\n context: MergeContext<TContext, TExtraContext>,\n meta: Meta,\n ): Promisable<SchemaInput<TOutputSchema, TOutput>>\n}\n\nconst DECORATED_PROCEDURE_SYMBOL = Symbol('DECORATED_PROCEDURE')\n\nexport function decorateProcedure<\n TContext extends Context,\n TExtraContext extends Context,\n TInputSchema extends Schema,\n TOutputSchema extends Schema,\n TFuncOutput extends SchemaOutput<TOutputSchema>,\n>(\n procedure: Procedure<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n TFuncOutput\n >,\n): DecoratedProcedure<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n TFuncOutput\n > {\n if (DECORATED_PROCEDURE_SYMBOL in procedure) {\n return procedure as any\n }\n\n return Object.assign(createProcedureCaller({\n procedure,\n context: undefined as any,\n }), {\n [DECORATED_PROCEDURE_SYMBOL]: true,\n zz$p: procedure.zz$p,\n\n prefix(prefix: HTTPPath) {\n return decorateProcedure({\n zz$p: {\n ...procedure.zz$p,\n contract: DecoratedContractProcedure.decorate(\n procedure.zz$p.contract,\n ).prefix(prefix),\n },\n })\n },\n\n route(opts: RouteOptions) {\n return decorateProcedure({\n zz$p: {\n ...procedure.zz$p,\n contract: DecoratedContractProcedure.decorate(\n procedure.zz$p.contract,\n ).route(opts),\n },\n })\n },\n\n use(\n middleware: Middleware<any, any, any, any>,\n mapInput?: MapInputMiddleware<any, any>,\n ) {\n const middleware_ = mapInput\n ? decorateMiddleware(middleware).mapInput(mapInput)\n : middleware\n\n return decorateProcedure({\n zz$p: {\n ...procedure.zz$p,\n middlewares: [middleware_, ...(procedure.zz$p.middlewares ?? [])],\n },\n })\n },\n }) as any\n}\n\nexport type WELL_DEFINED_PROCEDURE = Procedure<\n Context,\n Context,\n Schema,\n Schema,\n unknown\n>\n\nexport function isProcedure(item: unknown): item is WELL_DEFINED_PROCEDURE {\n if (item instanceof Procedure)\n return true\n\n return (\n (typeof item === 'object' || typeof item === 'function')\n && item !== null\n && 'zz$p' in item\n && typeof item.zz$p === 'object'\n && item.zz$p !== null\n && 'contract' in item.zz$p\n && isContractProcedure(item.zz$p.contract)\n && 'func' in item.zz$p\n && typeof item.zz$p.func === 'function'\n )\n}\n"],"mappings":"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","names":["mapInput","output"]}
package/dist/fetch.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/adapters/fetch.ts","../../../node_modules/.pnpm/hono@4.6.6/node_modules/hono/dist/router.js","../../../node_modules/.pnpm/hono@4.6.6/node_modules/hono/dist/utils/url.js","../../../node_modules/.pnpm/hono@4.6.6/node_modules/hono/dist/router/linear-router/router.js","../../../node_modules/.pnpm/hono@4.6.6/node_modules/hono/dist/router/reg-exp-router/node.js","../../../node_modules/.pnpm/hono@4.6.6/node_modules/hono/dist/router/reg-exp-router/trie.js","../../../node_modules/.pnpm/hono@4.6.6/node_modules/hono/dist/router/reg-exp-router/router.js"],"sourcesContent":["/// <reference lib=\"dom\" />\n\nimport type {\n PartialOnUndefinedDeep,\n Promisable,\n Value,\n} from '@orpc/shared'\nimport type { Router } from '../router'\nimport {\n type HTTPPath,\n ORPC_HEADER,\n ORPC_HEADER_VALUE,\n standardizeHTTPPath,\n} from '@orpc/contract'\nimport {\n get,\n isPlainObject,\n mapValues,\n trim,\n value,\n} from '@orpc/shared'\nimport { ORPCError } from '@orpc/shared/error'\nimport {\n OpenAPIDeserializer,\n OpenAPISerializer,\n ORPCDeserializer,\n ORPCSerializer,\n zodCoerce,\n} from '@orpc/transformer'\nimport { LinearRouter } from 'hono/router/linear-router'\nimport { RegExpRouter } from 'hono/router/reg-exp-router'\nimport { isProcedure, type WELL_DEFINED_PROCEDURE } from '../procedure'\nimport { createProcedureCaller } from '../procedure-caller'\n\nexport interface FetchHandlerHooks {\n next: () => Promise<Response>\n response: (response: Response) => Response\n}\n\nexport interface CreateFetchHandlerOptions<TRouter extends Router<any>> {\n router: TRouter\n\n /**\n * Hooks for executing logics on lifecycle events.\n */\n hooks?: (\n context: TRouter extends Router<infer UContext> ? UContext : never,\n hooks: FetchHandlerHooks,\n ) => Promisable<Response>\n\n /**\n * It will help improve the cold start time. But it will increase the performance.\n *\n * @default false\n */\n serverless?: boolean\n}\n\nexport function createFetchHandler<TRouter extends Router<any>>(\n options: CreateFetchHandlerOptions<TRouter>,\n): FetchHandler<TRouter> {\n const routing = options.serverless\n ? new LinearRouter<[string[], WELL_DEFINED_PROCEDURE]>()\n : new RegExpRouter<[string[], WELL_DEFINED_PROCEDURE]>()\n\n const addRouteRecursively = (router: Router<any>, basePath: string[]) => {\n for (const key in router) {\n const currentPath = [...basePath, key]\n const item = router[key] as WELL_DEFINED_PROCEDURE | Router<any>\n\n if (isProcedure(item)) {\n if (item.zz$p.contract.zz$cp.path) {\n const method = item.zz$p.contract.zz$cp.method ?? 'POST'\n const path = openAPIPathToRouterPath(item.zz$p.contract.zz$cp.path)\n\n routing.add(method, path, [currentPath, item])\n }\n }\n else {\n addRouteRecursively(item, currentPath)\n }\n }\n }\n\n addRouteRecursively(options.router, [])\n\n return async (requestOptions) => {\n const isORPCTransformer\n = requestOptions.request.headers.get(ORPC_HEADER) === ORPC_HEADER_VALUE\n const accept = requestOptions.request.headers.get('Accept') || undefined\n\n const serializer = isORPCTransformer\n ? new ORPCSerializer()\n : new OpenAPISerializer({ accept })\n\n const context = await value(requestOptions.context)\n\n const handler = async () => {\n const url = new URL(requestOptions.request.url)\n const pathname = `/${trim(url.pathname.replace(requestOptions.prefix ?? '', ''), '/')}`\n\n let path: string[] | undefined\n let procedure: WELL_DEFINED_PROCEDURE | undefined\n let params: Record<string, string> | undefined\n\n if (isORPCTransformer) {\n path = trim(pathname, '/').split('/').map(decodeURIComponent)\n const val = get(options.router, path)\n\n if (isProcedure(val)) {\n procedure = val\n }\n }\n else {\n const customMethod\n = requestOptions.request.method === 'POST'\n ? url.searchParams.get('method')?.toUpperCase()\n : undefined\n const method = customMethod || requestOptions.request.method\n\n const [matches, params_] = routing.match(method, pathname)\n\n const [match] = matches.sort((a, b) => {\n return Object.keys(a[1]).length - Object.keys(b[1]).length\n })\n\n if (match) {\n path = match[0][0]\n procedure = match[0][1]\n\n if (params_) {\n params = mapValues(\n (match as any)[1]!,\n v => params_[v as number]!,\n )\n }\n else {\n params = match[1] as Record<string, string>\n }\n }\n\n if (!path || !procedure) {\n path = trim(pathname, '/').split('/').map(decodeURIComponent)\n\n const val = get(options.router, path)\n\n if (isProcedure(val)) {\n procedure = val\n }\n }\n }\n\n if (!path || !procedure) {\n throw new ORPCError({ code: 'NOT_FOUND', message: 'Not found' })\n }\n\n const deserializer = isORPCTransformer\n ? new ORPCDeserializer()\n : new OpenAPIDeserializer({\n schema: procedure.zz$p.contract.zz$cp.InputSchema,\n })\n\n const input_ = await (async () => {\n try {\n return await deserializer.deserialize(requestOptions.request)\n }\n catch (e) {\n throw new ORPCError({\n code: 'BAD_REQUEST',\n message:\n 'Cannot parse request. Please check the request body and Content-Type header.',\n cause: e,\n })\n }\n })()\n\n const input = (() => {\n if (!params || Object.keys(params).length === 0) {\n return input_\n }\n\n const coercedParams = procedure.zz$p.contract.zz$cp.InputSchema\n ? (zodCoerce(\n procedure.zz$p.contract.zz$cp.InputSchema,\n { ...params },\n {\n bracketNotation: true,\n },\n ) as object)\n : params\n\n if (!isPlainObject(input_)) {\n return coercedParams\n }\n\n return {\n ...coercedParams,\n ...input_,\n }\n })()\n\n const caller = createProcedureCaller({\n context,\n procedure,\n path,\n })\n\n const output = await caller(input)\n\n const { body, headers } = serializer.serialize(output)\n\n return new Response(body, {\n status: 200,\n headers,\n })\n }\n\n try {\n return await options.hooks?.(context as any, {\n next: handler,\n response: response => response,\n }) ?? await handler()\n }\n catch (e) {\n const error = toORPCError(e)\n\n try {\n const { body, headers } = serializer.serialize(error.toJSON())\n\n return new Response(body, {\n status: error.status,\n headers,\n })\n }\n catch (e) {\n const error = toORPCError(e)\n\n // fallback to OpenAPI serializer (without accept) when expected serializer has failed\n const { body, headers } = new OpenAPISerializer().serialize(\n error.toJSON(),\n )\n\n return new Response(body, {\n status: error.status,\n headers,\n })\n }\n }\n }\n}\n\nfunction openAPIPathToRouterPath(path: HTTPPath): string {\n return standardizeHTTPPath(path).replace(/\\{([^}]+)\\}/g, ':$1')\n}\n\nexport type FetchHandlerOptions<TRouter extends Router<any>> = {\n /**\n * The request need to be handled.\n */\n request: Request\n\n /**\n * Remove the prefix from the request path.\n *\n * @example /orpc\n * @example /api\n */\n prefix?: string\n} & PartialOnUndefinedDeep<{\n /**\n * The context used to handle the request.\n */\n context: Value<\n TRouter extends Router<infer UContext> ? UContext : never\n >\n}>\n\nexport interface FetchHandler<TRouter extends Router<any>> {\n (options: FetchHandlerOptions<TRouter>): Promise<Response>\n}\n\nfunction toORPCError(e: unknown): ORPCError<any, any> {\n return e instanceof ORPCError\n ? e\n : new ORPCError({\n code: 'INTERNAL_SERVER_ERROR',\n message: 'Internal server error',\n cause: e,\n })\n}\n","// src/router.ts\nvar METHOD_NAME_ALL = \"ALL\";\nvar METHOD_NAME_ALL_LOWERCASE = \"all\";\nvar METHODS = [\"get\", \"post\", \"put\", \"delete\", \"options\", \"patch\"];\nvar MESSAGE_MATCHER_IS_ALREADY_BUILT = \"Can not add a route since the matcher is already built.\";\nvar UnsupportedPathError = class extends Error {\n};\nexport {\n MESSAGE_MATCHER_IS_ALREADY_BUILT,\n METHODS,\n METHOD_NAME_ALL,\n METHOD_NAME_ALL_LOWERCASE,\n UnsupportedPathError\n};\n","// src/utils/url.ts\nvar splitPath = (path) => {\n const paths = path.split(\"/\");\n if (paths[0] === \"\") {\n paths.shift();\n }\n return paths;\n};\nvar splitRoutingPath = (routePath) => {\n const { groups, path } = extractGroupsFromPath(routePath);\n const paths = splitPath(path);\n return replaceGroupMarks(paths, groups);\n};\nvar extractGroupsFromPath = (path) => {\n const groups = [];\n path = path.replace(/\\{[^}]+\\}/g, (match, index) => {\n const mark = `@${index}`;\n groups.push([mark, match]);\n return mark;\n });\n return { groups, path };\n};\nvar replaceGroupMarks = (paths, groups) => {\n for (let i = groups.length - 1; i >= 0; i--) {\n const [mark] = groups[i];\n for (let j = paths.length - 1; j >= 0; j--) {\n if (paths[j].includes(mark)) {\n paths[j] = paths[j].replace(mark, groups[i][1]);\n break;\n }\n }\n }\n return paths;\n};\nvar patternCache = {};\nvar getPattern = (label) => {\n if (label === \"*\") {\n return \"*\";\n }\n const match = label.match(/^\\:([^\\{\\}]+)(?:\\{(.+)\\})?$/);\n if (match) {\n if (!patternCache[label]) {\n if (match[2]) {\n patternCache[label] = [label, match[1], new RegExp(\"^\" + match[2] + \"$\")];\n } else {\n patternCache[label] = [label, match[1], true];\n }\n }\n return patternCache[label];\n }\n return null;\n};\nvar tryDecodeURI = (str) => {\n try {\n return decodeURI(str);\n } catch {\n return str.replace(/(?:%[0-9A-Fa-f]{2})+/g, (match) => {\n try {\n return decodeURI(match);\n } catch {\n return match;\n }\n });\n }\n};\nvar getPath = (request) => {\n const url = request.url;\n const start = url.indexOf(\"/\", 8);\n let i = start;\n for (; i < url.length; i++) {\n const charCode = url.charCodeAt(i);\n if (charCode === 37) {\n const queryIndex = url.indexOf(\"?\", i);\n const path = url.slice(start, queryIndex === -1 ? void 0 : queryIndex);\n return tryDecodeURI(path.includes(\"%25\") ? path.replace(/%25/g, \"%2525\") : path);\n } else if (charCode === 63) {\n break;\n }\n }\n return url.slice(start, i);\n};\nvar getQueryStrings = (url) => {\n const queryIndex = url.indexOf(\"?\", 8);\n return queryIndex === -1 ? \"\" : \"?\" + url.slice(queryIndex + 1);\n};\nvar getPathNoStrict = (request) => {\n const result = getPath(request);\n return result.length > 1 && result[result.length - 1] === \"/\" ? result.slice(0, -1) : result;\n};\nvar mergePath = (...paths) => {\n let p = \"\";\n let endsWithSlash = false;\n for (let path of paths) {\n if (p[p.length - 1] === \"/\") {\n p = p.slice(0, -1);\n endsWithSlash = true;\n }\n if (path[0] !== \"/\") {\n path = `/${path}`;\n }\n if (path === \"/\" && endsWithSlash) {\n p = `${p}/`;\n } else if (path !== \"/\") {\n p = `${p}${path}`;\n }\n if (path === \"/\" && p === \"\") {\n p = \"/\";\n }\n }\n return p;\n};\nvar checkOptionalParameter = (path) => {\n if (!path.match(/\\:.+\\?$/)) {\n return null;\n }\n const segments = path.split(\"/\");\n const results = [];\n let basePath = \"\";\n segments.forEach((segment) => {\n if (segment !== \"\" && !/\\:/.test(segment)) {\n basePath += \"/\" + segment;\n } else if (/\\:/.test(segment)) {\n if (/\\?/.test(segment)) {\n if (results.length === 0 && basePath === \"\") {\n results.push(\"/\");\n } else {\n results.push(basePath);\n }\n const optionalSegment = segment.replace(\"?\", \"\");\n basePath += \"/\" + optionalSegment;\n results.push(basePath);\n } else {\n basePath += \"/\" + segment;\n }\n }\n });\n return results.filter((v, i, a) => a.indexOf(v) === i);\n};\nvar _decodeURI = (value) => {\n if (!/[%+]/.test(value)) {\n return value;\n }\n if (value.indexOf(\"+\") !== -1) {\n value = value.replace(/\\+/g, \" \");\n }\n return /%/.test(value) ? decodeURIComponent_(value) : value;\n};\nvar _getQueryParam = (url, key, multiple) => {\n let encoded;\n if (!multiple && key && !/[%+]/.test(key)) {\n let keyIndex2 = url.indexOf(`?${key}`, 8);\n if (keyIndex2 === -1) {\n keyIndex2 = url.indexOf(`&${key}`, 8);\n }\n while (keyIndex2 !== -1) {\n const trailingKeyCode = url.charCodeAt(keyIndex2 + key.length + 1);\n if (trailingKeyCode === 61) {\n const valueIndex = keyIndex2 + key.length + 2;\n const endIndex = url.indexOf(\"&\", valueIndex);\n return _decodeURI(url.slice(valueIndex, endIndex === -1 ? void 0 : endIndex));\n } else if (trailingKeyCode == 38 || isNaN(trailingKeyCode)) {\n return \"\";\n }\n keyIndex2 = url.indexOf(`&${key}`, keyIndex2 + 1);\n }\n encoded = /[%+]/.test(url);\n if (!encoded) {\n return void 0;\n }\n }\n const results = {};\n encoded ??= /[%+]/.test(url);\n let keyIndex = url.indexOf(\"?\", 8);\n while (keyIndex !== -1) {\n const nextKeyIndex = url.indexOf(\"&\", keyIndex + 1);\n let valueIndex = url.indexOf(\"=\", keyIndex);\n if (valueIndex > nextKeyIndex && nextKeyIndex !== -1) {\n valueIndex = -1;\n }\n let name = url.slice(\n keyIndex + 1,\n valueIndex === -1 ? nextKeyIndex === -1 ? void 0 : nextKeyIndex : valueIndex\n );\n if (encoded) {\n name = _decodeURI(name);\n }\n keyIndex = nextKeyIndex;\n if (name === \"\") {\n continue;\n }\n let value;\n if (valueIndex === -1) {\n value = \"\";\n } else {\n value = url.slice(valueIndex + 1, nextKeyIndex === -1 ? void 0 : nextKeyIndex);\n if (encoded) {\n value = _decodeURI(value);\n }\n }\n if (multiple) {\n if (!(results[name] && Array.isArray(results[name]))) {\n results[name] = [];\n }\n ;\n results[name].push(value);\n } else {\n results[name] ??= value;\n }\n }\n return key ? results[key] : results;\n};\nvar getQueryParam = _getQueryParam;\nvar getQueryParams = (url, key) => {\n return _getQueryParam(url, key, true);\n};\nvar decodeURIComponent_ = decodeURIComponent;\nexport {\n checkOptionalParameter,\n decodeURIComponent_,\n getPath,\n getPathNoStrict,\n getPattern,\n getQueryParam,\n getQueryParams,\n getQueryStrings,\n mergePath,\n splitPath,\n splitRoutingPath\n};\n","// src/router/linear-router/router.ts\nimport { METHOD_NAME_ALL, UnsupportedPathError } from \"../../router.js\";\nimport { checkOptionalParameter } from \"../../utils/url.js\";\nvar emptyParams = /* @__PURE__ */ Object.create(null);\nvar splitPathRe = /\\/(:\\w+(?:{(?:(?:{[\\d,]+})|[^}])+})?)|\\/[^\\/\\?]+|(\\?)/g;\nvar splitByStarRe = /\\*/;\nvar LinearRouter = class {\n name = \"LinearRouter\";\n routes = [];\n add(method, path, handler) {\n ;\n (checkOptionalParameter(path) || [path]).forEach((p) => {\n this.routes.push([method, p, handler]);\n });\n }\n match(method, path) {\n const handlers = [];\n ROUTES_LOOP:\n for (let i = 0, len = this.routes.length; i < len; i++) {\n const [routeMethod, routePath, handler] = this.routes[i];\n if (routeMethod !== method && routeMethod !== METHOD_NAME_ALL) {\n continue;\n }\n if (routePath === \"*\" || routePath === \"/*\") {\n handlers.push([handler, emptyParams]);\n continue;\n }\n const hasStar = routePath.indexOf(\"*\") !== -1;\n const hasLabel = routePath.indexOf(\":\") !== -1;\n if (!hasStar && !hasLabel) {\n if (routePath === path || routePath + \"/\" === path) {\n handlers.push([handler, emptyParams]);\n }\n } else if (hasStar && !hasLabel) {\n const endsWithStar = routePath.charCodeAt(routePath.length - 1) === 42;\n const parts = (endsWithStar ? routePath.slice(0, -2) : routePath).split(splitByStarRe);\n const lastIndex = parts.length - 1;\n for (let j = 0, pos = 0, len2 = parts.length; j < len2; j++) {\n const part = parts[j];\n const index = path.indexOf(part, pos);\n if (index !== pos) {\n continue ROUTES_LOOP;\n }\n pos += part.length;\n if (j === lastIndex) {\n if (!endsWithStar && pos !== path.length && !(pos === path.length - 1 && path.charCodeAt(pos) === 47)) {\n continue ROUTES_LOOP;\n }\n } else {\n const index2 = path.indexOf(\"/\", pos);\n if (index2 === -1) {\n continue ROUTES_LOOP;\n }\n pos = index2;\n }\n }\n handlers.push([handler, emptyParams]);\n } else if (hasLabel && !hasStar) {\n const params = /* @__PURE__ */ Object.create(null);\n const parts = routePath.match(splitPathRe);\n const lastIndex = parts.length - 1;\n for (let j = 0, pos = 0, len2 = parts.length; j < len2; j++) {\n if (pos === -1 || pos >= path.length) {\n continue ROUTES_LOOP;\n }\n const part = parts[j];\n if (part.charCodeAt(1) === 58) {\n let name = part.slice(2);\n let value;\n if (name.charCodeAt(name.length - 1) === 125) {\n const openBracePos = name.indexOf(\"{\");\n const pattern = name.slice(openBracePos + 1, -1);\n const restPath = path.slice(pos + 1);\n const match = new RegExp(pattern, \"d\").exec(restPath);\n if (!match || match.indices[0][0] !== 0 || match.indices[0][1] === 0) {\n continue ROUTES_LOOP;\n }\n name = name.slice(0, openBracePos);\n value = restPath.slice(...match.indices[0]);\n pos += match.indices[0][1] + 1;\n } else {\n let endValuePos = path.indexOf(\"/\", pos + 1);\n if (endValuePos === -1) {\n if (pos + 1 === path.length) {\n continue ROUTES_LOOP;\n }\n endValuePos = path.length;\n }\n value = path.slice(pos + 1, endValuePos);\n pos = endValuePos;\n }\n params[name] ||= value;\n } else {\n const index = path.indexOf(part, pos);\n if (index !== pos) {\n continue ROUTES_LOOP;\n }\n pos += part.length;\n }\n if (j === lastIndex) {\n if (pos !== path.length && !(pos === path.length - 1 && path.charCodeAt(pos) === 47)) {\n continue ROUTES_LOOP;\n }\n }\n }\n handlers.push([handler, params]);\n } else if (hasLabel && hasStar) {\n throw new UnsupportedPathError();\n }\n }\n return [handlers];\n }\n};\nexport {\n LinearRouter\n};\n","// src/router/reg-exp-router/node.ts\nvar LABEL_REG_EXP_STR = \"[^/]+\";\nvar ONLY_WILDCARD_REG_EXP_STR = \".*\";\nvar TAIL_WILDCARD_REG_EXP_STR = \"(?:|/.*)\";\nvar PATH_ERROR = Symbol();\nvar regExpMetaChars = new Set(\".\\\\+*[^]$()\");\nfunction compareKey(a, b) {\n if (a.length === 1) {\n return b.length === 1 ? a < b ? -1 : 1 : -1;\n }\n if (b.length === 1) {\n return 1;\n }\n if (a === ONLY_WILDCARD_REG_EXP_STR || a === TAIL_WILDCARD_REG_EXP_STR) {\n return 1;\n } else if (b === ONLY_WILDCARD_REG_EXP_STR || b === TAIL_WILDCARD_REG_EXP_STR) {\n return -1;\n }\n if (a === LABEL_REG_EXP_STR) {\n return 1;\n } else if (b === LABEL_REG_EXP_STR) {\n return -1;\n }\n return a.length === b.length ? a < b ? -1 : 1 : b.length - a.length;\n}\nvar Node = class {\n index;\n varIndex;\n children = /* @__PURE__ */ Object.create(null);\n insert(tokens, index, paramMap, context, pathErrorCheckOnly) {\n if (tokens.length === 0) {\n if (this.index !== void 0) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n this.index = index;\n return;\n }\n const [token, ...restTokens] = tokens;\n const pattern = token === \"*\" ? restTokens.length === 0 ? [\"\", \"\", ONLY_WILDCARD_REG_EXP_STR] : [\"\", \"\", LABEL_REG_EXP_STR] : token === \"/*\" ? [\"\", \"\", TAIL_WILDCARD_REG_EXP_STR] : token.match(/^\\:([^\\{\\}]+)(?:\\{(.+)\\})?$/);\n let node;\n if (pattern) {\n const name = pattern[1];\n let regexpStr = pattern[2] || LABEL_REG_EXP_STR;\n if (name && pattern[2]) {\n regexpStr = regexpStr.replace(/^\\((?!\\?:)(?=[^)]+\\)$)/, \"(?:\");\n if (/\\((?!\\?:)/.test(regexpStr)) {\n throw PATH_ERROR;\n }\n }\n node = this.children[regexpStr];\n if (!node) {\n if (Object.keys(this.children).some(\n (k) => k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR\n )) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n node = this.children[regexpStr] = new Node();\n if (name !== \"\") {\n node.varIndex = context.varIndex++;\n }\n }\n if (!pathErrorCheckOnly && name !== \"\") {\n paramMap.push([name, node.varIndex]);\n }\n } else {\n node = this.children[token];\n if (!node) {\n if (Object.keys(this.children).some(\n (k) => k.length > 1 && k !== ONLY_WILDCARD_REG_EXP_STR && k !== TAIL_WILDCARD_REG_EXP_STR\n )) {\n throw PATH_ERROR;\n }\n if (pathErrorCheckOnly) {\n return;\n }\n node = this.children[token] = new Node();\n }\n }\n node.insert(restTokens, index, paramMap, context, pathErrorCheckOnly);\n }\n buildRegExpStr() {\n const childKeys = Object.keys(this.children).sort(compareKey);\n const strList = childKeys.map((k) => {\n const c = this.children[k];\n return (typeof c.varIndex === \"number\" ? `(${k})@${c.varIndex}` : regExpMetaChars.has(k) ? `\\\\${k}` : k) + c.buildRegExpStr();\n });\n if (typeof this.index === \"number\") {\n strList.unshift(`#${this.index}`);\n }\n if (strList.length === 0) {\n return \"\";\n }\n if (strList.length === 1) {\n return strList[0];\n }\n return \"(?:\" + strList.join(\"|\") + \")\";\n }\n};\nexport {\n Node,\n PATH_ERROR\n};\n","// src/router/reg-exp-router/trie.ts\nimport { Node } from \"./node.js\";\nvar Trie = class {\n context = { varIndex: 0 };\n root = new Node();\n insert(path, index, pathErrorCheckOnly) {\n const paramAssoc = [];\n const groups = [];\n for (let i = 0; ; ) {\n let replaced = false;\n path = path.replace(/\\{[^}]+\\}/g, (m) => {\n const mark = `@\\\\${i}`;\n groups[i] = [mark, m];\n i++;\n replaced = true;\n return mark;\n });\n if (!replaced) {\n break;\n }\n }\n const tokens = path.match(/(?::[^\\/]+)|(?:\\/\\*$)|./g) || [];\n for (let i = groups.length - 1; i >= 0; i--) {\n const [mark] = groups[i];\n for (let j = tokens.length - 1; j >= 0; j--) {\n if (tokens[j].indexOf(mark) !== -1) {\n tokens[j] = tokens[j].replace(mark, groups[i][1]);\n break;\n }\n }\n }\n this.root.insert(tokens, index, paramAssoc, this.context, pathErrorCheckOnly);\n return paramAssoc;\n }\n buildRegExp() {\n let regexp = this.root.buildRegExpStr();\n if (regexp === \"\") {\n return [/^$/, [], []];\n }\n let captureIndex = 0;\n const indexReplacementMap = [];\n const paramReplacementMap = [];\n regexp = regexp.replace(/#(\\d+)|@(\\d+)|\\.\\*\\$/g, (_, handlerIndex, paramIndex) => {\n if (typeof handlerIndex !== \"undefined\") {\n indexReplacementMap[++captureIndex] = Number(handlerIndex);\n return \"$()\";\n }\n if (typeof paramIndex !== \"undefined\") {\n paramReplacementMap[Number(paramIndex)] = ++captureIndex;\n return \"\";\n }\n return \"\";\n });\n return [new RegExp(`^${regexp}`), indexReplacementMap, paramReplacementMap];\n }\n};\nexport {\n Trie\n};\n","// src/router/reg-exp-router/router.ts\nimport {\n MESSAGE_MATCHER_IS_ALREADY_BUILT,\n METHOD_NAME_ALL,\n UnsupportedPathError\n} from \"../../router.js\";\nimport { checkOptionalParameter } from \"../../utils/url.js\";\nimport { PATH_ERROR } from \"./node.js\";\nimport { Trie } from \"./trie.js\";\nvar emptyParam = [];\nvar nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)];\nvar wildcardRegExpCache = /* @__PURE__ */ Object.create(null);\nfunction buildWildcardRegExp(path) {\n return wildcardRegExpCache[path] ??= new RegExp(\n path === \"*\" ? \"\" : `^${path.replace(\n /\\/\\*$|([.\\\\+*[^\\]$()])/g,\n (_, metaChar) => metaChar ? `\\\\${metaChar}` : \"(?:|/.*)\"\n )}$`\n );\n}\nfunction clearWildcardRegExpCache() {\n wildcardRegExpCache = /* @__PURE__ */ Object.create(null);\n}\nfunction buildMatcherFromPreprocessedRoutes(routes) {\n const trie = new Trie();\n const handlerData = [];\n if (routes.length === 0) {\n return nullMatcher;\n }\n const routesWithStaticPathFlag = routes.map(\n (route) => [!/\\*|\\/:/.test(route[0]), ...route]\n ).sort(\n ([isStaticA, pathA], [isStaticB, pathB]) => isStaticA ? 1 : isStaticB ? -1 : pathA.length - pathB.length\n );\n const staticMap = /* @__PURE__ */ Object.create(null);\n for (let i = 0, j = -1, len = routesWithStaticPathFlag.length; i < len; i++) {\n const [pathErrorCheckOnly, path, handlers] = routesWithStaticPathFlag[i];\n if (pathErrorCheckOnly) {\n staticMap[path] = [handlers.map(([h]) => [h, /* @__PURE__ */ Object.create(null)]), emptyParam];\n } else {\n j++;\n }\n let paramAssoc;\n try {\n paramAssoc = trie.insert(path, j, pathErrorCheckOnly);\n } catch (e) {\n throw e === PATH_ERROR ? new UnsupportedPathError(path) : e;\n }\n if (pathErrorCheckOnly) {\n continue;\n }\n handlerData[j] = handlers.map(([h, paramCount]) => {\n const paramIndexMap = /* @__PURE__ */ Object.create(null);\n paramCount -= 1;\n for (; paramCount >= 0; paramCount--) {\n const [key, value] = paramAssoc[paramCount];\n paramIndexMap[key] = value;\n }\n return [h, paramIndexMap];\n });\n }\n const [regexp, indexReplacementMap, paramReplacementMap] = trie.buildRegExp();\n for (let i = 0, len = handlerData.length; i < len; i++) {\n for (let j = 0, len2 = handlerData[i].length; j < len2; j++) {\n const map = handlerData[i][j]?.[1];\n if (!map) {\n continue;\n }\n const keys = Object.keys(map);\n for (let k = 0, len3 = keys.length; k < len3; k++) {\n map[keys[k]] = paramReplacementMap[map[keys[k]]];\n }\n }\n }\n const handlerMap = [];\n for (const i in indexReplacementMap) {\n handlerMap[i] = handlerData[indexReplacementMap[i]];\n }\n return [regexp, handlerMap, staticMap];\n}\nfunction findMiddleware(middleware, path) {\n if (!middleware) {\n return void 0;\n }\n for (const k of Object.keys(middleware).sort((a, b) => b.length - a.length)) {\n if (buildWildcardRegExp(k).test(path)) {\n return [...middleware[k]];\n }\n }\n return void 0;\n}\nvar RegExpRouter = class {\n name = \"RegExpRouter\";\n middleware;\n routes;\n constructor() {\n this.middleware = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };\n this.routes = { [METHOD_NAME_ALL]: /* @__PURE__ */ Object.create(null) };\n }\n add(method, path, handler) {\n const { middleware, routes } = this;\n if (!middleware || !routes) {\n throw new Error(MESSAGE_MATCHER_IS_ALREADY_BUILT);\n }\n if (!middleware[method]) {\n ;\n [middleware, routes].forEach((handlerMap) => {\n handlerMap[method] = /* @__PURE__ */ Object.create(null);\n Object.keys(handlerMap[METHOD_NAME_ALL]).forEach((p) => {\n handlerMap[method][p] = [...handlerMap[METHOD_NAME_ALL][p]];\n });\n });\n }\n if (path === \"/*\") {\n path = \"*\";\n }\n const paramCount = (path.match(/\\/:/g) || []).length;\n if (/\\*$/.test(path)) {\n const re = buildWildcardRegExp(path);\n if (method === METHOD_NAME_ALL) {\n Object.keys(middleware).forEach((m) => {\n middleware[m][path] ||= findMiddleware(middleware[m], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || [];\n });\n } else {\n middleware[method][path] ||= findMiddleware(middleware[method], path) || findMiddleware(middleware[METHOD_NAME_ALL], path) || [];\n }\n Object.keys(middleware).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n Object.keys(middleware[m]).forEach((p) => {\n re.test(p) && middleware[m][p].push([handler, paramCount]);\n });\n }\n });\n Object.keys(routes).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n Object.keys(routes[m]).forEach(\n (p) => re.test(p) && routes[m][p].push([handler, paramCount])\n );\n }\n });\n return;\n }\n const paths = checkOptionalParameter(path) || [path];\n for (let i = 0, len = paths.length; i < len; i++) {\n const path2 = paths[i];\n Object.keys(routes).forEach((m) => {\n if (method === METHOD_NAME_ALL || method === m) {\n routes[m][path2] ||= [\n ...findMiddleware(middleware[m], path2) || findMiddleware(middleware[METHOD_NAME_ALL], path2) || []\n ];\n routes[m][path2].push([handler, paramCount - len + i + 1]);\n }\n });\n }\n }\n match(method, path) {\n clearWildcardRegExpCache();\n const matchers = this.buildAllMatchers();\n this.match = (method2, path2) => {\n const matcher = matchers[method2] || matchers[METHOD_NAME_ALL];\n const staticMatch = matcher[2][path2];\n if (staticMatch) {\n return staticMatch;\n }\n const match = path2.match(matcher[0]);\n if (!match) {\n return [[], emptyParam];\n }\n const index = match.indexOf(\"\", 1);\n return [matcher[1][index], match];\n };\n return this.match(method, path);\n }\n buildAllMatchers() {\n const matchers = /* @__PURE__ */ Object.create(null);\n [...Object.keys(this.routes), ...Object.keys(this.middleware)].forEach((method) => {\n matchers[method] ||= this.buildMatcher(method);\n });\n this.middleware = this.routes = void 0;\n return matchers;\n }\n buildMatcher(method) {\n const routes = [];\n let hasOwnRoute = method === METHOD_NAME_ALL;\n [this.middleware, this.routes].forEach((r) => {\n const ownRoute = r[method] ? Object.keys(r[method]).map((path) => [path, r[method][path]]) : [];\n if (ownRoute.length !== 0) {\n hasOwnRoute ||= true;\n routes.push(...ownRoute);\n } else if (method !== METHOD_NAME_ALL) {\n routes.push(\n ...Object.keys(r[METHOD_NAME_ALL]).map((path) => [path, r[METHOD_NAME_ALL][path]])\n );\n }\n });\n if (!hasOwnRoute) {\n return null;\n } else {\n return buildMatcherFromPreprocessedRoutes(routes);\n }\n }\n};\nexport {\n RegExpRouter\n};\n"],"mappings":"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","names":["value","value","e","error"]}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/builder.ts","../src/procedure-builder.ts","../src/procedure-implementer.ts","../src/router-builder.ts","../src/router-implementer.ts","../src/router.ts","../src/router-caller.ts","../src/index.ts"],"sourcesContent":["import type { IsEqual } from '@orpc/shared'\nimport type { HandledRouter, Router } from './router'\nimport type { Context, MergeContext } from './types'\nimport {\n ContractProcedure,\n type ContractRouter,\n type HTTPPath,\n isContractProcedure,\n type RouteOptions,\n type Schema,\n type SchemaInput,\n type SchemaOutput,\n} from '@orpc/contract'\nimport {\n type DecoratedMiddleware,\n decorateMiddleware,\n type MapInputMiddleware,\n type Middleware,\n} from './middleware'\nimport {\n type DecoratedProcedure,\n decorateProcedure,\n type ProcedureFunc,\n} from './procedure'\nimport { ProcedureBuilder } from './procedure-builder'\nimport { ProcedureImplementer } from './procedure-implementer'\nimport { RouterBuilder } from './router-builder'\nimport {\n type ChainedRouterImplementer,\n chainRouterImplementer,\n} from './router-implementer'\n\nexport class Builder<TContext extends Context, TExtraContext extends Context> {\n constructor(\n public zz$b: {\n middlewares?: Middleware<any, any, any, any>[]\n } = {},\n ) {}\n\n /**\n * Self chainable\n */\n\n context<UContext extends Context>(): IsEqual<UContext, Context> extends true\n ? Builder<TContext, TExtraContext>\n : Builder<UContext, TExtraContext> {\n return this as any\n }\n\n use<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n unknown,\n unknown\n >,\n ): Builder<TContext, MergeContext<TExtraContext, UExtraContext>>\n\n use<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n UMappedInput = unknown,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n UMappedInput,\n unknown\n >,\n mapInput: MapInputMiddleware<unknown, UMappedInput>,\n ): Builder<TContext, MergeContext<TExtraContext, UExtraContext>>\n\n use(\n middleware: Middleware<any, any, any, any>,\n mapInput?: MapInputMiddleware<any, any>,\n ): Builder<any, any> {\n const middleware_ = mapInput\n ? decorateMiddleware(middleware).mapInput(mapInput)\n : middleware\n\n return new Builder({\n ...this.zz$b,\n middlewares: [...(this.zz$b.middlewares || []), middleware_],\n })\n }\n\n /**\n * Convert to ContractProcedureBuilder\n */\n\n route(\n opts: RouteOptions,\n ): ProcedureBuilder<TContext, TExtraContext, undefined, undefined> {\n return new ProcedureBuilder({\n middlewares: this.zz$b.middlewares,\n contract: new ContractProcedure({\n ...opts,\n InputSchema: undefined,\n OutputSchema: undefined,\n }),\n })\n }\n\n input<USchema extends Schema = undefined>(\n schema: USchema,\n example?: SchemaInput<USchema>,\n ): ProcedureBuilder<TContext, TExtraContext, USchema, undefined> {\n return new ProcedureBuilder({\n middlewares: this.zz$b.middlewares,\n contract: new ContractProcedure({\n OutputSchema: undefined,\n InputSchema: schema,\n inputExample: example,\n }),\n })\n }\n\n output<USchema extends Schema = undefined>(\n schema: USchema,\n example?: SchemaOutput<USchema>,\n ): ProcedureBuilder<TContext, TExtraContext, undefined, USchema> {\n return new ProcedureBuilder({\n middlewares: this.zz$b.middlewares,\n contract: new ContractProcedure({\n InputSchema: undefined,\n OutputSchema: schema,\n outputExample: example,\n }),\n })\n }\n\n /**\n * Convert to Procedure\n */\n func<UFuncOutput = undefined>(\n func: ProcedureFunc<\n TContext,\n TExtraContext,\n undefined,\n undefined,\n UFuncOutput\n >,\n ): DecoratedProcedure<\n TContext,\n TExtraContext,\n undefined,\n undefined,\n UFuncOutput\n > {\n return decorateProcedure({\n zz$p: {\n middlewares: this.zz$b.middlewares,\n contract: new ContractProcedure({\n InputSchema: undefined,\n OutputSchema: undefined,\n }),\n func,\n },\n })\n }\n\n /**\n * Convert to ProcedureImplementer | RouterBuilder\n */\n\n contract<UContract extends ContractProcedure<any, any> | ContractRouter>(\n contract: UContract,\n ): UContract extends ContractProcedure<\n infer UInputSchema,\n infer UOutputSchema\n >\n ? ProcedureImplementer<TContext, TExtraContext, UInputSchema, UOutputSchema>\n : UContract extends ContractRouter\n ? ChainedRouterImplementer<TContext, UContract, TExtraContext>\n : never {\n if (isContractProcedure(contract)) {\n return new ProcedureImplementer({\n contract,\n middlewares: this.zz$b.middlewares,\n }) as any\n }\n\n return chainRouterImplementer(\n contract as ContractRouter,\n this.zz$b.middlewares,\n ) as any\n }\n\n /**\n * Create ExtendedMiddleware\n */\n\n // TODO: TOutput always any, infer not work at all, because TOutput used inside middleware params,\n // solution (maybe): create new generic for .output() method\n middleware<UExtraContext extends Context = undefined, TInput = unknown, TOutput = any>(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n TInput,\n TOutput\n >,\n ): DecoratedMiddleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n TInput,\n TOutput\n > {\n return decorateMiddleware(middleware)\n }\n\n prefix(prefix: HTTPPath): RouterBuilder<TContext, TExtraContext> {\n return new RouterBuilder({\n ...this.zz$b,\n prefix,\n })\n }\n\n tags(...tags: string[]): RouterBuilder<TContext, TExtraContext> {\n return new RouterBuilder({\n ...this.zz$b,\n tags,\n })\n }\n\n /**\n * Create DecoratedRouter\n */\n router<URouter extends Router<TContext>>(\n router: URouter,\n ): HandledRouter<URouter> {\n return new RouterBuilder<TContext, TExtraContext>(this.zz$b).router(router)\n }\n}\n","import type { MapInputMiddleware, Middleware } from './middleware'\nimport type { Context, MergeContext } from './types'\nimport {\n type ContractProcedure,\n DecoratedContractProcedure,\n type RouteOptions,\n type Schema,\n type SchemaInput,\n type SchemaOutput,\n} from '@orpc/contract'\nimport {\n type DecoratedProcedure,\n decorateProcedure,\n type ProcedureFunc,\n} from './procedure'\nimport { ProcedureImplementer } from './procedure-implementer'\n\nexport class ProcedureBuilder<\n TContext extends Context,\n TExtraContext extends Context,\n TInputSchema extends Schema,\n TOutputSchema extends Schema,\n> {\n constructor(\n public zz$pb: {\n contract: ContractProcedure<TInputSchema, TOutputSchema>\n middlewares?: Middleware<any, any, any, any>[]\n },\n ) {}\n\n /**\n * Self chainable\n */\n\n route(\n opts: RouteOptions,\n ): ProcedureBuilder<TContext, TExtraContext, TInputSchema, TOutputSchema> {\n return new ProcedureBuilder({\n ...this.zz$pb,\n contract: DecoratedContractProcedure.decorate(this.zz$pb.contract).route(\n opts,\n ),\n })\n }\n\n input<USchema extends Schema = undefined>(\n schema: USchema,\n example?: SchemaInput<USchema>,\n ): ProcedureBuilder<TContext, TExtraContext, USchema, TOutputSchema> {\n return new ProcedureBuilder({\n ...this.zz$pb,\n contract: DecoratedContractProcedure.decorate(this.zz$pb.contract).input(\n schema,\n example,\n ),\n })\n }\n\n output<USchema extends Schema = undefined>(\n schema: USchema,\n example?: SchemaOutput<USchema>,\n ): ProcedureBuilder<TContext, TExtraContext, TInputSchema, USchema> {\n return new ProcedureBuilder({\n ...this.zz$pb,\n contract: DecoratedContractProcedure.decorate(this.zz$pb.contract).output(\n schema,\n example,\n ),\n })\n }\n\n /**\n * Convert to ProcedureBuilder\n */\n\n use<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n SchemaOutput<TInputSchema>,\n SchemaInput<TOutputSchema>\n >,\n ): ProcedureImplementer<\n TContext,\n MergeContext<TExtraContext, UExtraContext>,\n TInputSchema,\n TOutputSchema\n >\n\n use<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n UMappedInput = unknown,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n UMappedInput,\n SchemaInput<TOutputSchema>\n >,\n mapInput: MapInputMiddleware<SchemaOutput<TInputSchema>, UMappedInput>,\n ): ProcedureImplementer<\n TContext,\n MergeContext<TExtraContext, UExtraContext>,\n TInputSchema,\n TOutputSchema\n >\n\n use(\n middleware: Middleware<any, any, any, any>,\n mapInput?: MapInputMiddleware<any, any>,\n ): ProcedureImplementer<any, any, any, any> {\n if (!mapInput) {\n return new ProcedureImplementer({\n contract: this.zz$pb.contract,\n middlewares: this.zz$pb.middlewares,\n }).use(middleware)\n }\n\n return new ProcedureImplementer({\n contract: this.zz$pb.contract,\n middlewares: this.zz$pb.middlewares,\n }).use(middleware, mapInput)\n }\n\n /**\n * Convert to Procedure\n */\n\n func<UFuncOutput extends SchemaOutput<TOutputSchema>>(\n func: ProcedureFunc<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n UFuncOutput\n >,\n ): DecoratedProcedure<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n UFuncOutput\n > {\n return decorateProcedure({\n zz$p: {\n middlewares: this.zz$pb.middlewares,\n contract: this.zz$pb.contract,\n func,\n },\n })\n }\n}\n","import type { ContractProcedure, Schema, SchemaInput, SchemaOutput } from '@orpc/contract'\nimport type { Context, MergeContext } from './types'\nimport {\n decorateMiddleware,\n type MapInputMiddleware,\n type Middleware,\n} from './middleware'\nimport {\n type DecoratedProcedure,\n decorateProcedure,\n type ProcedureFunc,\n} from './procedure'\n\nexport class ProcedureImplementer<\n TContext extends Context,\n TExtraContext extends Context,\n TInputSchema extends Schema,\n TOutputSchema extends Schema,\n> {\n constructor(\n public zz$pi: {\n contract: ContractProcedure<TInputSchema, TOutputSchema>\n middlewares?: Middleware<any, any, any, any>[]\n },\n ) {}\n\n use<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n SchemaOutput<TInputSchema>,\n SchemaInput<TOutputSchema>\n >,\n ): ProcedureImplementer<\n TContext,\n MergeContext<TExtraContext, UExtraContext>,\n TInputSchema,\n TOutputSchema\n >\n\n use<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n UMappedInput = unknown,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n UMappedInput,\n SchemaInput<TOutputSchema>\n >,\n mapInput: MapInputMiddleware<SchemaOutput<TInputSchema>, UMappedInput>,\n ): ProcedureImplementer<\n TContext,\n MergeContext<TExtraContext, UExtraContext>,\n TInputSchema,\n TOutputSchema\n >\n\n use(\n middleware: Middleware<any, any, any, any>,\n mapInput?: MapInputMiddleware<any, any>,\n ): ProcedureImplementer<any, any, any, any> {\n const middleware_ = mapInput\n ? decorateMiddleware(middleware).mapInput(mapInput)\n : middleware\n\n return new ProcedureImplementer({\n ...this.zz$pi,\n middlewares: [...(this.zz$pi.middlewares ?? []), middleware_],\n })\n }\n\n func<UFuncOutput extends SchemaOutput<TOutputSchema>>(\n func: ProcedureFunc<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n UFuncOutput\n >,\n ): DecoratedProcedure<\n TContext,\n TExtraContext,\n TInputSchema,\n TOutputSchema,\n UFuncOutput\n > {\n return decorateProcedure({\n zz$p: {\n middlewares: this.zz$pi.middlewares,\n contract: this.zz$pi.contract,\n func,\n },\n })\n }\n}\n","import type { HandledRouter, Router } from './router'\nimport type { Context, MergeContext } from './types'\nimport { DecoratedContractProcedure, type HTTPPath } from '@orpc/contract'\nimport {\n decorateMiddleware,\n type MapInputMiddleware,\n type Middleware,\n} from './middleware'\nimport { decorateProcedure, isProcedure } from './procedure'\n\nexport class RouterBuilder<\n TContext extends Context,\n TExtraContext extends Context,\n> {\n constructor(\n public zz$rb: {\n prefix?: HTTPPath\n tags?: string[]\n middlewares?: Middleware<any, any, any, any>[]\n },\n ) {}\n\n prefix(prefix: HTTPPath): RouterBuilder<TContext, TExtraContext> {\n return new RouterBuilder({\n ...this.zz$rb,\n prefix: `${this.zz$rb.prefix ?? ''}${prefix}`,\n })\n }\n\n tags(...tags: string[]): RouterBuilder<TContext, TExtraContext> {\n if (!tags.length)\n return this\n\n return new RouterBuilder({\n ...this.zz$rb,\n tags: [...(this.zz$rb.tags ?? []), ...tags],\n })\n }\n\n use<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n unknown,\n unknown\n >,\n ): RouterBuilder<TContext, MergeContext<TExtraContext, UExtraContext>>\n\n use<\n UExtraContext extends\n | Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>>\n | undefined = undefined,\n UMappedInput = unknown,\n >(\n middleware: Middleware<\n MergeContext<TContext, TExtraContext>,\n UExtraContext,\n UMappedInput,\n unknown\n >,\n mapInput: MapInputMiddleware<unknown, UMappedInput>,\n ): RouterBuilder<TContext, MergeContext<TExtraContext, UExtraContext>>\n\n use(\n middleware: Middleware<any, any, any, any>,\n mapInput?: MapInputMiddleware<any, any>,\n ): RouterBuilder<any, any> {\n const middleware_ = mapInput\n ? decorateMiddleware(middleware).mapInput(mapInput)\n : middleware\n\n return new RouterBuilder({\n ...this.zz$rb,\n middlewares: [...(this.zz$rb.middlewares || []), middleware_],\n })\n }\n\n router<URouter extends Router<TContext>>(\n router: URouter,\n ): HandledRouter<URouter> {\n const handled: Router<TContext> = {}\n\n for (const key in router) {\n const item = router[key]\n\n if (isProcedure(item)) {\n const builderMiddlewares = this.zz$rb.middlewares ?? []\n const itemMiddlewares = item.zz$p.middlewares ?? []\n\n const middlewares = [\n ...builderMiddlewares,\n ...itemMiddlewares.filter(\n item => !builderMiddlewares.includes(item),\n ),\n ]\n\n const contract = DecoratedContractProcedure.decorate(\n item.zz$p.contract,\n ).addTags(...(this.zz$rb.tags ?? []))\n\n handled[key] = decorateProcedure({\n zz$p: {\n ...item.zz$p,\n contract: this.zz$rb.prefix\n ? contract.prefix(this.zz$rb.prefix)\n : contract,\n middlewares,\n },\n })\n }\n else {\n handled[key] = this.router(item as any)\n }\n }\n\n return handled as HandledRouter<URouter>\n }\n}\n","import type { Middleware } from './middleware'\nimport type { RouterWithContract } from './router'\nimport type { Context } from './types'\nimport {\n type ContractProcedure,\n type ContractRouter,\n isContractProcedure,\n} from '@orpc/contract'\nimport { isProcedure } from './procedure'\nimport { ProcedureImplementer } from './procedure-implementer'\n\nexport class RouterImplementer<\n TContext extends Context,\n TContract extends ContractRouter,\n> {\n constructor(\n public zz$ri: {\n contract: TContract\n },\n ) {}\n\n router(\n router: RouterWithContract<TContext, TContract>,\n ): RouterWithContract<TContext, TContract> {\n assertRouterImplementation(this.zz$ri.contract, router)\n\n return router\n }\n}\n\nexport type ChainedRouterImplementer<\n TContext extends Context,\n TContract extends ContractRouter,\n TExtraContext extends Context,\n> = {\n [K in keyof TContract]: TContract[K] extends ContractProcedure<\n infer UInputSchema,\n infer UOutputSchema\n >\n ? ProcedureImplementer<TContext, TExtraContext, UInputSchema, UOutputSchema>\n : TContract[K] extends ContractRouter\n ? ChainedRouterImplementer<TContext, TContract[K], TExtraContext>\n : never\n} & RouterImplementer<TContext, TContract>\n\nexport function chainRouterImplementer<\n TContext extends Context,\n TContract extends ContractRouter,\n TExtraContext extends Context,\n>(\n contract: TContract,\n middlewares?: Middleware<any, any, any, any>[],\n): ChainedRouterImplementer<TContext, TContract, TExtraContext> {\n const result: Record<string, unknown> = {}\n\n for (const key in contract) {\n const item = contract[key]\n\n if (isContractProcedure(item)) {\n result[key] = new ProcedureImplementer({\n contract: item,\n middlewares,\n })\n }\n else {\n result[key] = chainRouterImplementer(item as ContractRouter, middlewares)\n }\n }\n\n const implementer = new RouterImplementer({ contract })\n\n return Object.assign(implementer, result) as any\n}\n\nexport function assertRouterImplementation(\n contract: ContractRouter,\n router: RouterWithContract<any, any>,\n path: string[] = [],\n): void {\n for (const key in contract) {\n const currentPath = [...path, key]\n const contractItem = contract[key]\n const routerItem = router[key]\n\n if (!routerItem) {\n throw new Error(\n `Missing implementation for procedure at [${currentPath.join('.')}]`,\n )\n }\n\n if (isContractProcedure(contractItem)) {\n if (isProcedure(routerItem)) {\n if (routerItem.zz$p.contract !== contractItem) {\n throw new Error(\n `Mismatch implementation for procedure at [${currentPath.join('.')}]`,\n )\n }\n }\n else {\n throw new Error(\n `Mismatch implementation for procedure at [${currentPath.join('.')}]`,\n )\n }\n }\n else {\n assertRouterImplementation(\n contractItem as ContractRouter,\n routerItem as any,\n currentPath,\n )\n }\n }\n}\n","import type {\n ContractProcedure,\n ContractRouter,\n SchemaInput,\n SchemaOutput,\n} from '@orpc/contract'\nimport type { Context } from './types'\nimport {\n isContractProcedure,\n} from '@orpc/contract'\nimport {\n type DecoratedProcedure,\n isProcedure,\n type Procedure,\n} from './procedure'\n\nexport interface Router<TContext extends Context> {\n [k: string]: Procedure<TContext, any, any, any, any> | Router<TContext>\n}\n\nexport type HandledRouter<TRouter extends Router<any>> = {\n [K in keyof TRouter]: TRouter[K] extends Procedure<\n infer UContext,\n infer UExtraContext,\n infer UInputSchema,\n infer UOutputSchema,\n infer UFuncOutput\n >\n ? DecoratedProcedure<\n UContext,\n UExtraContext,\n UInputSchema,\n UOutputSchema,\n UFuncOutput\n >\n : TRouter[K] extends Router<any>\n ? HandledRouter<TRouter[K]>\n : never\n}\n\nexport type RouterWithContract<\n TContext extends Context,\n TContract extends ContractRouter,\n> = {\n [K in keyof TContract]: TContract[K] extends ContractProcedure<\n infer UInputSchema,\n infer UOutputSchema\n >\n ? Procedure<TContext, any, UInputSchema, UOutputSchema, any>\n : TContract[K] extends ContractRouter\n ? RouterWithContract<TContext, TContract[K]>\n : never\n}\n\nexport function toContractRouter(\n router: ContractRouter | Router<any>,\n): ContractRouter {\n const contract: ContractRouter = {}\n\n for (const key in router) {\n const item = router[key]\n\n if (isContractProcedure(item)) {\n contract[key] = item\n }\n else if (isProcedure(item)) {\n contract[key] = item.zz$p.contract\n }\n else {\n contract[key] = toContractRouter(item as any)\n }\n }\n\n return contract\n}\n\nexport type InferRouterInputs<T extends Router<any>> = {\n [K in keyof T]: T[K] extends Procedure<any, any, infer UInputSchema, any, any>\n ? SchemaInput<UInputSchema>\n : T[K] extends Router<any>\n ? InferRouterInputs<T[K]>\n : never\n}\n\nexport type InferRouterOutputs<T extends Router<any>> = {\n [K in keyof T]: T[K] extends Procedure<any, any, any, infer UOutputSchema, infer UFuncOutput>\n ? SchemaOutput<UOutputSchema, UFuncOutput>\n : T[K] extends Router<any>\n ? InferRouterOutputs<T[K]>\n : never\n}\n","import type { Value } from '@orpc/shared'\nimport type { Router } from './router'\nimport { isProcedure, type Procedure } from './procedure'\nimport { createProcedureCaller, type ProcedureCaller } from './procedure-caller'\n\nexport interface CreateRouterCallerOptions<\n TRouter extends Router<any>,\n> {\n router: TRouter\n\n /**\n * The context used when calling the procedure.\n */\n context: Value<\n TRouter extends Router<infer UContext> ? UContext : never\n >\n\n /**\n * This is helpful for logging and analytics.\n *\n * @internal\n */\n basePath?: string[]\n}\n\nexport type RouterCaller<\n TRouter extends Router<any>,\n> = {\n [K in keyof TRouter]: TRouter[K] extends Procedure<any, any, any, any, any>\n ? ProcedureCaller<TRouter[K]>\n : TRouter[K] extends Router<any>\n ? RouterCaller<TRouter[K]>\n : never\n}\n\nexport function createRouterCaller<\n TRouter extends Router<any>,\n>(\n options: CreateRouterCallerOptions<TRouter>,\n): RouterCaller<TRouter> {\n const caller: Record<string, unknown> = {}\n\n for (const key in options.router) {\n const path = [...(options.basePath ?? []), key]\n const item = options.router[key]\n\n if (isProcedure(item)) {\n caller[key] = createProcedureCaller({\n procedure: item,\n context: options.context as any,\n path,\n })\n }\n else {\n caller[key] = createRouterCaller({\n router: item as any,\n context: options.context,\n basePath: path,\n })\n }\n }\n\n return caller as RouterCaller<TRouter>\n}\n","import { Builder } from './builder'\n\nexport * from './builder'\nexport * from './middleware'\nexport * from './procedure'\nexport * from './procedure-builder'\nexport * from './procedure-caller'\nexport * from './procedure-implementer'\nexport * from './router'\nexport * from './router-caller'\nexport * from './router-implementer'\nexport * from './types'\nexport * from './utils'\nexport * from '@orpc/shared/error'\n\nexport const os = new Builder<undefined | Record<string, unknown>, undefined>()\n"],"mappings":"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","names":["isContractProcedure","DecoratedContractProcedure","item","DecoratedContractProcedure","isContractProcedure","isContractProcedure","isContractProcedure"]}
@@ -1,42 +0,0 @@
1
- import type { PartialOnUndefinedDeep, Promisable, Value } from '@orpc/shared';
2
- import type { Router } from '../router';
3
- export interface FetchHandlerHooks {
4
- next: () => Promise<Response>;
5
- response: (response: Response) => Response;
6
- }
7
- export interface CreateFetchHandlerOptions<TRouter extends Router<any>> {
8
- router: TRouter;
9
- /**
10
- * Hooks for executing logics on lifecycle events.
11
- */
12
- hooks?: (context: TRouter extends Router<infer UContext> ? UContext : never, hooks: FetchHandlerHooks) => Promisable<Response>;
13
- /**
14
- * It will help improve the cold start time. But it will increase the performance.
15
- *
16
- * @default false
17
- */
18
- serverless?: boolean;
19
- }
20
- export declare function createFetchHandler<TRouter extends Router<any>>(options: CreateFetchHandlerOptions<TRouter>): FetchHandler<TRouter>;
21
- export type FetchHandlerOptions<TRouter extends Router<any>> = {
22
- /**
23
- * The request need to be handled.
24
- */
25
- request: Request;
26
- /**
27
- * Remove the prefix from the request path.
28
- *
29
- * @example /orpc
30
- * @example /api
31
- */
32
- prefix?: string;
33
- } & PartialOnUndefinedDeep<{
34
- /**
35
- * The context used to handle the request.
36
- */
37
- context: Value<TRouter extends Router<infer UContext> ? UContext : never>;
38
- }>;
39
- export interface FetchHandler<TRouter extends Router<any>> {
40
- (options: FetchHandlerOptions<TRouter>): Promise<Response>;
41
- }
42
- //# sourceMappingURL=fetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/adapters/fetch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,UAAU,EACV,KAAK,EACN,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AA2BvC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAA;CAC3C;AAED,MAAM,WAAW,yBAAyB,CAAC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC;IACpE,MAAM,EAAE,OAAO,CAAA;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,CACN,OAAO,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,EAClE,KAAK,EAAE,iBAAiB,KACrB,UAAU,CAAC,QAAQ,CAAC,CAAA;IAEzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,EAC5D,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC1C,YAAY,CAAC,OAAO,CAAC,CA6LvB;AAMD,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI;IAC7D;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,sBAAsB,CAAC;IACzB;;OAEG;IACH,OAAO,EAAE,KAAK,CACZ,OAAO,SAAS,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,CAC1D,CAAA;CACF,CAAC,CAAA;AAEF,MAAM,WAAW,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC;IACvD,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CAC3D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,oBAAoB,CAAA;AAElC,eAAO,MAAM,EAAE,yDAAgE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"procedure-builder.d.ts","sourceRoot":"","sources":["../../src/procedure-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,qBAAa,gBAAgB,CAC3B,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO,EAC7B,YAAY,SAAS,MAAM,EAC3B,aAAa,SAAS,MAAM;IAGnB,KAAK,EAAE;QACZ,QAAQ,EAAE,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACxD,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;gBAHM,KAAK,EAAE;QACZ,QAAQ,EAAE,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACxD,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;IAGH;;OAEG;IAEH,KAAK,CACH,IAAI,EAAE,YAAY,GACjB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC;IASzE,KAAK,CAAC,OAAO,SAAS,MAAM,GAAG,SAAS,EACtC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,GAC7B,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC;IAUpE,MAAM,CAAC,OAAO,SAAS,MAAM,GAAG,SAAS,EACvC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,GAC9B,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC;IAUnE;;OAEG;IAEH,GAAG,CACD,aAAa,SACX,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EAEvB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,CAAC,YAAY,CAAC,EAC1B,WAAW,CAAC,aAAa,CAAC,CAC3B,GACA,oBAAoB,CACrB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,YAAY,EACZ,aAAa,CACd;IAED,GAAG,CACD,aAAa,SACX,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EACvB,YAAY,GAAG,OAAO,EAEtB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,EACZ,WAAW,CAAC,aAAa,CAAC,CAC3B,EACD,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,GACrE,oBAAoB,CACrB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,YAAY,EACZ,aAAa,CACd;IAmBD;;OAEG;IAEH,IAAI,CAAC,WAAW,SAAS,YAAY,CAAC,aAAa,CAAC,EAClD,IAAI,EAAE,aAAa,CACjB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,CACZ,GACA,kBAAkB,CACjB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,CACZ;CASJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"procedure-caller.d.ts","sourceRoot":"","sources":["../../src/procedure-caller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,KAAK,KAAK,EAAS,MAAM,cAAc,CAAA;AAKhD,MAAM,WAAW,4BAA4B,CAC3C,UAAU,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IAErD,SAAS,EAAE,UAAU,CAAA;IAErB;;OAEG;IACH,OAAO,EAAE,KAAK,CACZ,UAAU,SAAS,SAAS,CAAC,MAAM,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAC5D,QAAQ,GACR,KAAK,CACV,CAAA;IAED;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,MAAM,MAAM,eAAe,CACzB,UAAU,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IACnD,UAAU,SAAS,SAAS,CAC9B,GAAG,EACH,GAAG,EACH,MAAM,YAAY,EAClB,MAAM,aAAa,EACnB,MAAM,WAAW,CAClB,GACG,CACE,GAAG,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,SAAS,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KACjH,OAAO,CACV,YAAY,CAAC,aAAa,EAAE,WAAW,CAAC,CACzC,GACD,KAAK,CAAA;AAET,wBAAgB,qBAAqB,CACnC,UAAU,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAErD,OAAO,EAAE,4BAA4B,CAAC,UAAU,CAAC,GAChD,eAAe,CAAC,UAAU,CAAC,CAsF7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"procedure-implementer.d.ts","sourceRoot":"","sources":["../../src/procedure-implementer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC1F,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAA;AAEpB,qBAAa,oBAAoB,CAC/B,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO,EAC7B,YAAY,SAAS,MAAM,EAC3B,aAAa,SAAS,MAAM;IAGnB,KAAK,EAAE;QACZ,QAAQ,EAAE,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACxD,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;gBAHM,KAAK,EAAE;QACZ,QAAQ,EAAE,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;QACxD,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;IAGH,GAAG,CACD,aAAa,SACX,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EAEvB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,CAAC,YAAY,CAAC,EAC1B,WAAW,CAAC,aAAa,CAAC,CAC3B,GACA,oBAAoB,CACrB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,YAAY,EACZ,aAAa,CACd;IAED,GAAG,CACD,aAAa,SACX,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EACvB,YAAY,GAAG,OAAO,EAEtB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,EACZ,WAAW,CAAC,aAAa,CAAC,CAC3B,EACD,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,GACrE,oBAAoB,CACrB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,YAAY,EACZ,aAAa,CACd;IAgBD,IAAI,CAAC,WAAW,SAAS,YAAY,CAAC,aAAa,CAAC,EAClD,IAAI,EAAE,aAAa,CACjB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,CACZ,GACA,kBAAkB,CACjB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,CACZ;CASJ"}