@orpc/server 0.0.0-unsafe-pr-2-20241118033608

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. package/dist/chunk-ACLC6USM.js +262 -0
  2. package/dist/chunk-ACLC6USM.js.map +1 -0
  3. package/dist/fetch.js +648 -0
  4. package/dist/fetch.js.map +1 -0
  5. package/dist/index.js +403 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/adapters/fetch.d.ts +36 -0
  8. package/dist/src/adapters/fetch.d.ts.map +1 -0
  9. package/dist/src/builder.d.ts +49 -0
  10. package/dist/src/builder.d.ts.map +1 -0
  11. package/dist/src/index.d.ts +15 -0
  12. package/dist/src/index.d.ts.map +1 -0
  13. package/dist/src/middleware.d.ts +16 -0
  14. package/dist/src/middleware.d.ts.map +1 -0
  15. package/dist/src/procedure-builder.d.ts +31 -0
  16. package/dist/src/procedure-builder.d.ts.map +1 -0
  17. package/dist/src/procedure-caller.d.ts +33 -0
  18. package/dist/src/procedure-caller.d.ts.map +1 -0
  19. package/dist/src/procedure-implementer.d.ts +19 -0
  20. package/dist/src/procedure-implementer.d.ts.map +1 -0
  21. package/dist/src/procedure.d.ts +29 -0
  22. package/dist/src/procedure.d.ts.map +1 -0
  23. package/dist/src/router-builder.d.ts +22 -0
  24. package/dist/src/router-builder.d.ts.map +1 -0
  25. package/dist/src/router-caller.d.ts +36 -0
  26. package/dist/src/router-caller.d.ts.map +1 -0
  27. package/dist/src/router-implementer.d.ts +20 -0
  28. package/dist/src/router-implementer.d.ts.map +1 -0
  29. package/dist/src/router.d.ts +14 -0
  30. package/dist/src/router.d.ts.map +1 -0
  31. package/dist/src/types.d.ts +18 -0
  32. package/dist/src/types.d.ts.map +1 -0
  33. package/dist/src/utils.d.ts +4 -0
  34. package/dist/src/utils.d.ts.map +1 -0
  35. package/dist/tsconfig.tsbuildinfo +1 -0
  36. package/package.json +57 -0
  37. package/src/adapters/fetch.test.ts +399 -0
  38. package/src/adapters/fetch.ts +228 -0
  39. package/src/builder.test.ts +362 -0
  40. package/src/builder.ts +236 -0
  41. package/src/index.ts +16 -0
  42. package/src/middleware.test.ts +279 -0
  43. package/src/middleware.ts +119 -0
  44. package/src/procedure-builder.test.ts +219 -0
  45. package/src/procedure-builder.ts +158 -0
  46. package/src/procedure-caller.test.ts +210 -0
  47. package/src/procedure-caller.ts +165 -0
  48. package/src/procedure-implementer.test.ts +215 -0
  49. package/src/procedure-implementer.ts +103 -0
  50. package/src/procedure.test.ts +312 -0
  51. package/src/procedure.ts +251 -0
  52. package/src/router-builder.test.ts +106 -0
  53. package/src/router-builder.ts +120 -0
  54. package/src/router-caller.test.ts +173 -0
  55. package/src/router-caller.ts +95 -0
  56. package/src/router-implementer.test.ts +116 -0
  57. package/src/router-implementer.ts +110 -0
  58. package/src/router.test.ts +142 -0
  59. package/src/router.ts +69 -0
  60. package/src/types.test.ts +18 -0
  61. package/src/types.ts +28 -0
  62. package/src/utils.test.ts +243 -0
  63. package/src/utils.ts +95 -0
@@ -0,0 +1,49 @@
1
+ import { ContractProcedure, type ContractRouter, type HTTPPath, type RouteOptions, type Schema, type SchemaInput, type SchemaOutput } from '@orpc/contract';
2
+ import type { IsEqual } from '@orpc/shared';
3
+ import { type DecoratedMiddleware, type MapInputMiddleware, type Middleware } from './middleware';
4
+ import { type DecoratedProcedure, type ProcedureHandler } from './procedure';
5
+ import { ProcedureBuilder } from './procedure-builder';
6
+ import { ProcedureImplementer } from './procedure-implementer';
7
+ import type { HandledRouter, Router } from './router';
8
+ import { RouterBuilder } from './router-builder';
9
+ import { type ChainedRouterImplementer } from './router-implementer';
10
+ import type { Context, MergeContext } from './types';
11
+ export declare class Builder<TContext extends Context, TExtraContext extends Context> {
12
+ zz$b: {
13
+ middlewares?: Middleware<any, any, any, any>[];
14
+ };
15
+ constructor(zz$b?: {
16
+ middlewares?: Middleware<any, any, any, any>[];
17
+ });
18
+ /**
19
+ * Self chainable
20
+ */
21
+ context<UContext extends Context>(): IsEqual<UContext, Context> extends true ? Builder<TContext, TExtraContext> : Builder<UContext, TExtraContext>;
22
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, unknown, unknown>): Builder<TContext, MergeContext<TExtraContext, UExtraContext>>;
23
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, unknown>, mapInput: MapInputMiddleware<unknown, UMappedInput>): Builder<TContext, MergeContext<TExtraContext, UExtraContext>>;
24
+ /**
25
+ * Convert to ContractProcedureBuilder
26
+ */
27
+ route(opts: RouteOptions): ProcedureBuilder<TContext, TExtraContext, undefined, undefined>;
28
+ input<USchema extends Schema = undefined>(schema: USchema, example?: SchemaInput<USchema>): ProcedureBuilder<TContext, TExtraContext, USchema, undefined>;
29
+ output<USchema extends Schema = undefined>(schema: USchema, example?: SchemaOutput<USchema>): ProcedureBuilder<TContext, TExtraContext, undefined, USchema>;
30
+ /**
31
+ * Convert to Procedure
32
+ */
33
+ handler<UHandlerOutput = undefined>(handler: ProcedureHandler<TContext, TExtraContext, undefined, undefined, UHandlerOutput>): DecoratedProcedure<TContext, TExtraContext, undefined, undefined, UHandlerOutput>;
34
+ /**
35
+ * Convert to ProcedureImplementer | RouterBuilder
36
+ */
37
+ contract<UContract extends ContractProcedure<any, any> | ContractRouter>(contract: UContract): UContract extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? ProcedureImplementer<TContext, TExtraContext, UInputSchema, UOutputSchema> : UContract extends ContractRouter ? ChainedRouterImplementer<TContext, UContract, TExtraContext> : never;
38
+ /**
39
+ * Create ExtendedMiddleware
40
+ */
41
+ middleware<UExtraContext extends Context = undefined, TInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, TInput, unknown>): DecoratedMiddleware<MergeContext<TContext, TExtraContext>, UExtraContext, TInput, unknown>;
42
+ prefix(prefix: HTTPPath): RouterBuilder<TContext, TExtraContext>;
43
+ tags(...tags: string[]): RouterBuilder<TContext, TExtraContext>;
44
+ /**
45
+ * Create DecoratedRouter
46
+ */
47
+ router<URouter extends Router<TContext>>(router: URouter): HandledRouter<URouter>;
48
+ }
49
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Builder } from './builder';
2
+ export * from './builder';
3
+ export * from '@orpc/shared/error';
4
+ export * from './middleware';
5
+ export * from './procedure';
6
+ export * from './procedure-caller';
7
+ export * from './procedure-builder';
8
+ export * from './procedure-implementer';
9
+ export * from './router';
10
+ export * from './router-caller';
11
+ export * from './router-implementer';
12
+ export * from './types';
13
+ export * from './utils';
14
+ export declare const os: Builder<Record<string, unknown> | undefined, undefined>;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
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,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AAEvB,eAAO,MAAM,EAAE,yDAAgE,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { Context, MergeContext, Meta, Promisable } from './types';
2
+ export interface Middleware<TContext extends Context, TExtraContext extends Context, TInput, TOutput> {
3
+ (input: TInput, context: TContext, meta: Meta<TOutput>): Promisable<TExtraContext extends undefined ? void : {
4
+ context: TExtraContext;
5
+ }>;
6
+ }
7
+ export interface MapInputMiddleware<TInput, TMappedInput> {
8
+ (input: TInput): TMappedInput;
9
+ }
10
+ export interface DecoratedMiddleware<TContext extends Context, TExtraContext extends Context, TInput, TOutput> extends Middleware<TContext, TExtraContext, TInput, TOutput> {
11
+ concat<UExtraContext extends Context = undefined, UInput = TInput>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UInput & TInput, TOutput>): DecoratedMiddleware<TContext, MergeContext<TExtraContext, UExtraContext>, TInput & UInput, TOutput>;
12
+ concat<UExtraContext extends Context = undefined, UInput = TInput, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, TOutput>, mapInput: MapInputMiddleware<UInput, UMappedInput>): DecoratedMiddleware<TContext, MergeContext<TExtraContext, UExtraContext>, TInput & UInput, TOutput>;
13
+ mapInput<UInput = unknown>(map: MapInputMiddleware<UInput, TInput>): DecoratedMiddleware<TContext, TExtraContext, UInput, TOutput>;
14
+ }
15
+ export declare function decorateMiddleware<TContext extends Context, TExtraContext extends Context, TInput, TOutput>(middleware: Middleware<TContext, TExtraContext, TInput, TOutput>): DecoratedMiddleware<TContext, TExtraContext, TInput, TOutput>;
16
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGtE,MAAM,WAAW,UAAU,CACzB,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO,EAC7B,MAAM,EACN,OAAO;IAEP,CACE,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAClB,UAAU,CACX,aAAa,SAAS,SAAS,GAAG,IAAI,GAAG;QAAE,OAAO,EAAE,aAAa,CAAA;KAAE,CACpE,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB,CAAC,MAAM,EAAE,YAAY;IACtD,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAA;CAC9B;AAED,MAAM,WAAW,mBAAmB,CAClC,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO,EAC7B,MAAM,EACN,OAAO,CACP,SAAQ,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC;IAC5D,MAAM,CAAC,aAAa,SAAS,OAAO,GAAG,SAAS,EAAE,MAAM,GAAG,MAAM,EAC/D,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,MAAM,GAAG,MAAM,EACf,OAAO,CACR,GACA,mBAAmB,CACpB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,MAAM,GAAG,MAAM,EACf,OAAO,CACR,CAAA;IAED,MAAM,CACJ,aAAa,SAAS,OAAO,GAAG,SAAS,EACzC,MAAM,GAAG,MAAM,EACf,YAAY,GAAG,OAAO,EAEtB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,EACZ,OAAO,CACR,EACD,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,GACjD,mBAAmB,CACpB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,MAAM,GAAG,MAAM,EACf,OAAO,CACR,CAAA;IAED,QAAQ,CAAC,MAAM,GAAG,OAAO,EACvB,GAAG,EAAE,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;CACjE;AAID,wBAAgB,kBAAkB,CAChC,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO,EAC7B,MAAM,EACN,OAAO,EAEP,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,GAC/D,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CA2C/D"}
@@ -0,0 +1,31 @@
1
+ import { type ContractProcedure, type RouteOptions, type Schema, type SchemaInput, type SchemaOutput } from '@orpc/contract';
2
+ import type { MapInputMiddleware, Middleware } from './middleware';
3
+ import { type DecoratedProcedure, type ProcedureHandler } from './procedure';
4
+ import { ProcedureImplementer } from './procedure-implementer';
5
+ import type { Context, MergeContext } from './types';
6
+ export declare class ProcedureBuilder<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema> {
7
+ zz$pb: {
8
+ contract: ContractProcedure<TInputSchema, TOutputSchema>;
9
+ middlewares?: Middleware<any, any, any, any>[];
10
+ };
11
+ constructor(zz$pb: {
12
+ contract: ContractProcedure<TInputSchema, TOutputSchema>;
13
+ middlewares?: Middleware<any, any, any, any>[];
14
+ });
15
+ /**
16
+ * Self chainable
17
+ */
18
+ route(opts: RouteOptions): ProcedureBuilder<TContext, TExtraContext, TInputSchema, TOutputSchema>;
19
+ input<USchema extends Schema = undefined>(schema: USchema, example?: SchemaInput<USchema>): ProcedureBuilder<TContext, TExtraContext, USchema, TOutputSchema>;
20
+ output<USchema extends Schema = undefined>(schema: USchema, example?: SchemaOutput<USchema>): ProcedureBuilder<TContext, TExtraContext, TInputSchema, USchema>;
21
+ /**
22
+ * Convert to ProcedureBuilder
23
+ */
24
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, SchemaOutput<TInputSchema>, SchemaOutput<TOutputSchema>>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
25
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, SchemaOutput<TOutputSchema>>, mapInput: MapInputMiddleware<SchemaOutput<TInputSchema>, UMappedInput>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
26
+ /**
27
+ * Convert to Procedure
28
+ */
29
+ handler<UHandlerOutput extends SchemaOutput<TOutputSchema>>(handler: ProcedureHandler<TContext, TExtraContext, TInputSchema, TOutputSchema, UHandlerOutput>): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, UHandlerOutput>;
30
+ }
31
+ //# sourceMappingURL=procedure-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedure-builder.d.ts","sourceRoot":"","sources":["../../src/procedure-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { SchemaInput, SchemaOutput } from '@orpc/contract';
2
+ import type { Procedure } from './procedure';
3
+ import type { Meta, Promisable } from './types';
4
+ export interface CreateProcedureCallerOptions<TProcedure extends Procedure<any, any, any, any, any>, TValidate extends boolean> {
5
+ procedure: TProcedure;
6
+ /**
7
+ * The context used when calling the procedure.
8
+ */
9
+ context: TProcedure extends Procedure<infer UContext, any, any, any, any> ? UContext : never;
10
+ /**
11
+ * Helpful hooks to do some logics on specific time.
12
+ */
13
+ hooks?: (context: TProcedure extends Procedure<infer UContext, any, any, any, any> ? UContext : never, meta: Meta<unknown>) => Promisable<void>;
14
+ /**
15
+ * This is helpful for logging and analytics.
16
+ */
17
+ path?: string[];
18
+ /**
19
+ * This flag helpful when you want bypass some logics not necessary to internal server calls.
20
+ *
21
+ * @default true
22
+ */
23
+ internal?: boolean;
24
+ /**
25
+ * Indicate whether validate input and output.
26
+ *
27
+ * @default true
28
+ */
29
+ validate?: TValidate;
30
+ }
31
+ export type ProcedureCaller<TProcedure extends Procedure<any, any, any, any, any>, TValidate extends boolean> = TProcedure extends Procedure<any, any, infer UInputSchema, infer UOutputSchema, infer UHandlerOutput> ? (input: TValidate extends true ? SchemaInput<UInputSchema> : SchemaOutput<UInputSchema>) => Promise<TValidate extends true ? SchemaOutput<UOutputSchema, UHandlerOutput> : SchemaInput<UOutputSchema, UHandlerOutput>> : never;
32
+ export declare function createProcedureCaller<TProcedure extends Procedure<any, any, any, any, any>, TValidate extends boolean = true>(options: CreateProcedureCallerOptions<TProcedure, TValidate>): ProcedureCaller<TProcedure, TValidate>;
33
+ //# sourceMappingURL=procedure-caller.d.ts.map
@@ -0,0 +1 @@
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;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAkB,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAG/D,MAAM,WAAW,4BAA4B,CAC3C,UAAU,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrD,SAAS,SAAS,OAAO;IAEzB,SAAS,EAAE,UAAU,CAAA;IAErB;;OAEG;IACH,OAAO,EAAE,UAAU,SAAS,SAAS,CAAC,MAAM,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACrE,QAAQ,GACR,KAAK,CAAA;IAET;;OAEG;IACH,KAAK,CAAC,EAAE,CACN,OAAO,EAAE,UAAU,SAAS,SAAS,CAAC,MAAM,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACrE,QAAQ,GACR,KAAK,EACT,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAChB,UAAU,CAAC,IAAI,CAAC,CAAA;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IAEf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,MAAM,eAAe,CACzB,UAAU,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrD,SAAS,SAAS,OAAO,IACvB,UAAU,SAAS,SAAS,CAC9B,GAAG,EACH,GAAG,EACH,MAAM,YAAY,EAClB,MAAM,aAAa,EACnB,MAAM,cAAc,CACrB,GACG,CACE,KAAK,EAAE,SAAS,SAAS,IAAI,GACzB,WAAW,CAAC,YAAY,CAAC,GACzB,YAAY,CAAC,YAAY,CAAC,KAC3B,OAAO,CACV,SAAS,SAAS,IAAI,GAClB,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,GAC3C,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,CAC/C,GACD,KAAK,CAAA;AAET,wBAAgB,qBAAqB,CACnC,UAAU,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrD,SAAS,SAAS,OAAO,GAAG,IAAI,EAEhC,OAAO,EAAE,4BAA4B,CAAC,UAAU,EAAE,SAAS,CAAC,GAC3D,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAwFxC"}
@@ -0,0 +1,19 @@
1
+ import type { ContractProcedure, SchemaOutput } from '@orpc/contract';
2
+ import type { Schema } from '@orpc/contract';
3
+ import { type MapInputMiddleware, type Middleware } from './middleware';
4
+ import { type DecoratedProcedure, type ProcedureHandler } from './procedure';
5
+ import type { Context, MergeContext } from './types';
6
+ export declare class ProcedureImplementer<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema> {
7
+ zz$pi: {
8
+ contract: ContractProcedure<TInputSchema, TOutputSchema>;
9
+ middlewares?: Middleware<any, any, any, any>[];
10
+ };
11
+ constructor(zz$pi: {
12
+ contract: ContractProcedure<TInputSchema, TOutputSchema>;
13
+ middlewares?: Middleware<any, any, any, any>[];
14
+ });
15
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, SchemaOutput<TInputSchema>, SchemaOutput<TOutputSchema>>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
16
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, SchemaOutput<TOutputSchema>>, mapInput: MapInputMiddleware<SchemaOutput<TInputSchema>, UMappedInput>): ProcedureImplementer<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema>;
17
+ handler<UHandlerOutput extends SchemaOutput<TOutputSchema>>(handler: ProcedureHandler<TContext, TExtraContext, TInputSchema, TOutputSchema, UHandlerOutput>): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, UHandlerOutput>;
18
+ }
19
+ //# sourceMappingURL=procedure-implementer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedure-implementer.d.ts","sourceRoot":"","sources":["../../src/procedure-implementer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAEhB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEpD,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,SACT,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EAEzB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,CAAC,YAAY,CAAC,EAC1B,YAAY,CAAC,aAAa,CAAC,CAC5B,GACA,oBAAoB,CACrB,QAAQ,EACR,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,EAC1C,YAAY,EACZ,aAAa,CACd;IAED,GAAG,CACD,aAAa,SACT,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EACzB,YAAY,GAAG,OAAO,EAEtB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,EACZ,YAAY,CAAC,aAAa,CAAC,CAC5B,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,OAAO,CAAC,cAAc,SAAS,YAAY,CAAC,aAAa,CAAC,EACxD,OAAO,EAAE,gBAAgB,CACvB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,CACf,GACA,kBAAkB,CACnB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,CACf;CASF"}
@@ -0,0 +1,29 @@
1
+ import { type ContractProcedure, type HTTPPath, type SchemaInput, type SchemaOutput } from '@orpc/contract';
2
+ import type { RouteOptions, Schema } from '@orpc/contract';
3
+ import { type MapInputMiddleware, type Middleware } from './middleware';
4
+ import type { Context, MergeContext, Meta, Promisable } from './types';
5
+ export declare class Procedure<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, THandlerOutput extends SchemaOutput<TOutputSchema>> {
6
+ zz$p: {
7
+ middlewares?: Middleware<any, any, any, any>[];
8
+ contract: ContractProcedure<TInputSchema, TOutputSchema>;
9
+ handler: ProcedureHandler<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
10
+ };
11
+ constructor(zz$p: {
12
+ middlewares?: Middleware<any, any, any, any>[];
13
+ contract: ContractProcedure<TInputSchema, TOutputSchema>;
14
+ handler: ProcedureHandler<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
15
+ });
16
+ }
17
+ export type DecoratedProcedure<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, THandlerOutput extends SchemaOutput<TOutputSchema>> = Procedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput> & {
18
+ prefix(prefix: HTTPPath): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
19
+ route(opts: RouteOptions): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
20
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, SchemaOutput<TInputSchema>, SchemaOutput<TOutputSchema, THandlerOutput>>): DecoratedProcedure<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema, THandlerOutput>;
21
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, SchemaOutput<TOutputSchema, THandlerOutput>>, mapInput: MapInputMiddleware<SchemaOutput<TInputSchema, THandlerOutput>, UMappedInput>): DecoratedProcedure<TContext, MergeContext<TExtraContext, UExtraContext>, TInputSchema, TOutputSchema, THandlerOutput>;
22
+ } & (undefined extends TContext ? (input: SchemaInput<TInputSchema> | FormData) => Promise<SchemaOutput<TOutputSchema, THandlerOutput>> : {});
23
+ export interface ProcedureHandler<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, TOutput extends SchemaOutput<TOutputSchema>> {
24
+ (input: SchemaOutput<TInputSchema>, context: MergeContext<TContext, TExtraContext>, meta: Meta<unknown>): Promisable<SchemaInput<TOutputSchema, TOutput>>;
25
+ }
26
+ export declare function decorateProcedure<TContext extends Context, TExtraContext extends Context, TInputSchema extends Schema, TOutputSchema extends Schema, THandlerOutput extends SchemaOutput<TOutputSchema>>(procedure: Procedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>): DecoratedProcedure<TContext, TExtraContext, TInputSchema, TOutputSchema, THandlerOutput>;
27
+ export type WELL_DEFINED_PROCEDURE = Procedure<Context, Context, Schema, Schema, unknown>;
28
+ export declare function isProcedure(item: unknown): item is WELL_DEFINED_PROCEDURE;
29
+ //# sourceMappingURL=procedure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../../src/procedure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type HTTPPath } from '@orpc/contract';
2
+ import { type MapInputMiddleware, type Middleware } from './middleware';
3
+ import type { HandledRouter, Router } from './router';
4
+ import type { Context, MergeContext } from './types';
5
+ export declare class RouterBuilder<TContext extends Context, TExtraContext extends Context> {
6
+ zz$rb: {
7
+ prefix?: HTTPPath;
8
+ tags?: string[];
9
+ middlewares?: Middleware<any, any, any, any>[];
10
+ };
11
+ constructor(zz$rb: {
12
+ prefix?: HTTPPath;
13
+ tags?: string[];
14
+ middlewares?: Middleware<any, any, any, any>[];
15
+ });
16
+ prefix(prefix: HTTPPath): RouterBuilder<TContext, TExtraContext>;
17
+ tags(...tags: string[]): RouterBuilder<TContext, TExtraContext>;
18
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, unknown, unknown>): RouterBuilder<TContext, MergeContext<TExtraContext, UExtraContext>>;
19
+ use<UExtraContext extends Partial<MergeContext<Context, MergeContext<TContext, TExtraContext>>> | undefined = undefined, UMappedInput = unknown>(middleware: Middleware<MergeContext<TContext, TExtraContext>, UExtraContext, UMappedInput, unknown>, mapInput: MapInputMiddleware<unknown, UMappedInput>): RouterBuilder<TContext, MergeContext<TExtraContext, UExtraContext>>;
20
+ router<URouter extends Router<TContext>>(router: URouter): HandledRouter<URouter>;
21
+ }
22
+ //# sourceMappingURL=router-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-builder.d.ts","sourceRoot":"","sources":["../../src/router-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAEhB,MAAM,cAAc,CAAA;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEpD,qBAAa,aAAa,CACxB,QAAQ,SAAS,OAAO,EACxB,aAAa,SAAS,OAAO;IAGpB,KAAK,EAAE;QACZ,MAAM,CAAC,EAAE,QAAQ,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;gBAJM,KAAK,EAAE;QACZ,MAAM,CAAC,EAAE,QAAQ,CAAA;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;KAC/C;IAGH,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC;IAOhE,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC;IAS/D,GAAG,CACD,aAAa,SACT,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EAEzB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,OAAO,EACP,OAAO,CACR,GACA,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAEtE,GAAG,CACD,aAAa,SACT,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GACrE,SAAS,GAAG,SAAS,EACzB,YAAY,GAAG,OAAO,EAEtB,UAAU,EAAE,UAAU,CACpB,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,EACrC,aAAa,EACb,YAAY,EACZ,OAAO,CACR,EACD,QAAQ,EAAE,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,GAClD,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAgBtE,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,EACrC,MAAM,EAAE,OAAO,GACd,aAAa,CAAC,OAAO,CAAC;CAqC1B"}
@@ -0,0 +1,36 @@
1
+ import { type Procedure } from './procedure';
2
+ import { type ProcedureCaller } from './procedure-caller';
3
+ import type { Router } from './router';
4
+ import type { Meta, Promisable } from './types';
5
+ export interface CreateRouterCallerOptions<TRouter extends Router<any>, TValidate extends boolean> {
6
+ router: TRouter;
7
+ /**
8
+ * The context used when calling the procedure.
9
+ */
10
+ context: TRouter extends Router<infer UContext> ? UContext : never;
11
+ /**
12
+ * Helpful hooks to do some logics on specific time.
13
+ */
14
+ hooks?: (context: TRouter extends Router<infer UContext> ? UContext : never, meta: Meta<unknown>) => Promisable<void>;
15
+ /**
16
+ * This is helpful for logging and analytics.
17
+ */
18
+ basePath?: string[];
19
+ /**
20
+ * This flag helpful when you want bypass some logics not necessary to internal server calls.
21
+ *
22
+ * @default true
23
+ */
24
+ internal?: boolean;
25
+ /**
26
+ * Indicate whether validate input and output.
27
+ *
28
+ * @default true
29
+ */
30
+ validate?: TValidate;
31
+ }
32
+ export type RouterCaller<TRouter extends Router<any>, TValidate extends boolean> = {
33
+ [K in keyof TRouter]: TRouter[K] extends Procedure<any, any, any, any, any> ? ProcedureCaller<TRouter[K], TValidate> : TRouter[K] extends Router<any> ? RouterCaller<TRouter[K], TValidate> : never;
34
+ };
35
+ export declare function createRouterCaller<TRouter extends Router<any>, TValidate extends boolean = true>(options: CreateRouterCallerOptions<TRouter, TValidate>): RouterCaller<TRouter, TValidate>;
36
+ //# sourceMappingURL=router-caller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-caller.d.ts","sourceRoot":"","sources":["../../src/router-caller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,aAAa,CAAA;AACzD,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,oBAAoB,CAAA;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAG/C,MAAM,WAAW,yBAAyB,CACxC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,EAC3B,SAAS,SAAS,OAAO;IAEzB,MAAM,EAAE,OAAO,CAAA;IAEf;;OAEG;IACH,OAAO,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAA;IAElE;;OAEG;IACH,KAAK,CAAC,EAAE,CACN,OAAO,EAAE,OAAO,SAAS,MAAM,CAAC,MAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,KAAK,EAClE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAChB,UAAU,CAAC,IAAI,CAAC,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAEnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,MAAM,YAAY,CACtB,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,EAC3B,SAAS,SAAS,OAAO,IACvB;KACD,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACvE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GAC5B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GACnC,KAAK;CACZ,CAAA;AAED,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,EAC3B,SAAS,SAAS,OAAO,GAAG,IAAI,EAEhC,OAAO,EAAE,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,GACrD,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAgClC"}
@@ -0,0 +1,20 @@
1
+ import { type ContractProcedure, type ContractRouter } from '@orpc/contract';
2
+ import type { Middleware } from './middleware';
3
+ import { ProcedureImplementer } from './procedure-implementer';
4
+ import type { RouterWithContract } from './router';
5
+ import type { Context } from './types';
6
+ export declare class RouterImplementer<TContext extends Context, TContract extends ContractRouter> {
7
+ zz$ri: {
8
+ contract: TContract;
9
+ };
10
+ constructor(zz$ri: {
11
+ contract: TContract;
12
+ });
13
+ router(router: RouterWithContract<TContext, TContract>): RouterWithContract<TContext, TContract>;
14
+ }
15
+ export type ChainedRouterImplementer<TContext extends Context, TContract extends ContractRouter, TExtraContext extends Context> = {
16
+ [K in keyof TContract]: TContract[K] extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? ProcedureImplementer<TContext, TExtraContext, UInputSchema, UOutputSchema> : TContract[K] extends ContractRouter ? ChainedRouterImplementer<TContext, TContract[K], TExtraContext> : never;
17
+ } & RouterImplementer<TContext, TContract>;
18
+ export declare function chainRouterImplementer<TContext extends Context, TContract extends ContractRouter, TExtraContext extends Context>(contract: TContract, middlewares?: Middleware<any, any, any, any>[]): ChainedRouterImplementer<TContext, TContract, TExtraContext>;
19
+ export declare function assertRouterImplementation(contract: ContractRouter, router: RouterWithContract<any, any>, path?: string[]): void;
20
+ //# sourceMappingURL=router-implementer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router-implementer.d.ts","sourceRoot":"","sources":["../../src/router-implementer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,qBAAa,iBAAiB,CAC5B,QAAQ,SAAS,OAAO,EACxB,SAAS,SAAS,cAAc;IAGvB,KAAK,EAAE;QACZ,QAAQ,EAAE,SAAS,CAAA;KACpB;gBAFM,KAAK,EAAE;QACZ,QAAQ,EAAE,SAAS,CAAA;KACpB;IAGH,MAAM,CACJ,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,GAC9C,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC;CAK3C;AAED,MAAM,MAAM,wBAAwB,CAClC,QAAQ,SAAS,OAAO,EACxB,SAAS,SAAS,cAAc,EAChC,aAAa,SAAS,OAAO,IAC3B;KACD,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAC5D,MAAM,YAAY,EAClB,MAAM,aAAa,CACpB,GACG,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,GAC1E,SAAS,CAAC,CAAC,CAAC,SAAS,cAAc,GACjC,wBAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,GAC/D,KAAK;CACZ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAE1C,wBAAgB,sBAAsB,CACpC,QAAQ,SAAS,OAAO,EACxB,SAAS,SAAS,cAAc,EAChC,aAAa,SAAS,OAAO,EAE7B,QAAQ,EAAE,SAAS,EACnB,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAC7C,wBAAwB,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAmB9D;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EACpC,IAAI,GAAE,MAAM,EAAO,GAClB,IAAI,CAgCN"}
@@ -0,0 +1,14 @@
1
+ import { type ContractProcedure, type ContractRouter } from '@orpc/contract';
2
+ import { type DecoratedProcedure, type Procedure } from './procedure';
3
+ import type { Context } from './types';
4
+ export interface Router<TContext extends Context> {
5
+ [k: string]: Procedure<TContext, any, any, any, any> | Router<TContext>;
6
+ }
7
+ 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 UHandlerOutput> ? DecoratedProcedure<UContext, UExtraContext, UInputSchema, UOutputSchema, UHandlerOutput> : TRouter[K] extends Router<any> ? HandledRouter<TRouter[K]> : never;
9
+ };
10
+ 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
+ };
13
+ export declare function toContractRouter(router: ContractRouter | Router<any>): ContractRouter;
14
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,WAAW,MAAM,CAAC,QAAQ,SAAS,OAAO;IAC9C,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;CACxE;AAED,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI;KACtD,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,SAAS,CAChD,MAAM,QAAQ,EACd,MAAM,aAAa,EACnB,MAAM,YAAY,EAClB,MAAM,aAAa,EACnB,MAAM,cAAc,CACrB,GACG,kBAAkB,CAChB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,cAAc,CACf,GACD,OAAO,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,GAC5B,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GACzB,KAAK;CACZ,CAAA;AAED,MAAM,MAAM,kBAAkB,CAC5B,QAAQ,SAAS,OAAO,EACxB,SAAS,SAAS,cAAc,IAC9B;KACD,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAC5D,MAAM,YAAY,EAClB,MAAM,aAAa,CACpB,GACG,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,CAAC,GAC1D,SAAS,CAAC,CAAC,CAAC,SAAS,cAAc,GACjC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAC1C,KAAK;CACZ,CAAA;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,GACnC,cAAc,CAgBhB"}
@@ -0,0 +1,18 @@
1
+ import type { WELL_DEFINED_PROCEDURE } from './procedure';
2
+ export type Context = Record<string, unknown> | undefined;
3
+ export type MergeContext<TA extends Context, TB extends Context> = TA extends undefined ? TB : TB extends undefined ? TA : TA & TB;
4
+ export interface Meta<T> extends Hooks<T> {
5
+ path: string[];
6
+ internal: boolean;
7
+ procedure: WELL_DEFINED_PROCEDURE;
8
+ }
9
+ export type Promisable<T> = T | Promise<T>;
10
+ export interface UnsubscribeFn {
11
+ (): void;
12
+ }
13
+ export interface Hooks<T> {
14
+ onSuccess: (fn: (output: T) => Promisable<void>) => UnsubscribeFn;
15
+ onError: (fn: (error: unknown) => Promisable<void>) => UnsubscribeFn;
16
+ onFinish: (fn: (output: T | undefined, error: unknown | undefined) => Promisable<void>) => UnsubscribeFn;
17
+ }
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;AAEzD,MAAM,MAAM,YAAY,CACtB,EAAE,SAAS,OAAO,EAClB,EAAE,SAAS,OAAO,IAChB,EAAE,SAAS,SAAS,GAAG,EAAE,GAAG,EAAE,SAAS,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;AAEnE,MAAM,WAAW,IAAI,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IACvC,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,sBAAsB,CAAA;CAClC;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAE1C,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,CAAA;CACT;AAED,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,aAAa,CAAA;IACjE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,aAAa,CAAA;IACpE,QAAQ,EAAE,CACR,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,KACxE,aAAa,CAAA;CACnB"}
@@ -0,0 +1,4 @@
1
+ import type { Context, Hooks, MergeContext, Promisable } from './types';
2
+ export declare function mergeContext<A extends Context, B extends Context>(a: A, b: B): MergeContext<A, B>;
3
+ export declare function hook<T>(fn: (hooks: Hooks<T>) => Promisable<T>): Promise<T>;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEvE,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAC/D,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,GACH,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAQpB;AAED,wBAAsB,IAAI,CAAC,CAAC,EAC1B,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,GACrC,OAAO,CAAC,CAAC,CAAC,CA6EZ"}