@orpc/server 0.31.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-SXUFCJBY.js → chunk-ESTRJAOX.js} +5 -7
- package/dist/{chunk-GK2Z6B6W.js → chunk-KK4SDLC7.js} +158 -68
- package/dist/fetch.js +2 -2
- package/dist/hono.js +3 -3
- package/dist/index.js +191 -787
- package/dist/next.js +3 -3
- package/dist/node.js +6 -6
- package/dist/src/adapters/fetch/orpc-handler.d.ts +1 -1
- package/dist/src/adapters/fetch/orpc-procedure-matcher.d.ts +4 -4
- package/dist/src/adapters/fetch/types.d.ts +4 -4
- package/dist/src/adapters/hono/middleware.d.ts +3 -3
- package/dist/src/adapters/next/serve.d.ts +8 -8
- package/dist/src/adapters/node/orpc-handler.d.ts +2 -2
- package/dist/src/adapters/node/types.d.ts +5 -5
- package/dist/src/builder-variants.d.ts +74 -0
- package/dist/src/builder.d.ts +50 -36
- package/dist/src/config.d.ts +6 -0
- package/dist/src/context.d.ts +8 -10
- package/dist/src/hidden.d.ts +5 -3
- package/dist/src/implementer-procedure.d.ts +30 -0
- package/dist/src/implementer-variants.d.ts +16 -0
- package/dist/src/implementer.d.ts +27 -0
- package/dist/src/index.d.ts +9 -13
- package/dist/src/lazy-utils.d.ts +4 -2
- package/dist/src/lazy.d.ts +9 -5
- package/dist/src/middleware-decorated.d.ts +7 -7
- package/dist/src/middleware-utils.d.ts +5 -0
- package/dist/src/middleware.d.ts +22 -21
- package/dist/src/procedure-client.d.ts +6 -8
- package/dist/src/procedure-decorated.d.ts +10 -15
- package/dist/src/procedure-utils.d.ts +2 -2
- package/dist/src/procedure.d.ts +17 -33
- package/dist/src/router-accessible-lazy.d.ts +8 -0
- package/dist/src/router-client.d.ts +6 -10
- package/dist/src/router.d.ts +25 -12
- package/package.json +3 -3
- package/dist/src/builder-with-errors-middlewares.d.ts +0 -50
- package/dist/src/builder-with-errors.d.ts +0 -49
- package/dist/src/builder-with-middlewares.d.ts +0 -47
- package/dist/src/error.d.ts +0 -10
- package/dist/src/implementer-chainable.d.ts +0 -14
- package/dist/src/lazy-decorated.d.ts +0 -7
- package/dist/src/procedure-builder-with-input.d.ts +0 -34
- package/dist/src/procedure-builder-with-output.d.ts +0 -33
- package/dist/src/procedure-builder.d.ts +0 -27
- package/dist/src/procedure-implementer.d.ts +0 -22
- package/dist/src/router-builder.d.ts +0 -33
- package/dist/src/router-implementer.d.ts +0 -22
- package/dist/src/types.d.ts +0 -14
- package/dist/src/utils.d.ts +0 -3
| @@ -4,7 +4,7 @@ import { | |
| 4 4 | 
             
              getRouterChild,
         | 
| 5 5 | 
             
              isProcedure,
         | 
| 6 6 | 
             
              unlazy
         | 
| 7 | 
            -
            } from "./chunk- | 
| 7 | 
            +
            } from "./chunk-KK4SDLC7.js";
         | 
| 8 8 |  | 
| 9 9 | 
             
            // src/adapters/fetch/super-json.ts
         | 
| 10 10 | 
             
            var super_json_exports = {};
         | 
| @@ -206,8 +206,7 @@ var ORPCPayloadCodec = class { | |
| 206 206 | 
             
                  const json = await re.json();
         | 
| 207 207 | 
             
                  return deserialize(json);
         | 
| 208 208 | 
             
                } catch (e) {
         | 
| 209 | 
            -
                  throw new ORPCError({
         | 
| 210 | 
            -
                    code: "BAD_REQUEST",
         | 
| 209 | 
            +
                  throw new ORPCError("BAD_REQUEST", {
         | 
| 211 210 | 
             
                    message: "Cannot parse request/response. Please check the request/response body and Content-Type header.",
         | 
| 212 211 | 
             
                    cause: e
         | 
| 213 212 | 
             
                  });
         | 
| @@ -247,7 +246,7 @@ var RPCHandler = class { | |
| 247 246 | 
             
              procedureMatcher;
         | 
| 248 247 | 
             
              payloadCodec;
         | 
| 249 248 | 
             
              async handle(request, ...[options]) {
         | 
| 250 | 
            -
                const context = options?.context;
         | 
| 249 | 
            +
                const context = options?.context ?? {};
         | 
| 251 250 | 
             
                const execute = async () => {
         | 
| 252 251 | 
             
                  const url = new URL(request.url);
         | 
| 253 252 | 
             
                  const pathname = `/${trim2(url.pathname.replace(options?.prefix ?? "", ""), "/")}`;
         | 
| @@ -277,8 +276,7 @@ var RPCHandler = class { | |
| 277 276 | 
             
                  });
         | 
| 278 277 | 
             
                  return result;
         | 
| 279 278 | 
             
                } catch (e) {
         | 
| 280 | 
            -
                  const error = e instanceof ORPCError2 ? e : new ORPCError2({
         | 
| 281 | 
            -
                    code: "INTERNAL_SERVER_ERROR",
         | 
| 279 | 
            +
                  const error = e instanceof ORPCError2 ? e : new ORPCError2("INTERNAL_SERVER_ERROR", {
         | 
| 282 280 | 
             
                    message: "Internal server error",
         | 
| 283 281 | 
             
                    cause: e
         | 
| 284 282 | 
             
                  });
         | 
| @@ -298,4 +296,4 @@ export { | |
| 298 296 | 
             
              ORPCProcedureMatcher,
         | 
| 299 297 | 
             
              RPCHandler
         | 
| 300 298 | 
             
            };
         | 
| 301 | 
            -
            //# sourceMappingURL=chunk- | 
| 299 | 
            +
            //# sourceMappingURL=chunk-ESTRJAOX.js.map
         | 
| @@ -4,22 +4,23 @@ var __export = (target, all) => { | |
| 4 4 | 
             
                __defProp(target, name, { get: all[name], enumerable: true });
         | 
| 5 5 | 
             
            };
         | 
| 6 6 |  | 
| 7 | 
            -
            // src/ | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
                return b;
         | 
| 11 | 
            -
              if (!b)
         | 
| 12 | 
            -
                return a;
         | 
| 7 | 
            +
            // src/lazy.ts
         | 
| 8 | 
            +
            var LAZY_LOADER_SYMBOL = Symbol("ORPC_LAZY_LOADER");
         | 
| 9 | 
            +
            function lazy(loader) {
         | 
| 13 10 | 
             
              return {
         | 
| 14 | 
            -
                 | 
| 15 | 
            -
                ...b
         | 
| 11 | 
            +
                [LAZY_LOADER_SYMBOL]: loader
         | 
| 16 12 | 
             
              };
         | 
| 17 13 | 
             
            }
         | 
| 14 | 
            +
            function isLazy(item) {
         | 
| 15 | 
            +
              return (typeof item === "object" || typeof item === "function") && item !== null && LAZY_LOADER_SYMBOL in item && typeof item[LAZY_LOADER_SYMBOL] === "function";
         | 
| 16 | 
            +
            }
         | 
| 17 | 
            +
            function unlazy(lazied) {
         | 
| 18 | 
            +
              return isLazy(lazied) ? lazied[LAZY_LOADER_SYMBOL]() : Promise.resolve({ default: lazied });
         | 
| 19 | 
            +
            }
         | 
| 18 20 |  | 
| 19 21 | 
             
            // src/procedure.ts
         | 
| 20 22 | 
             
            import { isContractProcedure } from "@orpc/contract";
         | 
| 21 23 | 
             
            var Procedure = class {
         | 
| 22 | 
            -
              "~type" = "Procedure";
         | 
| 23 24 | 
             
              "~orpc";
         | 
| 24 25 | 
             
              constructor(def) {
         | 
| 25 26 | 
             
                this["~orpc"] = def;
         | 
| @@ -29,46 +30,10 @@ function isProcedure(item) { | |
| 29 30 | 
             
              if (item instanceof Procedure) {
         | 
| 30 31 | 
             
                return true;
         | 
| 31 32 | 
             
              }
         | 
| 32 | 
            -
              return ( | 
| 33 | 
            -
            }
         | 
| 34 | 
            -
             | 
| 35 | 
            -
            // src/error.ts
         | 
| 36 | 
            -
            import { ORPCError } from "@orpc/contract";
         | 
| 37 | 
            -
            function createORPCErrorConstructorMap(errors) {
         | 
| 38 | 
            -
              const constructors = {};
         | 
| 39 | 
            -
              for (const code in errors) {
         | 
| 40 | 
            -
                const config = errors[code];
         | 
| 41 | 
            -
                if (!config) {
         | 
| 42 | 
            -
                  continue;
         | 
| 43 | 
            -
                }
         | 
| 44 | 
            -
                const constructor = (...[options]) => {
         | 
| 45 | 
            -
                  return new ORPCError({
         | 
| 46 | 
            -
                    code,
         | 
| 47 | 
            -
                    defined: true,
         | 
| 48 | 
            -
                    status: config.status,
         | 
| 49 | 
            -
                    message: options?.message ?? config.message,
         | 
| 50 | 
            -
                    data: options?.data,
         | 
| 51 | 
            -
                    cause: options?.cause
         | 
| 52 | 
            -
                  });
         | 
| 53 | 
            -
                };
         | 
| 54 | 
            -
                constructors[code] = constructor;
         | 
| 55 | 
            -
              }
         | 
| 56 | 
            -
              return constructors;
         | 
| 33 | 
            +
              return isContractProcedure(item) && "middlewares" in item["~orpc"] && "inputValidationIndex" in item["~orpc"] && "outputValidationIndex" in item["~orpc"] && "handler" in item["~orpc"];
         | 
| 57 34 | 
             
            }
         | 
| 58 35 |  | 
| 59 | 
            -
            // src/lazy.ts
         | 
| 60 | 
            -
            var LAZY_LOADER_SYMBOL = Symbol("ORPC_LAZY_LOADER");
         | 
| 61 | 
            -
            function lazy(loader) {
         | 
| 62 | 
            -
              return {
         | 
| 63 | 
            -
                [LAZY_LOADER_SYMBOL]: loader
         | 
| 64 | 
            -
              };
         | 
| 65 | 
            -
            }
         | 
| 66 | 
            -
            function isLazy(item) {
         | 
| 67 | 
            -
              return (typeof item === "object" || typeof item === "function") && item !== null && LAZY_LOADER_SYMBOL in item && typeof item[LAZY_LOADER_SYMBOL] === "function";
         | 
| 68 | 
            -
            }
         | 
| 69 | 
            -
            function unlazy(lazied) {
         | 
| 70 | 
            -
              return isLazy(lazied) ? lazied[LAZY_LOADER_SYMBOL]() : Promise.resolve({ default: lazied });
         | 
| 71 | 
            -
            }
         | 
| 36 | 
            +
            // src/lazy-utils.ts
         | 
| 72 37 | 
             
            function flatLazy(lazied) {
         | 
| 73 38 | 
             
              const flattenLoader = async () => {
         | 
| 74 39 | 
             
                let current = await unlazy(lazied);
         | 
| @@ -82,21 +47,35 @@ function flatLazy(lazied) { | |
| 82 47 | 
             
              };
         | 
| 83 48 | 
             
              return lazy(flattenLoader);
         | 
| 84 49 | 
             
            }
         | 
| 50 | 
            +
            function createLazyProcedureFormAnyLazy(lazied) {
         | 
| 51 | 
            +
              const lazyProcedure = lazy(async () => {
         | 
| 52 | 
            +
                const { default: maybeProcedure } = await unlazy(flatLazy(lazied));
         | 
| 53 | 
            +
                if (!isProcedure(maybeProcedure)) {
         | 
| 54 | 
            +
                  throw new Error(`
         | 
| 55 | 
            +
                        Expected a lazy<procedure> but got lazy<unknown>.
         | 
| 56 | 
            +
                        This should be caught by TypeScript compilation.
         | 
| 57 | 
            +
                        Please report this issue if this makes you feel uncomfortable.
         | 
| 58 | 
            +
                    `);
         | 
| 59 | 
            +
                }
         | 
| 60 | 
            +
                return { default: maybeProcedure };
         | 
| 61 | 
            +
              });
         | 
| 62 | 
            +
              return lazyProcedure;
         | 
| 63 | 
            +
            }
         | 
| 85 64 |  | 
| 86 65 | 
             
            // src/middleware.ts
         | 
| 87 66 | 
             
            function middlewareOutputFn(output) {
         | 
| 88 | 
            -
              return { output, context:  | 
| 67 | 
            +
              return { output, context: {} };
         | 
| 89 68 | 
             
            }
         | 
| 90 69 |  | 
| 91 70 | 
             
            // src/procedure-client.ts
         | 
| 92 | 
            -
            import { ORPCError | 
| 71 | 
            +
            import { createORPCErrorConstructorMap, ORPCError, validateORPCError, ValidationError } from "@orpc/contract";
         | 
| 93 72 | 
             
            import { executeWithHooks, toError, value } from "@orpc/shared";
         | 
| 94 73 | 
             
            function createProcedureClient(lazyableProcedure, ...[options]) {
         | 
| 95 74 | 
             
              return async (...[input, callerOptions]) => {
         | 
| 96 75 | 
             
                const path = options?.path ?? [];
         | 
| 97 76 | 
             
                const { default: procedure } = await unlazy(lazyableProcedure);
         | 
| 98 | 
            -
                const context = await value(options?.context, callerOptions?.context);
         | 
| 99 | 
            -
                const errors = createORPCErrorConstructorMap(procedure["~orpc"]. | 
| 77 | 
            +
                const context = await value(options?.context ?? {}, callerOptions?.context);
         | 
| 78 | 
            +
                const errors = createORPCErrorConstructorMap(procedure["~orpc"].errorMap);
         | 
| 100 79 | 
             
                const executeOptions = {
         | 
| 101 80 | 
             
                  input,
         | 
| 102 81 | 
             
                  context,
         | 
| @@ -115,23 +94,23 @@ function createProcedureClient(lazyableProcedure, ...[options]) { | |
| 115 94 | 
             
                  });
         | 
| 116 95 | 
             
                  return output;
         | 
| 117 96 | 
             
                } catch (e) {
         | 
| 118 | 
            -
                  if (!(e instanceof  | 
| 97 | 
            +
                  if (!(e instanceof ORPCError)) {
         | 
| 119 98 | 
             
                    throw toError(e);
         | 
| 120 99 | 
             
                  }
         | 
| 121 | 
            -
                  const validated = await validateORPCError(procedure["~orpc"]. | 
| 100 | 
            +
                  const validated = await validateORPCError(procedure["~orpc"].errorMap, e);
         | 
| 122 101 | 
             
                  throw validated;
         | 
| 123 102 | 
             
                }
         | 
| 124 103 | 
             
              };
         | 
| 125 104 | 
             
            }
         | 
| 126 105 | 
             
            async function validateInput(procedure, input) {
         | 
| 127 | 
            -
              const schema = procedure["~orpc"]. | 
| 128 | 
            -
              if (!schema)
         | 
| 106 | 
            +
              const schema = procedure["~orpc"].inputSchema;
         | 
| 107 | 
            +
              if (!schema) {
         | 
| 129 108 | 
             
                return input;
         | 
| 109 | 
            +
              }
         | 
| 130 110 | 
             
              const result = await schema["~standard"].validate(input);
         | 
| 131 111 | 
             
              if (result.issues) {
         | 
| 132 | 
            -
                throw new  | 
| 112 | 
            +
                throw new ORPCError("BAD_REQUEST", {
         | 
| 133 113 | 
             
                  message: "Input validation failed",
         | 
| 134 | 
            -
                  code: "BAD_REQUEST",
         | 
| 135 114 | 
             
                  data: {
         | 
| 136 115 | 
             
                    issues: result.issues
         | 
| 137 116 | 
             
                  },
         | 
| @@ -141,14 +120,14 @@ async function validateInput(procedure, input) { | |
| 141 120 | 
             
              return result.value;
         | 
| 142 121 | 
             
            }
         | 
| 143 122 | 
             
            async function validateOutput(procedure, output) {
         | 
| 144 | 
            -
              const schema = procedure["~orpc"]. | 
| 145 | 
            -
              if (!schema)
         | 
| 123 | 
            +
              const schema = procedure["~orpc"].outputSchema;
         | 
| 124 | 
            +
              if (!schema) {
         | 
| 146 125 | 
             
                return output;
         | 
| 126 | 
            +
              }
         | 
| 147 127 | 
             
              const result = await schema["~standard"].validate(output);
         | 
| 148 128 | 
             
              if (result.issues) {
         | 
| 149 | 
            -
                throw new  | 
| 129 | 
            +
                throw new ORPCError("INTERNAL_SERVER_ERROR", {
         | 
| 150 130 | 
             
                  message: "Output validation failed",
         | 
| 151 | 
            -
                  code: "INTERNAL_SERVER_ERROR",
         | 
| 152 131 | 
             
                  cause: new ValidationError({ message: "Output validation failed", issues: result.issues })
         | 
| 153 132 | 
             
                });
         | 
| 154 133 | 
             
              }
         | 
| @@ -161,10 +140,10 @@ async function executeProcedureInternal(procedure, options) { | |
| 161 140 | 
             
              let currentIndex = 0;
         | 
| 162 141 | 
             
              let currentContext = options.context;
         | 
| 163 142 | 
             
              let currentInput = options.input;
         | 
| 164 | 
            -
              const next = async (nextOptions) => {
         | 
| 143 | 
            +
              const next = async (...[nextOptions]) => {
         | 
| 165 144 | 
             
                const index = currentIndex;
         | 
| 166 145 | 
             
                currentIndex += 1;
         | 
| 167 | 
            -
                currentContext =  | 
| 146 | 
            +
                currentContext = { ...currentContext, ...nextOptions?.context };
         | 
| 168 147 | 
             
                if (index === inputValidationIndex) {
         | 
| 169 148 | 
             
                  currentInput = await validateInput(procedure, currentInput);
         | 
| 170 149 | 
             
                }
         | 
| @@ -182,7 +161,97 @@ async function executeProcedureInternal(procedure, options) { | |
| 182 161 | 
             
              return (await next({})).output;
         | 
| 183 162 | 
             
            }
         | 
| 184 163 |  | 
| 164 | 
            +
            // src/hidden.ts
         | 
| 165 | 
            +
            var ROUTER_CONTRACT_SYMBOL = Symbol("ORPC_ROUTER_CONTRACT");
         | 
| 166 | 
            +
            function setRouterContract(obj, contract) {
         | 
| 167 | 
            +
              return new Proxy(obj, {
         | 
| 168 | 
            +
                get(target, key) {
         | 
| 169 | 
            +
                  if (key === ROUTER_CONTRACT_SYMBOL) {
         | 
| 170 | 
            +
                    return contract;
         | 
| 171 | 
            +
                  }
         | 
| 172 | 
            +
                  return Reflect.get(target, key);
         | 
| 173 | 
            +
                }
         | 
| 174 | 
            +
              });
         | 
| 175 | 
            +
            }
         | 
| 176 | 
            +
            function getRouterContract(obj) {
         | 
| 177 | 
            +
              return obj[ROUTER_CONTRACT_SYMBOL];
         | 
| 178 | 
            +
            }
         | 
| 179 | 
            +
            var LAZY_ROUTER_PREFIX_SYMBOL = Symbol("ORPC_LAZY_ROUTER_PREFIX");
         | 
| 180 | 
            +
            function deepSetLazyRouterPrefix(router, prefix) {
         | 
| 181 | 
            +
              return new Proxy(router, {
         | 
| 182 | 
            +
                get(target, key) {
         | 
| 183 | 
            +
                  if (key !== LAZY_ROUTER_PREFIX_SYMBOL) {
         | 
| 184 | 
            +
                    const val = Reflect.get(target, key);
         | 
| 185 | 
            +
                    if (isLazy(val)) {
         | 
| 186 | 
            +
                      return deepSetLazyRouterPrefix(val, prefix);
         | 
| 187 | 
            +
                    }
         | 
| 188 | 
            +
                    return val;
         | 
| 189 | 
            +
                  }
         | 
| 190 | 
            +
                  return prefix;
         | 
| 191 | 
            +
                }
         | 
| 192 | 
            +
              });
         | 
| 193 | 
            +
            }
         | 
| 194 | 
            +
            function getLazyRouterPrefix(obj) {
         | 
| 195 | 
            +
              return obj[LAZY_ROUTER_PREFIX_SYMBOL];
         | 
| 196 | 
            +
            }
         | 
| 197 | 
            +
             | 
| 185 198 | 
             
            // src/router.ts
         | 
| 199 | 
            +
            import { adaptRoute, mergeErrorMap, mergePrefix } from "@orpc/contract";
         | 
| 200 | 
            +
             | 
| 201 | 
            +
            // src/middleware-utils.ts
         | 
| 202 | 
            +
            function dedupeMiddlewares(compare, middlewares) {
         | 
| 203 | 
            +
              let min = 0;
         | 
| 204 | 
            +
              for (let i = 0; i < middlewares.length; i++) {
         | 
| 205 | 
            +
                const index = compare.indexOf(middlewares[i], min);
         | 
| 206 | 
            +
                if (index === -1) {
         | 
| 207 | 
            +
                  return middlewares.slice(i);
         | 
| 208 | 
            +
                }
         | 
| 209 | 
            +
                min = index + 1;
         | 
| 210 | 
            +
              }
         | 
| 211 | 
            +
              return [];
         | 
| 212 | 
            +
            }
         | 
| 213 | 
            +
            function mergeMiddlewares(first, second) {
         | 
| 214 | 
            +
              return [...first, ...dedupeMiddlewares(first, second)];
         | 
| 215 | 
            +
            }
         | 
| 216 | 
            +
            function addMiddleware(middlewares, addition) {
         | 
| 217 | 
            +
              return [...middlewares, addition];
         | 
| 218 | 
            +
            }
         | 
| 219 | 
            +
             | 
| 220 | 
            +
            // src/router.ts
         | 
| 221 | 
            +
            function adaptRouter(router, options) {
         | 
| 222 | 
            +
              if (isLazy(router)) {
         | 
| 223 | 
            +
                const adapted2 = lazy(async () => {
         | 
| 224 | 
            +
                  const unlaziedRouter = (await unlazy(router)).default;
         | 
| 225 | 
            +
                  const adapted3 = adaptRouter(unlaziedRouter, options);
         | 
| 226 | 
            +
                  return { default: adapted3 };
         | 
| 227 | 
            +
                });
         | 
| 228 | 
            +
                const accessible = createAccessibleLazyRouter(adapted2);
         | 
| 229 | 
            +
                const currentPrefix = getLazyRouterPrefix(router);
         | 
| 230 | 
            +
                const prefix = currentPrefix ? mergePrefix(options.prefix, currentPrefix) : options.prefix;
         | 
| 231 | 
            +
                if (prefix) {
         | 
| 232 | 
            +
                  return deepSetLazyRouterPrefix(accessible, prefix);
         | 
| 233 | 
            +
                }
         | 
| 234 | 
            +
                return accessible;
         | 
| 235 | 
            +
              }
         | 
| 236 | 
            +
              if (isProcedure(router)) {
         | 
| 237 | 
            +
                const newMiddlewares = mergeMiddlewares(options.middlewares, router["~orpc"].middlewares);
         | 
| 238 | 
            +
                const newMiddlewareAdded = newMiddlewares.length - router["~orpc"].middlewares.length;
         | 
| 239 | 
            +
                const adapted2 = new Procedure({
         | 
| 240 | 
            +
                  ...router["~orpc"],
         | 
| 241 | 
            +
                  route: adaptRoute(router["~orpc"].route, options),
         | 
| 242 | 
            +
                  errorMap: mergeErrorMap(options.errorMap, router["~orpc"].errorMap),
         | 
| 243 | 
            +
                  middlewares: newMiddlewares,
         | 
| 244 | 
            +
                  inputValidationIndex: router["~orpc"].inputValidationIndex + newMiddlewareAdded,
         | 
| 245 | 
            +
                  outputValidationIndex: router["~orpc"].outputValidationIndex + newMiddlewareAdded
         | 
| 246 | 
            +
                });
         | 
| 247 | 
            +
                return adapted2;
         | 
| 248 | 
            +
              }
         | 
| 249 | 
            +
              const adapted = {};
         | 
| 250 | 
            +
              for (const key in router) {
         | 
| 251 | 
            +
                adapted[key] = adaptRouter(router[key], options);
         | 
| 252 | 
            +
              }
         | 
| 253 | 
            +
              return adapted;
         | 
| 254 | 
            +
            }
         | 
| 186 255 | 
             
            function getRouterChild(router, ...path) {
         | 
| 187 256 | 
             
              let current = router;
         | 
| 188 257 | 
             
              for (let i = 0; i < path.length; i++) {
         | 
| @@ -212,19 +281,40 @@ function getRouterChild(router, ...path) { | |
| 212 281 | 
             
              return current;
         | 
| 213 282 | 
             
            }
         | 
| 214 283 |  | 
| 284 | 
            +
            // src/router-accessible-lazy.ts
         | 
| 285 | 
            +
            function createAccessibleLazyRouter(lazied) {
         | 
| 286 | 
            +
              const flattenLazy = flatLazy(lazied);
         | 
| 287 | 
            +
              const recursive = new Proxy(flattenLazy, {
         | 
| 288 | 
            +
                get(target, key) {
         | 
| 289 | 
            +
                  if (typeof key !== "string") {
         | 
| 290 | 
            +
                    return Reflect.get(target, key);
         | 
| 291 | 
            +
                  }
         | 
| 292 | 
            +
                  const next = getRouterChild(flattenLazy, key);
         | 
| 293 | 
            +
                  return createAccessibleLazyRouter(next);
         | 
| 294 | 
            +
                }
         | 
| 295 | 
            +
              });
         | 
| 296 | 
            +
              return recursive;
         | 
| 297 | 
            +
            }
         | 
| 298 | 
            +
             | 
| 215 299 | 
             
            export {
         | 
| 216 300 | 
             
              __export,
         | 
| 217 | 
            -
              mergeContext,
         | 
| 218 | 
            -
              Procedure,
         | 
| 219 | 
            -
              isProcedure,
         | 
| 220 | 
            -
              createORPCErrorConstructorMap,
         | 
| 221 301 | 
             
              LAZY_LOADER_SYMBOL,
         | 
| 222 302 | 
             
              lazy,
         | 
| 223 303 | 
             
              isLazy,
         | 
| 224 304 | 
             
              unlazy,
         | 
| 305 | 
            +
              Procedure,
         | 
| 306 | 
            +
              isProcedure,
         | 
| 225 307 | 
             
              flatLazy,
         | 
| 308 | 
            +
              createLazyProcedureFormAnyLazy,
         | 
| 309 | 
            +
              addMiddleware,
         | 
| 226 310 | 
             
              middlewareOutputFn,
         | 
| 227 311 | 
             
              createProcedureClient,
         | 
| 312 | 
            +
              setRouterContract,
         | 
| 313 | 
            +
              getRouterContract,
         | 
| 314 | 
            +
              deepSetLazyRouterPrefix,
         | 
| 315 | 
            +
              getLazyRouterPrefix,
         | 
| 316 | 
            +
              createAccessibleLazyRouter,
         | 
| 317 | 
            +
              adaptRouter,
         | 
| 228 318 | 
             
              getRouterChild
         | 
| 229 319 | 
             
            };
         | 
| 230 | 
            -
            //# sourceMappingURL=chunk- | 
| 320 | 
            +
            //# sourceMappingURL=chunk-KK4SDLC7.js.map
         | 
    
        package/dist/fetch.js
    CHANGED
    
    
    
        package/dist/hono.js
    CHANGED
    
    | @@ -4,14 +4,14 @@ import { | |
| 4 4 | 
             
              ORPCProcedureMatcher,
         | 
| 5 5 | 
             
              RPCHandler,
         | 
| 6 6 | 
             
              super_json_exports
         | 
| 7 | 
            -
            } from "./chunk- | 
| 8 | 
            -
            import "./chunk- | 
| 7 | 
            +
            } from "./chunk-ESTRJAOX.js";
         | 
| 8 | 
            +
            import "./chunk-KK4SDLC7.js";
         | 
| 9 9 |  | 
| 10 10 | 
             
            // src/adapters/hono/middleware.ts
         | 
| 11 11 | 
             
            import { value } from "@orpc/shared";
         | 
| 12 12 | 
             
            function createMiddleware(handler, ...[options]) {
         | 
| 13 13 | 
             
              return async (c, next) => {
         | 
| 14 | 
            -
                const context = await value(options?.context, c);
         | 
| 14 | 
            +
                const context = await value(options?.context ?? {}, c);
         | 
| 15 15 | 
             
                const { matched, response } = await handler.handle(c.req.raw, { ...options, context });
         | 
| 16 16 | 
             
                if (matched) {
         | 
| 17 17 | 
             
                  c.res = response;
         |