veloce-ts 0.1.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.
Files changed (175) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/LICENSE +21 -0
  3. package/README.md +442 -0
  4. package/bin/veloce.ts +2 -0
  5. package/dist/cjs/src/cli/index.js +425 -0
  6. package/dist/cjs/src/cli/index.js.map +22 -0
  7. package/dist/cjs/src/docs/index.js +7 -0
  8. package/dist/cjs/src/docs/index.js.map +55 -0
  9. package/dist/cjs/src/errors/index.js +4 -0
  10. package/dist/cjs/src/errors/index.js.map +12 -0
  11. package/dist/cjs/src/graphql/index.js +83 -0
  12. package/dist/cjs/src/graphql/index.js.map +24 -0
  13. package/dist/cjs/src/index.js +126 -0
  14. package/dist/cjs/src/index.js.map +108 -0
  15. package/dist/cjs/src/middleware/index.js +3 -0
  16. package/dist/cjs/src/middleware/index.js.map +12 -0
  17. package/dist/cjs/src/plugins/index.js +125 -0
  18. package/dist/cjs/src/plugins/index.js.map +67 -0
  19. package/dist/cjs/src/testing/index.js +17 -0
  20. package/dist/cjs/src/testing/index.js.map +54 -0
  21. package/dist/cjs/src/types/index.js +3 -0
  22. package/dist/cjs/src/types/index.js.map +16 -0
  23. package/dist/cjs/src/validation/index.js +3 -0
  24. package/dist/cjs/src/validation/index.js.map +19 -0
  25. package/dist/cjs/src/websocket/index.js +3 -0
  26. package/dist/cjs/src/websocket/index.js.map +12 -0
  27. package/dist/esm/chunk-0zxhx5b8.js +7 -0
  28. package/dist/esm/chunk-0zxhx5b8.js.map +10 -0
  29. package/dist/esm/chunk-159eqj8q.js +5 -0
  30. package/dist/esm/chunk-159eqj8q.js.map +12 -0
  31. package/dist/esm/chunk-1hqjkm44.js +5 -0
  32. package/dist/esm/chunk-1hqjkm44.js.map +11 -0
  33. package/dist/esm/chunk-2q6s8v3j.js +6 -0
  34. package/dist/esm/chunk-2q6s8v3j.js.map +10 -0
  35. package/dist/esm/chunk-42h6trpf.js +5 -0
  36. package/dist/esm/chunk-42h6trpf.js.map +9 -0
  37. package/dist/esm/chunk-82f2j0k2.js +60 -0
  38. package/dist/esm/chunk-82f2j0k2.js.map +10 -0
  39. package/dist/esm/chunk-8wrnr45g.js +338 -0
  40. package/dist/esm/chunk-8wrnr45g.js.map +10 -0
  41. package/dist/esm/chunk-9p6d0t33.js +5 -0
  42. package/dist/esm/chunk-9p6d0t33.js.map +10 -0
  43. package/dist/esm/chunk-awven6dt.js +4 -0
  44. package/dist/esm/chunk-awven6dt.js.map +16 -0
  45. package/dist/esm/chunk-gv5n8ddb.js +18 -0
  46. package/dist/esm/chunk-gv5n8ddb.js.map +10 -0
  47. package/dist/esm/chunk-pn7z890c.js +72 -0
  48. package/dist/esm/chunk-pn7z890c.js.map +13 -0
  49. package/dist/esm/chunk-qfsjy9bg.js +7 -0
  50. package/dist/esm/chunk-qfsjy9bg.js.map +10 -0
  51. package/dist/esm/chunk-vkkzgaf7.js +5 -0
  52. package/dist/esm/chunk-vkkzgaf7.js.map +12 -0
  53. package/dist/esm/src/cli/index.js +30 -0
  54. package/dist/esm/src/cli/index.js.map +18 -0
  55. package/dist/esm/src/docs/index.js +8 -0
  56. package/dist/esm/src/docs/index.js.map +48 -0
  57. package/dist/esm/src/errors/index.js +4 -0
  58. package/dist/esm/src/errors/index.js.map +9 -0
  59. package/dist/esm/src/graphql/index.js +4 -0
  60. package/dist/esm/src/graphql/index.js.map +9 -0
  61. package/dist/esm/src/index.js +4 -0
  62. package/dist/esm/src/index.js.map +16 -0
  63. package/dist/esm/src/middleware/index.js +4 -0
  64. package/dist/esm/src/middleware/index.js.map +9 -0
  65. package/dist/esm/src/plugins/index.js +42 -0
  66. package/dist/esm/src/plugins/index.js.map +10 -0
  67. package/dist/esm/src/testing/index.js +4 -0
  68. package/dist/esm/src/testing/index.js.map +39 -0
  69. package/dist/esm/src/types/index.js +4 -0
  70. package/dist/esm/src/types/index.js.map +9 -0
  71. package/dist/esm/src/validation/index.js +4 -0
  72. package/dist/esm/src/validation/index.js.map +9 -0
  73. package/dist/esm/src/websocket/index.js +4 -0
  74. package/dist/esm/src/websocket/index.js.map +9 -0
  75. package/dist/types/adapters/base.d.ts +24 -0
  76. package/dist/types/adapters/base.d.ts.map +1 -0
  77. package/dist/types/adapters/express.d.ts +44 -0
  78. package/dist/types/adapters/express.d.ts.map +1 -0
  79. package/dist/types/adapters/hono.d.ts +44 -0
  80. package/dist/types/adapters/hono.d.ts.map +1 -0
  81. package/dist/types/cli/commands/build.d.ts +3 -0
  82. package/dist/types/cli/commands/build.d.ts.map +1 -0
  83. package/dist/types/cli/commands/dev.d.ts +3 -0
  84. package/dist/types/cli/commands/dev.d.ts.map +1 -0
  85. package/dist/types/cli/commands/generate.d.ts +3 -0
  86. package/dist/types/cli/commands/generate.d.ts.map +1 -0
  87. package/dist/types/cli/commands/new.d.ts +3 -0
  88. package/dist/types/cli/commands/new.d.ts.map +1 -0
  89. package/dist/types/cli/index.d.ts +3 -0
  90. package/dist/types/cli/index.d.ts.map +1 -0
  91. package/dist/types/core/application.d.ts +268 -0
  92. package/dist/types/core/application.d.ts.map +1 -0
  93. package/dist/types/core/compiled-metadata.d.ts +58 -0
  94. package/dist/types/core/compiled-metadata.d.ts.map +1 -0
  95. package/dist/types/core/metadata.d.ts +175 -0
  96. package/dist/types/core/metadata.d.ts.map +1 -0
  97. package/dist/types/core/plugin.d.ts +63 -0
  98. package/dist/types/core/plugin.d.ts.map +1 -0
  99. package/dist/types/core/router-compiler.d.ts +61 -0
  100. package/dist/types/core/router-compiler.d.ts.map +1 -0
  101. package/dist/types/decorators/dependencies.d.ts +28 -0
  102. package/dist/types/decorators/dependencies.d.ts.map +1 -0
  103. package/dist/types/decorators/docs.d.ts +38 -0
  104. package/dist/types/decorators/docs.d.ts.map +1 -0
  105. package/dist/types/decorators/graphql.d.ts +126 -0
  106. package/dist/types/decorators/graphql.d.ts.map +1 -0
  107. package/dist/types/decorators/http.d.ts +74 -0
  108. package/dist/types/decorators/http.d.ts.map +1 -0
  109. package/dist/types/decorators/middleware.d.ts +30 -0
  110. package/dist/types/decorators/middleware.d.ts.map +1 -0
  111. package/dist/types/decorators/params.d.ts +82 -0
  112. package/dist/types/decorators/params.d.ts.map +1 -0
  113. package/dist/types/decorators/websocket.d.ts +61 -0
  114. package/dist/types/decorators/websocket.d.ts.map +1 -0
  115. package/dist/types/dependencies/container.d.ts +93 -0
  116. package/dist/types/dependencies/container.d.ts.map +1 -0
  117. package/dist/types/docs/index.d.ts +3 -0
  118. package/dist/types/docs/index.d.ts.map +1 -0
  119. package/dist/types/docs/openapi-generator.d.ts +50 -0
  120. package/dist/types/docs/openapi-generator.d.ts.map +1 -0
  121. package/dist/types/docs/zod-to-json-schema.d.ts +46 -0
  122. package/dist/types/docs/zod-to-json-schema.d.ts.map +1 -0
  123. package/dist/types/errors/exceptions.d.ts +48 -0
  124. package/dist/types/errors/exceptions.d.ts.map +1 -0
  125. package/dist/types/errors/handler.d.ts +61 -0
  126. package/dist/types/errors/handler.d.ts.map +1 -0
  127. package/dist/types/errors/index.d.ts +7 -0
  128. package/dist/types/errors/index.d.ts.map +1 -0
  129. package/dist/types/graphql/index.d.ts +4 -0
  130. package/dist/types/graphql/index.d.ts.map +1 -0
  131. package/dist/types/graphql/plugin.d.ts +60 -0
  132. package/dist/types/graphql/plugin.d.ts.map +1 -0
  133. package/dist/types/graphql/schema-builder.d.ts +46 -0
  134. package/dist/types/graphql/schema-builder.d.ts.map +1 -0
  135. package/dist/types/graphql/zod-to-graphql.d.ts +22 -0
  136. package/dist/types/graphql/zod-to-graphql.d.ts.map +1 -0
  137. package/dist/types/index.d.ts +34 -0
  138. package/dist/types/index.d.ts.map +1 -0
  139. package/dist/types/middleware/compression.d.ts +7 -0
  140. package/dist/types/middleware/compression.d.ts.map +1 -0
  141. package/dist/types/middleware/cors.d.ts +7 -0
  142. package/dist/types/middleware/cors.d.ts.map +1 -0
  143. package/dist/types/middleware/index.d.ts +4 -0
  144. package/dist/types/middleware/index.d.ts.map +1 -0
  145. package/dist/types/middleware/rate-limit.d.ts +7 -0
  146. package/dist/types/middleware/rate-limit.d.ts.map +1 -0
  147. package/dist/types/plugins/index.d.ts +4 -0
  148. package/dist/types/plugins/index.d.ts.map +1 -0
  149. package/dist/types/plugins/openapi.d.ts +23 -0
  150. package/dist/types/plugins/openapi.d.ts.map +1 -0
  151. package/dist/types/responses/response.d.ts +200 -0
  152. package/dist/types/responses/response.d.ts.map +1 -0
  153. package/dist/types/testing/helpers.d.ts +98 -0
  154. package/dist/types/testing/helpers.d.ts.map +1 -0
  155. package/dist/types/testing/index.d.ts +4 -0
  156. package/dist/types/testing/index.d.ts.map +1 -0
  157. package/dist/types/testing/test-client.d.ts +86 -0
  158. package/dist/types/testing/test-client.d.ts.map +1 -0
  159. package/dist/types/types/index.d.ts +232 -0
  160. package/dist/types/types/index.d.ts.map +1 -0
  161. package/dist/types/validation/exceptions.d.ts +25 -0
  162. package/dist/types/validation/exceptions.d.ts.map +1 -0
  163. package/dist/types/validation/index.d.ts +3 -0
  164. package/dist/types/validation/index.d.ts.map +1 -0
  165. package/dist/types/validation/validator.d.ts +54 -0
  166. package/dist/types/validation/validator.d.ts.map +1 -0
  167. package/dist/types/websocket/connection.d.ts +51 -0
  168. package/dist/types/websocket/connection.d.ts.map +1 -0
  169. package/dist/types/websocket/index.d.ts +4 -0
  170. package/dist/types/websocket/index.d.ts.map +1 -0
  171. package/dist/types/websocket/manager.d.ts +82 -0
  172. package/dist/types/websocket/manager.d.ts.map +1 -0
  173. package/dist/types/websocket/plugin.d.ts +51 -0
  174. package/dist/types/websocket/plugin.d.ts.map +1 -0
  175. package/package.json +149 -0
@@ -0,0 +1,17 @@
1
+ var c2=Object.create;var{getPrototypeOf:y2,defineProperty:r0,getOwnPropertyNames:h$,getOwnPropertyDescriptor:i2}=Object,k$=Object.prototype.hasOwnProperty;var s2=($,f,X)=>{X=$!=null?c2(y2($)):{};let H=f||!$||!$.__esModule?r0(X,"default",{value:$,enumerable:!0}):X;for(let Q of h$($))if(!k$.call(H,Q))r0(H,Q,{get:()=>$[Q],enumerable:!0});return H},M$=new WeakMap,G1=($)=>{var f=M$.get($),X;if(f)return f;if(f=r0({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function")h$($).map((H)=>!k$.call(f,H)&&r0(f,H,{get:()=>$[H],enumerable:!(X=i2($,H))||X.enumerable}));return M$.set($,f),f},o2=($,f)=>()=>(f||$((f={exports:{}}).exports,f),f.exports);var _1=($,f)=>{for(var X in f)r0($,X,{get:f[X],enumerable:!0,configurable:!0,set:(H)=>f[X]=()=>H})};var v4=($,f)=>()=>($&&(f=$($=0)),f);var a$=o2(()=>{/*! *****************************************************************************
2
+ Copyright (C) Microsoft. All rights reserved.
3
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4
+ this file except in compliance with the License. You may obtain a copy of the
5
+ License at http://www.apache.org/licenses/LICENSE-2.0
6
+
7
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
8
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
9
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
10
+ MERCHANTABLITY OR NON-INFRINGEMENT.
11
+
12
+ See the Apache Version 2.0 License for specific language governing permissions
13
+ and limitations under the License.
14
+ ***************************************************************************** */var t$;(function($){(function(f){var X=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:q(),H=Q($);if(typeof X.Reflect<"u")H=Q(X.Reflect,H);if(f(H,X),typeof X.Reflect>"u")X.Reflect=$;function Q(Y,_){return function(N,E){if(Object.defineProperty(Y,N,{configurable:!0,writable:!0,value:E}),_)_(N,E)}}function J(){try{return Function("return this;")()}catch(Y){}}function W(){try{return(0,eval)("(function() { return this; })()")}catch(Y){}}function q(){return J()||W()}})(function(f,X){var H=Object.prototype.hasOwnProperty,Q=typeof Symbol==="function",J=Q&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",W=Q&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",q=typeof Object.create==="function",Y={__proto__:[]}instanceof Array,_=!q&&!Y,N={create:q?function(){return v1(Object.create(null))}:Y?function(){return v1({__proto__:null})}:function(){return v1({})},has:_?function(B,G){return H.call(B,G)}:function(B,G){return G in B},get:_?function(B,G){return H.call(B,G)?B[G]:void 0}:function(B,G){return B[G]}},E=Object.getPrototypeOf(Function),k=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:l2(),Z=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:Z2(),M=typeof WeakMap==="function"?WeakMap:m2(),T=Q?Symbol.for("@reflect-metadata:registry"):void 0,m=T2(),o=g2(m);function a(B,G,w,S){if(!O(w)){if(!D$(B))throw TypeError();if(!n(G))throw TypeError();if(!n(S)&&!O(S)&&!M0(S))throw TypeError();if(M0(S))S=void 0;return w=Y0(w),v2(B,G,w,S)}else{if(!D$(B))throw TypeError();if(!U$(G))throw TypeError();return O2(B,G)}}f("decorate",a);function i(B,G){function w(S,F){if(!n(S))throw TypeError();if(!O(F)&&!I2(F))throw TypeError();N$(B,G,S,F)}return w}f("metadata",i);function e(B,G,w,S){if(!n(w))throw TypeError();if(!O(S))S=Y0(S);return N$(B,G,w,S)}f("defineMetadata",e);function s(B,G,w){if(!n(G))throw TypeError();if(!O(w))w=Y0(w);return z$(B,G,w)}f("hasMetadata",s);function t(B,G,w){if(!n(G))throw TypeError();if(!O(w))w=Y0(w);return A1(B,G,w)}f("hasOwnMetadata",t);function $0(B,G,w){if(!n(G))throw TypeError();if(!O(w))w=Y0(w);return j$(B,G,w)}f("getMetadata",$0);function F1(B,G,w){if(!n(G))throw TypeError();if(!O(w))w=Y0(w);return S$(B,G,w)}f("getOwnMetadata",F1);function q0(B,G){if(!n(B))throw TypeError();if(!O(G))G=Y0(G);return V$(B,G)}f("getMetadataKeys",q0);function E1(B,G){if(!n(B))throw TypeError();if(!O(G))G=Y0(G);return R$(B,G)}f("getOwnMetadataKeys",E1);function w$(B,G,w){if(!n(G))throw TypeError();if(!O(w))w=Y0(w);if(!n(G))throw TypeError();if(!O(w))w=Y0(w);var S=d0(G,w,!1);if(O(S))return!1;return S.OrdinaryDeleteMetadata(B,G,w)}f("deleteMetadata",w$);function O2(B,G){for(var w=B.length-1;w>=0;--w){var S=B[w],F=S(G);if(!O(F)&&!M0(F)){if(!U$(F))throw TypeError();G=F}}return G}function v2(B,G,w,S){for(var F=B.length-1;F>=0;--F){var u=B[F],y=u(G,w,S);if(!O(y)&&!M0(y)){if(!n(y))throw TypeError();S=y}}return S}function z$(B,G,w){var S=A1(B,G,w);if(S)return!0;var F=O1(G);if(!M0(F))return z$(B,F,w);return!1}function A1(B,G,w){var S=d0(G,w,!1);if(O(S))return!1;return b$(S.OrdinaryHasOwnMetadata(B,G,w))}function j$(B,G,w){var S=A1(B,G,w);if(S)return S$(B,G,w);var F=O1(G);if(!M0(F))return j$(B,F,w);return}function S$(B,G,w){var S=d0(G,w,!1);if(O(S))return;return S.OrdinaryGetOwnMetadata(B,G,w)}function N$(B,G,w,S){var F=d0(w,S,!0);F.OrdinaryDefineOwnMetadata(B,G,w,S)}function V$(B,G){var w=R$(B,G),S=O1(B);if(S===null)return w;var F=V$(S,G);if(F.length<=0)return w;if(w.length<=0)return F;var u=new Z,y=[];for(var K=0,R=w;K<R.length;K++){var L=R[K],b=u.has(L);if(!b)u.add(L),y.push(L)}for(var U=0,P=F;U<P.length;U++){var L=P[U],b=u.has(L);if(!b)u.add(L),y.push(L)}return y}function R$(B,G){var w=d0(B,G,!1);if(!w)return[];return w.OrdinaryOwnMetadataKeys(B,G)}function L$(B){if(B===null)return 1;switch(typeof B){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return B===null?1:6;default:return 6}}function O(B){return B===void 0}function M0(B){return B===null}function M2(B){return typeof B==="symbol"}function n(B){return typeof B==="object"?B!==null:typeof B==="function"}function h2(B,G){switch(L$(B)){case 0:return B;case 1:return B;case 2:return B;case 3:return B;case 4:return B;case 5:return B}var w=G===3?"string":G===5?"number":"default",S=F$(B,J);if(S!==void 0){var F=S.call(B,w);if(n(F))throw TypeError();return F}return k2(B,w==="default"?"number":w)}function k2(B,G){if(G==="string"){var w=B.toString;if(h0(w)){var S=w.call(B);if(!n(S))return S}var F=B.valueOf;if(h0(F)){var S=F.call(B);if(!n(S))return S}}else{var F=B.valueOf;if(h0(F)){var S=F.call(B);if(!n(S))return S}var u=B.toString;if(h0(u)){var S=u.call(B);if(!n(S))return S}}throw TypeError()}function b$(B){return!!B}function K2(B){return""+B}function Y0(B){var G=h2(B,3);if(M2(G))return G;return K2(G)}function D$(B){return Array.isArray?Array.isArray(B):B instanceof Object?B instanceof Array:Object.prototype.toString.call(B)==="[object Array]"}function h0(B){return typeof B==="function"}function U$(B){return typeof B==="function"}function I2(B){switch(L$(B)){case 3:return!0;case 4:return!0;default:return!1}}function C1(B,G){return B===G||B!==B&&G!==G}function F$(B,G){var w=B[G];if(w===void 0||w===null)return;if(!h0(w))throw TypeError();return w}function E$(B){var G=F$(B,W);if(!h0(G))throw TypeError();var w=G.call(B);if(!n(w))throw TypeError();return w}function A$(B){return B.value}function C$(B){var G=B.next();return G.done?!1:G}function O$(B){var G=B.return;if(G)G.call(B)}function O1(B){var G=Object.getPrototypeOf(B);if(typeof B!=="function"||B===E)return G;if(G!==E)return G;var w=B.prototype,S=w&&Object.getPrototypeOf(w);if(S==null||S===Object.prototype)return G;var F=S.constructor;if(typeof F!=="function")return G;if(F===B)return G;return F}function P2(){var B;if(!O(T)&&typeof X.Reflect<"u"&&!(T in X.Reflect)&&typeof X.Reflect.defineMetadata==="function")B=x2(X.Reflect);var G,w,S,F=new M,u={registerProvider:y,getProvider:R,setProvider:b};return u;function y(U){if(!Object.isExtensible(u))throw Error("Cannot add provider to a frozen registry.");switch(!0){case B===U:break;case O(G):G=U;break;case G===U:break;case O(w):w=U;break;case w===U:break;default:if(S===void 0)S=new Z;S.add(U);break}}function K(U,P){if(!O(G)){if(G.isProviderFor(U,P))return G;if(!O(w)){if(w.isProviderFor(U,P))return G;if(!O(S)){var g=E$(S);while(!0){var c=C$(g);if(!c)return;var f0=A$(c);if(f0.isProviderFor(U,P))return O$(g),f0}}}}if(!O(B)&&B.isProviderFor(U,P))return B;return}function R(U,P){var g=F.get(U),c;if(!O(g))c=g.get(P);if(!O(c))return c;if(c=K(U,P),!O(c)){if(O(g))g=new k,F.set(U,g);g.set(P,c)}return c}function L(U){if(O(U))throw TypeError();return G===U||w===U||!O(S)&&S.has(U)}function b(U,P,g){if(!L(g))throw Error("Metadata provider not registered.");var c=R(U,P);if(c!==g){if(!O(c))return!1;var f0=F.get(U);if(O(f0))f0=new k,F.set(U,f0);f0.set(P,g)}return!0}}function T2(){var B;if(!O(T)&&n(X.Reflect)&&Object.isExtensible(X.Reflect))B=X.Reflect[T];if(O(B))B=P2();if(!O(T)&&n(X.Reflect)&&Object.isExtensible(X.Reflect))Object.defineProperty(X.Reflect,T,{enumerable:!1,configurable:!1,writable:!1,value:B});return B}function g2(B){var G=new M,w={isProviderFor:function(L,b){var U=G.get(L);if(O(U))return!1;return U.has(b)},OrdinaryDefineOwnMetadata:y,OrdinaryHasOwnMetadata:F,OrdinaryGetOwnMetadata:u,OrdinaryOwnMetadataKeys:K,OrdinaryDeleteMetadata:R};return m.registerProvider(w),w;function S(L,b,U){var P=G.get(L),g=!1;if(O(P)){if(!U)return;P=new k,G.set(L,P),g=!0}var c=P.get(b);if(O(c)){if(!U)return;if(c=new k,P.set(b,c),!B.setProvider(L,b,w)){if(P.delete(b),g)G.delete(L);throw Error("Wrong provider for target.")}}return c}function F(L,b,U){var P=S(b,U,!1);if(O(P))return!1;return b$(P.has(L))}function u(L,b,U){var P=S(b,U,!1);if(O(P))return;return P.get(L)}function y(L,b,U,P){var g=S(U,P,!0);g.set(L,b)}function K(L,b){var U=[],P=S(L,b,!1);if(O(P))return U;var g=P.keys(),c=E$(g),f0=0;while(!0){var v$=C$(c);if(!v$)return U.length=f0,U;var n2=A$(v$);try{U[f0]=n2}catch(u2){try{O$(c)}finally{throw u2}}f0++}}function R(L,b,U){var P=S(b,U,!1);if(O(P))return!1;if(!P.delete(L))return!1;if(P.size===0){var g=G.get(b);if(!O(g)){if(g.delete(U),g.size===0)G.delete(g)}}return!0}}function x2(B){var{defineMetadata:G,hasOwnMetadata:w,getOwnMetadata:S,getOwnMetadataKeys:F,deleteMetadata:u}=B,y=new M,K={isProviderFor:function(R,L){var b=y.get(R);if(!O(b)&&b.has(L))return!0;if(F(R,L).length){if(O(b))b=new Z,y.set(R,b);return b.add(L),!0}return!1},OrdinaryDefineOwnMetadata:G,OrdinaryHasOwnMetadata:w,OrdinaryGetOwnMetadata:S,OrdinaryOwnMetadataKeys:F,OrdinaryDeleteMetadata:u};return K}function d0(B,G,w){var S=m.getProvider(B,G);if(!O(S))return S;if(w){if(m.setProvider(B,G,o))return o;throw Error("Illegal state.")}return}function l2(){var B={},G=[],w=function(){function K(R,L,b){this._index=0,this._keys=R,this._values=L,this._selector=b}return K.prototype["@@iterator"]=function(){return this},K.prototype[W]=function(){return this},K.prototype.next=function(){var R=this._index;if(R>=0&&R<this._keys.length){var L=this._selector(this._keys[R],this._values[R]);if(R+1>=this._keys.length)this._index=-1,this._keys=G,this._values=G;else this._index++;return{value:L,done:!1}}return{value:void 0,done:!0}},K.prototype.throw=function(R){if(this._index>=0)this._index=-1,this._keys=G,this._values=G;throw R},K.prototype.return=function(R){if(this._index>=0)this._index=-1,this._keys=G,this._values=G;return{value:R,done:!0}},K}(),S=function(){function K(){this._keys=[],this._values=[],this._cacheKey=B,this._cacheIndex=-2}return Object.defineProperty(K.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),K.prototype.has=function(R){return this._find(R,!1)>=0},K.prototype.get=function(R){var L=this._find(R,!1);return L>=0?this._values[L]:void 0},K.prototype.set=function(R,L){var b=this._find(R,!0);return this._values[b]=L,this},K.prototype.delete=function(R){var L=this._find(R,!1);if(L>=0){var b=this._keys.length;for(var U=L+1;U<b;U++)this._keys[U-1]=this._keys[U],this._values[U-1]=this._values[U];if(this._keys.length--,this._values.length--,C1(R,this._cacheKey))this._cacheKey=B,this._cacheIndex=-2;return!0}return!1},K.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=B,this._cacheIndex=-2},K.prototype.keys=function(){return new w(this._keys,this._values,F)},K.prototype.values=function(){return new w(this._keys,this._values,u)},K.prototype.entries=function(){return new w(this._keys,this._values,y)},K.prototype["@@iterator"]=function(){return this.entries()},K.prototype[W]=function(){return this.entries()},K.prototype._find=function(R,L){if(!C1(this._cacheKey,R)){this._cacheIndex=-1;for(var b=0;b<this._keys.length;b++)if(C1(this._keys[b],R)){this._cacheIndex=b;break}}if(this._cacheIndex<0&&L)this._cacheIndex=this._keys.length,this._keys.push(R),this._values.push(void 0);return this._cacheIndex},K}();return S;function F(K,R){return K}function u(K,R){return R}function y(K,R){return[K,R]}}function Z2(){var B=function(){function G(){this._map=new k}return Object.defineProperty(G.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),G.prototype.has=function(w){return this._map.has(w)},G.prototype.add=function(w){return this._map.set(w,w),this},G.prototype.delete=function(w){return this._map.delete(w)},G.prototype.clear=function(){this._map.clear()},G.prototype.keys=function(){return this._map.keys()},G.prototype.values=function(){return this._map.keys()},G.prototype.entries=function(){return this._map.entries()},G.prototype["@@iterator"]=function(){return this.keys()},G.prototype[W]=function(){return this.keys()},G}();return B}function m2(){var B=16,G=N.create(),w=S();return function(){function R(){this._key=S()}return R.prototype.has=function(L){var b=F(L,!1);return b!==void 0?N.has(b,this._key):!1},R.prototype.get=function(L){var b=F(L,!1);return b!==void 0?N.get(b,this._key):void 0},R.prototype.set=function(L,b){var U=F(L,!0);return U[this._key]=b,this},R.prototype.delete=function(L){var b=F(L,!1);return b!==void 0?delete b[this._key]:!1},R.prototype.clear=function(){this._key=S()},R}();function S(){var R;do R="@@WeakMap@@"+K();while(N.has(G,R));return G[R]=!0,R}function F(R,L){if(!H.call(R,w)){if(!L)return;Object.defineProperty(R,w,{value:N.create()})}return R[w]}function u(R,L){for(var b=0;b<L;++b)R[b]=Math.random()*255|0;return R}function y(R){if(typeof Uint8Array==="function"){var L=new Uint8Array(R);if(typeof crypto<"u")crypto.getRandomValues(L);else if(typeof msCrypto<"u")msCrypto.getRandomValues(L);else u(L,R);return L}return u(Array(R),R)}function K(){var R=y(B);R[6]=R[6]&79|64,R[8]=R[8]&191|128;var L="";for(var b=0;b<B;++b){var U=R[b];if(b===4||b===6||b===8)L+="-";if(U<16)L+="0";L+=U.toString(16).toLowerCase()}return L}}function v1(B){return B.__=void 0,delete B.__,B}})})(t$||(t$={}))});var Y$={};_1(Y$,{HonoAdapter:()=>L2});class L2{hono;name="hono";runtime;constructor($){this.hono=$;this.runtime=C4()}listen($,f){switch(this.runtime){case"bun":return this.listenBun($,f);case"deno":return this.listenDeno($,f);case"node":return this.listenNode($,f);case"workerd":throw Error("Cloudflare Workers do not support listen(). Deploy using wrangler or export the handler with getHandler().");default:throw Error(`Unsupported runtime: ${this.runtime}. FastAPI-TS supports Bun, Node.js, Deno, and Cloudflare Workers.`)}}getHandler(){return this.hono.fetch}getRuntime(){return this.runtime}listenBun($,f){let X=Bun.serve({port:$,fetch:this.hono.fetch});if(f)f();return X}listenDeno($,f){let X=new AbortController;return Deno.serve({port:$,signal:X.signal,onListen:f},this.hono.fetch),{port:$,close:()=>X.abort()}}listenNode($,f){try{let{serve:X}=(()=>{throw new Error("Cannot require module "+"@hono/node-server");})();return X({fetch:this.hono.fetch,port:$},f)}catch(X){throw Error("Node.js adapter requires @hono/node-server package. Install it with: npm install @hono/node-server")}}}var C4=()=>{if(typeof Bun<"u")return"bun";if(typeof Deno<"u")return"deno";if(typeof navigator<"u"&&navigator.userAgent==="Cloudflare-Workers")return"workerd";if(typeof process<"u"&&process.versions&&process.versions.node)return"node";return"unknown"};var D2={};_1(D2,{ExpressAdapter:()=>b2});class b2{app;name="express";express;constructor($){this.app=$;try{let f=(()=>{throw new Error("Cannot require module "+"express");})();this.express=f(),this.setupBridge()}catch(f){throw Error("Express adapter requires express package. Install it with: npm install express")}}setupBridge(){let $=this.app.getHono();this.express.use(async(f,X)=>{try{let H=this.createWebRequest(f),Q=await $.fetch(H);await this.sendExpressResponse(X,Q)}catch(H){X.status(500).json({error:"Internal Server Error",message:H instanceof Error?H.message:"Unknown error"})}})}createWebRequest($){let f=$.protocol||"http",X=$.get("host")||"localhost",H=`${f}://${X}${$.originalUrl||$.url}`,Q=new Headers;for(let[W,q]of Object.entries($.headers))if(typeof q==="string")Q.set(W,q);else if(Array.isArray(q))q.forEach((Y)=>Q.append(W,Y));let J={method:$.method,headers:Q};if($.method!=="GET"&&$.method!=="HEAD"){if($.body)J.body=JSON.stringify($.body),Q.set("content-type","application/json")}return new Request(H,J)}async sendExpressResponse($,f){if($.status(f.status),f.headers.forEach((X,H)=>{$.setHeader(H,X)}),f.body){let X=f.headers.get("content-type")||"";if(X.includes("application/json")){let H=await f.json();$.json(H)}else if(X.includes("text/")){let H=await f.text();$.send(H)}else{let H=await f.arrayBuffer();$.send(Buffer.from(H))}}else $.end()}listen($,f){return this.express.listen($,f)}getHandler(){return this.express}getExpressApp(){return this.express}}var O4={};_1(O4,{setupTestApp:()=>A2,mockDependency:()=>E2,createTestClient:()=>_$,createTestApp:()=>G$,clearMocks:()=>C2,TestClient:()=>t0});module.exports=G1(O4);class t0{hono;constructor($){this.hono=$.getHono()}async get($,f){return this.request("GET",$,f)}async post($,f){return this.request("POST",$,f)}async put($,f){return this.request("PUT",$,f)}async delete($,f){return this.request("DELETE",$,f)}async patch($,f){return this.request("PATCH",$,f)}async request($,f,X){let H=this.buildUrl(f,X?.query),Q={method:$,headers:this.buildHeaders(X)};if(X?.body!==void 0)Q.body=X.body;else if(X?.json!==void 0)Q.body=JSON.stringify(X.json);let J=await this.hono.request(H,Q),W=await J.text(),q;try{q=JSON.parse(W)}catch{q=W}return{status:J.status,headers:J.headers,body:q,text:W,json:async()=>JSON.parse(W),ok:J.ok}}buildUrl($,f){if(!f||Object.keys(f).length===0)return $;let X=new URLSearchParams(f).toString();return`${$}?${X}`}buildHeaders($){let f={...$?.headers};if($?.json!==void 0&&!f["Content-Type"])f["Content-Type"]="application/json";return f}}var M1=($,f,X)=>{return(H,Q)=>{let J=-1;return W(0);async function W(q){if(q<=J)throw Error("next() called multiple times");J=q;let Y,_=!1,N;if($[q])N=$[q][0][0],H.req.routeIndex=q;else N=q===$.length&&Q||void 0;if(N)try{Y=await N(H,()=>W(q+1))}catch(E){if(E instanceof Error&&f)H.error=E,Y=await f(E,H),_=!0;else throw E}else if(H.finalized===!1&&X)Y=await X(H);if(Y&&(H.finalized===!1||_))H.res=Y;return H}}};var K$=Symbol();var I$=async($,f=Object.create(null))=>{let{all:X=!1,dot:H=!1}=f,J=($ instanceof w1?$.raw.headers:$.headers).get("Content-Type");if(J?.startsWith("multipart/form-data")||J?.startsWith("application/x-www-form-urlencoded"))return p2($,{all:X,dot:H});return{}};async function p2($,f){let X=await $.formData();if(X)return d2(X,f);return{}}function d2($,f){let X=Object.create(null);if($.forEach((H,Q)=>{if(!(f.all||Q.endsWith("[]")))X[Q]=H;else r2(X,Q,H)}),f.dot)Object.entries(X).forEach(([H,Q])=>{if(H.includes("."))t2(X,H,Q),delete X[H]});return X}var r2=($,f,X)=>{if($[f]!==void 0)if(Array.isArray($[f]))$[f].push(X);else $[f]=[$[f],X];else if(!f.endsWith("[]"))$[f]=X;else $[f]=[X]},t2=($,f,X)=>{let H=$,Q=f.split(".");Q.forEach((J,W)=>{if(W===Q.length-1)H[J]=X;else{if(!H[J]||typeof H[J]!=="object"||Array.isArray(H[J])||H[J]instanceof File)H[J]=Object.create(null);H=H[J]}})};var k1=($)=>{let f=$.split("/");if(f[0]==="")f.shift();return f},P$=($)=>{let{groups:f,path:X}=a2($),H=k1(X);return e2(H,f)},a2=($)=>{let f=[];return $=$.replace(/\{[^}]+\}/g,(X,H)=>{let Q=`@${H}`;return f.push([Q,X]),Q}),{groups:f,path:$}},e2=($,f)=>{for(let X=f.length-1;X>=0;X--){let[H]=f[X];for(let Q=$.length-1;Q>=0;Q--)if($[Q].includes(H)){$[Q]=$[Q].replace(H,f[X][1]);break}}return $},z1={},T$=($,f)=>{if($==="*")return"*";let X=$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(X){let H=`${$}#${f}`;if(!z1[H])if(X[2])z1[H]=f&&f[0]!==":"&&f[0]!=="*"?[H,X[1],new RegExp(`^${X[2]}(?=/${f})`)]:[$,X[1],new RegExp(`^${X[2]}$`)];else z1[H]=[$,X[1],!0];return z1[H]}return null},k0=($,f)=>{try{return f($)}catch{return $.replace(/(?:%[0-9A-Fa-f]{2})+/g,(X)=>{try{return f(X)}catch{return X}})}},$f=($)=>k0($,decodeURI),K1=($)=>{let f=$.url,X=f.indexOf("/",f.indexOf(":")+4),H=X;for(;H<f.length;H++){let Q=f.charCodeAt(H);if(Q===37){let J=f.indexOf("?",H),W=f.slice(X,J===-1?void 0:J);return $f(W.includes("%25")?W.replace(/%25/g,"%2525"):W)}else if(Q===63)break}return f.slice(X,H)};var g$=($)=>{let f=K1($);return f.length>1&&f.at(-1)==="/"?f.slice(0,-1):f},U0=($,f,...X)=>{if(X.length)f=U0(f,...X);return`${$?.[0]==="/"?"":"/"}${$}${f==="/"?"":`${$?.at(-1)==="/"?"":"/"}${f?.[0]==="/"?f.slice(1):f}`}`},j1=($)=>{if($.charCodeAt($.length-1)!==63||!$.includes(":"))return null;let f=$.split("/"),X=[],H="";return f.forEach((Q)=>{if(Q!==""&&!/\:/.test(Q))H+="/"+Q;else if(/\:/.test(Q))if(/\?/.test(Q)){if(X.length===0&&H==="")X.push("/");else X.push(H);let J=Q.replace("?","");H+="/"+J,X.push(H)}else H+="/"+Q}),X.filter((Q,J,W)=>W.indexOf(Q)===J)},h1=($)=>{if(!/[%+]/.test($))return $;if($.indexOf("+")!==-1)$=$.replace(/\+/g," ");return $.indexOf("%")!==-1?k0($,a0):$},x$=($,f,X)=>{let H;if(!X&&f&&!/[%+]/.test(f)){let W=$.indexOf(`?${f}`,8);if(W===-1)W=$.indexOf(`&${f}`,8);while(W!==-1){let q=$.charCodeAt(W+f.length+1);if(q===61){let Y=W+f.length+2,_=$.indexOf("&",Y);return h1($.slice(Y,_===-1?void 0:_))}else if(q==38||isNaN(q))return"";W=$.indexOf(`&${f}`,W+1)}if(H=/[%+]/.test($),!H)return}let Q={};H??=/[%+]/.test($);let J=$.indexOf("?",8);while(J!==-1){let W=$.indexOf("&",J+1),q=$.indexOf("=",J);if(q>W&&W!==-1)q=-1;let Y=$.slice(J+1,q===-1?W===-1?void 0:W:q);if(H)Y=h1(Y);if(J=W,Y==="")continue;let _;if(q===-1)_="";else if(_=$.slice(q+1,W===-1?void 0:W),H)_=h1(_);if(X){if(!(Q[Y]&&Array.isArray(Q[Y])))Q[Y]=[];Q[Y].push(_)}else Q[Y]??=_}return f?Q[f]:Q},l$=x$,Z$=($,f)=>{return x$($,f,!0)},a0=decodeURIComponent;var m$=($)=>k0($,a0),w1=class{raw;#f;#$;routeIndex=0;path;bodyCache={};constructor($,f="/",X=[[]]){this.raw=$,this.path=f,this.#$=X,this.#f={}}param($){return $?this.#X($):this.#J()}#X($){let f=this.#$[0][this.routeIndex][1][$],X=this.#Q(f);return X&&/\%/.test(X)?m$(X):X}#J(){let $={},f=Object.keys(this.#$[0][this.routeIndex][1]);for(let X of f){let H=this.#Q(this.#$[0][this.routeIndex][1][X]);if(H!==void 0)$[X]=/\%/.test(H)?m$(H):H}return $}#Q($){return this.#$[1]?this.#$[1][$]:$}query($){return l$(this.url,$)}queries($){return Z$(this.url,$)}header($){if($)return this.raw.headers.get($)??void 0;let f={};return this.raw.headers.forEach((X,H)=>{f[H]=X}),f}async parseBody($){return this.bodyCache.parsedBody??=await I$(this,$)}#H=($)=>{let{bodyCache:f,raw:X}=this,H=f[$];if(H)return H;let Q=Object.keys(f)[0];if(Q)return f[Q].then((J)=>{if(Q==="json")J=JSON.stringify(J);return new Response(J)[$]()});return f[$]=X[$]()};json(){return this.#H("text").then(($)=>JSON.parse($))}text(){return this.#H("text")}arrayBuffer(){return this.#H("arrayBuffer")}blob(){return this.#H("blob")}formData(){return this.#H("formData")}addValidatedData($,f){this.#f[$]=f}valid($){return this.#f[$]}get url(){return this.raw.url}get method(){return this.raw.method}get[K$](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,$]])=>$)}get routePath(){return this.#$[0].map(([[,$]])=>$)[this.routeIndex].path}};var n$={Stringify:1,BeforeStream:2,Stream:3},ff=($,f)=>{let X=new String($);return X.isEscaped=!0,X.callbacks=f,X};var I1=async($,f,X,H,Q)=>{if(typeof $==="object"&&!($ instanceof String)){if(!($ instanceof Promise))$=$.toString();if($ instanceof Promise)$=await $}let J=$.callbacks;if(!J?.length)return Promise.resolve($);if(Q)Q[0]+=$;else Q=[$];let W=Promise.all(J.map((q)=>q({phase:f,buffer:Q,context:H}))).then((q)=>Promise.all(q.filter(Boolean).map((Y)=>I1(Y,f,!1,H,Q))).then(()=>Q[0]));if(X)return ff(await W,J);else return W};var Xf="text/plain; charset=UTF-8",P1=($,f)=>{return{"Content-Type":$,...f}},u$=class{#f;#$;env={};#X;finalized=!1;error;#J;#Q;#H;#G;#Y;#B;#q;#_;#w;constructor($,f){if(this.#f=$,f)this.#Q=f.executionCtx,this.env=f.env,this.#B=f.notFoundHandler,this.#w=f.path,this.#_=f.matchResult}get req(){return this.#$??=new w1(this.#f,this.#w,this.#_),this.#$}get event(){if(this.#Q&&"respondWith"in this.#Q)return this.#Q;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#Q)return this.#Q;else throw Error("This context has no ExecutionContext")}get res(){return this.#H||=new Response(null,{headers:this.#q??=new Headers})}set res($){if(this.#H&&$){$=new Response($.body,$);for(let[f,X]of this.#H.headers.entries()){if(f==="content-type")continue;if(f==="set-cookie"){let H=this.#H.headers.getSetCookie();$.headers.delete("set-cookie");for(let Q of H)$.headers.append("set-cookie",Q)}else $.headers.set(f,X)}}this.#H=$,this.finalized=!0}render=(...$)=>{return this.#Y??=(f)=>this.html(f),this.#Y(...$)};setLayout=($)=>this.#G=$;getLayout=()=>this.#G;setRenderer=($)=>{this.#Y=$};header=($,f,X)=>{if(this.finalized)this.#H=new Response(this.#H.body,this.#H);let H=this.#H?this.#H.headers:this.#q??=new Headers;if(f===void 0)H.delete($);else if(X?.append)H.append($,f);else H.set($,f)};status=($)=>{this.#J=$};set=($,f)=>{this.#X??=new Map,this.#X.set($,f)};get=($)=>{return this.#X?this.#X.get($):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#W($,f,X){let H=this.#H?new Headers(this.#H.headers):this.#q??new Headers;if(typeof f==="object"&&"headers"in f){let J=f.headers instanceof Headers?f.headers:new Headers(f.headers);for(let[W,q]of J)if(W.toLowerCase()==="set-cookie")H.append(W,q);else H.set(W,q)}if(X)for(let[J,W]of Object.entries(X))if(typeof W==="string")H.set(J,W);else{H.delete(J);for(let q of W)H.append(J,q)}let Q=typeof f==="number"?f:f?.status??this.#J;return new Response($,{status:Q,headers:H})}newResponse=(...$)=>this.#W(...$);body=($,f,X)=>this.#W($,f,X);text=($,f,X)=>{return!this.#q&&!this.#J&&!f&&!X&&!this.finalized?new Response($):this.#W($,f,P1(Xf,X))};json=($,f,X)=>{return this.#W(JSON.stringify($),f,P1("application/json",X))};html=($,f,X)=>{let H=(Q)=>this.#W(Q,f,P1("text/html; charset=UTF-8",X));return typeof $==="object"?I1($,n$.Stringify,!1,{}).then(H):H($)};redirect=($,f)=>{let X=String($);return this.header("Location",!/[^\x00-\xFF]/.test(X)?X:encodeURI(X)),this.newResponse(null,f??302)};notFound=()=>{return this.#B??=()=>new Response,this.#B(this)}};var l="ALL",c$="all",y$=["get","post","put","delete","options","patch"],S1="Can not add a route since the matcher is already built.",N1=class extends Error{};var i$="__COMPOSED_HANDLER";var Hf=($)=>{return $.text("404 Not Found",404)},s$=($,f)=>{if("getResponse"in $){let X=$.getResponse();return f.newResponse(X.body,X)}return console.error($),f.text("Internal Server Error",500)},T1=class{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#f="/";routes=[];constructor($={}){[...y$,c$].forEach((Q)=>{this[Q]=(J,...W)=>{if(typeof J==="string")this.#f=J;else this.#J(Q,this.#f,J);return W.forEach((q)=>{this.#J(Q,this.#f,q)}),this}}),this.on=(Q,J,...W)=>{for(let q of[J].flat()){this.#f=q;for(let Y of[Q].flat())W.map((_)=>{this.#J(Y.toUpperCase(),this.#f,_)})}return this},this.use=(Q,...J)=>{if(typeof Q==="string")this.#f=Q;else this.#f="*",J.unshift(Q);return J.forEach((W)=>{this.#J(l,this.#f,W)}),this};let{strict:X,...H}=$;Object.assign(this,H),this.getPath=X??!0?$.getPath??K1:g$}#$(){let $=new T1({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=Hf;errorHandler=s$;route($,f){let X=this.basePath($);return f.routes.map((H)=>{let Q;if(f.errorHandler===s$)Q=H.handler;else Q=async(J,W)=>(await M1([],f.errorHandler)(J,()=>H.handler(J,W))).res,Q[i$]=H.handler;X.#J(H.method,H.path,Q)}),this}basePath($){let f=this.#$();return f._basePath=U0(this._basePath,$),f}onError=($)=>{return this.errorHandler=$,this};notFound=($)=>{return this.#X=$,this};mount($,f,X){let H,Q;if(X)if(typeof X==="function")Q=X;else if(Q=X.optionHandler,X.replaceRequest===!1)H=(q)=>q;else H=X.replaceRequest;let J=Q?(q)=>{let Y=Q(q);return Array.isArray(Y)?Y:[Y]}:(q)=>{let Y=void 0;try{Y=q.executionCtx}catch{}return[q.env,Y]};H||=(()=>{let q=U0(this._basePath,$),Y=q==="/"?0:q.length;return(_)=>{let N=new URL(_.url);return N.pathname=N.pathname.slice(Y)||"/",new Request(N,_)}})();let W=async(q,Y)=>{let _=await f(H(q.req.raw),...J(q));if(_)return _;await Y()};return this.#J(l,U0($,"*"),W),this}#J($,f,X){$=$.toUpperCase(),f=U0(this._basePath,f);let H={basePath:this._basePath,path:f,method:$,handler:X};this.router.add($,f,[X,H]),this.routes.push(H)}#Q($,f){if($ instanceof Error)return this.errorHandler($,f);throw $}#H($,f,X,H){if(H==="HEAD")return(async()=>new Response(null,await this.#H($,f,X,"GET")))();let Q=this.getPath($,{env:X}),J=this.router.match(H,Q),W=new u$($,{path:Q,matchResult:J,env:X,executionCtx:f,notFoundHandler:this.#X});if(J[0].length===1){let Y;try{Y=J[0][0][0][0](W,async()=>{W.res=await this.#X(W)})}catch(_){return this.#Q(_,W)}return Y instanceof Promise?Y.then((_)=>_||(W.finalized?W.res:this.#X(W))).catch((_)=>this.#Q(_,W)):Y??this.#X(W)}let q=M1(J[0],this.errorHandler,this.#X);return(async()=>{try{let Y=await q(W);if(!Y.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return Y.res}catch(Y){return this.#Q(Y,W)}})()}fetch=($,...f)=>{return this.#H($,f[1],f[0],$.method)};request=($,f,X,H)=>{if($ instanceof Request)return this.fetch(f?new Request($,f):$,X,H);return $=$.toString(),this.fetch(new Request(/^https?:\/\//.test($)?$:`http://localhost${U0("/",$)}`,f),X,H)};fire=()=>{addEventListener("fetch",($)=>{$.respondWith(this.#H($.request,$,void 0,$.request.method))})}};var V1="[^/]+",e0=".*",$1="(?:|/.*)",F0=Symbol(),Qf=new Set(".\\+*[^]$()");function Jf($,f){if($.length===1)return f.length===1?$<f?-1:1:-1;if(f.length===1)return 1;if($===e0||$===$1)return 1;else if(f===e0||f===$1)return-1;if($===V1)return 1;else if(f===V1)return-1;return $.length===f.length?$<f?-1:1:f.length-$.length}var R1=class{#f;#$;#X=Object.create(null);insert($,f,X,H,Q){if($.length===0){if(this.#f!==void 0)throw F0;if(Q)return;this.#f=f;return}let[J,...W]=$,q=J==="*"?W.length===0?["","",e0]:["","",V1]:J==="/*"?["","",$1]:J.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),Y;if(q){let _=q[1],N=q[2]||V1;if(_&&q[2]){if(N===".*")throw F0;if(N=N.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(N))throw F0}if(Y=this.#X[N],!Y){if(Object.keys(this.#X).some((E)=>E!==e0&&E!==$1))throw F0;if(Q)return;if(Y=this.#X[N]=new R1,_!=="")Y.#$=H.varIndex++}if(!Q&&_!=="")X.push([_,Y.#$])}else if(Y=this.#X[J],!Y){if(Object.keys(this.#X).some((_)=>_.length>1&&_!==e0&&_!==$1))throw F0;if(Q)return;Y=this.#X[J]=new R1}Y.insert(W,f,X,H,Q)}buildRegExpStr(){let f=Object.keys(this.#X).sort(Jf).map((X)=>{let H=this.#X[X];return(typeof H.#$==="number"?`(${X})@${H.#$}`:Qf.has(X)?`\\${X}`:X)+H.buildRegExpStr()});if(typeof this.#f==="number")f.unshift(`#${this.#f}`);if(f.length===0)return"";if(f.length===1)return f[0];return"(?:"+f.join("|")+")"}};var o$=class{#f={varIndex:0};#$=new R1;insert($,f,X){let H=[],Q=[];for(let W=0;;){let q=!1;if($=$.replace(/\{[^}]+\}/g,(Y)=>{let _=`@\\${W}`;return Q[W]=[_,Y],W++,q=!0,_}),!q)break}let J=$.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let W=Q.length-1;W>=0;W--){let[q]=Q[W];for(let Y=J.length-1;Y>=0;Y--)if(J[Y].indexOf(q)!==-1){J[Y]=J[Y].replace(q,Q[W][1]);break}}return this.#$.insert(J,f,H,this.#f,X),H}buildRegExp(){let $=this.#$.buildRegExpStr();if($==="")return[/^$/,[],[]];let f=0,X=[],H=[];return $=$.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Q,J,W)=>{if(J!==void 0)return X[++f]=Number(J),"$()";if(W!==void 0)return H[Number(W)]=++f,"";return""}),[new RegExp(`^${$}`),X,H]}};var p$=[],Wf=[/^$/,[],Object.create(null)],d$=Object.create(null);function r$($){return d$[$]??=new RegExp($==="*"?"":`^${$.replace(/\/\*$|([.\\+*[^\]$()])/g,(f,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function qf(){d$=Object.create(null)}function Yf($){let f=new o$,X=[];if($.length===0)return Wf;let H=$.map((_)=>[!/\*|\/:/.test(_[0]),..._]).sort(([_,N],[E,k])=>_?1:E?-1:N.length-k.length),Q=Object.create(null);for(let _=0,N=-1,E=H.length;_<E;_++){let[k,Z,M]=H[_];if(k)Q[Z]=[M.map(([m])=>[m,Object.create(null)]),p$];else N++;let T;try{T=f.insert(Z,N,k)}catch(m){throw m===F0?new N1(Z):m}if(k)continue;X[N]=M.map(([m,o])=>{let a=Object.create(null);o-=1;for(;o>=0;o--){let[i,e]=T[o];a[i]=e}return[m,a]})}let[J,W,q]=f.buildRegExp();for(let _=0,N=X.length;_<N;_++)for(let E=0,k=X[_].length;E<k;E++){let Z=X[_][E]?.[1];if(!Z)continue;let M=Object.keys(Z);for(let T=0,m=M.length;T<m;T++)Z[M[T]]=q[Z[M[T]]]}let Y=[];for(let _ in W)Y[_]=X[W[_]];return[J,Y,Q]}function K0($,f){if(!$)return;for(let X of Object.keys($).sort((H,Q)=>Q.length-H.length))if(r$(X).test(f))return[...$[X]];return}var g1=class{name="RegExpRouter";#f;#$;constructor(){this.#f={[l]:Object.create(null)},this.#$={[l]:Object.create(null)}}add($,f,X){let H=this.#f,Q=this.#$;if(!H||!Q)throw Error(S1);if(!H[$])[H,Q].forEach((q)=>{q[$]=Object.create(null),Object.keys(q[l]).forEach((Y)=>{q[$][Y]=[...q[l][Y]]})});if(f==="/*")f="*";let J=(f.match(/\/:/g)||[]).length;if(/\*$/.test(f)){let q=r$(f);if($===l)Object.keys(H).forEach((Y)=>{H[Y][f]||=K0(H[Y],f)||K0(H[l],f)||[]});else H[$][f]||=K0(H[$],f)||K0(H[l],f)||[];Object.keys(H).forEach((Y)=>{if($===l||$===Y)Object.keys(H[Y]).forEach((_)=>{q.test(_)&&H[Y][_].push([X,J])})}),Object.keys(Q).forEach((Y)=>{if($===l||$===Y)Object.keys(Q[Y]).forEach((_)=>q.test(_)&&Q[Y][_].push([X,J]))});return}let W=j1(f)||[f];for(let q=0,Y=W.length;q<Y;q++){let _=W[q];Object.keys(Q).forEach((N)=>{if($===l||$===N)Q[N][_]||=[...K0(H[N],_)||K0(H[l],_)||[]],Q[N][_].push([X,J-Y+q+1])})}}match($,f){qf();let X=this.#X();return this.match=(H,Q)=>{let J=X[H]||X[l],W=J[2][Q];if(W)return W;let q=Q.match(J[0]);if(!q)return[[],p$];let Y=q.indexOf("",1);return[J[1][Y],q]},this.match($,f)}#X(){let $=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#f)).forEach((f)=>{$[f]||=this.#J(f)}),this.#f=this.#$=void 0,$}#J($){let f=[],X=$===l;if([this.#f,this.#$].forEach((H)=>{let Q=H[$]?Object.keys(H[$]).map((J)=>[J,H[$][J]]):[];if(Q.length!==0)X||=!0,f.push(...Q);else if($!==l)f.push(...Object.keys(H[l]).map((J)=>[J,H[l][J]]))}),!X)return null;else return Yf(f)}};var x1=class{name="SmartRouter";#f=[];#$=[];constructor($){this.#f=$.routers}add($,f,X){if(!this.#$)throw Error(S1);this.#$.push([$,f,X])}match($,f){if(!this.#$)throw Error("Fatal error");let X=this.#f,H=this.#$,Q=X.length,J=0,W;for(;J<Q;J++){let q=X[J];try{for(let Y=0,_=H.length;Y<_;Y++)q.add(...H[Y]);W=q.match($,f)}catch(Y){if(Y instanceof N1)continue;throw Y}this.match=q.match.bind(q),this.#f=[q],this.#$=void 0;break}if(J===Q)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,W}get activeRouter(){if(this.#$||this.#f.length!==1)throw Error("No active router has been determined yet.");return this.#f[0]}};var f1=Object.create(null),l1=class{#f;#$;#X;#J=0;#Q=f1;constructor($,f,X){if(this.#$=X||Object.create(null),this.#f=[],$&&f){let H=Object.create(null);H[$]={handler:f,possibleKeys:[],score:0},this.#f=[H]}this.#X=[]}insert($,f,X){this.#J=++this.#J;let H=this,Q=P$(f),J=[];for(let W=0,q=Q.length;W<q;W++){let Y=Q[W],_=Q[W+1],N=T$(Y,_),E=Array.isArray(N)?N[0]:Y;if(E in H.#$){if(H=H.#$[E],N)J.push(N[1]);continue}if(H.#$[E]=new l1,N)H.#X.push(N),J.push(N[1]);H=H.#$[E]}return H.#f.push({[$]:{handler:X,possibleKeys:J.filter((W,q,Y)=>Y.indexOf(W)===q),score:this.#J}}),H}#H($,f,X,H){let Q=[];for(let J=0,W=$.#f.length;J<W;J++){let q=$.#f[J],Y=q[f]||q[l],_={};if(Y!==void 0){if(Y.params=Object.create(null),Q.push(Y),X!==f1||H&&H!==f1)for(let N=0,E=Y.possibleKeys.length;N<E;N++){let k=Y.possibleKeys[N],Z=_[Y.score];Y.params[k]=H?.[k]&&!Z?H[k]:X[k]??H?.[k],_[Y.score]=!0}}}return Q}search($,f){let X=[];this.#Q=f1;let Q=[this],J=k1(f),W=[];for(let q=0,Y=J.length;q<Y;q++){let _=J[q],N=q===Y-1,E=[];for(let k=0,Z=Q.length;k<Z;k++){let M=Q[k],T=M.#$[_];if(T)if(T.#Q=M.#Q,N){if(T.#$["*"])X.push(...this.#H(T.#$["*"],$,M.#Q));X.push(...this.#H(T,$,M.#Q))}else E.push(T);for(let m=0,o=M.#X.length;m<o;m++){let a=M.#X[m],i=M.#Q===f1?{}:{...M.#Q};if(a==="*"){let q0=M.#$["*"];if(q0)X.push(...this.#H(q0,$,M.#Q)),q0.#Q=i,E.push(q0);continue}let[e,s,t]=a;if(!_&&!(t instanceof RegExp))continue;let $0=M.#$[e],F1=J.slice(q).join("/");if(t instanceof RegExp){let q0=t.exec(F1);if(q0){if(i[s]=q0[0],X.push(...this.#H($0,$,M.#Q,i)),Object.keys($0.#$).length){$0.#Q=i;let E1=q0[0].match(/\//)?.length??0;(W[E1]||=[]).push($0)}continue}}if(t===!0||t.test(_))if(i[s]=_,N){if(X.push(...this.#H($0,$,i,M.#Q)),$0.#$["*"])X.push(...this.#H($0.#$["*"],$,i,M.#Q))}else $0.#Q=i,E.push($0)}}Q=E.concat(W.shift()??[])}if(X.length>1)X.sort((q,Y)=>{return q.score-Y.score});return[X.map(({handler:q,params:Y})=>[q,Y])]}};var Z1=class{name="TrieRouter";#f;constructor(){this.#f=new l1}add($,f,X){let H=j1(f);if(H){for(let Q=0,J=H.length;Q<J;Q++)this.#f.insert($,H[Q],X);return}this.#f.insert($,f,X)}match($,f){return this.#f.search($,f)}};var m1=class extends T1{constructor($={}){super($);this.router=$.router??new x1({routers:[new g1,new Z1]})}};var m6=s2(a$()),n1=Symbol("route:metadata"),u1=Symbol("controller:metadata"),e$=Symbol("parameter:metadata"),$2=Symbol("dependency:metadata"),c1=Symbol("websocket:metadata"),f2=Symbol("websocket:handler:metadata"),y1=Symbol("graphql:resolver"),X1=Symbol("graphql:field");class N0{routes=new Map;controllers=new Map;routesByController=new Map;websockets=new Map;graphqlResolvers=new Map;graphqlFields=new Map;registerRoute($){let f=this.getRouteKey($.target,$.propertyKey);if(this.routes.set(f,$),!this.routesByController.has($.target))this.routesByController.set($.target,[]);this.routesByController.get($.target).push($)}registerController($,f){this.controllers.set($,f)}getRoutes(){return Array.from(this.routes.values())}getRoute($,f){let X=this.getRouteKey($,f);return this.routes.get(X)}getRoutesByController($){return this.routesByController.get($)||[]}getController($){return this.controllers.get($)}getControllers(){return new Map(this.controllers)}registerWebSocket($){this.websockets.set($.target,$)}getWebSockets(){return Array.from(this.websockets.values())}getWebSocket($){return this.websockets.get($)}registerGraphQLResolver($){this.graphqlResolvers.set($.target,$)}registerGraphQLField($){let f=this.getRouteKey($.target,$.propertyKey);this.graphqlFields.set(f,$)}getGraphQLResolvers(){return Array.from(this.graphqlResolvers.values())}getGraphQLResolver($){return this.graphqlResolvers.get($)}getGraphQLFields(){return Array.from(this.graphqlFields.values())}getGraphQLFieldsByResolver($){return Array.from(this.graphqlFields.values()).filter((f)=>f.target===$)}clear(){this.routes.clear(),this.controllers.clear(),this.routesByController.clear(),this.websockets.clear(),this.graphqlResolvers.clear(),this.graphqlFields.clear()}getRouteKey($,f){return`${$.name}:${f}`}static defineRoute($,f,X){let H=this.getRouteMetadata($,f),Q={...H,...X,target:$.constructor,propertyKey:f,middleware:[...H?.middleware||[],...X.middleware||[]],parameters:X.parameters||H?.parameters||[],dependencies:X.dependencies||H?.dependencies||[],responses:X.responses||H?.responses||[]};Reflect.defineMetadata(n1,Q,$,f)}static defineParameter($,f,X,H){let Q=this.getParameterMetadata($,f)||[];Q[X]=H,Reflect.defineMetadata(e$,Q,$,f);let J=this.getRouteMetadata($,f);this.defineRoute($,f,{...J,parameters:Q})}static defineDependency($,f,X,H){let Q=this.getDependencyMetadata($,f)||[];Q[X]=H,Reflect.defineMetadata($2,Q,$,f);let J=this.getRouteMetadata($,f);this.defineRoute($,f,{...J,dependencies:Q})}static defineController($,f){Reflect.defineMetadata(u1,f,$)}static getRouteMetadata($,f){return Reflect.getMetadata(n1,$,f)}static getParameterMetadata($,f){return Reflect.getMetadata(e$,$,f)}static getDependencyMetadata($,f){return Reflect.getMetadata($2,$,f)}static getControllerMetadata($){return Reflect.getMetadata(u1,$)}static hasControllerMetadata($){return Reflect.hasMetadata(u1,$)}static hasRouteMetadata($,f){return Reflect.hasMetadata(n1,$,f)}static getRouteMethods($){let f=$.prototype,X=[],H=Object.getOwnPropertyNames(f);for(let Q of H){if(Q==="constructor")continue;if(this.hasRouteMetadata(f,Q))X.push(Q)}return X}static defineWebSocket($,f){let H={...this.getWebSocketMetadata($),...f,target:$};Reflect.defineMetadata(c1,H,$)}static defineWebSocketHandler($,f,X){let H=this.getWebSocketMetadata($.constructor)||{};switch(X.type){case"connect":H.onConnect=f;break;case"message":H.onMessage=f,H.messageSchema=X.schema;break;case"disconnect":H.onDisconnect=f;break}this.defineWebSocket($.constructor,H),Reflect.defineMetadata(f2,X,$,f)}static getWebSocketMetadata($){return Reflect.getMetadata(c1,$)}static getWebSocketHandlerMetadata($,f){return Reflect.getMetadata(f2,$,f)}static hasWebSocketMetadata($){return Reflect.hasMetadata(c1,$)}static defineGraphQLResolver($,f){Reflect.defineMetadata(y1,f,$)}static defineGraphQLField($,f,X){Reflect.defineMetadata(X1,X,$,f);let H=this.getGraphQLFieldsMetadata($.constructor)||[];H.push(X),Reflect.defineMetadata(X1,H,$.constructor)}static getGraphQLResolverMetadata($){return Reflect.getMetadata(y1,$)}static getGraphQLFieldsMetadata($){return Reflect.getMetadata(X1,$)||[]}static getGraphQLFieldMetadata($,f){return Reflect.getMetadata(X1,$,f)}static hasGraphQLResolverMetadata($){return Reflect.hasMetadata(y1,$)}static hasGraphQLFieldMetadata($,f){return Reflect.hasMetadata(X1,$,f)}}class i1{singletons=new Map;requestScoped=new WeakMap;providers=new Map;resolutionStack=new Set;providerNameCache=new WeakMap;stats={singletonHits:0,singletonMisses:0,requestHits:0,requestMisses:0,transientCreations:0};register($,f){this.providers.set($,f||{scope:"transient"})}async resolve($,f){let X=this.providers.get($)||{scope:f?.scope||"transient"},H=f?.scope||X.scope||"transient";if(H==="singleton"){if(this.singletons.has($))return this.stats.singletonHits++,this.singletons.get($);if(this.stats.singletonMisses++,this.resolutionStack.has($))throw Error(`Circular dependency detected: ${this.buildCircularDependencyMessage($)}`);this.resolutionStack.add($);try{let Q=await this.create($,X,f?.context);return this.singletons.set($,Q),Q}finally{this.resolutionStack.delete($)}}if(H==="request"&&f?.context){let Q=this.requestScoped.get(f.context);if(Q?.has($))return this.stats.requestHits++,Q.get($);if(this.stats.requestMisses++,!Q)Q=new Map,this.requestScoped.set(f.context,Q);if(this.resolutionStack.has($))throw Error(`Circular dependency detected: ${this.buildCircularDependencyMessage($)}`);this.resolutionStack.add($);try{let J=await this.create($,X,f.context);return Q.set($,J),J}finally{this.resolutionStack.delete($)}}if(this.stats.transientCreations++,this.resolutionStack.has($))throw Error(`Circular dependency detected: ${this.buildCircularDependencyMessage($)}`);this.resolutionStack.add($);try{return await this.create($,X,f?.context)}finally{this.resolutionStack.delete($)}}buildCircularDependencyMessage($){let f=Array.from(this.resolutionStack),X=this.getProviderName($);return f.map((Q)=>this.getProviderName(Q)).join(" -> ")+" -> "+X}async create($,f,X){if(f.factory)return f.factory();if(typeof $==="function")if($.prototype&&$.prototype.constructor===$){let H=new $;return await this.resolveNestedDependencies(H,X),H}else{let H=$();return H instanceof Promise?await H:H}throw Error("Invalid provider type")}async resolveNestedDependencies($,f){}getProviderName($){let f=this.providerNameCache.get($);if(f)return f;let X;if(typeof $==="function")if($.name)X=$.name;else X=$.toString().substring(0,50);else X=String($);return this.providerNameCache.set($,X),X}clear(){this.singletons.clear(),this.providers.clear(),this.resolutionStack.clear(),this.providerNameCache=new WeakMap,this.resetStats()}clearRequestScope($){this.requestScoped.delete($)}getStats(){let $=this.stats.singletonHits+this.stats.singletonMisses,f=$>0?this.stats.singletonHits/$*100:0,X=this.stats.requestHits+this.stats.requestMisses,H=X>0?this.stats.requestHits/X*100:0;return{singletonHits:this.stats.singletonHits,singletonMisses:this.stats.singletonMisses,singletonHitRate:Math.round(f*100)/100,requestHits:this.stats.requestHits,requestMisses:this.stats.requestMisses,requestHitRate:Math.round(H*100)/100,transientCreations:this.stats.transientCreations}}resetStats(){this.stats={singletonHits:0,singletonMisses:0,requestHits:0,requestMisses:0,transientCreations:0}}}var Bf=/^[\w!#$%&'*.^`|~+-]+$/,Gf=/^[ !#-:<-[\]-~]*$/,s1=($,f)=>{if(f&&$.indexOf(f)===-1)return{};let X=$.trim().split(";"),H={};for(let Q of X){Q=Q.trim();let J=Q.indexOf("=");if(J===-1)continue;let W=Q.substring(0,J).trim();if(f&&f!==W||!Bf.test(W))continue;let q=Q.substring(J+1).trim();if(q.startsWith('"')&&q.endsWith('"'))q=q.slice(1,-1);if(Gf.test(q)){if(H[W]=q.indexOf("%")!==-1?k0(q,a0):q,f)break}}return H};var X2=($,f,X)=>{let H=$.req.raw.headers.get("Cookie");if(typeof f==="string"){if(!H)return;let J=f;if(X==="secure")J="__Secure-"+f;else if(X==="host")J="__Host-"+f;return s1(H,J)[J]}if(!H)return{};return s1(H)};class H2{static json($,f=200,X){return new o1($,f,X)}static html($,f=200){return new p1($,f)}static file($,f){return new r1($,f)}static stream($,f){return new t1($,f)}static redirect($,f=302){return new d1($,f)}}class o1{data;status;headers;constructor($,f=200,X={}){this.data=$;this.status=f;this.headers=X}toHonoResponse($){return $.json(this.data,this.status,this.headers)}}class p1{content;status;constructor($,f=200){this.content=$;this.status=f}toHonoResponse($){return $.html(this.content,this.status)}}class d1{url;status;constructor($,f=302){this.url=$;this.status=f}toHonoResponse($){return $.redirect(this.url,this.status)}}class r1{path;options;constructor($,f){this.path=$;this.options=f}async toHonoResponse($){try{let f=typeof Bun<"u"?Bun.file(this.path):await this.readFileNode(this.path),H={"Content-Type":this.options?.contentType||this.guessContentType(this.path)};if(this.options?.download||this.options?.filename){let Q=this.options?.filename||this.path.split("/").pop()||"download",J=this.options?.download?"attachment":"inline";H["Content-Disposition"]=`${J}; filename="${Q}"`}if(typeof Bun<"u"&&f instanceof Blob)return $.body(f,200,H);else return $.body(f,200,H)}catch(f){return $.json({error:"File not found",message:f instanceof Error?f.message:"Unknown error"},404)}}async readFileNode($){throw Error("File reading in Node.js requires fs module - use Bun runtime or implement adapter")}guessContentType($){let f=$.split(".").pop()?.toLowerCase();return{html:"text/html",css:"text/css",js:"application/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",pdf:"application/pdf",txt:"text/plain",xml:"application/xml"}[f||""]||"application/octet-stream"}}class t1{stream;options;constructor($,f){this.stream=$;this.options=f}toHonoResponse($){let f={"Content-Type":this.options?.contentType||"application/octet-stream",...this.options?.headers};return $.body(this.stream,200,f)}}class a1{static serialize($,f){if(f===null||f===void 0)return $.body(null,204);if(f instanceof H2)return f;if(f instanceof o1)return f.toHonoResponse($);if(f instanceof p1)return f.toHonoResponse($);if(f instanceof r1)return f.toHonoResponse($);if(f instanceof t1)return f.toHonoResponse($);if(f instanceof d1)return f.toHonoResponse($);if(f&&typeof f.toHonoResponse==="function")return f.toHonoResponse($);return $.json(f)}}class e1{static compile($){let f=this.compilePathRegex($.path),X=this.resolveParameterOrder($.parameters),H=this.resolveDependencyOrder($.dependencies),Q=this.calculateMaxArgumentIndex($.parameters,$.dependencies),J=this.computeParameterFlags($.parameters);return{...$,pathRegex:f,parameterOrder:X,dependencyOrder:H,maxArgumentIndex:Q,...J}}static compilePathRegex($){let f=$.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return f=f.replace(/\\\{([^}]+)\\\}/g,"(?<$1>[^/]+)"),f=f.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g,"(?<$1>[^/]+)"),f=`^${f}$`,new RegExp(f)}static resolveParameterOrder($){if(!$||$.length===0)return[];return $.map((f)=>f.index).filter((f)=>f!==void 0).sort((f,X)=>f-X)}static resolveDependencyOrder($){if(!$||$.length===0)return[];return $.map((f)=>f.index).filter((f)=>f!==void 0).sort((f,X)=>f-X)}static calculateMaxArgumentIndex($,f){let X=-1;if($&&$.length>0){let H=Math.max(...$.map((Q)=>Q.index));X=Math.max(X,H)}if(f&&f.length>0){let H=Math.max(...f.map((Q)=>Q.index));X=Math.max(X,H)}return X}static computeParameterFlags($){if(!$||$.length===0)return{hasBody:!1,hasQuery:!1,hasParams:!1,hasHeaders:!1,hasCookies:!1,hasDependencies:!1};return{hasBody:$.some((f)=>f.type==="body"),hasQuery:$.some((f)=>f.type==="query"),hasParams:$.some((f)=>f.type==="param"),hasHeaders:$.some((f)=>f.type==="header"),hasCookies:$.some((f)=>f.type==="cookie"),hasDependencies:!1}}static compileAll($){return $.map((f)=>this.compile(f))}}class $${app;metadata;container;validator;errorHandler;compiledRoutes=new Map;constructor($,f,X,H,Q){this.app=$;this.metadata=f;this.container=X;this.validator=H;this.errorHandler=Q}compile(){let $=this.metadata.getRoutes(),f=e1.compileAll($);for(let X of f){let H=`${X.target.name}:${X.propertyKey}`;this.compiledRoutes.set(H,X);let Q=this.createHandler(X),J=this.normalizePath(X.path),W=X.method.toLowerCase();if(X.middleware&&X.middleware.length>0)this.app[W](J,...X.middleware,Q);else this.app[W](J,Q)}}normalizePath($){if(!$.startsWith("/"))$="/"+$;if($=$.replace(/\{([^}]+)\}/g,":$1"),$.length>1&&$.endsWith("/"))$=$.slice(0,-1);return $}createHandler($){return async(f)=>{try{let X=await this.extractParameters(f,$.parameters),H=await this.resolveDependencies(f,$.dependencies),Q=this.mergeArguments(X,H,$.parameters,$.maxArgumentIndex),J;if($.handler)J=await $.handler(f,...Q);else J=await(await this.container.resolve($.target,{scope:"transient",context:f}))[$.propertyKey](...Q);return this.serializeResponse(f,J)}catch(X){return await this.handleError(f,X)}}}serializeResponse($,f){return a1.serialize($,f)}async handleError($,f){return await this.errorHandler.handle(f,$)}async extractParameters($,f){let X=[];for(let H of f){let Q;switch(H.type){case"body":try{Q=await $.req.json()}catch(J){Q=null}break;case"query":if(H.name)Q=$.req.query(H.name);else Q=$.req.query();break;case"param":if(H.name)Q=$.req.param(H.name);else Q=$.req.param();break;case"header":if(H.name)Q=$.req.header(H.name);else{let J={};$.req.raw.headers.forEach((W,q)=>{J[q]=W}),Q=J}break;case"cookie":if(H.name)Q=X2($,H.name);else{let J=$.req.header("cookie");if(J)Q=Object.fromEntries(J.split(";").map((W)=>{let[q,...Y]=W.trim().split("=");return[q,Y.join("=")]}));else Q={}}break;case"request":Q=$.req;break;case"response":case"context":Q=$;break;default:Q=void 0}if(H.schema)try{Q=await this.validator.validate(Q,H.schema)}catch(J){throw J}X[H.index]=Q}return X}mergeArguments($,f,X,H){let Q=H!==void 0?H:Math.max(X.length>0?Math.max(...X.map((W)=>W.index)):-1,$.length-1,f.length-1),J=Array(Q+1);for(let W=0;W<=Q;W++)if($[W]!==void 0)J[W]=$[W];else if(f[W]!==void 0)J[W]=f[W];return J}async resolveDependencies($,f){let X=[];for(let H of f)try{let Q=await this.container.resolve(H.provider,{scope:H.scope,context:$});X[H.index]=Q}catch(Q){throw Error(`Failed to resolve dependency at index ${H.index}: ${Q instanceof Error?Q.message:"Unknown error"}`)}return X}}var S2={};_1(S2,{void:()=>df,util:()=>I,unknown:()=>of,union:()=>ef,undefined:()=>cf,tuple:()=>X4,transformer:()=>w4,symbol:()=>uf,string:()=>w2,strictObject:()=>af,setErrorMap:()=>zf,set:()=>J4,record:()=>H4,quotelessJson:()=>_f,promise:()=>_4,preprocess:()=>S4,pipeline:()=>N4,ostring:()=>V4,optional:()=>z4,onumber:()=>R4,oboolean:()=>L4,objectUtil:()=>f$,object:()=>tf,number:()=>z2,nullable:()=>j4,null:()=>yf,never:()=>pf,nativeEnum:()=>G4,nan:()=>Zf,map:()=>Q4,makeIssue:()=>H1,literal:()=>Y4,lazy:()=>q4,late:()=>xf,isValid:()=>V0,isDirty:()=>b1,isAsync:()=>P0,isAborted:()=>L1,intersection:()=>f4,instanceof:()=>lf,getParsedType:()=>B0,getErrorMap:()=>I0,function:()=>W4,enum:()=>B4,effect:()=>w4,discriminatedUnion:()=>$4,defaultErrorMap:()=>w0,datetimeRegex:()=>B2,date:()=>nf,custom:()=>_2,coerce:()=>b4,boolean:()=>j2,bigint:()=>mf,array:()=>rf,any:()=>sf,addIssueToContext:()=>V,ZodVoid:()=>J1,ZodUnknown:()=>R0,ZodUnion:()=>m0,ZodUndefined:()=>l0,ZodType:()=>h,ZodTuple:()=>_0,ZodTransformer:()=>W0,ZodSymbol:()=>Q1,ZodString:()=>X0,ZodSet:()=>O0,ZodSchema:()=>h,ZodRecord:()=>W1,ZodReadonly:()=>o0,ZodPromise:()=>v0,ZodPipeline:()=>B1,ZodParsedType:()=>j,ZodOptional:()=>Q0,ZodObject:()=>x,ZodNumber:()=>L0,ZodNullable:()=>j0,ZodNull:()=>Z0,ZodNever:()=>G0,ZodNativeEnum:()=>y0,ZodNaN:()=>Y1,ZodMap:()=>q1,ZodLiteral:()=>c0,ZodLazy:()=>u0,ZodIssueCode:()=>z,ZodIntersection:()=>n0,ZodFunction:()=>g0,ZodFirstPartyTypeKind:()=>C,ZodError:()=>p,ZodEnum:()=>D0,ZodEffects:()=>W0,ZodDiscriminatedUnion:()=>D1,ZodDefault:()=>i0,ZodDate:()=>A0,ZodCatch:()=>s0,ZodBranded:()=>U1,ZodBoolean:()=>x0,ZodBigInt:()=>b0,ZodArray:()=>H0,ZodAny:()=>C0,Schema:()=>h,ParseStatus:()=>d,OK:()=>r,NEVER:()=>D4,INVALID:()=>A,EMPTY_PATH:()=>jf,DIRTY:()=>E0,BRAND:()=>gf});var I;(function($){$.assertEqual=(Q)=>{};function f(Q){}$.assertIs=f;function X(Q){throw Error()}$.assertNever=X,$.arrayToEnum=(Q)=>{let J={};for(let W of Q)J[W]=W;return J},$.getValidEnumValues=(Q)=>{let J=$.objectKeys(Q).filter((q)=>typeof Q[Q[q]]!=="number"),W={};for(let q of J)W[q]=Q[q];return $.objectValues(W)},$.objectValues=(Q)=>{return $.objectKeys(Q).map(function(J){return Q[J]})},$.objectKeys=typeof Object.keys==="function"?(Q)=>Object.keys(Q):(Q)=>{let J=[];for(let W in Q)if(Object.prototype.hasOwnProperty.call(Q,W))J.push(W);return J},$.find=(Q,J)=>{for(let W of Q)if(J(W))return W;return},$.isInteger=typeof Number.isInteger==="function"?(Q)=>Number.isInteger(Q):(Q)=>typeof Q==="number"&&Number.isFinite(Q)&&Math.floor(Q)===Q;function H(Q,J=" | "){return Q.map((W)=>typeof W==="string"?`'${W}'`:W).join(J)}$.joinValues=H,$.jsonStringifyReplacer=(Q,J)=>{if(typeof J==="bigint")return J.toString();return J}})(I||(I={}));var f$;(function($){$.mergeShapes=(f,X)=>{return{...f,...X}}})(f$||(f$={}));var j=I.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),B0=($)=>{switch(typeof $){case"undefined":return j.undefined;case"string":return j.string;case"number":return Number.isNaN($)?j.nan:j.number;case"boolean":return j.boolean;case"function":return j.function;case"bigint":return j.bigint;case"symbol":return j.symbol;case"object":if(Array.isArray($))return j.array;if($===null)return j.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return j.promise;if(typeof Map<"u"&&$ instanceof Map)return j.map;if(typeof Set<"u"&&$ instanceof Set)return j.set;if(typeof Date<"u"&&$ instanceof Date)return j.date;return j.object;default:return j.unknown}};var z=I.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),_f=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class p extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(X)=>{this.issues=[...this.issues,X]},this.addIssues=(X=[])=>{this.issues=[...this.issues,...X]};let f=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,f);else this.__proto__=f;this.name="ZodError",this.issues=$}format($){let f=$||function(Q){return Q.message},X={_errors:[]},H=(Q)=>{for(let J of Q.issues)if(J.code==="invalid_union")J.unionErrors.map(H);else if(J.code==="invalid_return_type")H(J.returnTypeError);else if(J.code==="invalid_arguments")H(J.argumentsError);else if(J.path.length===0)X._errors.push(f(J));else{let W=X,q=0;while(q<J.path.length){let Y=J.path[q];if(q!==J.path.length-1)W[Y]=W[Y]||{_errors:[]};else W[Y]=W[Y]||{_errors:[]},W[Y]._errors.push(f(J));W=W[Y],q++}}};return H(this),X}static assert($){if(!($ instanceof p))throw Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,I.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(f)=>f.message){let f={},X=[];for(let H of this.issues)if(H.path.length>0){let Q=H.path[0];f[Q]=f[Q]||[],f[Q].push($(H))}else X.push($(H));return{formErrors:X,fieldErrors:f}}get formErrors(){return this.flatten()}}p.create=($)=>{return new p($)};var wf=($,f)=>{let X;switch($.code){case z.invalid_type:if($.received===j.undefined)X="Required";else X=`Expected ${$.expected}, received ${$.received}`;break;case z.invalid_literal:X=`Invalid literal value, expected ${JSON.stringify($.expected,I.jsonStringifyReplacer)}`;break;case z.unrecognized_keys:X=`Unrecognized key(s) in object: ${I.joinValues($.keys,", ")}`;break;case z.invalid_union:X="Invalid input";break;case z.invalid_union_discriminator:X=`Invalid discriminator value. Expected ${I.joinValues($.options)}`;break;case z.invalid_enum_value:X=`Invalid enum value. Expected ${I.joinValues($.options)}, received '${$.received}'`;break;case z.invalid_arguments:X="Invalid function arguments";break;case z.invalid_return_type:X="Invalid function return type";break;case z.invalid_date:X="Invalid date";break;case z.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(X=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")X=`${X} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)X=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)X=`Invalid input: must end with "${$.validation.endsWith}"`;else I.assertNever($.validation);else if($.validation!=="regex")X=`Invalid ${$.validation}`;else X="Invalid";break;case z.too_small:if($.type==="array")X=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")X=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")X=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="bigint")X=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")X=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else X="Invalid input";break;case z.too_big:if($.type==="array")X=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")X=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")X=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")X=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")X=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else X="Invalid input";break;case z.custom:X="Invalid input";break;case z.invalid_intersection_types:X="Intersection results could not be merged";break;case z.not_multiple_of:X=`Number must be a multiple of ${$.multipleOf}`;break;case z.not_finite:X="Number must be finite";break;default:X=f.defaultError,I.assertNever($)}return{message:X}},w0=wf;var Q2=w0;function zf($){Q2=$}function I0(){return Q2}var H1=($)=>{let{data:f,path:X,errorMaps:H,issueData:Q}=$,J=[...X,...Q.path||[]],W={...Q,path:J};if(Q.message!==void 0)return{...Q,path:J,message:Q.message};let q="",Y=H.filter((_)=>!!_).slice().reverse();for(let _ of Y)q=_(W,{data:f,defaultError:q}).message;return{...Q,path:J,message:q}},jf=[];function V($,f){let X=I0(),H=H1({issueData:f,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,X,X===w0?void 0:w0].filter((Q)=>!!Q)});$.common.issues.push(H)}class d{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray($,f){let X=[];for(let H of f){if(H.status==="aborted")return A;if(H.status==="dirty")$.dirty();X.push(H.value)}return{status:$.value,value:X}}static async mergeObjectAsync($,f){let X=[];for(let H of f){let Q=await H.key,J=await H.value;X.push({key:Q,value:J})}return d.mergeObjectSync($,X)}static mergeObjectSync($,f){let X={};for(let H of f){let{key:Q,value:J}=H;if(Q.status==="aborted")return A;if(J.status==="aborted")return A;if(Q.status==="dirty")$.dirty();if(J.status==="dirty")$.dirty();if(Q.value!=="__proto__"&&(typeof J.value<"u"||H.alwaysSet))X[Q.value]=J.value}return{status:$.value,value:X}}}var A=Object.freeze({status:"aborted"}),E0=($)=>({status:"dirty",value:$}),r=($)=>({status:"valid",value:$}),L1=($)=>$.status==="aborted",b1=($)=>$.status==="dirty",V0=($)=>$.status==="valid",P0=($)=>typeof Promise<"u"&&$ instanceof Promise;var D;(function($){$.errToObj=(f)=>typeof f==="string"?{message:f}:f||{},$.toString=(f)=>typeof f==="string"?f:f?.message})(D||(D={}));class J0{constructor($,f,X,H){this._cachedPath=[],this.parent=$,this.data=f,this._path=X,this._key=H}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var J2=($,f)=>{if(V0(f))return{success:!0,data:f.value};else{if(!$.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let X=new p($.common.issues);return this._error=X,this._error}}}};function v($){if(!$)return{};let{errorMap:f,invalid_type_error:X,required_error:H,description:Q}=$;if(f&&(X||H))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(f)return{errorMap:f,description:Q};return{errorMap:(W,q)=>{let{message:Y}=$;if(W.code==="invalid_enum_value")return{message:Y??q.defaultError};if(typeof q.data>"u")return{message:Y??H??q.defaultError};if(W.code!=="invalid_type")return{message:q.defaultError};return{message:Y??X??q.defaultError}},description:Q}}class h{get description(){return this._def.description}_getType($){return B0($.data)}_getOrReturnCtx($,f){return f||{common:$.parent.common,data:$.data,parsedType:B0($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new d,ctx:{common:$.parent.common,data:$.data,parsedType:B0($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let f=this._parse($);if(P0(f))throw Error("Synchronous parse encountered promise.");return f}_parseAsync($){let f=this._parse($);return Promise.resolve(f)}parse($,f){let X=this.safeParse($,f);if(X.success)return X.data;throw X.error}safeParse($,f){let X={common:{issues:[],async:f?.async??!1,contextualErrorMap:f?.errorMap},path:f?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:B0($)},H=this._parseSync({data:$,path:X.path,parent:X});return J2(X,H)}"~validate"($){let f={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:B0($)};if(!this["~standard"].async)try{let X=this._parseSync({data:$,path:[],parent:f});return V0(X)?{value:X.value}:{issues:f.common.issues}}catch(X){if(X?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;f.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:f}).then((X)=>V0(X)?{value:X.value}:{issues:f.common.issues})}async parseAsync($,f){let X=await this.safeParseAsync($,f);if(X.success)return X.data;throw X.error}async safeParseAsync($,f){let X={common:{issues:[],contextualErrorMap:f?.errorMap,async:!0},path:f?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:B0($)},H=this._parse({data:$,path:X.path,parent:X}),Q=await(P0(H)?H:Promise.resolve(H));return J2(X,Q)}refine($,f){let X=(H)=>{if(typeof f==="string"||typeof f>"u")return{message:f};else if(typeof f==="function")return f(H);else return f};return this._refinement((H,Q)=>{let J=$(H),W=()=>Q.addIssue({code:z.custom,...X(H)});if(typeof Promise<"u"&&J instanceof Promise)return J.then((q)=>{if(!q)return W(),!1;else return!0});if(!J)return W(),!1;else return!0})}refinement($,f){return this._refinement((X,H)=>{if(!$(X))return H.addIssue(typeof f==="function"?f(X,H):f),!1;else return!0})}_refinement($){return new W0({schema:this,typeName:C.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(f)=>this["~validate"](f)}}optional(){return Q0.create(this,this._def)}nullable(){return j0.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return H0.create(this)}promise(){return v0.create(this,this._def)}or($){return m0.create([this,$],this._def)}and($){return n0.create(this,$,this._def)}transform($){return new W0({...v(this._def),schema:this,typeName:C.ZodEffects,effect:{type:"transform",transform:$}})}default($){let f=typeof $==="function"?$:()=>$;return new i0({...v(this._def),innerType:this,defaultValue:f,typeName:C.ZodDefault})}brand(){return new U1({typeName:C.ZodBranded,type:this,...v(this._def)})}catch($){let f=typeof $==="function"?$:()=>$;return new s0({...v(this._def),innerType:this,catchValue:f,typeName:C.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return B1.create(this,$)}readonly(){return o0.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var Sf=/^c[^\s-]{8,}$/i,Nf=/^[0-9a-z]+$/,Vf=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Rf=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Lf=/^[a-z0-9_-]{21}$/i,bf=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Df=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Uf=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ff="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",X$,Ef=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Af=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Cf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Of=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,vf=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Mf=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,q2="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",hf=new RegExp(`^${q2}$`);function Y2($){let f="[0-5]\\d";if($.precision)f=`${f}\\.\\d{${$.precision}}`;else if($.precision==null)f=`${f}(\\.\\d+)?`;let X=$.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${f})${X}`}function kf($){return new RegExp(`^${Y2($)}$`)}function B2($){let f=`${q2}T${Y2($)}`,X=[];if(X.push($.local?"Z?":"Z"),$.offset)X.push("([+-]\\d{2}:?\\d{2})");return f=`${f}(${X.join("|")})`,new RegExp(`^${f}$`)}function Kf($,f){if((f==="v4"||!f)&&Ef.test($))return!0;if((f==="v6"||!f)&&Cf.test($))return!0;return!1}function If($,f){if(!bf.test($))return!1;try{let[X]=$.split(".");if(!X)return!1;let H=X.replace(/-/g,"+").replace(/_/g,"/").padEnd(X.length+(4-X.length%4)%4,"="),Q=JSON.parse(atob(H));if(typeof Q!=="object"||Q===null)return!1;if("typ"in Q&&Q?.typ!=="JWT")return!1;if(!Q.alg)return!1;if(f&&Q.alg!==f)return!1;return!0}catch{return!1}}function Pf($,f){if((f==="v4"||!f)&&Af.test($))return!0;if((f==="v6"||!f)&&Of.test($))return!0;return!1}class X0 extends h{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==j.string){let Q=this._getOrReturnCtx($);return V(Q,{code:z.invalid_type,expected:j.string,received:Q.parsedType}),A}let X=new d,H=void 0;for(let Q of this._def.checks)if(Q.kind==="min"){if($.data.length<Q.value)H=this._getOrReturnCtx($,H),V(H,{code:z.too_small,minimum:Q.value,type:"string",inclusive:!0,exact:!1,message:Q.message}),X.dirty()}else if(Q.kind==="max"){if($.data.length>Q.value)H=this._getOrReturnCtx($,H),V(H,{code:z.too_big,maximum:Q.value,type:"string",inclusive:!0,exact:!1,message:Q.message}),X.dirty()}else if(Q.kind==="length"){let J=$.data.length>Q.value,W=$.data.length<Q.value;if(J||W){if(H=this._getOrReturnCtx($,H),J)V(H,{code:z.too_big,maximum:Q.value,type:"string",inclusive:!0,exact:!0,message:Q.message});else if(W)V(H,{code:z.too_small,minimum:Q.value,type:"string",inclusive:!0,exact:!0,message:Q.message});X.dirty()}}else if(Q.kind==="email"){if(!Uf.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"email",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="emoji"){if(!X$)X$=new RegExp(Ff,"u");if(!X$.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"emoji",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="uuid"){if(!Rf.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"uuid",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="nanoid"){if(!Lf.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"nanoid",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="cuid"){if(!Sf.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"cuid",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="cuid2"){if(!Nf.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"cuid2",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="ulid"){if(!Vf.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"ulid",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="url")try{new URL($.data)}catch{H=this._getOrReturnCtx($,H),V(H,{validation:"url",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="regex"){if(Q.regex.lastIndex=0,!Q.regex.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"regex",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="trim")$.data=$.data.trim();else if(Q.kind==="includes"){if(!$.data.includes(Q.value,Q.position))H=this._getOrReturnCtx($,H),V(H,{code:z.invalid_string,validation:{includes:Q.value,position:Q.position},message:Q.message}),X.dirty()}else if(Q.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(Q.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(Q.kind==="startsWith"){if(!$.data.startsWith(Q.value))H=this._getOrReturnCtx($,H),V(H,{code:z.invalid_string,validation:{startsWith:Q.value},message:Q.message}),X.dirty()}else if(Q.kind==="endsWith"){if(!$.data.endsWith(Q.value))H=this._getOrReturnCtx($,H),V(H,{code:z.invalid_string,validation:{endsWith:Q.value},message:Q.message}),X.dirty()}else if(Q.kind==="datetime"){if(!B2(Q).test($.data))H=this._getOrReturnCtx($,H),V(H,{code:z.invalid_string,validation:"datetime",message:Q.message}),X.dirty()}else if(Q.kind==="date"){if(!hf.test($.data))H=this._getOrReturnCtx($,H),V(H,{code:z.invalid_string,validation:"date",message:Q.message}),X.dirty()}else if(Q.kind==="time"){if(!kf(Q).test($.data))H=this._getOrReturnCtx($,H),V(H,{code:z.invalid_string,validation:"time",message:Q.message}),X.dirty()}else if(Q.kind==="duration"){if(!Df.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"duration",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="ip"){if(!Kf($.data,Q.version))H=this._getOrReturnCtx($,H),V(H,{validation:"ip",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="jwt"){if(!If($.data,Q.alg))H=this._getOrReturnCtx($,H),V(H,{validation:"jwt",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="cidr"){if(!Pf($.data,Q.version))H=this._getOrReturnCtx($,H),V(H,{validation:"cidr",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="base64"){if(!vf.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"base64",code:z.invalid_string,message:Q.message}),X.dirty()}else if(Q.kind==="base64url"){if(!Mf.test($.data))H=this._getOrReturnCtx($,H),V(H,{validation:"base64url",code:z.invalid_string,message:Q.message}),X.dirty()}else I.assertNever(Q);return{status:X.value,value:$.data}}_regex($,f,X){return this.refinement((H)=>$.test(H),{validation:f,code:z.invalid_string,...D.errToObj(X)})}_addCheck($){return new X0({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...D.errToObj($)})}url($){return this._addCheck({kind:"url",...D.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...D.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...D.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...D.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...D.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...D.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...D.errToObj($)})}base64($){return this._addCheck({kind:"base64",...D.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...D.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...D.errToObj($)})}ip($){return this._addCheck({kind:"ip",...D.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...D.errToObj($)})}datetime($){if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof $?.precision>"u"?null:$?.precision,offset:$?.offset??!1,local:$?.local??!1,...D.errToObj($?.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof $?.precision>"u"?null:$?.precision,...D.errToObj($?.message)})}duration($){return this._addCheck({kind:"duration",...D.errToObj($)})}regex($,f){return this._addCheck({kind:"regex",regex:$,...D.errToObj(f)})}includes($,f){return this._addCheck({kind:"includes",value:$,position:f?.position,...D.errToObj(f?.message)})}startsWith($,f){return this._addCheck({kind:"startsWith",value:$,...D.errToObj(f)})}endsWith($,f){return this._addCheck({kind:"endsWith",value:$,...D.errToObj(f)})}min($,f){return this._addCheck({kind:"min",value:$,...D.errToObj(f)})}max($,f){return this._addCheck({kind:"max",value:$,...D.errToObj(f)})}length($,f){return this._addCheck({kind:"length",value:$,...D.errToObj(f)})}nonempty($){return this.min(1,D.errToObj($))}trim(){return new X0({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new X0({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new X0({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(($)=>$.kind==="datetime")}get isDate(){return!!this._def.checks.find(($)=>$.kind==="date")}get isTime(){return!!this._def.checks.find(($)=>$.kind==="time")}get isDuration(){return!!this._def.checks.find(($)=>$.kind==="duration")}get isEmail(){return!!this._def.checks.find(($)=>$.kind==="email")}get isURL(){return!!this._def.checks.find(($)=>$.kind==="url")}get isEmoji(){return!!this._def.checks.find(($)=>$.kind==="emoji")}get isUUID(){return!!this._def.checks.find(($)=>$.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(($)=>$.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(($)=>$.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(($)=>$.kind==="cuid2")}get isULID(){return!!this._def.checks.find(($)=>$.kind==="ulid")}get isIP(){return!!this._def.checks.find(($)=>$.kind==="ip")}get isCIDR(){return!!this._def.checks.find(($)=>$.kind==="cidr")}get isBase64(){return!!this._def.checks.find(($)=>$.kind==="base64")}get isBase64url(){return!!this._def.checks.find(($)=>$.kind==="base64url")}get minLength(){let $=null;for(let f of this._def.checks)if(f.kind==="min"){if($===null||f.value>$)$=f.value}return $}get maxLength(){let $=null;for(let f of this._def.checks)if(f.kind==="max"){if($===null||f.value<$)$=f.value}return $}}X0.create=($)=>{return new X0({checks:[],typeName:C.ZodString,coerce:$?.coerce??!1,...v($)})};function Tf($,f){let X=($.toString().split(".")[1]||"").length,H=(f.toString().split(".")[1]||"").length,Q=X>H?X:H,J=Number.parseInt($.toFixed(Q).replace(".","")),W=Number.parseInt(f.toFixed(Q).replace(".",""));return J%W/10**Q}class L0 extends h{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse($){if(this._def.coerce)$.data=Number($.data);if(this._getType($)!==j.number){let Q=this._getOrReturnCtx($);return V(Q,{code:z.invalid_type,expected:j.number,received:Q.parsedType}),A}let X=void 0,H=new d;for(let Q of this._def.checks)if(Q.kind==="int"){if(!I.isInteger($.data))X=this._getOrReturnCtx($,X),V(X,{code:z.invalid_type,expected:"integer",received:"float",message:Q.message}),H.dirty()}else if(Q.kind==="min"){if(Q.inclusive?$.data<Q.value:$.data<=Q.value)X=this._getOrReturnCtx($,X),V(X,{code:z.too_small,minimum:Q.value,type:"number",inclusive:Q.inclusive,exact:!1,message:Q.message}),H.dirty()}else if(Q.kind==="max"){if(Q.inclusive?$.data>Q.value:$.data>=Q.value)X=this._getOrReturnCtx($,X),V(X,{code:z.too_big,maximum:Q.value,type:"number",inclusive:Q.inclusive,exact:!1,message:Q.message}),H.dirty()}else if(Q.kind==="multipleOf"){if(Tf($.data,Q.value)!==0)X=this._getOrReturnCtx($,X),V(X,{code:z.not_multiple_of,multipleOf:Q.value,message:Q.message}),H.dirty()}else if(Q.kind==="finite"){if(!Number.isFinite($.data))X=this._getOrReturnCtx($,X),V(X,{code:z.not_finite,message:Q.message}),H.dirty()}else I.assertNever(Q);return{status:H.value,value:$.data}}gte($,f){return this.setLimit("min",$,!0,D.toString(f))}gt($,f){return this.setLimit("min",$,!1,D.toString(f))}lte($,f){return this.setLimit("max",$,!0,D.toString(f))}lt($,f){return this.setLimit("max",$,!1,D.toString(f))}setLimit($,f,X,H){return new L0({...this._def,checks:[...this._def.checks,{kind:$,value:f,inclusive:X,message:D.toString(H)}]})}_addCheck($){return new L0({...this._def,checks:[...this._def.checks,$]})}int($){return this._addCheck({kind:"int",message:D.toString($)})}positive($){return this._addCheck({kind:"min",value:0,inclusive:!1,message:D.toString($)})}negative($){return this._addCheck({kind:"max",value:0,inclusive:!1,message:D.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:0,inclusive:!0,message:D.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:0,inclusive:!0,message:D.toString($)})}multipleOf($,f){return this._addCheck({kind:"multipleOf",value:$,message:D.toString(f)})}finite($){return this._addCheck({kind:"finite",message:D.toString($)})}safe($){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:D.toString($)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:D.toString($)})}get minValue(){let $=null;for(let f of this._def.checks)if(f.kind==="min"){if($===null||f.value>$)$=f.value}return $}get maxValue(){let $=null;for(let f of this._def.checks)if(f.kind==="max"){if($===null||f.value<$)$=f.value}return $}get isInt(){return!!this._def.checks.find(($)=>$.kind==="int"||$.kind==="multipleOf"&&I.isInteger($.value))}get isFinite(){let $=null,f=null;for(let X of this._def.checks)if(X.kind==="finite"||X.kind==="int"||X.kind==="multipleOf")return!0;else if(X.kind==="min"){if(f===null||X.value>f)f=X.value}else if(X.kind==="max"){if($===null||X.value<$)$=X.value}return Number.isFinite(f)&&Number.isFinite($)}}L0.create=($)=>{return new L0({checks:[],typeName:C.ZodNumber,coerce:$?.coerce||!1,...v($)})};class b0 extends h{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse($){if(this._def.coerce)try{$.data=BigInt($.data)}catch{return this._getInvalidInput($)}if(this._getType($)!==j.bigint)return this._getInvalidInput($);let X=void 0,H=new d;for(let Q of this._def.checks)if(Q.kind==="min"){if(Q.inclusive?$.data<Q.value:$.data<=Q.value)X=this._getOrReturnCtx($,X),V(X,{code:z.too_small,type:"bigint",minimum:Q.value,inclusive:Q.inclusive,message:Q.message}),H.dirty()}else if(Q.kind==="max"){if(Q.inclusive?$.data>Q.value:$.data>=Q.value)X=this._getOrReturnCtx($,X),V(X,{code:z.too_big,type:"bigint",maximum:Q.value,inclusive:Q.inclusive,message:Q.message}),H.dirty()}else if(Q.kind==="multipleOf"){if($.data%Q.value!==BigInt(0))X=this._getOrReturnCtx($,X),V(X,{code:z.not_multiple_of,multipleOf:Q.value,message:Q.message}),H.dirty()}else I.assertNever(Q);return{status:H.value,value:$.data}}_getInvalidInput($){let f=this._getOrReturnCtx($);return V(f,{code:z.invalid_type,expected:j.bigint,received:f.parsedType}),A}gte($,f){return this.setLimit("min",$,!0,D.toString(f))}gt($,f){return this.setLimit("min",$,!1,D.toString(f))}lte($,f){return this.setLimit("max",$,!0,D.toString(f))}lt($,f){return this.setLimit("max",$,!1,D.toString(f))}setLimit($,f,X,H){return new b0({...this._def,checks:[...this._def.checks,{kind:$,value:f,inclusive:X,message:D.toString(H)}]})}_addCheck($){return new b0({...this._def,checks:[...this._def.checks,$]})}positive($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:D.toString($)})}negative($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:D.toString($)})}nonpositive($){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:D.toString($)})}nonnegative($){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:D.toString($)})}multipleOf($,f){return this._addCheck({kind:"multipleOf",value:$,message:D.toString(f)})}get minValue(){let $=null;for(let f of this._def.checks)if(f.kind==="min"){if($===null||f.value>$)$=f.value}return $}get maxValue(){let $=null;for(let f of this._def.checks)if(f.kind==="max"){if($===null||f.value<$)$=f.value}return $}}b0.create=($)=>{return new b0({checks:[],typeName:C.ZodBigInt,coerce:$?.coerce??!1,...v($)})};class x0 extends h{_parse($){if(this._def.coerce)$.data=Boolean($.data);if(this._getType($)!==j.boolean){let X=this._getOrReturnCtx($);return V(X,{code:z.invalid_type,expected:j.boolean,received:X.parsedType}),A}return r($.data)}}x0.create=($)=>{return new x0({typeName:C.ZodBoolean,coerce:$?.coerce||!1,...v($)})};class A0 extends h{_parse($){if(this._def.coerce)$.data=new Date($.data);if(this._getType($)!==j.date){let Q=this._getOrReturnCtx($);return V(Q,{code:z.invalid_type,expected:j.date,received:Q.parsedType}),A}if(Number.isNaN($.data.getTime())){let Q=this._getOrReturnCtx($);return V(Q,{code:z.invalid_date}),A}let X=new d,H=void 0;for(let Q of this._def.checks)if(Q.kind==="min"){if($.data.getTime()<Q.value)H=this._getOrReturnCtx($,H),V(H,{code:z.too_small,message:Q.message,inclusive:!0,exact:!1,minimum:Q.value,type:"date"}),X.dirty()}else if(Q.kind==="max"){if($.data.getTime()>Q.value)H=this._getOrReturnCtx($,H),V(H,{code:z.too_big,message:Q.message,inclusive:!0,exact:!1,maximum:Q.value,type:"date"}),X.dirty()}else I.assertNever(Q);return{status:X.value,value:new Date($.data.getTime())}}_addCheck($){return new A0({...this._def,checks:[...this._def.checks,$]})}min($,f){return this._addCheck({kind:"min",value:$.getTime(),message:D.toString(f)})}max($,f){return this._addCheck({kind:"max",value:$.getTime(),message:D.toString(f)})}get minDate(){let $=null;for(let f of this._def.checks)if(f.kind==="min"){if($===null||f.value>$)$=f.value}return $!=null?new Date($):null}get maxDate(){let $=null;for(let f of this._def.checks)if(f.kind==="max"){if($===null||f.value<$)$=f.value}return $!=null?new Date($):null}}A0.create=($)=>{return new A0({checks:[],coerce:$?.coerce||!1,typeName:C.ZodDate,...v($)})};class Q1 extends h{_parse($){if(this._getType($)!==j.symbol){let X=this._getOrReturnCtx($);return V(X,{code:z.invalid_type,expected:j.symbol,received:X.parsedType}),A}return r($.data)}}Q1.create=($)=>{return new Q1({typeName:C.ZodSymbol,...v($)})};class l0 extends h{_parse($){if(this._getType($)!==j.undefined){let X=this._getOrReturnCtx($);return V(X,{code:z.invalid_type,expected:j.undefined,received:X.parsedType}),A}return r($.data)}}l0.create=($)=>{return new l0({typeName:C.ZodUndefined,...v($)})};class Z0 extends h{_parse($){if(this._getType($)!==j.null){let X=this._getOrReturnCtx($);return V(X,{code:z.invalid_type,expected:j.null,received:X.parsedType}),A}return r($.data)}}Z0.create=($)=>{return new Z0({typeName:C.ZodNull,...v($)})};class C0 extends h{constructor(){super(...arguments);this._any=!0}_parse($){return r($.data)}}C0.create=($)=>{return new C0({typeName:C.ZodAny,...v($)})};class R0 extends h{constructor(){super(...arguments);this._unknown=!0}_parse($){return r($.data)}}R0.create=($)=>{return new R0({typeName:C.ZodUnknown,...v($)})};class G0 extends h{_parse($){let f=this._getOrReturnCtx($);return V(f,{code:z.invalid_type,expected:j.never,received:f.parsedType}),A}}G0.create=($)=>{return new G0({typeName:C.ZodNever,...v($)})};class J1 extends h{_parse($){if(this._getType($)!==j.undefined){let X=this._getOrReturnCtx($);return V(X,{code:z.invalid_type,expected:j.void,received:X.parsedType}),A}return r($.data)}}J1.create=($)=>{return new J1({typeName:C.ZodVoid,...v($)})};class H0 extends h{_parse($){let{ctx:f,status:X}=this._processInputParams($),H=this._def;if(f.parsedType!==j.array)return V(f,{code:z.invalid_type,expected:j.array,received:f.parsedType}),A;if(H.exactLength!==null){let J=f.data.length>H.exactLength.value,W=f.data.length<H.exactLength.value;if(J||W)V(f,{code:J?z.too_big:z.too_small,minimum:W?H.exactLength.value:void 0,maximum:J?H.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:H.exactLength.message}),X.dirty()}if(H.minLength!==null){if(f.data.length<H.minLength.value)V(f,{code:z.too_small,minimum:H.minLength.value,type:"array",inclusive:!0,exact:!1,message:H.minLength.message}),X.dirty()}if(H.maxLength!==null){if(f.data.length>H.maxLength.value)V(f,{code:z.too_big,maximum:H.maxLength.value,type:"array",inclusive:!0,exact:!1,message:H.maxLength.message}),X.dirty()}if(f.common.async)return Promise.all([...f.data].map((J,W)=>{return H.type._parseAsync(new J0(f,J,f.path,W))})).then((J)=>{return d.mergeArray(X,J)});let Q=[...f.data].map((J,W)=>{return H.type._parseSync(new J0(f,J,f.path,W))});return d.mergeArray(X,Q)}get element(){return this._def.type}min($,f){return new H0({...this._def,minLength:{value:$,message:D.toString(f)}})}max($,f){return new H0({...this._def,maxLength:{value:$,message:D.toString(f)}})}length($,f){return new H0({...this._def,exactLength:{value:$,message:D.toString(f)}})}nonempty($){return this.min(1,$)}}H0.create=($,f)=>{return new H0({type:$,minLength:null,maxLength:null,exactLength:null,typeName:C.ZodArray,...v(f)})};function T0($){if($ instanceof x){let f={};for(let X in $.shape){let H=$.shape[X];f[X]=Q0.create(T0(H))}return new x({...$._def,shape:()=>f})}else if($ instanceof H0)return new H0({...$._def,type:T0($.element)});else if($ instanceof Q0)return Q0.create(T0($.unwrap()));else if($ instanceof j0)return j0.create(T0($.unwrap()));else if($ instanceof _0)return _0.create($.items.map((f)=>T0(f)));else return $}class x extends h{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let $=this._def.shape(),f=I.objectKeys($);return this._cached={shape:$,keys:f},this._cached}_parse($){if(this._getType($)!==j.object){let Y=this._getOrReturnCtx($);return V(Y,{code:z.invalid_type,expected:j.object,received:Y.parsedType}),A}let{status:X,ctx:H}=this._processInputParams($),{shape:Q,keys:J}=this._getCached(),W=[];if(!(this._def.catchall instanceof G0&&this._def.unknownKeys==="strip")){for(let Y in H.data)if(!J.includes(Y))W.push(Y)}let q=[];for(let Y of J){let _=Q[Y],N=H.data[Y];q.push({key:{status:"valid",value:Y},value:_._parse(new J0(H,N,H.path,Y)),alwaysSet:Y in H.data})}if(this._def.catchall instanceof G0){let Y=this._def.unknownKeys;if(Y==="passthrough")for(let _ of W)q.push({key:{status:"valid",value:_},value:{status:"valid",value:H.data[_]}});else if(Y==="strict"){if(W.length>0)V(H,{code:z.unrecognized_keys,keys:W}),X.dirty()}else if(Y==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let Y=this._def.catchall;for(let _ of W){let N=H.data[_];q.push({key:{status:"valid",value:_},value:Y._parse(new J0(H,N,H.path,_)),alwaysSet:_ in H.data})}}if(H.common.async)return Promise.resolve().then(async()=>{let Y=[];for(let _ of q){let N=await _.key,E=await _.value;Y.push({key:N,value:E,alwaysSet:_.alwaysSet})}return Y}).then((Y)=>{return d.mergeObjectSync(X,Y)});else return d.mergeObjectSync(X,q)}get shape(){return this._def.shape()}strict($){return D.errToObj,new x({...this._def,unknownKeys:"strict",...$!==void 0?{errorMap:(f,X)=>{let H=this._def.errorMap?.(f,X).message??X.defaultError;if(f.code==="unrecognized_keys")return{message:D.errToObj($).message??H};return{message:H}}}:{}})}strip(){return new x({...this._def,unknownKeys:"strip"})}passthrough(){return new x({...this._def,unknownKeys:"passthrough"})}extend($){return new x({...this._def,shape:()=>({...this._def.shape(),...$})})}merge($){return new x({unknownKeys:$._def.unknownKeys,catchall:$._def.catchall,shape:()=>({...this._def.shape(),...$._def.shape()}),typeName:C.ZodObject})}setKey($,f){return this.augment({[$]:f})}catchall($){return new x({...this._def,catchall:$})}pick($){let f={};for(let X of I.objectKeys($))if($[X]&&this.shape[X])f[X]=this.shape[X];return new x({...this._def,shape:()=>f})}omit($){let f={};for(let X of I.objectKeys(this.shape))if(!$[X])f[X]=this.shape[X];return new x({...this._def,shape:()=>f})}deepPartial(){return T0(this)}partial($){let f={};for(let X of I.objectKeys(this.shape)){let H=this.shape[X];if($&&!$[X])f[X]=H;else f[X]=H.optional()}return new x({...this._def,shape:()=>f})}required($){let f={};for(let X of I.objectKeys(this.shape))if($&&!$[X])f[X]=this.shape[X];else{let Q=this.shape[X];while(Q instanceof Q0)Q=Q._def.innerType;f[X]=Q}return new x({...this._def,shape:()=>f})}keyof(){return G2(I.objectKeys(this.shape))}}x.create=($,f)=>{return new x({shape:()=>$,unknownKeys:"strip",catchall:G0.create(),typeName:C.ZodObject,...v(f)})};x.strictCreate=($,f)=>{return new x({shape:()=>$,unknownKeys:"strict",catchall:G0.create(),typeName:C.ZodObject,...v(f)})};x.lazycreate=($,f)=>{return new x({shape:$,unknownKeys:"strip",catchall:G0.create(),typeName:C.ZodObject,...v(f)})};class m0 extends h{_parse($){let{ctx:f}=this._processInputParams($),X=this._def.options;function H(Q){for(let W of Q)if(W.result.status==="valid")return W.result;for(let W of Q)if(W.result.status==="dirty")return f.common.issues.push(...W.ctx.common.issues),W.result;let J=Q.map((W)=>new p(W.ctx.common.issues));return V(f,{code:z.invalid_union,unionErrors:J}),A}if(f.common.async)return Promise.all(X.map(async(Q)=>{let J={...f,common:{...f.common,issues:[]},parent:null};return{result:await Q._parseAsync({data:f.data,path:f.path,parent:J}),ctx:J}})).then(H);else{let Q=void 0,J=[];for(let q of X){let Y={...f,common:{...f.common,issues:[]},parent:null},_=q._parseSync({data:f.data,path:f.path,parent:Y});if(_.status==="valid")return _;else if(_.status==="dirty"&&!Q)Q={result:_,ctx:Y};if(Y.common.issues.length)J.push(Y.common.issues)}if(Q)return f.common.issues.push(...Q.ctx.common.issues),Q.result;let W=J.map((q)=>new p(q));return V(f,{code:z.invalid_union,unionErrors:W}),A}}get options(){return this._def.options}}m0.create=($,f)=>{return new m0({options:$,typeName:C.ZodUnion,...v(f)})};var z0=($)=>{if($ instanceof u0)return z0($.schema);else if($ instanceof W0)return z0($.innerType());else if($ instanceof c0)return[$.value];else if($ instanceof D0)return $.options;else if($ instanceof y0)return I.objectValues($.enum);else if($ instanceof i0)return z0($._def.innerType);else if($ instanceof l0)return[void 0];else if($ instanceof Z0)return[null];else if($ instanceof Q0)return[void 0,...z0($.unwrap())];else if($ instanceof j0)return[null,...z0($.unwrap())];else if($ instanceof U1)return z0($.unwrap());else if($ instanceof o0)return z0($.unwrap());else if($ instanceof s0)return z0($._def.innerType);else return[]};class D1 extends h{_parse($){let{ctx:f}=this._processInputParams($);if(f.parsedType!==j.object)return V(f,{code:z.invalid_type,expected:j.object,received:f.parsedType}),A;let X=this.discriminator,H=f.data[X],Q=this.optionsMap.get(H);if(!Q)return V(f,{code:z.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[X]}),A;if(f.common.async)return Q._parseAsync({data:f.data,path:f.path,parent:f});else return Q._parseSync({data:f.data,path:f.path,parent:f})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create($,f,X){let H=new Map;for(let Q of f){let J=z0(Q.shape[$]);if(!J.length)throw Error(`A discriminator value for key \`${$}\` could not be extracted from all schema options`);for(let W of J){if(H.has(W))throw Error(`Discriminator property ${String($)} has duplicate value ${String(W)}`);H.set(W,Q)}}return new D1({typeName:C.ZodDiscriminatedUnion,discriminator:$,options:f,optionsMap:H,...v(X)})}}function H$($,f){let X=B0($),H=B0(f);if($===f)return{valid:!0,data:$};else if(X===j.object&&H===j.object){let Q=I.objectKeys(f),J=I.objectKeys($).filter((q)=>Q.indexOf(q)!==-1),W={...$,...f};for(let q of J){let Y=H$($[q],f[q]);if(!Y.valid)return{valid:!1};W[q]=Y.data}return{valid:!0,data:W}}else if(X===j.array&&H===j.array){if($.length!==f.length)return{valid:!1};let Q=[];for(let J=0;J<$.length;J++){let W=$[J],q=f[J],Y=H$(W,q);if(!Y.valid)return{valid:!1};Q.push(Y.data)}return{valid:!0,data:Q}}else if(X===j.date&&H===j.date&&+$===+f)return{valid:!0,data:$};else return{valid:!1}}class n0 extends h{_parse($){let{status:f,ctx:X}=this._processInputParams($),H=(Q,J)=>{if(L1(Q)||L1(J))return A;let W=H$(Q.value,J.value);if(!W.valid)return V(X,{code:z.invalid_intersection_types}),A;if(b1(Q)||b1(J))f.dirty();return{status:f.value,value:W.data}};if(X.common.async)return Promise.all([this._def.left._parseAsync({data:X.data,path:X.path,parent:X}),this._def.right._parseAsync({data:X.data,path:X.path,parent:X})]).then(([Q,J])=>H(Q,J));else return H(this._def.left._parseSync({data:X.data,path:X.path,parent:X}),this._def.right._parseSync({data:X.data,path:X.path,parent:X}))}}n0.create=($,f,X)=>{return new n0({left:$,right:f,typeName:C.ZodIntersection,...v(X)})};class _0 extends h{_parse($){let{status:f,ctx:X}=this._processInputParams($);if(X.parsedType!==j.array)return V(X,{code:z.invalid_type,expected:j.array,received:X.parsedType}),A;if(X.data.length<this._def.items.length)return V(X,{code:z.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),A;if(!this._def.rest&&X.data.length>this._def.items.length)V(X,{code:z.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),f.dirty();let Q=[...X.data].map((J,W)=>{let q=this._def.items[W]||this._def.rest;if(!q)return null;return q._parse(new J0(X,J,X.path,W))}).filter((J)=>!!J);if(X.common.async)return Promise.all(Q).then((J)=>{return d.mergeArray(f,J)});else return d.mergeArray(f,Q)}get items(){return this._def.items}rest($){return new _0({...this._def,rest:$})}}_0.create=($,f)=>{if(!Array.isArray($))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new _0({items:$,typeName:C.ZodTuple,rest:null,...v(f)})};class W1 extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:f,ctx:X}=this._processInputParams($);if(X.parsedType!==j.object)return V(X,{code:z.invalid_type,expected:j.object,received:X.parsedType}),A;let H=[],Q=this._def.keyType,J=this._def.valueType;for(let W in X.data)H.push({key:Q._parse(new J0(X,W,X.path,W)),value:J._parse(new J0(X,X.data[W],X.path,W)),alwaysSet:W in X.data});if(X.common.async)return d.mergeObjectAsync(f,H);else return d.mergeObjectSync(f,H)}get element(){return this._def.valueType}static create($,f,X){if(f instanceof h)return new W1({keyType:$,valueType:f,typeName:C.ZodRecord,...v(X)});return new W1({keyType:X0.create(),valueType:$,typeName:C.ZodRecord,...v(f)})}}class q1 extends h{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse($){let{status:f,ctx:X}=this._processInputParams($);if(X.parsedType!==j.map)return V(X,{code:z.invalid_type,expected:j.map,received:X.parsedType}),A;let H=this._def.keyType,Q=this._def.valueType,J=[...X.data.entries()].map(([W,q],Y)=>{return{key:H._parse(new J0(X,W,X.path,[Y,"key"])),value:Q._parse(new J0(X,q,X.path,[Y,"value"]))}});if(X.common.async){let W=new Map;return Promise.resolve().then(async()=>{for(let q of J){let Y=await q.key,_=await q.value;if(Y.status==="aborted"||_.status==="aborted")return A;if(Y.status==="dirty"||_.status==="dirty")f.dirty();W.set(Y.value,_.value)}return{status:f.value,value:W}})}else{let W=new Map;for(let q of J){let{key:Y,value:_}=q;if(Y.status==="aborted"||_.status==="aborted")return A;if(Y.status==="dirty"||_.status==="dirty")f.dirty();W.set(Y.value,_.value)}return{status:f.value,value:W}}}}q1.create=($,f,X)=>{return new q1({valueType:f,keyType:$,typeName:C.ZodMap,...v(X)})};class O0 extends h{_parse($){let{status:f,ctx:X}=this._processInputParams($);if(X.parsedType!==j.set)return V(X,{code:z.invalid_type,expected:j.set,received:X.parsedType}),A;let H=this._def;if(H.minSize!==null){if(X.data.size<H.minSize.value)V(X,{code:z.too_small,minimum:H.minSize.value,type:"set",inclusive:!0,exact:!1,message:H.minSize.message}),f.dirty()}if(H.maxSize!==null){if(X.data.size>H.maxSize.value)V(X,{code:z.too_big,maximum:H.maxSize.value,type:"set",inclusive:!0,exact:!1,message:H.maxSize.message}),f.dirty()}let Q=this._def.valueType;function J(q){let Y=new Set;for(let _ of q){if(_.status==="aborted")return A;if(_.status==="dirty")f.dirty();Y.add(_.value)}return{status:f.value,value:Y}}let W=[...X.data.values()].map((q,Y)=>Q._parse(new J0(X,q,X.path,Y)));if(X.common.async)return Promise.all(W).then((q)=>J(q));else return J(W)}min($,f){return new O0({...this._def,minSize:{value:$,message:D.toString(f)}})}max($,f){return new O0({...this._def,maxSize:{value:$,message:D.toString(f)}})}size($,f){return this.min($,f).max($,f)}nonempty($){return this.min(1,$)}}O0.create=($,f)=>{return new O0({valueType:$,minSize:null,maxSize:null,typeName:C.ZodSet,...v(f)})};class g0 extends h{constructor(){super(...arguments);this.validate=this.implement}_parse($){let{ctx:f}=this._processInputParams($);if(f.parsedType!==j.function)return V(f,{code:z.invalid_type,expected:j.function,received:f.parsedType}),A;function X(W,q){return H1({data:W,path:f.path,errorMaps:[f.common.contextualErrorMap,f.schemaErrorMap,I0(),w0].filter((Y)=>!!Y),issueData:{code:z.invalid_arguments,argumentsError:q}})}function H(W,q){return H1({data:W,path:f.path,errorMaps:[f.common.contextualErrorMap,f.schemaErrorMap,I0(),w0].filter((Y)=>!!Y),issueData:{code:z.invalid_return_type,returnTypeError:q}})}let Q={errorMap:f.common.contextualErrorMap},J=f.data;if(this._def.returns instanceof v0){let W=this;return r(async function(...q){let Y=new p([]),_=await W._def.args.parseAsync(q,Q).catch((k)=>{throw Y.addIssue(X(q,k)),Y}),N=await Reflect.apply(J,this,_);return await W._def.returns._def.type.parseAsync(N,Q).catch((k)=>{throw Y.addIssue(H(N,k)),Y})})}else{let W=this;return r(function(...q){let Y=W._def.args.safeParse(q,Q);if(!Y.success)throw new p([X(q,Y.error)]);let _=Reflect.apply(J,this,Y.data),N=W._def.returns.safeParse(_,Q);if(!N.success)throw new p([H(_,N.error)]);return N.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...$){return new g0({...this._def,args:_0.create($).rest(R0.create())})}returns($){return new g0({...this._def,returns:$})}implement($){return this.parse($)}strictImplement($){return this.parse($)}static create($,f,X){return new g0({args:$?$:_0.create([]).rest(R0.create()),returns:f||R0.create(),typeName:C.ZodFunction,...v(X)})}}class u0 extends h{get schema(){return this._def.getter()}_parse($){let{ctx:f}=this._processInputParams($);return this._def.getter()._parse({data:f.data,path:f.path,parent:f})}}u0.create=($,f)=>{return new u0({getter:$,typeName:C.ZodLazy,...v(f)})};class c0 extends h{_parse($){if($.data!==this._def.value){let f=this._getOrReturnCtx($);return V(f,{received:f.data,code:z.invalid_literal,expected:this._def.value}),A}return{status:"valid",value:$.data}}get value(){return this._def.value}}c0.create=($,f)=>{return new c0({value:$,typeName:C.ZodLiteral,...v(f)})};function G2($,f){return new D0({values:$,typeName:C.ZodEnum,...v(f)})}class D0 extends h{_parse($){if(typeof $.data!=="string"){let f=this._getOrReturnCtx($),X=this._def.values;return V(f,{expected:I.joinValues(X),received:f.parsedType,code:z.invalid_type}),A}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has($.data)){let f=this._getOrReturnCtx($),X=this._def.values;return V(f,{received:f.data,code:z.invalid_enum_value,options:X}),A}return r($.data)}get options(){return this._def.values}get enum(){let $={};for(let f of this._def.values)$[f]=f;return $}get Values(){let $={};for(let f of this._def.values)$[f]=f;return $}get Enum(){let $={};for(let f of this._def.values)$[f]=f;return $}extract($,f=this._def){return D0.create($,{...this._def,...f})}exclude($,f=this._def){return D0.create(this.options.filter((X)=>!$.includes(X)),{...this._def,...f})}}D0.create=G2;class y0 extends h{_parse($){let f=I.getValidEnumValues(this._def.values),X=this._getOrReturnCtx($);if(X.parsedType!==j.string&&X.parsedType!==j.number){let H=I.objectValues(f);return V(X,{expected:I.joinValues(H),received:X.parsedType,code:z.invalid_type}),A}if(!this._cache)this._cache=new Set(I.getValidEnumValues(this._def.values));if(!this._cache.has($.data)){let H=I.objectValues(f);return V(X,{received:X.data,code:z.invalid_enum_value,options:H}),A}return r($.data)}get enum(){return this._def.values}}y0.create=($,f)=>{return new y0({values:$,typeName:C.ZodNativeEnum,...v(f)})};class v0 extends h{unwrap(){return this._def.type}_parse($){let{ctx:f}=this._processInputParams($);if(f.parsedType!==j.promise&&f.common.async===!1)return V(f,{code:z.invalid_type,expected:j.promise,received:f.parsedType}),A;let X=f.parsedType===j.promise?f.data:Promise.resolve(f.data);return r(X.then((H)=>{return this._def.type.parseAsync(H,{path:f.path,errorMap:f.common.contextualErrorMap})}))}}v0.create=($,f)=>{return new v0({type:$,typeName:C.ZodPromise,...v(f)})};class W0 extends h{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===C.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse($){let{status:f,ctx:X}=this._processInputParams($),H=this._def.effect||null,Q={addIssue:(J)=>{if(V(X,J),J.fatal)f.abort();else f.dirty()},get path(){return X.path}};if(Q.addIssue=Q.addIssue.bind(Q),H.type==="preprocess"){let J=H.transform(X.data,Q);if(X.common.async)return Promise.resolve(J).then(async(W)=>{if(f.value==="aborted")return A;let q=await this._def.schema._parseAsync({data:W,path:X.path,parent:X});if(q.status==="aborted")return A;if(q.status==="dirty")return E0(q.value);if(f.value==="dirty")return E0(q.value);return q});else{if(f.value==="aborted")return A;let W=this._def.schema._parseSync({data:J,path:X.path,parent:X});if(W.status==="aborted")return A;if(W.status==="dirty")return E0(W.value);if(f.value==="dirty")return E0(W.value);return W}}if(H.type==="refinement"){let J=(W)=>{let q=H.refinement(W,Q);if(X.common.async)return Promise.resolve(q);if(q instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return W};if(X.common.async===!1){let W=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(W.status==="aborted")return A;if(W.status==="dirty")f.dirty();return J(W.value),{status:f.value,value:W.value}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((W)=>{if(W.status==="aborted")return A;if(W.status==="dirty")f.dirty();return J(W.value).then(()=>{return{status:f.value,value:W.value}})})}if(H.type==="transform")if(X.common.async===!1){let J=this._def.schema._parseSync({data:X.data,path:X.path,parent:X});if(!V0(J))return A;let W=H.transform(J.value,Q);if(W instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:f.value,value:W}}else return this._def.schema._parseAsync({data:X.data,path:X.path,parent:X}).then((J)=>{if(!V0(J))return A;return Promise.resolve(H.transform(J.value,Q)).then((W)=>({status:f.value,value:W}))});I.assertNever(H)}}W0.create=($,f,X)=>{return new W0({schema:$,typeName:C.ZodEffects,effect:f,...v(X)})};W0.createWithPreprocess=($,f,X)=>{return new W0({schema:f,effect:{type:"preprocess",transform:$},typeName:C.ZodEffects,...v(X)})};class Q0 extends h{_parse($){if(this._getType($)===j.undefined)return r(void 0);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}Q0.create=($,f)=>{return new Q0({innerType:$,typeName:C.ZodOptional,...v(f)})};class j0 extends h{_parse($){if(this._getType($)===j.null)return r(null);return this._def.innerType._parse($)}unwrap(){return this._def.innerType}}j0.create=($,f)=>{return new j0({innerType:$,typeName:C.ZodNullable,...v(f)})};class i0 extends h{_parse($){let{ctx:f}=this._processInputParams($),X=f.data;if(f.parsedType===j.undefined)X=this._def.defaultValue();return this._def.innerType._parse({data:X,path:f.path,parent:f})}removeDefault(){return this._def.innerType}}i0.create=($,f)=>{return new i0({innerType:$,typeName:C.ZodDefault,defaultValue:typeof f.default==="function"?f.default:()=>f.default,...v(f)})};class s0 extends h{_parse($){let{ctx:f}=this._processInputParams($),X={...f,common:{...f.common,issues:[]}},H=this._def.innerType._parse({data:X.data,path:X.path,parent:{...X}});if(P0(H))return H.then((Q)=>{return{status:"valid",value:Q.status==="valid"?Q.value:this._def.catchValue({get error(){return new p(X.common.issues)},input:X.data})}});else return{status:"valid",value:H.status==="valid"?H.value:this._def.catchValue({get error(){return new p(X.common.issues)},input:X.data})}}removeCatch(){return this._def.innerType}}s0.create=($,f)=>{return new s0({innerType:$,typeName:C.ZodCatch,catchValue:typeof f.catch==="function"?f.catch:()=>f.catch,...v(f)})};class Y1 extends h{_parse($){if(this._getType($)!==j.nan){let X=this._getOrReturnCtx($);return V(X,{code:z.invalid_type,expected:j.nan,received:X.parsedType}),A}return{status:"valid",value:$.data}}}Y1.create=($)=>{return new Y1({typeName:C.ZodNaN,...v($)})};var gf=Symbol("zod_brand");class U1 extends h{_parse($){let{ctx:f}=this._processInputParams($),X=f.data;return this._def.type._parse({data:X,path:f.path,parent:f})}unwrap(){return this._def.type}}class B1 extends h{_parse($){let{status:f,ctx:X}=this._processInputParams($);if(X.common.async)return(async()=>{let Q=await this._def.in._parseAsync({data:X.data,path:X.path,parent:X});if(Q.status==="aborted")return A;if(Q.status==="dirty")return f.dirty(),E0(Q.value);else return this._def.out._parseAsync({data:Q.value,path:X.path,parent:X})})();else{let H=this._def.in._parseSync({data:X.data,path:X.path,parent:X});if(H.status==="aborted")return A;if(H.status==="dirty")return f.dirty(),{status:"dirty",value:H.value};else return this._def.out._parseSync({data:H.value,path:X.path,parent:X})}}static create($,f){return new B1({in:$,out:f,typeName:C.ZodPipeline})}}class o0 extends h{_parse($){let f=this._def.innerType._parse($),X=(H)=>{if(V0(H))H.value=Object.freeze(H.value);return H};return P0(f)?f.then((H)=>X(H)):X(f)}unwrap(){return this._def.innerType}}o0.create=($,f)=>{return new o0({innerType:$,typeName:C.ZodReadonly,...v(f)})};function W2($,f){let X=typeof $==="function"?$(f):typeof $==="string"?{message:$}:$;return typeof X==="string"?{message:X}:X}function _2($,f={},X){if($)return C0.create().superRefine((H,Q)=>{let J=$(H);if(J instanceof Promise)return J.then((W)=>{if(!W){let q=W2(f,H),Y=q.fatal??X??!0;Q.addIssue({code:"custom",...q,fatal:Y})}});if(!J){let W=W2(f,H),q=W.fatal??X??!0;Q.addIssue({code:"custom",...W,fatal:q})}return});return C0.create()}var xf={object:x.lazycreate},C;(function($){$.ZodString="ZodString",$.ZodNumber="ZodNumber",$.ZodNaN="ZodNaN",$.ZodBigInt="ZodBigInt",$.ZodBoolean="ZodBoolean",$.ZodDate="ZodDate",$.ZodSymbol="ZodSymbol",$.ZodUndefined="ZodUndefined",$.ZodNull="ZodNull",$.ZodAny="ZodAny",$.ZodUnknown="ZodUnknown",$.ZodNever="ZodNever",$.ZodVoid="ZodVoid",$.ZodArray="ZodArray",$.ZodObject="ZodObject",$.ZodUnion="ZodUnion",$.ZodDiscriminatedUnion="ZodDiscriminatedUnion",$.ZodIntersection="ZodIntersection",$.ZodTuple="ZodTuple",$.ZodRecord="ZodRecord",$.ZodMap="ZodMap",$.ZodSet="ZodSet",$.ZodFunction="ZodFunction",$.ZodLazy="ZodLazy",$.ZodLiteral="ZodLiteral",$.ZodEnum="ZodEnum",$.ZodEffects="ZodEffects",$.ZodNativeEnum="ZodNativeEnum",$.ZodOptional="ZodOptional",$.ZodNullable="ZodNullable",$.ZodDefault="ZodDefault",$.ZodCatch="ZodCatch",$.ZodPromise="ZodPromise",$.ZodBranded="ZodBranded",$.ZodPipeline="ZodPipeline",$.ZodReadonly="ZodReadonly"})(C||(C={}));var lf=($,f={message:`Input not instance of ${$.name}`})=>_2((X)=>X instanceof $,f),w2=X0.create,z2=L0.create,Zf=Y1.create,mf=b0.create,j2=x0.create,nf=A0.create,uf=Q1.create,cf=l0.create,yf=Z0.create,sf=C0.create,of=R0.create,pf=G0.create,df=J1.create,rf=H0.create,tf=x.create,af=x.strictCreate,ef=m0.create,$4=D1.create,f4=n0.create,X4=_0.create,H4=W1.create,Q4=q1.create,J4=O0.create,W4=g0.create,q4=u0.create,Y4=c0.create,B4=D0.create,G4=y0.create,_4=v0.create,w4=W0.create,z4=Q0.create,j4=j0.create,S4=W0.createWithPreprocess,N4=B1.create,V4=()=>w2().optional(),R4=()=>z2().optional(),L4=()=>j2().optional(),b4={string:($)=>X0.create({...$,coerce:!0}),number:($)=>L0.create({...$,coerce:!0}),boolean:($)=>x0.create({...$,coerce:!0}),bigint:($)=>b0.create({...$,coerce:!0}),date:($)=>A0.create({...$,coerce:!0})};var D4=A;class S0 extends Error{statusCode;details;constructor($,f,X){super(f);this.statusCode=$;this.details=X;if(this.name="HTTPException",Error.captureStackTrace)Error.captureStackTrace(this,this.constructor)}toJSON(){return{error:this.message,statusCode:this.statusCode,...this.details&&{details:this.details}}}}class U4 extends S0{constructor($="Not Found",f){super(404,$,f);this.name="NotFoundException"}toJSON(){return{error:this.message,statusCode:this.statusCode,...this.details&&{details:this.details}}}}class F4 extends S0{constructor($="Unauthorized",f){super(401,$,f);this.name="UnauthorizedException"}toJSON(){return{error:this.message,statusCode:this.statusCode,...this.details&&{details:this.details}}}}class E4 extends S0{constructor($="Forbidden",f){super(403,$,f);this.name="ForbiddenException"}toJSON(){return{error:this.message,statusCode:this.statusCode,...this.details&&{details:this.details}}}}class A4 extends S0{constructor($="Bad Request",f){super(400,$,f);this.name="BadRequestException"}toJSON(){return{error:this.message,statusCode:this.statusCode,...this.details&&{details:this.details}}}}class p0 extends S0{zodError;constructor($){super(422,"Validation failed");this.zodError=$;this.name="ValidationException"}toJSON(){return{error:"Validation Error",statusCode:this.statusCode,details:this.zodError.errors.map(($)=>({path:$.path.join("."),message:$.message,code:$.code}))}}}class Q${schemaCache=new WeakMap;stats={hits:0,misses:0,validations:0};async validate($,f){this.stats.validations++;try{let X=this.schemaCache.get(f);if(!X)this.stats.misses++,X={schema:f,resultCache:new WeakMap},this.schemaCache.set(f,X);else this.stats.hits++;return await X.schema.parseAsync($)}catch(X){if(X instanceof p)throw new p0(X);throw X}}validateSync($,f){this.stats.validations++;try{let X=this.schemaCache.get(f);if(!X)this.stats.misses++,X={schema:f,resultCache:new WeakMap},this.schemaCache.set(f,X);else this.stats.hits++;return X.schema.parse($)}catch(X){if(X instanceof p)throw new p0(X);throw X}}getCacheStats(){let $=this.stats.validations>0?this.stats.hits/this.stats.validations*100:0;return{...this.stats,hitRate:Math.round($*100)/100}}resetStats(){this.stats={hits:0,misses:0,validations:0}}clearCache(){this.schemaCache=new WeakMap,this.resetStats()}}class J${customHandler;isDevelopment;constructor($){this.customHandler=$,this.isDevelopment=!0}setCustomHandler($){this.customHandler=$}async handle($,f){if(this.customHandler)try{return await this.customHandler($,f)}catch(X){console.error("Custom error handler failed:",X)}if($ instanceof p0)return this.handleValidationException($,f);if($ instanceof S0)return this.handleHTTPException($,f);return this.handleGenericError($,f)}handleValidationException($,f){let X=$.toJSON();if(this.isDevelopment)console.error("Validation Error:",{path:f.req.path,method:f.req.method,details:X.details});return f.json(X,$.statusCode)}handleHTTPException($,f){let X=$.toJSON();if($.statusCode>=500)console.error("HTTP Exception:",{name:$.name,statusCode:$.statusCode,message:$.message,path:f.req.path,method:f.req.method,...this.isDevelopment&&$.stack?{stack:$.stack}:{}});else if(this.isDevelopment)console.warn("HTTP Exception:",{name:$.name,statusCode:$.statusCode,message:$.message,path:f.req.path,method:f.req.method});return f.json(X,$.statusCode)}handleGenericError($,f){console.error("Internal Server Error:",{name:$.name,message:$.message,path:f.req.path,method:f.req.method,stack:$.stack});let X={error:"Internal Server Error",statusCode:500};if(this.isDevelopment){if(X.message=$.message,X.name=$.name,$.stack)X.stack=$.stack.split(`
15
+ `).map((H)=>H.trim())}else X.message="An unexpected error occurred";return f.json(X,500)}isDevelopmentMode(){return this.isDevelopment}setDevelopmentMode($){this.isDevelopment=$}}class W${plugins=new Map;installed=new Set;register($){if(this.plugins.has($.name))throw Error(`Plugin "${$.name}" is already registered`);this.plugins.set($.name,$)}async install($){let f=this.resolveInstallOrder();for(let X of f)await this.plugins.get(X).install($),this.installed.add(X)}isInstalled($){return this.installed.has($)}getPlugin($){return this.plugins.get($)}getPluginNames(){return Array.from(this.plugins.keys())}resolveInstallOrder(){let $=new Set,f=new Set,X=[],H=(Q,J=[])=>{if(f.has(Q)){let q=[...J,Q].join(" -> ");throw Error(`Circular dependency detected in plugins: ${q}`)}if($.has(Q))return;f.add(Q);let W=this.plugins.get(Q);if(!W)throw Error(`Plugin "${Q}" is not registered`);if(W.dependencies)for(let q of W.dependencies){if(!this.plugins.has(q))throw Error(`Plugin "${Q}" depends on "${q}" which is not registered`);H(q,[...J,Q])}f.delete(Q),$.add(Q),X.push(Q)};for(let Q of this.plugins.keys())H(Q);return X}}function N2($){let{origin:f="*",methods:X=["GET","POST","PUT","DELETE","PATCH","OPTIONS"],allowedHeaders:H=["Content-Type","Authorization"],exposedHeaders:Q=[],credentials:J=!1,maxAge:W=86400}=$||{};return async(q,Y)=>{let _=q.req.header("origin"),N=q.req.method,E=null;if(typeof f==="string")E=f;else if(Array.isArray(f)){if(_&&f.includes(_))E=_}else if(typeof f==="function"){if(_&&f(_))E=_}if(E)q.header("Access-Control-Allow-Origin",E);if(J)q.header("Access-Control-Allow-Credentials","true");if(Q.length>0)q.header("Access-Control-Expose-Headers",Q.join(", "));if(N==="OPTIONS")return q.header("Access-Control-Allow-Methods",X.join(", ")),q.header("Access-Control-Allow-Headers",H.join(", ")),q.header("Access-Control-Max-Age",W.toString()),q.body(null,204);await Y()}}function V2($){let{windowMs:f=60000,max:X=100,keyGenerator:H=(W)=>{return W.req.header("x-forwarded-for")||W.req.header("x-real-ip")||"unknown"}}=$,Q=new Map,J=setInterval(()=>{let W=Date.now();for(let[q,Y]of Q.entries())if(W>Y.resetTime)Q.delete(q)},f);if(typeof process<"u"&&process.on)process.on("exit",()=>clearInterval(J));return async(W,q)=>{let Y=H(W),_=Date.now(),N=Q.get(Y);if(!N||_>N.resetTime)Q.set(Y,{count:1,resetTime:_+f}),W.header("X-RateLimit-Limit",X.toString()),W.header("X-RateLimit-Remaining",(X-1).toString()),W.header("X-RateLimit-Reset",new Date(_+f).toISOString()),await q();else if(N.count<X)N.count++,W.header("X-RateLimit-Limit",X.toString()),W.header("X-RateLimit-Remaining",(X-N.count).toString()),W.header("X-RateLimit-Reset",new Date(N.resetTime).toISOString()),await q();else{let E=Math.ceil((N.resetTime-_)/1000);return W.header("X-RateLimit-Limit",X.toString()),W.header("X-RateLimit-Remaining","0"),W.header("X-RateLimit-Reset",new Date(N.resetTime).toISOString()),W.header("Retry-After",E.toString()),W.json({error:"Too Many Requests",message:`Rate limit exceeded. Please try again in ${E} seconds.`,retryAfter:E},429)}}}function R2($){let{threshold:f=1024,level:X=6}=$||{};return async(H,Q)=>{await Q();let J=H.res;if(!J)return;let W=J.headers.get("content-type")||"",q=J.headers.get("content-length"),Y=H.req.header("accept-encoding")||"";if(!["text/","application/json","application/javascript","application/xml","application/x-www-form-urlencoded"].some((M)=>W.toLowerCase().includes(M)))return;if(q&&parseInt(q)<f)return;if(J.headers.get("content-encoding"))return;let E=await J.arrayBuffer();if(E.byteLength<f)return;let k=null,Z=null;if(Y.includes("br")&&typeof CompressionStream<"u")try{let M=new CompressionStream("deflate"),T=M.writable.getWriter();T.write(new Uint8Array(E)),T.close();let m=M.readable.getReader(),o=[];while(!0){let{done:s,value:t}=await m.read();if(s)break;o.push(t)}let a=o.reduce((s,t)=>s+t.length,0),i=new Uint8Array(a),e=0;for(let s of o)i.set(s,e),e+=s.length;k=i,Z="deflate"}catch(M){k=null}if(!k&&Y.includes("gzip")&&typeof CompressionStream<"u")try{let M=new CompressionStream("gzip"),T=M.writable.getWriter();T.write(new Uint8Array(E)),T.close();let m=M.readable.getReader(),o=[];while(!0){let{done:s,value:t}=await m.read();if(s)break;o.push(t)}let a=o.reduce((s,t)=>s+t.length,0),i=new Uint8Array(a),e=0;for(let s of o)i.set(s,e),e+=s.length;k=i,Z="gzip"}catch(M){k=null}if(k&&Z&&k.byteLength<E.byteLength){let M=new Headers(J.headers);return M.set("content-encoding",Z),M.set("content-length",k.byteLength.toString()),M.delete("content-length"),new Response(k,{status:J.status,statusText:J.statusText,headers:M})}}}class B${hono;metadata;container;validator;errorHandler;compiler;pluginManager;config;compiled=!1;globalMiddleware=[];groupPrefix="";constructor($){if(this.config={adapter:"hono",title:"FastAPI-TS API",version:"1.0.0",docs:!0,...$},this.hono=new m1,this.metadata=new N0,this.container=new i1,this.validator=new Q$,this.errorHandler=new J$,this.pluginManager=new W$,this.compiler=new $$(this.hono,this.metadata,this.container,this.validator,this.errorHandler),this.config.cors)if(this.config.cors===!0)this.useCors();else this.useCors(this.config.cors)}include($){let f=N0.getControllerMetadata($);if(f)this.metadata.registerController($,f);let X=N0.getRouteMethods($);for(let H of X){let Q=N0.getRouteMetadata($.prototype,H),J=N0.getParameterMetadata($.prototype,H),W=N0.getDependencyMetadata($.prototype,H);if(Q&&Q.method&&Q.path!==void 0){let q=f?.prefix||"",Y=this.normalizePath(q,Q.path);this.metadata.registerRoute({target:$,propertyKey:H,method:Q.method,path:Y,middleware:[...f?.middleware||[],...Q.middleware||[]],parameters:J||Q.parameters||[],dependencies:W||Q.dependencies||[],responses:Q.responses||[],docs:Q.docs})}}}get($,f){this.registerFunctionalRoute("GET",$,f)}post($,f){this.registerFunctionalRoute("POST",$,f)}put($,f){this.registerFunctionalRoute("PUT",$,f)}delete($,f){this.registerFunctionalRoute("DELETE",$,f)}patch($,f){this.registerFunctionalRoute("PATCH",$,f)}route($){return new F2(this,$)}group($,f){let X=this.groupPrefix;this.groupPrefix=this.normalizePath(this.groupPrefix,$),f(),this.groupPrefix=X}registerFunctionalRoute($,f,X){let H=this.normalizePath(this.groupPrefix,f),Q={target:U2,propertyKey:`${$.toLowerCase()}_${H}`,method:$,path:H,middleware:X.middleware||[],parameters:this.extractParametersFromSchema(X.schema),dependencies:[],responses:X.responses||[],docs:X.docs,handler:X.handler};this.metadata.registerRoute(Q)}extractParametersFromSchema($){let f=[],X=0;if($?.body)f.push({index:X++,type:"body",schema:$.body,required:!0});if($?.query)f.push({index:X++,type:"query",schema:$.query,required:!1});if($?.params)f.push({index:X++,type:"param",schema:$.params,required:!0});if($?.headers)f.push({index:X++,type:"header",schema:$.headers,required:!1});return f}use($){this.globalMiddleware.push($),this.hono.use("*",$)}useCors($){let f=N2($);this.use(f)}useRateLimit($){let f=V2($);this.use(f)}useCompression($){let f=R2($);this.use(f)}usePlugin($){this.pluginManager.register($)}getPluginManager(){return this.pluginManager}onError($){this.errorHandler.setCustomHandler($)}getErrorHandler(){return this.errorHandler}normalizePath(...$){let f=$.filter((X)=>X!=="").join("/").replace(/\/+/g,"/").replace(/\/$/,"");return f.startsWith("/")?f:`/${f}`}getHono(){return this.hono}getMetadata(){return this.metadata}getContainer(){return this.container}getConfig(){return this.config}isCompiled(){return this.compiled}markCompiled(){this.compiled=!0}async compile(){if(this.compiled){console.warn("Routes have already been compiled. Skipping compilation.");return}await this.pluginManager.install(this),this.compiler.compile(),this.compiled=!0}async listen($,f){if(!this.compiled)await this.compile();return this.createAdapter().listen($,f)}createAdapter(){let $=this.config.adapter||"hono";switch($){case"hono":{let{HonoAdapter:f}=G1(Y$);return new f(this.hono)}case"express":{let{ExpressAdapter:f}=G1(D2);return new f(this)}case"native":{let{HonoAdapter:f}=G1(Y$);return new f(this.hono)}default:throw Error(`Unknown adapter type: ${$}. Supported adapters: 'hono', 'express', 'native'`)}}}class U2{}class F2{app;path;constructor($,f){this.app=$;this.path=f}get($){return this.app.get(this.path,$),this}post($){return this.app.post(this.path,$),this}put($){return this.app.put(this.path,$),this}delete($){return this.app.delete(this.path,$),this}patch($){return this.app.patch(this.path,$),this}}function G$($){let f={docs:!1,cors:!1,...$};return new B$(f)}function E2($,f,X,H){let Q=$.getContainer(),J=typeof X==="function"?X:()=>X;Q.register(f,{scope:H?.scope||"singleton",factory:J})}function _$($){return new t0($)}async function A2($,f){let X=G$(f);await $(X),await X.compile();let H=_$(X);return{app:X,client:H}}function C2($){$.getContainer().clear()}
16
+
17
+ //# debugId=4911C0D658373A7E64756E2164756E21