hono-openapi 0.1.0 → 0.1.1

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/index.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./src/index";
package/index.esm.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./src/index";
package/index.esm.js ADDED
@@ -0,0 +1 @@
1
+ import{u as e,A as o,r as n,f as t}from"./utils.esm.js";function s(o){return Object.assign((async(e,o)=>{await o()}),{[e]:{resolver:e=>{const n={...o};let t={};if(n.responses)for(const o of Object.keys(n.responses)){const s=n.responses[o];if(!s||"content"in s)for(const o of Object.keys(s.content??{})){const n=s.content?.[o];if(n&&(n.schema&&"builder"in n.schema)){const o=n.schema.builder(e);n.schema=o.schema,o.components&&(t={...t,...o.components})}}}return{docs:n,components:t}}}})}function c(s,{documentation:c={},excludeStaticFile:i=!0,exclude:a=[],excludeMethods:d=["OPTIONS"],excludeTags:m=[]}={documentation:{},excludeStaticFile:!0,exclude:[],excludeMethods:["OPTIONS"],excludeTags:[]}){const r={version:"3.0.3",components:{}},u={};for(const t of s.routes){if(!(e in t.handler))continue;if(d.includes(t.method))continue;if(!1===o.includes(t.method)&&"ALL"!==t.method)continue;const{resolver:s,metadata:c={}}=t.handler[e],{docs:i,components:a}=s({...r,...c});if(r.components={...r.components,...a??{}},"ALL"===t.method)for(const e of o)n({path:t.path,data:i,method:e,schema:u});else n({method:t.method,path:t.path,data:i,schema:u})}for(const e in u)for(const o in u[e])u[e][o].hide&&delete u[e][o];const l={openapi:r.version,...{...c,tags:c.tags?.filter((e=>!m?.includes(e?.name))),info:{title:"Hono Documentation",description:"Development documentation",version:"0.0.0",...c.info},paths:{...t(u,{excludeStaticFile:i,exclude:Array.isArray(a)?a:[a]}),...c.paths},components:{...c.components,schemas:{...r.components,...c.components?.schemas}}}};return e=>e.json(l)}export{s as describeRoute,c as openAPISpecs};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hono-openapi",
3
3
  "description": "OpenAPI schema generator for Hono",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "license": "MIT",
6
6
  "keywords": [
7
7
  "hono",
@@ -19,13 +19,6 @@
19
19
  "bugs": {
20
20
  "url": "https://github.com/rhinobase/hono-openapi/issues"
21
21
  },
22
- "dependencies": {},
23
- "main": "./index.cjs.js",
24
- "module": "./index.esm.js",
25
- "files": [
26
- "dist",
27
- "!**/*.tsbuildinfo"
28
- ],
29
22
  "peerDependencies": {
30
23
  "hono": "^4.6.4"
31
24
  },
@@ -50,5 +43,7 @@
50
43
  "types": "./zod.cjs.d.ts"
51
44
  }
52
45
  },
46
+ "module": "./index.esm.js",
47
+ "main": "./index.cjs.js",
53
48
  "types": "./index.esm.d.ts"
54
49
  }
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { describeRoute } from "./route";
2
+ export { openAPISpecs } from "./openapi";
3
+ //# 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,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Context, Env, Hono, Input } from "hono";
2
+ import type { OpenApiSpecsOptions } from "./types";
3
+ export declare function openAPISpecs<E extends Env = Env, P extends string = string, I extends Input = Input>(hono: Hono, { documentation, excludeStaticFile, exclude, excludeMethods, excludeTags, }?: OpenApiSpecsOptions): (c: Context<E, P, I>) => any;
4
+ //# sourceMappingURL=openapi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/openapi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,KAAK,EACV,mBAAmB,EAIpB,MAAM,SAAS,CAAC;AASjB,wBAAgB,YAAY,CAC1B,CAAC,SAAS,GAAG,GAAG,GAAG,EACnB,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,SAAS,KAAK,GAAG,KAAK,EAEvB,IAAI,EAAE,IAAI,EACV,EACE,aAAkB,EAClB,iBAAwB,EACxB,OAAY,EACZ,cAA4B,EAC5B,WAAgB,GACjB,GAAE,mBAMF,OA8FU,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAC5B"}
package/src/route.d.ts ADDED
@@ -0,0 +1,34 @@
1
+ import type { Env, Input, MiddlewareHandler } from "hono/types";
2
+ import type { DescribeRouteOptions, OpenAPIRouteHandlerConfig } from "./types";
3
+ import { uniqueSymbol } from "./utils";
4
+ export declare function describeRoute<E extends Env = Env, P extends string = string, I extends Input = Input>(specs: DescribeRouteOptions): MiddlewareHandler<E, P, I> & {
5
+ [uniqueSymbol]: {
6
+ resolver: (config: OpenAPIRouteHandlerConfig) => {
7
+ docs: {
8
+ tags?: string[] | undefined;
9
+ summary?: string | undefined;
10
+ description?: string | undefined;
11
+ externalDocs?: import("openapi-types").OpenAPIV3.ExternalDocumentationObject | undefined;
12
+ operationId?: string | undefined;
13
+ callbacks?: {
14
+ [callback: string]: import("openapi-types").OpenAPIV3.ReferenceObject | import("openapi-types").OpenAPIV3.CallbackObject;
15
+ } | undefined;
16
+ deprecated?: boolean | undefined;
17
+ security?: import("openapi-types").OpenAPIV3.SecurityRequirementObject[] | undefined;
18
+ servers?: import("openapi-types").OpenAPIV3.ServerObject[] | undefined;
19
+ hide?: boolean;
20
+ responses?: {
21
+ [key: string]: import("openapi-types").OpenAPIV3.ResponseObject & {
22
+ content?: {
23
+ [key: string]: Omit<import("openapi-types").OpenAPIV3.MediaTypeObject, "schema"> & {
24
+ schema?: import("openapi-types").OpenAPIV3.ReferenceObject | import("openapi-types").OpenAPIV3.SchemaObject | import("./types").ResolverResult;
25
+ };
26
+ };
27
+ };
28
+ };
29
+ };
30
+ components: {};
31
+ };
32
+ };
33
+ };
34
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAgB,aAAa,CAC3B,CAAC,SAAS,GAAG,GAAG,GAAG,EACnB,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,SAAS,KAAK,GAAG,KAAK,EACvB,KAAK,EAAE,oBAAoB;;2BA4BJ,yBAAyB;;;;;;;;;;;;;;;;+BATnC,CAAJ;;sCAOkB,CAAC;;;;;;;;;EAkC7B"}
package/src/types.d.ts ADDED
@@ -0,0 +1,72 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { ALLOWED_METHODS } from "./utils";
3
+ export type OpenAPIRouteHandlerConfig = {
4
+ version: "3.0.0" | "3.0.1" | "3.0.2" | "3.0.3" | "3.1.0";
5
+ components: OpenAPIV3.ComponentsObject["schemas"];
6
+ };
7
+ export type ResolverResult = {
8
+ builder: (options?: OpenAPIRouteHandlerConfig) => {
9
+ schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject;
10
+ components?: OpenAPIV3.ComponentsObject["schemas"];
11
+ };
12
+ validator: (values: unknown) => void | Promise<void>;
13
+ };
14
+ export type HandlerResponse = {
15
+ resolver: (config: OpenAPIRouteHandlerConfig) => {
16
+ docs: OpenAPIV3.OperationObject;
17
+ components?: OpenAPIV3.ComponentsObject["schemas"];
18
+ };
19
+ metadata?: Record<string, unknown>;
20
+ };
21
+ export type DescribeRouteOptions = Omit<OpenAPIV3.OperationObject, "responses" | "requestBody" | "parameters"> & {
22
+ /**
23
+ * Pass `true` to hide route from OpenAPI/swagger document
24
+ */
25
+ hide?: boolean;
26
+ /**
27
+ * Responses of the request
28
+ */
29
+ responses?: {
30
+ [key: string]: OpenAPIV3.ResponseObject & {
31
+ content?: {
32
+ [key: string]: Omit<OpenAPIV3.MediaTypeObject, "schema"> & {
33
+ schema?: OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject | ResolverResult;
34
+ };
35
+ };
36
+ };
37
+ };
38
+ };
39
+ export interface OpenAPIRoute {
40
+ path: string;
41
+ method: (typeof ALLOWED_METHODS)[number];
42
+ data: DescribeRouteOptions | Pick<OpenAPIV3.OperationObject, "parameters" | "requestBody">;
43
+ }
44
+ export type OpenApiSpecsOptions = {
45
+ /**
46
+ * Customize OpenAPI config, refers to Swagger 2.0 config
47
+ *
48
+ * @see https://swagger.io/specification/v2/
49
+ */
50
+ documentation?: Omit<Partial<OpenAPIV3.Document>, "x-express-openapi-additional-middleware" | "x-express-openapi-validation-strict">;
51
+ /**
52
+ * Determine if Swagger should exclude static files.
53
+ *
54
+ * @default true
55
+ */
56
+ excludeStaticFile?: boolean;
57
+ /**
58
+ * Paths to exclude from OpenAPI endpoint
59
+ *
60
+ * @default []
61
+ */
62
+ exclude?: string | RegExp | Array<string | RegExp>;
63
+ /**
64
+ * Exclude methods from Open API
65
+ */
66
+ excludeMethods?: (typeof ALLOWED_METHODS)[number][];
67
+ /**
68
+ * Exclude tags from OpenAPI
69
+ */
70
+ excludeTags?: string[];
71
+ };
72
+ //# 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,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACzD,UAAU,EAAE,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;CACnD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,yBAAyB,KAAK;QAChD,MAAM,EAAE,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC;QAC3D,UAAU,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;KACpD,CAAC;IACF,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK;QAC/C,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC;QAChC,UAAU,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;KACpD,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,SAAS,CAAC,eAAe,EACzB,WAAW,GAAG,aAAa,GAAG,YAAY,CAC3C,GAAG;IACF;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,cAAc,GAAG;YACxC,OAAO,CAAC,EAAE;gBACR,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG;oBACzD,MAAM,CAAC,EACH,SAAS,CAAC,eAAe,GACzB,SAAS,CAAC,YAAY,GACtB,cAAc,CAAC;iBACpB,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,EACA,oBAAoB,GACpB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,YAAY,GAAG,aAAa,CAAC,CAAC;CACnE;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,IAAI,CAClB,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EACzB,yCAAyC,GACzC,qCAAqC,CACxC,CAAC;IAEF;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAEnD;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IAEpD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC"}
package/src/utils.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import type { OpenAPIV3 } from "openapi-types";
2
+ import type { OpenAPIRoute } from "./types";
3
+ export declare const uniqueSymbol: unique symbol;
4
+ export declare const ALLOWED_METHODS: readonly ["GET", "PUT", "POST", "DELETE", "OPTIONS", "HEAD", "PATCH", "TRACE"];
5
+ export declare const toOpenAPIPath: (path: string) => string;
6
+ export declare const capitalize: (word: string) => string;
7
+ export declare const generateOperationId: (method: string, paths: string) => string;
8
+ export declare function registerSchemaPath({ path, method: _method, data, schema, }: OpenAPIRoute & {
9
+ schema: Partial<OpenAPIV3.PathsObject>;
10
+ }): void;
11
+ export declare function filterPaths(paths: OpenAPIV3.PathsObject, { excludeStaticFile, exclude, }: {
12
+ excludeStaticFile: boolean;
13
+ exclude: (string | RegExp)[];
14
+ }): OpenAPIV3.PathsObject<{}, {}>;
15
+ //# 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,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,YAAY,eAAoB,CAAC;AAE9C,eAAO,MAAM,eAAe,gFASlB,CAAC;AAEX,eAAO,MAAM,aAAa,SAAU,MAAM,WAa5B,CAAC;AAEf,eAAO,MAAM,UAAU,SAAU,MAAM,WACO,CAAC;AAE/C,eAAO,MAAM,mBAAmB,WAAY,MAAM,SAAS,MAAM,WAchE,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,MAAM,EAAE,OAAO,EACf,IAAI,EACJ,MAAM,GACP,EAAE,YAAY,GAAG;IAChB,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACxC,QAaA;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,CAAC,WAAW,EAC5B,EACE,iBAAwB,EACxB,OAAY,GACb,EAAE;IACD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC9B,iCAuDF"}
package/src/zod.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import type { z, ZodSchema } from "zod";
2
+ import { type Hook } from "@hono/zod-validator";
3
+ import type { ResolverResult } from "./types";
4
+ import type { Env, Input, MiddlewareHandler, ValidationTargets } from "hono";
5
+ export declare function resolver<T extends ZodSchema>(schema: T): ResolverResult;
6
+ type HasUndefined<T> = undefined extends T ? true : false;
7
+ export declare function validator<T extends ZodSchema, Target extends keyof ValidationTargets, E extends Env, P extends string, In = z.input<T>, Out = z.output<T>, I extends Input = {
8
+ in: HasUndefined<In> extends true ? {
9
+ [K in Target]?: In extends ValidationTargets[K] ? In : {
10
+ [K2 in keyof In]?: ValidationTargets[K][K2];
11
+ };
12
+ } : {
13
+ [K in Target]: In extends ValidationTargets[K] ? In : {
14
+ [K2 in keyof In]: ValidationTargets[K][K2];
15
+ };
16
+ };
17
+ out: {
18
+ [K in Target]: Out;
19
+ };
20
+ }, V extends I = I>(target: Target, schema: T, hook?: Hook<z.infer<T>, E, P, Target>): MiddlewareHandler<E, P, V>;
21
+ export {};
22
+ //# sourceMappingURL=zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../src/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,qBAAqB,CAAC;AAE5D,OAAO,KAAK,EAAE,cAAc,EAA6B,MAAM,SAAS,CAAC;AACzE,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAI7E,wBAAgB,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAgBvE;AAED,KAAK,YAAY,CAAC,CAAC,IAAI,SAAS,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAE1D,wBAAgB,SAAS,CACvB,CAAC,SAAS,SAAS,EACnB,MAAM,SAAS,MAAM,iBAAiB,EACtC,CAAC,SAAS,GAAG,EACb,CAAC,SAAS,MAAM,EAChB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACf,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACjB,CAAC,SAAS,KAAK,GAAG;IAChB,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,SAAS,IAAI,GAC7B;SACG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAC3C,EAAE,GACF;aAAG,EAAE,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAAE;KACpD,GACD;SACG,CAAC,IAAI,MAAM,GAAG,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAC1C,EAAE,GACF;aAAG,EAAE,IAAI,MAAM,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAAE;KACnD,CAAC;IACN,GAAG,EAAE;SAAG,CAAC,IAAI,MAAM,GAAG,GAAG;KAAE,CAAC;CAC7B,EACD,CAAC,SAAS,CAAC,GAAG,CAAC,EAEf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,EACT,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,GACpC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAqD5B"}
package/utils.cjs.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";const e=Symbol("openapi"),t=e=>e.charAt(0).toUpperCase()+e.slice(1),s=(e,s)=>{let r=e;if("/"===s)return`${r}Index`;for(const e of s.split("/"))123===e.charCodeAt(0)?r+=`By${t(e.slice(1,-1))}`:r+=t(e);return r};exports.ALLOWED_METHODS=["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],exports.filterPaths=function(e,{excludeStaticFile:t=!0,exclude:s=[]}){const r={};for(const[n,i]of Object.entries(e))if(!(s.some((e=>"string"==typeof e?n===e:e.test(n)))||n.includes("*")||t&&n.includes("."))){for(const e of Object.keys(i)){const t=i[e];n.includes("{")&&(t.parameters||(t.parameters=[]),t.parameters=[...n.split("/").filter((e=>e.startsWith("{")&&!t.parameters.find((t=>"path"===t.in&&t.name===e.slice(1,e.length-1))))).map((e=>({schema:{type:"string"},in:"path",name:e.slice(1,e.length-1),required:!0}))),...t.parameters]),t.responses||(t.responses={200:{}})}r[n]=i}return r},exports.registerSchemaPath=function({path:e,method:t,data:r,schema:n}){e=(e=>e.split("/").map((e=>{let t=e;return t.startsWith(":")&&(t=t.slice(1,t.length),t.endsWith("?")&&(t=t.slice(0,-1)),t=`{${t}}`),t})).join("/"))(e);const i=t.toLowerCase();n[e]={...n[e]?n[e]:{},[i]:{responses:{},...n[e]?.[i]??{},operationId:s(i,e),...r}}},exports.uniqueSymbol=e;
package/utils.esm.js ADDED
@@ -0,0 +1 @@
1
+ const e=Symbol("openapi"),t=["GET","PUT","POST","DELETE","OPTIONS","HEAD","PATCH","TRACE"],s=e=>e.charAt(0).toUpperCase()+e.slice(1),r=(e,t)=>{let r=e;if("/"===t)return`${r}Index`;for(const e of t.split("/"))123===e.charCodeAt(0)?r+=`By${s(e.slice(1,-1))}`:r+=s(e);return r};function n({path:e,method:t,data:s,schema:n}){e=(e=>e.split("/").map((e=>{let t=e;return t.startsWith(":")&&(t=t.slice(1,t.length),t.endsWith("?")&&(t=t.slice(0,-1)),t=`{${t}}`),t})).join("/"))(e);const a=t.toLowerCase();n[e]={...n[e]?n[e]:{},[a]:{responses:{},...n[e]?.[a]??{},operationId:r(a,e),...s}}}function a(e,{excludeStaticFile:t=!0,exclude:s=[]}){const r={};for(const[n,a]of Object.entries(e))if(!(s.some((e=>"string"==typeof e?n===e:e.test(n)))||n.includes("*")||t&&n.includes("."))){for(const e of Object.keys(a)){const t=a[e];n.includes("{")&&(t.parameters||(t.parameters=[]),t.parameters=[...n.split("/").filter((e=>e.startsWith("{")&&!t.parameters.find((t=>"path"===t.in&&t.name===e.slice(1,e.length-1))))).map((e=>({schema:{type:"string"},in:"path",name:e.slice(1,e.length-1),required:!0}))),...t.parameters]),t.responses||(t.responses={200:{}})}r[n]=a}return r}export{t as A,a as f,n as r,e as u};
package/zod.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./src/zod";
package/zod.cjs.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";var e=require("hono/validator"),t=require("./utils.cjs.js");function n(e,t,n,r,o,a,i){try{var c=e[a](i),f=c.value}catch(e){return void n(e)}c.done?t(f):Promise.resolve(f).then(r,o)}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),o.forEach((function(t){r(e,t,n[t])}))}return e}function a(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}function i(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}var c=function(t,r,c){return e.validator(t,(f=function(e,n){var f,u;return i(this,(function(i){switch(i.label){case 0:return[4,r.safeParseAsync(e)];case 1:return f=i.sent(),c?[4,c(a(o({data:e},f),{target:t}),n)]:[3,3];case 2:if(u=i.sent()){if(s=u,null!=(p=Response)&&"undefined"!=typeof Symbol&&p[Symbol.hasInstance]?p[Symbol.hasInstance](s):s instanceof p)return[2,u];if("response"in u)return[2,u.response]}i.label=3;case 3:return f.success?[2,f.data]:[2,n.json(f,400)]}var s,p}))},u=function(){var e=this,t=arguments;return new Promise((function(r,o){var a=f.apply(e,t);function i(e){n(a,r,o,i,c,"next",e)}function c(e){n(a,r,o,i,c,"throw",e)}i(void 0)}))},function(e,t){return u.apply(this,arguments)}));var f,u};function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){u(e,t,n[t])}))}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(c)throw o}}return a}}(e,t)||h(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||h(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function h(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}var v=function(e,t){var n;return(null==(n=null==e?void 0:e._def)?void 0:n.typeName)===t},b=function(e){var t;return Boolean(null==(t=null==e?void 0:e._def)?void 0:t.typeName)},g=function(e,t){return"ref"===e.type?Object.values(t).every((function(e){return void 0===e}))?e:{type:"schema",schema:{allOf:[e.schema,t]},effects:e.effects}:{type:"schema",schema:s({},e.schema,t),effects:e.effects}},O=["3.0.0","3.0.1","3.0.2","3.0.3","3.1.0"],w=function(e,t){return O.indexOf(e)>=O.indexOf(t)},_=function(e,t){var n=j(e._def.values),r=T(n),o=r.numbers,a=r.strings;return a.length&&o.length?w(t.components.openapi,"3.1.0")?{type:"schema",schema:{type:["string","number"],enum:m(a).concat(m(o))}}:{type:"schema",schema:{oneOf:[{type:"string",enum:a},{type:"number",enum:o}]}}:a.length?{type:"schema",schema:{type:"string",enum:a}}:{type:"schema",schema:{type:"number",enum:o}}},j=function(e){return Object.keys(e).filter((function(t){return"number"!=typeof e[e[t]]})).map((function(t){return e[t]}))},T=function(e){return{strings:e.filter((function(e){return"string"==typeof e})),numbers:e.filter((function(e){return"number"==typeof e}))}},Z=function(e,t){var n;if(!(null==(n=e._def.openapi)?void 0:n.type)){var r=e.constructor.name,o="".concat(r," - ").concat(e._def.effect.type);throw new Error("Failed to determine a type for ".concat(o," at ").concat(t.path.join(" > "),". Please change the 'effectType' to 'input', wrap it in a ZodPipeline or assign it a manual 'type'."))}return{type:e._def.openapi.type}},S=function(e){return v(e,"ZodEffects")?"".concat(e._def.typeName," - ").concat(e._def.effect.type):e._def.typeName},E=function(e){var t=S(e.zodType),n=e.creationType,r="input"===n?"output":"input";throw new Error("The ".concat(t," at ").concat(e.path.join(" > ")," is used within a registered compoment schema").concat(e.component?" (".concat(e.component.ref,")"):""," and contains an ").concat(n," transformation").concat(e.component?" (".concat(S(e.component.zodType),") defined at ").concat(e.component.path.join(" > ")):""," which is also used in an ").concat(r," schema.\n\nThis may cause the schema to render incorrectly and is most likely a mistake. You can resolve this by:\n\n1. Setting an `effectType` on one of the transformations to `same` (Not applicable for ZodDefault), `input` or `output` eg. `.openapi({type: 'same'})`\n2. Wrapping the transformation in a ZodPipeline\n3. Assigning a manual type to the transformation eg. `.openapi({type: 'string'})`\n4. Removing the transformation\n5. Deregister the component containing the transformation"))},x=function(e,t){var n=e.reduce((function(e,n){var r=function(e,t){if("schema"===e.type)return{creationType:e.creationType,path:e.path,zodType:e.zodType};if("component"===e.type){if(t.visited.has(e.zodType))return;var n=t.components.schemas.get(e.zodType);if("complete"!==(null==n?void 0:n.type))throw new Error("Something went wrong, component schema is not complete");if(n.resolvedEffect)return{creationType:n.resolvedEffect.creationType,path:e.path,zodType:e.zodType,component:{ref:n.ref,zodType:n.resolvedEffect.zodType,path:n.resolvedEffect.path}};if(!n.effects)return;t.visited.add(e.zodType);var r=x(n.effects,t);if(t.visited.delete(e.zodType),!r)return;return n.resolvedEffect=r,r}}(n,t);return"input"===(null==r?void 0:r.creationType)&&e.input.push(r),"output"===(null==r?void 0:r.creationType)&&e.output.push(r),r&&e.input.length>1&&e.output.length>1&&E(r),e}),{input:[],output:[]}),r=n.input,o=n.output;return r.length>0?r[0]:o.length>0?o[0]:void 0},k=function(e){var t=e.reduce((function(e,t){return t?e.concat(t):e}),[]);return t.length?t:void 0},P=function(e,t){if(v(e,"ZodLiteral")){if("string"!=typeof e._def.value)return;return[e._def.value]}if(v(e,"ZodNativeEnum")){var n=_(e,t);if("schema"===n.type&&"string"===n.schema.type)return n.schema.enum}return v(e,"ZodEnum")?e._def.values:v(e,"ZodBranded")?P(e._def.type,t):v(e,"ZodReadonly")||v(e,"ZodCatch")?P(e._def.innerType,t):void 0},z=function(e,t,n,r){if("string"==typeof n){var o={},a=!0,i=!1,c=void 0;try{for(var f,u=t.entries()[Symbol.iterator]();!(a=(f=u.next()).done);a=!0){var s=d(f.value,2),p=s[0],l=s[1],m=e[p],y="$ref"in m?null==m?void 0:m.$ref:void 0;if(!y)return;var h=l.shape[n],v=P(h,r);if(!v)return;var b=!0,g=!1,O=void 0;try{for(var w,_=v[Symbol.iterator]();!(b=(w=_.next()).done);b=!0){o[w.value]=y}}catch(e){g=!0,O=e}finally{try{b||null==_.return||_.return()}finally{if(g)throw O}}}}catch(e){i=!0,c=e}finally{try{a||null==u.return||u.return()}finally{if(i)throw c}}return{propertyName:n,mapping:o}}},A=function(e,t){var n;if(!(null==(n=e._def.openapi)?void 0:n.type)){var r=e.constructor.name;throw new Error("Unknown schema ".concat(r," at ").concat(t.path.join(" > "),". Please assign it a manual 'type'."))}return{type:"schema",schema:{type:e._def.openapi.type}}},N=function(e){return e?Array.isArray(e)?m(e).concat(["null"]):[e,"null"]:"null"},I=function(e,t){return w(t,"3.1.0")?m(e).concat([{type:"null"}]):m(e).concat([{nullable:!0}])},q=function(e,t){if(e.max){var n=e.max.value;return e.max.inclusive?s({},void 0!==n&&{maximum:n}):w(t,"3.1.0")?{exclusiveMaximum:n}:{maximum:n,exclusiveMaximum:!0}}},D=function(e,t){if(e.min){var n=e.min.value;return e.min.inclusive?s({},void 0!==n&&{minimum:n}):w(t,"3.1.0")?{exclusiveMinimum:n}:{minimum:n,exclusiveMinimum:!0}}},L=function(e){return e._def.checks.reduce((function(e,t){return e[t.kind]=t,e}),{})},M=function(e){return e.int?"integer":"number"},K=function(e,t){var n,r,o;if(v(e,"ZodOptional")||v(e,"ZodNever")||v(e,"ZodUndefined")||v(e,"ZodLiteral")&&void 0===e._def.value)return{optional:!0};if(v(e,"ZodDefault"))return"input"===(null==(n=e._def.openapi)?void 0:n.effectType)?{optional:!0}:"output"===(null==(r=e._def.openapi)?void 0:r.effectType)?{optional:!1}:{optional:"input"===t.type,effects:[{type:"schema",creationType:t.type,zodType:e,path:m(t.path)}]};if(v(e,"ZodNullable")||v(e,"ZodCatch"))return K(e._def.innerType,t);if(v(e,"ZodEffects"))return K(e._def.schema,t);if(v(e,"ZodUnion")||v(e,"ZodDiscriminatedUnion"))return e._def.options.map((function(e){return K(e,t)})).reduce((function(e,t){return{optional:e.optional||t.optional,effects:k([e.effects,t.effects])}}),{optional:!1});if(v(e,"ZodIntersection"))return[e._def.left,e._def.right].map((function(e){return K(e,t)})).reduce((function(e,t){return{optional:e.optional||t.optional,effects:k([e.effects,t.effects])}}),{optional:!1});if(v(e,"ZodPipeline")){var a,i=null!==(a=null==(o=e._def.openapi)?void 0:o.effectType)&&void 0!==a?a:t.type;if("input"===i)return K(e._def.in,t);if("output"===i)return K(e._def.out,t)}return v(e,"ZodLazy")?K(e._def.getter(),t):{optional:e.isOptional()}},$=function(e,t,n){var r;if(t){var o=n.components.schemas.get(t);(null!=o?o:null==(r=t._def.openapi)?void 0:r.ref)&&oe(t,n,["extended schema"]);var a=n.components.schemas.get(t);if(a){var i=B({unknownKeys:t._def.unknownKeys,catchAll:t._def.catchall},{unknownKeys:e._def.unknownKeys,catchAll:e._def.catchall});if(i){var c=U(t._def.shape(),e._def.shape());if(c){var f=J(c,i,n);return{type:"schema",schema:s({allOf:[{$ref:le(a.ref)}]},f.schema),effects:k(["complete"===a.type?a.effects:[],"in-progress"===a.type?[{type:"component",zodType:e,path:m(n.path)}]:[],f.effects])}}}}}},B=function(e,t){if("strict"!==e.unknownKeys&&v(e.catchAll,"ZodNever"))return{catchAll:t.catchAll,unknownKeys:t.unknownKeys}},U=function(e,t){var n={},r=!0,o=!1,a=void 0;try{for(var i,c=Object.entries(t)[Symbol.iterator]();!(r=(i=c.next()).done);r=!0){var f=d(i.value,2),u=f[0],s=f[1],p=e[u];if(s!==p){if(void 0!==p)return null;n[u]=t[u]}}}catch(e){o=!0,a=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw a}}return n},J=function(e,t,n){var r,o=t.unknownKeys,a=t.catchAll,i=R(e,n),c=C(e,n),f=v(a,"ZodNever")?void 0:oe(a,n,["additional properties"]);return{type:"schema",schema:s({type:"object"},i&&{properties:i.properties},(null==c?void 0:c.required.length)&&{required:c.required},"strict"===o&&{additionalProperties:!1},f&&{additionalProperties:f.schema}),effects:k(m(null!==(r=null==i?void 0:i.effects)&&void 0!==r?r:[]).concat([null==f?void 0:f.effects,null==c?void 0:c.effects]))}},C=function(e,t){var n=Object.entries(e).reduce((function(e,n){var r=d(n,2),o=r[0],a=r[1];t.path.push("property: ".concat(o));var i=K(a,t),c=i.optional,f=i.effects;return t.path.pop(),c||e.required.push(o),f&&e.effects.push(f),e}),{required:[],effects:[]}),r=n.required,o=n.effects;return{required:r,effects:k(o)}},R=function(e,t){var n=Object.entries(e);if(n.length)return n.reduce((function(e,n){var r=d(n,2),o=r[0],a=r[1];if(v(a,"ZodNever")||v(a,"ZodUndefined"))return e;var i=oe(a,t,["property: ".concat(o)]);return e.properties[o]=i.schema,e.effects.push(i.effects),e}),{properties:{},effects:[]})},W=function(e){return e._def.checks.reduce((function(e,t){var n=e[t.kind];return n?(n.push(t),e):(e[t.kind]=[t],e)}),{})},H=function(e){var t=F(e),n=G(e),r=V(e),o=Y(e);return m(null!=r?r:[]).concat(m(t?[t]:[]),m(n?[n]:[]),m(null!=o?o:[]))},F=function(e){var t,n;if(null==(n=null==(t=e.startsWith)?void 0:t[0])?void 0:n.value)return"^".concat(e.startsWith[0].value)},G=function(e){var t,n;if(null==(n=null==(t=e.endsWith)?void 0:t[0])?void 0:n.value)return"".concat(e.endsWith[0].value,"$")},V=function(e){var t;return null==(t=e.regex)?void 0:t.map((function(e){return e.regex.source}))},Y=function(e){var t;return null==(t=e.includes)?void 0:t.map((function(e){return 0===e.position?"^".concat(e.value):e.position?"^.{".concat(e.position,"}").concat(e.value):e.value}))},Q=function(e){return e.uuid?"uuid":e.datetime?"date-time":e.date?"date":e.time?"time":e.duration?"duration":e.email?"email":e.url?"uri":void 0},X=function(e){if(e.base64)return"base64"},ee=function(e,t){if(e.length){var n=e.map((function(e,n){return oe(e,t,["tuple item ".concat(n)])}));return{effects:k(n.map((function(e){return e.effects}))),schemas:n}}},te=function(e,t){var n;return(null==(n=e._def.openapi)?void 0:n.type)?A(e,t):v(e,"ZodString")?function(e,t){var n,r,o,a,i,c,f,u,p,l,d=W(e),y=Q(d),h=H(d),v=null!==(p=null==(r=null==(n=d.length)?void 0:n[0])?void 0:r.value)&&void 0!==p?p:null==(a=null==(o=d.min)?void 0:o[0])?void 0:a.value,b=null!==(l=null==(c=null==(i=d.length)?void 0:i[0])?void 0:c.value)&&void 0!==l?l:null==(u=null==(f=d.max)?void 0:f[0])?void 0:u.value,g=w(t.components.openapi,"3.1.0")?X(d):void 0;return h.length<=1?{type:"schema",schema:s({type:"string"},y&&{format:y},h[0]&&{pattern:h[0]},void 0!==v&&{minLength:v},void 0!==b&&{maxLength:b},g&&{contentEncoding:g})}:{type:"schema",schema:{allOf:[s({type:"string"},y&&{format:y},h[0]&&{pattern:h[0]},void 0!==v&&{minLength:v},void 0!==b&&{maxLength:b},g&&{contentEncoding:g})].concat(m(h.slice(1).map((function(e){return{type:"string",pattern:e}}))))}}}(e,t):v(e,"ZodNumber")?function(e,t){var n=L(e),r=D(n,t.components.openapi),o=q(n,t.components.openapi);return{type:"schema",schema:s({type:M(n)},r&&r,o&&o)}}(e,t):v(e,"ZodBoolean")?{type:"schema",schema:{type:"boolean"}}:v(e,"ZodEnum")?{type:"schema",schema:{type:"string",enum:e._def.values}}:v(e,"ZodLiteral")?function(e,t){return null===e.value?{type:"schema",schema:{type:"null"}}:w(t.components.openapi,"3.1.0")?{type:"schema",schema:{type:y(e.value),const:e.value}}:{type:"schema",schema:{type:y(e.value),enum:[e.value]}}}(e,t):v(e,"ZodNativeEnum")?_(e,t):v(e,"ZodArray")?function(e,t){var n,r,o,a,i,c,f=e._def.type,u=null!==(i=null==(n=e._def.exactLength)?void 0:n.value)&&void 0!==i?i:null==(r=e._def.minLength)?void 0:r.value,p=null!==(c=null==(o=e._def.exactLength)?void 0:o.value)&&void 0!==c?c:null==(a=e._def.maxLength)?void 0:a.value,l=oe(f,t,["array items"]);return{type:"schema",schema:s({type:"array",items:l.schema},void 0!==u&&{minItems:u},void 0!==p&&{maxItems:p}),effects:l.effects}}(e,t):v(e,"ZodObject")?function(e,t){var n,r=$(e,null==(n=e._def.extendMetadata)?void 0:n.extends,t);return r||J(e.shape,{unknownKeys:e._def.unknownKeys,catchAll:e._def.catchall},t)}(e,t):v(e,"ZodUnion")?function(e,t){var n,r,o,a=e.options.map((function(e,n){return oe(e,t,["union option ".concat(n)])}));return(null!==(o=null==(n=e._def.openapi)?void 0:n.unionOneOf)&&void 0!==o?o:null==(r=t.documentOptions)?void 0:r.unionOneOf)?{type:"schema",schema:{oneOf:a.map((function(e){return e.schema}))},effects:k(a.map((function(e){return e.effects})))}:{type:"schema",schema:{anyOf:a.map((function(e){return e.schema}))},effects:k(a.map((function(e){return e.effects})))}}(e,t):v(e,"ZodDiscriminatedUnion")?function(e,t){var n=e.options,r=n.map((function(e,n){return oe(e,t,["discriminated union option ".concat(n)])})),o=r.map((function(e){return e.schema})),a=z(o,n,e.discriminator,t);return{type:"schema",schema:s({oneOf:o},a&&{discriminator:a}),effects:k(r.map((function(e){return e.effects})))}}(e,t):v(e,"ZodNull")?{type:"schema",schema:{type:"null"}}:v(e,"ZodNullable")?function(e,t){var n=oe(e.unwrap(),t,["nullable"]);if(w(t.components.openapi,"3.1.0")){if("ref"===n.type||n.schema.allOf)return{type:"schema",schema:{oneOf:I([n.schema],t.components.openapi)},effects:n.effects};if(n.schema.oneOf){var r=n.schema,o=r.oneOf,a=l(r,["oneOf"]);return{type:"schema",schema:s({oneOf:I(o,t.components.openapi)},a),effects:n.effects}}if(n.schema.anyOf){var i=n.schema,c=i.anyOf,f=l(i,["anyOf"]);return{type:"schema",schema:s({anyOf:I(c,t.components.openapi)},f),effects:n.effects}}var u=n.schema,d=u.type,y=l(u,["type"]);return{type:"schema",schema:s({type:N(d)},y),effects:n.effects}}if("ref"===n.type)return{type:"schema",schema:{allOf:[n.schema],nullable:!0},effects:n.effects};var h=n.schema,v=h.type,b=l(h,["type"]);return{type:"schema",schema:s(p(s({},v&&{type:v}),{nullable:!0}),b,b.enum&&{enum:m(b.enum).concat([null])}),effects:n.effects}}(e,t):v(e,"ZodOptional")?function(e,t){return oe(e.unwrap(),t,["optional"])}(e,t):v(e,"ZodReadonly")?function(e,t){return oe(e._def.innerType,t,["readonly"])}(e,t):v(e,"ZodDefault")?function(e,t){var n=oe(e._def.innerType,t,["default"]);return g(n,{default:e._def.defaultValue()})}(e,t):v(e,"ZodRecord")?function(e,t){var n=oe(e.valueSchema,t,["record value"]),r=oe(e.keySchema,t,["record key"]),o=t.components.schemas.get(e.keySchema),a=o&&"complete"===o.type,i=a&&o.schemaObject,c=a&&o.effects||void 0,f=i||r.schema;return"enum"in f&&f.enum?{type:"schema",schema:{type:"object",properties:f.enum.reduce((function(e,t){return e[t]=n.schema,e}),{}),additionalProperties:!1},effects:k([r.effects,n.effects,c])}:w(t.components.openapi,"3.1.0")&&"type"in f&&"string"===f.type&&Object.keys(f).length>1?{type:"schema",schema:{type:"object",propertyNames:r.schema,additionalProperties:n.schema},effects:k([r.effects,n.effects])}:{type:"schema",schema:{type:"object",additionalProperties:n.schema},effects:n.effects}}(e,t):v(e,"ZodTuple")?function(e,t){var n=e.items,r=e._def.rest,o=ee(n,t);if(w(t.components.openapi,"3.1.0")){if(!r)return{type:"schema",schema:s({type:"array",maxItems:n.length,minItems:n.length},o&&{prefixItems:o.schemas.map((function(e){return e.schema}))}),effects:null==o?void 0:o.effects};var a=oe(r,t,["tuple items"]);return{type:"schema",schema:s({type:"array",items:a.schema},o&&{prefixItems:o.schemas.map((function(e){return e.schema}))}),effects:k([null==o?void 0:o.effects,a.effects])}}if(!r)return{type:"schema",schema:s({type:"array",maxItems:n.length,minItems:n.length},o&&{items:{oneOf:o.schemas.map((function(e){return e.schema}))}}),effects:null==o?void 0:o.effects};if(o){var i=oe(r,t,["tuple items"]);return{type:"schema",schema:{type:"array",items:{oneOf:m(o.schemas.map((function(e){return e.schema}))).concat([i.schema])}},effects:k([i.effects,o.effects])}}return{type:"schema",schema:{type:"array"}}}(e,t):v(e,"ZodDate")?function(e,t){var n,r;return{type:"schema",schema:null!==(r=null==(n=t.documentOptions)?void 0:n.defaultDateSchema)&&void 0!==r?r:{type:"string"}}}(0,t):v(e,"ZodPipeline")?function(e,t){var n,r,o;if("input"===(null==(n=e._def.openapi)?void 0:n.effectType)||"same"===(null==(r=e._def.openapi)?void 0:r.effectType))return oe(e._def.in,t,["pipeline input"]);if("output"===(null==(o=e._def.openapi)?void 0:o.effectType))return oe(e._def.out,t,["pipeline output"]);if("input"===t.type){var a=oe(e._def.in,t,["pipeline input"]);return p(s({},a),{effects:k([[{type:"schema",creationType:"input",path:m(t.path),zodType:e}],a.effects])})}var i=oe(e._def.out,t,["pipeline output"]);return p(s({},i),{effects:k([[{type:"schema",creationType:"output",path:m(t.path),zodType:e}],i.effects])})}(e,t):v(e,"ZodEffects")&&"transform"===e._def.effect.type?function(e,t){var n,r,o;if("output"===(null==(n=e._def.openapi)?void 0:n.effectType))return{type:"schema",schema:Z(e,t)};if("input"===(null==(r=e._def.openapi)?void 0:r.effectType)||"same"===(null==(o=e._def.openapi)?void 0:o.effectType))return oe(e._def.schema,t,["transform input"]);if("output"===t.type)return{type:"schema",schema:Z(e,t)};var a=oe(e._def.schema,t,["transform input"]);return p(s({},a),{effects:k([[{type:"schema",creationType:"input",zodType:e,path:m(t.path)}],a.effects])})}(e,t):v(e,"ZodEffects")&&"preprocess"===e._def.effect.type?function(e,t){return oe(e._def.schema,t,["preprocess schema"])}(e,t):v(e,"ZodEffects")&&"refinement"===e._def.effect.type?function(e,t){return oe(e._def.schema,t,["refine schema"])}(e,t):v(e,"ZodNativeEnum")?_(e,t):v(e,"ZodIntersection")?function(e,t){var n=oe(e._def.left,t,["intersection left"]),r=oe(e._def.right,t,["intersection right"]);return{type:"schema",schema:{allOf:[n.schema,r.schema]},effects:k([n.effects,r.effects])}}(e,t):v(e,"ZodCatch")?function(e,t){return oe(e._def.innerType,t,["catch"])}(e,t):v(e,"ZodUnknown")||v(e,"ZodAny")?{type:"schema",schema:{}}:v(e,"ZodLazy")?function(e,t){var n=e._def.getter();return oe(n,t,["lazy schema"])}(e,t):v(e,"ZodBranded")?function(e,t){return oe(e._def.type,t,["brand"])}(e,t):v(e,"ZodSet")?function(e,t){var n,r,o=e._def.valueType,a=null==(n=e._def.minSize)?void 0:n.value,i=null==(r=e._def.maxSize)?void 0:r.value,c=oe(o,t,["set items"]);return{type:"schema",schema:s({type:"array",items:c.schema,uniqueItems:!0},void 0!==a&&{minItems:a},void 0!==i&&{maxItems:i}),effects:c.effects}}(e,t):A(e,t)},ne=function(e,t){if(t.visited.has(e))throw new Error("The schema at ".concat(t.path.join(" > ")," needs to be registered because it's circularly referenced"));var n;t.visited.add(e);var r=null!==(n=e._def.openapi)&&void 0!==n?n:{};r.effectType,r.param,r.header,r.ref,r.refType,r.unionOneOf;var o=l(r,["effectType","param","header","ref","refType","unionOneOf"]),a=te(e,t),i=e.description&&!function(e,t){return"ref"===e.type&&t.description===e.zodType.description}(a,e)?e.description:void 0,c=g(a,s({},i&&{description:i},o));return t.visited.delete(e),c},re=function(e,t){var n,r,o=t.components.schemas.get(e),a=function(e,t,n){return t&&"complete"===t.type?{type:"ref",schema:{$ref:le(t.ref)},effects:t.effects?[{type:"component",zodType:e,path:m(n.path)}]:void 0,zodType:e}:t&&"in-progress"===t.type?{type:"ref",schema:{$ref:le(t.ref)},effects:[{type:"component",zodType:e,path:m(n.path)}],zodType:e}:void 0}(e,o,t);if(a)return a;var i=null!==(r=null==(n=e._def.openapi)?void 0:n.ref)&&void 0!==r?r:null==o?void 0:o.ref;return i?function(e,t,n){n.components.schemas.set(t,{type:"in-progress",ref:e});var r=ne(t,p(s({},n),{visited:new Set}));return n.components.schemas.set(t,{type:"complete",ref:e,schemaObject:r.schema,effects:r.effects}),{type:"ref",schema:{$ref:le(e)},effects:r.effects?[{type:"component",zodType:t,path:m(n.path)}]:void 0,zodType:t}}(i,e,t):ne(e,t)},oe=function(e,t,n){var r;(r=t.path).push.apply(r,m(n));var o=re(e,t);return t.path.pop(),o},ae=function(e,t,n){var r=oe(e,t,n);return r.effects&&function(e,t){var n=x(e,t);(null==n?void 0:n.creationType)&&n.creationType!==t.type&&E(n)}(r.effects,t),r.schema},ie=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r=d(e,2),o=r[0],a=r[1];if(b(a)){if(t.schemas.has(a))throw new Error("Schema ".concat(JSON.stringify(a._def)," is already registered"));var i,c=null!==(i=null==(n=a._def.openapi)?void 0:n.ref)&&void 0!==i?i:o;t.schemas.set(a,{type:"manual",ref:c})}}))},ce=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r,o,a,i,c,f=d(e,2),u=f[0],s=f[1];if(b(s)){if(t.parameters.has(s))throw new Error("Parameter ".concat(JSON.stringify(s._def)," is already registered"));var p,l=null!==(p=null==(r=null==(n=s._def.openapi)?void 0:n.param)?void 0:r.ref)&&void 0!==p?p:u,m=null==(a=null==(o=s._def.openapi)?void 0:o.param)?void 0:a.name,y=null==(c=null==(i=s._def.openapi)?void 0:i.param)?void 0:c.in;if(!m||!y)throw new Error("`name` or `in` missing in .openapi()");t.parameters.set(s,{type:"manual",ref:l,in:y,name:m})}}))},fe=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r,o=d(e,2),a=o[0],i=o[1];if(b(i)){if(t.parameters.has(i))throw new Error("Header ".concat(JSON.stringify(i._def)," is already registered"));var c,f=null!==(c=null==(r=null==(n=i._def.openapi)?void 0:n.param)?void 0:r.ref)&&void 0!==c?c:a;t.headers.set(i,{type:"manual",ref:f})}}))},ue=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r=d(e,2),o=r[0],a=r[1];if(t.responses.has(a))throw new Error("Header ".concat(JSON.stringify(a)," is already registered"));var i=null!==(n=null==a?void 0:a.ref)&&void 0!==n?n:o;t.responses.set(a,{type:"manual",ref:i})}))},se=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r=d(e,2),o=r[0],a=r[1];if(t.requestBodies.has(a))throw new Error("Header ".concat(JSON.stringify(a)," is already registered"));var i=null!==(n=null==a?void 0:a.ref)&&void 0!==n?n:o;t.requestBodies.set(a,{type:"manual",ref:i})}))},pe=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r=d(e,2),o=r[0],a=r[1];if(t.callbacks.has(a))throw new Error("Callback ".concat(JSON.stringify(a)," is already registered"));var i=null!==(n=null==a?void 0:a.ref)&&void 0!==n?n:o;t.callbacks.set(a,{type:"manual",ref:i})}))},le=function(e){return"#/components/schemas/".concat(e)},de=function(e,t){var n,r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"3.1.0",n={schemas:new Map,parameters:new Map,headers:new Map,requestBodies:new Map,responses:new Map,callbacks:new Map,openapi:t};return e?(ie(e.schemas,n),ce(e.parameters,n),se(e.requestBodies,n),fe(e.headers,n),ue(e.responses,n),pe(e.callbacks,n),n):n}({schemas:null==t?void 0:t.components},null==t?void 0:t.openapi),o={components:r,type:null!==(n=null==t?void 0:t.schemaType)&&void 0!==n?n:"output",path:[],visited:new Set,documentOptions:t},a=ae(e,o,["createSchema"]),i=function(e,t,n){var r;Array.from(t.schemas).forEach((function(e,r){var o,a=d(e,2),i=a[0];if("manual"===a[1].type){var c,f={components:t,type:null!==(c=null==(o=i._def.openapi)?void 0:o.refType)&&void 0!==c?c:"output",path:[],visited:new Set,documentOptions:n};ae(i,f,["component schema index ".concat(r)])}}));var o=Object.entries(null!==(r=e.schemas)&&void 0!==r?r:{}).reduce((function(e,t){var n=d(t,2),r=n[0],o=n[1];if(b(o))return e;if(e[r])throw new Error('Schema "'.concat(r,'" is already registered'));return e[r]=o,e}),{}),a=Array.from(t.schemas).reduce((function(e,t){var n=d(t,2);n[0];var r=n[1];if("complete"===r.type){if(e[r.ref])throw new Error('Schema "'.concat(r.ref,'" is already registered'));e[r.ref]=r.schemaObject}return e}),o);return Object.keys(a).length?a:void 0}({},r);return{schema:a,components:i}};function me(e){return{builder:t=>de(e,t?{openapi:t.version,components:t.components}:void 0),validator:e.parse}}exports.resolver=me,exports.validator=function(e,n,r){const o=c(e,n,r);return Object.assign(o,{[t.uniqueSymbol]:{resolver:t=>{const r=me(n).builder(t),o={};if("form"===e||"json"===e)o.requestBody={content:{["json"===e?"application/json":"application/x-www-form-urlencoded"]:{schema:r.schema}}};else{const t=[];if("$ref"in r.schema)t.push({in:e,name:r.schema.$ref,schema:r.schema});else for(const[n,o]of Object.entries(r.schema.properties??{}))t.push({in:e,name:n,schema:o});o.parameters=t}return{docs:o,components:r.components}},metadata:{schemaType:"input"}}})};
package/zod.esm.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./src/zod";
package/zod.esm.js ADDED
@@ -0,0 +1 @@
1
+ import{validator as e}from"hono/validator";import{u as t}from"./utils.esm.js";function n(e,t,n,r,o,a,i){try{var c=e[a](i),f=c.value}catch(e){return void n(e)}c.done?t(f):Promise.resolve(f).then(r,o)}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),o.forEach((function(t){r(e,t,n[t])}))}return e}function a(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}function i(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}var c=function(t,r,c){return e(t,(f=function(e,n){var f,u;return i(this,(function(i){switch(i.label){case 0:return[4,r.safeParseAsync(e)];case 1:return f=i.sent(),c?[4,c(a(o({data:e},f),{target:t}),n)]:[3,3];case 2:if(u=i.sent()){if(s=u,null!=(p=Response)&&"undefined"!=typeof Symbol&&p[Symbol.hasInstance]?p[Symbol.hasInstance](s):s instanceof p)return[2,u];if("response"in u)return[2,u.response]}i.label=3;case 3:return f.success?[2,f.data]:[2,n.json(f,400)]}var s,p}))},u=function(){var e=this,t=arguments;return new Promise((function(r,o){var a=f.apply(e,t);function i(e){n(a,r,o,i,c,"next",e)}function c(e){n(a,r,o,i,c,"throw",e)}i(void 0)}))},function(e,t){return u.apply(this,arguments)}));var f,u};function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){u(e,t,n[t])}))}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})),e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,c=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(c)throw o}}return a}}(e,t)||y(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||y(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function y(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}var v=function(e,t){var n;return(null==(n=null==e?void 0:e._def)?void 0:n.typeName)===t},b=function(e){var t;return Boolean(null==(t=null==e?void 0:e._def)?void 0:t.typeName)},g=function(e,t){return"ref"===e.type?Object.values(t).every((function(e){return void 0===e}))?e:{type:"schema",schema:{allOf:[e.schema,t]},effects:e.effects}:{type:"schema",schema:s({},e.schema,t),effects:e.effects}},O=["3.0.0","3.0.1","3.0.2","3.0.3","3.1.0"],w=function(e,t){return O.indexOf(e)>=O.indexOf(t)},_=function(e,t){var n=j(e._def.values),r=T(n),o=r.numbers,a=r.strings;return a.length&&o.length?w(t.components.openapi,"3.1.0")?{type:"schema",schema:{type:["string","number"],enum:m(a).concat(m(o))}}:{type:"schema",schema:{oneOf:[{type:"string",enum:a},{type:"number",enum:o}]}}:a.length?{type:"schema",schema:{type:"string",enum:a}}:{type:"schema",schema:{type:"number",enum:o}}},j=function(e){return Object.keys(e).filter((function(t){return"number"!=typeof e[e[t]]})).map((function(t){return e[t]}))},T=function(e){return{strings:e.filter((function(e){return"string"==typeof e})),numbers:e.filter((function(e){return"number"==typeof e}))}},Z=function(e,t){var n;if(!(null==(n=e._def.openapi)?void 0:n.type)){var r=e.constructor.name,o="".concat(r," - ").concat(e._def.effect.type);throw new Error("Failed to determine a type for ".concat(o," at ").concat(t.path.join(" > "),". Please change the 'effectType' to 'input', wrap it in a ZodPipeline or assign it a manual 'type'."))}return{type:e._def.openapi.type}},S=function(e){return v(e,"ZodEffects")?"".concat(e._def.typeName," - ").concat(e._def.effect.type):e._def.typeName},E=function(e){var t=S(e.zodType),n=e.creationType,r="input"===n?"output":"input";throw new Error("The ".concat(t," at ").concat(e.path.join(" > ")," is used within a registered compoment schema").concat(e.component?" (".concat(e.component.ref,")"):""," and contains an ").concat(n," transformation").concat(e.component?" (".concat(S(e.component.zodType),") defined at ").concat(e.component.path.join(" > ")):""," which is also used in an ").concat(r," schema.\n\nThis may cause the schema to render incorrectly and is most likely a mistake. You can resolve this by:\n\n1. Setting an `effectType` on one of the transformations to `same` (Not applicable for ZodDefault), `input` or `output` eg. `.openapi({type: 'same'})`\n2. Wrapping the transformation in a ZodPipeline\n3. Assigning a manual type to the transformation eg. `.openapi({type: 'string'})`\n4. Removing the transformation\n5. Deregister the component containing the transformation"))},x=function(e,t){var n=e.reduce((function(e,n){var r=function(e,t){if("schema"===e.type)return{creationType:e.creationType,path:e.path,zodType:e.zodType};if("component"===e.type){if(t.visited.has(e.zodType))return;var n=t.components.schemas.get(e.zodType);if("complete"!==(null==n?void 0:n.type))throw new Error("Something went wrong, component schema is not complete");if(n.resolvedEffect)return{creationType:n.resolvedEffect.creationType,path:e.path,zodType:e.zodType,component:{ref:n.ref,zodType:n.resolvedEffect.zodType,path:n.resolvedEffect.path}};if(!n.effects)return;t.visited.add(e.zodType);var r=x(n.effects,t);if(t.visited.delete(e.zodType),!r)return;return n.resolvedEffect=r,r}}(n,t);return"input"===(null==r?void 0:r.creationType)&&e.input.push(r),"output"===(null==r?void 0:r.creationType)&&e.output.push(r),r&&e.input.length>1&&e.output.length>1&&E(r),e}),{input:[],output:[]}),r=n.input,o=n.output;return r.length>0?r[0]:o.length>0?o[0]:void 0},k=function(e){var t=e.reduce((function(e,t){return t?e.concat(t):e}),[]);return t.length?t:void 0},P=function(e,t){if(v(e,"ZodLiteral")){if("string"!=typeof e._def.value)return;return[e._def.value]}if(v(e,"ZodNativeEnum")){var n=_(e,t);if("schema"===n.type&&"string"===n.schema.type)return n.schema.enum}return v(e,"ZodEnum")?e._def.values:v(e,"ZodBranded")?P(e._def.type,t):v(e,"ZodReadonly")||v(e,"ZodCatch")?P(e._def.innerType,t):void 0},z=function(e,t,n,r){if("string"==typeof n){var o={},a=!0,i=!1,c=void 0;try{for(var f,u=t.entries()[Symbol.iterator]();!(a=(f=u.next()).done);a=!0){var s=d(f.value,2),p=s[0],l=s[1],m=e[p],h="$ref"in m?null==m?void 0:m.$ref:void 0;if(!h)return;var y=l.shape[n],v=P(y,r);if(!v)return;var b=!0,g=!1,O=void 0;try{for(var w,_=v[Symbol.iterator]();!(b=(w=_.next()).done);b=!0){o[w.value]=h}}catch(e){g=!0,O=e}finally{try{b||null==_.return||_.return()}finally{if(g)throw O}}}}catch(e){i=!0,c=e}finally{try{a||null==u.return||u.return()}finally{if(i)throw c}}return{propertyName:n,mapping:o}}},A=function(e,t){var n;if(!(null==(n=e._def.openapi)?void 0:n.type)){var r=e.constructor.name;throw new Error("Unknown schema ".concat(r," at ").concat(t.path.join(" > "),". Please assign it a manual 'type'."))}return{type:"schema",schema:{type:e._def.openapi.type}}},N=function(e){return e?Array.isArray(e)?m(e).concat(["null"]):[e,"null"]:"null"},I=function(e,t){return w(t,"3.1.0")?m(e).concat([{type:"null"}]):m(e).concat([{nullable:!0}])},D=function(e,t){if(e.max){var n=e.max.value;return e.max.inclusive?s({},void 0!==n&&{maximum:n}):w(t,"3.1.0")?{exclusiveMaximum:n}:{maximum:n,exclusiveMaximum:!0}}},q=function(e,t){if(e.min){var n=e.min.value;return e.min.inclusive?s({},void 0!==n&&{minimum:n}):w(t,"3.1.0")?{exclusiveMinimum:n}:{minimum:n,exclusiveMinimum:!0}}},L=function(e){return e._def.checks.reduce((function(e,t){return e[t.kind]=t,e}),{})},M=function(e){return e.int?"integer":"number"},K=function(e,t){var n,r,o;if(v(e,"ZodOptional")||v(e,"ZodNever")||v(e,"ZodUndefined")||v(e,"ZodLiteral")&&void 0===e._def.value)return{optional:!0};if(v(e,"ZodDefault"))return"input"===(null==(n=e._def.openapi)?void 0:n.effectType)?{optional:!0}:"output"===(null==(r=e._def.openapi)?void 0:r.effectType)?{optional:!1}:{optional:"input"===t.type,effects:[{type:"schema",creationType:t.type,zodType:e,path:m(t.path)}]};if(v(e,"ZodNullable")||v(e,"ZodCatch"))return K(e._def.innerType,t);if(v(e,"ZodEffects"))return K(e._def.schema,t);if(v(e,"ZodUnion")||v(e,"ZodDiscriminatedUnion"))return e._def.options.map((function(e){return K(e,t)})).reduce((function(e,t){return{optional:e.optional||t.optional,effects:k([e.effects,t.effects])}}),{optional:!1});if(v(e,"ZodIntersection"))return[e._def.left,e._def.right].map((function(e){return K(e,t)})).reduce((function(e,t){return{optional:e.optional||t.optional,effects:k([e.effects,t.effects])}}),{optional:!1});if(v(e,"ZodPipeline")){var a,i=null!==(a=null==(o=e._def.openapi)?void 0:o.effectType)&&void 0!==a?a:t.type;if("input"===i)return K(e._def.in,t);if("output"===i)return K(e._def.out,t)}return v(e,"ZodLazy")?K(e._def.getter(),t):{optional:e.isOptional()}},$=function(e,t,n){var r;if(t){var o=n.components.schemas.get(t);(null!=o?o:null==(r=t._def.openapi)?void 0:r.ref)&&oe(t,n,["extended schema"]);var a=n.components.schemas.get(t);if(a){var i=B({unknownKeys:t._def.unknownKeys,catchAll:t._def.catchall},{unknownKeys:e._def.unknownKeys,catchAll:e._def.catchall});if(i){var c=U(t._def.shape(),e._def.shape());if(c){var f=J(c,i,n);return{type:"schema",schema:s({allOf:[{$ref:le(a.ref)}]},f.schema),effects:k(["complete"===a.type?a.effects:[],"in-progress"===a.type?[{type:"component",zodType:e,path:m(n.path)}]:[],f.effects])}}}}}},B=function(e,t){if("strict"!==e.unknownKeys&&v(e.catchAll,"ZodNever"))return{catchAll:t.catchAll,unknownKeys:t.unknownKeys}},U=function(e,t){var n={},r=!0,o=!1,a=void 0;try{for(var i,c=Object.entries(t)[Symbol.iterator]();!(r=(i=c.next()).done);r=!0){var f=d(i.value,2),u=f[0],s=f[1],p=e[u];if(s!==p){if(void 0!==p)return null;n[u]=t[u]}}}catch(e){o=!0,a=e}finally{try{r||null==c.return||c.return()}finally{if(o)throw a}}return n},J=function(e,t,n){var r,o=t.unknownKeys,a=t.catchAll,i=R(e,n),c=C(e,n),f=v(a,"ZodNever")?void 0:oe(a,n,["additional properties"]);return{type:"schema",schema:s({type:"object"},i&&{properties:i.properties},(null==c?void 0:c.required.length)&&{required:c.required},"strict"===o&&{additionalProperties:!1},f&&{additionalProperties:f.schema}),effects:k(m(null!==(r=null==i?void 0:i.effects)&&void 0!==r?r:[]).concat([null==f?void 0:f.effects,null==c?void 0:c.effects]))}},C=function(e,t){var n=Object.entries(e).reduce((function(e,n){var r=d(n,2),o=r[0],a=r[1];t.path.push("property: ".concat(o));var i=K(a,t),c=i.optional,f=i.effects;return t.path.pop(),c||e.required.push(o),f&&e.effects.push(f),e}),{required:[],effects:[]}),r=n.required,o=n.effects;return{required:r,effects:k(o)}},R=function(e,t){var n=Object.entries(e);if(n.length)return n.reduce((function(e,n){var r=d(n,2),o=r[0],a=r[1];if(v(a,"ZodNever")||v(a,"ZodUndefined"))return e;var i=oe(a,t,["property: ".concat(o)]);return e.properties[o]=i.schema,e.effects.push(i.effects),e}),{properties:{},effects:[]})},W=function(e){return e._def.checks.reduce((function(e,t){var n=e[t.kind];return n?(n.push(t),e):(e[t.kind]=[t],e)}),{})},H=function(e){var t=F(e),n=G(e),r=V(e),o=Y(e);return m(null!=r?r:[]).concat(m(t?[t]:[]),m(n?[n]:[]),m(null!=o?o:[]))},F=function(e){var t,n;if(null==(n=null==(t=e.startsWith)?void 0:t[0])?void 0:n.value)return"^".concat(e.startsWith[0].value)},G=function(e){var t,n;if(null==(n=null==(t=e.endsWith)?void 0:t[0])?void 0:n.value)return"".concat(e.endsWith[0].value,"$")},V=function(e){var t;return null==(t=e.regex)?void 0:t.map((function(e){return e.regex.source}))},Y=function(e){var t;return null==(t=e.includes)?void 0:t.map((function(e){return 0===e.position?"^".concat(e.value):e.position?"^.{".concat(e.position,"}").concat(e.value):e.value}))},Q=function(e){return e.uuid?"uuid":e.datetime?"date-time":e.date?"date":e.time?"time":e.duration?"duration":e.email?"email":e.url?"uri":void 0},X=function(e){if(e.base64)return"base64"},ee=function(e,t){if(e.length){var n=e.map((function(e,n){return oe(e,t,["tuple item ".concat(n)])}));return{effects:k(n.map((function(e){return e.effects}))),schemas:n}}},te=function(e,t){var n;return(null==(n=e._def.openapi)?void 0:n.type)?A(e,t):v(e,"ZodString")?function(e,t){var n,r,o,a,i,c,f,u,p,l,d=W(e),h=Q(d),y=H(d),v=null!==(p=null==(r=null==(n=d.length)?void 0:n[0])?void 0:r.value)&&void 0!==p?p:null==(a=null==(o=d.min)?void 0:o[0])?void 0:a.value,b=null!==(l=null==(c=null==(i=d.length)?void 0:i[0])?void 0:c.value)&&void 0!==l?l:null==(u=null==(f=d.max)?void 0:f[0])?void 0:u.value,g=w(t.components.openapi,"3.1.0")?X(d):void 0;return y.length<=1?{type:"schema",schema:s({type:"string"},h&&{format:h},y[0]&&{pattern:y[0]},void 0!==v&&{minLength:v},void 0!==b&&{maxLength:b},g&&{contentEncoding:g})}:{type:"schema",schema:{allOf:[s({type:"string"},h&&{format:h},y[0]&&{pattern:y[0]},void 0!==v&&{minLength:v},void 0!==b&&{maxLength:b},g&&{contentEncoding:g})].concat(m(y.slice(1).map((function(e){return{type:"string",pattern:e}}))))}}}(e,t):v(e,"ZodNumber")?function(e,t){var n=L(e),r=q(n,t.components.openapi),o=D(n,t.components.openapi);return{type:"schema",schema:s({type:M(n)},r&&r,o&&o)}}(e,t):v(e,"ZodBoolean")?{type:"schema",schema:{type:"boolean"}}:v(e,"ZodEnum")?{type:"schema",schema:{type:"string",enum:e._def.values}}:v(e,"ZodLiteral")?function(e,t){return null===e.value?{type:"schema",schema:{type:"null"}}:w(t.components.openapi,"3.1.0")?{type:"schema",schema:{type:h(e.value),const:e.value}}:{type:"schema",schema:{type:h(e.value),enum:[e.value]}}}(e,t):v(e,"ZodNativeEnum")?_(e,t):v(e,"ZodArray")?function(e,t){var n,r,o,a,i,c,f=e._def.type,u=null!==(i=null==(n=e._def.exactLength)?void 0:n.value)&&void 0!==i?i:null==(r=e._def.minLength)?void 0:r.value,p=null!==(c=null==(o=e._def.exactLength)?void 0:o.value)&&void 0!==c?c:null==(a=e._def.maxLength)?void 0:a.value,l=oe(f,t,["array items"]);return{type:"schema",schema:s({type:"array",items:l.schema},void 0!==u&&{minItems:u},void 0!==p&&{maxItems:p}),effects:l.effects}}(e,t):v(e,"ZodObject")?function(e,t){var n,r=$(e,null==(n=e._def.extendMetadata)?void 0:n.extends,t);return r||J(e.shape,{unknownKeys:e._def.unknownKeys,catchAll:e._def.catchall},t)}(e,t):v(e,"ZodUnion")?function(e,t){var n,r,o,a=e.options.map((function(e,n){return oe(e,t,["union option ".concat(n)])}));return(null!==(o=null==(n=e._def.openapi)?void 0:n.unionOneOf)&&void 0!==o?o:null==(r=t.documentOptions)?void 0:r.unionOneOf)?{type:"schema",schema:{oneOf:a.map((function(e){return e.schema}))},effects:k(a.map((function(e){return e.effects})))}:{type:"schema",schema:{anyOf:a.map((function(e){return e.schema}))},effects:k(a.map((function(e){return e.effects})))}}(e,t):v(e,"ZodDiscriminatedUnion")?function(e,t){var n=e.options,r=n.map((function(e,n){return oe(e,t,["discriminated union option ".concat(n)])})),o=r.map((function(e){return e.schema})),a=z(o,n,e.discriminator,t);return{type:"schema",schema:s({oneOf:o},a&&{discriminator:a}),effects:k(r.map((function(e){return e.effects})))}}(e,t):v(e,"ZodNull")?{type:"schema",schema:{type:"null"}}:v(e,"ZodNullable")?function(e,t){var n=oe(e.unwrap(),t,["nullable"]);if(w(t.components.openapi,"3.1.0")){if("ref"===n.type||n.schema.allOf)return{type:"schema",schema:{oneOf:I([n.schema],t.components.openapi)},effects:n.effects};if(n.schema.oneOf){var r=n.schema,o=r.oneOf,a=l(r,["oneOf"]);return{type:"schema",schema:s({oneOf:I(o,t.components.openapi)},a),effects:n.effects}}if(n.schema.anyOf){var i=n.schema,c=i.anyOf,f=l(i,["anyOf"]);return{type:"schema",schema:s({anyOf:I(c,t.components.openapi)},f),effects:n.effects}}var u=n.schema,d=u.type,h=l(u,["type"]);return{type:"schema",schema:s({type:N(d)},h),effects:n.effects}}if("ref"===n.type)return{type:"schema",schema:{allOf:[n.schema],nullable:!0},effects:n.effects};var y=n.schema,v=y.type,b=l(y,["type"]);return{type:"schema",schema:s(p(s({},v&&{type:v}),{nullable:!0}),b,b.enum&&{enum:m(b.enum).concat([null])}),effects:n.effects}}(e,t):v(e,"ZodOptional")?function(e,t){return oe(e.unwrap(),t,["optional"])}(e,t):v(e,"ZodReadonly")?function(e,t){return oe(e._def.innerType,t,["readonly"])}(e,t):v(e,"ZodDefault")?function(e,t){var n=oe(e._def.innerType,t,["default"]);return g(n,{default:e._def.defaultValue()})}(e,t):v(e,"ZodRecord")?function(e,t){var n=oe(e.valueSchema,t,["record value"]),r=oe(e.keySchema,t,["record key"]),o=t.components.schemas.get(e.keySchema),a=o&&"complete"===o.type,i=a&&o.schemaObject,c=a&&o.effects||void 0,f=i||r.schema;return"enum"in f&&f.enum?{type:"schema",schema:{type:"object",properties:f.enum.reduce((function(e,t){return e[t]=n.schema,e}),{}),additionalProperties:!1},effects:k([r.effects,n.effects,c])}:w(t.components.openapi,"3.1.0")&&"type"in f&&"string"===f.type&&Object.keys(f).length>1?{type:"schema",schema:{type:"object",propertyNames:r.schema,additionalProperties:n.schema},effects:k([r.effects,n.effects])}:{type:"schema",schema:{type:"object",additionalProperties:n.schema},effects:n.effects}}(e,t):v(e,"ZodTuple")?function(e,t){var n=e.items,r=e._def.rest,o=ee(n,t);if(w(t.components.openapi,"3.1.0")){if(!r)return{type:"schema",schema:s({type:"array",maxItems:n.length,minItems:n.length},o&&{prefixItems:o.schemas.map((function(e){return e.schema}))}),effects:null==o?void 0:o.effects};var a=oe(r,t,["tuple items"]);return{type:"schema",schema:s({type:"array",items:a.schema},o&&{prefixItems:o.schemas.map((function(e){return e.schema}))}),effects:k([null==o?void 0:o.effects,a.effects])}}if(!r)return{type:"schema",schema:s({type:"array",maxItems:n.length,minItems:n.length},o&&{items:{oneOf:o.schemas.map((function(e){return e.schema}))}}),effects:null==o?void 0:o.effects};if(o){var i=oe(r,t,["tuple items"]);return{type:"schema",schema:{type:"array",items:{oneOf:m(o.schemas.map((function(e){return e.schema}))).concat([i.schema])}},effects:k([i.effects,o.effects])}}return{type:"schema",schema:{type:"array"}}}(e,t):v(e,"ZodDate")?function(e,t){var n,r;return{type:"schema",schema:null!==(r=null==(n=t.documentOptions)?void 0:n.defaultDateSchema)&&void 0!==r?r:{type:"string"}}}(0,t):v(e,"ZodPipeline")?function(e,t){var n,r,o;if("input"===(null==(n=e._def.openapi)?void 0:n.effectType)||"same"===(null==(r=e._def.openapi)?void 0:r.effectType))return oe(e._def.in,t,["pipeline input"]);if("output"===(null==(o=e._def.openapi)?void 0:o.effectType))return oe(e._def.out,t,["pipeline output"]);if("input"===t.type){var a=oe(e._def.in,t,["pipeline input"]);return p(s({},a),{effects:k([[{type:"schema",creationType:"input",path:m(t.path),zodType:e}],a.effects])})}var i=oe(e._def.out,t,["pipeline output"]);return p(s({},i),{effects:k([[{type:"schema",creationType:"output",path:m(t.path),zodType:e}],i.effects])})}(e,t):v(e,"ZodEffects")&&"transform"===e._def.effect.type?function(e,t){var n,r,o;if("output"===(null==(n=e._def.openapi)?void 0:n.effectType))return{type:"schema",schema:Z(e,t)};if("input"===(null==(r=e._def.openapi)?void 0:r.effectType)||"same"===(null==(o=e._def.openapi)?void 0:o.effectType))return oe(e._def.schema,t,["transform input"]);if("output"===t.type)return{type:"schema",schema:Z(e,t)};var a=oe(e._def.schema,t,["transform input"]);return p(s({},a),{effects:k([[{type:"schema",creationType:"input",zodType:e,path:m(t.path)}],a.effects])})}(e,t):v(e,"ZodEffects")&&"preprocess"===e._def.effect.type?function(e,t){return oe(e._def.schema,t,["preprocess schema"])}(e,t):v(e,"ZodEffects")&&"refinement"===e._def.effect.type?function(e,t){return oe(e._def.schema,t,["refine schema"])}(e,t):v(e,"ZodNativeEnum")?_(e,t):v(e,"ZodIntersection")?function(e,t){var n=oe(e._def.left,t,["intersection left"]),r=oe(e._def.right,t,["intersection right"]);return{type:"schema",schema:{allOf:[n.schema,r.schema]},effects:k([n.effects,r.effects])}}(e,t):v(e,"ZodCatch")?function(e,t){return oe(e._def.innerType,t,["catch"])}(e,t):v(e,"ZodUnknown")||v(e,"ZodAny")?{type:"schema",schema:{}}:v(e,"ZodLazy")?function(e,t){var n=e._def.getter();return oe(n,t,["lazy schema"])}(e,t):v(e,"ZodBranded")?function(e,t){return oe(e._def.type,t,["brand"])}(e,t):v(e,"ZodSet")?function(e,t){var n,r,o=e._def.valueType,a=null==(n=e._def.minSize)?void 0:n.value,i=null==(r=e._def.maxSize)?void 0:r.value,c=oe(o,t,["set items"]);return{type:"schema",schema:s({type:"array",items:c.schema,uniqueItems:!0},void 0!==a&&{minItems:a},void 0!==i&&{maxItems:i}),effects:c.effects}}(e,t):A(e,t)},ne=function(e,t){if(t.visited.has(e))throw new Error("The schema at ".concat(t.path.join(" > ")," needs to be registered because it's circularly referenced"));var n;t.visited.add(e);var r=null!==(n=e._def.openapi)&&void 0!==n?n:{};r.effectType,r.param,r.header,r.ref,r.refType,r.unionOneOf;var o=l(r,["effectType","param","header","ref","refType","unionOneOf"]),a=te(e,t),i=e.description&&!function(e,t){return"ref"===e.type&&t.description===e.zodType.description}(a,e)?e.description:void 0,c=g(a,s({},i&&{description:i},o));return t.visited.delete(e),c},re=function(e,t){var n,r,o=t.components.schemas.get(e),a=function(e,t,n){return t&&"complete"===t.type?{type:"ref",schema:{$ref:le(t.ref)},effects:t.effects?[{type:"component",zodType:e,path:m(n.path)}]:void 0,zodType:e}:t&&"in-progress"===t.type?{type:"ref",schema:{$ref:le(t.ref)},effects:[{type:"component",zodType:e,path:m(n.path)}],zodType:e}:void 0}(e,o,t);if(a)return a;var i=null!==(r=null==(n=e._def.openapi)?void 0:n.ref)&&void 0!==r?r:null==o?void 0:o.ref;return i?function(e,t,n){n.components.schemas.set(t,{type:"in-progress",ref:e});var r=ne(t,p(s({},n),{visited:new Set}));return n.components.schemas.set(t,{type:"complete",ref:e,schemaObject:r.schema,effects:r.effects}),{type:"ref",schema:{$ref:le(e)},effects:r.effects?[{type:"component",zodType:t,path:m(n.path)}]:void 0,zodType:t}}(i,e,t):ne(e,t)},oe=function(e,t,n){var r;(r=t.path).push.apply(r,m(n));var o=re(e,t);return t.path.pop(),o},ae=function(e,t,n){var r=oe(e,t,n);return r.effects&&function(e,t){var n=x(e,t);(null==n?void 0:n.creationType)&&n.creationType!==t.type&&E(n)}(r.effects,t),r.schema},ie=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r=d(e,2),o=r[0],a=r[1];if(b(a)){if(t.schemas.has(a))throw new Error("Schema ".concat(JSON.stringify(a._def)," is already registered"));var i,c=null!==(i=null==(n=a._def.openapi)?void 0:n.ref)&&void 0!==i?i:o;t.schemas.set(a,{type:"manual",ref:c})}}))},ce=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r,o,a,i,c,f=d(e,2),u=f[0],s=f[1];if(b(s)){if(t.parameters.has(s))throw new Error("Parameter ".concat(JSON.stringify(s._def)," is already registered"));var p,l=null!==(p=null==(r=null==(n=s._def.openapi)?void 0:n.param)?void 0:r.ref)&&void 0!==p?p:u,m=null==(a=null==(o=s._def.openapi)?void 0:o.param)?void 0:a.name,h=null==(c=null==(i=s._def.openapi)?void 0:i.param)?void 0:c.in;if(!m||!h)throw new Error("`name` or `in` missing in .openapi()");t.parameters.set(s,{type:"manual",ref:l,in:h,name:m})}}))},fe=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r,o=d(e,2),a=o[0],i=o[1];if(b(i)){if(t.parameters.has(i))throw new Error("Header ".concat(JSON.stringify(i._def)," is already registered"));var c,f=null!==(c=null==(r=null==(n=i._def.openapi)?void 0:n.param)?void 0:r.ref)&&void 0!==c?c:a;t.headers.set(i,{type:"manual",ref:f})}}))},ue=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r=d(e,2),o=r[0],a=r[1];if(t.responses.has(a))throw new Error("Header ".concat(JSON.stringify(a)," is already registered"));var i=null!==(n=null==a?void 0:a.ref)&&void 0!==n?n:o;t.responses.set(a,{type:"manual",ref:i})}))},se=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r=d(e,2),o=r[0],a=r[1];if(t.requestBodies.has(a))throw new Error("Header ".concat(JSON.stringify(a)," is already registered"));var i=null!==(n=null==a?void 0:a.ref)&&void 0!==n?n:o;t.requestBodies.set(a,{type:"manual",ref:i})}))},pe=function(e,t){e&&Object.entries(e).forEach((function(e){var n,r=d(e,2),o=r[0],a=r[1];if(t.callbacks.has(a))throw new Error("Callback ".concat(JSON.stringify(a)," is already registered"));var i=null!==(n=null==a?void 0:a.ref)&&void 0!==n?n:o;t.callbacks.set(a,{type:"manual",ref:i})}))},le=function(e){return"#/components/schemas/".concat(e)},de=function(e,t){var n,r=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"3.1.0",n={schemas:new Map,parameters:new Map,headers:new Map,requestBodies:new Map,responses:new Map,callbacks:new Map,openapi:t};return e?(ie(e.schemas,n),ce(e.parameters,n),se(e.requestBodies,n),fe(e.headers,n),ue(e.responses,n),pe(e.callbacks,n),n):n}({schemas:null==t?void 0:t.components},null==t?void 0:t.openapi),o={components:r,type:null!==(n=null==t?void 0:t.schemaType)&&void 0!==n?n:"output",path:[],visited:new Set,documentOptions:t},a=ae(e,o,["createSchema"]),i=function(e,t,n){var r;Array.from(t.schemas).forEach((function(e,r){var o,a=d(e,2),i=a[0];if("manual"===a[1].type){var c,f={components:t,type:null!==(c=null==(o=i._def.openapi)?void 0:o.refType)&&void 0!==c?c:"output",path:[],visited:new Set,documentOptions:n};ae(i,f,["component schema index ".concat(r)])}}));var o=Object.entries(null!==(r=e.schemas)&&void 0!==r?r:{}).reduce((function(e,t){var n=d(t,2),r=n[0],o=n[1];if(b(o))return e;if(e[r])throw new Error('Schema "'.concat(r,'" is already registered'));return e[r]=o,e}),{}),a=Array.from(t.schemas).reduce((function(e,t){var n=d(t,2);n[0];var r=n[1];if("complete"===r.type){if(e[r.ref])throw new Error('Schema "'.concat(r.ref,'" is already registered'));e[r.ref]=r.schemaObject}return e}),o);return Object.keys(a).length?a:void 0}({},r);return{schema:a,components:i}};function me(e){return{builder:t=>de(e,t?{openapi:t.version,components:t.components}:void 0),validator:e.parse}}function he(e,n,r){const o=c(e,n,r);return Object.assign(o,{[t]:{resolver:t=>{const r=me(n).builder(t),o={};if("form"===e||"json"===e)o.requestBody={content:{["json"===e?"application/json":"application/x-www-form-urlencoded"]:{schema:r.schema}}};else{const t=[];if("$ref"in r.schema)t.push({in:e,name:r.schema.$ref,schema:r.schema});else for(const[n,o]of Object.entries(r.schema.properties??{}))t.push({in:e,name:n,schema:o});o.parameters=t}return{docs:o,components:r.components}},metadata:{schemaType:"input"}}})}export{me as resolver,he as validator};