@orpc/server 0.0.0-next.568a5ad → 0.0.0-next.57a6344

Sign up to get free protection for your applications and to get access to all the features.
@@ -114,20 +114,20 @@ function createProcedureCaller(options) {
114
114
  const procedure = await loadProcedure(options.procedure);
115
115
  const context = await value(options.context);
116
116
  const execute = async () => {
117
- const validInput = (() => {
118
- const schema = procedure.zz$p.contract.zz$cp.InputSchema;
117
+ const validInput = await (async () => {
118
+ const schema = procedure.zz$p.contract["~orpc"].InputSchema;
119
119
  if (!schema) {
120
120
  return input;
121
121
  }
122
- try {
123
- return schema.parse(input);
124
- } catch (e) {
122
+ const result = await schema["~standard"].validate(input);
123
+ if (result.issues) {
125
124
  throw new ORPCError({
126
125
  message: "Validation input failed",
127
126
  code: "BAD_REQUEST",
128
- cause: e
127
+ issues: result.issues
129
128
  });
130
129
  }
130
+ return result.value;
131
131
  })();
132
132
  const meta = {
133
133
  path,
@@ -156,19 +156,18 @@ function createProcedureCaller(options) {
156
156
  };
157
157
  const output2 = (await next({})).output;
158
158
  const validOutput = await (async () => {
159
- const schema = procedure.zz$p.contract.zz$cp.OutputSchema;
159
+ const schema = procedure.zz$p.contract["~orpc"].OutputSchema;
160
160
  if (!schema) {
161
161
  return output2;
162
162
  }
163
- const result = await schema.safeParseAsync(output2);
164
- if (result.error) {
163
+ const result = await schema["~standard"].validate(output2);
164
+ if (result.issues) {
165
165
  throw new ORPCError({
166
166
  message: "Validation output failed",
167
- code: "INTERNAL_SERVER_ERROR",
168
- cause: result.error
167
+ code: "INTERNAL_SERVER_ERROR"
169
168
  });
170
169
  }
171
- return result.data;
170
+ return result.value;
172
171
  })();
173
172
  return validOutput;
174
173
  };
@@ -271,4 +270,4 @@ export {
271
270
  decorateProcedure,
272
271
  isProcedure
273
272
  };
274
- //# sourceMappingURL=chunk-3JMSDC5L.js.map
273
+ //# sourceMappingURL=chunk-VARUID7X.js.map
package/dist/fetch.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  createProcedureCaller,
3
3
  isLazy,
4
4
  isProcedure
5
- } from "./chunk-3JMSDC5L.js";
5
+ } from "./chunk-VARUID7X.js";
6
6
 
7
7
  // src/fetch/handle.ts
8
8
  import { ORPCError } from "@orpc/shared/error";
@@ -23,15 +23,14 @@ async function handleFetchRequest(options) {
23
23
  }
24
24
 
25
25
  // src/fetch/handler.ts
26
- import { ORPC_HEADER, ORPC_HEADER_VALUE } from "@orpc/contract";
27
- import { executeWithHooks, trim, value } from "@orpc/shared";
26
+ import { executeWithHooks, ORPC_PROTOCOL_HEADER, ORPC_PROTOCOL_VALUE, trim, value } from "@orpc/shared";
28
27
  import { ORPCError as ORPCError2 } from "@orpc/shared/error";
29
28
  import { ORPCDeserializer, ORPCSerializer } from "@orpc/transformer";
30
29
  var serializer = new ORPCSerializer();
31
30
  var deserializer = new ORPCDeserializer();
32
31
  function createORPCHandler() {
33
32
  return async (options) => {
34
- if (options.request.headers.get(ORPC_HEADER) !== ORPC_HEADER_VALUE) {
33
+ if (!options.request.headers.get(ORPC_PROTOCOL_HEADER)?.includes(ORPC_PROTOCOL_VALUE)) {
35
34
  return void 0;
36
35
  }
37
36
  const context = await value(options.context);
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  loadLazy,
13
13
  loadProcedure,
14
14
  mergeContext
15
- } from "./chunk-3JMSDC5L.js";
15
+ } from "./chunk-VARUID7X.js";
16
16
 
17
17
  // src/builder.ts
18
18
  import {
@@ -26,7 +26,7 @@ import {
26
26
  } from "@orpc/contract";
27
27
 
28
28
  // src/router-builder.ts
29
- import { DecoratedContractProcedure, prefixHTTPPath } from "@orpc/contract";
29
+ import { DecoratedContractProcedure } from "@orpc/contract";
30
30
  var LAZY_ROUTER_PREFIX_SYMBOL = Symbol("ORPC_LAZY_ROUTER_PREFIX");
31
31
  var RouterBuilder = class _RouterBuilder {
32
32
  constructor(zz$rb) {
@@ -109,7 +109,7 @@ function adaptLazyRouter(options) {
109
109
  };
110
110
  let lazyRouterPrefix = options.prefix;
111
111
  if (LAZY_ROUTER_PREFIX_SYMBOL in options.current && typeof options.current[LAZY_ROUTER_PREFIX_SYMBOL] === "string") {
112
- lazyRouterPrefix = lazyRouterPrefix ? prefixHTTPPath(options.current[LAZY_ROUTER_PREFIX_SYMBOL], lazyRouterPrefix) : options.current[LAZY_ROUTER_PREFIX_SYMBOL];
112
+ lazyRouterPrefix = `${options.current[LAZY_ROUTER_PREFIX_SYMBOL]}${lazyRouterPrefix ?? ""}`;
113
113
  }
114
114
  const decoratedLazy = Object.assign(decorateLazy(createLazy(loader)), {
115
115
  [LAZY_ROUTER_PREFIX_SYMBOL]: lazyRouterPrefix
@@ -141,7 +141,7 @@ function adaptProcedure(options) {
141
141
  ];
142
142
  let contract = DecoratedContractProcedure.decorate(
143
143
  options.procedure.zz$p.contract
144
- ).addTags(...options.tags ?? []);
144
+ ).pushTag(...options.tags ?? []);
145
145
  if (options.prefix) {
146
146
  contract = contract.prefix(options.prefix);
147
147
  }
@@ -298,11 +298,11 @@ var Builder = class _Builder {
298
298
  /**
299
299
  * Convert to ContractProcedureBuilder
300
300
  */
301
- route(opts) {
301
+ route(route) {
302
302
  return new ProcedureBuilder({
303
303
  middlewares: this.zz$b.middlewares,
304
304
  contract: new ContractProcedure({
305
- ...opts,
305
+ route,
306
306
  InputSchema: void 0,
307
307
  OutputSchema: void 0
308
308
  })
@@ -389,25 +389,6 @@ var Builder = class _Builder {
389
389
  }
390
390
  };
391
391
 
392
- // src/router.ts
393
- import {
394
- isContractProcedure as isContractProcedure3
395
- } from "@orpc/contract";
396
- function toContractRouter(router) {
397
- const contract = {};
398
- for (const key in router) {
399
- const item = router[key];
400
- if (isContractProcedure3(item)) {
401
- contract[key] = item;
402
- } else if (isProcedure(item)) {
403
- contract[key] = item.zz$p.contract;
404
- } else {
405
- contract[key] = toContractRouter(item);
406
- }
407
- }
408
- return contract;
409
- }
410
-
411
392
  // src/router-caller.ts
412
393
  function createRouterCaller(options) {
413
394
  return createRouterCallerInternal(options);
@@ -461,7 +442,6 @@ export {
461
442
  loadLazy,
462
443
  loadProcedure,
463
444
  mergeContext,
464
- os,
465
- toContractRouter
445
+ os
466
446
  };
467
447
  //# sourceMappingURL=index.js.map
@@ -1,9 +1,10 @@
1
+ import type { ANY_CONTRACT_PROCEDURE, ContractRouter, HTTPPath, RouteOptions, Schema, SchemaInput, SchemaOutput } from '@orpc/contract';
1
2
  import type { IsEqual } from '@orpc/shared';
2
3
  import type { DecoratedLazy } from './lazy';
3
4
  import type { DecoratedProcedure, Procedure, ProcedureFunc } from './procedure';
4
5
  import type { HandledRouter, Router } from './router';
5
6
  import type { Context, MergeContext } from './types';
6
- import { ContractProcedure, type ContractRouter, type HTTPPath, type RouteOptions, type Schema, type SchemaInput, type SchemaOutput } from '@orpc/contract';
7
+ import { ContractProcedure } from '@orpc/contract';
7
8
  import { type DecoratedMiddleware, type MapInputMiddleware, type Middleware } from './middleware';
8
9
  import { ProcedureBuilder } from './procedure-builder';
9
10
  import { ProcedureImplementer } from './procedure-implementer';
@@ -25,7 +26,7 @@ export declare class Builder<TContext extends Context, TExtraContext extends Con
25
26
  /**
26
27
  * Convert to ContractProcedureBuilder
27
28
  */
28
- route(opts: RouteOptions): ProcedureBuilder<TContext, TExtraContext, undefined, undefined>;
29
+ route(route: RouteOptions): ProcedureBuilder<TContext, TExtraContext, undefined, undefined>;
29
30
  input<USchema extends Schema = undefined>(schema: USchema, example?: SchemaInput<USchema>): ProcedureBuilder<TContext, TExtraContext, USchema, undefined>;
30
31
  output<USchema extends Schema = undefined>(schema: USchema, example?: SchemaOutput<USchema>): ProcedureBuilder<TContext, TExtraContext, undefined, USchema>;
31
32
  /**
@@ -35,7 +36,7 @@ export declare class Builder<TContext extends Context, TExtraContext extends Con
35
36
  /**
36
37
  * Convert to ProcedureImplementer | RouterBuilder
37
38
  */
38
- 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;
39
+ contract<UContract extends ANY_CONTRACT_PROCEDURE | ContractRouter>(contract: UContract): UContract extends ContractProcedure<infer UInputSchema, infer UOutputSchema> ? ProcedureImplementer<TContext, TExtraContext, UInputSchema, UOutputSchema> : UContract extends ContractRouter ? ChainedRouterImplementer<TContext, UContract, TExtraContext> : never;
39
40
  /**
40
41
  * Create ExtendedMiddleware
41
42
  */
@@ -12,10 +12,10 @@ export declare class RouterImplementer<TContext extends Context, TContract exten
12
12
  constructor(zz$ri: {
13
13
  contract: TContract;
14
14
  });
15
- router(router: RouterWithContract<TContext, TContract>): HandledRouter<RouterWithContract<TContext, TContract>>;
16
- lazy(loader: () => Promise<{
17
- default: RouterWithContract<TContext, TContract>;
18
- }>): DecoratedLazy<RouterWithContract<TContext, TContract>>;
15
+ router<U extends RouterWithContract<TContext, TContract>>(router: U): HandledRouter<U>;
16
+ lazy<U extends RouterWithContract<TContext, TContract>>(loader: () => Promise<{
17
+ default: U;
18
+ }>): DecoratedLazy<U>;
19
19
  }
20
20
  export type ChainedRouterImplementer<TContext extends Context, TContract extends ContractRouter, TExtraContext extends Context> = {
21
21
  [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;
@@ -1,7 +1,7 @@
1
1
  import type { ContractProcedure, ContractRouter, SchemaInput, SchemaOutput } from '@orpc/contract';
2
2
  import type { ANY_LAZY, DecoratedLazy, Lazy } from './lazy';
3
+ import type { DecoratedProcedure, Procedure } from './procedure';
3
4
  import type { Context } from './types';
4
- import { type DecoratedProcedure, type Procedure } from './procedure';
5
5
  export interface Router<TContext extends Context> {
6
6
  [k: string]: Procedure<TContext, any, any, any, any> | Lazy<Procedure<TContext, any, any, any, any>> | Router<TContext> | Lazy<Router<TContext>>;
7
7
  }
@@ -11,7 +11,6 @@ export type HandledRouter<TRouter extends Router<any>> = {
11
11
  export type RouterWithContract<TContext extends Context, TContract extends ContractRouter> = {
12
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]> : never;
13
13
  };
14
- export declare function toContractRouter(router: ContractRouter | Router<any>): ContractRouter;
15
14
  export type InferRouterInputs<T extends Router<any>> = {
16
15
  [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;
17
16
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orpc/server",
3
3
  "type": "module",
4
- "version": "0.0.0-next.568a5ad",
4
+ "version": "0.0.0-next.57a6344",
5
5
  "license": "MIT",
6
6
  "homepage": "https://orpc.unnoq.com",
7
7
  "repository": {
@@ -34,16 +34,15 @@
34
34
  "dist"
35
35
  ],
36
36
  "peerDependencies": {
37
- "zod": ">=3.23.0",
38
- "@orpc/zod": "0.0.0-next.568a5ad"
37
+ "@orpc/zod": "0.0.0-next.57a6344"
39
38
  },
40
39
  "dependencies": {
41
- "@orpc/contract": "0.0.0-next.568a5ad",
42
- "@orpc/shared": "0.0.0-next.568a5ad",
43
- "@orpc/transformer": "0.0.0-next.568a5ad"
40
+ "@orpc/contract": "0.0.0-next.57a6344",
41
+ "@orpc/transformer": "0.0.0-next.57a6344",
42
+ "@orpc/shared": "0.0.0-next.57a6344"
44
43
  },
45
44
  "devDependencies": {
46
- "@orpc/openapi": "0.0.0-next.568a5ad"
45
+ "@orpc/openapi": "0.0.0-next.57a6344"
47
46
  },
48
47
  "scripts": {
49
48
  "build": "tsup --clean --sourcemap --entry.index=src/index.ts --entry.fetch=src/fetch/index.ts --format=esm --onSuccess='tsc -b --noCheck'",