@kyro-cms/core 0.12.47 → 0.12.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/api-handler-graphql.cjs +1 -1
- package/dist/api-handler-graphql.js +1 -1
- package/dist/api-handler-trpc.cjs +1 -1
- package/dist/api-handler-trpc.js +1 -1
- package/dist/api-handler.cjs +1 -1
- package/dist/api-handler.js +1 -1
- package/dist/auth-session-DHVGXHOH.cjs +1 -0
- package/dist/auth-session-O7IIH7EP.js +1 -0
- package/dist/bcryptjs-ZEEHSMAG.js +2 -0
- package/dist/{better-sqlite3-42Q3FG3E.js → better-sqlite3-B34RIU4C.js} +1 -1
- package/dist/bootstrap-4FK3LPPH.js +1 -0
- package/dist/bootstrap-F4SDJLPK.cjs +1 -0
- package/dist/{bowser-FI5JQGKZ.js → bowser-SB3ZUPO4.js} +1 -1
- package/dist/chokidar-5RVQZVHP.cjs +5 -0
- package/dist/chokidar-BOYGRT4Q.js +6 -0
- package/dist/{chunk-DS5DE5BU.js → chunk-24L3UEJJ.js} +1 -1
- package/dist/{chunk-HT44I66C.js → chunk-2HA6EKXX.js} +1 -1
- package/dist/{chunk-7AQSH3KR.js → chunk-3NSZZCOJ.js} +1 -1
- package/dist/{chunk-VIUU4D5I.js → chunk-47CXBWMA.js} +1 -1
- package/dist/{chunk-6MSS5X77.js → chunk-5M3FKE2V.js} +1 -1
- package/dist/chunk-63BSQ3FK.cjs +1 -0
- package/dist/chunk-6TPICJ2L.js +7 -0
- package/dist/{chunk-K7YNEKVE.js → chunk-7FXEXHK6.js} +1 -1
- package/dist/{chunk-WSP7PSXC.js → chunk-7MNDQU6K.js} +1 -1
- package/dist/{chunk-7V67ONUD.js → chunk-7N7U2ERH.js} +1 -1
- package/dist/{chunk-BPMA2ECA.js → chunk-7NH7H3WA.js} +1 -1
- package/dist/{chunk-ZJE3VAAW.js → chunk-BU6O3TP7.js} +3 -3
- package/dist/{chunk-W46LZ4MY.js → chunk-C7QCZX7X.js} +1 -1
- package/dist/chunk-CFZVJTXW.cjs +264 -0
- package/dist/{chunk-2WFTETFB.js → chunk-CIVA6SKW.js} +1 -1
- package/dist/chunk-EFGOYI57.js +265 -0
- package/dist/{chunk-2BUODBE2.js → chunk-EML5FDUU.js} +1 -1
- package/dist/{chunk-66BJXVFJ.js → chunk-FLMUMPDE.js} +1 -1
- package/dist/{chunk-QYI3GOHF.cjs → chunk-HKNQVI76.cjs} +1 -1
- package/dist/{chunk-IP6JUEH3.js → chunk-HRAY65XH.js} +1 -1
- package/dist/{chunk-KH7LM52S.js → chunk-IKGVPXMK.js} +1 -1
- package/dist/{chunk-XSRISWOY.js → chunk-JR6IOJO7.js} +2 -2
- package/dist/{chunk-XOACKBG7.js → chunk-JRUQ5ABB.js} +2 -2
- package/dist/{chunk-OMWQVPV7.js → chunk-JV4HJBXW.js} +1 -1
- package/dist/{chunk-X54XZACS.cjs → chunk-KZHXYXSH.cjs} +2 -2
- package/dist/{chunk-UD6ZPO7T.js → chunk-L2QXP26Q.js} +1 -1
- package/dist/{chunk-ORG67NXX.js → chunk-L3Q64RUX.js} +1 -1
- package/dist/chunk-LELK3TYX.js +3 -0
- package/dist/chunk-LGYBTBWE.js +2 -0
- package/dist/{chunk-7I6URA6F.js → chunk-LVBHOZZF.js} +1 -1
- package/dist/{chunk-R3NEPC4I.js → chunk-LWM4WABU.js} +1 -1
- package/dist/{chunk-TR3ZS3T3.js → chunk-M75VGFCI.js} +1 -1
- package/dist/chunk-MCIZG4A3.cjs +1 -0
- package/dist/{chunk-VBPAAQEF.js → chunk-N5POANYV.js} +1 -1
- package/dist/chunk-O4YE57OS.cjs +6 -0
- package/dist/{chunk-A73AVVFR.js → chunk-OBYAIJVU.js} +1 -1
- package/dist/chunk-OLRCZ6E3.js +2 -0
- package/dist/{chunk-WGESLAWV.js → chunk-OXGJOYEO.js} +1 -1
- package/dist/{chunk-CGPAS4U5.js → chunk-P6JITOFF.js} +1 -1
- package/dist/{chunk-JUJZOG6P.js → chunk-PA4ZZREG.js} +1 -1
- package/dist/{chunk-45TJAB5X.js → chunk-PENOCINR.js} +3 -3
- package/dist/{chunk-MZOWPV4D.js → chunk-PRMILS4Y.js} +1 -1
- package/dist/chunk-QDBGBDCT.js +2 -0
- package/dist/{chunk-XBH4YMC7.js → chunk-R25WLKX4.js} +1 -1
- package/dist/{chunk-J6U5LWZ7.js → chunk-RPRGGGIW.js} +3 -3
- package/dist/{chunk-E27KEZPT.js → chunk-RTHJ6SS5.js} +1 -1
- package/dist/{chunk-MCZ3YZ2L.js → chunk-SLMIYECU.js} +1 -1
- package/dist/{chunk-IPXOY4RI.js → chunk-SQBTIMWF.js} +1 -1
- package/dist/{chunk-VJ2WMKPK.js → chunk-SZT6BLUR.js} +1 -1
- package/dist/{chunk-6KRR7YHA.js → chunk-TBHNE4VV.js} +1 -1
- package/dist/{chunk-OSAVAYJZ.js → chunk-TYQYKKWJ.js} +1 -1
- package/dist/{chunk-ICVQWR2A.js → chunk-U6KFONKM.js} +1 -1
- package/dist/chunk-UT7RGIYS.js +2 -0
- package/dist/{chunk-PBOZJOKN.js → chunk-UWHWSWDE.js} +1 -1
- package/dist/chunk-VVVCCB6R.js +2 -0
- package/dist/{chunk-MY42EWZP.js → chunk-W45TLOOT.js} +1 -1
- package/dist/{chunk-R4N352LI.cjs → chunk-WC7H45ZG.cjs} +3 -3
- package/dist/chunk-WJBQ2NBD.cjs +1 -0
- package/dist/{chunk-ATBH763U.js → chunk-WPM6LFCY.js} +1 -1
- package/dist/chunk-XBQ6HV3T.cjs +114 -0
- package/dist/{chunk-C2PXMVR5.js → chunk-Y2YAKDEQ.js} +1 -1
- package/dist/chunk-YENNL5HG.js +2 -0
- package/dist/{chunk-SYEP5QLG.js → chunk-YUUXFD73.js} +1 -1
- package/dist/{chunk-NWCREF47.js → chunk-YZEMLLD2.js} +1 -1
- package/dist/chunk-ZKHTFR5S.cjs +2 -0
- package/dist/{chunk-7T35572E.js → chunk-ZMG7Z3KF.js} +1 -1
- package/dist/{chunk-HLAEJB5R.js → chunk-ZRIBWDYJ.js} +1 -1
- package/dist/chunk-ZWDBPEXL.js +115 -0
- package/dist/cli/index.cjs +1 -1
- package/dist/cli/index.js +2 -2
- package/dist/client.js +1 -1
- package/dist/{d1-VPH75GI2.js → d1-HPB6B253.js} +1 -1
- package/dist/{dist-es-6TQTDPE7.js → dist-es-64F22JL2.js} +2 -2
- package/dist/{dist-es-XZBHIIKY.js → dist-es-F2ZR55UK.js} +2 -2
- package/dist/dist-es-IPSSZNFP.js +1 -0
- package/dist/{dist-es-SJ76GYCI.js → dist-es-M2F7M27Y.js} +1 -1
- package/dist/{dist-es-U4ZB3ZDA.js → dist-es-M66JKZF5.js} +1 -1
- package/dist/{dist-es-MNIQZC4U.js → dist-es-OKLLRYI3.js} +2 -2
- package/dist/{dist-es-TX4DBXEW.js → dist-es-SVHZDVUF.js} +2 -2
- package/dist/{dist-es-EMUQ6ZNZ.js → dist-es-WFI55HKT.js} +1 -1
- package/dist/drizzle/index.cjs +1 -1
- package/dist/drizzle/index.d.cts +1 -0
- package/dist/drizzle/index.d.ts +1 -0
- package/dist/drizzle/index.js +1 -1
- package/dist/drizzle-orm-XRTSOQJS.js +1 -0
- package/dist/event-streams-7NAWZW2I.js +1 -0
- package/dist/fields/index.js +1 -1
- package/dist/fs-KWBRQ6T6.js +1 -0
- package/dist/fs-ZQYOJOIO.cjs +1 -0
- package/dist/graphql/index.js +1 -1
- package/dist/index.cjs +9 -9
- package/dist/index.js +10 -10
- package/dist/integration.js +1 -1
- package/dist/{jsonwebtoken-S7BG2YWK.js → jsonwebtoken-OD67R5JS.js} +3 -3
- package/dist/{lib-IYW32OER.js → lib-XXYYUPMW.js} +3 -3
- package/dist/{loadSso-YTG2GQGW.js → loadSso-UQR6545M.js} +1 -1
- package/dist/local-3V3XEQUY.js +1 -0
- package/dist/media-E762GEHL.js +1 -0
- package/dist/mongo-auth-adapter-QDXVHREJ.js +1 -0
- package/dist/{mongo-auth-adapter-7K64Y2QM.cjs → mongo-auth-adapter-W3HLB7OR.cjs} +1 -1
- package/dist/mongodb/index.cjs +1 -1
- package/dist/mongodb/index.js +1 -1
- package/dist/{nodemailer-AXROO37D.js → nodemailer-NITB45SS.js} +3 -3
- package/dist/postgres-auth-adapter-SK3N3OSS.js +1 -0
- package/dist/postgres-auth-adapter-ZO6HK5AK.cjs +1 -0
- package/dist/postgres-js-3Y54EXVQ.cjs +1 -1
- package/dist/postgres-js-4CI7FMYS.js +1 -0
- package/dist/redis-adapter-QPCTMF55.js +1 -0
- package/dist/rest/index.cjs +1 -1
- package/dist/rest/index.js +1 -1
- package/dist/schema-YFMSJK2P.js +2 -0
- package/dist/{signin-KZBIAHGS.js → signin-N3T2KF5Q.js} +1 -1
- package/dist/sqlite-adapter-4TPNROJK.js +1 -0
- package/dist/src-QBADSZV4.js +1 -0
- package/dist/{sso-oidc-SX5OIQGG.js → sso-oidc-UB7G4END.js} +1 -1
- package/dist/{sts-HVGDJYIF.js → sts-WAA6I22C.js} +1 -1
- package/dist/templates/index.js +1 -1
- package/dist/trpc/index.js +1 -1
- package/dist/ws/index.js +1 -1
- package/package.json +2 -2
- package/dist/bcryptjs-AZA6WEN2.js +0 -2
- package/dist/bootstrap-7CI3NVSY.js +0 -1
- package/dist/bootstrap-DOOM2CNQ.cjs +0 -1
- package/dist/chokidar-24HVS6XD.cjs +0 -5
- package/dist/chokidar-43DT7CVN.js +0 -6
- package/dist/chunk-5DWYVUQR.cjs +0 -1
- package/dist/chunk-6QWLXJ7L.js +0 -2
- package/dist/chunk-B3GDQ7UI.cjs +0 -114
- package/dist/chunk-BLH2MRK4.js +0 -2
- package/dist/chunk-EOOZDOL7.js +0 -3
- package/dist/chunk-F3MCWKOW.cjs +0 -1
- package/dist/chunk-FYPEL7XW.js +0 -270
- package/dist/chunk-MPGROUMH.js +0 -2
- package/dist/chunk-PL5AIE6F.js +0 -2
- package/dist/chunk-QDHP5E4P.cjs +0 -2
- package/dist/chunk-QN5ULXBX.cjs +0 -269
- package/dist/chunk-R4LXRAMX.js +0 -2
- package/dist/chunk-SVYUTQVE.js +0 -115
- package/dist/chunk-UB5TJHQR.js +0 -2
- package/dist/chunk-XPPVX4GQ.cjs +0 -1
- package/dist/dist-es-6SVFVYN3.js +0 -1
- package/dist/drizzle-orm-7YTX5NTT.js +0 -1
- package/dist/event-streams-25YJ2Z6R.js +0 -1
- package/dist/fs-DGKZLRM6.cjs +0 -1
- package/dist/fs-YZJ5FM6J.js +0 -2
- package/dist/local-VDCSEMC2.js +0 -1
- package/dist/media-HK2IZMUZ.js +0 -1
- package/dist/mongo-auth-adapter-BUKINEZL.js +0 -1
- package/dist/postgres-auth-adapter-2M4RNEY3.cjs +0 -1
- package/dist/postgres-auth-adapter-MKSHIJDL.js +0 -1
- package/dist/postgres-js-INQPBHJP.js +0 -1
- package/dist/redis-adapter-SXOXLHNH.js +0 -1
- package/dist/schema-XC5ISGNR.js +0 -2
- package/dist/sqlite-adapter-DV7ZX2EJ.js +0 -1
- package/dist/src-GZRZ4VAO.js +0 -1
- /package/dist/{chunk-P7XYIKL6.cjs → chunk-YUER4JU3.cjs} +0 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
'use strict';var chunkYUER4JU3_cjs=require('./chunk-YUER4JU3.cjs'),chunkBHR7OAU4_cjs=require('./chunk-BHR7OAU4.cjs'),chunkO4YE57OS_cjs=require('./chunk-O4YE57OS.cjs'),chunk35PGCW3S_cjs=require('./chunk-35PGCW3S.cjs'),chunkUNYXWPLZ_cjs=require('./chunk-UNYXWPLZ.cjs'),chunkPITMDQYN_cjs=require('./chunk-PITMDQYN.cjs'),chunkGIS6X43A_cjs=require('./chunk-GIS6X43A.cjs'),chunkLEBM6ZSZ_cjs=require('./chunk-LEBM6ZSZ.cjs'),chunkGNEVCEJU_cjs=require('./chunk-GNEVCEJU.cjs'),chunkZO3YB5DK_cjs=require('./chunk-ZO3YB5DK.cjs'),chunk3VXEK5ZW_cjs=require('./chunk-3VXEK5ZW.cjs'),chunkEZIDQBXI_cjs=require('./chunk-EZIDQBXI.cjs'),chunkLQ3YZTPU_cjs=require('./chunk-LQ3YZTPU.cjs'),chunkMVX2PYJJ_cjs=require('./chunk-MVX2PYJJ.cjs'),chunkAK754S3T_cjs=require('./chunk-AK754S3T.cjs'),chunkDUO523BH_cjs=require('./chunk-DUO523BH.cjs'),chunk6KUL2BSA_cjs=require('./chunk-6KUL2BSA.cjs'),chunkXBQ6HV3T_cjs=require('./chunk-XBQ6HV3T.cjs'),chunkVRZC4TTF_cjs=require('./chunk-VRZC4TTF.cjs'),chunkWJBQ2NBD_cjs=require('./chunk-WJBQ2NBD.cjs'),chunkHTYVI2HK_cjs=require('./chunk-HTYVI2HK.cjs'),chunkZOVH6QT5_cjs=require('./chunk-ZOVH6QT5.cjs'),chunk7WMMKGEO_cjs=require('./chunk-7WMMKGEO.cjs'),chunkBUNLC3II_cjs=require('./chunk-BUNLC3II.cjs'),BB=require('crypto'),Co=require('path'),fs$1=require('fs'),promises=require('fs/promises'),Lw=require('process'),stream=require('stream');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var BB__default=/*#__PURE__*/_interopDefault(BB);var Co__default=/*#__PURE__*/_interopDefault(Co);var Lw__default=/*#__PURE__*/_interopDefault(Lw);chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Cc=(r,e,t)=>(s,n)=>{let a=-1;return i(0);async function i(c){if(c<=a)throw new Error("next() called multiple times");a=c;let d,y=false,x;if(r[c]?(x=r[c][0][0],s.req.routeIndex=c):x=c===r.length&&n||void 0,x)try{d=await x(s,()=>i(c+1));}catch(_){if(_ instanceof Error&&e)s.error=_,d=await e(_,s),y=true;else throw _}else s.finalized===false&&t&&(d=await t(s));return d&&(s.finalized===false||y)&&(s.res=d),s}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var nm=Symbol();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var am=(r,e)=>new Response(r,{headers:{"Content-Type":e.replace(/^[^;]+/,s=>s.toLowerCase())}}).formData();var io=r=>"headers"in r,im=async(r,e=Object.create(null))=>{let{all:t=false,dot:s=false}=e,i=(io(r)?r.headers:r.raw.headers).get("Content-Type")?.split(";")[0].trim().toLowerCase();return i==="multipart/form-data"||i==="application/x-www-form-urlencoded"?Y_(r,{all:t,dot:s}):{}};async function Y_(r,e){if(!io(r)&&r.bodyCache.formData)return om(await r.bodyCache.formData,e);let t=io(r)?r.headers:r.raw.headers,s=await r.arrayBuffer(),n=am(s,t.get("Content-Type")||"");io(r)||(r.bodyCache.formData=n);let a=await n;return a?om(a,e):{}}function om(r,e){let t=Object.create(null);return r.forEach((s,n)=>{e.all||n.endsWith("[]")?ew(t,n,s):t[n]=s;}),e.dot&&Object.entries(t).forEach(([s,n])=>{s.includes(".")&&(tw(t,s,n),delete t[s]);}),t}var ew=(r,e,t)=>{r[e]!==void 0?Array.isArray(r[e])?r[e].push(t):r[e]=[r[e],t]:e.endsWith("[]")?r[e]=[t]:r[e]=t;},tw=(r,e,t)=>{if(/(?:^|\.)__proto__\./.test(e))return;let s=r,n=e.split(".");n.forEach((a,i)=>{i===n.length-1?s[a]=t:((!s[a]||typeof s[a]!="object"||Array.isArray(s[a])||s[a]instanceof File)&&(s[a]=Object.create(null)),s=s[a]);});};chunkBUNLC3II_cjs.h();var Ec=r=>{let e=r.split("/");return e[0]===""&&e.shift(),e},cm=r=>{let{groups:e,path:t}=rw(r),s=Ec(t);return sw(s,e)},rw=r=>{let e=[];return r=r.replace(/\{[^}]+\}/g,(t,s)=>{let n=`@${s}`;return e.push([n,t]),n}),{groups:e,path:r}},sw=(r,e)=>{for(let t=e.length-1;t>=0;t--){let[s]=e[t];for(let n=r.length-1;n>=0;n--)if(r[n].includes(s)){r[n]=r[n].replace(s,e[t][1]);break}}return r},co={},um=(r,e)=>{if(r==="*")return "*";let t=r.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(t){let s=`${r}#${e}`;return co[s]||(t[2]?co[s]=e&&e[0]!==":"&&e[0]!=="*"?[s,t[1],new RegExp(`^${t[2]}(?=/${e})`)]:[r,t[1],new RegExp(`^${t[2]}$`)]:co[s]=[r,t[1],true]),co[s]}return null},Xn=(r,e)=>{try{return e(r)}catch{return r.replace(/(?:%[0-9A-Fa-f]{2})+/g,t=>{try{return e(t)}catch{return t}})}},nw=r=>Xn(r,decodeURI),Tc=r=>{let e=r.url,t=e.indexOf("/",e.indexOf(":")+4),s=t;for(;s<e.length;s++){let n=e.charCodeAt(s);if(n===37){let a=e.indexOf("?",s),i=e.indexOf("#",s),c=a===-1?i===-1?void 0:i:i===-1?a:Math.min(a,i),d=e.slice(t,c);return nw(d.includes("%25")?d.replace(/%25/g,"%2525"):d)}else if(n===63||n===35)break}return e.slice(t,s)};var lm=r=>{let e=Tc(r);return e.length>1&&e.at(-1)==="/"?e.slice(0,-1):e},Xr=(r,e,...t)=>(t.length&&(e=Xr(e,...t)),`${r?.[0]==="/"?"":"/"}${r}${e==="/"?"":`${r?.at(-1)==="/"?"":"/"}${e?.[0]==="/"?e.slice(1):e}`}`),uo=r=>{if(r.charCodeAt(r.length-1)!==63||!r.includes(":"))return null;let e=r.split("/"),t=[],s="";return e.forEach(n=>{if(n!==""&&!/\:/.test(n))s+="/"+n;else if(/\:/.test(n))if(/\?/.test(n)){t.length===0&&s===""?t.push("/"):t.push(s);let a=n.replace("?","");s+="/"+a,t.push(s);}else s+="/"+n;}),t.filter((n,a,i)=>i.indexOf(n)===a)},kc=r=>/[%+]/.test(r)?(r.indexOf("+")!==-1&&(r=r.replace(/\+/g," ")),r.indexOf("%")!==-1?Xn(r,lo):r):r,dm=(r,e,t)=>{let s;if(!t&&e&&!/[%+]/.test(e)){let i=r.indexOf("?",8);if(i===-1)return;for(r.startsWith(e,i+1)||(i=r.indexOf(`&${e}`,i+1));i!==-1;){let c=r.charCodeAt(i+e.length+1);if(c===61){let d=i+e.length+2,y=r.indexOf("&",d);return kc(r.slice(d,y===-1?void 0:y))}else if(c==38||isNaN(c))return "";i=r.indexOf(`&${e}`,i+1);}if(s=/[%+]/.test(r),!s)return}let n={};s??=/[%+]/.test(r);let a=r.indexOf("?",8);for(;a!==-1;){let i=r.indexOf("&",a+1),c=r.indexOf("=",a);c>i&&i!==-1&&(c=-1);let d=r.slice(a+1,c===-1?i===-1?void 0:i:c);if(s&&(d=kc(d)),a=i,d==="")continue;let y;c===-1?y="":(y=r.slice(c+1,i===-1?void 0:i),s&&(y=kc(y))),t?(n[d]&&Array.isArray(n[d])||(n[d]=[]),n[d].push(y)):n[d]??=y;}return e?n[e]:n},pm=dm,mm=(r,e)=>dm(r,e,true),lo=decodeURIComponent;var fm=r=>Xn(r,lo),hm=class{raw;#t;#e;routeIndex=0;path;bodyCache={};constructor(r,e="/",t=[[]]){this.raw=r,this.path=e,this.#e=t,this.#t={};}param(r){return r?this.#r(r):this.#a()}#r(r){let e=this.#e[0][this.routeIndex][1][r],t=this.#n(e);return t&&/\%/.test(t)?fm(t):t}#a(){let r={},e=Object.keys(this.#e[0][this.routeIndex][1]);for(let t of e){let s=this.#n(this.#e[0][this.routeIndex][1][t]);s!==void 0&&(r[t]=/\%/.test(s)?fm(s):s);}return r}#n(r){return this.#e[1]?this.#e[1][r]:r}query(r){return pm(this.url,r)}queries(r){return mm(this.url,r)}header(r){if(r)return this.raw.headers.get(r)??void 0;let e={};return this.raw.headers.forEach((t,s)=>{e[s]=t;}),e}async parseBody(r){return im(this,r)}#s=r=>{let{bodyCache:e,raw:t}=this,s=e[r];if(s)return s;let n=Object.keys(e)[0];return n?e[n].then(a=>(n==="json"&&(a=JSON.stringify(a)),new Response(a)[r]())):e[r]=t[r]()};json(){return this.#s("text").then(r=>JSON.parse(r))}text(){return this.#s("text")}arrayBuffer(){return this.#s("arrayBuffer")}bytes(){return this.#s("arrayBuffer").then(r=>new Uint8Array(r))}blob(){return this.#s("blob")}formData(){return this.#s("formData")}addValidatedData(r,e){this.#t[r]=e;}valid(r){return this.#t[r]}get url(){return this.raw.url}get method(){return this.raw.method}get[nm](){return this.#e}get matchedRoutes(){return this.#e[0].map(([[,r]])=>r)}get routePath(){return this.#e[0].map(([[,r]])=>r)[this.routeIndex].path}};chunkBUNLC3II_cjs.h();var gm={Stringify:1},ow=(r,e)=>{let t=new String(r);return t.isEscaped=true,t.callbacks=e,t};var Oc=async(r,e,t,s,n)=>{typeof r=="object"&&!(r instanceof String)&&(r instanceof Promise||(r=r.toString()),r instanceof Promise&&(r=await r));let a=r.callbacks;if(!a?.length)return Promise.resolve(r);n?n[0]+=r:n=[r];let i=Promise.all(a.map(c=>c({phase:e,buffer:n,context:s}))).then(c=>Promise.all(c.filter(Boolean).map(d=>Oc(d,e,false,s,n))).then(()=>n[0]));return t?ow(await i,a):i};var iw="text/plain; charset=UTF-8",Pc=(r,e)=>({"Content-Type":r,...e}),Jn=(r,e)=>new Response(r,e),Ic=class{#t;#e;env={};#r;finalized=false;error;#a;#n;#s;#l;#c;#u;#i;#d;#p;constructor(r,e){this.#t=r,e&&(this.#n=e.executionCtx,this.env=e.env,this.#u=e.notFoundHandler,this.#p=e.path,this.#d=e.matchResult);}get req(){return this.#e??=new hm(this.#t,this.#p,this.#d),this.#e}get event(){if(this.#n&&"respondWith"in this.#n)return this.#n;throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#n)return this.#n;throw Error("This context has no ExecutionContext")}get res(){return this.#s||=Jn(null,{headers:this.#i??=new Headers})}set res(r){if(this.#s&&r){r=Jn(r.body,r);for(let[e,t]of this.#s.headers.entries())if(e!=="content-type")if(e==="set-cookie"){let s=this.#s.headers.getSetCookie();r.headers.delete("set-cookie");for(let n of s)r.headers.append("set-cookie",n);}else r.headers.set(e,t);}this.#s=r,this.finalized=true;}render=(...r)=>(this.#c??=e=>this.html(e),this.#c(...r));setLayout=r=>this.#l=r;getLayout=()=>this.#l;setRenderer=r=>{this.#c=r;};header=(r,e,t)=>{this.finalized&&(this.#s=Jn(this.#s.body,this.#s));let s=this.#s?this.#s.headers:this.#i??=new Headers;e===void 0?s.delete(r):t?.append?s.append(r,e):s.set(r,e);};status=r=>{this.#a=r;};set=(r,e)=>{this.#r??=new Map,this.#r.set(r,e);};get=r=>this.#r?this.#r.get(r):void 0;get var(){return this.#r?Object.fromEntries(this.#r):{}}#o(r,e,t){let s=this.#s?new Headers(this.#s.headers):this.#i??new Headers;if(typeof e=="object"&&"headers"in e){let a=e.headers instanceof Headers?e.headers:new Headers(e.headers);for(let[i,c]of a)i.toLowerCase()==="set-cookie"?s.append(i,c):s.set(i,c);}if(t)for(let[a,i]of Object.entries(t))if(typeof i=="string")s.set(a,i);else {s.delete(a);for(let c of i)s.append(a,c);}let n=typeof e=="number"?e:e?.status??this.#a;return Jn(r,{status:n,headers:s})}newResponse=(...r)=>this.#o(...r);body=(r,e,t)=>this.#o(r,e,t);text=(r,e,t)=>!this.#i&&!this.#a&&!e&&!t&&!this.finalized?new Response(r):this.#o(r,e,Pc(iw,t));json=(r,e,t)=>this.#o(JSON.stringify(r),e,Pc("application/json",t));html=(r,e,t)=>{let s=n=>this.#o(n,e,Pc("text/html; charset=UTF-8",t));return typeof r=="object"?Oc(r,gm.Stringify,false,{}).then(s):s(r)};redirect=(r,e)=>{let t=String(r);return this.header("Location",/[^\x00-\xFF]/.test(t)?encodeURI(t):t),this.newResponse(null,e??302)};notFound=()=>(this.#u??=()=>Jn(),this.#u(this))};chunkBUNLC3II_cjs.h();var De="ALL",ym="all",xm=["get","post","put","delete","options","patch"],po="Can not add a route since the matcher is already built.",mo=class extends Error{};chunkBUNLC3II_cjs.h();var _m="__COMPOSED_HANDLER";var cw=r=>r.text("404 Not Found",404),wm=(r,e)=>{if("getResponse"in r){let t=r.getResponse();return e.newResponse(t.body,t)}return console.error(r),e.text("Internal Server Error",500)},bm=class vm{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#t="/";routes=[];constructor(e={}){[...xm,ym].forEach(a=>{this[a]=(i,...c)=>(typeof i=="string"?this.#t=i:this.#a(a,this.#t,i),c.forEach(d=>{this.#a(a,this.#t,d);}),this);}),this.on=(a,i,...c)=>{for(let d of [i].flat()){this.#t=d;for(let y of [a].flat())c.map(x=>{this.#a(y.toUpperCase(),this.#t,x);});}return this},this.use=(a,...i)=>(typeof a=="string"?this.#t=a:(this.#t="*",i.unshift(a)),i.forEach(c=>{this.#a(De,this.#t,c);}),this);let{strict:s,...n}=e;Object.assign(this,n),this.getPath=s??true?e.getPath??Tc:lm;}#e(){let e=new vm({router:this.router,getPath:this.getPath});return e.errorHandler=this.errorHandler,e.#r=this.#r,e.routes=this.routes,e}#r=cw;errorHandler=wm;route(e,t){let s=this.basePath(e);return t.routes.map(n=>{let a;t.errorHandler===wm?a=n.handler:(a=async(i,c)=>(await Cc([],t.errorHandler)(i,()=>n.handler(i,c))).res,a[_m]=n.handler),s.#a(n.method,n.path,a,n.basePath);}),this}basePath(e){let t=this.#e();return t._basePath=Xr(this._basePath,e),t}onError=e=>(this.errorHandler=e,this);notFound=e=>(this.#r=e,this);mount(e,t,s){let n,a;s&&(typeof s=="function"?a=s:(a=s.optionHandler,s.replaceRequest===false?n=d=>d:n=s.replaceRequest));let i=a?d=>{let y=a(d);return Array.isArray(y)?y:[y]}:d=>{let y;try{y=d.executionCtx;}catch{}return [d.env,y]};n||=(()=>{let d=Xr(this._basePath,e),y=d==="/"?0:d.length;return x=>{let _=new URL(x.url);return _.pathname=this.getPath(x).slice(y)||"/",new Request(_,x)}})();let c=async(d,y)=>{let x=await t(n(d.req.raw),...i(d));if(x)return x;await y();};return this.#a(De,Xr(e,"*"),c),this}#a(e,t,s,n){e=e.toUpperCase(),t=Xr(this._basePath,t);let a={basePath:n!==void 0?Xr(this._basePath,n):this._basePath,path:t,method:e,handler:s};this.router.add(e,t,[s,a]),this.routes.push(a);}#n(e,t){if(e instanceof Error)return this.errorHandler(e,t);throw e}#s(e,t,s,n){if(n==="HEAD")return (async()=>new Response(null,await this.#s(e,t,s,"GET")))();let a=this.getPath(e,{env:s}),i=this.router.match(n,a),c=new Ic(e,{path:a,matchResult:i,env:s,executionCtx:t,notFoundHandler:this.#r});if(i[0].length===1){let y;try{y=i[0][0][0][0](c,async()=>{c.res=await this.#r(c);});}catch(x){return this.#n(x,c)}return y instanceof Promise?y.then(x=>x||(c.finalized?c.res:this.#r(c))).catch(x=>this.#n(x,c)):y??this.#r(c)}let d=Cc(i[0],this.errorHandler,this.#r);return (async()=>{try{let y=await d(c);if(!y.finalized)throw new Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return y.res}catch(y){return this.#n(y,c)}})()}fetch=(e,...t)=>this.#s(e,t[1],t[0],e.method);request=(e,t,s,n)=>e instanceof Request?this.fetch(t?new Request(e,t):e,s,n):(e=e.toString(),this.fetch(new Request(/^https?:\/\//.test(e)?e:`http://localhost${Xr("/",e)}`,t),s,n));fire=()=>{addEventListener("fetch",e=>{e.respondWith(this.#s(e.request,e,void 0,e.request.method));});}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var fo=[];function Dc(r,e){let t=this.buildAllMatchers(),s=((n,a)=>{let i=t[n]||t[De],c=i[2][a];if(c)return c;let d=a.match(i[0]);if(!d)return [[],fo];let y=d.indexOf("",1);return [i[1][y],d]});return this.match=s,s(r,e)}chunkBUNLC3II_cjs.h();var ho="[^/]+",Qn=".*",Yn="(?:|/.*)",ds=Symbol(),uw=new Set(".\\+*[^]$()");function lw(r,e){return r.length===1?e.length===1?r<e?-1:1:-1:e.length===1||r===Qn||r===Yn?1:e===Qn||e===Yn?-1:r===ho?1:e===ho?-1:r.length===e.length?r<e?-1:1:e.length-r.length}var Sm=class Lc{#t;#e;#r=Object.create(null);insert(e,t,s,n,a){if(e.length===0){if(this.#t!==void 0)throw ds;if(a)return;this.#t=t;return}let[i,...c]=e,d=i==="*"?c.length===0?["","",Qn]:["","",ho]:i==="/*"?["","",Yn]:i.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),y;if(d){let x=d[1],_=d[2]||ho;if(x&&d[2]&&(_===".*"||(_=_.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(_))))throw ds;if(y=this.#r[_],!y){if(Object.keys(this.#r).some(I=>I!==Qn&&I!==Yn))throw ds;if(a)return;y=this.#r[_]=new Lc,x!==""&&(y.#e=n.varIndex++);}!a&&x!==""&&s.push([x,y.#e]);}else if(y=this.#r[i],!y){if(Object.keys(this.#r).some(x=>x.length>1&&x!==Qn&&x!==Yn))throw ds;if(a)return;y=this.#r[i]=new Lc;}y.insert(c,t,s,n,a);}buildRegExpStr(){let t=Object.keys(this.#r).sort(lw).map(s=>{let n=this.#r[s];return (typeof n.#e=="number"?`(${s})@${n.#e}`:uw.has(s)?`\\${s}`:s)+n.buildRegExpStr()});return typeof this.#t=="number"&&t.unshift(`#${this.#t}`),t.length===0?"":t.length===1?t[0]:"(?:"+t.join("|")+")"}};chunkBUNLC3II_cjs.h();var Am=class{#t={varIndex:0};#e=new Sm;insert(r,e,t){let s=[],n=[];for(let i=0;;){let c=false;if(r=r.replace(/\{[^}]+\}/g,d=>{let y=`@\\${i}`;return n[i]=[y,d],i++,c=true,y}),!c)break}let a=r.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let i=n.length-1;i>=0;i--){let[c]=n[i];for(let d=a.length-1;d>=0;d--)if(a[d].indexOf(c)!==-1){a[d]=a[d].replace(c,n[i][1]);break}}return this.#e.insert(a,e,s,this.#t,t),s}buildRegExp(){let r=this.#e.buildRegExpStr();if(r==="")return [/^$/,[],[]];let e=0,t=[],s=[];return r=r.replace(/#(\d+)|@(\d+)|\.\*\$/g,(n,a,i)=>a!==void 0?(t[++e]=Number(a),"$()"):(i!==void 0&&(s[Number(i)]=++e),"")),[new RegExp(`^${r}`),t,s]}};var dw=[/^$/,[],Object.create(null)],Rm=Object.create(null);function Cm(r){return Rm[r]??=new RegExp(r==="*"?"":`^${r.replace(/\/\*$|([.\\+*[^\]$()])/g,(e,t)=>t?`\\${t}`:"(?:|/.*)")}$`)}function pw(){Rm=Object.create(null);}function mw(r){let e=new Am,t=[];if(r.length===0)return dw;let s=r.map(y=>[!/\*|\/:/.test(y[0]),...y]).sort(([y,x],[_,I])=>y?1:_?-1:x.length-I.length),n=Object.create(null);for(let y=0,x=-1,_=s.length;y<_;y++){let[I,H,U]=s[y];I?n[H]=[U.map(([ce])=>[ce,Object.create(null)]),fo]:x++;let F;try{F=e.insert(H,x,I);}catch(ce){throw ce===ds?new mo(H):ce}I||(t[x]=U.map(([ce,re])=>{let Oe=Object.create(null);for(re-=1;re>=0;re--){let[W,bt]=F[re];Oe[W]=bt;}return [ce,Oe]}));}let[a,i,c]=e.buildRegExp();for(let y=0,x=t.length;y<x;y++)for(let _=0,I=t[y].length;_<I;_++){let H=t[y][_]?.[1];if(!H)continue;let U=Object.keys(H);for(let F=0,ce=U.length;F<ce;F++)H[U[F]]=c[H[U[F]]];}let d=[];for(let y in i)d[y]=t[i[y]];return [a,d,n]}function js(r,e){if(r){for(let t of Object.keys(r).sort((s,n)=>n.length-s.length))if(Cm(t).test(e))return [...r[t]]}}var go=class{name="RegExpRouter";#t;#e;constructor(){this.#t={[De]:Object.create(null)},this.#e={[De]:Object.create(null)};}add(r,e,t){let s=this.#t,n=this.#e;if(!s||!n)throw new Error(po);s[r]||[s,n].forEach(c=>{c[r]=Object.create(null),Object.keys(c[De]).forEach(d=>{c[r][d]=[...c[De][d]];});}),e==="/*"&&(e="*");let a=(e.match(/\/:/g)||[]).length;if(/\*$/.test(e)){let c=Cm(e);r===De?Object.keys(s).forEach(d=>{s[d][e]||=js(s[d],e)||js(s[De],e)||[];}):s[r][e]||=js(s[r],e)||js(s[De],e)||[],Object.keys(s).forEach(d=>{(r===De||r===d)&&Object.keys(s[d]).forEach(y=>{c.test(y)&&s[d][y].push([t,a]);});}),Object.keys(n).forEach(d=>{(r===De||r===d)&&Object.keys(n[d]).forEach(y=>c.test(y)&&n[d][y].push([t,a]));});return}let i=uo(e)||[e];for(let c=0,d=i.length;c<d;c++){let y=i[c];Object.keys(n).forEach(x=>{(r===De||r===x)&&(n[x][y]||=[...js(s[x],y)||js(s[De],y)||[]],n[x][y].push([t,a-d+c+1]));});}}match=Dc;buildAllMatchers(){let r=Object.create(null);return Object.keys(this.#e).concat(Object.keys(this.#t)).forEach(e=>{r[e]||=this.#r(e);}),this.#t=this.#e=void 0,pw(),r}#r(r){let e=[],t=r===De;return [this.#t,this.#e].forEach(s=>{let n=s[r]?Object.keys(s[r]).map(a=>[a,s[r][a]]):[];n.length!==0?(t||=true,e.push(...n)):r!==De&&e.push(...Object.keys(s[De]).map(a=>[a,s[De][a]]));}),t?mw(e):null}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var $c=class{name="SmartRouter";#t=[];#e=[];constructor(r){this.#t=r.routers;}add(r,e,t){if(!this.#e)throw new Error(po);this.#e.push([r,e,t]);}match(r,e){if(!this.#e)throw new Error("Fatal error");let t=this.#t,s=this.#e,n=t.length,a=0,i;for(;a<n;a++){let c=t[a];try{for(let d=0,y=s.length;d<y;d++)c.add(...s[d]);i=c.match(r,e);}catch(d){if(d instanceof mo)continue;throw d}this.match=c.match.bind(c),this.#t=[c],this.#e=void 0;break}if(a===n)throw new Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,i}get activeRouter(){if(this.#e||this.#t.length!==1)throw new Error("No active router has been determined yet.");return this.#t[0]}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var ea=Object.create(null),fw=r=>{for(let e in r)return true;return false},km=class Em{#t;#e;#r;#a=0;#n=ea;constructor(e,t,s){if(this.#e=s||Object.create(null),this.#t=[],e&&t){let n=Object.create(null);n[e]={handler:t,possibleKeys:[],score:0},this.#t=[n];}this.#r=[];}insert(e,t,s){this.#a=++this.#a;let n=this,a=cm(t),i=[];for(let c=0,d=a.length;c<d;c++){let y=a[c],x=a[c+1],_=um(y,x),I=Array.isArray(_)?_[0]:y;if(I in n.#e){n=n.#e[I],_&&i.push(_[1]);continue}n.#e[I]=new Em,_&&(n.#r.push(_),i.push(_[1])),n=n.#e[I];}return n.#t.push({[e]:{handler:s,possibleKeys:i.filter((c,d,y)=>y.indexOf(c)===d),score:this.#a}}),n}#s(e,t,s,n,a){for(let i=0,c=t.#t.length;i<c;i++){let d=t.#t[i],y=d[s]||d[De],x={};if(y!==void 0&&(y.params=Object.create(null),e.push(y),n!==ea||a&&a!==ea))for(let _=0,I=y.possibleKeys.length;_<I;_++){let H=y.possibleKeys[_],U=x[y.score];y.params[H]=a?.[H]&&!U?a[H]:n[H]??a?.[H],x[y.score]=true;}}}search(e,t){let s=[];this.#n=ea;let a=[this],i=Ec(t),c=[],d=i.length,y=null;for(let x=0;x<d;x++){let _=i[x],I=x===d-1,H=[];for(let F=0,ce=a.length;F<ce;F++){let re=a[F],Oe=re.#e[_];Oe&&(Oe.#n=re.#n,I?(Oe.#e["*"]&&this.#s(s,Oe.#e["*"],e,re.#n),this.#s(s,Oe,e,re.#n)):H.push(Oe));for(let W=0,bt=re.#r.length;W<bt;W++){let We=re.#r[W],q=re.#n===ea?{}:{...re.#n};if(We==="*"){let pr=re.#e["*"];pr&&(this.#s(s,pr,e,re.#n),pr.#n=q,H.push(pr));continue}let[It,ls,Pr]=We;if(!_&&!(Pr instanceof RegExp))continue;let Fe=re.#e[It];if(Pr instanceof RegExp){if(y===null){y=new Array(d);let er=t[0]==="/"?1:0;for(let Ae=0;Ae<d;Ae++)y[Ae]=er,er+=i[Ae].length+1;}let pr=t.substring(y[x]),mr=Pr.exec(pr);if(mr){if(q[ls]=mr[0],this.#s(s,Fe,e,re.#n,q),mr[0].length===pr.length&&Fe.#e["*"]&&this.#s(s,Fe.#e["*"],e,re.#n,q),fw(Fe.#e)){Fe.#n=q;let er=mr[0].match(/\//)?.length??0;(c[er]||=[]).push(Fe);}continue}}(Pr===true||Pr.test(_))&&(q[ls]=_,I?(this.#s(s,Fe,e,q,re.#n),Fe.#e["*"]&&this.#s(s,Fe.#e["*"],e,q,re.#n)):(Fe.#n=q,H.push(Fe)));}}let U=c.shift();a=U?H.concat(U):H;}return s.length>1&&s.sort((x,_)=>x.score-_.score),[s.map(({handler:x,params:_})=>[x,_])]}};var Bc=class{name="TrieRouter";#t;constructor(){this.#t=new km;}add(r,e,t){let s=uo(e);if(s){for(let n=0,a=s.length;n<a;n++)this.#t.insert(r,s[n],t);return}this.#t.insert(r,e,t);}match(r,e){return this.#t.search(r,e)}};var Nc=class extends bm{constructor(r={}){super(r),this.router=r.router??new $c({routers:[new go,new Bc]});}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var jc=r=>Uc(r.replace(/_|-/g,e=>({_:"/","-":"+"})[e]??e)),Mc=r=>hw(r).replace(/\/|\+/g,e=>({"/":"_","+":"-"})[e]??e),hw=r=>{let e="",t=new Uint8Array(r);for(let s=0,n=t.length;s<n;s++)e+=String.fromCharCode(t[s]);return btoa(e)},Uc=r=>{let e=atob(r),t=new Uint8Array(new ArrayBuffer(e.length)),s=e.length/2;for(let n=0,a=e.length-1;n<=s;n++,a--)t[n]=e.charCodeAt(n),t[a]=e.charCodeAt(a);return t};chunkBUNLC3II_cjs.h();var ps=(r=>(r.HS256="HS256",r.HS384="HS384",r.HS512="HS512",r.RS256="RS256",r.RS384="RS384",r.RS512="RS512",r.PS256="PS256",r.PS384="PS384",r.PS512="PS512",r.ES256="ES256",r.ES384="ES384",r.ES512="ES512",r.EdDSA="EdDSA",r))(ps||{});chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var gw={deno:"Deno",bun:"Bun",workerd:"Cloudflare-Workers",node:"Node.js"},Tm=()=>{let r=globalThis;if(typeof navigator<"u"&&typeof navigator.userAgent=="string"){for(let[t,s]of Object.entries(gw))if(yw(s))return t}return typeof r?.EdgeRuntime=="string"?"edge-light":r?.fastly!==void 0?"fastly":r?.process?.release?.name==="node"?"node":"other"},yw=r=>navigator.userAgent.startsWith(r);chunkBUNLC3II_cjs.h();var Om=class extends Error{constructor(r){super(`${r} is not an implemented algorithm`),this.name="JwtAlgorithmNotImplemented";}},qc=class extends Error{constructor(){super('JWT verification requires "alg" option to be specified'),this.name="JwtAlgorithmRequired";}},Fc=class extends Error{constructor(r,e){super(`JWT algorithm mismatch: expected "${r}", got "${e}"`),this.name="JwtAlgorithmMismatch";}},ms=class extends Error{constructor(r){super(`invalid JWT token: ${r}`),this.name="JwtTokenInvalid";}},Pm=class extends Error{constructor(r){super(`token (${r}) is being used before it's valid`),this.name="JwtTokenNotBefore";}},Im=class extends Error{constructor(r){super(`token (${r}) expired`),this.name="JwtTokenExpired";}},Dm=class extends Error{constructor(r,e){super(`Invalid "iat" claim, must be a valid number lower than "${r}" (iat: "${e}")`),this.name="JwtTokenIssuedAt";}},yo=class extends Error{constructor(r,e){super(`expected issuer "${r}", got ${e?`"${e}"`:"none"} `),this.name="JwtTokenIssuer";}},Hc=class extends Error{constructor(r){super(`jwt header is invalid: ${JSON.stringify(r)}`),this.name="JwtHeaderInvalid";}},Nm=class extends Error{constructor(r){super(`token(${r}) signature mismatched`),this.name="JwtTokenSignatureMismatched";}},jm=class extends Error{constructor(r){super(`required "aud" in jwt payload: ${JSON.stringify(r)}`),this.name="JwtPayloadRequiresAud";}},Mm=class extends Error{constructor(r,e){super(`expected audience "${Array.isArray(r)?r.join(", "):r}", got "${e}"`),this.name="JwtTokenAudience";}},Ms=(r=>(r.Encrypt="encrypt",r.Decrypt="decrypt",r.Sign="sign",r.Verify="verify",r.DeriveKey="deriveKey",r.DeriveBits="deriveBits",r.WrapKey="wrapKey",r.UnwrapKey="unwrapKey",r))(Ms||{});chunkBUNLC3II_cjs.h();var fs=new TextEncoder,Um=new TextDecoder;async function Fm(r,e,t){let s=Gm(e),n=await xw(r,s);return await crypto.subtle.sign(s,n,t)}async function Hm(r,e,t,s){let n=Gm(e),a=await _w(r,n);return await crypto.subtle.verify(n,a,t,s)}function Gc(r){return Uc(r.replace(/-+(BEGIN|END).*?-+/g,"").replace(/\s/g,""))}async function xw(r,e){if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(zm(r)){if(r.type!=="private"&&r.type!=="secret")throw new Error(`unexpected key type: CryptoKey.type is ${r.type}, expected private or secret`);return r}let t=[Ms.Sign];return typeof r=="object"?await crypto.subtle.importKey("jwk",r,e,false,t):r.includes("PRIVATE")?await crypto.subtle.importKey("pkcs8",Gc(r),e,false,t):await crypto.subtle.importKey("raw",fs.encode(r),e,false,t)}async function _w(r,e){if(!crypto.subtle||!crypto.subtle.importKey)throw new Error("`crypto.subtle.importKey` is undefined. JWT auth middleware requires it.");if(zm(r)){if(r.type==="public"||r.type==="secret")return r;r=await qm(r);}if(typeof r=="string"&&r.includes("PRIVATE")){let s=await crypto.subtle.importKey("pkcs8",Gc(r),e,true,[Ms.Sign]);r=await qm(s);}let t=[Ms.Verify];return typeof r=="object"?await crypto.subtle.importKey("jwk",r,e,false,t):r.includes("PUBLIC")?await crypto.subtle.importKey("spki",Gc(r),e,false,t):await crypto.subtle.importKey("raw",fs.encode(r),e,false,t)}async function qm(r){if(r.type!=="private")throw new Error(`unexpected key type: ${r.type}`);if(!r.extractable)throw new Error("unexpected private key is unextractable");let e=await crypto.subtle.exportKey("jwk",r),{kty:t}=e,{alg:s,e:n,n:a}=e,{crv:i,x:c,y:d}=e;return {kty:t,alg:s,e:n,n:a,crv:i,x:c,y:d,key_ops:[Ms.Verify]}}function Gm(r){switch(r){case "HS256":return {name:"HMAC",hash:{name:"SHA-256"}};case "HS384":return {name:"HMAC",hash:{name:"SHA-384"}};case "HS512":return {name:"HMAC",hash:{name:"SHA-512"}};case "RS256":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case "RS384":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case "RS512":return {name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case "PS256":return {name:"RSA-PSS",hash:{name:"SHA-256"},saltLength:32};case "PS384":return {name:"RSA-PSS",hash:{name:"SHA-384"},saltLength:48};case "PS512":return {name:"RSA-PSS",hash:{name:"SHA-512"},saltLength:64};case "ES256":return {name:"ECDSA",hash:{name:"SHA-256"},namedCurve:"P-256"};case "ES384":return {name:"ECDSA",hash:{name:"SHA-384"},namedCurve:"P-384"};case "ES512":return {name:"ECDSA",hash:{name:"SHA-512"},namedCurve:"P-521"};case "EdDSA":return {name:"Ed25519",namedCurve:"Ed25519"};default:throw new Om(r)}}function zm(r){return Tm()==="node"&&crypto.webcrypto?r instanceof crypto.webcrypto.CryptoKey:r instanceof CryptoKey}var zc=r=>Mc(fs.encode(JSON.stringify(r)).buffer).replace(/=/g,""),ww=r=>Mc(r).replace(/=/g,""),Kc=r=>JSON.parse(Um.decode(jc(r)));function Km(r){if(typeof r=="object"&&r!==null){let e=r;return "alg"in e&&Object.values(ps).includes(e.alg)&&(!("typ"in e)||e.typ==="JWT")}return false}var Vm=async(r,e,t="HS256")=>{let s=zc(r),n;typeof e=="object"&&"alg"in e?(t=e.alg,n=zc({alg:t,typ:"JWT",kid:e.kid})):n=zc({alg:t,typ:"JWT"});let a=`${n}.${s}`,i=await Fm(e,t,fs.encode(a)),c=ww(i);return `${a}.${c}`},Vc=async(r,e,t)=>{if(!t)throw new qc;let{alg:s,iss:n,nbf:a=true,exp:i=true,iat:c=true,aud:d}=typeof t=="string"?{alg:t}:t;if(!s)throw new qc;let y=r.split(".");if(y.length!==3)throw new ms(r);let{header:x,payload:_}=Wc(r);if(!Km(x))throw new Hc(x);if(x.alg!==s)throw new Fc(s,x.alg);let I=Math.floor(Date.now()/1e3);if(a&&_.nbf!==void 0&&(typeof _.nbf!="number"||!Number.isFinite(_.nbf)||_.nbf>I))throw new Pm(r);if(i&&_.exp!==void 0&&(typeof _.exp!="number"||!Number.isFinite(_.exp)||_.exp<=I))throw new Im(r);if(c&&_.iat!==void 0&&(typeof _.iat!="number"||!Number.isFinite(_.iat)||I<_.iat))throw new Dm(I,_.iat);if(n){if(!_.iss)throw new yo(n,null);if(typeof n=="string"&&_.iss!==n)throw new yo(n,_.iss);if(n instanceof RegExp&&!n.test(_.iss))throw new yo(n,_.iss)}if(d){if(!_.aud)throw new jm(_);if(!(Array.isArray(_.aud)?_.aud:[_.aud]).some(re=>d instanceof RegExp?d.test(re):typeof d=="string"?re===d:Array.isArray(d)&&d.includes(re)))throw new Mm(d,_.aud)}let H=r.substring(0,r.lastIndexOf("."));if(!await Hm(e,s,jc(y[2]),fs.encode(H)))throw new Nm(r);return _};[ps.HS256,ps.HS384,ps.HS512];var Wc=r=>{let e=r.split(".");if(e.length!==3)throw new ms(r);try{let t=Kc(e[0]),s=Kc(e[1]);return {header:t,payload:s}}catch{throw new ms(r)}};var ta={sign:Vm,verify:Vc};var xo=ta.verify,_o=ta.sign;chunkBUNLC3II_cjs.h();function hs(r,e){for(let t of r){if(t.name===e)return t;if(t.type==="group"||t.type==="array"){let s=hs(t.fields||[],e);if(s)return s}if(t.type==="blocks")for(let s of t.blocks||[]){let n=hs(s.fields||[],e);if(n)return n}if(t.type==="tabs")for(let s of t.tabs||[]){let n=hs(s.fields||[],e);if(n)return n}if(t.type==="collapsible"||t.type==="row"){let s=hs(t.fields||[],e);if(s)return s}}return null}function ra(r){return r.map(e=>`${e.path.join(".")}: ${e.message}`).join(", ")}function Jr(r,e){if(!(!r||typeof r!="object"))for(let t of e){if(t.type==="tabs"&&Array.isArray(t.tabs)){let n=t.name?r[t.name]:r;if(n&&typeof n=="object")for(let a of t.tabs)Array.isArray(a.fields)&&Jr(n,a.fields);continue}if(!t.name||!(t.name in r))continue;if(r[t.name]===""&&(t.type==="text"||t.type==="textarea"||t.type==="code"||t.type==="markdown"||(r[t.name]=null)),(t.type==="group"||t.type==="collapsible")&&t.name&&Array.isArray(t.fields)&&r[t.name]&&typeof r[t.name]=="object")Jr(r[t.name],t.fields);else if(t.type==="array"&&t.name&&Array.isArray(t.fields)&&Array.isArray(r[t.name]))for(let n of r[t.name])n&&typeof n=="object"&&Jr(n,t.fields);else if(t.type==="blocks"&&t.name&&Array.isArray(t.blocks)&&Array.isArray(r[t.name]))for(let n of r[t.name]){if(!n||typeof n!="object")continue;let a=n.type||n.blockType;if(!a)continue;let i=t.blocks.find(d=>d.slug===a);if(!i||!Array.isArray(i.fields))continue;let c=n.data&&typeof n.data=="object"?n.data:n;Jr(c,i.fields);}}}function Qr(r,e){if(!(!e||typeof e!="object"))for(let t of r){if(t.type==="tabs"&&Array.isArray(t.tabs)){let s=t.name?e[t.name]:e;if(s&&typeof s=="object")for(let n of t.tabs)Array.isArray(n.fields)&&Qr(n.fields,s);}if(t.type==="richtext"&&t.name){let s=e[t.name];typeof s=="string"?e[t.name]=[{type:"paragraph",children:[{text:s}]}]:s&&typeof s=="object"&&!Array.isArray(s)&&s.type==="doc"&&Array.isArray(s.content)&&(e[t.name]=s.content);}if((t.type==="group"||t.type==="collapsible")&&t.name&&Array.isArray(t.fields)&&e[t.name]&&typeof e[t.name]=="object")Qr(t.fields,e[t.name]);else if(t.type==="array"&&t.name&&Array.isArray(t.fields)&&Array.isArray(e[t.name]))for(let s of e[t.name])s&&typeof s=="object"&&Qr(t.fields,s);else if(t.type==="blocks"&&t.name&&Array.isArray(t.blocks)&&Array.isArray(e[t.name]))for(let s of e[t.name]){if(!s||typeof s!="object")continue;let n=s.type||s.blockType;if(!n)continue;let a=t.blocks.find(c=>c.slug===n);if(!a||!Array.isArray(a.fields))continue;let i=s.data&&typeof s.data=="object"?s.data:s;Qr(a.fields,i);}}}function Us(r,e){if(!(!e||typeof e!="object")){for(let t of r)if(!(!t.name||!(t.name in e))){if(t.unique&&(t.type==="text"||t.type==="email"?e[t.name]=`${e[t.name]||t.name}-copy-${Date.now().toString(36)}`:delete e[t.name]),t.type==="tabs"&&t.name&&Array.isArray(t.tabs)&&e[t.name]&&typeof e[t.name]=="object")for(let s of t.tabs)Array.isArray(s.fields)&&Us(s.fields,e[t.name]);else if((t.type==="group"||t.type==="collapsible")&&t.name&&Array.isArray(t.fields)&&e[t.name]&&typeof e[t.name]=="object")Us(t.fields,e[t.name]);else if(t.type==="array"&&t.name&&Array.isArray(t.fields)&&Array.isArray(e[t.name]))for(let s of e[t.name])s&&typeof s=="object"&&(delete s.id,Us(t.fields,s));else if(t.type==="blocks"&&t.name&&Array.isArray(t.blocks)&&Array.isArray(e[t.name]))for(let s of e[t.name]){if(!s||typeof s!="object")continue;delete s.id;let n=s.type||s.blockType;if(!n)continue;let a=t.blocks.find(c=>c.slug===n);if(!a||!Array.isArray(a.fields))continue;let i=s.data&&typeof s.data=="object"?s.data:s;Us(a.fields,i);}}}}chunkBUNLC3II_cjs.h();function Xm(r){let{db:t,userLookup:s}=r;return async function(a){let i=chunkDUO523BH_cjs.f(a);if(i&&t){let d=await chunkDUO523BH_cjs.e(i,t,s);if(d.valid&&d.user)return {user:d.user,tenantContext:Zm(d.user),apiKeyContext:chunkDUO523BH_cjs.g(d),status:200,authType:"apikey"};if(d.error)return {status:401,error:d.error}}let c=chunkO4YE57OS_cjs.h(a);if(c)try{let d=await chunkO4YE57OS_cjs.n(c);if(!d.valid)return {status:401,error:d.reason||"Session invalid"};let y=await chunkO4YE57OS_cjs.t(a);if(y){let x=s?await s(y.userId):null;if(x)return {user:x,tenantContext:Zm(x),status:200,authType:"session"}}}catch(d){console.error("Session validation error:",d);}return {status:401,error:"Authentication required"}}}function Zm(r){return {tenantId:r.tenantId||"default",userId:r.id||"anonymous",role:r.role||"guest",roles:[r.role||"guest"],permissions:[],isSuperAdmin:r.role==="super_admin"}}chunkBUNLC3II_cjs.h();var wo=class{storage=new Map;userStorage=new Map;limits;userLimits;constructor(e,t){this.limits={...Rw,...e},this.userLimits=t||{"user:api":{window:6e4,max:500},"user:write":{window:36e5,max:100}};}getKey(e,t){return `${e}:${t}`}getUserKey(e,t,s){return `user:${e}:${t}:${s}`}cleanupOldEntries(e,t){let n=Date.now()-t;for(;e.length>0&&e[0].timestamp<n;)e.shift();}async check(e,t){let s=this.limits[e]||this.limits["api:general"],n=this.getKey(e,t),a=this.storage.get(n);a||(a=[],this.storage.set(n,a)),this.cleanupOldEntries(a,s.window);let i=Date.now(),c=a.reduce((d,y)=>d+y.count,0);if(a.push({timestamp:i,count:1}),c>=s.max){let y=a.reduce((x,_)=>x.timestamp<_.timestamp?x:_,a[0]).timestamp+s.window;return {allowed:false,remaining:0,resetAt:y,retryAfter:Math.ceil((y-i)/1e3)}}return {allowed:true,remaining:s.max-c-1,resetAt:i+s.window}}async checkUser(e,t,s){let n=this.userLimits[e]||this.userLimits["user:api"],a=this.userStorage.get(t),i=[];a?i=a.get(this.getKey(e,s))||[]:(this.userStorage.has(t)||this.userStorage.set(t,new Map),this.userStorage.get(t).set(this.getKey(e,s),i)),this.cleanupOldEntries(i,n.window);let c=Date.now(),d=i.reduce((y,x)=>y+x.count,0);if(i.push({timestamp:c,count:1}),d>=n.max){let x=i.reduce((_,I)=>_.timestamp<I.timestamp?_:I,i[0]).timestamp+n.window;return {allowed:false,remaining:0,resetAt:x,retryAfter:Math.ceil((x-c)/1e3)}}return {allowed:true,remaining:n.max-d-1,resetAt:c+n.window}}async reset(e,t){let s=this.getKey(e,t);this.storage.delete(s);}async resetUser(e,t,s){let n=this.userStorage.get(t);if(n){let a=this.getKey(e,s);n.delete(a);}}async getStatus(e,t){let s=this.limits[e]||this.limits["api:general"],n=this.getKey(e,t),a=this.storage.get(n);a||(a=[],this.storage.set(n,a)),this.cleanupOldEntries(a,s.window);let i=Date.now(),c=a.reduce((d,y)=>d+y.count,0);return {count:c,limit:s.max,remaining:Math.max(0,s.max-c),resetAt:i+s.window}}setLimit(e,t){this.limits[e]=t;}setUserLimit(e,t){this.userLimits[e]=t;}},Rw={"auth:login":{window:9e5,max:5},"auth:register":{window:36e5,max:3},"auth:forgot":{window:36e5,max:3},"auth:reset":{window:36e5,max:5},"auth:verify":{window:36e5,max:5},"api:general":{window:6e4,max:100},"api:authenticated":{window:6e4,max:200}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Zc={retentionDays:30};var Jm=class{redis;prefix;retentionDays;constructor(e,t=30,s="kyro:audit:"){this.redis=e,this.prefix=s,this.retentionDays=t;}async log(e){let t=BB.randomBytes(16).toString("hex"),s=new Date,n={...e,id:t,timestamp:s},a=this.getKeyForDate(s),i=`${this.prefix}log:${t}`;await this.redis.hset(i,this.serializeLog(n)),await this.redis.expire(i,this.retentionDays*24*60*60+3600),await this.redis.zadd(a,s.getTime(),t),await this.redis.expire(a,this.retentionDays*24*60*60+3600);let c=e.userId?`${this.prefix}user:${e.userId}`:null;return c&&(await this.redis.zadd(c,s.getTime(),t),await this.redis.expire(c,this.retentionDays*24*60*60+3600)),t}async get(e){let t=`${this.prefix}log:${e}`,s=await this.redis.hgetall(t);return !s||Object.keys(s).length===0?null:this.deserializeLog(s)}async query(e={}){let{limit:t=50,offset:s=0}=e,n=[];if(e.userId)n.push(`${this.prefix}user:${e.userId}`);else if(e.startDate||e.endDate)n=this.getKeysForDateRange(e.startDate,e.endDate);else {let d=new Date;n=this.getKeysForDateRange(new Date(d.getTime()-this.retentionDays*24*60*60*1e3),d);}let a=[];for(let d of n){let y=await this.redis.zrange(d,0,-1,"WITHSCORES");for(let x=0;x<y.length;x+=2)a.push([y[x],parseInt(y[x+1],10)]);}a.sort((d,y)=>y[1]-d[1]);let i=a.length;a=a.slice(s,s+t);let c=[];for(let[d]of a){let y=await this.get(d);y&&this.matchesFilter(y,e)&&c.push(y);}return {logs:c,total:i}}async getRecent(e=50){let t=[],s=new Date,n=this.getKeysForDateRange(new Date(s.getTime()-10080*60*1e3),s),a=[];for(let i of n){let c=await this.redis.zrange(i,0,-1,"WITHSCORES");for(let d=0;d<c.length;d+=2)a.push([c[d],parseInt(c[d+1],10)]);}a.sort((i,c)=>c[1]-i[1]);for(let[i]of a.slice(0,e)){let c=await this.get(i);c&&t.push(c);}return t}async getUserActivity(e,t=50){let s=`${this.prefix}user:${e}`,n=await this.redis.zrange(s,0,t-1),a=[];for(let i of n){let c=await this.get(i);c&&a.push(c);}return a}async getStats(e,t){let s=this.getKeysForDateRange(e||new Date(Date.now()-2592e6),t||new Date),n={},a=0,i=0,c=0,d=new Set;for(let y of s){let x=await this.redis.zrange(y,0,-1);for(let _ of x){let I=await this.get(_);I&&(a++,n[I.action]=(n[I.action]||0)+1,I.success&&c++,I.action==="login_failed"&&i++,I.userId&&d.add(I.userId));}}return {totalEvents:a,byAction:n,successRate:a>0?c/a:1,failedLogins:i,uniqueUsers:d}}async cleanup(){let e=Date.now()-this.retentionDays*24*60*60*1e3,t=await this.redis.keys(`${this.prefix}date:*`),s=0;for(let n of t){let a=await this.redis.zrangebyscore(n,0,e);for(let i of a)await this.redis.del(`${this.prefix}log:${i}`),s++;await this.redis.zremrangebyscore(n,0,e);}return s}getKeyForDate(e){let t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return `${this.prefix}date:${t}-${s}-${n}`}getKeysForDateRange(e,t){let s=[],n=e||new Date(Date.now()-this.retentionDays*24*60*60*1e3),a=t||new Date,i=new Date(n);for(;i<=a;)s.push(this.getKeyForDate(i)),i.setDate(i.getDate()+1);return s}matchesFilter(e,t){return !(t.action&&!(Array.isArray(t.action)?t.action:[t.action]).includes(e.action)||t.resource&&e.resource!==t.resource||t.resourceId&&e.resourceId!==t.resourceId||t.success!==void 0&&e.success!==t.success)}serializeLog(e){let t={id:e.id,timestamp:new Date(e.timestamp).toISOString(),action:e.action,resource:e.resource,success:e.success?"1":"0"};return e.userId&&(t.userId=e.userId),e.userEmail&&(t.userEmail=e.userEmail),e.role&&(t.role=e.role),e.resourceId&&(t.resourceId=e.resourceId),e.ipAddress&&(t.ipAddress=e.ipAddress),e.userAgent&&(t.userAgent=e.userAgent),e.error&&(t.error=e.error),e.changes&&(t.changes=JSON.stringify(e.changes)),e.metadata&&(t.metadata=JSON.stringify(e.metadata)),t}deserializeLog(e){return {id:e.id,timestamp:new Date(e.timestamp),action:e.action,userId:e.userId,userEmail:e.userEmail,role:e.role,resource:e.resource,resourceId:e.resourceId,ipAddress:e.ipAddress,userAgent:e.userAgent,success:e.success==="1",error:e.error,changes:e.changes?JSON.parse(e.changes):void 0,metadata:e.metadata?JSON.parse(e.metadata):void 0}}};function oU(r){return {ipAddress:r.headers.get("x-forwarded-for")?.split(",")[0]?.trim()||r.headers.get("x-real-ip")||"unknown",userAgent:r.headers.get("user-agent")||"unknown"}}var Qm=class{logs=[];retentionDays;constructor(e=Zc.retentionDays){this.retentionDays=e;}async log(e){let t=BB.randomBytes(16).toString("hex"),n={...e,id:t,timestamp:new Date};return this.logs.push(n),this.cleanupOldLogs(),t}async get(e){return this.logs.find(t=>t.id===e)||null}async query(e={}){let{limit:t=50,offset:s=0}=e,n=[...this.logs];if(e.userId&&(n=n.filter(y=>y.userId===e.userId)),e.action){let y=Array.isArray(e.action)?e.action:[e.action];n=n.filter(x=>y.includes(x.action));}e.resource&&(n=n.filter(y=>y.resource===e.resource)),e.resourceId&&(n=n.filter(y=>y.resourceId===e.resourceId)),e.success!==void 0&&(n=n.filter(y=>y.success===e.success));let a=e.startDate,i=e.endDate;a!==void 0&&(n=n.filter(y=>y.timestamp>=a)),i!==void 0&&(n=n.filter(y=>y.timestamp<=i)),n.sort((y,x)=>x.timestamp.getTime()-y.timestamp.getTime());let c=n.length;return {logs:n.slice(s,s+t),total:c}}async getRecent(e=50){let t=new Date(Date.now()-6048e5);return this.logs.filter(n=>n.timestamp>=t).sort((n,a)=>a.timestamp.getTime()-n.timestamp.getTime()).slice(0,e)}async getUserActivity(e,t=50){return this.logs.filter(n=>n.userId===e).sort((n,a)=>a.timestamp.getTime()-n.timestamp.getTime()).slice(0,t)}async getStats(e,t){let s=e||new Date(Date.now()-2592e6),n=t||new Date,a=this.logs.filter(_=>_.timestamp>=s&&_.timestamp<=n),i={},c=0,d=0,y=0,x=new Set;for(let _ of a){c++;let I=_.action;i[I]=(i[I]||0)+1,_.success&&y++,_.action==="login_failed"&&d++,_.userId&&x.add(_.userId);}return {totalEvents:c,byAction:i,successRate:c>0?y/c:1,failedLogins:d,uniqueUsers:x}}async cleanup(){let e=new Date(Date.now()-this.retentionDays*24*60*60*1e3),t=this.logs.length;return this.logs=this.logs.filter(s=>s.timestamp>=e),t-this.logs.length}cleanupOldLogs(){let e=new Date(Date.now()-this.retentionDays*24*60*60*1e3);this.logs.length;this.logs=this.logs.filter(s=>s.timestamp>=e);}};var vo=class{authAdapter;email;passwordPolicy;lockout;rateLimiter;auditLogger;baseUrl;emailVerificationRequired;constructor(e){this.authAdapter=e.redis,this.email=e.email,this.passwordPolicy=e.passwordPolicy||new chunkYUER4JU3_cjs.l,this.lockout=e.lockout,this.rateLimiter=e.rateLimiter,this.auditLogger=e.auditLogger,this.baseUrl=e.baseUrl||"http://localhost:4321",this.emailVerificationRequired=e.emailVerificationRequired??true;}getBaseUrl(e){if(e)try{let t=e.headers.get("x-forwarded-proto")||(e.url.startsWith("https")?"https":"http"),s=e.headers.get("x-forwarded-host")||e.headers.get("host");return s?`${t}://${s}`:new URL(e.url).origin}catch{}return process.env.KYRO_BASE_URL||process.env.SERVER_URL||process.env.PUBLIC_URL||process.env.SITE_URL||this.baseUrl||"http://localhost:4321"}async register(e){let{ipAddress:t,userAgent:s}=chunkMVX2PYJJ_cjs.a(e);if(this.rateLimiter){let n=await this.rateLimiter.check("auth:register",t);if(!n.allowed)return this.rateLimitResponse(n)}try{let n=await e.json();if(!n.email||!n.password)return this.errorResponse("Email and password are required",400);if(n.password!==n.confirmPassword)return this.errorResponse("Passwords do not match",400);let a=this.passwordPolicy.validate(n.password);if(!a.valid)return this.errorResponse(a.errors.join(". "),400);let i=await this.authAdapter.findUserByEmail(n.email);if(i){if(!i.emailVerified&&this.emailVerificationRequired&&this.email){let y=(await this.authAdapter.createEmailVerificationToken?.(i.id))?.token||BB.randomBytes(32).toString("hex"),_=`${this.getBaseUrl(e)}/admin/auth/verify-email?token=${y}`,I=this.email.getTemplates().verifyEmail(_,n.email);return await this.email.send({to:n.email,...I}),this.jsonResponse({success:!0,message:"An unverified account already exists with this email. We have resent the confirmation link to your inbox.",requiresVerification:!0},200)}return this.errorResponse("Email already registered",400)}let c=await this.authAdapter.createUser({email:n.email,password:n.password,role:n.role||"customer",tenantId:n.tenantId});if(this.emailVerificationRequired&&this.email){let d=BB.randomBytes(32).toString("hex"),x=`${this.getBaseUrl(e)}/admin/auth/verify-email?token=${d}`;await this.authAdapter.createSession(c.id,{ipAddress:t,userAgent:s});let _=this.email.getTemplates().verifyEmail(x,n.email);await this.email.send({to:n.email,..._});}return this.auditLogger&&await this.auditLogger.log({action:"register",userId:c.id,userEmail:c.email,resource:"auth",ipAddress:t,userAgent:s,success:!0}),this.jsonResponse({success:!0,message:"Registration successful",user:this.sanitizeUser(c),requiresVerification:this.emailVerificationRequired&&!!this.email},201)}catch(n){return console.error("[AuthRoutes.register] Registration error:",n),this.errorResponse("Registration failed",500)}}async login(e){let{ipAddress:t,userAgent:s}=chunkMVX2PYJJ_cjs.a(e);if(this.rateLimiter){let n=await this.rateLimiter.check("auth:login",t);if(!n.allowed)return this.rateLimitResponse(n)}try{let n=await e.json();if(!n.email||!n.password)return this.errorResponse("Email and password are required",400);let a=await this.authAdapter.findUserByEmail(n.email);if(!a)return await this.recordFailedLogin(t,s),this.errorResponse("Invalid credentials",401);if(a.locked)return this.auditLogger&&await this.auditLogger.log({action:"login_failed",userId:a.id,userEmail:a.email,resource:"auth",ipAddress:t,userAgent:s,success:!1,error:"Account locked"}),this.errorResponse("Account locked. Contact an administrator.",403);if(this.lockout){let x=await this.lockout.checkLockout(a.id);if(x.locked)return this.auditLogger&&await this.auditLogger.log({action:"login_failed",userId:a.id,userEmail:a.email,resource:"auth",ipAddress:t,userAgent:s,success:!1,error:"Account locked"}),this.errorResponse(`Account locked. Try again in ${Math.ceil((x.lockedUntil.getTime()-Date.now())/6e4)} minutes`,423)}let i=await this.authAdapter.verifyPassword(n.email,n.password);if(!i)return await this.recordFailedLogin(t,s,a.id,a.email),this.errorResponse("Invalid credentials",401);if(this.emailVerificationRequired&&i.emailVerified===!1){if(this.email){let _=(await this.authAdapter.createEmailVerificationToken?.(i.id))?.token||BB.randomBytes(32).toString("hex"),H=`${this.getBaseUrl(e)}/admin/auth/verify-email?token=${_}`,U=this.email.getTemplates().verifyEmail(H,i.email);await this.email.send({to:i.email,...U});}return this.errorResponse("Your email address is not verified yet. We have sent a new confirmation link to your email inbox.",403)}this.lockout&&await this.lockout.resetAttempts(a.id),this.auditLogger&&await this.auditLogger.log({action:"login",userId:a.id,userEmail:a.email,role:a.role,resource:"auth",ipAddress:t,userAgent:s,success:!0}),await this.authAdapter.updateUser(a.id,{lastLogin:new Date().toISOString()});let c=await chunkO4YE57OS_cjs.l({id:a.id,email:a.email,role:a.role,tenantId:a.tenantId}),d={success:!0,user:this.sanitizeUser(a)},y=this.jsonResponse(d);return chunkO4YE57OS_cjs.j(y,c)}catch(n){return console.error("[Auth] Login error:",n),this.errorResponse("Login failed",500)}}async logout(e){let t=chunkO4YE57OS_cjs.h(e);if(!t)return this.errorResponse("No session to logout",401);let{ipAddress:s,userAgent:n}=chunkMVX2PYJJ_cjs.a(e);try{let a=await chunkO4YE57OS_cjs.t(e);a&&(await chunkO4YE57OS_cjs.p(t),this.auditLogger&&await this.auditLogger.log({action:"logout",userId:a.userId,userEmail:a.email,resource:"auth",ipAddress:s,userAgent:n,success:!0}));let i=this.jsonResponse({success:!0,message:"Logged out successfully"});return chunkO4YE57OS_cjs.k(i)}catch{return this.errorResponse("Logout failed",500)}}async refresh(e){try{let t=chunkO4YE57OS_cjs.h(e);if(!t)return this.errorResponse("Not authenticated",401);let s=await chunkO4YE57OS_cjs.o(t,e);return s?this.jsonResponse({success:!0,expiresAt:s.expiresAt}):this.errorResponse("Session not found",404)}catch(t){return console.error("[Auth] Session refresh error:",t),this.errorResponse("Session refresh failed",500)}}async me(e){let t=await chunkO4YE57OS_cjs.t(e);return t?this.jsonResponse({success:true,user:{id:t.userId,email:t.email,role:t.role,tenantId:t.tenantId}}):this.errorResponse("Not authenticated",401)}async changePassword(e){let t=await chunkO4YE57OS_cjs.t(e);if(!t)return this.errorResponse("Not authenticated",401);let{ipAddress:s,userAgent:n}=chunkMVX2PYJJ_cjs.a(e);try{let a=await e.json(),{currentPassword:i,newPassword:c,confirmPassword:d}=a;if(!i||!c)return this.errorResponse("Current and new password required",400);if(c!==d)return this.errorResponse("Passwords do not match",400);let y=this.passwordPolicy.validate(c);if(!y.valid)return this.errorResponse(y.errors.join(". "),400);let x=await this.authAdapter.findUserById(t.userId);if(!x)return this.errorResponse("User not found",404);if(!(x.passwordHash?await this.authAdapter.verifyPassword(i,x.passwordHash):!1))return this.errorResponse("Current password is incorrect",401);let I=await this.authAdapter.getPasswordHistory?.(x.id,5);if(await this.authAdapter.isPasswordInHistory?.(c,x.id,5))return this.errorResponse("Password was recently used. Please choose a different password",400);let U=await this.authAdapter.hashPassword(c);if(x.passwordHash&&await this.authAdapter.addPasswordToHistory?.(x.id,x.passwordHash),await this.authAdapter.updateUser(x.id,{passwordHash:U}),await this.authAdapter.deleteUserSessions(x.id),this.email&&this.email.getTemplates){let F=this.email.getTemplates().passwordChanged(x.email);await this.email.send({to:x.email,...F});}return this.auditLogger&&await this.auditLogger.log({action:"password_change",userId:x.id,userEmail:x.email,resource:"auth",ipAddress:s,userAgent:n,success:!0}),this.jsonResponse({success:!0,message:"Password changed successfully"})}catch{return this.errorResponse("Password change failed",500)}}async forgotPassword(e){let{ipAddress:t,userAgent:s}=chunkMVX2PYJJ_cjs.a(e);if(this.rateLimiter){let n=await this.rateLimiter.check("auth:forgot",t);if(!n.allowed)return this.rateLimitResponse(n)}try{let n=await e.json(),{email:a}=n;if(!a)return this.errorResponse("Email required",400);let i=await this.authAdapter.findUserByEmail(a);if(!i)return this.jsonResponse({success:!0,message:"If the email exists, a reset link has been sent"});if(this.email){let c=BB.randomBytes(32).toString("hex");if(this.authAdapter.createPasswordResetToken){let _=await this.authAdapter.createPasswordResetToken(i.email);_.token&&(c=_.token);}let y=`${this.getBaseUrl(e)}/admin/auth/reset-password?token=${c}`,x=this.email.getTemplates().resetPassword(y,i.email);await this.email.send({to:i.email,...x});}return this.auditLogger&&await this.auditLogger.log({action:"password_reset",userId:i.id,userEmail:i.email,resource:"auth",ipAddress:t,userAgent:s,success:!0}),this.jsonResponse({success:!0,message:"If the email exists, a reset link has been sent"})}catch{return this.errorResponse("Password reset request failed",500)}}async resetPassword(e){let{ipAddress:t,userAgent:s}=chunkMVX2PYJJ_cjs.a(e);if(this.rateLimiter){let n=await this.rateLimiter.check("auth:reset",t);if(!n.allowed)return this.rateLimitResponse(n)}try{let n=await e.json(),{token:a,newPassword:i,confirmPassword:c}=n;if(!a||!i)return this.errorResponse("Reset token and new password are required",400);if(i!==c)return this.errorResponse("Passwords do not match",400);let d=this.passwordPolicy.validate(i);if(!d.valid)return this.errorResponse(d.errors.join(". "),400);if(this.authAdapter.resetPasswordWithToken){let y=await this.authAdapter.resetPasswordWithToken(a,i);if(!y.success)return this.errorResponse(y.error||"Password reset failed or token expired",400)}return this.jsonResponse({success:!0,message:"Password reset successful. You can now log in with your new password."})}catch(n){return console.error("[AuthRoutes.resetPassword] Error:",n),this.errorResponse("Password reset failed",500)}}async verifyEmail(e){let s=new URL(e.url).searchParams.get("token");if(!s)return this.errorResponse("Verification token required",400);try{if(this.authAdapter.verifyEmailToken){let n=await this.authAdapter.verifyEmailToken(s);if(!n.success)return this.errorResponse(n.error||"Invalid or expired verification token",400);if(n.userId&&this.email){let a=await this.authAdapter.findUserById(n.userId);if(a){let i=this.email.getTemplates().welcome(a.email);await this.email.send({to:a.email,...i});}}}return this.jsonResponse({success:!0,message:"Email address verified successfully"})}catch(n){return console.error("[AuthRoutes.verifyEmail] Error:",n),this.errorResponse("Email verification failed",500)}}async recordFailedLogin(e,t,s,n){this.lockout&&await this.lockout.recordFailedAttempt(s||e),this.auditLogger&&await this.auditLogger.log({action:"login_failed",userId:s,userEmail:n,resource:"auth",ipAddress:e,userAgent:t,success:false,error:"Invalid credentials"});}sanitizeUser(e){let{passwordHash:t,...s}=e;return s}jsonResponse(e,t=200){return new Response(JSON.stringify(e),{status:t,headers:{"Content-Type":"application/json","Cache-Control":"no-store, no-cache, must-revalidate, max-age=0"}})}async listSessions(e){let t=await chunkO4YE57OS_cjs.t(e);if(!t)return this.errorResponse("Not authenticated",401);try{let s=await chunkO4YE57OS_cjs.r(t.userId,chunkO4YE57OS_cjs.h(e)??void 0);return this.jsonResponse({sessions:s})}catch(s){return console.error("[AuthRoutes.listSessions] Error:",s),this.errorResponse("Failed to list sessions",500)}}async revokeSession(e,t){let s=await chunkO4YE57OS_cjs.t(e);if(!s)return this.errorResponse("Not authenticated",401);try{let a=(await chunkO4YE57OS_cjs.r(s.userId)).find(i=>i.id===t);return a?a.currentSession?this.errorResponse("Cannot revoke current session",400):(await chunkO4YE57OS_cjs.p(t),this.jsonResponse({success:!0,message:"Session revoked"})):this.errorResponse("Session not found",404)}catch(n){return console.error("[AuthRoutes.revokeSession] Error:",n),this.errorResponse("Failed to revoke session",500)}}async revokeOtherSessions(e){let t=await chunkO4YE57OS_cjs.t(e);if(!t)return this.errorResponse("Not authenticated",401);try{let s=await chunkO4YE57OS_cjs.r(t.userId),n=chunkO4YE57OS_cjs.h(e);for(let a of s)a.currentSession||await chunkO4YE57OS_cjs.p(a.id);return this.jsonResponse({success:!0,message:"Other sessions revoked"})}catch(s){return console.error("[AuthRoutes.revokeOtherSessions] Error:",s),this.errorResponse("Failed to revoke sessions",500)}}async renameSession(e,t){let s=await chunkO4YE57OS_cjs.t(e);if(!s)return this.errorResponse("Not authenticated",401);try{if(!(await chunkO4YE57OS_cjs.r(s.userId)).find(d=>d.id===t))return this.errorResponse("Session not found",404);let i=await e.json(),{name:c}=i;return !c||typeof c!="string"||c.trim().length===0?this.errorResponse("Invalid session name",400):(await chunkO4YE57OS_cjs.s(t,c.trim()),this.jsonResponse({success:!0,message:"Session renamed"}))}catch(n){return console.error("[AuthRoutes.renameSession] Error:",n),this.errorResponse("Failed to rename session",500)}}async refreshSession(e){let t=chunkO4YE57OS_cjs.h(e);if(!t)return this.errorResponse("No session",401);try{let{refreshSession:s}=await import('./auth-session-DHVGXHOH.cjs'),n=await s(t,e);return n?this.jsonResponse({success:!0,expiresAt:n.expiresAt}):this.errorResponse("Session not found",404)}catch(s){return console.error("[AuthRoutes.refreshSession] Error:",s),this.errorResponse("Failed to refresh session",500)}}errorResponse(e,t){return new Response(JSON.stringify({success:false,error:e}),{status:t,headers:{"Content-Type":"application/json"}})}async rateLimitResponse(e){return new Response(JSON.stringify({success:false,error:"Too many requests",retryAfter:e.retryAfter}),{status:429,headers:{"Content-Type":"application/json","Retry-After":String(e.retryAfter||60)}})}};chunkBUNLC3II_cjs.h();var Xc=chunkBUNLC3II_cjs.e(chunkHTYVI2HK_cjs.a(),1);var So=class{db;sessionTTL;constructor(e){this.db=e.db?.client||e.db,this.sessionTTL=e.sessionTTL||86400;}async executeSql(e,t=[]){try{if(this.db&&typeof this.db.prepare=="function"){let s=this.db.prepare(e);return (await(t.length>0?s.bind(...t):s).all()).results||[]}else if(this.db&&typeof this.db.run=="function"){let s=await this.db.run(chunkVRZC4TTF_cjs.J.raw(this.replaceParams(e,t)));return s.rows||s.results||(Array.isArray(s)?s:[])}else if(this.db&&typeof this.db.all=="function"){let s=await this.db.all(chunkVRZC4TTF_cjs.J.raw(this.replaceParams(e,t)));return Array.isArray(s)?s:s.results||[]}else if(this.db&&typeof this.db.execute=="function"){let s=await this.db.execute(chunkVRZC4TTF_cjs.J.raw(this.replaceParams(e,t)));return s.rows||s.results||(Array.isArray(s)?s:[])}}catch(s){console.warn("[D1AuthAdapter] SQL execution note:",s.message);}return []}async getOne(e,t=[]){try{if(this.db&&typeof this.db.prepare=="function"){let n=this.db.prepare(e);return await(t.length>0?n.bind(...t):n).first()||null}}catch{}let s=await this.executeSql(e,t);return s.length>0?s[0]:null}replaceParams(e,t){let s=0;return e.replace(/\?/g,()=>{let n=t[s++];return n==null?"NULL":typeof n=="number"||typeof n=="boolean"?String(n):`'${String(n).replace(/'/g,"''")}'`})}async connect(){await this.executeSql(`
|
|
2
|
+
CREATE TABLE IF NOT EXISTS users (
|
|
3
|
+
id TEXT PRIMARY KEY,
|
|
4
|
+
email TEXT UNIQUE NOT NULL,
|
|
5
|
+
password_hash TEXT,
|
|
6
|
+
name TEXT,
|
|
7
|
+
role TEXT DEFAULT 'customer',
|
|
8
|
+
avatar TEXT,
|
|
9
|
+
tenant_id TEXT,
|
|
10
|
+
email_verified INTEGER DEFAULT 1,
|
|
11
|
+
locked INTEGER DEFAULT 0,
|
|
12
|
+
last_login TEXT,
|
|
13
|
+
failed_login_attempts INTEGER DEFAULT 0,
|
|
14
|
+
metadata TEXT,
|
|
15
|
+
created_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
|
16
|
+
updated_at TEXT DEFAULT CURRENT_TIMESTAMP
|
|
17
|
+
);
|
|
18
|
+
`),await this.executeSql(`
|
|
19
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
20
|
+
id TEXT PRIMARY KEY,
|
|
21
|
+
user_id TEXT NOT NULL,
|
|
22
|
+
token TEXT UNIQUE NOT NULL,
|
|
23
|
+
refresh_token TEXT,
|
|
24
|
+
ip_address TEXT,
|
|
25
|
+
user_agent TEXT,
|
|
26
|
+
expires_at TEXT NOT NULL,
|
|
27
|
+
created_at TEXT DEFAULT CURRENT_TIMESTAMP
|
|
28
|
+
);
|
|
29
|
+
`),await this.executeSql(`
|
|
30
|
+
CREATE TABLE IF NOT EXISTS audit_logs (
|
|
31
|
+
id TEXT PRIMARY KEY,
|
|
32
|
+
action TEXT NOT NULL,
|
|
33
|
+
user_id TEXT,
|
|
34
|
+
user_email TEXT,
|
|
35
|
+
role TEXT,
|
|
36
|
+
resource TEXT NOT NULL,
|
|
37
|
+
details TEXT,
|
|
38
|
+
ip_address TEXT,
|
|
39
|
+
status TEXT,
|
|
40
|
+
timestamp TEXT DEFAULT CURRENT_TIMESTAMP
|
|
41
|
+
);
|
|
42
|
+
`);}async hashPassword(e){return Xc.default.hashSync(e,10)}async verifyPassword(e,t){let s=await this.findUserByEmail(e);return !s||!s.passwordHash?null:Xc.default.compareSync(t,s.passwordHash)?s:null}async findUserByEmail(e){let t=await this.getOne("SELECT * FROM users WHERE LOWER(email) = LOWER(?) LIMIT 1",[e]);return t?this.mapUser(t):null}async findUserById(e){let t=await this.getOne("SELECT * FROM users WHERE id = ? LIMIT 1",[e]);return t?this.mapUser(t):null}async createUser(e){let t=`user-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,s=await this.hashPassword(e.password),n=e.email.toLowerCase(),a=e.role||"customer",i=new Date().toISOString();await this.executeSql("INSERT INTO users (id, email, password_hash, name, role, avatar, tenant_id, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",[t,n,s,e.name||null,a,e.avatar||null,e.tenantId||null,i,i]);let c=await this.findUserById(t);if(!c)throw new Error("Failed to create user in D1");return c}async updateUser(e,t){if(!await this.findUserById(e))return null;let n=["updated_at = ?"],a=[new Date().toISOString()];return t.email&&(n.push("email = ?"),a.push(t.email.toLowerCase())),t.name!==void 0&&(n.push("name = ?"),a.push(t.name)),t.password&&(n.push("password_hash = ?"),a.push(await this.hashPassword(t.password))),t.passwordHash&&(n.push("password_hash = ?"),a.push(t.passwordHash)),t.role&&(n.push("role = ?"),a.push(t.role)),t.avatar!==void 0&&(n.push("avatar = ?"),a.push(t.avatar)),t.tenantId!==void 0&&(n.push("tenant_id = ?"),a.push(t.tenantId)),a.push(e),await this.executeSql(`UPDATE users SET ${n.join(", ")} WHERE id = ?`,a),this.findUserById(e)}async deleteUser(e){return await this.executeSql("DELETE FROM users WHERE id = ?",[e]),true}async createSession(e,t){let s=`sess-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,n=`token-${Date.now()}-${Math.random().toString(36).substring(2,16)}`,a=new Date(Date.now()+this.sessionTTL*1e3).toISOString(),i=new Date().toISOString();return await this.executeSql("INSERT INTO sessions (id, user_id, token, expires_at, created_at, ip_address, user_agent) VALUES (?, ?, ?, ?, ?, ?, ?)",[s,e,n,a,i,t?.ipAddress||null,t?.userAgent||null]),{id:s,userId:e,token:n,expiresAt:a,createdAt:i,ipAddress:t?.ipAddress,userAgent:t?.userAgent}}async findSessionByToken(e){let t=await this.getOne("SELECT * FROM sessions WHERE token = ? LIMIT 1",[e]);return t?{id:t.id,userId:t.user_id||t.userId,token:t.token,expiresAt:t.expires_at||t.expiresAt,createdAt:t.created_at||t.createdAt,ipAddress:t.ip_address||t.ipAddress,userAgent:t.user_agent||t.userAgent}:null}async findSessionByRefreshToken(e){let t=await this.getOne("SELECT * FROM sessions WHERE refresh_token = ? LIMIT 1",[e]);return t?{id:t.id,userId:t.user_id||t.userId,token:t.token,refreshToken:t.refresh_token,expiresAt:t.expires_at||t.expiresAt,createdAt:t.created_at||t.createdAt}:null}async deleteSession(e){return await this.executeSql("DELETE FROM sessions WHERE id = ?",[e]),true}async deleteUserSessions(e){return await this.executeSql("DELETE FROM sessions WHERE user_id = ?",[e]),1}async hasAnyUsers(){return ((await this.getOne("SELECT COUNT(*) as count FROM users"))?.count||0)>0}async createEmailVerificationToken(e){return {token:`verify-${Date.now()}`,expiresAt:new Date(Date.now()+864e5)}}async verifyEmailToken(e){return {success:true}}async createPasswordResetToken(e){return {token:`reset-${Date.now()}`,expiresAt:new Date(Date.now()+36e5)}}async resetPasswordWithToken(e,t){return {success:true}}async findAuditLogs(e){let s=(await this.executeSql("SELECT * FROM audit_logs ORDER BY timestamp DESC LIMIT ?",[e.limit||50])).map(n=>({id:n.id,action:n.action,userId:n.user_id||n.userId,userEmail:n.user_email||n.userEmail,role:n.role,resource:n.resource,resourceId:n.resource_id||n.resourceId,ipAddress:n.ip_address||n.ipAddress,userAgent:n.user_agent||n.userAgent,success:!!(n.success??true),error:n.error||void 0,metadata:n.details?JSON.parse(n.details):void 0,timestamp:new Date(n.timestamp||Date.now())}));return {logs:s,total:s.length}}async createAuditLog(e){let t=`audit-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,s=new Date;return await this.executeSql("INSERT INTO audit_logs (id, action, user_id, user_email, role, resource, details, ip_address, status, timestamp) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[t,e.action,e.userId||null,e.userEmail||null,e.role||null,e.resource,e.metadata?JSON.stringify(e.metadata):null,e.ipAddress||null,e.success?"success":"failed",s.toISOString()]),{id:t,timestamp:s,...e}}mapUser(e){return {id:e.id,email:e.email,name:e.name||void 0,passwordHash:e.password_hash||e.passwordHash||void 0,role:e.role,avatar:e.avatar||void 0,tenantId:e.tenant_id||e.tenantId||void 0,emailVerified:!!(e.email_verified||e.emailVerified),locked:!!e.locked,lastLogin:e.last_login||e.lastLogin||void 0,failedLoginAttempts:Number(e.failed_login_attempts||e.failedLoginAttempts||0),createdAt:e.created_at||e.createdAt||new Date().toISOString(),updatedAt:e.updated_at||e.updatedAt||new Date().toISOString()}}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();function gs(r){let{uploadDir:e=Co.join(Lw__default.default.cwd(),"public","uploads"),baseUrl:t="/uploads"}=r;async function s(i){fs$1.existsSync(i)||await promises.mkdir(i,{recursive:true});}function n(i){let c=Co.extname(i).toLowerCase();return {".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".gif":"image/gif",".webp":"image/webp",".avif":"image/avif",".svg":"image/svg+xml",".mp4":"video/mp4",".webm":"video/webm",".mov":"video/quicktime",".avi":"video/x-msvideo",".mp3":"audio/mpeg",".wav":"audio/wav",".ogg":"audio/ogg",".pdf":"application/pdf",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".zip":"application/zip",".tar":"application/x-tar",".gz":"application/gzip",".rar":"application/vnd.rar",".7z":"application/x-7z-compressed"}[c]||"application/octet-stream"}async function a(i){try{let c=i.toString("hex",0,8);if(c.startsWith("89504e47")){let d=i.readUInt32BE(16),y=i.readUInt32BE(20);return {width:d,height:y}}if(c.startsWith("ffd8")){let d=2;for(;d<i.length&&i[d]===255;){let y=i[d+1];if(y===192||y===194){let x=i.readUInt16BE(d+5);return {width:i.readUInt16BE(d+7),height:x}}d+=2+i.readUInt16BE(d+2);}}}catch{}return {}}return Dr({name:"local",displayName:"Local Storage",supportsDynamicResize:true,async upload(i,c){await s(e);let d=Buffer.from(await i.arrayBuffer()),y=BB.createHash("md5").update(d).digest("hex"),x=Co.extname(i.name),_=c?.filename||`${y}${x}`,I=c?.folder||"",H=I?Co.join(e,I):e;await s(H);let U=Co.join(H,_);await promises.writeFile(U,d);let F=i.type.startsWith("image/")?await a(d):{},ce=t||"/uploads",re=I?`/${I}/${_}`:`/${_}`,Oe=ce+re;return {id:y,filename:_,originalName:i.name,mimeType:i.type||n(i.name),size:d.length,url:Oe,thumbnailUrl:i.type.startsWith("image/")?Oe:void 0,folder:I||void 0,provider:"local",metadata:{...F,...c?.metadata},createdAt:new Date().toISOString()}},async uploadFromUrl(i,c){let d=await fetch(i);if(!d.ok)throw new Error(`Failed to fetch file: ${d.statusText}`);let y=await d.blob(),x=d.headers.get("content-disposition"),_=c?.filename;if(!_&&x){let H=x.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/);H&&(_=H[1].replace(/['"]/g,""));}_||(_=Co.basename(new URL(i).pathname));let I=new File([y],_,{type:y.type||n(_)});return this.upload(I,c)},async delete(i){let c=Co.join(e,i.replace(t+"/",""));try{await promises.unlink(c);}catch{}},async rename(i,c){let d=Co.join(e,i.replace(t+"/","")),y=Co.join(e,c);return await promises.rename(d,y),`${t}/${c}`},async list(i){let c=i?Co.join(e,i):e;if(!fs$1.existsSync(c))return [];let d=[],y=await promises.readdir(c,{withFileTypes:true});for(let x of y)if(x.isFile()){let _=Co.join(c,x.name),I=await promises.stat(_),H=`${t}${i?`/${i}`:""}/${x.name}`;d.push({id:BB.createHash("md5").update(x.name).digest("hex"),filename:x.name,originalName:x.name,mimeType:n(x.name),size:I.size,url:H,provider:"local",createdAt:I.birthtime.toISOString()});}return d},async exists(i){let c=Co.join(e,i.replace(t+"/",""));return fs$1.existsSync(c)},async createFolder(i){let c=Co.join(e,i);await promises.mkdir(c,{recursive:true});},async deleteFolder(i){let c=Co.join(e,i);if(fs$1.existsSync(c)){let{rm:d}=await import('fs/promises');await d(c,{recursive:true,force:true});}}})}chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();function Jc(r){let e=(t,s)=>{if(!r.signKey)return t;let n=BB.createHmac("sha256",r.signKey).update(t+s.toString()).digest("hex");return s.set("s",n),t};return {name:"imgix",displayName:"Imgix",supportsDynamicResize:true,async upload(t,s){throw new Error("Imgix is a transformation service. Use another provider for uploads.")},async uploadFromUrl(t,s){let n=s?.filename||t.split("/").pop()||"file",a=await fetch(t);if(!a.ok)throw new Error(`Failed to fetch: ${a.statusText}`);let i=await a.blob();new File([i],n,{type:i.type});return {id:Buffer.from(t).toString("base64").slice(0,20),filename:n,originalName:n,mimeType:i.type,size:i.size,url:this.getImageUrl(t),thumbnailUrl:this.getImageUrl(t,{width:200,height:200,fit:"crop"}),provider:"imgix",createdAt:new Date().toISOString()}},async delete(t){},async rename(t,s){return `https://${r.domain}/${s}`},getImageUrl(t,s){let n=new URL(t),a=new URLSearchParams(n.search);r.defaultParameters&&Object.entries(r.defaultParameters).forEach(([c,d])=>{a.has(c)||a.set(c,d);}),s&&(s.width&&a.set("w",String(s.width)),s.height&&a.set("h",String(s.height)),s.quality&&a.set("q",String(s.quality)),s.format&&a.set("fm",s.format),s.fit&&a.set("fit",s.fit),s.blur&&a.set("blur",String(s.blur)),s.sharpen&&a.set("sharp",String(s.sharpen))),a.set("auto","compress,format");n.pathname+"?"+a.toString();return r.signKey&&(e(n.pathname+a.toString(),a)),`https://${r.domain}${n.pathname}${a.toString()?"?"+a.toString():""}`},async generateThumbnail(t){return this.getImageUrl(t.url,{width:200,height:200,fit:"crop"})},async list(){return []},async exists(t){try{return (await fetch(t,{method:"HEAD"})).ok}catch{return false}},async createFolder(){},async deleteFolder(){}}}chunkBUNLC3II_cjs.h();function Ro(r,e){return e.cdnUrl?`${e.cdnUrl.replace(/\/$/,"")}/${r}`:`https://${e.storageZone}.b-cdn.net/${r}`}function Qc(r){return r.cdnUrl?r.cdnUrl.replace(/\/$/,"")+"/":`https://${r.storageZone}.b-cdn.net/`}function Yc(r){let e=`https://storage.bunnycdn.com/${r.storageZone}`,t=s=>`${r.prefix?`${r.prefix}/`:""}${s}`.replace(/\/+/g,"/");return Dr({name:"bunny",displayName:"Bunny.net Storage",supportsDynamicResize:true,async upload(s,n){let a=t(`${n?.folder?`${n.folder}/`:""}${n?.filename||s.name}`),i=Buffer.from(await s.arrayBuffer()),c=await fetch(`${e}/${a}`,{method:"PUT",headers:{AccessKey:r.apiKey,"Content-Type":s.type},body:i});if(!c.ok){let d=await c.text();throw new Error(`Bunny.net upload failed: ${c.status} ${d}`)}return {id:Buffer.from(a).toString("base64url"),filename:n?.filename||s.name,originalName:s.name,mimeType:s.type,size:i.length,url:Ro(a,r),thumbnailUrl:s.type.startsWith("image/")?Ro(a,r):void 0,folder:n?.folder,provider:"bunny",metadata:n?.metadata,createdAt:new Date().toISOString()}},async delete(s){let n=s.replace(Qc(r),""),a=await fetch(`${e}/${n}`,{method:"DELETE",headers:{AccessKey:r.apiKey}});if(!a.ok&&a.status!==404){let i=await a.text();throw new Error(`Bunny.net delete failed: ${a.status} ${i}`)}},async rename(s,n){let a=s.replace(Qc(r),""),i=r.prefix?`${r.prefix}/${n}`:n,c=await fetch(`${e}/${a}`,{method:"GET",headers:{AccessKey:r.apiKey}});if(!c.ok)throw new Error("Bunny.net rename failed: could not read old file");let d=await c.arrayBuffer();return await fetch(`${e}/${i}`,{method:"PUT",headers:{AccessKey:r.apiKey,"Content-Type":c.headers.get("Content-Type")||"application/octet-stream"},body:d}),await this.delete(s),Ro(i,r)},async list(s){let n=t(s||""),a=await fetch(`${e}/${n}`,{method:"GET",headers:{AccessKey:r.apiKey}});if(!a.ok){let c=await a.text();throw new Error(`Bunny.net list failed: ${a.status} ${c}`)}return (await a.json()).map(c=>({id:Buffer.from(c.ObjectName||"").toString("base64url"),filename:c.ObjectName?.split("/").pop()||"",originalName:c.ObjectName?.split("/").pop()||"",mimeType:"application/octet-stream",size:c.Length||0,url:Ro(c.ObjectName||"",r),provider:"bunny",createdAt:c.LastChanged||new Date().toISOString()}))},async exists(s){let n=s.replace(Qc(r),"");return (await fetch(`${e}/${n}`,{method:"HEAD",headers:{AccessKey:r.apiKey}})).ok},async createFolder(s){let n=t(`${s}/`);await fetch(`${e}/${n}`,{method:"PUT",headers:{AccessKey:r.apiKey,"Content-Length":"0"},body:""});},async deleteFolder(s){let n=t(`${s}/`);await fetch(`${e}/${n}`,{method:"DELETE",headers:{AccessKey:r.apiKey}});}})}chunkBUNLC3II_cjs.h();function eu(){let r=()=>{let s=globalThis.STORAGE_BUCKET;if(!s)throw new Error("Cloudflare R2 native binding 'STORAGE_BUCKET' not found in global scope.");return s},e=s=>`/api/media/file/${s}`,t=s=>s.replace(/\/+/g,"/").replace(/^\/+/,"");return Dr({name:"cloudflare_r2",displayName:"Cloudflare R2 (Native)",supportsDynamicResize:true,async upload(s,n){let a=r(),i=t(`${n?.folder?`${n.folder}/`:""}${n?.filename||s.name}`),c=await s.arrayBuffer(),d=await a.put(i,c,{httpMetadata:{contentType:s.type},customMetadata:n?.metadata||{}});return {id:Buffer.from(i).toString("base64url"),filename:n?.filename||s.name,originalName:s.name,mimeType:s.type,size:d.size,url:e(i),thumbnailUrl:s.type.startsWith("image/")?e(i):void 0,folder:n?.folder,provider:"cloudflare_r2",metadata:{...n?.metadata,etag:d.etag},createdAt:new Date().toISOString()}},async delete(s){let n=r(),a=s.replace(/^\/api\/media\/file\//,"");await n.delete(a);},async rename(s,n){let a=r(),i=s.replace(/^\/api\/media\/file\//,""),c=t(n),d=await a.get(i);if(!d)throw new Error("File not found");return await a.put(c,d.body,{httpMetadata:d.httpMetadata,customMetadata:d.customMetadata}),await a.delete(i),e(c)},async list(s){let n=r(),a=t(s||"");return (await n.list({prefix:a})).objects.map(c=>({id:Buffer.from(c.key).toString("base64url"),filename:c.key.split("/").pop()||"",originalName:c.key.split("/").pop()||"",mimeType:c.httpMetadata?.contentType||"application/octet-stream",size:c.size,url:e(c.key),provider:"cloudflare_r2",createdAt:c.uploaded.toISOString()}))},async exists(s){try{let n=r(),a=s.replace(/^\/api\/media\/file\//,"");return await n.head(a)!==null}catch{return false}}})}var ru=class{providers=new Map;providerToPlugin=new Map;disabledPlugins=new Set;constructor(){this.registerLocal(),this.registerImgix(),this.registerBunny(),this.registerCloudflareR2(),this.registerCloudflareS3();}registerLocal(){this.register({type:"local",displayName:"Local Server",configKey:"local",configFields:[{name:"uploadDir",type:"text",label:"Upload Directory",defaultValue:"./public/uploads"},{name:"baseUrl",type:"text",label:"Base URL",defaultValue:"/uploads"}],extractConfig:(e,t)=>e[t]||{},extractRawConfig:e=>{let t=e?.local||e,s=(t?.uploadDir||"").trim(),n;s?Co__default.default.isAbsolute(s)?n=s:s.includes("/")||s.includes("\\")?n=Co__default.default.resolve(process.cwd(),s):n=Co__default.default.join(process.cwd(),"public",s):n=Co__default.default.join(process.cwd(),"public","uploads");let a=(t?.baseUrl||"").trim(),i;return a?i=a.startsWith("/")?a:`/${a}`:i="/uploads",{uploadDir:n,baseUrl:i}},factory:e=>gs(e)});}registerImgix(){this.register({type:"imgix",displayName:"Imgix",configKey:"imgix",configFields:[{name:"domain",type:"text",label:"Domain",required:true},{name:"signKey",type:"password",label:"Sign Key"}],extractConfig:(e,t)=>e[t]||{},extractRawConfig:e=>e?.imgix||e,factory:e=>Jc(e)});}registerBunny(){this.register({type:"bunny",displayName:"Bunny.net",configKey:"bunny",configFields:[{name:"storageZone",type:"text",label:"Storage Zone",required:true},{name:"apiKey",type:"password",label:"API Key",required:true},{name:"cdnUrl",type:"text",label:"CDN URL"},{name:"prefix",type:"text",label:"Path Prefix"}],extractConfig:(e,t)=>e[t]||{},extractRawConfig:e=>e?.bunny||e,factory:e=>Yc(e)});}registerCloudflareR2(){this.register({type:"cloudflare_r2",displayName:"Cloudflare R2 (Native)",configKey:"cloudflareR2",configFields:[],extractConfig:()=>({}),extractRawConfig:()=>({}),factory:()=>eu()});}registerCloudflareS3(){this.register({type:"cloudflare_s3",displayName:"Cloudflare R2 (S3 Compat)",configKey:"cloudflareR2",configFields:[],extractConfig:()=>(console.warn('[StorageRegistry] "cloudflare_s3" is deprecated; use "cloudflare_r2" instead.'),{}),extractRawConfig:()=>({}),factory:()=>eu()});}register(e){if(this.providers.has(e.type)){console.warn(`[StorageRegistry] Provider "${e.type}" already registered, skipping`);return}e.pluginName&&this.providerToPlugin.set(e.type,e.pluginName),this.providers.set(e.type,e);}unregister(e){this.providers.delete(e),this.providerToPlugin.delete(e);}get(e){return this.providers.get(e)}getAll(){return Array.from(this.providers.values())}getAllAvailable(e){let t=this.getAll();return e?t.filter(s=>s.pluginName?e(s.pluginName):true):t}has(e){return this.providers.has(e)}async resolve(e,t){let s=this.providers.get(e);if(!s)throw new Error(`Unknown storage provider type: "${e}". Is the plugin that provides it enabled?`);if(s.pluginName&&this.disabledPlugins.has(s.pluginName))throw new Error(`Storage provider "${e}" is not available (plugin "${s.pluginName}" is disabled)`);let n=s.configKey||e,a=s.extractConfig(t,n);return s.factory(a)}async resolveWithConfig(e,t){let s=this.providers.get(e);if(!s)throw new Error(`Unknown storage provider type: "${e}". Is the plugin that provides it enabled?`);if(s.pluginName&&this.disabledPlugins.has(s.pluginName))throw new Error(`Storage provider "${e}" is not available (plugin "${s.pluginName}" is disabled)`);let n=s.extractRawConfig(t);return s.factory(n)}getProviderPluginName(e){return this.providerToPlugin.get(e)}getAllPluginNames(){return Array.from(new Set(this.providerToPlugin.values()))}setPluginEnabled(e,t){t?this.disabledPlugins.delete(e):this.disabledPlugins.add(e);}isPluginEnabled(e){return !this.disabledPlugins.has(e)}},tu=null;function su(){return tu||(tu=new ru),tu}chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Gt={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},ko=Gt.WHEN_SUPPORTED,ys={WHEN_SUPPORTED:"WHEN_SUPPORTED",WHEN_REQUIRED:"WHEN_REQUIRED"},Eo=Gt.WHEN_SUPPORTED,_e;(function(r){r.MD5="MD5",r.CRC32="CRC32",r.CRC32C="CRC32C",r.CRC64NVME="CRC64NVME",r.SHA1="SHA1",r.SHA256="SHA256";})(_e||(_e={}));var rf;(function(r){r.HEADER="header",r.TRAILER="trailer";})(rf||(rf={}));var sa=_e.CRC32;chunkBUNLC3II_cjs.h();var Yr;(function(r){r.ENV="env",r.CONFIG="shared config entry";})(Yr||(Yr={}));var qs=(r,e,t,s)=>{if(!(e in r))return;let n=r[e].toUpperCase();if(!Object.values(t).includes(n))throw new TypeError(`Cannot load ${s} '${e}'. Expected one of ${Object.values(t)}, got '${r[e]}'.`);return n};var sf="AWS_REQUEST_CHECKSUM_CALCULATION",nf="request_checksum_calculation",nu={environmentVariableSelector:r=>qs(r,sf,Gt,Yr.ENV),configFileSelector:r=>qs(r,nf,Gt,Yr.CONFIG),default:ko};chunkBUNLC3II_cjs.h();var af="AWS_RESPONSE_CHECKSUM_VALIDATION",of="response_checksum_validation",au={environmentVariableSelector:r=>qs(r,af,ys,Yr.ENV),configFileSelector:r=>qs(r,of,ys,Yr.CONFIG),default:Eo};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var cf=(r,{requestChecksumRequired:e,requestAlgorithmMember:t,requestChecksumCalculation:s})=>t?r[t]?r[t]:void 0:s===Gt.WHEN_SUPPORTED||e?sa:void 0;chunkBUNLC3II_cjs.h();var xs=r=>r===_e.MD5?"content-md5":`x-amz-checksum-${r.toLowerCase()}`;chunkBUNLC3II_cjs.h();var uf=(r,e)=>{let t=r.toLowerCase();for(let s of Object.keys(e))if(t===s.toLowerCase())return true;return false};chunkBUNLC3II_cjs.h();var lf=(r,e)=>{let t=r.toLowerCase();for(let s of Object.keys(e))if(s.toLowerCase().startsWith(t))return true;return false};chunkBUNLC3II_cjs.h();var To=r=>r!==void 0&&typeof r!="string"&&!ArrayBuffer.isView(r)&&!chunkLQ3YZTPU_cjs.a(r);chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var df=new Uint32Array(256);for(let r=0;r<256;++r){let e=r;for(let t=0;t<8;++t)e=e&1?2197175160^e>>>1:e>>>1;df[r]=e>>>0;}var Oo=class{digestLength=4;crc=4294967295;update(e){let t=this.crc;for(let s=0;s<e.length;++s)t=t>>>8^df[(t^e[s])&255];this.crc=t;}async digest(){let e=(this.crc^4294967295)>>>0,t=new Uint8Array(4);return t[0]=e>>>24,t[1]=e>>>16&255,t[2]=e>>>8&255,t[3]=e&255,t}reset(){this.crc=4294967295;}};chunkBUNLC3II_cjs.h();var Po=Oo;chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Bw=()=>{let e=new Array(8);for(let t=0;t<8;t++){let s=new Array(512);for(let n=0;n<256;n++){let a=BigInt(n);for(let i=0;i<8*(t+1);i++)a&1n?a=a>>1n^0x9a6c9329ac4bc9b5n:a=a>>1n;s[n*2]=Number(a>>32n&0xffffffffn),s[n*2+1]=Number(a&0xffffffffn);}e[t]=new Uint32Array(s);}return e},ou,na,iu,cu,uu,lu,du,pu,mu,Nw=()=>{ou||(ou=Bw(),[na,iu,cu,uu,lu,du,pu,mu]=ou);},Io=class{c1=0;c2=0;constructor(){Nw(),this.reset();}update(e){let t=e.length,s=0,n=this.c1,a=this.c2;for(;s+8<=t;){let i=((a^e[s++])&255)<<1,c=((a>>>8^e[s++])&255)<<1,d=((a>>>16^e[s++])&255)<<1,y=((a>>>24^e[s++])&255)<<1,x=((n^e[s++])&255)<<1,_=((n>>>8^e[s++])&255)<<1,I=((n>>>16^e[s++])&255)<<1,H=((n>>>24^e[s++])&255)<<1;n=mu[i]^pu[c]^du[d]^lu[y]^uu[x]^cu[_]^iu[I]^na[H],a=mu[i+1]^pu[c+1]^du[d+1]^lu[y+1]^uu[x+1]^cu[_+1]^iu[I+1]^na[H+1];}for(;s<t;){let i=((a^e[s])&255)<<1;a=(a>>>8|(n&255)<<24)>>>0,n=n>>>8^na[i],a^=na[i+1],++s;}this.c1=n,this.c2=a;}async digest(){let e=this.c1^4294967295,t=this.c2^4294967295;return new Uint8Array([e>>>24,e>>>16&255,e>>>8&255,e&255,t>>>24,t>>>16&255,t>>>8&255,t&255])}reset(){this.c1=4294967295,this.c2=4294967295;}};var aa=class{impl;constructor(){this.impl=new Io;}update(e){this.impl.update(e);}async digest(){return this.impl.digest()}reset(){this.impl.reset();}};chunkBUNLC3II_cjs.h();var mf=[_e.CRC32,_e.CRC32C,_e.CRC64NVME,_e.SHA1,_e.SHA256],fu=[_e.SHA256,_e.SHA1,_e.CRC32,_e.CRC32C,_e.CRC64NVME];var Do=(r,e)=>{let{checksumAlgorithms:t={}}=e;switch(r){case _e.MD5:return t?.MD5??e.md5;case _e.CRC32:return t?.CRC32??chunkEZIDQBXI_cjs.c;case _e.CRC32C:return t?.CRC32C??Po;case _e.CRC64NVME:return t?.CRC64NVME??aa;case _e.SHA1:return t?.SHA1??e.sha1;case _e.SHA256:return t?.SHA256??e.sha256;default:if(t?.[r])return t[r];throw new Error(`The checksum algorithm "${r}" is not supported by the client. Select one of ${mf}, or provide an implementation to the client constructor checksums field.`)}};chunkBUNLC3II_cjs.h();var Lo=(r,e)=>{let t=new r;return t.update(chunkLQ3YZTPU_cjs.v(e||"")),t.digest()};var ff={name:"flexibleChecksumsMiddleware",step:"build",tags:["BODY_CHECKSUM"],override:true},hf=(r,e)=>(t,s)=>async n=>{if(!chunkGNEVCEJU_cjs.e.isInstance(n.request)||lf("x-amz-checksum-",n.request.headers))return t(n);let{request:a,input:i}=n,{body:c,headers:d}=a,{base64Encoder:y,streamHasher:x}=r,{requestChecksumRequired:_,requestAlgorithmMember:I}=e,H=await r.requestChecksumCalculation(),U=I?.name,F=I?.httpHeader;U&&!i[U]&&(H===Gt.WHEN_SUPPORTED||_)&&(i[U]=sa,F&&(d[F]=sa));let ce=cf(i,{requestChecksumRequired:_,requestAlgorithmMember:I?.name,requestChecksumCalculation:H}),re=c,Oe=d;if(ce){switch(ce){case _e.CRC32:chunkLEBM6ZSZ_cjs.A(s,"FLEXIBLE_CHECKSUMS_REQ_CRC32","U");break;case _e.CRC32C:chunkLEBM6ZSZ_cjs.A(s,"FLEXIBLE_CHECKSUMS_REQ_CRC32C","V");break;case _e.CRC64NVME:chunkLEBM6ZSZ_cjs.A(s,"FLEXIBLE_CHECKSUMS_REQ_CRC64","W");break;case _e.SHA1:chunkLEBM6ZSZ_cjs.A(s,"FLEXIBLE_CHECKSUMS_REQ_SHA1","X");break;case _e.SHA256:chunkLEBM6ZSZ_cjs.A(s,"FLEXIBLE_CHECKSUMS_REQ_SHA256","Y");break}let W=xs(ce),bt=Do(ce,r);if(To(c)){let{getAwsChunkedEncodingStream:We,bodyLengthChecker:q}=r;re=We(typeof r.requestStreamBufferSize=="number"&&r.requestStreamBufferSize>=8*1024?chunkLQ3YZTPU_cjs.x(c,r.requestStreamBufferSize,s.logger):c,{base64Encoder:y,bodyLengthChecker:q,checksumLocationName:W,checksumAlgorithmFn:bt,streamHasher:x}),Oe={...d,"content-encoding":d["content-encoding"]?`${d["content-encoding"]},aws-chunked`:"aws-chunked","transfer-encoding":"chunked","x-amz-decoded-content-length":d["content-length"],"x-amz-content-sha256":"STREAMING-UNSIGNED-PAYLOAD-TRAILER","x-amz-trailer":W},delete Oe["content-length"];}else if(!uf(W,d)){let We=await Lo(bt,c);Oe={...d,[W]:y(We)};}}try{return await t({...n,request:{...a,headers:Oe,body:re}})}catch(W){if(W instanceof Error&&W.name==="InvalidChunkSizeError")try{W.message.endsWith(".")||(W.message+="."),W.message+=" Set [requestStreamBufferSize=number e.g. 65_536] in client constructor to instruct AWS SDK to buffer your input stream.";}catch{}throw W}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var gf={name:"flexibleChecksumsInputMiddleware",toMiddleware:"serializerMiddleware",relation:"before",tags:["BODY_CHECKSUM"],override:true},yf=(r,e)=>(t,s)=>async n=>{let a=n.input,{requestValidationModeMember:i}=e,c=await r.requestChecksumCalculation(),d=await r.responseChecksumValidation();switch(c){case Gt.WHEN_REQUIRED:chunkLEBM6ZSZ_cjs.A(s,"FLEXIBLE_CHECKSUMS_REQ_WHEN_REQUIRED","a");break;case Gt.WHEN_SUPPORTED:chunkLEBM6ZSZ_cjs.A(s,"FLEXIBLE_CHECKSUMS_REQ_WHEN_SUPPORTED","Z");break}switch(d){case ys.WHEN_REQUIRED:chunkLEBM6ZSZ_cjs.A(s,"FLEXIBLE_CHECKSUMS_RES_WHEN_REQUIRED","c");break;case ys.WHEN_SUPPORTED:chunkLEBM6ZSZ_cjs.A(s,"FLEXIBLE_CHECKSUMS_RES_WHEN_SUPPORTED","b");break}return i&&!a[i]&&d===ys.WHEN_SUPPORTED&&(a[i]="ENABLED"),t(n)};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var $o=(r=[])=>{let e=[],t=fu.length;for(let s of r){let n=fu.indexOf(s);n!==-1?e[n]=s:e[t++]=s;}return e.filter(Boolean)};chunkBUNLC3II_cjs.h();var xf=r=>{let e=r.lastIndexOf("-");if(e!==-1){let t=r.slice(e+1);if(!t.startsWith("0")){let s=parseInt(t,10);if(!isNaN(s)&&s>=1&&s<=1e4)return true}}return false};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var _f=async(r,{checksumAlgorithmFn:e,base64Encoder:t})=>t(await Lo(e,r));var wf=async(r,{config:e,responseAlgorithms:t,logger:s})=>{let n=$o(t),{body:a,headers:i}=r;for(let c of n){let d=xs(c),y=i[d];if(y){let x;try{x=Do(c,e);}catch(H){if(c===_e.CRC64NVME){s?.warn(`Skipping ${_e.CRC64NVME} checksum validation: ${H.message}`);continue}throw H}let{base64Encoder:_}=e;if(To(a)){r.body=chunkLQ3YZTPU_cjs.w({expectedChecksum:y,checksumSourceLocation:d,checksum:new x,source:a,base64Encoder:_});return}let I=await _f(a,{checksumAlgorithmFn:x,base64Encoder:_});if(I===y)break;throw new Error(`Checksum mismatch: expected "${I}" but received "${y}" in response header "${d}".`)}}};var bf={name:"flexibleChecksumsResponseMiddleware",toMiddleware:"deserializerMiddleware",relation:"after",tags:["BODY_CHECKSUM"],override:true},vf=(r,e)=>(t,s)=>async n=>{if(!chunkGNEVCEJU_cjs.e.isInstance(n.request))return t(n);let a=n.input,i=await t(n),c=i.response,{requestValidationModeMember:d,responseAlgorithms:y}=e;if(d&&a[d]==="ENABLED"){let{clientName:x,commandName:_}=s,I=Object.keys(r.checksumAlgorithms??{}).filter(F=>{let ce=xs(F);return c.headers[ce]!==void 0}),H=$o([...y??[],...I]);if(x==="S3Client"&&_==="GetObjectCommand"&&H.every(F=>{let ce=xs(F),re=c.headers[ce];return !re||xf(re)}))return i;await wf(c,{config:r,responseAlgorithms:H,logger:s.logger});}return i};var Bo=(r,e)=>({applyToStack:t=>{t.add(hf(r,e),ff),t.addRelativeTo(yf(r,e),gf),t.addRelativeTo(vf(r,e),bf);}});chunkBUNLC3II_cjs.h();var hu=r=>{let{requestChecksumCalculation:e,responseChecksumValidation:t,requestStreamBufferSize:s}=r;return Object.assign(r,{requestChecksumCalculation:chunkGNEVCEJU_cjs.h(e??ko),responseChecksumValidation:chunkGNEVCEJU_cjs.h(t??Eo),requestStreamBufferSize:Number(s??0),checksumAlgorithms:r.checksumAlgorithms??{}})};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var jw="content-length",Mw="x-amz-decoded-content-length";function Sf(){return (r,e)=>async t=>{let{request:s}=t;if(chunkGNEVCEJU_cjs.e.isInstance(s)&&!(jw in s.headers)&&!(Mw in s.headers)){let n="Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.";typeof e?.logger?.warn=="function"&&!(e.logger instanceof chunkLEBM6ZSZ_cjs.m)?e.logger.warn(n):console.warn(n);}return r({...t})}}var Af={step:"finalizeRequest",tags:["CHECK_CONTENT_LENGTH_HEADER"],name:"getCheckContentLengthHeaderPlugin",override:true},gu=r=>({applyToStack:e=>{e.add(Sf(),Af);}});chunkBUNLC3II_cjs.h();var Rf=r=>(e,t)=>async s=>{let n=await r.region(),a=r.region,i=()=>{};t.__s3RegionRedirect&&(Object.defineProperty(r,"region",{writable:false,value:async()=>t.__s3RegionRedirect}),i=()=>Object.defineProperty(r,"region",{writable:true,value:a}));try{let c=await e(s);if(t.__s3RegionRedirect){i();let d=await r.region();if(n!==d)throw new Error("Region was not restored following S3 region redirect.")}return c}catch(c){throw i(),c}},Cf={tags:["REGION_REDIRECT","S3"],name:"regionRedirectEndpointMiddleware",override:true,relation:"before",toMiddleware:"endpointV2Middleware"};chunkBUNLC3II_cjs.h();function kf(r){return (e,t)=>async s=>{try{return await e(s)}catch(n){if(r.followRegionRedirects){let a=n?.$metadata?.httpStatusCode,i=t.commandName==="HeadBucketCommand",c=n?.$response?.headers?.["x-amz-bucket-region"];if(c&&(a===301||a===400&&(n?.name==="IllegalLocationConstraintException"||i))){try{let d=c;t.logger?.debug(`Redirecting from ${await r.region()} to ${d}`),t.__s3RegionRedirect=d;}catch(d){throw new Error("Region redirect failed: "+d)}return e(s)}}throw n}}}var Ef={step:"initialize",tags:["REGION_REDIRECT","S3"],name:"regionRedirectMiddleware",override:true},yu=r=>({applyToStack:e=>{e.add(kf(r),Ef),e.addRelativeTo(Rf(r),Cf);}});chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var No=class r{data;lastPurgeTime=Date.now();static EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS=3e4;constructor(e={}){this.data=e;}get(e){let t=this.data[e];if(t)return t}set(e,t){return this.data[e]=t,t}delete(e){delete this.data[e];}async purgeExpired(){let e=Date.now();if(!(this.lastPurgeTime+r.EXPIRED_CREDENTIAL_PURGE_INTERVAL_MS>e))for(let t in this.data){let s=this.data[t];if(!s.isRefreshing){let n=await s.identity;n.expiration&&n.expiration.getTime()<e&&delete this.data[t];}}}};chunkBUNLC3II_cjs.h();var Fs=class{_identity;isRefreshing;accessed;constructor(e,t=false,s=Date.now()){this._identity=e,this.isRefreshing=t,this.accessed=s;}get identity(){return this.accessed=Date.now(),this._identity}};var jo=class r{createSessionFn;cache;static REFRESH_WINDOW_MS=6e4;constructor(e,t=new No){this.createSessionFn=e,this.cache=t;}async getS3ExpressIdentity(e,t){let s=t.Bucket,{cache:n}=this,a=n.get(s);return a?a.identity.then(i=>(i.expiration?.getTime()??0)<Date.now()?n.set(s,new Fs(this.getIdentity(s))).identity:((i.expiration?.getTime()??0)<Date.now()+r.REFRESH_WINDOW_MS&&!a.isRefreshing&&(a.isRefreshing=true,this.getIdentity(s).then(y=>{n.set(s,new Fs(Promise.resolve(y)));})),i)):n.set(s,new Fs(this.getIdentity(s))).identity}async getIdentity(e){await this.cache.purgeExpired().catch(n=>{console.warn(`Error while clearing expired entries in S3ExpressIdentityCache:
|
|
43
|
+
`+n);});let t=await this.createSessionFn(e);if(!t.Credentials?.AccessKeyId||!t.Credentials?.SecretAccessKey)throw new Error("s3#createSession response credential missing AccessKeyId or SecretAccessKey.");return {accessKeyId:t.Credentials.AccessKeyId,secretAccessKey:t.Credentials.SecretAccessKey,sessionToken:t.Credentials.SessionToken,expiration:t.Credentials.Expiration?new Date(t.Credentials.Expiration):void 0}}};var xu=(r,{session:e})=>{let[t,s]=e,{forcePathStyle:n,useAccelerateEndpoint:a,disableMultiregionAccessPoints:i,followRegionRedirects:c,s3ExpressIdentityProvider:d,bucketEndpoint:y,expectContinueHeader:x}=r;return Object.assign(r,{forcePathStyle:n??false,useAccelerateEndpoint:a??false,disableMultiregionAccessPoints:i??false,followRegionRedirects:c??false,s3ExpressIdentityProvider:d??new jo(async _=>t().send(new s({Bucket:_}))),bucketEndpoint:y??false,expectContinueHeader:x??2097152})};chunkBUNLC3II_cjs.h();var Tf=r=>(e,t)=>async s=>{let n=await e(s),{response:a}=n;if(chunkGNEVCEJU_cjs.f.isInstance(a)&&a.headers.expires){a.headers.expiresstring=a.headers.expires;try{chunkLQ3YZTPU_cjs.i(a.headers.expires);}catch(i){t.logger?.warn(`AWS SDK Warning for ${t.clientName}::${t.commandName} response parsing (${a.headers.expires}): ${i}`),delete a.headers.expires;}}return n},Of={tags:["S3"],name:"s3ExpiresMiddleware",override:true,relation:"after",toMiddleware:"deserializerMiddleware"},_u=r=>({applyToStack:e=>{e.addRelativeTo(Tf(),Of);}});chunkBUNLC3II_cjs.h();var Pf="Directory",If="S3Express",Df="sigv4-s3express",Uw="X-Amz-S3session-Token",Lf=Uw.toLowerCase(),qw="AWS_S3_DISABLE_EXPRESS_SESSION_AUTH",Fw="s3_disable_express_session_auth",wu={environmentVariableSelector:r=>chunkGNEVCEJU_cjs.s(r,qw,chunkGNEVCEJU_cjs.t.ENV),configFileSelector:r=>chunkGNEVCEJU_cjs.s(r,Fw,chunkGNEVCEJU_cjs.t.CONFIG),default:false};chunkBUNLC3II_cjs.h();var $f=r=>(e,t)=>async s=>{if(t.endpointV2){let n=t.endpointV2,a=n.properties?.authSchemes?.[0]?.name===Df;if((n.properties?.backend===If||n.properties?.bucketType===Pf)&&(chunkLEBM6ZSZ_cjs.A(t,"S3_EXPRESS_BUCKET","J"),t.isS3ExpressBucket=true),a){let c=s.input.Bucket;if(c){let d=await r.s3ExpressIdentityProvider.getS3ExpressIdentity(await r.credentials(),{Bucket:c});t.s3ExpressIdentity=d,chunkGNEVCEJU_cjs.e.isInstance(s.request)&&d.sessionToken&&(s.request.headers[Lf]=d.sessionToken);}}}return e(s)},Bf={name:"s3ExpressMiddleware",step:"build",tags:["S3","S3_EXPRESS"],override:true},bu=r=>({applyToStack:e=>{e.add($f(r),Bf);}});chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Nf=async(r,e,t,s)=>{let n=await s.signWithCredentials(t,r,{});if(n.headers["X-Amz-Security-Token"]||n.headers["x-amz-security-token"])throw new Error("X-Amz-Security-Token must not be set for s3-express requests.");return n};var Hw=r=>e=>{throw e},Gw=(r,e)=>{};var jf=r=>(e,t)=>async s=>{if(!chunkGNEVCEJU_cjs.e.isInstance(s.request))return e(s);let a=chunkGNEVCEJU_cjs.d(t).selectedHttpAuthScheme;if(!a)throw new Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:i={}},identity:c,signer:d}=a,y;t.s3ExpressIdentity?y=await Nf(t.s3ExpressIdentity,i,s.request,await r.signer()):y=await d.sign(s.request,c,i);let x=await e({...s,request:y}).catch((d.errorHandler||Hw)(i));return (d.successHandler||Gw)(x.response,i),x},vu=r=>({applyToStack:e=>{e.addRelativeTo(jf(r),chunkLEBM6ZSZ_cjs.F);}});chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();function Mf(r){return stream.Readable.from(Buffer.from(r))}var Kw={CopyObjectCommand:true,UploadPartCopyCommand:true,CompleteMultipartUploadCommand:true},Uf=r=>(e,t)=>async s=>{let n=await e(s),{response:a}=n;if(!chunkGNEVCEJU_cjs.f.isInstance(a))return n;let{statusCode:i,body:c}=a;if(i<200||i>=300)return n;let d=await Vw(c,r);if(a.body=Mf(d),d.length===0&&Kw[t.commandName]){let x=new Error("S3 aborted request");throw x.$metadata={httpStatusCode:503},x.name="InternalError",x}let y=r.utf8Encoder(d.subarray(d.length-16));return y&&y.endsWith("</Error>")&&(a.statusCode=503),n},Vw=(r=new Uint8Array,e)=>r instanceof Uint8Array?Promise.resolve(r):e.streamCollector(r)||Promise.resolve(new Uint8Array),qf={relation:"after",toMiddleware:"deserializerMiddleware",tags:["THROW_200_EXCEPTIONS","S3"],name:"throw200ExceptionsMiddleware",override:true},_s=r=>({applyToStack:e=>{e.addRelativeTo(Uf(r),qf);}});chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Su=r=>typeof r=="string"&&r.indexOf("arn:")===0&&r.split(":").length>=6;chunkBUNLC3II_cjs.h();function Ff(r){return (e,t)=>async s=>{if(r.bucketEndpoint){let n=t.endpointV2;if(n){let a=s.input.Bucket;if(typeof a=="string")try{let i=new URL(a);t.endpointV2={...n,url:i};}catch(i){let c=`@aws-sdk/middleware-sdk-s3: bucketEndpoint=true was set but Bucket=${a} could not be parsed as URL.`;throw t.logger?.constructor?.name==="NoOpLogger"?console.warn(c):t.logger?.warn?.(c),i}}}return e(s)}}var Hf={name:"bucketEndpointMiddleware",override:true,relation:"after",toMiddleware:"endpointV2Middleware"};function Gf({bucketEndpoint:r}){return e=>async t=>{let{input:{Bucket:s}}=t;if(!r&&typeof s=="string"&&!Su(s)&&s.indexOf("/")>=0){let n=new Error(`Bucket name shouldn't contain '/', received '${s}'`);throw n.name="InvalidBucketName",n}return e({...t})}}var zf={step:"initialize",tags:["VALIDATE_BUCKET_NAME"],name:"validateBucketNameMiddleware",override:true},Au=r=>({applyToStack:e=>{e.add(Gf(r),zf),e.addRelativeTo(Ff(r),Hf);}});chunkBUNLC3II_cjs.h();var oa=class extends chunkPITMDQYN_cjs.e{async serializeRequest(e,t,s){let n=await super.serializeRequest(e,t,s),a=chunkGNEVCEJU_cjs.m.of(e.input),i=a.getSchema(),c=0,d=i[6]??0;if(t&&typeof t=="object")for(let[y,x]of a.structIterator()){if(++c>d)break;if(y==="Bucket"){if(!t.Bucket&&x.getMergedTraits().httpLabel)throw new Error("No value provided for input HTTP label: Bucket.");break}}return n}};chunkBUNLC3II_cjs.h();var Kf="AWS_S3_USE_ARN_REGION",Vf="s3_use_arn_region",Ru={environmentVariableSelector:r=>chunkGNEVCEJU_cjs.s(r,Kf,chunkGNEVCEJU_cjs.t.ENV),configFileSelector:r=>chunkGNEVCEJU_cjs.s(r,Vf,chunkGNEVCEJU_cjs.t.CONFIG),default:void 0};chunkBUNLC3II_cjs.h();function Wf(r){return e=>async t=>{let{request:s}=t;if(r.expectContinueHeader!==false&&chunkGNEVCEJU_cjs.e.isInstance(s)&&s.body&&r.runtime==="node"&&r.requestHandler?.constructor?.name!=="FetchHttpHandler"){let n=true;if(typeof r.expectContinueHeader=="number")try{n=(Number(s.headers?.["content-length"])??r.bodyLengthChecker?.(s.body)??1/0)>=r.expectContinueHeader;}catch{}else n=!!r.expectContinueHeader;n&&(s.headers.Expect="100-continue");}return e({...t,request:s})}}var Zf={step:"build",tags:["SET_EXPECT_HEADER","EXPECT_HEADER"],name:"addExpectContinueMiddleware",override:true},Cu=r=>({applyToStack:e=>{e.add(Wf(r),Zf);}});chunkBUNLC3II_cjs.h();function Xf(r){return e=>async t=>{let s={...t.input},n=[{target:"SSECustomerKey",hash:"SSECustomerKeyMD5"},{target:"CopySourceSSECustomerKey",hash:"CopySourceSSECustomerKeyMD5"}];for(let a of n){let i=s[a.target];if(i){let c;typeof i=="string"?Qf(i,r)?c=r.base64Decoder(i):(c=r.utf8Decoder(i),s[a.target]=r.base64Encoder(c)):(c=ArrayBuffer.isView(i)?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i),s[a.target]=r.base64Encoder(c));let d=new r.md5;d.update(c),s[a.hash]=r.base64Encoder(await d.digest());}}return e({...t,input:s})}}var Jf={name:"ssecMiddleware",step:"initialize",tags:["SSE"],override:true},ia=r=>({applyToStack:e=>{e.add(Xf(r),Jf);}});function Qf(r,e){if(!/^(?:[A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(r))return false;try{return e.base64Decoder(r).length===32}catch{return false}}chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Ce="ref",le="argv",kh="backend",gr="authSchemes",Kt="disableDoubleEncoding",Vt="signingName",Nr="signingRegion",Nu="signingRegionSet",J=-1,Re=true,zt=false,ku="isSet",rr="booleanEquals",we="stringEquals",ft="coalesce",St="substring",He="",Yf="aws.partition",Eh="partitionResult",eh="accessPointSuffix",th="regionPrefix",Mo=r=>"outpostId_ssa_"+r+He,Th="hardwareType",Eu="ite",Lr="isValidHostLabel",jr="sigv4",rh="aws.isVirtualHostableS3Bucket",Oh="url",At="getAttr",Ph="bucketArn",$r="--",Ih="arnType",sh="accesspoint",Tu=r=>"accessPointName_ssa_"+r+He,ju="s3-object-lambda",ua="s3-outposts",nh="bucketPartition",Dh="us-east-1",ah="outpostType",jt="name",la="s3",Ou="{url#scheme}://{Bucket}.{url#authority}{url#path}",Uo="{url#scheme}://{url#authority}{url#path}",oh="{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}",ih="https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}",ch="https://{Bucket}.s3.{partitionResult#dnsSuffix}",uh=r=>"{url#scheme}://{accessPointName_ssa_"+r+"}-{bucketArn#accountId}.{url#authority}{url#path}",lh=r=>"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName_ssa_"+r+"}`",Mu="sigv4a",dh="{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}",ph="https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",mh="https://s3.{partitionResult#dnsSuffix}",fh={[Ce]:"UseFIPS"},hh={[Ce]:"UseDualStack"},Qe={[Ce]:"Bucket"},Pu={fn:At,[le]:[{[Ce]:Eh},jt]},gh={[Ce]:Oh},Hs={[Ce]:"Region"},Br={[Ce]:Ph},yh={[Ce]:Ih},Iu={[Ce]:"accessPointName_ssa_1"},qo={fn:At,[le]:[Br,"region"]},xh={[Ce]:Th},Du={fn:At,[le]:[Br,"service"]},_h={fn:At,[le]:[Br,"accountId"]},Fo={[kh]:"S3Express",[gr]:[{[Kt]:true,[jt]:"{_s3e_auth}",[Vt]:"s3express",[Nr]:"{Region}"}]},wh={[kh]:"S3Express",[gr]:[{[Kt]:true,[jt]:jr,[Vt]:"s3express",[Nr]:"{Region}"}]},Ho={[gr]:[{[Kt]:true,[jt]:Mu,[Vt]:ua,[Nu]:["*"]},{[Kt]:true,[jt]:jr,[Vt]:ua,[Nr]:"{Region}"}]},Je={[gr]:[{[Kt]:true,[jt]:jr,[Vt]:la,[Nr]:Dh}]},Ne={[gr]:[{[Kt]:true,[jt]:jr,[Vt]:la,[Nr]:"{Region}"}]},Lu={[gr]:[{[Kt]:true,[jt]:jr,[Vt]:ju,[Nr]:"{bucketArn#region}"}]},ca={[gr]:[{[Kt]:true,[jt]:jr,[Vt]:la,[Nr]:"{bucketArn#region}"}]},bh={[gr]:[{[Kt]:true,[jt]:Mu,[Vt]:ua,[Nu]:["*"]},{[Kt]:true,[jt]:jr,[Vt]:ua,[Nr]:"{bucketArn#region}"}]},$u={[gr]:[{[Kt]:true,[jt]:jr,[Vt]:ju,[Nr]:"{Region}"}]},vh=[Hs],Sh=[{[Ce]:"Endpoint"}],Bu=[Qe],Ah=[Qe,0,7,true],Rh=[Br,"resourceId[1]"],Ww=["*"],Ch={conditions:[[ku,vh],[rr,[{[Ce]:"Accelerate"},Re]],[rr,[fh,Re]],[rr,[hh,Re]],[ku,Sh],[ku,Bu],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,0,6,Re]},He]},"--x-s3"]],[we,[{fn:ft,[le]:[{fn:St,[le]:Ah},He]},"--xa-s3"]],[Yf,vh,Eh],[St,Ah,eh],[we,[{[Ce]:eh},"--op-s3"]],[St,[Qe,8,12,Re],th],[St,[Qe,32,49,Re],Mo(2)],[St,[Qe,49,50,Re],Th],[rr,[{[Ce]:"ForcePathStyle"},Re]],[we,[Pu,"aws-cn"]],[Eu,[hh,".dualstack",He],"_s3e_ds"],[Lr,[{[Ce]:Mo(2)},zt]],[Eu,[fh,"-fips",He],"_s3e_fips"],[Eu,[{fn:ft,[le]:[{[Ce]:"DisableS3ExpressSessionAuth"},zt]},jr,"sigv4-s3express"],"_s3e_auth"],[rh,[Qe,zt]],["parseURL",Sh,Oh],[rr,[{fn:ft,[le]:[{[Ce]:"UseS3ExpressControlEndpoint"},zt]},Re]],[rh,[Qe,Re]],[we,[{fn:At,[le]:[gh,"scheme"]},"http"]],[Lr,[Hs,zt]],["aws.parseArn",Bu,Ph],[At,[{fn:"split",[le]:[Qe,$r,0]},"[-2]"],"s3expressAvailabilityZoneId"],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,0,4,zt]},He]},"arn:"]],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,16,18,Re]},He]},$r]],[rr,[{fn:At,[le]:[gh,"isIp"]},Re]],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,21,23,Re]},He]},$r]],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,27,29,Re]},He]},$r]],[we,[{[Ce]:th},"beta"]],["uriEncode",Bu,"uri_encoded_bucket"],[Lr,[Hs,Re]],[rr,[{fn:ft,[le]:[{[Ce]:"UseObjectLambdaEndpoint"},zt]},Re]],[At,[Br,"resourceId[0]"],Ih],[we,[yh,He]],[we,[yh,sh]],[At,Rh,Tu(1)],[we,[Iu,He]],[we,[qo,He]],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,14,16,Re]},He]},$r]],[we,[xh,"e"]],[we,[xh,"o"]],[we,[Hs,"aws-global"]],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,19,21,Re]},He]},$r]],[we,[Du,ju]],[rr,[{fn:ft,[le]:[{[Ce]:"DisableAccessPoints"},zt]},Re]],[we,[Du,ua]],[Yf,[qo],nh],[Lr,[Iu,Re]],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,26,28,Re]},He]},$r]],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,15,17,Re]},He]},$r]],[At,[Br,"resourceId[4]"]],[we,[{fn:ft,[le]:[{fn:St,[le]:[Qe,20,22,Re]},He]},$r]],[rr,[{[Ce]:"UseGlobalEndpoint"},Re]],[we,[Hs,Dh]],[At,Rh,Mo(1)],[rr,[{fn:ft,[le]:[{[Ce]:"UseArnRegion"},Re]},Re]],[Lr,[{[Ce]:Mo(1)},zt]],[At,[Br,"resourceId[2]"],ah],[we,[Hs,qo]],[we,[{fn:At,[le]:[{[Ce]:nh},jt]},Pu]],[rr,[{[Ce]:"DisableMultiRegionAccessPoints"},Re]],[Lr,[qo,Re]],[we,[{fn:At,[le]:[Br,"partition"]},Pu]],[we,[_h,He]],[we,[Du,la]],[Lr,[_h,zt]],[At,[Br,"resourceId[3]"],Tu(2)],[Lr,[Iu,zt]],[we,[{[Ce]:ah},sh]],[Lr,[{[Ce]:Tu(2)},zt]]],results:[[J],[J,"Accelerate cannot be used with FIPS"],[J,"Cannot set dual-stack in combination with a custom endpoint."],[J,"A custom endpoint cannot be combined with FIPS"],[J,"A custom endpoint cannot be combined with S3 Accelerate"],[J,"Partition does not support FIPS"],[J,"S3Express does not support S3 Accelerate."],["{url#scheme}://{url#authority}/{uri_encoded_bucket}{url#path}",Fo],[Ou,Fo],[J,"S3Express bucket name is not a valid virtual hostable name."],["https://s3express-control{_s3e_fips}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",wh],["https://{Bucket}.s3express{_s3e_fips}-{s3expressAvailabilityZoneId}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}",Fo],[J,"Unrecognized S3Express bucket name format."],[Uo,Fo],["https://s3express-control{_s3e_fips}{_s3e_ds}.{Region}.{partitionResult#dnsSuffix}",wh],[J,"Expected a endpoint to be specified but no endpoint was found"],["https://{Bucket}.ec2.{url#authority}",Ho],["https://{Bucket}.ec2.s3-outposts.{Region}.{partitionResult#dnsSuffix}",Ho],["https://{Bucket}.op-{outpostId_ssa_2}.{url#authority}",Ho],["https://{Bucket}.op-{outpostId_ssa_2}.s3-outposts.{Region}.{partitionResult#dnsSuffix}",Ho],[J,'Unrecognized hardware type: "Expected hardware type o or e but got {hardwareType}"'],[J,"Invalid Outposts Bucket alias - it must be a valid bucket name."],[J,"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`."],[J,"Custom endpoint `{Endpoint}` was not a valid URI"],[J,"S3 Accelerate cannot be used in this region"],["https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",Je],["https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",Ne],["https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}",Je],["https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}",Ne],["https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}",Je],["https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}",Ne],["https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",Je],["https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}",Ne],[oh,Je],[Ou,Je],[oh,Ne],[Ou,Ne],[ih,Je],[ih,Ne],[ch,Je],[ch,Ne],["https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}",Ne],[J,"Invalid region: region was not a valid DNS name."],[J,"S3 Object Lambda does not support Dual-stack"],[J,"S3 Object Lambda does not support S3 Accelerate"],[J,"Access points are not supported for this operation"],[J,"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`"],[J,"Invalid ARN: Missing account id"],[uh(1),Lu],["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",Lu],["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}",Lu],[J,lh(1)],[J,"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`"],[J,"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)"],[J,"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`"],[J,"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`."],[J,"Invalid ARN: bucket ARN is missing a region"],[J,"Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided"],[J,"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`"],[J,"Access Points do not support S3 Accelerate"],["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",ca],["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}",ca],["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}",ca],[uh(1),ca],["https://{accessPointName_ssa_1}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}",ca],[J,"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}"],[J,"S3 MRAP does not support dual-stack"],[J,"S3 MRAP does not support FIPS"],[J,"S3 MRAP does not support S3 Accelerate"],[J,"Invalid configuration: Multi-Region Access Point ARNs are disabled."],["https://{accessPointName_ssa_1}.accesspoint.s3-global.{partitionResult#dnsSuffix}",{[gr]:[{[Kt]:Re,name:Mu,[Vt]:la,[Nu]:Ww}]}],[J,"Client was configured for partition `{partitionResult#name}` but bucket referred to partition `{bucketArn#partition}`"],[J,"Invalid Access Point Name"],[J,"S3 Outposts does not support Dual-stack"],[J,"S3 Outposts does not support FIPS"],[J,"S3 Outposts does not support S3 Accelerate"],[J,"Invalid Arn: Outpost Access Point ARN contains sub resources"],["https://{accessPointName_ssa_2}-{bucketArn#accountId}.{outpostId_ssa_1}.{url#authority}",bh],["https://{accessPointName_ssa_2}-{bucketArn#accountId}.{outpostId_ssa_1}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}",bh],[J,lh(2)],[J,"Expected an outpost type `accesspoint`, found {outpostType}"],[J,"Invalid ARN: expected an access point name"],[J,"Invalid ARN: Expected a 4-component resource"],[J,"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId_ssa_1}`"],[J,"Invalid ARN: The Outpost Id was not set"],[J,"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})"],[J,"Invalid ARN: No ARN type specified"],[J,"Invalid ARN: `{Bucket}` was not a valid ARN"],[J,"Path-style addressing cannot be used with ARN buckets"],["https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",Je],["https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",Ne],["https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",Je],["https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",Ne],["https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",Je],["https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",Ne],[dh,Je],[dh,Ne],[ph,Je],[ph,Ne],["https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}",Ne],[J,"Path-style addressing cannot be used with S3 Accelerate"],[Uo,$u],["https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}",$u],["https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}",$u],["https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}",Je],["https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",Ne],["https://s3-fips.us-east-1.{partitionResult#dnsSuffix}",Je],["https://s3-fips.{Region}.{partitionResult#dnsSuffix}",Ne],["https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}",Je],["https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}",Ne],[Uo,Je],[Uo,Ne],[mh,Je],[mh,Ne],["https://s3.{Region}.{partitionResult#dnsSuffix}",Ne],[J,"A region must be set when sending requests to S3."]]},Zw=2,m=1e8,Xw=new Int32Array([-1,1,-1,0,3,m+115,1,424,4,2,272,5,3,233,6,4,85,7,5,15,8,8,9,m+115,16,10,13,18,11,13,19,12,13,22,m+14,13,35,14,m+42,36,m+103,435,6,271,16,7,270,17,8,19,18,14,501,106,9,20,24,10,21,24,11,22,24,12,23,24,13,547,24,14,77,25,20,73,26,26,27,78,37,28,m+86,38,m+86,29,39,47,30,48,m+58,31,50,32,m+85,51,33,136,55,m+76,34,59,35,m+84,60,39,36,61,37,m+83,62,38,146,63,41,m+46,61,40,m+83,62,41,150,64,42,m+54,66,43,m+53,70,44,m+52,71,45,m+81,73,46,m+80,74,m+78,m+79,40,48,m+57,41,m+57,49,42,185,50,48,62,51,49,m+45,52,51,53,526,60,56,54,62,m+55,55,63,57,m+46,62,m+55,57,64,58,m+54,66,59,m+53,69,60,m+65,70,61,m+52,72,m+64,m+51,49,m+45,63,51,64,526,60,67,65,62,m+55,66,63,68,m+46,62,m+55,68,64,69,m+54,66,70,m+53,68,m+47,71,70,72,m+52,72,m+50,m+51,25,74,m+42,46,m+39,75,57,76,m+41,58,m+40,m+41,26,m+88,78,28,m+87,79,34,82,80,35,81,545,36,m+103,m+115,46,m+97,83,57,84,m+99,58,m+98,m+99,5,101,86,8,87,m+115,16,88,89,18,91,89,19,90,92,21,97,95,19,93,92,21,98,95,21,97,94,22,m+14,95,35,96,m+42,36,m+103,m+42,22,m+13,98,35,99,m+42,36,m+101,100,46,m+110,m+111,6,214,102,7,208,103,8,119,104,14,118,105,21,106,m+23,26,107,502,37,108,m+86,38,m+86,109,39,112,110,48,m+58,111,50,136,m+85,40,113,m+57,41,m+57,114,42,115,500,48,m+56,116,52,117,m+72,65,m+69,m+72,21,501,m+23,9,120,124,10,121,124,11,122,124,12,123,124,13,202,124,14,195,125,20,190,126,21,127,m+23,23,128,129,24,189,129,26,130,197,37,131,m+86,38,m+86,132,39,159,133,48,m+58,134,50,135,m+85,51,141,136,55,m+76,137,59,138,m+84,60,m+83,139,61,140,m+83,63,m+83,m+46,55,m+76,142,59,143,m+84,60,148,144,61,145,m+83,62,147,146,63,150,m+46,63,153,m+46,61,149,m+83,62,153,150,64,151,m+54,66,152,m+53,70,m+82,m+52,64,154,m+54,66,155,m+53,70,156,m+52,71,157,m+81,73,158,m+80,74,m+77,m+79,40,160,m+57,41,m+57,161,42,185,162,48,174,163,49,m+45,164,51,165,526,60,168,166,62,m+55,167,63,169,m+46,62,m+55,169,64,170,m+54,66,171,m+53,69,172,m+65,70,173,m+52,72,m+63,m+51,49,m+45,175,51,176,526,60,179,177,62,m+55,178,63,180,m+46,62,m+55,180,64,181,m+54,66,182,m+53,68,m+47,183,70,184,m+52,72,m+48,m+51,48,m+56,186,52,187,m+72,65,m+69,188,67,m+70,m+71,25,m+36,m+42,21,191,m+23,25,192,m+42,30,194,193,46,m+34,m+36,46,m+33,m+35,21,196,m+23,26,m+88,197,28,m+87,198,34,201,199,35,200,545,36,m+101,m+115,46,m+95,m+96,17,203,m+22,20,204,m+21,21,205,550,33,206,550,44,m+16,207,45,m+18,m+20,8,209,215,16,210,220,18,211,220,19,212,224,20,213,227,21,231,401,8,218,215,19,216,m+9,20,217,227,21,231,m+9,16,219,220,18,223,220,19,221,224,20,222,227,21,231,m+12,19,226,224,20,225,m+9,21,m+9,m+12,20,230,227,21,228,m+9,30,229,m+9,34,m+7,m+9,21,231,415,30,232,m+8,34,m+7,m+8,4,m+2,234,5,235,480,6,271,236,7,270,237,8,238,491,9,239,243,10,240,243,11,241,243,12,242,243,13,547,243,14,266,244,20,264,245,26,246,267,37,247,m+86,38,m+86,248,39,249,518,40,250,m+57,41,m+57,251,42,538,252,48,m+43,253,49,m+45,254,51,255,526,60,258,256,62,m+55,257,63,259,m+46,62,m+55,259,64,260,m+54,66,261,m+53,69,262,m+65,70,263,m+52,72,m+62,m+51,25,265,m+42,46,m+31,m+32,26,m+88,267,28,m+87,268,34,269,544,46,m+93,m+94,8,397,m+9,8,407,m+9,3,346,273,4,m+3,274,5,284,275,8,276,m+115,15,m+5,277,16,278,281,18,279,281,19,280,281,22,m+14,281,35,282,m+42,36,m+102,283,46,m+106,m+107,6,405,285,7,395,286,8,295,287,14,501,288,26,289,502,37,290,m+86,38,m+86,291,39,292,307,40,293,m+57,41,m+57,294,42,335,500,9,296,300,10,297,300,11,298,300,12,299,300,13,394,300,14,339,301,15,m+5,302,20,337,303,26,304,341,37,305,m+86,38,m+86,306,39,309,307,48,m+58,308,50,m+74,m+85,40,310,m+57,41,m+57,311,42,335,312,48,324,313,49,m+45,314,51,315,526,60,318,316,62,m+55,317,63,319,m+46,62,m+55,319,64,320,m+54,66,321,m+53,69,322,m+65,70,323,m+52,72,m+61,m+51,49,m+45,325,51,326,526,60,329,327,62,m+55,328,63,330,m+46,62,m+55,330,64,331,m+54,66,332,m+53,68,m+47,333,70,334,m+52,72,m+49,m+51,48,m+56,336,52,m+67,m+72,25,338,m+42,46,m+27,m+28,15,m+5,340,26,m+88,341,28,m+87,342,34,345,343,35,344,545,36,m+102,m+115,46,m+91,m+92,4,m+2,347,5,357,348,8,349,m+115,15,m+5,350,16,351,354,18,352,354,19,353,354,22,m+14,354,35,355,m+42,36,m+43,356,46,m+104,m+105,6,405,358,7,395,359,8,360,491,9,361,365,10,362,365,11,363,365,12,364,365,13,394,365,14,389,366,15,m+5,367,20,387,368,26,369,391,37,370,m+86,38,m+86,371,39,372,518,40,373,m+57,41,m+57,374,42,538,375,48,m+43,376,49,m+45,377,51,378,526,60,381,379,62,m+55,380,63,382,m+46,62,m+55,382,64,383,m+54,66,384,m+53,69,385,m+65,70,386,m+52,72,m+60,m+51,25,388,m+42,46,m+25,m+26,15,m+5,390,26,m+88,391,28,m+87,392,34,393,544,46,m+89,m+90,15,m+5,547,8,396,m+9,15,m+5,397,16,398,410,18,399,410,19,400,410,20,401,m+9,27,402,m+12,29,m+11,403,31,m+11,404,32,m+11,422,8,406,m+9,15,m+5,407,16,408,410,18,409,410,19,411,410,20,m+12,m+9,20,414,412,22,413,m+9,34,m+10,m+9,22,416,415,27,419,m+12,27,418,417,34,m+10,m+12,34,m+10,419,43,m+11,420,47,m+11,421,53,m+11,422,54,m+11,423,56,m+11,m+12,2,m+1,425,3,478,426,4,m+4,427,5,438,428,8,429,m+115,16,430,433,18,431,433,19,432,433,22,m+14,433,35,434,m+42,36,m+44,435,46,m+112,436,57,437,m+114,58,m+113,m+114,6,m+6,439,7,m+6,440,8,450,441,14,501,442,26,443,502,37,444,m+86,38,m+86,445,39,446,465,40,447,m+57,41,m+57,448,42,471,449,48,m+44,500,9,451,455,10,452,455,11,453,455,12,454,455,13,547,455,14,473,456,15,460,457,20,458,461,25,459,m+42,46,m+37,m+38,20,540,461,26,462,474,37,463,m+86,38,m+86,464,39,467,465,48,m+58,466,50,m+75,m+85,40,468,m+57,41,m+57,469,42,471,470,48,m+44,524,48,m+44,472,52,m+68,m+72,26,m+88,474,28,m+87,475,34,m+100,476,35,477,545,36,m+44,m+115,4,m+2,479,5,488,480,8,481,m+115,16,482,485,18,483,485,19,484,485,22,m+14,485,35,486,m+42,36,m+43,487,46,m+108,m+109,6,m+6,489,7,m+6,490,8,503,491,14,501,492,26,493,502,37,494,m+86,38,m+86,495,39,496,518,40,497,m+57,41,m+57,498,42,538,499,48,m+43,500,49,m+45,526,26,m+88,502,28,m+87,m+115,9,504,508,10,505,508,11,506,508,12,507,508,13,547,508,14,541,509,15,513,510,20,511,514,25,512,m+42,46,m+29,m+30,20,540,514,26,515,542,37,516,m+86,38,m+86,517,39,520,518,48,m+58,519,50,m+73,m+85,40,521,m+57,41,m+57,522,42,538,523,48,m+43,524,49,m+45,525,51,529,526,60,m+55,527,62,m+55,528,63,m+55,m+46,60,532,530,62,m+55,531,63,533,m+46,62,m+55,533,64,534,m+54,66,535,m+53,69,536,m+65,70,537,m+52,72,m+59,m+51,48,m+43,539,52,m+66,m+72,25,m+24,m+42,26,m+88,542,28,m+87,543,34,m+100,544,35,546,545,36,m+42,m+115,36,m+43,m+115,17,548,m+22,20,549,m+21,33,552,550,44,m+17,551,45,m+19,m+20,44,m+15,553,45,m+15,m+20]),Lh=chunkLEBM6ZSZ_cjs.p.from(Xw,Zw,Ch.conditions,Ch.results);var Jw=new chunkLEBM6ZSZ_cjs.q({size:50,params:["Accelerate","Bucket","DisableAccessPoints","DisableMultiRegionAccessPoints","DisableS3ExpressSessionAuth","Endpoint","ForcePathStyle","Region","UseArnRegion","UseDualStack","UseFIPS","UseGlobalEndpoint","UseObjectLambdaEndpoint","UseS3ExpressControlEndpoint"]}),Go=(r,e={})=>Jw.get(r,()=>chunkLEBM6ZSZ_cjs.s(Lh,{endpointParams:r,logger:e.logger}));chunkLEBM6ZSZ_cjs.r.aws=chunkLEBM6ZSZ_cjs.R;var Qw=r=>async(e,t,s)=>{if(!s)throw new Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");let n=await r(e,t,s),a=chunkGNEVCEJU_cjs.d(t)?.commandInstance?.constructor?.getEndpointParameterInstructions;if(!a)throw new Error(`getEndpointParameterInstructions() is not defined on '${t.commandName}'`);let i=await chunkLEBM6ZSZ_cjs.o(s,{getEndpointParameterInstructions:a},e);return Object.assign(n,i)},Yw=async(r,e,t)=>({operation:chunkGNEVCEJU_cjs.d(e).operation,region:await chunkGNEVCEJU_cjs.h(r.region)()||(()=>{throw new Error("expected `region` to be configured for `aws.auth#sigv4`")})()}),$h=Qw(Yw);function Bh(r){return {schemeId:"aws.auth#sigv4",signingProperties:{name:"s3",region:r.region},propertiesExtractor:(e,t)=>({signingProperties:{config:e,context:t}})}}function Nh(r){return {schemeId:"aws.auth#sigv4a",signingProperties:{name:"s3",region:r.region},propertiesExtractor:(e,t)=>({signingProperties:{config:e,context:t}})}}var eb=(r,e,t)=>n=>{let i=r(n).properties?.authSchemes;if(!i)return e(n);let c=[];for(let d of i){let{name:y,properties:x={},..._}=d,I=y.toLowerCase();y!==I&&console.warn(`HttpAuthScheme has been normalized with lowercasing: '${y}' to '${I}'`);let H;if(I==="sigv4a"){H="aws.auth#sigv4a";let ce=i.find(re=>{let Oe=re.name.toLowerCase();return Oe!=="sigv4a"&&Oe.startsWith("sigv4")});if(chunkUNYXWPLZ_cjs.a.sigv4aDependency()==="none"&&ce)continue}else if(I.startsWith("sigv4"))H="aws.auth#sigv4";else throw new Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${I}'`);let U=t[H];if(!U)throw new Error(`Could not find HttpAuthOption create function for '${H}'`);let F=U(n);F.schemeId=H,F.signingProperties={...F.signingProperties||{},..._,...x},c.push(F);}return c},tb=r=>{let e=[];switch(r.operation){default:e.push(Bh(r)),e.push(Nh(r));}return e},jh=eb(Go,tb,{"aws.auth#sigv4":Bh,"aws.auth#sigv4a":Nh}),Mh=r=>{let e=chunkPITMDQYN_cjs.k(r),t=chunkPITMDQYN_cjs.i(e);return Object.assign(t,{authSchemePreference:chunkGNEVCEJU_cjs.h(r.authSchemePreference??[])})};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Uh=r=>Object.assign(r,{useFipsEndpoint:r.useFipsEndpoint??false,useDualstackEndpoint:r.useDualstackEndpoint??false,forcePathStyle:r.forcePathStyle??false,useAccelerateEndpoint:r.useAccelerateEndpoint??false,useGlobalEndpoint:r.useGlobalEndpoint??false,disableMultiregionAccessPoints:r.disableMultiregionAccessPoints??false,defaultSigningName:"s3",clientContextParams:r.clientContextParams??{}}),qh={ForcePathStyle:{type:"clientContextParams",name:"forcePathStyle"},UseArnRegion:{type:"clientContextParams",name:"useArnRegion"},DisableMultiRegionAccessPoints:{type:"clientContextParams",name:"disableMultiregionAccessPoints"},Accelerate:{type:"clientContextParams",name:"useAccelerateEndpoint"},DisableS3ExpressSessionAuth:{type:"clientContextParams",name:"disableS3ExpressSessionAuth"},UseGlobalEndpoint:{type:"builtInParams",name:"useGlobalEndpoint"},UseFIPS:{type:"builtInParams",name:"useFipsEndpoint"},Endpoint:{type:"builtInParams",name:"endpoint"},Region:{type:"builtInParams",name:"region"},UseDualStack:{type:"builtInParams",name:"useDualstackEndpoint"}};var Pt=chunkLEBM6ZSZ_cjs.n(qh,"AmazonS3","S3Client",chunkLEBM6ZSZ_cjs.u),Gs={Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"}},Fh={DisableS3ExpressSessionAuth:{type:"staticContextParams",value:true},Bucket:{type:"contextParams",name:"Bucket"},Key:{type:"contextParams",name:"Key"},CopySource:{type:"contextParams",name:"CopySource"}};var Hh={DisableS3ExpressSessionAuth:{type:"staticContextParams",value:true},Bucket:{type:"contextParams",name:"Bucket"}},Gh={Bucket:{type:"contextParams",name:"Bucket"}};var zh={Bucket:{type:"contextParams",name:"Bucket"},Prefix:{type:"contextParams",name:"Prefix"}};var zs=(r,e,t,s)=>[_s(t)],Kh=(r,e,t,s)=>[_s(t),ia(t)];var Vh=(r,e,t,s)=>[Bo(t,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:true}),_s(t)];var Wh=(r,e,t,s)=>[_s(t),ia(t),_u()];var Zh=(r,e,t,s)=>[Bo(t,{requestAlgorithmMember:{httpHeader:"x-amz-sdk-checksum-algorithm",name:"ChecksumAlgorithm"},requestChecksumRequired:false}),gu(),_s(t),ia(t)];chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Pe=class r extends chunkLEBM6ZSZ_cjs.f{constructor(e){super(e),Object.setPrototypeOf(this,r.prototype);}};var zo=class r extends Pe{name="NoSuchUpload";$fault="client";constructor(e){super({name:"NoSuchUpload",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},Ko=class r extends Pe{name="AccessDenied";$fault="client";constructor(e){super({name:"AccessDenied",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},Vo=class r extends Pe{name="ObjectNotInActiveTierError";$fault="client";constructor(e){super({name:"ObjectNotInActiveTierError",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},Wo=class r extends Pe{name="BucketAlreadyExists";$fault="client";constructor(e){super({name:"BucketAlreadyExists",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},Zo=class r extends Pe{name="BucketAlreadyOwnedByYou";$fault="client";constructor(e){super({name:"BucketAlreadyOwnedByYou",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},Xo=class r extends Pe{name="NoSuchBucket";$fault="client";constructor(e){super({name:"NoSuchBucket",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},Jo=class r extends Pe{name="NoSuchKey";$fault="client";constructor(e){super({name:"NoSuchKey",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},Qo=class r extends Pe{name="InvalidObjectState";$fault="client";StorageClass;AccessTier;constructor(e){super({name:"InvalidObjectState",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype),this.StorageClass=e.StorageClass,this.AccessTier=e.AccessTier;}},Yo=class r extends Pe{name="NoSuchAnnotation";$fault="client";constructor(e){super({name:"NoSuchAnnotation",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},ei=class r extends Pe{name="NotFound";$fault="client";constructor(e){super({name:"NotFound",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},ti=class r extends Pe{name="InvalidPrefix";$fault="client";constructor(e){super({name:"InvalidPrefix",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},ri=class r extends Pe{name="EncryptionTypeMismatch";$fault="client";constructor(e){super({name:"EncryptionTypeMismatch",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},si=class r extends Pe{name="InvalidRequest";$fault="client";constructor(e){super({name:"InvalidRequest",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},ni=class r extends Pe{name="InvalidWriteOffset";$fault="client";constructor(e){super({name:"InvalidWriteOffset",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},ai=class r extends Pe{name="TooManyParts";$fault="client";constructor(e){super({name:"TooManyParts",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},oi=class r extends Pe{name="AnnotationLimitExceeded";$fault="client";constructor(e){super({name:"AnnotationLimitExceeded",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},ii=class r extends Pe{name="AnnotationNameTooLong";$fault="client";constructor(e){super({name:"AnnotationNameTooLong",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},ci=class r extends Pe{name="InvalidAnnotationName";$fault="client";constructor(e){super({name:"InvalidAnnotationName",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},ui=class r extends Pe{name="UnsupportedMediaType";$fault="client";constructor(e){super({name:"UnsupportedMediaType",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},li=class r extends Pe{name="IdempotencyParameterMismatch";$fault="client";constructor(e){super({name:"IdempotencyParameterMismatch",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}},di=class r extends Pe{name="ObjectAlreadyInActiveTierError";$fault="client";constructor(e){super({name:"ObjectAlreadyInActiveTierError",$fault:"client",...e}),Object.setPrototypeOf(this,r.prototype);}};var Ks="ACL",ab="AccessDenied",ob="AnnotationDirective",Xh="AccessKeyId",mb="AnnotationLimitExceeded",_b="AnnotationNameTooLong",Wu="AcceptRanges",Cb="ArchiveStatus",hg="AccessTier",E="Bucket",Tb="BucketAlreadyExists",Pb="BucketAlreadyOwnedByYou",Xu="BypassGovernanceRetention",ht="BucketKeyEnabled",ya="Body",oe="ChecksumAlgorithm",Vs="CacheControl",Ye="ChecksumCRC32",et="ChecksumCRC32C",tt="ChecksumCRC64NVME",xa="Cache-Control",_a="Content-Disposition",Ws="ContentDisposition",wa="Content-Encoding",Zs="ContentEncoding",Xs="ContentLanguage",ba="Content-Language",Js="Content-Length",Qs="ContentLength",ke="Content-MD5",rt="ChecksumMD5",Ee="ContentMD5",Yu="ChecksumMode",sv="CopyObject",nv="CopyObjectOutput",Sg="CopyObjectResult",av="CopyObjectRequest",ov="CommonPrefix",iv="CommonPrefixList",$i="CommonPrefixes",rl="ContentRange",Rg="Content-Range",st="ChecksumSHA1",nt="ChecksumSHA256",at="ChecksumSHA512",Cg="CopySourceIfMatch",kg="CopySourceIfModifiedSince",Eg="CopySourceIfNoneMatch",Tg="CopySourceIfUnmodifiedSince",dv="CreateSessionOutput",pv="CreateSessionResult",fv="CreateSessionRequest",Og="CopySourceSSECustomerAlgorithm",sl="CopySourceSSECustomerKey",Pg="CopySourceSSECustomerKeyMD5",Dg="CopySourceVersionId",Lg="CopySource",yv="CreateSession",Rt="ChecksumType",va="Content-Type",en="ContentType",gt="ContinuationToken",ot="ChecksumXXHASH64",it="ChecksumXXHASH3",ct="ChecksumXXHASH128",wv="Code",Bg="Contents",Yh="Credentials",bs="DeleteMarker",oS="DeleteMarkerVersionId",nl="DisplayName",iS="DeletedObject",dS="DeleteObjectOutput",pS="DeleteObjectsOutput",mS="DeleteObjectRequest",fS="DeleteObjectsRequest",xS="DeletedObjects",_S="DeleteObject",wS="DeleteObjects",AS="DeleteResult",qu="Delete",RS="Deleted",es="Delimiter",rn="Error",D="ExpectedBucketOwner",yi="ExpiresString",Vg="ExpectedSourceBucketOwner",$e="ETag",LS="EncryptionTypeMismatch",ts="EncodingType",Xg="Errors",yr="Expiration",sr="Expires",jS="FetchOwner",sn="GrantFullControl",nn="GrantRead",an="GrantReadACP",on="GrantWriteACP",MR="HeadObject",UR="HeadObjectOutput",qR="HeadObjectRequest",HR="InvalidAnnotationName",cn="ID",un="IfMatch",ZR="IfMatchLastModifiedTime",XR="IfMatchSize",fl="If-Modified-Since",iy="IfModifiedSince",Ss="If-Match",Sa="IfNoneMatch",ln="If-None-Match",YR="InvalidObjectState",tC="InvalidPrefix",rC="IdempotencyParameterMismatch",sC="InvalidRequest",nC="IsRestoreInProgress",xr="IsTruncated",ly="IfUnmodifiedSince",gl="If-Unmodified-Since",lC="InvalidWriteOffset",se="Key",hC="KeyCount",my="ListBucketResult",Wt="LastModified",QC="LastModifiedTime",Mi="Last-Modified",uk="ListObjectsV2",lk="ListObjectsV2Output",pk="ListObjectsV2Request",dn="Metadata",kk="MetadataDirective",_l="MFA",pn="MaxKeys",wl="MissingMeta",Dk="Message",As="Name",mn="NextContinuationToken",Nk="NotFound",Mk="NoSuchAnnotation",Uk="NoSuchBucket",qk="NoSuchKey",Fk="NoSuchUpload",ar="Owner",Wk="ObjectAlreadyInActiveTierError",Qk="ObjectIdentifier",Yk="ObjectIdentifierList",fn="ObjectLockLegalHoldStatus",hn="ObjectLockMode",gn="ObjectLockRetainUntilDate",aE="ObjectList",oE="ObjectNotInActiveTierError",bl="OptionalObjectAttributes",mE="Objects",jy="Object",Te="Prefix",Fi="PartsCount",Rs="PartNumber",s1="PutObject",g1="PutObjectOutput",y1="PutObjectRequest",E1="Quiet",be="RequestCharged",Zy="ResponseCacheControl",Xy="ResponseContentDisposition",Jy="ResponseContentEncoding",Qy="ResponseContentLanguage",Yy="ResponseContentType",e0="ResponseExpires",L1="RestoreExpiryDate",he="RequestPayer",Aa="ReplicationStatus",Cl="RestoreStatus",Ei="Range",kl="Restore",o0="StartAfter",sg="SecretAccessKey",sT="StreamingBlob",xt="StorageClass",aT="SessionCredentialValue",oT="SessionCredentials",yT="SessionMode",_t="ServerSideEncryption",ze="SSECustomerAlgorithm",Zt="SSECustomerKey",Ke="SSECustomerKeyMD5",Ur="SSEKMSEncryptionContext",Ct="SSEKMSKeyId",ng="SessionToken",Cs="Size",Ol="TagCount",BT="TaggingDirective",UT="TooManyParts",nr="Tagging",eO="UnsupportedMediaType",pe="VersionId",gO="WriteOffsetBytes",Ea="WebsiteRedirectLocation",T0="accept-ranges",je="client",ss="continuation-token",Ji="delimiter",Me="error",Qi="encoding-type",bO="fetch-owner",O="http",xe="httpChecksum",qe="httpError",o="httpHeader",me="httpPayload",_n="httpPrefixHeaders",j="httpQuery",Bl="max-keys",Ta="prefix",Yi="partNumber",I0="response-cache-control",D0="response-content-disposition",L0="response-content-encoding",$0="response-content-language",B0="response-content-type",N0="response-expires",j0="smithy.ts.sdk.synthetic.com.amazonaws.s3",PO="start-after",M0="streaming",Ve="versionId",ee="xmlFlattened",k="xmlName",wn="x-amz-acl",BO="x-amz-archive-status",Nl="x-amz-bypass-governance-retention",jl="x-amz-checksum-algorithm",_r="x-amz-checksum-crc32",wr="x-amz-checksum-crc32c",br="x-amz-checksum-crc64nvme",vr="x-amz-checksum-md5",Ml="x-amz-checksum-mode",Sr="x-amz-checksum-sha1",Ar="x-amz-checksum-sha256",Rr="x-amz-checksum-sha512",K0="x-amz-copy-source",V0="x-amz-copy-source-if-match",W0="x-amz-copy-source-if-modified-since",Z0="x-amz-copy-source-if-none-match",X0="x-amz-copy-source-if-unmodified-since",HO="x-amz-create-session-mode",J0="x-amz-copy-source-server-side-encryption-customer-algorithm",Q0="x-amz-copy-source-server-side-encryption-customer-key",Y0="x-amz-copy-source-server-side-encryption-customer-key-MD5",ex="x-amz-copy-source-version-id",ns="x-amz-checksum-type",Cr="x-amz-checksum-xxhash64",kr="x-amz-checksum-xxhash3",Er="x-amz-checksum-xxhash128",ec="x-amz-delete-marker",Pa="x-amz-expiration",L="x-amz-expected-bucket-owner",bn="x-amz-grant-full-control",vn="x-amz-grant-read",Sn="x-amz-grant-read-acp",An="x-amz-grant-write-acp",LP="x-amz-if-match-last-modified-time",$P="x-amz-if-match-size",Rn="x-amz-meta-",ql="x-amz-mfa",BP="x-amz-metadata-directive",tx="x-amz-missing-meta",rx="x-amz-mp-parts-count",UP="x-amz-object-annotation-directive",Ia="x-amz-object-lock-legal-hold",Da="x-amz-object-lock-mode",La="x-amz-object-lock-retain-until-date",Fl="x-amz-optional-object-attributes",FP="x-amz-object-size",nx="x-amz-restore",Se="x-amz-request-charged",ge="x-amz-request-payer",Hl="x-amz-replication-status",$a="x-amz-storage-class",ve="x-amz-sdk-checksum-algorithm",ax="x-amz-source-expected-bucket-owner",kt="x-amz-server-side-encryption",Mt="x-amz-server-side-encryption-aws-kms-key-id",Ut="x-amz-server-side-encryption-bucket-key-enabled",as="x-amz-server-side-encryption-context",ut="x-amz-server-side-encryption-customer-algorithm",or="x-amz-server-side-encryption-customer-key",lt="x-amz-server-side-encryption-customer-key-MD5",Gl="x-amz-tagging",ox="x-amz-tagging-count",YP="x-amz-tagging-directive",Tr="x-amz-version-id",eI="x-amz-write-offset-bytes",Ba="x-amz-website-redirect-location",u="com.amazonaws.s3",ix=chunkGNEVCEJU_cjs.n.for(j0),rI=[-3,j0,"S3ServiceException",0,[],[]];ix.registerError(rI,Pe);var Be=chunkGNEVCEJU_cjs.n.for(u),sI=[-3,u,ab,{[Me]:je,[qe]:403},[],[]];Be.registerError(sI,Ko);var nI=[-3,u,mb,{[Me]:je,[qe]:400},[],[]];Be.registerError(nI,oi);var aI=[-3,u,_b,{[Me]:je,[qe]:400},[],[]];Be.registerError(aI,ii);var oI=[-3,u,Tb,{[Me]:je,[qe]:409},[],[]];Be.registerError(oI,Wo);var iI=[-3,u,Pb,{[Me]:je,[qe]:409},[],[]];Be.registerError(iI,Zo);var cI=[-3,u,LS,{[Me]:je,[qe]:400},[],[]];Be.registerError(cI,ri);var uI=[-3,u,rC,{[Me]:je,[qe]:400},[],[]];Be.registerError(uI,li);var lI=[-3,u,HR,{[Me]:je,[qe]:400},[],[]];Be.registerError(lI,ci);var dI=[-3,u,YR,{[Me]:je,[qe]:403},[xt,hg],[0,0]];Be.registerError(dI,Qo);var pI=[-3,u,tC,{[Me]:je,[qe]:400},[],[]];Be.registerError(pI,ti);var mI=[-3,u,sC,{[Me]:je,[qe]:400},[],[]];Be.registerError(mI,si);var fI=[-3,u,lC,{[Me]:je,[qe]:400},[],[]];Be.registerError(fI,ni);var hI=[-3,u,Mk,{[Me]:je,[qe]:404},[],[]];Be.registerError(hI,Yo);var gI=[-3,u,Uk,{[Me]:je,[qe]:404},[],[]];Be.registerError(gI,Xo);var yI=[-3,u,qk,{[Me]:je,[qe]:404},[],[]];Be.registerError(yI,Jo);var xI=[-3,u,Fk,{[Me]:je,[qe]:404},[],[]];Be.registerError(xI,zo);var _I=[-3,u,Nk,{[Me]:je},[],[]];Be.registerError(_I,ei);var wI=[-3,u,Wk,{[Me]:je,[qe]:403},[],[]];Be.registerError(wI,di);var bI=[-3,u,oE,{[Me]:je,[qe]:403},[],[]];Be.registerError(bI,Vo);var vI=[-3,u,UT,{[Me]:je,[qe]:400},[],[]];Be.registerError(vI,ai);var SI=[-3,u,eO,{[Me]:je,[qe]:415},[],[]];Be.registerError(SI,ui);var cx=[ix,Be],ux=[0,u,sl,8,0],ag=[0,u,aT,8,0],ir=[0,u,Zt,8,0],os=[0,u,Ur,8,0],pt=[0,u,Ct,8,0],ks=[0,u,sT,{[M0]:1},42],HI=[3,u,ov,0,[Te],[0]],XI=[3,u,nv,0,[Sg,yr,Dg,pe,_t,ze,Ke,Ct,Ur,ht,be],[[()=>QI,16],[0,{[o]:Pa}],[0,{[o]:ex}],[0,{[o]:Tr}],[0,{[o]:kt}],[0,{[o]:ut}],[0,{[o]:lt}],[()=>pt,{[o]:Mt}],[()=>os,{[o]:as}],[2,{[o]:Ut}],[0,{[o]:Se}]]],JI=[3,u,av,0,[E,Lg,se,Ks,Vs,oe,Ws,Zs,Xs,en,Cg,kg,Eg,Tg,sr,sn,nn,an,on,un,Sa,dn,kk,BT,ob,_t,xt,Ea,ze,Zt,Ke,Ct,Ur,ht,Og,sl,Pg,he,nr,hn,gn,fn,D,Vg],[[0,1],[0,{[o]:K0}],[0,1],[0,{[o]:wn}],[0,{[o]:xa}],[0,{[o]:jl}],[0,{[o]:_a}],[0,{[o]:wa}],[0,{[o]:ba}],[0,{[o]:va}],[0,{[o]:V0}],[4,{[o]:W0}],[0,{[o]:Z0}],[4,{[o]:X0}],[4,{[o]:sr}],[0,{[o]:bn}],[0,{[o]:vn}],[0,{[o]:Sn}],[0,{[o]:An}],[0,{[o]:Ss}],[0,{[o]:ln}],[128,{[_n]:Rn}],[0,{[o]:BP}],[0,{[o]:YP}],[0,{[o]:UP}],[0,{[o]:kt}],[0,{[o]:$a}],[0,{[o]:Ba}],[0,{[o]:ut}],[()=>ir,{[o]:or}],[0,{[o]:lt}],[()=>pt,{[o]:Mt}],[()=>os,{[o]:as}],[2,{[o]:Ut}],[0,{[o]:J0}],[()=>ux,{[o]:Q0}],[0,{[o]:Y0}],[0,{[o]:ge}],[0,{[o]:Gl}],[0,{[o]:Da}],[5,{[o]:La}],[0,{[o]:Ia}],[0,{[o]:L}],[0,{[o]:ax}]],3],QI=[3,u,Sg,0,[$e,Wt,Rt,Ye,et,tt,st,nt,at,rt,ot,it,ct],[0,4,0,0,0,0,0,0,0,0,0,0,0]],u3=[3,u,dv,{[k]:pv},[Yh,_t,Ct,Ur,ht],[[()=>jL,{[k]:Yh}],[0,{[o]:kt}],[()=>pt,{[o]:Mt}],[()=>os,{[o]:as}],[2,{[o]:Ut}]],1],l3=[3,u,fv,0,[E,yT,_t,Ct,Ur,ht],[[0,1],[0,{[o]:HO}],[0,{[o]:kt}],[()=>pt,{[o]:Mt}],[()=>os,{[o]:as}],[2,{[o]:Ut}]],1],f3=[3,u,qu,0,[mE,E1],[[()=>k$,{[ee]:1,[k]:jy}],2],1],O3=[3,u,iS,0,[se,pe,bs,oS],[0,0,2,0]],$3=[3,u,dS,0,[bs,pe,be],[[2,{[o]:ec}],[0,{[o]:Tr}],[0,{[o]:Se}]]],B3=[3,u,mS,0,[E,se,_l,pe,he,Xu,D,un,ZR,XR],[[0,1],[0,1],[0,{[o]:ql}],[0,{[j]:Ve}],[0,{[o]:ge}],[2,{[o]:Nl}],[0,{[o]:L}],[0,{[o]:Ss}],[6,{[o]:LP}],[1,{[o]:$P}]],2],N3=[3,u,pS,{[k]:AS},[RS,be,Xg],[[()=>h$,{[ee]:1}],[0,{[o]:Se}],[()=>x$,{[ee]:1,[k]:rn}]]],j3=[3,u,fS,0,[E,qu,_l,he,Xu,D,oe],[[0,1],[()=>f3,{[me]:1,[k]:qu}],[0,{[o]:ql}],[0,{[o]:ge}],[2,{[o]:Nl}],[0,{[o]:L}],[0,{[o]:ve}]],2],V3=[3,u,rn,0,[se,pe,wv,Dk],[0,0,0,0]],h4=[3,u,UR,0,[bs,Wu,yr,kl,Cb,Wt,Qs,Ye,et,tt,st,nt,at,rt,ot,it,ct,Rt,$e,wl,pe,Vs,Ws,Zs,Xs,en,rl,sr,yi,Ea,_t,dn,ze,Ke,Ct,ht,xt,be,Aa,Fi,Ol,hn,gn,fn],[[2,{[o]:ec}],[0,{[o]:T0}],[0,{[o]:Pa}],[0,{[o]:nx}],[0,{[o]:BO}],[4,{[o]:Mi}],[1,{[o]:Js}],[0,{[o]:_r}],[0,{[o]:wr}],[0,{[o]:br}],[0,{[o]:Sr}],[0,{[o]:Ar}],[0,{[o]:Rr}],[0,{[o]:vr}],[0,{[o]:Cr}],[0,{[o]:kr}],[0,{[o]:Er}],[0,{[o]:ns}],[0,{[o]:$e}],[1,{[o]:tx}],[0,{[o]:Tr}],[0,{[o]:xa}],[0,{[o]:_a}],[0,{[o]:wa}],[0,{[o]:ba}],[0,{[o]:va}],[0,{[o]:Rg}],[4,{[o]:sr}],[0,{[o]:yi}],[0,{[o]:Ba}],[0,{[o]:kt}],[128,{[_n]:Rn}],[0,{[o]:ut}],[0,{[o]:lt}],[()=>pt,{[o]:Mt}],[2,{[o]:Ut}],[0,{[o]:$a}],[0,{[o]:Se}],[0,{[o]:Hl}],[1,{[o]:rx}],[1,{[o]:ox}],[0,{[o]:Da}],[5,{[o]:La}],[0,{[o]:Ia}]]],g4=[3,u,qR,0,[E,se,un,iy,Sa,ly,Ei,Zy,Xy,Jy,Qy,Yy,e0,pe,ze,Zt,Ke,he,Rs,D,Yu],[[0,1],[0,1],[0,{[o]:Ss}],[4,{[o]:fl}],[0,{[o]:ln}],[4,{[o]:gl}],[0,{[o]:Ei}],[0,{[j]:I0}],[0,{[j]:D0}],[0,{[j]:L0}],[0,{[j]:$0}],[0,{[j]:B0}],[6,{[j]:N0}],[0,{[j]:Ve}],[0,{[o]:ut}],[()=>ir,{[o]:or}],[0,{[o]:lt}],[0,{[o]:ge}],[1,{[j]:Yi}],[0,{[o]:L}],[0,{[o]:Ml}]],2],tD=[3,u,lk,{[k]:my},[xr,Bg,As,Te,es,pn,$i,ts,hC,gt,mn,o0,be],[2,[()=>Dx,{[ee]:1}],0,0,0,1,[()=>sc,{[ee]:1}],0,1,0,0,0,[0,{[o]:Se}]]],rD=[3,u,pk,0,[E,es,ts,pn,Te,gt,jS,o0,he,D,bl],[[0,1],[0,{[j]:Ji}],[0,{[j]:Qi}],[1,{[j]:Bl}],[0,{[j]:Ta}],[0,{[j]:ss}],[2,{[j]:bO}],[0,{[j]:PO}],[0,{[o]:ge}],[0,{[o]:L}],[64,{[o]:Fl}]],1],xD=[3,u,jy,0,[se,Wt,$e,oe,Rt,Cs,xt,ar,Cl],[0,4,0,[64,{[ee]:1}],0,1,0,()=>qr,()=>Ex]],_D=[3,u,Qk,0,[se,pe,$e,QC,Cs],[0,0,0,6,1],1],qr=[3,u,ar,0,[nl,cn],[0,0]],aL=[3,u,g1,0,[yr,$e,Ye,et,tt,st,nt,at,rt,ot,it,ct,Rt,_t,pe,ze,Ke,Ct,Ur,ht,Cs,be],[[0,{[o]:Pa}],[0,{[o]:$e}],[0,{[o]:_r}],[0,{[o]:wr}],[0,{[o]:br}],[0,{[o]:Sr}],[0,{[o]:Ar}],[0,{[o]:Rr}],[0,{[o]:vr}],[0,{[o]:Cr}],[0,{[o]:kr}],[0,{[o]:Er}],[0,{[o]:ns}],[0,{[o]:kt}],[0,{[o]:Tr}],[0,{[o]:ut}],[0,{[o]:lt}],[()=>pt,{[o]:Mt}],[()=>os,{[o]:as}],[2,{[o]:Ut}],[1,{[o]:FP}],[0,{[o]:Se}]]],oL=[3,u,y1,0,[E,se,Ks,ya,Vs,Ws,Zs,Xs,Qs,Ee,en,oe,Ye,et,tt,st,nt,at,rt,ot,it,ct,sr,un,Sa,sn,nn,an,on,gO,dn,_t,xt,Ea,ze,Zt,Ke,Ct,Ur,ht,he,nr,hn,gn,fn,D],[[0,1],[0,1],[0,{[o]:wn}],[()=>ks,16],[0,{[o]:xa}],[0,{[o]:_a}],[0,{[o]:wa}],[0,{[o]:ba}],[1,{[o]:Js}],[0,{[o]:ke}],[0,{[o]:va}],[0,{[o]:ve}],[0,{[o]:_r}],[0,{[o]:wr}],[0,{[o]:br}],[0,{[o]:Sr}],[0,{[o]:Ar}],[0,{[o]:Rr}],[0,{[o]:vr}],[0,{[o]:Cr}],[0,{[o]:kr}],[0,{[o]:Er}],[4,{[o]:sr}],[0,{[o]:Ss}],[0,{[o]:ln}],[0,{[o]:bn}],[0,{[o]:vn}],[0,{[o]:Sn}],[0,{[o]:An}],[1,{[o]:eI}],[128,{[_n]:Rn}],[0,{[o]:kt}],[0,{[o]:$a}],[0,{[o]:Ba}],[0,{[o]:ut}],[()=>ir,{[o]:or}],[0,{[o]:lt}],[()=>pt,{[o]:Mt}],[()=>os,{[o]:as}],[2,{[o]:Ut}],[0,{[o]:ge}],[0,{[o]:Gl}],[0,{[o]:Da}],[5,{[o]:La}],[0,{[o]:Ia}],[0,{[o]:L}]],2],Ex=[3,u,Cl,0,[nC,L1],[2,4]],jL=[3,u,oT,0,[Xh,sg,ng,yr],[[0,{[k]:Xh}],[()=>ag,{[k]:sg}],[()=>ag,{[k]:ng}],[4,{[k]:yr}]],4];var sc=[1,u,iv,0,()=>HI],h$=[1,u,xS,0,()=>O3],x$=[1,u,Xg,0,()=>V3];var k$=[1,u,Yk,0,()=>_D],Dx=[1,u,aE,0,[()=>xD,0]];var $x=[9,u,sv,{[O]:["PUT","/{Key+}?x-id=CopyObject",200]},()=>JI,()=>XI],Bx=[9,u,yv,{[O]:["GET","/?session",200]},()=>l3,()=>u3],Nx=[9,u,_S,{[O]:["DELETE","/{Key+}?x-id=DeleteObject",204]},()=>B3,()=>$3],jx=[9,u,wS,{[xe]:"-",[O]:["POST","/?delete",200]},()=>j3,()=>N3],Mx=[9,u,MR,{[O]:["HEAD","/{Key+}",200]},()=>g4,()=>h4],Ux=[9,u,uk,{[O]:["GET","/?list-type=2",200]},()=>rD,()=>tD],qx=[9,u,s1,{[xe]:"-",[O]:["PUT","/{Key+}?x-id=PutObject",200]},()=>oL,()=>aL];var ac=class extends Pt(Hh,zs,"CreateSession",Bx){};chunkBUNLC3II_cjs.h();var Fx={version:"3.1091.0"};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Hx="AWS_EC2_METADATA_DISABLED",Gx=async r=>{let{ENV_CMDS_FULL_URI:e,ENV_CMDS_RELATIVE_URI:t,fromContainerMetadata:s,fromInstanceMetadata:n}=await import('./dist-es-CRIMATLL.cjs');if(process.env[t]||process.env[e]){r.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromHttp/fromContainerMetadata");let{fromHttp:a}=await import('./dist-es-BOW5V247.cjs');return chunkGNEVCEJU_cjs.r(a(r),s(r))}return process.env[Hx]&&process.env[Hx]!=="false"?async()=>{throw new chunkGNEVCEJU_cjs.p("EC2 Instance Metadata Service access disabled",{logger:r.logger})}:(r.logger?.debug("@aws-sdk/credential-provider-node - remoteProvider::fromInstanceMetadata"),n(r))};chunkBUNLC3II_cjs.h();function zx(r,e){let t=z$(r),s,n,a,i,c=async d=>{if(d?.forceRefresh)return i||(i=t(d).then(y=>{a=y;}).finally(()=>{i=void 0;})),await i,a;if(a?.expiration&&a?.expiration?.getTime()<Date.now()&&(a=void 0),s)await s;else if(!a||e?.(a))if(a)n||(n=t(d).then(y=>{a=y;}).finally(()=>{n=void 0;}));else return s=t(d).then(y=>{a=y;}).finally(()=>{s=void 0;}),c(d);return a};return c}var z$=r=>async e=>{let t;for(let s of r)try{return await s(e)}catch(n){if(t=n,n?.tryNextLink)continue;throw n}throw t};var Kx=false,Yl=(r={})=>zx([async()=>{if(r.profile??process.env[chunkGNEVCEJU_cjs.u])throw process.env[chunk35PGCW3S_cjs.a]&&process.env[chunk35PGCW3S_cjs.b]&&(Kx||((r.logger?.warn&&r.logger?.constructor?.name!=="NoOpLogger"?r.logger.warn.bind(r.logger):console.warn)(`@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING:
|
|
44
|
+
Multiple credential sources detected:
|
|
45
|
+
Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set.
|
|
46
|
+
This SDK will proceed with the AWS_PROFILE value.
|
|
47
|
+
|
|
48
|
+
However, a future version may change this behavior to prefer the ENV static credentials.
|
|
49
|
+
Please ensure that your environment only sets either the AWS_PROFILE or the
|
|
50
|
+
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.
|
|
51
|
+
`),Kx=true)),new chunkGNEVCEJU_cjs.p("AWS_PROFILE is set, skipping fromEnv provider.",{logger:r.logger,tryNextLink:true});return r.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromEnv"),chunk35PGCW3S_cjs.g(r)()},async e=>{r.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromSSO");let{ssoStartUrl:t,ssoAccountId:s,ssoRegion:n,ssoRoleName:a,ssoSession:i}=r;if(!t&&!s&&!n&&!a&&!i)throw new chunkGNEVCEJU_cjs.p("Skipping SSO provider in default chain (inputs do not include SSO fields).",{logger:r.logger});let{fromSSO:c}=await import('./dist-es-T2H2W5BX.cjs');return c(r)(e)},async e=>{r.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromIni");let{fromIni:t}=await import('./dist-es-SRPWSAF4.cjs');return t(r)(e)},async e=>{r.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromProcess");let{fromProcess:t}=await import('./dist-es-3SSNUZST.cjs');return t(r)(e)},async e=>{r.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::fromTokenFile");let{fromTokenFile:t}=await import('./dist-es-DL3VLVP6.cjs');return t(r)(e)},async()=>(r.logger?.debug("@aws-sdk/credential-provider-node - defaultProvider::remoteProvider"),(await Gx(r))()),async()=>{throw new chunkGNEVCEJU_cjs.p("Could not load credentials from any providers",{tryNextLink:false,logger:r.logger})}],Vx);var Vx=r=>r?.expiration!==void 0&&r.expiration.getTime()-Date.now()<3e5;chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Ue=64,Wx=20,Zx=new Int32Array([1732584193,4023233417,2562383102,271733878,3285377520]),K$=new Int32Array([1518500249,1859775393,2400959708,3395469782]),oc=class r{digestLength=Wx;state=Int32Array.from(Zx);w;buffer=new Uint8Array(Ue);bufferLength=0;bytesHashed=0;finished=false;inner;outer;constructor(e){if(e){let t=r.normalizeKey(e);this.inner=new r,this.outer=new r;let s=new Uint8Array(Ue*2);for(let n=0;n<Ue;++n)s[n]=54^t[n],s[n+Ue]=92^t[n];this.inner.update(s.subarray(0,Ue)),this.outer.update(s.subarray(Ue));}}update(e){if(this.finished)throw new Error("Attempted to update an already finished HMAC.");if(this.inner){this.inner.update(e);return}let t=0,{length:s}=e;if(this.bytesHashed+=s,this.bufferLength>0){for(;s>0&&this.bufferLength<Ue;)this.buffer[this.bufferLength++]=e[t++],--s;this.bufferLength===Ue&&(this.hashBuffer(this.buffer,0),this.bufferLength=0);}for(;s>=Ue;)this.hashBuffer(e,t),t+=Ue,s-=Ue;for(;s>0;)this.buffer[this.bufferLength++]=e[t++],--s;}async digest(){if(this.inner&&this.outer){if(this.finished)throw new Error("Attempted to digest an already finished HMAC.");this.finished=true;let e=this.inner.digestSync();return this.outer.update(e),this.outer.digestSync()}return this.digestSync()}reset(){this.state=Int32Array.from(Zx),this.buffer=new Uint8Array(Ue),this.bufferLength=0,this.bytesHashed=0;}digestSync(){let e=this.state.slice(),t=this.buffer.slice(),s=this.bufferLength,n=this.bytesHashed/536870912|0,a=this.bytesHashed<<3;if(t[s++]=128,s>Ue-8){for(let d=s;d<Ue;++d)t[d]=0;this.hashBufferWith(e,t,0),s=0;}for(let d=s;d<Ue-8;++d)t[d]=0;let i=new DataView(t.buffer,t.byteOffset,Ue);i.setUint32(Ue-8,n,false),i.setUint32(Ue-4,a,false),this.hashBufferWith(e,t,0);let c=new Uint8Array(Wx);return c[0]=e[0]>>>24&255,c[1]=e[0]>>>16&255,c[2]=e[0]>>>8&255,c[3]=e[0]&255,c[4]=e[1]>>>24&255,c[5]=e[1]>>>16&255,c[6]=e[1]>>>8&255,c[7]=e[1]&255,c[8]=e[2]>>>24&255,c[9]=e[2]>>>16&255,c[10]=e[2]>>>8&255,c[11]=e[2]&255,c[12]=e[3]>>>24&255,c[13]=e[3]>>>16&255,c[14]=e[3]>>>8&255,c[15]=e[3]&255,c[16]=e[4]>>>24&255,c[17]=e[4]>>>16&255,c[18]=e[4]>>>8&255,c[19]=e[4]&255,c}static normalizeKey(e){let t=chunkLQ3YZTPU_cjs.v(e);if(t.byteLength>Ue){let n=new r;n.update(t);let a=n.digestSync(),i=new Uint8Array(Ue);return i.set(a),i}let s=new Uint8Array(Ue);return s.set(t),s}hashBuffer(e,t){this.hashBufferWith(this.state,e,t);}hashBufferWith(e,t,s){let n=this.w??=new Int32Array(80),a=e[0],i=e[1],c=e[2],d=e[3],y=e[4];for(let x=0;x<16;++x)n[x]=(t[s+x*4]&255)<<24|(t[s+x*4+1]&255)<<16|(t[s+x*4+2]&255)<<8|t[s+x*4+3]&255;for(let x=16;x<80;++x){let _=n[x-3]^n[x-8]^n[x-14]^n[x-16];n[x]=_<<1|_>>>31;}for(let x=0;x<80;++x){let _=x<20?0:x<40?1:x<60?2:3,I=((a<<5|a>>>27)+(_===0?i&c^~i&d:_===2?i&c^i&d^c&d:i^c^d)|0)+(y+(K$[_]+n[x]|0)|0)|0;y=d,d=c,c=i<<30|i>>>2,i=a,a=I;}e[0]=e[0]+a|0,e[1]=e[1]+i|0,e[2]=e[2]+c|0,e[3]=e[3]+d|0,e[4]=e[4]+y|0;}};chunkBUNLC3II_cjs.h();var W$=(()=>{try{return BB.createHash("sha1"),!0}catch{return false}})(),ic=W$?Z$():oc;function Z$(){return class{digestLength=20;secret;hash;isHmac;finished=false;constructor(e){this.secret=e,this.isHmac=!!e,this.hash=this.createHash();}update(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");this.hash.update(e);}async digest(){let e;return this.isHmac?(this.finished=true,e=this.hash.digest()):e=this.hash.copy().digest(),new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}reset(){this.hash=this.createHash(),this.finished=false;}createHash(){return this.secret?BB.createHmac("sha1",X$(this.secret)):BB.createHash("sha1")}}}function X$(r){return typeof r=="string"?r:ArrayBuffer.isView(r)?Buffer.from(r.buffer,r.byteOffset,r.byteLength):Buffer.from(r)}var Jx=r=>({apiVersion:"2006-03-01",base64Decoder:r?.base64Decoder??chunkLQ3YZTPU_cjs.b,base64Encoder:r?.base64Encoder??chunkLQ3YZTPU_cjs.d,disableHostPrefix:r?.disableHostPrefix??false,endpointProvider:r?.endpointProvider??Go,extensions:r?.extensions??[],getAwsChunkedEncodingStream:r?.getAwsChunkedEncodingStream??chunkLQ3YZTPU_cjs.y,httpAuthSchemeProvider:r?.httpAuthSchemeProvider??jh,httpAuthSchemes:r?.httpAuthSchemes??[{schemeId:"aws.auth#sigv4",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4"),signer:new chunkPITMDQYN_cjs.f},{schemeId:"aws.auth#sigv4a",identityProvider:e=>e.getIdentityProvider("aws.auth#sigv4a"),signer:new chunkPITMDQYN_cjs.g}],logger:r?.logger??new chunkLEBM6ZSZ_cjs.m,md5:r?.md5??chunkEZIDQBXI_cjs.b,protocol:r?.protocol??oa,protocolSettings:r?.protocolSettings??{defaultNamespace:"com.amazonaws.s3",errorTypeRegistries:cx,xmlNamespace:"http://s3.amazonaws.com/doc/2006-03-01/",version:"2006-03-01",serviceTarget:"AmazonS3"},sdkStreamMixin:r?.sdkStreamMixin??chunkLQ3YZTPU_cjs.A,serviceId:r?.serviceId??"S3",sha1:r?.sha1??ic,sha256:r?.sha256??chunkEZIDQBXI_cjs.d,signerConstructor:r?.signerConstructor??chunkUNYXWPLZ_cjs.a,signingEscapePath:r?.signingEscapePath??false,urlParser:r?.urlParser??chunkGNEVCEJU_cjs.i,useArnRegion:r?.useArnRegion??void 0,utf8Decoder:r?.utf8Decoder??chunkLQ3YZTPU_cjs.c,utf8Encoder:r?.utf8Encoder??chunkLQ3YZTPU_cjs.e});var Qx=r=>{chunkLEBM6ZSZ_cjs.i(process.version);let e=chunkGNEVCEJU_cjs.I(r),t=()=>e().then(chunkLEBM6ZSZ_cjs.h),s=Jx(r);chunkLEBM6ZSZ_cjs.a(process.version);let n={profile:r?.profile,logger:s.logger};return {...s,...r,runtime:"node",defaultsMode:e,authSchemePreference:r?.authSchemePreference??chunkGNEVCEJU_cjs.C(chunkPITMDQYN_cjs.h,n),bodyLengthChecker:r?.bodyLengthChecker??chunkLQ3YZTPU_cjs.u,credentialDefaultProvider:r?.credentialDefaultProvider??Yl,defaultUserAgentProvider:r?.defaultUserAgentProvider??chunkLEBM6ZSZ_cjs.P({serviceId:s.serviceId,clientVersion:Fx.version}),disableS3ExpressSessionAuth:r?.disableS3ExpressSessionAuth??chunkGNEVCEJU_cjs.C(wu,n),eventStreamSerdeProvider:r?.eventStreamSerdeProvider??chunk3VXEK5ZW_cjs.n,maxAttempts:r?.maxAttempts??chunkGNEVCEJU_cjs.C(chunkLEBM6ZSZ_cjs.w,r),region:r?.region??chunkGNEVCEJU_cjs.C(chunkGNEVCEJU_cjs.F,{...chunkGNEVCEJU_cjs.G,...n}),requestChecksumCalculation:r?.requestChecksumCalculation??chunkGNEVCEJU_cjs.C(nu,n),requestHandler:chunkGIS6X43A_cjs.a.create(r?.requestHandler??t),responseChecksumValidation:r?.responseChecksumValidation??chunkGNEVCEJU_cjs.C(au,n),retryMode:r?.retryMode??chunkGNEVCEJU_cjs.C({...chunkLEBM6ZSZ_cjs.y,default:async()=>(await t()).retryMode||chunkLEBM6ZSZ_cjs.v},r),sigv4aSigningRegionSet:r?.sigv4aSigningRegionSet??chunkGNEVCEJU_cjs.C(chunkPITMDQYN_cjs.j,n),streamCollector:r?.streamCollector??chunkLQ3YZTPU_cjs.z,streamHasher:r?.streamHasher??chunkEZIDQBXI_cjs.a,useArnRegion:r?.useArnRegion??chunkGNEVCEJU_cjs.C(Ru,n),useDualstackEndpoint:r?.useDualstackEndpoint??chunkGNEVCEJU_cjs.C(chunkGNEVCEJU_cjs.D,n),useFipsEndpoint:r?.useFipsEndpoint??chunkGNEVCEJU_cjs.C(chunkGNEVCEJU_cjs.E,n),userAgentAppId:r?.userAgentAppId??chunkGNEVCEJU_cjs.C(chunkLEBM6ZSZ_cjs.Q,n)}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Yx=r=>{let e=r.httpAuthSchemes,t=r.httpAuthSchemeProvider,s=r.credentials;return {setHttpAuthScheme(n){let a=e.findIndex(i=>i.schemeId===n.schemeId);a===-1?e.push(n):e.splice(a,1,n);},httpAuthSchemes(){return e},setHttpAuthSchemeProvider(n){t=n;},httpAuthSchemeProvider(){return t},setCredentials(n){s=n;},credentials(){return s}}},e_=r=>({httpAuthSchemes:r.httpAuthSchemes(),httpAuthSchemeProvider:r.httpAuthSchemeProvider(),credentials:r.credentials()});var t_=(r,e)=>{let t=Object.assign(chunkLEBM6ZSZ_cjs.T(r),chunkLEBM6ZSZ_cjs.j(r),chunkGNEVCEJU_cjs.R(r),Yx(r));return e.forEach(s=>s.configure(t)),Object.assign(r,chunkLEBM6ZSZ_cjs.U(t),chunkLEBM6ZSZ_cjs.k(t),chunkGNEVCEJU_cjs.S(t),e_(t))};var cc=class extends chunkLEBM6ZSZ_cjs.c{config;constructor(...[e]){let t=Qx(e||{});super(t),this.initConfig=t;let s=Uh(t),n=chunkLEBM6ZSZ_cjs.N(s),a=hu(n),i=chunkLEBM6ZSZ_cjs.x(a),c=chunkGNEVCEJU_cjs.H(i),d=c,y=chunkLEBM6ZSZ_cjs.t(d),x=chunk3VXEK5ZW_cjs.q(y),_=Mh(x),I=xu(_,{session:[()=>this,ac]}),H=t_(I,e?.extensions||[]);this.config=H,this.middlewareStack.use(chunkGNEVCEJU_cjs.l(this.config)),this.middlewareStack.use(chunkLEBM6ZSZ_cjs.O(this.config)),this.middlewareStack.use(chunkLEBM6ZSZ_cjs.z(this.config)),this.middlewareStack.use(chunkGNEVCEJU_cjs.T(this.config)),this.middlewareStack.use(chunkLEBM6ZSZ_cjs.B(this.config)),this.middlewareStack.use(chunkLEBM6ZSZ_cjs.C(this.config)),this.middlewareStack.use(chunkLEBM6ZSZ_cjs.D(this.config)),this.middlewareStack.use(chunkLEBM6ZSZ_cjs.E(this.config,{httpAuthSchemeParametersProvider:$h,identityProviderConfigProvider:async U=>new chunkLEBM6ZSZ_cjs.I({"aws.auth#sigv4":U.credentials,"aws.auth#sigv4a":U.credentials})})),this.middlewareStack.use(chunkLEBM6ZSZ_cjs.G(this.config)),this.middlewareStack.use(Au(this.config)),this.middlewareStack.use(Cu(this.config)),this.middlewareStack.use(yu(this.config)),this.middlewareStack.use(bu(this.config)),this.middlewareStack.use(vu(this.config));}destroy(){super.destroy();}};chunkBUNLC3II_cjs.h();var uc=class extends Pt(Fh,Kh,"CopyObject",$x){};chunkBUNLC3II_cjs.h();var kn=class extends Pt(Gs,zs,"DeleteObject",Nx){};chunkBUNLC3II_cjs.h();var lc=class extends Pt(Gh,Vh,"DeleteObjects",jx){};chunkBUNLC3II_cjs.h();var ja=class extends Pt(Gs,Wh,"HeadObject",Mx){};chunkBUNLC3II_cjs.h();var Ma=class extends Pt(zh,zs,"ListObjectsV2",Ux){};chunkBUNLC3II_cjs.h();var Ua=class extends Pt(Gs,Zh,"PutObject",qx){};function r_(r){if(!r)return "";if(r.startsWith("pub-"))return r;let e=r.match(/pub-[a-zA-Z0-9]+/i);return e?e[0]:""}function J$(r,e){let t=r.startsWith("/")?r.slice(1):r;if(e.cdnUrl)return `${e.cdnUrl.replace(/\/$/,"")}/${t}`;switch(e.provider){case "r2":{let s=r_(e.publicDevUrl);return s?`https://${s}.r2.dev/${t}`:`https://${e.bucket}.${e.accountId}.r2.cloudflarestorage.com/${t}`}case "gcs":return `https://storage.googleapis.com/${e.bucket}/${t}`;case "digitalocean":return `https://${e.bucket}.${e.region}.cdn.digitaloceanspaces.com/${t}`;case "backblaze":return `https://${e.bucket}.s3.backblazeb2.com/${t}`;case "wasabi":return `https://${e.bucket}.s3.wasabisys.com/${t}`;default:return `https://${e.bucket}.s3.${e.region}.amazonaws.com/${t}`}}function ed(r){if(r.cdnUrl)return r.cdnUrl.replace(/\/$/,"")+"/";switch(r.provider){case "r2":{let e=r_(r.publicDevUrl);return e?`https://${e}.r2.dev/`:`https://${r.bucket}.${r.accountId}.r2.cloudflarestorage.com/`}case "gcs":return `https://storage.googleapis.com/${r.bucket}/`;case "digitalocean":return `https://${r.bucket}.${r.region}.cdn.digitaloceanspaces.com/`;case "backblaze":return `https://${r.bucket}.s3.backblazeb2.com/`;case "wasabi":return `https://${r.bucket}.s3.wasabisys.com/`;default:return `https://${r.bucket}.s3.${r.region}.amazonaws.com/`}}function Q$(r){switch(r){case "r2":return "Cloudflare R2";case "gcs":return "Google Cloud Storage";case "digitalocean":return "DigitalOcean Spaces";case "backblaze":return "Backblaze B2";case "wasabi":return "Wasabi";default:return "AWS S3"}}function Y$(r){let e=new cc({region:r.region||"auto",endpoint:r.endpoint,credentials:{accessKeyId:r.accessKeyId,secretAccessKey:r.secretAccessKey},forcePathStyle:true,tls:true,...r.provider==="r2"&&{requestHandler:new chunkGIS6X43A_cjs.a}}),t=n=>`${r.prefix?`${r.prefix}/`:""}${n}`.replace(/\/+/g,"/"),s=n=>J$(n,r);return Dr({name:r.provider,displayName:Q$(r.provider),supportsDynamicResize:true,async upload(n,a){let i=t(`${a?.folder?`${a.folder}/`:""}${a?.filename||n.name}`),c=Buffer.from(await n.arrayBuffer());await e.send(new Ua({Bucket:r.bucket,Key:i,Body:c,ContentType:n.type,Metadata:a?.metadata}));let d=await e.send(new ja({Bucket:r.bucket,Key:i}));return {id:Buffer.from(i).toString("base64url"),filename:a?.filename||n.name,originalName:n.name,mimeType:n.type,size:c.length,url:s(i),thumbnailUrl:n.type.startsWith("image/")?s(i):void 0,folder:a?.folder,provider:r.provider,metadata:{...a?.metadata,etag:d.ETag},createdAt:new Date().toISOString()}},async delete(n){let a=n.replace(ed(r),"");await e.send(new kn({Bucket:r.bucket,Key:a}));},async rename(n,a){let i=n.replace(ed(r),""),c=r.prefix?`${r.prefix}/${a}`:a;return await e.send(new uc({Bucket:r.bucket,CopySource:`${r.bucket}/${i}`,Key:c})),await e.send(new kn({Bucket:r.bucket,Key:i})),s(c)},async list(n){let a=t(n||"");return ((await e.send(new Ma({Bucket:r.bucket,Prefix:a}))).Contents||[]).map(c=>({id:Buffer.from(c.Key||"").toString("base64url"),filename:c.Key?.split("/").pop()||"",originalName:c.Key?.split("/").pop()||"",mimeType:"application/octet-stream",size:c.Size||0,url:s(c.Key||""),provider:r.provider,createdAt:c.LastModified?.toISOString()||new Date().toISOString()}))},async exists(n){try{let a=n.replace(ed(r),"");return await e.send(new ja({Bucket:r.bucket,Key:a})),!0}catch{return false}},async createFolder(n){let a=t(`${n}/`);await e.send(new Ua({Bucket:r.bucket,Key:a,Body:""}));},async deleteFolder(n){let a=t(`${n}/`),i;do{let c=await e.send(new Ma({Bucket:r.bucket,Prefix:a,ContinuationToken:i}));if(c.Contents?.length){let d=c.Contents.map(y=>({Key:y.Key}));await e.send(new lc({Bucket:r.bucket,Delete:{Objects:d}}));}i=c.IsTruncated?c.NextContinuationToken:void 0;}while(i);await e.send(new kn({Bucket:r.bucket,Key:a}));}})}chunkBUNLC3II_cjs.h();function eB(r){let e=()=>`https://api.cloudinary.com/v1_1/${r.cloudName}/upload`,t=async s=>{let n=await import('crypto'),a=Object.keys(s).sort().map(i=>`${i}=${s[i]}`).join("&");return n.createHash("sha256").update(a+r.apiSecret).digest("hex")};return {name:"cloudinary",displayName:"Cloudinary",supportsDynamicResize:true,async upload(s,n){let a=new FormData;if(a.append("file",s),r.uploadPreset)a.append("upload_preset",r.uploadPreset);else {let d=Math.round(Date.now()/1e3),y={timestamp:String(d)};(n?.folder||r.folder)&&(y.folder=n?.folder||r.folder||"");let x=await t(y);a.append("timestamp",String(d)),a.append("signature",x),a.append("api_key",r.apiKey);}(n?.folder||r.folder)&&a.append("folder",n?.folder||r.folder||"");let i=await fetch(e(),{method:"POST",body:a});if(!i.ok){let d=await i.json();throw new Error(`Cloudinary upload failed: ${d.error?.message||i.statusText}`)}let c=await i.json();return {id:c.public_id,filename:`${c.public_id}.${c.format}`,originalName:c.original_filename||s.name,mimeType:s.type||`image/${c.format}`,size:c.bytes,url:c.secure_url,thumbnailUrl:this.getImageUrl(c.secure_url,{width:200,height:200,fit:"crop"}),width:c.width,height:c.height,folder:n?.folder||r.folder,provider:"cloudinary",createdAt:new Date().toISOString()}},async uploadFromUrl(s,n){let a=new FormData;a.append("file",s),a.append("upload_preset","ml_default"),(n?.folder||r.folder)&&a.append("folder",n?.folder||r.folder||"");let i=await fetch(e(),{method:"POST",body:a});if(!i.ok)throw new Error("Cloudinary upload failed");let c=await i.json();return {id:c.public_id,filename:`${c.public_id}.${c.format}`,originalName:c.original_filename||s.split("/").pop()||"file",mimeType:`image/${c.format}`,size:c.bytes,url:c.secure_url,thumbnailUrl:this.getImageUrl(c.secure_url,{width:200,height:200,fit:"crop"}),width:c.width,height:c.height,provider:"cloudinary",createdAt:new Date().toISOString()}},async delete(s){try{let n=s.split("/image/upload/");if(n.length!==2){console.warn("[Cloudinary delete] Could not parse URL:",s);return}let a=n[1].replace(/^v\d+\//,"").replace(/\.[^.]+$/,""),i=Math.round(Date.now()/1e3),c={timestamp:String(i),public_id:a},d=Object.keys(c).sort().map(U=>`${U}=${c[U]}`).join("&"),x=(await import('crypto')).createHash("sha256").update(d+r.apiSecret).digest("hex"),_=`https://api.cloudinary.com/v1_1/${r.cloudName}/image/destroy`,I=new FormData;I.append("public_id",a),I.append("timestamp",String(i)),I.append("signature",x),I.append("api_key",r.apiKey);let H=await fetch(_,{method:"POST",body:I});if(!H.ok){let U=await H.json();console.warn("[Cloudinary delete] Failed:",U);}}catch(n){console.warn("[Cloudinary delete] Error:",n.message);}},async rename(s,n){let a="",i=n.replace(/\.[^.]+$/,""),c="";try{let d=s.split("/image/upload/");if(d.length!==2)return console.warn("[Cloudinary rename] Could not parse old URL:",s),s;let y=d[1],x=y.match(/^(v\d+)\//);a=x?x[1]:"";let _=y.replace(/^v\d+\//,"").replace(/\.[^.]+$/,""),I=_.split("/");c=I.length>1?I.slice(0,-1).join("/"):"";let H=n.replace(/\.[^.]+$/,"");i=c?`${c}/${H}`:H;let U=Math.round(Date.now()/1e3),F={from_public_id:_,to_public_id:i,timestamp:String(U)},ce=Object.keys(F).sort().map(We=>`${We}=${F[We]}`).join("&"),Oe=(await import('crypto')).createHash("sha256").update(ce+r.apiSecret).digest("hex"),W=new FormData;W.append("from_public_id",_),W.append("to_public_id",i),W.append("timestamp",String(U)),W.append("signature",Oe),W.append("api_key",r.apiKey);let bt=await fetch(`https://api.cloudinary.com/v1_1/${r.cloudName}/image/rename`,{method:"POST",body:W});if(bt.ok)return (await bt.json()).secure_url;{let We=await bt.json();console.warn("[Cloudinary rename] Failed:",We);let q=a?`/${a}/`:"/";return `https://res.cloudinary.com/${r.cloudName}/image/upload${q}${i}.${n.split(".").pop()}`}}catch(d){console.warn("[Cloudinary rename] Error:",d.message);let y=a?`/${a}/`:"/";return `https://res.cloudinary.com/${r.cloudName}/image/upload${y}${i}.${n.split(".").pop()}`}},getImageUrl(s,n){if(!n)return s;let a=s.split("/upload/");if(a.length!==2)return s;let i=[];if(n.width&&i.push(`w_${n.width}`),n.height&&i.push(`h_${n.height}`),n.fit){let d={crop:"c_fill",clip:"c_fit",scale:"c_scale",fill:"c_fill"};i.push(d[n.fit]||"c_limit");}n.quality&&i.push(`q_${n.quality}`),n.format&&i.push(`f_${n.format}`);let c=i.join(",");return `${a[0]}/upload/${c}/${a[1]}`},async generateThumbnail(s){return this.getImageUrl(s.url,{width:200,height:200,fit:"crop"})},async list(){return []},async exists(s){return (await fetch(s,{method:"HEAD"})).ok},async createFolder(){},async deleteFolder(){}}}chunkBUNLC3II_cjs.h();async function s_(r){let e=r.getStorageConfig(),t=su();try{return await t.resolve(e.type,e)}catch(s){return console.warn(`[resolveProvider] ${s.message} \u2014 falling back to local storage`),gs({uploadDir:Co__default.default.join(process.cwd(),"public","uploads"),baseUrl:"/uploads"})}}function Dr(r){return {async uploadFromUrl(e,t){let s=await fetch(e);if(!s.ok)throw new Error(`Failed to fetch: ${s.statusText}`);let n=await s.blob(),a=e.split("/").pop()||"file",i=new File([n],a,{type:n.type});return this.upload(i,t)},getImageUrl(e,t){if(!t||Object.keys(t).length===0)return e;let s=new URLSearchParams({url:e});return t.width&&s.set("w",String(t.width)),t.height&&s.set("h",String(t.height)),t.quality&&s.set("q",String(t.quality)),t.format&&s.set("f",t.format),t.cropWidth&&t.cropHeight&&(s.set("cx",String(t.cropX??0)),s.set("cy",String(t.cropY??0)),s.set("cw",String(t.cropWidth)),s.set("ch",String(t.cropHeight))),`/api/media/resize?${s.toString()}`},async generateThumbnail(e){return this.getImageUrl(e.url,{width:400,height:400})},...r}}async function n_(r){if(!r)return console.warn("[resolveProviderWithConfig] No config, using local"),gs({uploadDir:Co__default.default.join(process.cwd(),"public","uploads"),baseUrl:"/uploads"});let e=r.type||"local",t=su();try{return await t.resolveWithConfig(e,r)}catch(s){return console.warn(`[resolveProviderWithConfig] ${s.message} \u2014 falling back to local storage`),gs({uploadDir:Co__default.default.join(process.cwd(),"public","uploads"),baseUrl:"/uploads"})}}chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();function a_(){return typeof globalThis>"u"?false:typeof globalThis.EdgeRuntime=="string"||typeof globalThis.WebSocketPair<"u"||typeof globalThis.Deno<"u"||typeof process<"u"&&process.env?.NEXT_RUNTIME==="edge"}async function o_(r){if(!a_())try{let{default:e}=await import('sharp'),t=await e(r).metadata(),s=e(r).webp({quality:85}),n=e(r).resize({width:500,withoutEnlargement:!0}).webp({quality:80});return {buffer:await s.toBuffer(),thumbnailBuffer:await n.toBuffer(),width:t.width,height:t.height,format:"webp"}}catch{}return {buffer:r,thumbnailBuffer:r,format:"passthrough"}}var rd=false;function qa(r){if(typeof r!="string")return r;let e=r.replace(/-/g,"").toLowerCase();return e.length===32?`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20)}`:r}var dc=class r{db;storage;dialect;genId;mediaTable="media";foldersTable="media_folders";constructor(e,t,s){this.db=e,this.storage=t,this.dialect=s?.dialect||"sqlite",this.genId=s?.genId||chunk6KUL2BSA_cjs.e;}static async init(e,t){let s;if(t?.storageConfig)s=await n_(t.storageConfig);else {let a=new chunkYUER4JU3_cjs.j(e);await a.load(),s=await s_(a);}let n=new r(e,s,t);return await n.ensureTables(),n}async ensureTables(){if(this.dialect==="mongodb"){let e=this.db.db;await e.collection(this.mediaTable).createIndex({filename:1},{unique:true}),await e.collection(this.foldersTable).createIndex({path:1},{unique:true}),rd=true;return}if(this.dialect==="sqlite"){this.db.exec(`
|
|
52
|
+
CREATE TABLE IF NOT EXISTS media (
|
|
53
|
+
id TEXT PRIMARY KEY,
|
|
54
|
+
filename TEXT NOT NULL UNIQUE,
|
|
55
|
+
title TEXT,
|
|
56
|
+
original_name TEXT NOT NULL,
|
|
57
|
+
mime_type TEXT NOT NULL,
|
|
58
|
+
file_size INTEGER NOT NULL,
|
|
59
|
+
width INTEGER,
|
|
60
|
+
height INTEGER,
|
|
61
|
+
url TEXT NOT NULL UNIQUE,
|
|
62
|
+
thumbnail_url TEXT,
|
|
63
|
+
folder TEXT,
|
|
64
|
+
provider TEXT NOT NULL,
|
|
65
|
+
alt TEXT,
|
|
66
|
+
caption TEXT,
|
|
67
|
+
metadata TEXT,
|
|
68
|
+
created_at TEXT NOT NULL,
|
|
69
|
+
updated_at TEXT NOT NULL
|
|
70
|
+
);
|
|
71
|
+
CREATE INDEX IF NOT EXISTS idx_media_folder ON media(folder);
|
|
72
|
+
CREATE INDEX IF NOT EXISTS idx_media_provider ON media(provider);
|
|
73
|
+
CREATE INDEX IF NOT EXISTS idx_media_filename ON media(filename);
|
|
74
|
+
`),this.db.exec(`
|
|
75
|
+
CREATE TABLE IF NOT EXISTS media_folders (
|
|
76
|
+
id TEXT PRIMARY KEY,
|
|
77
|
+
name TEXT NOT NULL,
|
|
78
|
+
path TEXT NOT NULL,
|
|
79
|
+
parent_path TEXT,
|
|
80
|
+
created_at TEXT
|
|
81
|
+
);
|
|
82
|
+
CREATE INDEX IF NOT EXISTS idx_media_folders_path ON media_folders(path);
|
|
83
|
+
`);try{let e=this.db.prepare("PRAGMA table_info(media)").all(),t=new Set(e.map(n=>n.name)),s=(n,a)=>{t.has(n)||this.db.exec(`ALTER TABLE media ADD COLUMN ${n} ${a}`);};s("created_at","TEXT"),s("updated_at","TEXT"),s("original_name","TEXT"),s("mime_type","TEXT"),s("file_size","INTEGER"),s("thumbnail_url","TEXT"),t.has("createdAt")&&this.db.exec("UPDATE media SET created_at = createdAt WHERE created_at IS NULL AND createdAt IS NOT NULL"),t.has("updatedAt")&&this.db.exec("UPDATE media SET updated_at = updatedAt WHERE updated_at IS NULL AND updatedAt IS NOT NULL"),t.has("originalName")&&this.db.exec("UPDATE media SET original_name = originalName WHERE original_name IS NULL AND originalName IS NOT NULL"),t.has("mimeType")&&this.db.exec("UPDATE media SET mime_type = mimeType WHERE mime_type IS NULL AND mimeType IS NOT NULL"),t.has("fileSize")&&this.db.exec("UPDATE media SET file_size = fileSize WHERE file_size IS NULL AND fileSize IS NOT NULL"),t.has("thumbnailUrl")&&this.db.exec("UPDATE media SET thumbnail_url = thumbnailUrl WHERE thumbnail_url IS NULL AND thumbnailUrl IS NOT NULL");}catch{}}else if(this.dialect==="postgres"){if(rd)return;let{sql:e}=await import('./drizzle-orm-47ELDEM6.cjs');await this.db.execute(e`
|
|
84
|
+
CREATE TABLE IF NOT EXISTS "media" (
|
|
85
|
+
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
86
|
+
"filename" VARCHAR(255) NOT NULL UNIQUE,
|
|
87
|
+
"title" VARCHAR(255),
|
|
88
|
+
"original_name" VARCHAR(255) NOT NULL,
|
|
89
|
+
"mime_type" VARCHAR(100),
|
|
90
|
+
"file_size" INTEGER,
|
|
91
|
+
"width" INTEGER,
|
|
92
|
+
"height" INTEGER,
|
|
93
|
+
"url" TEXT NOT NULL UNIQUE,
|
|
94
|
+
"thumbnail_url" TEXT,
|
|
95
|
+
"folder" VARCHAR(255),
|
|
96
|
+
"provider" VARCHAR(50) NOT NULL,
|
|
97
|
+
"alt" TEXT,
|
|
98
|
+
"caption" TEXT,
|
|
99
|
+
"metadata" JSONB,
|
|
100
|
+
"created_at" TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
101
|
+
"updated_at" TIMESTAMP NOT NULL DEFAULT NOW()
|
|
102
|
+
)
|
|
103
|
+
`),await this.db.execute(e`CREATE INDEX IF NOT EXISTS "idx_media_folder" ON "media" ("folder")`),await this.db.execute(e`CREATE INDEX IF NOT EXISTS "idx_media_provider" ON "media" ("provider")`),await this.db.execute(e`CREATE INDEX IF NOT EXISTS "idx_media_filename" ON "media" ("filename")`),await this.db.execute(e`
|
|
104
|
+
CREATE TABLE IF NOT EXISTS "media_folders" (
|
|
105
|
+
"id" UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
106
|
+
"name" VARCHAR(255) NOT NULL,
|
|
107
|
+
"path" TEXT NOT NULL,
|
|
108
|
+
"parent_path" TEXT,
|
|
109
|
+
"created_at" TIMESTAMP NOT NULL DEFAULT NOW()
|
|
110
|
+
)
|
|
111
|
+
`),await this.db.execute(e`CREATE INDEX IF NOT EXISTS "idx_media_folders_path" ON "media_folders" ("path")`),rd=true;}}now(){return new Date().toISOString()}buildFindConditions(e){let t=[],s=[],n=e.sortBy==="name"?"title":e.sortBy==="createdAt"?"created_at":e.sortBy==="updatedAt"?"updated_at":e.sortBy||"created_at",a=e.sortDir==="asc"?"ASC":"DESC";if(e.search){t.push("(title LIKE ? OR filename LIKE ? OR original_name LIKE ? OR alt LIKE ?)");let c=`%${e.search}%`;s.push(c,c,c,c);}return e.type&&e.type!=="all"&&(t.push("mime_type LIKE ?"),s.push(`${e.type}/%`)),e.folder&&(t.push("(folder = ? OR folder LIKE ?)"),s.push(e.folder,`${e.folder}/%`)),{where:t.length>0?`WHERE ${t.join(" AND ")}`:"",params:s,orderBy:a,sortCol:n}}rowToMedia(e,t){return {id:e.id,filename:e.filename,title:e.title??null,originalName:e.original_name??e.originalName,mimeType:e.mime_type??e.mimeType,fileSize:e.file_size??e.fileSize,width:e.width??null,height:e.height??null,url:r.resolveMediaUrl(e.url,t),thumbnailUrl:r.resolveMediaUrl(e.thumbnail_url??e.thumbnailUrl??null,t),folder:e.folder??null,provider:e.provider,alt:e.alt??null,caption:e.caption??null,metadata:typeof e.metadata=="string"?JSON.parse(e.metadata):e.metadata??null,createdAt:e.created_at??e.createdAt,updatedAt:e.updated_at??e.updatedAt}}static resolveMediaUrl(e,t){return e?e.startsWith("http://")||e.startsWith("https://")||e.startsWith("blob:")||e.startsWith("data:")?e:`${(process.env.KYRO_BASE_URL||t||"http://localhost:4321").replace(/\/+$/,"")}${e.startsWith("/")?"":"/"}${e}`:null}async sqliteRun(e,t=[]){let s=this.db.prepare(e),n=e.trim().toLowerCase();return n.startsWith("insert")||n.startsWith("update")||n.startsWith("delete")?s.run(...t):s.all(...t)}sqliteGet(e,t=[]){return this.db.prepare(e).get(...t)}async upload(e,t="",s){let n=e.type.startsWith("image/"),a,i=e,c=e.name,d=null,y=null;if(n&&!e.type.includes("svg")){let U=Buffer.from(await e.arrayBuffer());a=await o_(U),c=`${e.name.replace(/\.[^/.]+$/,"").toLowerCase().replace(/[^a-z0-9]/g,"-").replace(/-+/g,"-").substring(0,50)}.webp`,d=a.width??null,y=a.height??null,i=new File([a.buffer],c,{type:"image/webp"});}let x=await this.storage.upload(i,{folder:t,filename:c}),_=await this.storage.generateThumbnail({...x,id:"",provider:this.storage.name,createdAt:this.now()},{width:400,height:400}),I=this.genId(),H=this.now();if(this.dialect==="mongodb"){let U=x.mimeType,F=U.startsWith("image/")?"image":U.startsWith("video/")?"video":U.startsWith("audio/")?"audio":U.startsWith("application/pdf")?"document":["application/zip","application/x-zip","application/x-tar","application/gzip","application/x-7z"].includes(U)?"archive":"other";return await this.db.db.collection(this.mediaTable).insertOne({_id:I,id:I,filename:x.filename,title:e.name.replace(/\.[^/.]+$/,""),originalName:e.name,mimeType:U,fileSize:x.size,width:d,height:y,url:x.url,thumbnailUrl:_,folder:t||"",provider:this.storage.name,type:F,status:"active",alt:null,caption:null,createdAt:new Date,updatedAt:new Date}),this.rowToMedia({id:I,filename:x.filename,title:e.name.replace(/\.[^/.]+$/,""),originalName:e.name,mimeType:U,fileSize:x.size,width:d,height:y,url:x.url,thumbnailUrl:_,folder:t||"",provider:this.storage.name,type:F,status:"active",alt:null,caption:null,createdAt:new Date,updatedAt:new Date},s)}if(this.dialect==="sqlite")await this.sqliteRun(`INSERT INTO ${this.mediaTable}
|
|
112
|
+
(id, filename, title, original_name, mime_type, file_size, width, height, url, thumbnail_url, folder, provider, alt, caption, metadata, created_at, updated_at)
|
|
113
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[I,x.filename,e.name.replace(/\.[^/.]+$/,""),e.name,x.mimeType,x.size,d,y,x.url,_,t||null,this.storage.name,null,null,null,H,H]);else {let{media:U}=await import('./media-3Z6YW5J4.cjs'),F=x.mimeType,ce=F.startsWith("image/")?"image":F.startsWith("video/")?"video":F.startsWith("audio/")?"audio":F.startsWith("application/pdf")?"document":["application/zip","application/x-zip","application/x-tar","application/gzip","application/x-7z"].includes(F)?"archive":"other",re=await this.db.insert(U).values({id:I,filename:x.filename,title:e.name.replace(/\.[^/.]+$/,""),originalName:e.name,mimeType:F,fileSize:x.size,width:d,height:y,url:x.url,thumbnailUrl:_,folder:t||"",provider:this.storage.name,type:ce,status:"active",alt:null,caption:null,createdAt:new Date,updatedAt:new Date}).returning();re&&re[0]&&(I=re[0].id);}return {id:I,filename:x.filename,title:e.name.replace(/\.[^/.]+$/,""),originalName:e.name,mimeType:x.mimeType,fileSize:x.size,width:d,height:y,url:x.url,thumbnailUrl:_,folder:t||null,provider:this.storage.name,alt:null,caption:null,metadata:null,createdAt:H,updatedAt:H}}async uploadFromUrl(e,t="",s){let n=await fetch(e);if(!n.ok)throw new Error(`Failed to fetch URL: ${n.status}`);let a=await n.blob(),i=e.split("/").pop()||"url-image",c=n.headers.get("content-type")||a.type||"application/octet-stream",d=new File([a],i,{type:c});return this.upload(d,t,s)}async delete(e,t){this.dialect==="postgres"&&(e=qa(e));let s=await this.findById(e,t);if(s){if(await this.deleteFile(s.url),s.thumbnailUrl&&s.thumbnailUrl!==s.url&&s.thumbnailUrl!==s.url+"?thumb")try{await this.deleteFile(s.thumbnailUrl);}catch{}if(this.dialect==="mongodb"){await this.db.db.collection(this.mediaTable).deleteOne({id:e});return}if(this.dialect==="sqlite")await this.sqliteRun(`DELETE FROM ${this.mediaTable} WHERE id = ?`,[e]);else {let{media:n}=await import('./media-3Z6YW5J4.cjs'),{eq:a}=await import('./drizzle-orm-47ELDEM6.cjs');await this.db.delete(n).where(a(n.id,e));}}}async deleteFile(e){await this.storage.delete(e);}async rename(e,t,s){this.dialect==="postgres"&&(e=qa(e));let n=await this.findById(e,s);if(!n)return null;let a=await this.storage.rename(n.url,t),i;if(n.thumbnailUrl||this.storage.name==="cloudinary"){let x=a.match(/\/upload\/(v\d+)\//),_=x?x[1]+"/":"",I=a.match(/(.+?)\/upload\//);i=`${I?I[1]:"https://res.cloudinary.com/"+this.storage.config?.cloudName||"unknown"}/upload/w_200,h_200,c_fill/${_}${t}`;}let c=n.filename.split(".").pop(),d=t.includes(".")?t:`${t}.${c}`,y={url:a,filename:d,thumbnailUrl:i};if(this.dialect==="mongodb")return await this.db.db.collection(this.mediaTable).updateOne({id:e},{$set:{url:a,thumbnailUrl:i||null,updatedAt:new Date}}),this.findById(e,s);if(this.dialect==="sqlite"){let x={...y};"thumbnailUrl"in x&&(x.thumbnail_url=x.thumbnailUrl,delete x.thumbnailUrl);let _=Object.keys(x).map(H=>`${H} = ?`).join(", "),I=Object.values(x);await this.sqliteRun(`UPDATE ${this.mediaTable} SET ${_}, updated_at = ? WHERE id = ?`,[...I,this.now(),e]);}else {let{media:x}=await import('./media-3Z6YW5J4.cjs'),{eq:_}=await import('./drizzle-orm-47ELDEM6.cjs');await this.db.update(x).set({...y,updatedAt:this.now()}).where(_(x.id,e));}return {...n,...y,updatedAt:this.now(),thumbnailUrl:y.thumbnailUrl??null}}async findById(e,t){if(this.dialect==="postgres"&&(e=qa(e)),this.dialect==="mongodb"){let i=await this.db.db.collection(this.mediaTable).findOne({id:e});return i?this.rowToMedia(i,t):null}if(this.dialect==="sqlite"){let i=this.sqliteGet(`SELECT * FROM ${this.mediaTable} WHERE id = ?`,[e]);return i?this.rowToMedia(i,t):null}let{media:s}=await import('./media-3Z6YW5J4.cjs'),{eq:n}=await import('./drizzle-orm-47ELDEM6.cjs'),[a]=await this.db.select().from(s).where(n(s.id,e));return a?this.rowToMedia(a,t):null}async find(e={},t){let{page:s=1,limit:n=30,search:a="",type:i="",folder:c="",sortBy:d="createdAt",sortDir:y="desc"}=e,{where:x,params:_,orderBy:I,sortCol:H}=this.buildFindConditions({page:s,limit:n,search:a,type:i,folder:c,sortBy:d,sortDir:y}),U=(s-1)*n;if(this.dialect==="mongodb"){let Dt={},{search:Lt,type:Ir,folder:mt,sortBy:Kn="createdAt",sortDir:Vn="desc"}=e;Lt&&(Dt.$or=[{title:{$regex:Lt,$options:"i"}},{filename:{$regex:Lt,$options:"i"}},{originalName:{$regex:Lt,$options:"i"}},{alt:{$regex:Lt,$options:"i"}}]),Ir&&Ir!=="all"&&(Dt.mimeType={$regex:`^${Ir}/`}),mt&&(Dt.$or=[{folder:mt},{folder:{$regex:`^${mt}/`}}]);let yd={[Kn==="name"?"title":Kn]:Vn==="asc"?1:-1},l=await this.db.db.collection(this.mediaTable).countDocuments(Dt);return {docs:(await this.db.db.collection(this.mediaTable).find(Dt).sort(yd).skip(U).limit(n).toArray()).map(b=>this.rowToMedia(b,t)),totalDocs:l,page:s,limit:n,totalPages:Math.ceil(l/n)}}if(this.dialect==="sqlite"){let Lt=this.sqliteGet(`SELECT COUNT(*) as cnt FROM ${this.mediaTable} ${x}`,_)?.cnt??0;return {docs:(await this.sqliteRun(`SELECT * FROM ${this.mediaTable} ${x} ORDER BY ${H} ${I} LIMIT ? OFFSET ?`,[..._,n,U])).map(mt=>this.rowToMedia(mt,t)),totalDocs:Lt,page:s,limit:n,totalPages:Math.ceil(Lt/n)}}let{media:F}=await import('./media-3Z6YW5J4.cjs'),{like:ce,or:re,and:Oe,asc:W,desc:bt,eq:We,sql:q}=await import('./drizzle-orm-47ELDEM6.cjs'),It=[];a&&It.push(re(ce(F.title,`%${a}%`),ce(F.filename,`%${a}%`),ce(F.originalName,`%${a}%`),ce(F.alt,`%${a}%`))),i&&i!=="all"&&It.push(ce(F.mimeType,`${i}/%`)),c&&It.push(re(We(F.folder,c),ce(F.folder,`${c}/%`)));let ls=It.length>0?Oe(...It):void 0,Fe=F[{created_at:"createdAt",updated_at:"updatedAt",title:"title",filename:"filename",file_size:"fileSize",mime_type:"mimeType",original_name:"originalName"}[H]||"createdAt"],pr=y==="asc"?W(Fe):bt(Fe),mr=await this.db.select().from(F).where(ls).orderBy(pr).limit(n).offset(U),[{count:er}]=await this.db.select({count:q`count(*)`}).from(F).where(ls),Ae=Number(er);return {docs:mr.map(Dt=>this.rowToMedia(Dt,t)),totalDocs:Ae,page:s,limit:n,totalPages:Math.ceil(Ae/n)}}async update(e,t,s){this.dialect==="postgres"&&(e=qa(e));let n=this.now();if(this.dialect==="mongodb")return await this.db.db.collection(this.mediaTable).updateOne({id:e},{$set:{...t,updatedAt:new Date}}),this.findById(e,s);if(this.dialect==="sqlite"){let d=["updated_at = ?"],y=[n];t.title!==void 0&&(d.push("title = ?"),y.push(t.title)),t.alt!==void 0&&(d.push("alt = ?"),y.push(t.alt)),t.caption!==void 0&&(d.push("caption = ?"),y.push(t.caption)),t.folder!==void 0&&(d.push("folder = ?"),y.push(t.folder)),t.metadata!==void 0&&(d.push("metadata = ?"),y.push(t.metadata===null?null:JSON.stringify(t.metadata))),t.originalName!==void 0&&(d.push("original_name = ?"),y.push(t.originalName)),y.push(e),await this.sqliteRun(`UPDATE ${this.mediaTable} SET ${d.join(", ")} WHERE id = ?`,y);let x=this.sqliteGet(`SELECT * FROM ${this.mediaTable} WHERE id = ?`,[e]);return x?this.rowToMedia(x,s):null}let{media:a}=await import('./media-3Z6YW5J4.cjs'),{eq:i}=await import('./drizzle-orm-47ELDEM6.cjs'),[c]=await this.db.update(a).set({...t,updatedAt:new Date}).where(i(a.id,e)).returning();return c?this.rowToMedia(c,s):null}async updateMany(e,t){this.dialect==="postgres"&&(e=e.map(qa));let s=this.now();if(this.dialect==="mongodb"){for(let n of e)await this.db.db.collection(this.mediaTable).updateOne({id:n},{$set:{...t,updatedAt:new Date}});return}if(this.dialect==="sqlite")for(let n of e){let a=["updated_at = ?"],i=[s];t.folder!==void 0&&(a.push("folder = ?"),i.push(t.folder||null)),i.push(n),await this.sqliteRun(`UPDATE ${this.mediaTable} SET ${a.join(", ")} WHERE id = ?`,i);}else {let{media:n}=await import('./media-3Z6YW5J4.cjs'),{eq:a}=await import('./drizzle-orm-47ELDEM6.cjs');for(let i of e)await this.db.update(n).set({...t,updatedAt:new Date}).where(a(n.id,i));}}async listFolders(){if(this.dialect==="mongodb"){let d=await this.db.db.collection(this.foldersTable).find({},{projection:{path:1}}).toArray(),y=await this.db.db.collection(this.mediaTable).distinct("folder"),x=new Set([...d.map(_=>_.path),...y]);return Array.from(x).filter(_=>_&&_!=="").sort()}if(this.dialect==="sqlite")return (await this.sqliteRun(`SELECT path FROM ${this.foldersTable} UNION
|
|
114
|
+
SELECT folder as path FROM ${this.mediaTable} WHERE folder IS NOT NULL AND folder != ''`)).map(y=>y.path).filter(y=>y&&y!=="").sort();let{media:e,mediaFolders:t}=await import('./media-3Z6YW5J4.cjs'),{eq:s,sql:n}=await import('./drizzle-orm-47ELDEM6.cjs'),a=await this.db.select({folder:e.folder}).from(e).groupBy(e.folder),i=await this.db.select({path:t.path}).from(t),c=new Set([...a.map(d=>d.folder),...i.map(d=>d.path)]);return Array.from(c).filter(d=>d&&d!=="").sort()}async createFolder(e,t=""){let s=t?`${t}/${e}`:e;await this.storage.createFolder?.(s);let n=this.now();if(this.dialect==="mongodb"){await this.db.db.collection(this.foldersTable).findOne({path:s})||await this.db.db.collection(this.foldersTable).insertOne({_id:this.genId(),name:e,path:s,parentPath:t||null,createdAt:new Date});return}if(this.dialect==="sqlite")await this.sqliteRun(`INSERT OR IGNORE INTO ${this.foldersTable} (path, name, parent_path, created_at) VALUES (?, ?, ?, ?)`,[s,e,t||null,n]);else {let{mediaFolders:a}=await import('./media-3Z6YW5J4.cjs');await this.db.insert(a).values({path:s,name:e,parentPath:t||null,createdAt:new Date}).onConflictDoNothing();}}async deleteFolder(e){let t=await this.find({folder:e,limit:1e4});for(let s of t.docs)await this.delete(s.id);if(await this.storage.deleteFolder?.(e),this.dialect==="mongodb"){await this.db.db.collection(this.foldersTable).deleteMany({$or:[{path:e},{path:{$regex:`^${e}/`}}]});return}if(this.dialect==="sqlite")await this.sqliteRun(`DELETE FROM ${this.foldersTable} WHERE path = ? OR path LIKE ?`,[e,`${e}/%`]);else {let{mediaFolders:s}=await import('./media-3Z6YW5J4.cjs'),{like:n,or:a,eq:i}=await import('./drizzle-orm-47ELDEM6.cjs');await this.db.delete(s).where(a(i(s.path,e),n(s.path,`${e}/%`)));}}};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var c_=Symbol("Let zodToJsonSchema decide on which parser to use");var i_={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:true,rejectedAdditionalProperties:false,definitionPath:"definitions",target:"jsonSchema7",strictUnions:false,definitions:{},errorMessages:false,markdownDescription:false,patternStrategy:"escape",applyRegexFlags:false,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},u_=r=>typeof r=="string"?{...i_,name:r}:{...i_,...r};chunkBUNLC3II_cjs.h();var l_=r=>{let e=u_(r),t=e.name!==void 0?[...e.basePath,e.definitionPath,e.name]:e.basePath;return {...e,flags:{hasReferencedOpenAiAnyType:false},currentPath:t,propertyPath:void 0,seen:new Map(Object.entries(e.definitions).map(([s,n])=>[n._def,{def:n._def,path:[...e.basePath,e.definitionPath,s],jsonSchema:void 0}]))}};chunkBUNLC3II_cjs.h();function sd(r,e,t,s){s?.errorMessages&&t&&(r.errorMessage={...r.errorMessage,[e]:t});}function fe(r,e,t,s,n){r[e]=t,sd(r,e,s,n);}chunkBUNLC3II_cjs.h();var pc=(r,e)=>{let t=0;for(;t<r.length&&t<e.length&&r[t]===e[t];t++);return [(r.length-t).toString(),...e.slice(t)].join("/")};chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();exports.a=void 0;(function(r){r.assertEqual=n=>{};function e(n){}r.assertIs=e;function t(n){throw new Error}r.assertNever=t,r.arrayToEnum=n=>{let a={};for(let i of n)a[i]=i;return a},r.getValidEnumValues=n=>{let a=r.objectKeys(n).filter(c=>typeof n[n[c]]!="number"),i={};for(let c of a)i[c]=n[c];return r.objectValues(i)},r.objectValues=n=>r.objectKeys(n).map(function(a){return n[a]}),r.objectKeys=typeof Object.keys=="function"?n=>Object.keys(n):n=>{let a=[];for(let i in n)Object.prototype.hasOwnProperty.call(n,i)&&a.push(i);return a},r.find=(n,a)=>{for(let i of n)if(a(i))return i},r.isInteger=typeof Number.isInteger=="function"?n=>Number.isInteger(n):n=>typeof n=="number"&&Number.isFinite(n)&&Math.floor(n)===n;function s(n,a=" | "){return n.map(i=>typeof i=="string"?`'${i}'`:i).join(a)}r.joinValues=s,r.jsonStringifyReplacer=(n,a)=>typeof a=="bigint"?a.toString():a;})(exports.a||(exports.a={}));exports.b=void 0;(function(r){r.mergeShapes=(e,t)=>({...e,...t});})(exports.b||(exports.b={}));var K=exports.a.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Hr=r=>{switch(typeof r){case "undefined":return K.undefined;case "string":return K.string;case "number":return Number.isNaN(r)?K.nan:K.number;case "boolean":return K.boolean;case "function":return K.function;case "bigint":return K.bigint;case "symbol":return K.symbol;case "object":return Array.isArray(r)?K.array:r===null?K.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?K.promise:typeof Map<"u"&&r instanceof Map?K.map:typeof Set<"u"&&r instanceof Set?K.set:typeof Date<"u"&&r instanceof Date?K.date:K.object;default:return K.unknown}};var B=exports.a.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"]),cK=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:"),qt=class r extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s];},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s];};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e;}format(e){let t=e||function(a){return a.message},s={_errors:[]},n=a=>{for(let i of a.issues)if(i.code==="invalid_union")i.unionErrors.map(n);else if(i.code==="invalid_return_type")n(i.returnTypeError);else if(i.code==="invalid_arguments")n(i.argumentsError);else if(i.path.length===0)s._errors.push(t(i));else {let c=s,d=0;for(;d<i.path.length;){let y=i.path[d];d===i.path.length-1?(c[y]=c[y]||{_errors:[]},c[y]._errors.push(t(i))):c[y]=c[y]||{_errors:[]},c=c[y],d++;}}};return n(this),s}static assert(e){if(!(e instanceof r))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,exports.a.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){let t={},s=[];for(let n of this.issues)if(n.path.length>0){let a=n.path[0];t[a]=t[a]||[],t[a].push(e(n));}else s.push(e(n));return {formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}};qt.create=r=>new qt(r);var tB=(r,e)=>{let t;switch(r.code){case B.invalid_type:r.received===K.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case B.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,exports.a.jsonStringifyReplacer)}`;break;case B.unrecognized_keys:t=`Unrecognized key(s) in object: ${exports.a.joinValues(r.keys,", ")}`;break;case B.invalid_union:t="Invalid input";break;case B.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${exports.a.joinValues(r.options)}`;break;case B.invalid_enum_value:t=`Invalid enum value. Expected ${exports.a.joinValues(r.options)}, received '${r.received}'`;break;case B.invalid_arguments:t="Invalid function arguments";break;case B.invalid_return_type:t="Invalid function return type";break;case B.invalid_date:t="Invalid date";break;case B.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:exports.a.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case B.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case B.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case B.custom:t="Invalid input";break;case B.invalid_intersection_types:t="Intersection results could not be merged";break;case B.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case B.not_finite:t="Number must be finite";break;default:t=e.defaultError,exports.a.assertNever(r);}return {message:t}},is=tB;var p_=is;function gK(r){p_=r;}function Fa(){return p_}chunkBUNLC3II_cjs.h();var mc=r=>{let{data:e,path:t,errorMaps:s,issueData:n}=r,a=[...t,...n.path||[]],i={...n,path:a};if(n.message!==void 0)return {...n,path:a,message:n.message};let c="",d=s.filter(y=>!!y).slice().reverse();for(let y of d)c=y(i,{data:e,defaultError:c}).message;return {...n,path:a,message:c}},bK=[];function G(r,e){let t=Fa(),s=mc({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===is?void 0:is].filter(n=>!!n)});r.common.issues.push(s);}var wt=class r{constructor(){this.value="valid";}dirty(){this.value==="valid"&&(this.value="dirty");}abort(){this.value!=="aborted"&&(this.value="aborted");}static mergeArray(e,t){let s=[];for(let n of t){if(n.status==="aborted")return Y;n.status==="dirty"&&e.dirty(),s.push(n.value);}return {status:e.value,value:s}}static async mergeObjectAsync(e,t){let s=[];for(let n of t){let a=await n.key,i=await n.value;s.push({key:a,value:i});}return r.mergeObjectSync(e,s)}static mergeObjectSync(e,t){let s={};for(let n of t){let{key:a,value:i}=n;if(a.status==="aborted"||i.status==="aborted")return Y;a.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof i.value<"u"||n.alwaysSet)&&(s[a.value]=i.value);}return {status:e.value,value:s}}},Y=Object.freeze({status:"aborted"}),En=r=>({status:"dirty",value:r}),Et=r=>({status:"valid",value:r}),nd=r=>r.status==="aborted",ad=r=>r.status==="dirty",Es=r=>r.status==="valid",Ha=r=>typeof Promise<"u"&&r instanceof Promise;chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Z;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e?.message;})(Z||(Z={}));var Qt=class{constructor(e,t,s,n){this._cachedPath=[],this.parent=e,this.data=t,this._path=s,this._key=n;}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},m_=(r,e)=>{if(Es(e))return {success:true,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return {success:false,get error(){if(this._error)return this._error;let t=new qt(r.common.issues);return this._error=t,this._error}}};function ne(r){if(!r)return {};let{errorMap:e,invalid_type_error:t,required_error:s,description:n}=r;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:n}:{errorMap:(i,c)=>{let{message:d}=r;return i.code==="invalid_enum_value"?{message:d??c.defaultError}:typeof c.data>"u"?{message:d??s??c.defaultError}:i.code!=="invalid_type"?{message:c.defaultError}:{message:d??t??c.defaultError}},description:n}}var ie=class{get description(){return this._def.description}_getType(e){return Hr(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:Hr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return {status:new wt,ctx:{common:e.parent.common,data:e.data,parsedType:Hr(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(Ha(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){let s={common:{issues:[],async:t?.async??false,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Hr(e)},n=this._parseSync({data:e,path:s.path,parent:s});return m_(s,n)}"~validate"(e){let t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Hr(e)};if(!this["~standard"].async)try{let s=this._parseSync({data:e,path:[],parent:t});return Es(s)?{value:s.value}:{issues:t.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=true),t.common={issues:[],async:true};}return this._parseAsync({data:e,path:[],parent:t}).then(s=>Es(s)?{value:s.value}:{issues:t.common.issues})}async parseAsync(e,t){let s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){let s={common:{issues:[],contextualErrorMap:t?.errorMap,async:true},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:Hr(e)},n=this._parse({data:e,path:s.path,parent:s}),a=await(Ha(n)?n:Promise.resolve(n));return m_(s,a)}refine(e,t){let s=n=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(n):t;return this._refinement((n,a)=>{let i=e(n),c=()=>a.addIssue({code:B.custom,...s(n)});return typeof Promise<"u"&&i instanceof Promise?i.then(d=>d?true:(c(),false)):i?true:(c(),false)})}refinement(e,t){return this._refinement((s,n)=>e(s)?true:(n.addIssue(typeof t=="function"?t(s,n):t),false))}_refinement(e){return new ur({schema:this,typeName:exports.ia.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,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:t=>this["~validate"](t)};}optional(){return cr.create(this,this._def)}nullable(){return Kr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return us.create(this)}promise(){return Ps.create(this,this._def)}or(e){return Bn.create([this,e],this._def)}and(e){return Nn.create(this,e,this._def)}transform(e){return new ur({...ne(this._def),schema:this,typeName:exports.ia.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let t=typeof e=="function"?e:()=>e;return new Fn({...ne(this._def),innerType:this,defaultValue:t,typeName:exports.ia.ZodDefault})}brand(){return new fc({typeName:exports.ia.ZodBranded,type:this,...ne(this._def)})}catch(e){let t=typeof e=="function"?e:()=>e;return new Hn({...ne(this._def),innerType:this,catchValue:t,typeName:exports.ia.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return hc.create(this,e)}readonly(){return Gn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},rB=/^c[^\s-]{8,}$/i,sB=/^[0-9a-z]+$/,nB=/^[0-9A-HJKMNP-TV-Z]{26}$/i,aB=/^[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,oB=/^[a-z0-9_-]{21}$/i,iB=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,cB=/^[-+]?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)?)??$/,uB=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,lB="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",od,dB=/^(?:(?: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])$/,pB=/^(?:(?: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])$/,mB=/^(([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]))$/,fB=/^(([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])$/,hB=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,gB=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,h_="((\\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])))",yB=new RegExp(`^${h_}$`);function g_(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);let t=r.precision?"+":"?";return `([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function xB(r){return new RegExp(`^${g_(r)}$`)}function _B(r){let e=`${h_}T${g_(r)}`,t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function wB(r,e){return !!((e==="v4"||!e)&&dB.test(r)||(e==="v6"||!e)&&mB.test(r))}function bB(r,e){if(!iB.test(r))return false;try{let[t]=r.split(".");if(!t)return !1;let s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),n=JSON.parse(atob(s));return !(typeof n!="object"||n===null||"typ"in n&&n?.typ!=="JWT"||!n.alg||e&&n.alg!==e)}catch{return false}}function vB(r,e){return !!((e==="v4"||!e)&&pB.test(r)||(e==="v6"||!e)&&fB.test(r))}var Ts=class r extends ie{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==K.string){let a=this._getOrReturnCtx(e);return G(a,{code:B.invalid_type,expected:K.string,received:a.parsedType}),Y}let s=new wt,n;for(let a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(n=this._getOrReturnCtx(e,n),G(n,{code:B.too_small,minimum:a.value,type:"string",inclusive:true,exact:false,message:a.message}),s.dirty());else if(a.kind==="max")e.data.length>a.value&&(n=this._getOrReturnCtx(e,n),G(n,{code:B.too_big,maximum:a.value,type:"string",inclusive:true,exact:false,message:a.message}),s.dirty());else if(a.kind==="length"){let i=e.data.length>a.value,c=e.data.length<a.value;(i||c)&&(n=this._getOrReturnCtx(e,n),i?G(n,{code:B.too_big,maximum:a.value,type:"string",inclusive:true,exact:true,message:a.message}):c&&G(n,{code:B.too_small,minimum:a.value,type:"string",inclusive:true,exact:true,message:a.message}),s.dirty());}else if(a.kind==="email")uB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"email",code:B.invalid_string,message:a.message}),s.dirty());else if(a.kind==="emoji")od||(od=new RegExp(lB,"u")),od.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"emoji",code:B.invalid_string,message:a.message}),s.dirty());else if(a.kind==="uuid")aB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"uuid",code:B.invalid_string,message:a.message}),s.dirty());else if(a.kind==="nanoid")oB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"nanoid",code:B.invalid_string,message:a.message}),s.dirty());else if(a.kind==="cuid")rB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"cuid",code:B.invalid_string,message:a.message}),s.dirty());else if(a.kind==="cuid2")sB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"cuid2",code:B.invalid_string,message:a.message}),s.dirty());else if(a.kind==="ulid")nB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"ulid",code:B.invalid_string,message:a.message}),s.dirty());else if(a.kind==="url")try{new URL(e.data);}catch{n=this._getOrReturnCtx(e,n),G(n,{validation:"url",code:B.invalid_string,message:a.message}),s.dirty();}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"regex",code:B.invalid_string,message:a.message}),s.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(n=this._getOrReturnCtx(e,n),G(n,{code:B.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),s.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(n=this._getOrReturnCtx(e,n),G(n,{code:B.invalid_string,validation:{startsWith:a.value},message:a.message}),s.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(n=this._getOrReturnCtx(e,n),G(n,{code:B.invalid_string,validation:{endsWith:a.value},message:a.message}),s.dirty()):a.kind==="datetime"?_B(a).test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{code:B.invalid_string,validation:"datetime",message:a.message}),s.dirty()):a.kind==="date"?yB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{code:B.invalid_string,validation:"date",message:a.message}),s.dirty()):a.kind==="time"?xB(a).test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{code:B.invalid_string,validation:"time",message:a.message}),s.dirty()):a.kind==="duration"?cB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"duration",code:B.invalid_string,message:a.message}),s.dirty()):a.kind==="ip"?wB(e.data,a.version)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"ip",code:B.invalid_string,message:a.message}),s.dirty()):a.kind==="jwt"?bB(e.data,a.alg)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"jwt",code:B.invalid_string,message:a.message}),s.dirty()):a.kind==="cidr"?vB(e.data,a.version)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"cidr",code:B.invalid_string,message:a.message}),s.dirty()):a.kind==="base64"?hB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"base64",code:B.invalid_string,message:a.message}),s.dirty()):a.kind==="base64url"?gB.test(e.data)||(n=this._getOrReturnCtx(e,n),G(n,{validation:"base64url",code:B.invalid_string,message:a.message}),s.dirty()):exports.a.assertNever(a);return {status:s.value,value:e.data}}_regex(e,t,s){return this.refinement(n=>e.test(n),{validation:t,code:B.invalid_string,...Z.errToObj(s)})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Z.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Z.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Z.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Z.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Z.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Z.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Z.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Z.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Z.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Z.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Z.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Z.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Z.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:false,local:false,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??false,local:e?.local??false,...Z.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...Z.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...Z.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Z.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...Z.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Z.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Z.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Z.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Z.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Z.errToObj(t)})}nonempty(e){return this.min(1,Z.errToObj(e))}trim(){return new r({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new r({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return !!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return !!this._def.checks.find(e=>e.kind==="date")}get isTime(){return !!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return !!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return !!this._def.checks.find(e=>e.kind==="email")}get isURL(){return !!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return !!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return !!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return !!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return !!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return !!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return !!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return !!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return !!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return !!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return !!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};Ts.create=r=>new Ts({checks:[],typeName:exports.ia.ZodString,coerce:r?.coerce??false,...ne(r)});function SB(r,e){let t=(r.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,n=t>s?t:s,a=Number.parseInt(r.toFixed(n).replace(".","")),i=Number.parseInt(e.toFixed(n).replace(".",""));return a%i/10**n}var On=class r extends ie{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf;}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==K.number){let a=this._getOrReturnCtx(e);return G(a,{code:B.invalid_type,expected:K.number,received:a.parsedType}),Y}let s,n=new wt;for(let a of this._def.checks)a.kind==="int"?exports.a.isInteger(e.data)||(s=this._getOrReturnCtx(e,s),G(s,{code:B.invalid_type,expected:"integer",received:"float",message:a.message}),n.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(s=this._getOrReturnCtx(e,s),G(s,{code:B.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:false,message:a.message}),n.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(s=this._getOrReturnCtx(e,s),G(s,{code:B.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:false,message:a.message}),n.dirty()):a.kind==="multipleOf"?SB(e.data,a.value)!==0&&(s=this._getOrReturnCtx(e,s),G(s,{code:B.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(s=this._getOrReturnCtx(e,s),G(s,{code:B.not_finite,message:a.message}),n.dirty()):exports.a.assertNever(a);return {status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,true,Z.toString(t))}gt(e,t){return this.setLimit("min",e,false,Z.toString(t))}lte(e,t){return this.setLimit("max",e,true,Z.toString(t))}lt(e,t){return this.setLimit("max",e,false,Z.toString(t))}setLimit(e,t,s,n){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:Z.toString(n)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Z.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:false,message:Z.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:false,message:Z.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:true,message:Z.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:true,message:Z.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Z.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Z.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:true,value:Number.MIN_SAFE_INTEGER,message:Z.toString(e)})._addCheck({kind:"max",inclusive:true,value:Number.MAX_SAFE_INTEGER,message:Z.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return !!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&exports.a.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return true;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.value<e)&&(e=s.value);}return Number.isFinite(t)&&Number.isFinite(e)}};On.create=r=>new On({checks:[],typeName:exports.ia.ZodNumber,coerce:r?.coerce||false,...ne(r)});var Pn=class r extends ie{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte;}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data);}catch{return this._getInvalidInput(e)}if(this._getType(e)!==K.bigint)return this._getInvalidInput(e);let s,n=new wt;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(s=this._getOrReturnCtx(e,s),G(s,{code:B.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(s=this._getOrReturnCtx(e,s),G(s,{code:B.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),n.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(s=this._getOrReturnCtx(e,s),G(s,{code:B.not_multiple_of,multipleOf:a.value,message:a.message}),n.dirty()):exports.a.assertNever(a);return {status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return G(t,{code:B.invalid_type,expected:K.bigint,received:t.parsedType}),Y}gte(e,t){return this.setLimit("min",e,true,Z.toString(t))}gt(e,t){return this.setLimit("min",e,false,Z.toString(t))}lte(e,t){return this.setLimit("max",e,true,Z.toString(t))}lt(e,t){return this.setLimit("max",e,false,Z.toString(t))}setLimit(e,t,s,n){return new r({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:Z.toString(n)}]})}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:false,message:Z.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:false,message:Z.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:true,message:Z.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:true,message:Z.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Z.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}};Pn.create=r=>new Pn({checks:[],typeName:exports.ia.ZodBigInt,coerce:r?.coerce??false,...ne(r)});var In=class extends ie{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==K.boolean){let s=this._getOrReturnCtx(e);return G(s,{code:B.invalid_type,expected:K.boolean,received:s.parsedType}),Y}return Et(e.data)}};In.create=r=>new In({typeName:exports.ia.ZodBoolean,coerce:r?.coerce||false,...ne(r)});var Dn=class r extends ie{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==K.date){let a=this._getOrReturnCtx(e);return G(a,{code:B.invalid_type,expected:K.date,received:a.parsedType}),Y}if(Number.isNaN(e.data.getTime())){let a=this._getOrReturnCtx(e);return G(a,{code:B.invalid_date}),Y}let s=new wt,n;for(let a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(n=this._getOrReturnCtx(e,n),G(n,{code:B.too_small,message:a.message,inclusive:true,exact:false,minimum:a.value,type:"date"}),s.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(n=this._getOrReturnCtx(e,n),G(n,{code:B.too_big,message:a.message,inclusive:true,exact:false,maximum:a.value,type:"date"}),s.dirty()):exports.a.assertNever(a);return {status:s.value,value:new Date(e.data.getTime())}}_addCheck(e){return new r({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Z.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Z.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}};Dn.create=r=>new Dn({checks:[],coerce:r?.coerce||false,typeName:exports.ia.ZodDate,...ne(r)});var Ga=class extends ie{_parse(e){if(this._getType(e)!==K.symbol){let s=this._getOrReturnCtx(e);return G(s,{code:B.invalid_type,expected:K.symbol,received:s.parsedType}),Y}return Et(e.data)}};Ga.create=r=>new Ga({typeName:exports.ia.ZodSymbol,...ne(r)});var Ln=class extends ie{_parse(e){if(this._getType(e)!==K.undefined){let s=this._getOrReturnCtx(e);return G(s,{code:B.invalid_type,expected:K.undefined,received:s.parsedType}),Y}return Et(e.data)}};Ln.create=r=>new Ln({typeName:exports.ia.ZodUndefined,...ne(r)});var $n=class extends ie{_parse(e){if(this._getType(e)!==K.null){let s=this._getOrReturnCtx(e);return G(s,{code:B.invalid_type,expected:K.null,received:s.parsedType}),Y}return Et(e.data)}};$n.create=r=>new $n({typeName:exports.ia.ZodNull,...ne(r)});var Os=class extends ie{constructor(){super(...arguments),this._any=true;}_parse(e){return Et(e.data)}};Os.create=r=>new Os({typeName:exports.ia.ZodAny,...ne(r)});var cs=class extends ie{constructor(){super(...arguments),this._unknown=true;}_parse(e){return Et(e.data)}};cs.create=r=>new cs({typeName:exports.ia.ZodUnknown,...ne(r)});var Or=class extends ie{_parse(e){let t=this._getOrReturnCtx(e);return G(t,{code:B.invalid_type,expected:K.never,received:t.parsedType}),Y}};Or.create=r=>new Or({typeName:exports.ia.ZodNever,...ne(r)});var za=class extends ie{_parse(e){if(this._getType(e)!==K.undefined){let s=this._getOrReturnCtx(e);return G(s,{code:B.invalid_type,expected:K.void,received:s.parsedType}),Y}return Et(e.data)}};za.create=r=>new za({typeName:exports.ia.ZodVoid,...ne(r)});var us=class r extends ie{_parse(e){let{ctx:t,status:s}=this._processInputParams(e),n=this._def;if(t.parsedType!==K.array)return G(t,{code:B.invalid_type,expected:K.array,received:t.parsedType}),Y;if(n.exactLength!==null){let i=t.data.length>n.exactLength.value,c=t.data.length<n.exactLength.value;(i||c)&&(G(t,{code:i?B.too_big:B.too_small,minimum:c?n.exactLength.value:void 0,maximum:i?n.exactLength.value:void 0,type:"array",inclusive:true,exact:true,message:n.exactLength.message}),s.dirty());}if(n.minLength!==null&&t.data.length<n.minLength.value&&(G(t,{code:B.too_small,minimum:n.minLength.value,type:"array",inclusive:true,exact:false,message:n.minLength.message}),s.dirty()),n.maxLength!==null&&t.data.length>n.maxLength.value&&(G(t,{code:B.too_big,maximum:n.maxLength.value,type:"array",inclusive:true,exact:false,message:n.maxLength.message}),s.dirty()),t.common.async)return Promise.all([...t.data].map((i,c)=>n.type._parseAsync(new Qt(t,i,t.path,c)))).then(i=>wt.mergeArray(s,i));let a=[...t.data].map((i,c)=>n.type._parseSync(new Qt(t,i,t.path,c)));return wt.mergeArray(s,a)}get element(){return this._def.type}min(e,t){return new r({...this._def,minLength:{value:e,message:Z.toString(t)}})}max(e,t){return new r({...this._def,maxLength:{value:e,message:Z.toString(t)}})}length(e,t){return new r({...this._def,exactLength:{value:e,message:Z.toString(t)}})}nonempty(e){return this.min(1,e)}};us.create=(r,e)=>new us({type:r,minLength:null,maxLength:null,exactLength:null,typeName:exports.ia.ZodArray,...ne(e)});function Tn(r){if(r instanceof Ft){let e={};for(let t in r.shape){let s=r.shape[t];e[t]=cr.create(Tn(s));}return new Ft({...r._def,shape:()=>e})}else return r instanceof us?new us({...r._def,type:Tn(r.element)}):r instanceof cr?cr.create(Tn(r.unwrap())):r instanceof Kr?Kr.create(Tn(r.unwrap())):r instanceof zr?zr.create(r.items.map(e=>Tn(e))):r}var Ft=class r extends ie{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend;}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=exports.a.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==K.object){let y=this._getOrReturnCtx(e);return G(y,{code:B.invalid_type,expected:K.object,received:y.parsedType}),Y}let{status:s,ctx:n}=this._processInputParams(e),{shape:a,keys:i}=this._getCached(),c=[];if(!(this._def.catchall instanceof Or&&this._def.unknownKeys==="strip"))for(let y in n.data)i.includes(y)||c.push(y);let d=[];for(let y of i){let x=a[y],_=n.data[y];d.push({key:{status:"valid",value:y},value:x._parse(new Qt(n,_,n.path,y)),alwaysSet:y in n.data});}if(this._def.catchall instanceof Or){let y=this._def.unknownKeys;if(y==="passthrough")for(let x of c)d.push({key:{status:"valid",value:x},value:{status:"valid",value:n.data[x]}});else if(y==="strict")c.length>0&&(G(n,{code:B.unrecognized_keys,keys:c}),s.dirty());else if(y!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else {let y=this._def.catchall;for(let x of c){let _=n.data[x];d.push({key:{status:"valid",value:x},value:y._parse(new Qt(n,_,n.path,x)),alwaysSet:x in n.data});}}return n.common.async?Promise.resolve().then(async()=>{let y=[];for(let x of d){let _=await x.key,I=await x.value;y.push({key:_,value:I,alwaysSet:x.alwaysSet});}return y}).then(y=>wt.mergeObjectSync(s,y)):wt.mergeObjectSync(s,d)}get shape(){return this._def.shape()}strict(e){return Z.errToObj,new r({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{let n=this._def.errorMap?.(t,s).message??s.defaultError;return t.code==="unrecognized_keys"?{message:Z.errToObj(e).message??n}:{message:n}}}:{}})}strip(){return new r({...this._def,unknownKeys:"strip"})}passthrough(){return new r({...this._def,unknownKeys:"passthrough"})}extend(e){return new r({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new r({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:exports.ia.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new r({...this._def,catchall:e})}pick(e){let t={};for(let s of exports.a.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new r({...this._def,shape:()=>t})}omit(e){let t={};for(let s of exports.a.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new r({...this._def,shape:()=>t})}deepPartial(){return Tn(this)}partial(e){let t={};for(let s of exports.a.objectKeys(this.shape)){let n=this.shape[s];e&&!e[s]?t[s]=n:t[s]=n.optional();}return new r({...this._def,shape:()=>t})}required(e){let t={};for(let s of exports.a.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else {let a=this.shape[s];for(;a instanceof cr;)a=a._def.innerType;t[s]=a;}return new r({...this._def,shape:()=>t})}keyof(){return y_(exports.a.objectKeys(this.shape))}};Ft.create=(r,e)=>new Ft({shape:()=>r,unknownKeys:"strip",catchall:Or.create(),typeName:exports.ia.ZodObject,...ne(e)});Ft.strictCreate=(r,e)=>new Ft({shape:()=>r,unknownKeys:"strict",catchall:Or.create(),typeName:exports.ia.ZodObject,...ne(e)});Ft.lazycreate=(r,e)=>new Ft({shape:r,unknownKeys:"strip",catchall:Or.create(),typeName:exports.ia.ZodObject,...ne(e)});var Bn=class extends ie{_parse(e){let{ctx:t}=this._processInputParams(e),s=this._def.options;function n(a){for(let c of a)if(c.result.status==="valid")return c.result;for(let c of a)if(c.result.status==="dirty")return t.common.issues.push(...c.ctx.common.issues),c.result;let i=a.map(c=>new qt(c.ctx.common.issues));return G(t,{code:B.invalid_union,unionErrors:i}),Y}if(t.common.async)return Promise.all(s.map(async a=>{let i={...t,common:{...t.common,issues:[]},parent:null};return {result:await a._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(n);{let a,i=[];for(let d of s){let y={...t,common:{...t.common,issues:[]},parent:null},x=d._parseSync({data:t.data,path:t.path,parent:y});if(x.status==="valid")return x;x.status==="dirty"&&!a&&(a={result:x,ctx:y}),y.common.issues.length&&i.push(y.common.issues);}if(a)return t.common.issues.push(...a.ctx.common.issues),a.result;let c=i.map(d=>new qt(d));return G(t,{code:B.invalid_union,unionErrors:c}),Y}}get options(){return this._def.options}};Bn.create=(r,e)=>new Bn({options:r,typeName:exports.ia.ZodUnion,...ne(e)});var Gr=r=>r instanceof jn?Gr(r.schema):r instanceof ur?Gr(r.innerType()):r instanceof Mn?[r.value]:r instanceof Un?r.options:r instanceof qn?exports.a.objectValues(r.enum):r instanceof Fn?Gr(r._def.innerType):r instanceof Ln?[void 0]:r instanceof $n?[null]:r instanceof cr?[void 0,...Gr(r.unwrap())]:r instanceof Kr?[null,...Gr(r.unwrap())]:r instanceof fc||r instanceof Gn?Gr(r.unwrap()):r instanceof Hn?Gr(r._def.innerType):[],id=class r extends ie{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==K.object)return G(t,{code:B.invalid_type,expected:K.object,received:t.parsedType}),Y;let s=this.discriminator,n=t.data[s],a=this.optionsMap.get(n);return a?t.common.async?a._parseAsync({data:t.data,path:t.path,parent:t}):a._parseSync({data:t.data,path:t.path,parent:t}):(G(t,{code:B.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),Y)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,s){let n=new Map;for(let a of t){let i=Gr(a.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let c of i){if(n.has(c))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(c)}`);n.set(c,a);}}return new r({typeName:exports.ia.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:n,...ne(s)})}};function cd(r,e){let t=Hr(r),s=Hr(e);if(r===e)return {valid:true,data:r};if(t===K.object&&s===K.object){let n=exports.a.objectKeys(e),a=exports.a.objectKeys(r).filter(c=>n.indexOf(c)!==-1),i={...r,...e};for(let c of a){let d=cd(r[c],e[c]);if(!d.valid)return {valid:false};i[c]=d.data;}return {valid:true,data:i}}else if(t===K.array&&s===K.array){if(r.length!==e.length)return {valid:false};let n=[];for(let a=0;a<r.length;a++){let i=r[a],c=e[a],d=cd(i,c);if(!d.valid)return {valid:false};n.push(d.data);}return {valid:true,data:n}}else return t===K.date&&s===K.date&&+r==+e?{valid:true,data:r}:{valid:false}}var Nn=class extends ie{_parse(e){let{status:t,ctx:s}=this._processInputParams(e),n=(a,i)=>{if(nd(a)||nd(i))return Y;let c=cd(a.value,i.value);return c.valid?((ad(a)||ad(i))&&t.dirty(),{status:t.value,value:c.data}):(G(s,{code:B.invalid_intersection_types}),Y)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([a,i])=>n(a,i)):n(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}};Nn.create=(r,e,t)=>new Nn({left:r,right:e,typeName:exports.ia.ZodIntersection,...ne(t)});var zr=class r extends ie{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==K.array)return G(s,{code:B.invalid_type,expected:K.array,received:s.parsedType}),Y;if(s.data.length<this._def.items.length)return G(s,{code:B.too_small,minimum:this._def.items.length,inclusive:true,exact:false,type:"array"}),Y;!this._def.rest&&s.data.length>this._def.items.length&&(G(s,{code:B.too_big,maximum:this._def.items.length,inclusive:true,exact:false,type:"array"}),t.dirty());let a=[...s.data].map((i,c)=>{let d=this._def.items[c]||this._def.rest;return d?d._parse(new Qt(s,i,s.path,c)):null}).filter(i=>!!i);return s.common.async?Promise.all(a).then(i=>wt.mergeArray(t,i)):wt.mergeArray(t,a)}get items(){return this._def.items}rest(e){return new r({...this._def,rest:e})}};zr.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new zr({items:r,typeName:exports.ia.ZodTuple,rest:null,...ne(e)})};var ud=class r extends ie{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==K.object)return G(s,{code:B.invalid_type,expected:K.object,received:s.parsedType}),Y;let n=[],a=this._def.keyType,i=this._def.valueType;for(let c in s.data)n.push({key:a._parse(new Qt(s,c,s.path,c)),value:i._parse(new Qt(s,s.data[c],s.path,c)),alwaysSet:c in s.data});return s.common.async?wt.mergeObjectAsync(t,n):wt.mergeObjectSync(t,n)}get element(){return this._def.valueType}static create(e,t,s){return t instanceof ie?new r({keyType:e,valueType:t,typeName:exports.ia.ZodRecord,...ne(s)}):new r({keyType:Ts.create(),valueType:e,typeName:exports.ia.ZodRecord,...ne(t)})}},Ka=class extends ie{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==K.map)return G(s,{code:B.invalid_type,expected:K.map,received:s.parsedType}),Y;let n=this._def.keyType,a=this._def.valueType,i=[...s.data.entries()].map(([c,d],y)=>({key:n._parse(new Qt(s,c,s.path,[y,"key"])),value:a._parse(new Qt(s,d,s.path,[y,"value"]))}));if(s.common.async){let c=new Map;return Promise.resolve().then(async()=>{for(let d of i){let y=await d.key,x=await d.value;if(y.status==="aborted"||x.status==="aborted")return Y;(y.status==="dirty"||x.status==="dirty")&&t.dirty(),c.set(y.value,x.value);}return {status:t.value,value:c}})}else {let c=new Map;for(let d of i){let y=d.key,x=d.value;if(y.status==="aborted"||x.status==="aborted")return Y;(y.status==="dirty"||x.status==="dirty")&&t.dirty(),c.set(y.value,x.value);}return {status:t.value,value:c}}}};Ka.create=(r,e,t)=>new Ka({valueType:e,keyType:r,typeName:exports.ia.ZodMap,...ne(t)});var Va=class r extends ie{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==K.set)return G(s,{code:B.invalid_type,expected:K.set,received:s.parsedType}),Y;let n=this._def;n.minSize!==null&&s.data.size<n.minSize.value&&(G(s,{code:B.too_small,minimum:n.minSize.value,type:"set",inclusive:true,exact:false,message:n.minSize.message}),t.dirty()),n.maxSize!==null&&s.data.size>n.maxSize.value&&(G(s,{code:B.too_big,maximum:n.maxSize.value,type:"set",inclusive:true,exact:false,message:n.maxSize.message}),t.dirty());let a=this._def.valueType;function i(d){let y=new Set;for(let x of d){if(x.status==="aborted")return Y;x.status==="dirty"&&t.dirty(),y.add(x.value);}return {status:t.value,value:y}}let c=[...s.data.values()].map((d,y)=>a._parse(new Qt(s,d,s.path,y)));return s.common.async?Promise.all(c).then(d=>i(d)):i(c)}min(e,t){return new r({...this._def,minSize:{value:e,message:Z.toString(t)}})}max(e,t){return new r({...this._def,maxSize:{value:e,message:Z.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Va.create=(r,e)=>new Va({valueType:r,minSize:null,maxSize:null,typeName:exports.ia.ZodSet,...ne(e)});var ld=class r extends ie{constructor(){super(...arguments),this.validate=this.implement;}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==K.function)return G(t,{code:B.invalid_type,expected:K.function,received:t.parsedType}),Y;function s(c,d){return mc({data:c,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Fa(),is].filter(y=>!!y),issueData:{code:B.invalid_arguments,argumentsError:d}})}function n(c,d){return mc({data:c,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Fa(),is].filter(y=>!!y),issueData:{code:B.invalid_return_type,returnTypeError:d}})}let a={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof Ps){let c=this;return Et(async function(...d){let y=new qt([]),x=await c._def.args.parseAsync(d,a).catch(H=>{throw y.addIssue(s(d,H)),y}),_=await Reflect.apply(i,this,x);return await c._def.returns._def.type.parseAsync(_,a).catch(H=>{throw y.addIssue(n(_,H)),y})})}else {let c=this;return Et(function(...d){let y=c._def.args.safeParse(d,a);if(!y.success)throw new qt([s(d,y.error)]);let x=Reflect.apply(i,this,y.data),_=c._def.returns.safeParse(x,a);if(!_.success)throw new qt([n(x,_.error)]);return _.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new r({...this._def,args:zr.create(e).rest(cs.create())})}returns(e){return new r({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,s){return new r({args:e||zr.create([]).rest(cs.create()),returns:t||cs.create(),typeName:exports.ia.ZodFunction,...ne(s)})}},jn=class extends ie{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};jn.create=(r,e)=>new jn({getter:r,typeName:exports.ia.ZodLazy,...ne(e)});var Mn=class extends ie{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return G(t,{received:t.data,code:B.invalid_literal,expected:this._def.value}),Y}return {status:"valid",value:e.data}}get value(){return this._def.value}};Mn.create=(r,e)=>new Mn({value:r,typeName:exports.ia.ZodLiteral,...ne(e)});function y_(r,e){return new Un({values:r,typeName:exports.ia.ZodEnum,...ne(e)})}var Un=class r extends ie{_parse(e){if(typeof e.data!="string"){let t=this._getOrReturnCtx(e),s=this._def.values;return G(t,{expected:exports.a.joinValues(s),received:t.parsedType,code:B.invalid_type}),Y}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),s=this._def.values;return G(t,{received:t.data,code:B.invalid_enum_value,options:s}),Y}return Et(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return r.create(e,{...this._def,...t})}exclude(e,t=this._def){return r.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}};Un.create=y_;var qn=class extends ie{_parse(e){let t=exports.a.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==K.string&&s.parsedType!==K.number){let n=exports.a.objectValues(t);return G(s,{expected:exports.a.joinValues(n),received:s.parsedType,code:B.invalid_type}),Y}if(this._cache||(this._cache=new Set(exports.a.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let n=exports.a.objectValues(t);return G(s,{received:s.data,code:B.invalid_enum_value,options:n}),Y}return Et(e.data)}get enum(){return this._def.values}};qn.create=(r,e)=>new qn({values:r,typeName:exports.ia.ZodNativeEnum,...ne(e)});var Ps=class extends ie{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==K.promise&&t.common.async===false)return G(t,{code:B.invalid_type,expected:K.promise,received:t.parsedType}),Y;let s=t.parsedType===K.promise?t.data:Promise.resolve(t.data);return Et(s.then(n=>this._def.type.parseAsync(n,{path:t.path,errorMap:t.common.contextualErrorMap})))}};Ps.create=(r,e)=>new Ps({type:r,typeName:exports.ia.ZodPromise,...ne(e)});var ur=class extends ie{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===exports.ia.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:s}=this._processInputParams(e),n=this._def.effect||null,a={addIssue:i=>{G(s,i),i.fatal?t.abort():t.dirty();},get path(){return s.path}};if(a.addIssue=a.addIssue.bind(a),n.type==="preprocess"){let i=n.transform(s.data,a);if(s.common.async)return Promise.resolve(i).then(async c=>{if(t.value==="aborted")return Y;let d=await this._def.schema._parseAsync({data:c,path:s.path,parent:s});return d.status==="aborted"?Y:d.status==="dirty"?En(d.value):t.value==="dirty"?En(d.value):d});{if(t.value==="aborted")return Y;let c=this._def.schema._parseSync({data:i,path:s.path,parent:s});return c.status==="aborted"?Y:c.status==="dirty"?En(c.value):t.value==="dirty"?En(c.value):c}}if(n.type==="refinement"){let i=c=>{let d=n.refinement(c,a);if(s.common.async)return Promise.resolve(d);if(d instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return c};if(s.common.async===false){let c=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return c.status==="aborted"?Y:(c.status==="dirty"&&t.dirty(),i(c.value),{status:t.value,value:c.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(c=>c.status==="aborted"?Y:(c.status==="dirty"&&t.dirty(),i(c.value).then(()=>({status:t.value,value:c.value}))))}if(n.type==="transform")if(s.common.async===false){let i=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!Es(i))return Y;let c=n.transform(i.value,a);if(c instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return {status:t.value,value:c}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(i=>Es(i)?Promise.resolve(n.transform(i.value,a)).then(c=>({status:t.value,value:c})):Y);exports.a.assertNever(n);}};ur.create=(r,e,t)=>new ur({schema:r,typeName:exports.ia.ZodEffects,effect:e,...ne(t)});ur.createWithPreprocess=(r,e,t)=>new ur({schema:e,effect:{type:"preprocess",transform:r},typeName:exports.ia.ZodEffects,...ne(t)});var cr=class extends ie{_parse(e){return this._getType(e)===K.undefined?Et(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};cr.create=(r,e)=>new cr({innerType:r,typeName:exports.ia.ZodOptional,...ne(e)});var Kr=class extends ie{_parse(e){return this._getType(e)===K.null?Et(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Kr.create=(r,e)=>new Kr({innerType:r,typeName:exports.ia.ZodNullable,...ne(e)});var Fn=class extends ie{_parse(e){let{ctx:t}=this._processInputParams(e),s=t.data;return t.parsedType===K.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Fn.create=(r,e)=>new Fn({innerType:r,typeName:exports.ia.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...ne(e)});var Hn=class extends ie{_parse(e){let{ctx:t}=this._processInputParams(e),s={...t,common:{...t.common,issues:[]}},n=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return Ha(n)?n.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new qt(s.common.issues)},input:s.data})})):{status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new qt(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}};Hn.create=(r,e)=>new Hn({innerType:r,typeName:exports.ia.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...ne(e)});var Wa=class extends ie{_parse(e){if(this._getType(e)!==K.nan){let s=this._getOrReturnCtx(e);return G(s,{code:B.invalid_type,expected:K.nan,received:s.parsedType}),Y}return {status:"valid",value:e.data}}};Wa.create=r=>new Wa({typeName:exports.ia.ZodNaN,...ne(r)});var PK=Symbol("zod_brand"),fc=class extends ie{_parse(e){let{ctx:t}=this._processInputParams(e),s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}},hc=class r extends ie{_parse(e){let{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return (async()=>{let a=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?Y:a.status==="dirty"?(t.dirty(),En(a.value)):this._def.out._parseAsync({data:a.value,path:s.path,parent:s})})();{let n=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?Y:n.status==="dirty"?(t.dirty(),{status:"dirty",value:n.value}):this._def.out._parseSync({data:n.value,path:s.path,parent:s})}}static create(e,t){return new r({in:e,out:t,typeName:exports.ia.ZodPipeline})}},Gn=class extends ie{_parse(e){let t=this._def.innerType._parse(e),s=n=>(Es(n)&&(n.value=Object.freeze(n.value)),n);return Ha(t)?t.then(n=>s(n)):s(t)}unwrap(){return this._def.innerType}};Gn.create=(r,e)=>new Gn({innerType:r,typeName:exports.ia.ZodReadonly,...ne(e)});function f_(r,e){let t=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof t=="string"?{message:t}:t}function AB(r,e={},t){return r?Os.create().superRefine((s,n)=>{let a=r(s);if(a instanceof Promise)return a.then(i=>{if(!i){let c=f_(e,s),d=c.fatal??t??true;n.addIssue({code:"custom",...c,fatal:d});}});if(!a){let i=f_(e,s),c=i.fatal??t??true;n.addIssue({code:"custom",...i,fatal:c});}}):Os.create()}var IK={object:Ft.lazycreate};exports.ia=void 0;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly";})(exports.ia||(exports.ia={}));var DK=(r,e={message:`Input not instance of ${r.name}`})=>AB(t=>t instanceof r,e),RB=Ts.create,CB=On.create,LK=Wa.create,$K=Pn.create,kB=In.create,BK=Dn.create,NK=Ga.create,jK=Ln.create,MK=$n.create,UK=Os.create,qK=cs.create,FK=Or.create,HK=za.create,GK=us.create,zK=Ft.create,KK=Ft.strictCreate,VK=Bn.create,WK=id.create,ZK=Nn.create,XK=zr.create,JK=ud.create,QK=Ka.create,YK=Va.create,eV=ld.create,tV=jn.create,rV=Mn.create,sV=Un.create,nV=qn.create,aV=Ps.create,oV=ur.create,iV=cr.create,cV=Kr.create,uV=ur.createWithPreprocess,lV=hc.create,dV=()=>RB().optional(),pV=()=>CB().optional(),mV=()=>kB().optional(),fV={string:(r=>Ts.create({...r,coerce:true})),number:(r=>On.create({...r,coerce:true})),boolean:(r=>In.create({...r,coerce:true})),bigint:(r=>Pn.create({...r,coerce:true})),date:(r=>Dn.create({...r,coerce:true}))};var hV=Y;chunkBUNLC3II_cjs.h();function Le(r){if(r.target!=="openAi")return {};let e=[...r.basePath,r.definitionPath,r.openAiAnyTypeName];return r.flags.hasReferencedOpenAiAnyType=true,{$ref:r.$refStrategy==="relative"?pc(e,r.currentPath):e.join("/")}}chunkBUNLC3II_cjs.h();function x_(r,e){let t={type:"array"};return r.type?._def&&r.type?._def?.typeName!==exports.ia.ZodAny&&(t.items=te(r.type._def,{...e,currentPath:[...e.currentPath,"items"]})),r.minLength&&fe(t,"minItems",r.minLength.value,r.minLength.message,e),r.maxLength&&fe(t,"maxItems",r.maxLength.value,r.maxLength.message,e),r.exactLength&&(fe(t,"minItems",r.exactLength.value,r.exactLength.message,e),fe(t,"maxItems",r.exactLength.value,r.exactLength.message,e)),t}chunkBUNLC3II_cjs.h();function __(r,e){let t={type:"integer",format:"int64"};if(!r.checks)return t;for(let s of r.checks)switch(s.kind){case "min":e.target==="jsonSchema7"?s.inclusive?fe(t,"minimum",s.value,s.message,e):fe(t,"exclusiveMinimum",s.value,s.message,e):(s.inclusive||(t.exclusiveMinimum=true),fe(t,"minimum",s.value,s.message,e));break;case "max":e.target==="jsonSchema7"?s.inclusive?fe(t,"maximum",s.value,s.message,e):fe(t,"exclusiveMaximum",s.value,s.message,e):(s.inclusive||(t.exclusiveMaximum=true),fe(t,"maximum",s.value,s.message,e));break;case "multipleOf":fe(t,"multipleOf",s.value,s.message,e);break}return t}chunkBUNLC3II_cjs.h();function w_(){return {type:"boolean"}}chunkBUNLC3II_cjs.h();function gc(r,e){return te(r.type._def,e)}chunkBUNLC3II_cjs.h();var b_=(r,e)=>te(r.innerType._def,e);chunkBUNLC3II_cjs.h();function dd(r,e,t){let s=t??e.dateStrategy;if(Array.isArray(s))return {anyOf:s.map((n,a)=>dd(r,e,n))};switch(s){case "string":case "format:date-time":return {type:"string",format:"date-time"};case "format:date":return {type:"string",format:"date"};case "integer":return EB(r,e)}}var EB=(r,e)=>{let t={type:"integer",format:"unix-time"};if(e.target==="openApi3")return t;for(let s of r.checks)switch(s.kind){case "min":fe(t,"minimum",s.value,s.message,e);break;case "max":fe(t,"maximum",s.value,s.message,e);break}return t};chunkBUNLC3II_cjs.h();function v_(r,e){return {...te(r.innerType._def,e),default:r.defaultValue()}}chunkBUNLC3II_cjs.h();function S_(r,e){return e.effectStrategy==="input"?te(r.schema._def,e):Le(e)}chunkBUNLC3II_cjs.h();function A_(r){return {type:"string",enum:Array.from(r.values)}}chunkBUNLC3II_cjs.h();var TB=r=>"type"in r&&r.type==="string"?false:"allOf"in r;function R_(r,e){let t=[te(r.left._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),te(r.right._def,{...e,currentPath:[...e.currentPath,"allOf","1"]})].filter(a=>!!a),s=e.target==="jsonSchema2019-09"?{unevaluatedProperties:false}:void 0,n=[];return t.forEach(a=>{if(TB(a))n.push(...a.allOf),a.unevaluatedProperties===void 0&&(s=void 0);else {let i=a;if("additionalProperties"in a&&a.additionalProperties===false){let{additionalProperties:c,...d}=a;i=d;}else s=void 0;n.push(i);}}),n.length?{allOf:n,...s}:void 0}chunkBUNLC3II_cjs.h();function C_(r,e){let t=typeof r.value;return t!=="bigint"&&t!=="number"&&t!=="boolean"&&t!=="string"?{type:Array.isArray(r.value)?"array":"object"}:e.target==="openApi3"?{type:t==="bigint"?"integer":t,enum:[r.value]}:{type:t==="bigint"?"integer":t,const:r.value}}chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var pd,lr={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(pd===void 0&&(pd=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),pd),uuid:/^[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}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([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])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function yc(r,e){let t={type:"string"};if(r.checks)for(let s of r.checks)switch(s.kind){case "min":fe(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,s.value):s.value,s.message,e);break;case "max":fe(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,s.value):s.value,s.message,e);break;case "email":switch(e.emailStrategy){case "format:email":dr(t,"email",s.message,e);break;case "format:idn-email":dr(t,"idn-email",s.message,e);break;case "pattern:zod":Tt(t,lr.email,s.message,e);break}break;case "url":dr(t,"uri",s.message,e);break;case "uuid":dr(t,"uuid",s.message,e);break;case "regex":Tt(t,s.regex,s.message,e);break;case "cuid":Tt(t,lr.cuid,s.message,e);break;case "cuid2":Tt(t,lr.cuid2,s.message,e);break;case "startsWith":Tt(t,RegExp(`^${md(s.value,e)}`),s.message,e);break;case "endsWith":Tt(t,RegExp(`${md(s.value,e)}$`),s.message,e);break;case "datetime":dr(t,"date-time",s.message,e);break;case "date":dr(t,"date",s.message,e);break;case "time":dr(t,"time",s.message,e);break;case "duration":dr(t,"duration",s.message,e);break;case "length":fe(t,"minLength",typeof t.minLength=="number"?Math.max(t.minLength,s.value):s.value,s.message,e),fe(t,"maxLength",typeof t.maxLength=="number"?Math.min(t.maxLength,s.value):s.value,s.message,e);break;case "includes":{Tt(t,RegExp(md(s.value,e)),s.message,e);break}case "ip":{s.version!=="v6"&&dr(t,"ipv4",s.message,e),s.version!=="v4"&&dr(t,"ipv6",s.message,e);break}case "base64url":Tt(t,lr.base64url,s.message,e);break;case "jwt":Tt(t,lr.jwt,s.message,e);break;case "cidr":{s.version!=="v6"&&Tt(t,lr.ipv4Cidr,s.message,e),s.version!=="v4"&&Tt(t,lr.ipv6Cidr,s.message,e);break}case "emoji":Tt(t,lr.emoji(),s.message,e);break;case "ulid":{Tt(t,lr.ulid,s.message,e);break}case "base64":{switch(e.base64Strategy){case "format:binary":{dr(t,"binary",s.message,e);break}case "contentEncoding:base64":{fe(t,"contentEncoding","base64",s.message,e);break}case "pattern:zod":{Tt(t,lr.base64,s.message,e);break}}break}case "nanoid":Tt(t,lr.nanoid,s.message,e);}return t}function md(r,e){return e.patternStrategy==="escape"?PB(r):r}var OB=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function PB(r){let e="";for(let t=0;t<r.length;t++)OB.has(r[t])||(e+="\\"),e+=r[t];return e}function dr(r,e,t,s){r.format||r.anyOf?.some(n=>n.format)?(r.anyOf||(r.anyOf=[]),r.format&&(r.anyOf.push({format:r.format,...r.errorMessage&&s.errorMessages&&{errorMessage:{format:r.errorMessage.format}}}),delete r.format,r.errorMessage&&(delete r.errorMessage.format,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.anyOf.push({format:e,...t&&s.errorMessages&&{errorMessage:{format:t}}})):fe(r,"format",e,t,s);}function Tt(r,e,t,s){r.pattern||r.allOf?.some(n=>n.pattern)?(r.allOf||(r.allOf=[]),r.pattern&&(r.allOf.push({pattern:r.pattern,...r.errorMessage&&s.errorMessages&&{errorMessage:{pattern:r.errorMessage.pattern}}}),delete r.pattern,r.errorMessage&&(delete r.errorMessage.pattern,Object.keys(r.errorMessage).length===0&&delete r.errorMessage)),r.allOf.push({pattern:k_(e,s),...t&&s.errorMessages&&{errorMessage:{pattern:t}}})):fe(r,"pattern",k_(e,s),t,s);}function k_(r,e){if(!e.applyRegexFlags||!r.flags)return r.source;let t={i:r.flags.includes("i"),m:r.flags.includes("m"),s:r.flags.includes("s")},s=t.i?r.source.toLowerCase():r.source,n="",a=false,i=false,c=false;for(let d=0;d<s.length;d++){if(a){n+=s[d],a=false;continue}if(t.i){if(i){if(s[d].match(/[a-z]/)){c?(n+=s[d],n+=`${s[d-2]}-${s[d]}`.toUpperCase(),c=false):s[d+1]==="-"&&s[d+2]?.match(/[a-z]/)?(n+=s[d],c=true):n+=`${s[d]}${s[d].toUpperCase()}`;continue}}else if(s[d].match(/[a-z]/)){n+=`[${s[d]}${s[d].toUpperCase()}]`;continue}}if(t.m){if(s[d]==="^"){n+=`(^|(?<=[\r
|
|
115
|
+
]))`;continue}else if(s[d]==="$"){n+=`($|(?=[\r
|
|
116
|
+
]))`;continue}}if(t.s&&s[d]==="."){n+=i?`${s[d]}\r
|
|
117
|
+
`:`[${s[d]}\r
|
|
118
|
+
]`;continue}n+=s[d],s[d]==="\\"?a=true:i&&s[d]==="]"?i=false:!i&&s[d]==="["&&(i=true);}try{new RegExp(n);}catch{return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),r.source}return n}function xc(r,e){if(e.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),e.target==="openApi3"&&r.keyType?._def.typeName===exports.ia.ZodEnum)return {type:"object",required:r.keyType._def.values,properties:r.keyType._def.values.reduce((s,n)=>({...s,[n]:te(r.valueType._def,{...e,currentPath:[...e.currentPath,"properties",n]})??Le(e)}),{}),additionalProperties:e.rejectedAdditionalProperties};let t={type:"object",additionalProperties:te(r.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??e.allowedAdditionalProperties};if(e.target==="openApi3")return t;if(r.keyType?._def.typeName===exports.ia.ZodString&&r.keyType._def.checks?.length){let{type:s,...n}=yc(r.keyType._def,e);return {...t,propertyNames:n}}else {if(r.keyType?._def.typeName===exports.ia.ZodEnum)return {...t,propertyNames:{enum:r.keyType._def.values}};if(r.keyType?._def.typeName===exports.ia.ZodBranded&&r.keyType._def.type._def.typeName===exports.ia.ZodString&&r.keyType._def.type._def.checks?.length){let{type:s,...n}=gc(r.keyType._def,e);return {...t,propertyNames:n}}}return t}function E_(r,e){if(e.mapStrategy==="record")return xc(r,e);let t=te(r.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||Le(e),s=te(r.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||Le(e);return {type:"array",maxItems:125,items:{type:"array",items:[t,s],minItems:2,maxItems:2}}}chunkBUNLC3II_cjs.h();function T_(r){let e=r.values,s=Object.keys(r.values).filter(a=>typeof e[e[a]]!="number").map(a=>e[a]),n=Array.from(new Set(s.map(a=>typeof a)));return {type:n.length===1?n[0]==="string"?"string":"number":["string","number"],enum:s}}chunkBUNLC3II_cjs.h();function O_(r){return r.target==="openAi"?void 0:{not:Le({...r,currentPath:[...r.currentPath,"not"]})}}chunkBUNLC3II_cjs.h();function P_(r){return r.target==="openApi3"?{enum:["null"],nullable:true}:{type:"null"}}chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var Za={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function D_(r,e){if(e.target==="openApi3")return I_(r,e);let t=r.options instanceof Map?Array.from(r.options.values()):r.options;if(t.every(s=>s._def.typeName in Za&&(!s._def.checks||!s._def.checks.length))){let s=t.reduce((n,a)=>{let i=Za[a._def.typeName];return i&&!n.includes(i)?[...n,i]:n},[]);return {type:s.length>1?s:s[0]}}else if(t.every(s=>s._def.typeName==="ZodLiteral"&&!s.description)){let s=t.reduce((n,a)=>{let i=typeof a._def.value;switch(i){case "string":case "number":case "boolean":return [...n,i];case "bigint":return [...n,"integer"];case "object":if(a._def.value===null)return [...n,"null"];default:return n}},[]);if(s.length===t.length){let n=s.filter((a,i,c)=>c.indexOf(a)===i);return {type:n.length>1?n:n[0],enum:t.reduce((a,i)=>a.includes(i._def.value)?a:[...a,i._def.value],[])}}}else if(t.every(s=>s._def.typeName==="ZodEnum"))return {type:"string",enum:t.reduce((s,n)=>[...s,...n._def.values.filter(a=>!s.includes(a))],[])};return I_(r,e)}var I_=(r,e)=>{let t=(r.options instanceof Map?Array.from(r.options.values()):r.options).map((s,n)=>te(s._def,{...e,currentPath:[...e.currentPath,"anyOf",`${n}`]})).filter(s=>!!s&&(!e.strictUnions||typeof s=="object"&&Object.keys(s).length>0));return t.length?{anyOf:t}:void 0};function L_(r,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(r.innerType._def.typeName)&&(!r.innerType._def.checks||!r.innerType._def.checks.length))return e.target==="openApi3"?{type:Za[r.innerType._def.typeName],nullable:true}:{type:[Za[r.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let s=te(r.innerType._def,{...e,currentPath:[...e.currentPath]});return s&&"$ref"in s?{allOf:[s],nullable:true}:s&&{...s,nullable:true}}let t=te(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return t&&{anyOf:[t,{type:"null"}]}}chunkBUNLC3II_cjs.h();function $_(r,e){let t={type:"number"};if(!r.checks)return t;for(let s of r.checks)switch(s.kind){case "int":t.type="integer",sd(t,"type",s.message,e);break;case "min":e.target==="jsonSchema7"?s.inclusive?fe(t,"minimum",s.value,s.message,e):fe(t,"exclusiveMinimum",s.value,s.message,e):(s.inclusive||(t.exclusiveMinimum=true),fe(t,"minimum",s.value,s.message,e));break;case "max":e.target==="jsonSchema7"?s.inclusive?fe(t,"maximum",s.value,s.message,e):fe(t,"exclusiveMaximum",s.value,s.message,e):(s.inclusive||(t.exclusiveMaximum=true),fe(t,"maximum",s.value,s.message,e));break;case "multipleOf":fe(t,"multipleOf",s.value,s.message,e);break}return t}chunkBUNLC3II_cjs.h();function B_(r,e){let t=e.target==="openAi",s={type:"object",properties:{}},n=[],a=r.shape();for(let c in a){let d=a[c];if(d===void 0||d._def===void 0)continue;let y=DB(d);y&&t&&(d._def.typeName==="ZodOptional"&&(d=d._def.innerType),d.isNullable()||(d=d.nullable()),y=false);let x=te(d._def,{...e,currentPath:[...e.currentPath,"properties",c],propertyPath:[...e.currentPath,"properties",c]});x!==void 0&&(s.properties[c]=x,y||n.push(c));}n.length&&(s.required=n);let i=IB(r,e);return i!==void 0&&(s.additionalProperties=i),s}function IB(r,e){if(r.catchall._def.typeName!=="ZodNever")return te(r.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(r.unknownKeys){case "passthrough":return e.allowedAdditionalProperties;case "strict":return e.rejectedAdditionalProperties;case "strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function DB(r){try{return r.isOptional()}catch{return true}}chunkBUNLC3II_cjs.h();var N_=(r,e)=>{if(e.currentPath.toString()===e.propertyPath?.toString())return te(r.innerType._def,e);let t=te(r.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return t?{anyOf:[{not:Le(e)},t]}:Le(e)};chunkBUNLC3II_cjs.h();var j_=(r,e)=>{if(e.pipeStrategy==="input")return te(r.in._def,e);if(e.pipeStrategy==="output")return te(r.out._def,e);let t=te(r.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),s=te(r.out._def,{...e,currentPath:[...e.currentPath,"allOf",t?"1":"0"]});return {allOf:[t,s].filter(n=>n!==void 0)}};chunkBUNLC3II_cjs.h();function M_(r,e){return te(r.type._def,e)}chunkBUNLC3II_cjs.h();function U_(r,e){let s={type:"array",uniqueItems:true,items:te(r.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return r.minSize&&fe(s,"minItems",r.minSize.value,r.minSize.message,e),r.maxSize&&fe(s,"maxItems",r.maxSize.value,r.maxSize.message,e),s}chunkBUNLC3II_cjs.h();function q_(r,e){return r.rest?{type:"array",minItems:r.items.length,items:r.items.map((t,s)=>te(t._def,{...e,currentPath:[...e.currentPath,"items",`${s}`]})).reduce((t,s)=>s===void 0?t:[...t,s],[]),additionalItems:te(r.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:r.items.length,maxItems:r.items.length,items:r.items.map((t,s)=>te(t._def,{...e,currentPath:[...e.currentPath,"items",`${s}`]})).reduce((t,s)=>s===void 0?t:[...t,s],[])}}chunkBUNLC3II_cjs.h();function F_(r){return {not:Le(r)}}chunkBUNLC3II_cjs.h();function H_(r){return Le(r)}chunkBUNLC3II_cjs.h();var G_=(r,e)=>te(r.innerType._def,e);var z_=(r,e,t)=>{switch(e){case exports.ia.ZodString:return yc(r,t);case exports.ia.ZodNumber:return $_(r,t);case exports.ia.ZodObject:return B_(r,t);case exports.ia.ZodBigInt:return __(r,t);case exports.ia.ZodBoolean:return w_();case exports.ia.ZodDate:return dd(r,t);case exports.ia.ZodUndefined:return F_(t);case exports.ia.ZodNull:return P_(t);case exports.ia.ZodArray:return x_(r,t);case exports.ia.ZodUnion:case exports.ia.ZodDiscriminatedUnion:return D_(r,t);case exports.ia.ZodIntersection:return R_(r,t);case exports.ia.ZodTuple:return q_(r,t);case exports.ia.ZodRecord:return xc(r,t);case exports.ia.ZodLiteral:return C_(r,t);case exports.ia.ZodEnum:return A_(r);case exports.ia.ZodNativeEnum:return T_(r);case exports.ia.ZodNullable:return L_(r,t);case exports.ia.ZodOptional:return N_(r,t);case exports.ia.ZodMap:return E_(r,t);case exports.ia.ZodSet:return U_(r,t);case exports.ia.ZodLazy:return ()=>r.getter()._def;case exports.ia.ZodPromise:return M_(r,t);case exports.ia.ZodNaN:case exports.ia.ZodNever:return O_(t);case exports.ia.ZodEffects:return S_(r,t);case exports.ia.ZodAny:return Le(t);case exports.ia.ZodUnknown:return H_(t);case exports.ia.ZodDefault:return v_(r,t);case exports.ia.ZodBranded:return gc(r,t);case exports.ia.ZodReadonly:return G_(r,t);case exports.ia.ZodCatch:return b_(r,t);case exports.ia.ZodPipeline:return j_(r,t);case exports.ia.ZodFunction:case exports.ia.ZodVoid:case exports.ia.ZodSymbol:return;default:return (s=>{})()}};function te(r,e,t=false){let s=e.seen.get(r);if(e.override){let c=e.override?.(r,e,s,t);if(c!==c_)return c}if(s&&!t){let c=LB(s,e);if(c!==void 0)return c}let n={def:r,path:e.currentPath,jsonSchema:void 0};e.seen.set(r,n);let a=z_(r,r.typeName,e),i=typeof a=="function"?te(a(),e):a;if(i&&$B(r,e,i),e.postProcess){let c=e.postProcess(i,r,e);return n.jsonSchema=i,c}return n.jsonSchema=i,i}var LB=(r,e)=>{switch(e.$refStrategy){case "root":return {$ref:r.path.join("/")};case "relative":return {$ref:pc(e.currentPath,r.path)};case "none":case "seen":return r.path.length<e.currentPath.length&&r.path.every((t,s)=>e.currentPath[s]===t)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),Le(e)):e.$refStrategy==="seen"?Le(e):void 0}},$B=(r,e,t)=>(r.description&&(t.description=r.description,e.markdownDescription&&(t.markdownDescription=r.description)),t);chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var zn=(r,e)=>{let t=l_(e),s=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((d,[y,x])=>({...d,[y]:te(x._def,{...t,currentPath:[...t.basePath,t.definitionPath,y]},true)??Le(t)}),{}):void 0,n=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,a=te(r._def,n===void 0?t:{...t,currentPath:[...t.basePath,t.definitionPath,n]},false)??Le(t),i=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;i!==void 0&&(a.title=i),t.flags.hasReferencedOpenAiAnyType&&(s||(s={}),s[t.openAiAnyTypeName]||(s[t.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:t.$refStrategy==="relative"?"1":[...t.basePath,t.definitionPath,t.openAiAnyTypeName].join("/")}}));let c=n===void 0?s?{...a,[t.definitionPath]:s}:a:{$ref:[...t.$refStrategy==="relative"?[]:t.basePath,t.definitionPath,n].join("/"),[t.definitionPath]:{...s,[n]:a}};return t.target==="jsonSchema7"?c.$schema="http://json-schema.org/draft-07/schema#":(t.target==="jsonSchema2019-09"||t.target==="openAi")&&(c.$schema="https://json-schema.org/draft/2019-09/schema#"),t.target==="openAi"&&("anyOf"in c||"oneOf"in c||"allOf"in c||"type"in c&&Array.isArray(c.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),c};var MB={_media:{create:chunkAK754S3T_cjs.d.MEDIA_UPLOAD,update:chunkAK754S3T_cjs.d.MEDIA_UPLOAD,delete:chunkAK754S3T_cjs.d.MEDIA_DELETE}};function Xa(r,e){let t=MB[r];return t?t[e]:`collection.${e}`}function UB(r){let e=r.headers.get("x-forwarded-for");return e?e.split(",")[0].trim():r.headers.get("x-real-ip")||"unknown"}function _c(r,e,t,s,n){e?.apiKeyId&&r&&r.createAuditLog({action:"api_request",userId:e.userId||"",resource:"api_key",resourceId:e.apiKeyId,success:true,metadata:{endpoint:t,method:s,ip:UB(n)}});}function wc(r){return r.baseUpdatedAt??r._baseUpdatedAt}function fd(r){let{baseUpdatedAt:e,_baseUpdatedAt:t,...s}=r;return s}function hd(r,e){return {error:"Document has changed since you started editing",code:"REVISION_CONFLICT",conflict:{expectedUpdatedAt:r??null,actualUpdatedAt:e.updatedAt??null,current:e}}}async function Ie(r,e,t,s,n,a,i=true,c="none"){return await chunkAK754S3T_cjs.b(r,e,{user:s,req:t,tenantId:n,apiKey:a},{enablePublicAccess:i,defaultAccess:c})}async function Yt(r,e,t,s,n,a=true){return await chunkAK754S3T_cjs.c(r,e,{user:s,req:t,tenantId:n},{enablePublicAccess:a})}async function V(r,e,t,s){if(t)return {user:t,tenantId:s,apiKeyContext:void 0,authType:"static"};if(e){let n=await e(r);if(n.status===200&&n.user)return {user:n.user,tenantId:n.tenantContext?.tenantId,apiKeyContext:n.apiKeyContext,authType:n.authType}}return {user:void 0,tenantId:void 0,apiKeyContext:void 0,authType:void 0}}async function qB(r,e){if("dialect"in r&&r.dialect==="postgres")return new chunkXBQ6HV3T_cjs.a({db:r.client});if("dialect"in r&&r.dialect==="sqlite")return new So({db:r.client});if("dialect"in r&&r.dialect==="mongodb"){let s=r;return new chunkWJBQ2NBD_cjs.a({db:()=>s.db})}let t=Co.resolve(e,"data","auth.db");return new chunkBHR7OAU4_cjs.a({path:process.env.KYRO_AUTH_DB_PATH||t})}async function W_(r){let{registry:e,db:t,authSecret:s,authAdapter:n,checkSession:a,user:i,tenantId:c,cors:d,webhookService:y,settings:x}=r,_=new Nc;function I(l){if(Array.isArray(l))return l.map(I);if(l!==null&&typeof l=="object"){let g={};for(let b in l)b!=="attrs"&&(g[b]=I(l[b]));return g}return l}_.use("*",async(l,g)=>{await g();let b=l.req.header("referer")||"";if(!(l.req.header("x-kyro-admin")==="true"||b.includes("/admin"))){let f=l.res.headers.get("Content-Type");if(f&&f.includes("application/json"))try{let w=await l.res.clone().json(),C=I(w);l.res=l.json(C,l.res.status);}catch{}}});for(let l of e.getPlugins())typeof l.serverMiddleware=="function"&&l.serverMiddleware(_);let H=x?.access?.apiAccess,U=x?.access?.enablePublicAccess??false,F=x?.access?.defaultCollectionAccess??"none";H?.requireAuth;let re=process.cwd(),Oe=re.endsWith("admin")?Co.resolve(re,".."):re,W=n||await qB(t,Oe),q=Xm({db:t,userLookup:async l=>await W.findUserById(l)||null}),It=H?.cors?.allowedOrigins,ls=d?.origins,Pr=Array.isArray(It)?It:typeof It=="string"&&It?It.split(`
|
|
119
|
+
`).map(l=>l.trim()).filter(Boolean):[],Fe=Pr.length>0?Pr:ls||[];(Fe.length>0||d)&&_.use("*",async(l,g)=>{let b=l.req.header("Origin")||"*";if(Fe.length>0&&!Fe.includes(b))return l.json({error:"Origin not allowed"},403);let A=Fe.length>0?b:"*";if(l.header("Access-Control-Allow-Origin",A),l.header("Access-Control-Allow-Methods","GET, POST, PATCH, DELETE, OPTIONS"),l.header("Access-Control-Allow-Headers","Content-Type, Authorization, X-API-Key"),d?.credentials&&l.header("Access-Control-Allow-Credentials","true"),l.req.method==="OPTIONS")return l.text("");await g();});let mr=x?.access?.rateLimiting,er;if(mr?.enabled){let l=mr.maxRequests||100,g=mr.windowMs||6e4;er=new wo({"api:general":{window:g,max:l}}),_.use("/api/*",async(b,A)=>{if(!er)return A();let f=b.req.header("CF-Connecting-IP")||b.req.header("X-Forwarded-For")?.split(",")[0]?.trim()||b.req.header("X-Real-IP")||"unknown",p=await er.check("api:general",f);if(b.header("X-RateLimit-Limit",String(l)),b.header("X-RateLimit-Remaining",String(p.remaining)),b.header("X-RateLimit-Reset",String(p.resetAt)),!p.allowed)return b.json({error:"Too many requests",retryAfter:p.retryAfter},429);await A();});}let Ae=new vo({redis:W,jwtSecret:s||"change-me",baseUrl:process.env.KYRO_BASE_URL||"http://localhost:4321",rateLimiter:er});chunkYUER4JU3_cjs.k.fromConfig(t).then(l=>{l&&(Ae.email=l);}).catch(l=>{console.error("[Email] Failed to initialize transport from config:",l);}),_.post("/api/auth/login",async l=>Ae.login(l.req.raw)),_.post("/api/auth/register",async l=>{try{let g=await t.findOne({collection:"_globals_system",where:{}});if(g&&g.enableRegistration===!1)return l.json({error:"User registration is currently disabled by administrator."},403);if(g?.defaultRegistrationRole){let b=l.req.raw;if((b.headers.get("content-type")||"").includes("application/json")){let f=await l.req.json();f.role||(f.role=g.defaultRegistrationRole);let p=new Request(b.url,{method:b.method,headers:b.headers,body:JSON.stringify(f)});return Ae.register(p)}}}catch{}return Ae.register(l.req.raw)}),_.post("/api/auth/logout",async l=>Ae.logout(l.req.raw)),_.post("/api/auth/refresh",async l=>Ae.refresh(l.req.raw)),_.get("/api/auth/me",async l=>Ae.me(l.req.raw)),_.post("/api/auth/forgot-password",async l=>Ae.forgotPassword(l.req.raw)),_.post("/api/auth/reset-password",async l=>Ae.resetPassword(l.req.raw)),_.post("/api/auth/change-password",async l=>Ae.changePassword(l.req.raw)),_.get("/api/auth/verify-email",async l=>Ae.verifyEmail(l.req.raw)),_.post("/api/auth/verify-email",async l=>Ae.verifyEmail(l.req.raw)),_.get("/api/auth/verify",async l=>Ae.verifyEmail(l.req.raw)),_.post("/api/auth/verify",async l=>Ae.verifyEmail(l.req.raw)),_.get("/api/auth/sessions",async l=>Ae.listSessions(l.req.raw)),_.post("/api/auth/sessions/refresh",async l=>Ae.refreshSession(l.req.raw)),_.delete("/api/auth/sessions",async l=>Ae.revokeOtherSessions(l.req.raw)),_.delete("/api/auth/sessions/:id",async l=>Ae.revokeSession(l.req.raw,l.req.param("id"))),_.put("/api/auth/sessions/:id/name",async l=>Ae.renameSession(l.req.raw,l.req.param("id"))),_.get("/api/auth/access",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Not authenticated"},401);let A={},f={};for(let p of e.getCollections()){let w={read:(await Ie(p,"read",l.req.raw,g,b,void 0,U,F)).allowed,create:(await Ie(p,"create",l.req.raw,g,b,void 0,U,F)).allowed,update:(await Ie(p,"update",l.req.raw,g,b,void 0,U,F)).allowed,delete:(await Ie(p,"delete",l.req.raw,g,b,void 0,U,F)).allowed};A[p.slug]=w;}for(let p of e.getGlobals()){let w={read:(await Yt(p,"read",l.req.raw,g,b,U)).allowed,update:(await Yt(p,"update",l.req.raw,g,b,U)).allowed};f[p.slug]=w;}return l.json({collections:A,globals:f})}catch(g){return l.json({error:g.message},500)}});let Dt=typeof e.hasCollection=="function"&&e.hasCollection("users")?e.getCollection("users"):(()=>{try{return e.getCollection("users")}catch{return chunkZO3YB5DK_cjs.a}})();_.get("/api/users",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c),A=await Ie(Dt,"read",l.req.raw,g,b,void 0,U,F);if(!A.allowed)return l.json({error:A.error},A.status||403);let f=parseInt(l.req.query("page")||"1"),p=Math.min(parseInt(l.req.query("limit")||"10"),100),w=l.req.query("search")||void 0,C=[],v=0;if(typeof W.findUsers=="function"){let R=await W.findUsers({page:f,limit:p,search:w});C=R.users||[],v=R.total||0;}else {let R=await t.find({collection:"users",page:f,limit:p,where:w?{email:{contains:w}}:{},tenantId:b});C=R.docs||[],v=R.totalDocs||0;}return l.json({docs:C,totalDocs:v,limit:p,totalPages:Math.ceil(v/p)||1,page:f,pagingCounter:(f-1)*p+1,hasPrevPage:f>1,hasNextPage:f<Math.ceil(v/p),prevPage:f>1?f-1:null,nextPage:f<Math.ceil(v/p)?f+1:null})}catch(g){return console.error("[API] Error listing users:",g),l.json({error:g.message},500)}}),_.get("/api/users/:id",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c),A=l.req.param("id"),f=await W.findUserById(A);return f?l.json({data:f}):l.json({error:"User not found"},404)}catch(g){return l.json({error:g.message},500)}}),_.post("/api/users",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c),A=await Ie(Dt,"create",l.req.raw,g,b,void 0,U,F);if(!A.allowed)return l.json({error:A.error},A.status||403);let f=await l.req.json();if(!f.email||!f.password)return l.json({error:"Email and password are required"},400);if(await W.findUserByEmail(f.email))return l.json({error:"Email already in use"},400);let w=f.role||"customer";if(w!=="customer"&&g?.role!=="super_admin")return l.json({error:"Forbidden: Only super_admin can assign administrative roles"},403);let C=await W.createUser({email:f.email,password:f.password,name:f.name,role:w,avatar:f.avatar,tenantId:f.tenantId});return g&&W?.createAuditLog({action:"user_create",userId:g.id,resource:"users",resourceId:C.id,success:!0}),l.json({data:C,message:"User created successfully"},201)}catch(g){return l.json({error:g.message},500)}}),_.patch("/api/users/:id",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c),A=await Ie(Dt,"update",l.req.raw,g,b,void 0,U,F);if(!A.allowed)return l.json({error:A.error},A.status||403);let f=l.req.param("id"),p=await l.req.json(),w=await W.findUserById(f);if(!w)return l.json({error:"User not found"},404);let C={};if(p.name!==void 0&&(C.name=p.name),p.email!==void 0&&(C.email=p.email),p.role!==void 0&&p.role!==w.role){if(g?.role!=="super_admin")return l.json({error:"Forbidden: Only super_admin can modify user roles"},403);C.role=p.role;}p.avatar!==void 0&&(C.avatar=typeof p.avatar=="object"&&p.avatar!==null?p.avatar.id||String(p.avatar):p.avatar),p.tenantId!==void 0&&(C.tenantId=p.tenantId),p.emailVerified!==void 0&&(C.emailVerified=p.emailVerified),p.locked!==void 0&&(C.locked=p.locked),p.failedLoginAttempts!==void 0&&(C.failedLoginAttempts=p.failedLoginAttempts),p.lastLogin!==void 0&&(C.lastLogin=p.lastLogin);let v=await W.updateUser(f,C);return v?(g&&(W?.createAuditLog({action:"user_update",userId:g.id,resource:"users",resourceId:f,success:!0}),p.role&&w.role!==p.role&&W?.createAuditLog({action:"role_change",userId:g.id,resource:"users",resourceId:f,success:!0,metadata:{oldRole:w.role,newRole:p.role}})),l.json({data:v,message:"User updated successfully"})):l.json({error:"User update failed"},500)}catch(g){return l.json({error:g.message},500)}}),_.delete("/api/users/:id",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c),A=await Ie(Dt,"delete",l.req.raw,g,b,void 0,U,F);if(!A.allowed)return l.json({error:A.error},A.status||403);let f=l.req.param("id");if(g&&g.id===f)return l.json({error:"You cannot delete your own account"},403);let p=await W.findUserById(f);return p?await W.deleteUser(f)?(g&&W?.createAuditLog({action:"user_delete",userId:g.id,resource:"users",resourceId:f,success:!0}),l.json({data:p,message:"User deleted successfully"})):l.json({error:"User deletion failed"},500):l.json({error:"User not found"},404)}catch(g){return l.json({error:g.message},500)}}),_.get("/api/auth/audit-logs",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c),A=e.getCollection("audit_logs");if(A){let P=await Ie(A,"read",l.req.raw,g,b,void 0,U,F);if(!P.allowed)return l.json({error:P.error},P.status||403)}else if(!g)return l.json({error:"Authentication required"},401);let f=parseInt(l.req.query("page")||"1"),p=Math.min(parseInt(l.req.query("limit")||"50"),100),w=l.req.query("action")||void 0,C=l.req.query("userId")||void 0,v=l.req.query("resource")||void 0,R=await W.findAuditLogs({action:w,userId:C,resource:v,limit:p,offset:(f-1)*p});return l.json({docs:R.logs,totalDocs:R.total,limit:p,totalPages:Math.ceil(R.total/p),page:f,pagingCounter:(f-1)*p+1,hasPrevPage:f>1,hasNextPage:f<Math.ceil(R.total/p),prevPage:f>1?f-1:null,nextPage:f<Math.ceil(R.total/p)?f+1:null})}catch(g){return console.error("[API] Error listing audit logs:",g),l.json({error:g.message},500)}});let Lt=null,Ir=null,mt=async()=>{if(Ir)throw Ir;if(!Lt)try{let l="sqlite";"dialect"in t&&t.dialect==="postgres"&&t instanceof chunk6KUL2BSA_cjs.c?l=t.dialect:"dialect"in t&&t.dialect==="mongodb"&&(l="mongodb");let g=l==="postgres"&&t instanceof chunk6KUL2BSA_cjs.c?t.client:t;Lt=await dc.init(g,{dialect:l});}catch(l){throw console.error("[getMedia] Init error:",l),Ir=l,l}return Lt};_.get("/api/media",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=await mt(),A=new URL(l.req.url).origin,f=parseInt(l.req.query("page")||"1"),p=parseInt(l.req.query("limit")||"30"),w=l.req.query("search")||"",C=l.req.query("type")||"",v=l.req.query("folder")||"",R=await b.find({page:f,limit:p,search:w,type:C,folder:v},A);return l.json(R)}catch(g){return console.error("[Media] find error:",g),l.json({error:g.message},500)}}),_.post("/api/media/upload",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=await mt(),A=l.req.header("content-type")||"",f=new URL(l.req.url).origin;if(A.includes("multipart/form-data")){let R=await l.req.formData(),P=R.get("file"),T=R.get("folder")||"";if(!P)return l.json({error:"No file uploaded"},400);let N=await b.upload(P,T,f);return l.json(N)}let p=await l.req.json(),{url:w}=p,C=p.folder||"";if(!w)return l.json({error:"No URL provided"},400);let v=await b.uploadFromUrl(w,C,f);return l.json(v)}catch(g){return console.error("[Media] upload error:",g),l.json({error:g.message},500)}}),_.get("/api/media/folders",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let A=await(await mt()).listFolders();return l.json(A)}catch(g){return console.error("[Media] folders error:",g),l.json({error:g.message},500)}}),_.post("/api/media/folders",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=await mt(),A=await l.req.json(),{name:f,parentPath:p}=A;return f?(await b.createFolder(f,p||""),l.json({message:"Folder created",path:p?`${p}/${f}`:f})):l.json({error:"Folder name is required"},400)}catch(g){return console.error("[Media] create folder error:",g),l.json({error:g.message},500)}}),_.delete("/api/media/folders",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=await mt(),A=l.req.query("path");return A?(await b.deleteFolder(A),l.json({message:"Folder deleted"})):l.json({error:"Path is required"},400)}catch(g){return console.error("[Media] delete folder error:",g),l.json({error:g.message},500)}}),_.delete("/api/media/:id",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=await mt(),A=l.req.param("id"),f=new URL(l.req.url).origin;return await b.delete(A,f),l.json({success:!0})}catch(g){return console.error("[Media] delete error:",g),l.json({error:g.message},500)}}),_.get("/api/media/file/:key{.+$}",async l=>{let g=l.req.param("key"),b=globalThis.STORAGE_BUCKET;if(b){let A=await b.get(g);if(!A)return l.notFound();let f=new Headers;return A.writeHttpMetadata(f),f.set("etag",A.httpEtag),new Response(A.body,{headers:f})}return l.notFound()}),_.get("/api/media/resize",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=l.req.query("url"),A=parseInt(l.req.query("w")||"0"),f=parseInt(l.req.query("h")||"0"),p=l.req.query("fit")||"cover",w=parseFloat(l.req.query("cx")||"0"),C=parseFloat(l.req.query("cy")||"0"),v=parseFloat(l.req.query("cw")||"0"),R=parseFloat(l.req.query("ch")||"0");if(!b)return l.json({error:"URL is required"},400);let T=(await mt()).storage;if(T.name!=="local")return l.redirect(b);let N=T.config?.uploadDir||Co.join(process.cwd(),"public","uploads"),$=T.config?.baseUrl||"/uploads";if(!b.startsWith($))return l.redirect(b);let z=b.replace($,""),Q=Co.join(N,z);if(!fs$1.existsSync(Q))return l.json({error:"File not found"},404);let ue=fs$1.readFileSync(Q),{default:X}=await import('sharp'),ye=X(ue);if(v>0&&R>0){let Xe=await X(ue).metadata(),Vr=Xe.width||0,vt=Xe.height||0;if(Vr>0&&vt>0){let Ot=Math.max(0,Math.min(Math.round(w/100*Vr),Vr-1)),Is=Math.max(0,Math.min(Math.round(C/100*vt),vt-1)),Z_=Math.max(1,Math.min(Math.round(v/100*Vr),Vr-Ot)),X_=Math.max(1,Math.min(Math.round(R/100*vt),vt-Is));ye=ye.extract({left:Ot,top:Is,width:Z_,height:X_});}}(A>0||f>0)&&(ye=ye.resize({width:A>0?A:void 0,height:f>0?f:void 0,fit:p}));let Ze=await ye.toBuffer(),$t=await X(ue).metadata();return l.header("Content-Type",`image/${$t.format||"webp"}`),l.header("Cache-Control","public, max-age=31536000, immutable"),l.body(Ze)}catch(g){return console.error("[Media] resize error:",g),l.json({error:g.message},500)}}),_.get("/api/media/:id",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=await mt(),A=l.req.param("id"),f=new URL(l.req.url).origin,p=await b.findById(A,f);return p?l.json(p):l.json({error:"Media not found"},404)}catch(g){return console.error("[Media] get error:",g),l.json({error:g.message},500)}}),_.patch("/api/media/:id",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=await mt(),A=l.req.param("id"),f=await l.req.json(),p=new URL(l.req.url).origin,w=["folder","metadata","title","alt","caption","originalName"],C={};for(let v of w)f[v]!==void 0&&(C[v]=f[v]);if(Object.keys(C).length>0){let v=await b.update(A,C,p);return l.json({doc:v})}return l.json({error:"No valid fields to update"},400)}catch(g){return console.error("[Media] update error:",g),l.json({error:g.message},500)}}),_.get("/api/media/test",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=await mt();return l.json({status:b?"initialized":"failed",serviceType:b?.constructor?.name})}catch(g){return console.error("[test] Error:",g),l.json({error:g.message,type:g.constructor?.name,stack:g.stack},500)}}),_.get("/api/storage-status",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=typeof globalThis.STORAGE_BUCKET<"u"||typeof l.env?.STORAGE_BUCKET<"u",A=b,f=b?"cloudflare_r2":"local";if(t)try{let p=t.prepare('SELECT provider FROM "_globals_storage-settings" LIMIT 1').get();p&&p.provider&&(A=!0,f=p.provider==="aws"?"s3":p.provider);}catch{try{let p=await t.findOne({collection:"_globals_storage-settings",where:{},draft:!0});p&&p.provider&&(A=!0,f=p.provider==="aws"?"s3":p.provider);}catch{}}return l.json({provider:f,configured:A,usage:0,limit:"unlimited"})}catch(g){return console.error("[Storage] status error:",g),l.json({error:g.message},500)}}),_.get("/api/plugins",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=e.getPlugins(),A=e.storageProviders,f=await Promise.all(b.map(async p=>{let w=!0,C=p.name,v={};try{let T=await t.findOne({collection:"_globals_plugin-settings",where:{},draft:!0});T&&T.states&&(v=T.states);}catch{}v[C]!==void 0&&(w=v[C]),A.setPluginEnabled(C,w);let R=C.replace(/^@[^/]+\//,"");R=R.replace(/^(plugin|kyro)-/,"");let P={ai:"AI",seo:"SEO",s3:"S3",aws:"AWS",api:"API",ui:"UI",ftp:"FTP"};if(R=R.split("-").map(T=>{let N=T.toLowerCase();return P[N]?P[N]:T.charAt(0).toUpperCase()+T.slice(1)}).join(" "),R.toLowerCase().startsWith("storage ")){let T=R.split(" ");T.length===2&&(R=`${T[1]} Storage`);}return {id:C,name:p.displayName||R,version:p.version||"1.0.0",description:p.description||"",enabled:w,status:w?"active":"disabled"}}));return l.json(f)}catch(g){return console.error("[Plugins] list error:",g),l.json({error:g.message},500)}}),_.put("/api/plugins/:name/toggle",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=l.req.param("name"),A=e.storageProviders,p=!A.isPluginEnabled(b),w=[];if(!p)for(let v of A.getAll())v.pluginName===b&&w.push(v.type);if(!(l.req.query("force")==="1")&&!p&&w.length>0){let v="local";try{let R=t?.prepare?.('SELECT provider FROM "_globals_storage-settings" LIMIT 1')?.get();R?.provider&&(v=R.provider);}catch{try{let R=await t?.findOne?.({collection:"_globals_storage-settings",where:{},draft:!0});R?.provider&&(v=R.provider);}catch{}}if(w.includes(v))return l.json({error:`Cannot disable "${b}" \u2014 storage provider "${v}" is currently active. Switch to Local storage first.`,requiresAction:!0,activeProvider:v},409)}try{let v={},R="global",P=await t.findOne({collection:"_globals_plugin-settings",where:{},draft:!0});P&&(v=P.states||{},R=P.id),v[b]=p,P?await t.update({collection:"_globals_plugin-settings",id:R,data:{states:v}}):await t.create({collection:"_globals_plugin-settings",data:{states:v,id:"global"}});}catch(v){console.warn(`[Plugins] Could not persist state for "${b}":`,v);}return A.setPluginEnabled(b,p),l.json({name:b,enabled:p})}catch(g){return console.error("[Plugins] toggle error:",g),l.json({error:g.message},500)}}),_.get("/api/health",l=>l.json({status:"ok",version:"0.12.48",collections:e.getCollectionSlugs(),timestamp:new Date().toISOString()})),_.get("/api/metrics",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let A=g.role==="admin"||g.role==="super_admin",p=e.getCollectionSlugs().filter($=>!["users","audit_logs","media","_globals_access-settings","_globals_brand-settings"].includes($)&&!$.startsWith("_globals_")).filter($=>A||chunk7WMMKGEO_cjs.a(g,`${$}:read`)),w=0,C={};await Promise.all(p.map(async $=>{try{let Q=(await t.find({collection:$,where:{},limit:1,page:1,tenantId:b})).totalDocs??0;w+=Q,C[$]=Q;}catch{}}));let v=0;try{v=(await t.find({collection:"media",where:{},limit:1,page:1,tenantId:b})).totalDocs??0;}catch{}let R=0;try{R=(await t.find({collection:"users",where:{},limit:1,page:1,tenantId:b})).totalDocs??0;}catch{}let P=0;try{if(y){let $=await y.getWebhooks();P=Array.isArray($)?$.length:0;}}catch{}let T=0;try{T=(await t.find({collection:chunkDUO523BH_cjs.d,where:{},limit:1,page:1,tenantId:b})).totalDocs??0;}catch{}let N=w+v+R;return l.json({totalDocuments:w,totalMedia:A||chunk7WMMKGEO_cjs.a(g,"media:read")?v:void 0,totalUsers:A||chunk7WMMKGEO_cjs.a(g,"users:read")?R:void 0,totalWebhooks:A?P:void 0,totalApiKeys:A?T:void 0,totalStoredRecords:N,collectionCounts:C,collections:p.length,timestamp:new Date().toISOString()})}catch(g){return console.error("[API] Metrics error:",g),l.json({error:g.message},500)}}),_.get("/api/analytics",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);if(!(g.role==="admin"||g.role==="super_admin"))return l.json({error:"Unauthorized"},403);let p=(await t.find({collection:"orders",where:{},limit:1e3,page:1,tenantId:b})).docs||[],w=await t.findOne({collection:"_globals_store-settings",where:{},tenantId:b}),C=w?.currency?.code||w?.currency||"USD",v={},R={},P={};p.forEach($=>{let z=$.createdAt||$.updatedAt,Q=z?new Date(z).toISOString().split("T")[0]:new Date().toISOString().split("T")[0];v[Q]||(v[Q]=0),R[Q]||(R[Q]=0);let ue=typeof $.total=="number"?$.total:parseFloat(String($.total||0));v[Q]+=isNaN(ue)?0:ue,R[Q]+=1;let X=$.orderStatus||$.status||"pending";P[X]=(P[X]||0)+1;});let T=Object.keys(v).sort().map($=>({date:$,revenue:Math.round(v[$]*100)/100,orders:R[$]})),N=Math.round(T.reduce(($,z)=>$+z.revenue,0)*100)/100;return l.json({chartData:T,totalRevenue:N,totalOrders:p.length,ordersByStatus:P,currencyCode:typeof C=="string"?C:"USD"})}catch(g){return l.json({error:g.message},500)}}),_.get("/api/kyro/schema",async l=>{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=f=>f.map(p=>{let w={name:p.name,type:p.type,label:p.label,required:p.required??false,unique:p.unique??false,indexed:p.indexed??false,defaultValue:p.defaultValue,admin:p.admin?{...p.admin}:void 0};return p.minLength!==void 0&&(w.minLength=p.minLength),p.maxLength!==void 0&&(w.maxLength=p.maxLength),p.pattern!==void 0&&(w.pattern=p.pattern),p.variant!==void 0&&(w.variant=p.variant),p.hasMany!==void 0&&(w.hasMany=p.hasMany),p.min!==void 0&&(w.min=p.min),p.max!==void 0&&(w.max=p.max),p.step!==void 0&&(w.step=p.step),p.integer!==void 0&&(w.integer=p.integer),p.options&&(w.options=p.options),p.relationTo&&(w.relationTo=p.relationTo),p.maxDepth!==void 0&&(w.maxDepth=p.maxDepth),p.minRows!==void 0&&(w.minRows=p.minRows),p.maxRows!==void 0&&(w.maxRows=p.maxRows),p.localized!==void 0&&(w.localized=p.localized),p.language&&(w.language=p.language),p.format&&(w.format=p.format),p.allowedTypes&&(w.allowedTypes=p.allowedTypes),p.maxSize&&(w.maxSize=p.maxSize),(p.type==="group"||p.type==="row"||p.type==="collapsible"&&p.fields)&&(w.fields=b(p.fields)),p.type==="array"&&p.fields&&(w.fields=b(p.fields)),p.type==="blocks"&&p.blocks&&(w.blocks=p.blocks.map(C=>({slug:C.slug,label:C.label,fields:b(C.fields)}))),p.type==="tabs"&&p.tabs&&(w.tabs=p.tabs.map(C=>({label:C.label,name:C.name,fields:b(C.fields)}))),w}),A={collections:{},globals:{}};for(let f of e.getCollections()){let p=f.slug;try{A.collections[p]={slug:p,label:f.label||p,fields:b(f.fields),jsonSchema:zn(e.getZodSchema(p),{target:"openApi3"}),createSchema:zn(e.getCreateZodSchema(p),{target:"openApi3"}),updateSchema:zn(e.getUpdateZodSchema(p),{target:"openApi3"}),procedures:{find:{collection:p,where:"Record<string,any>",sort:"string",limit:"number",page:"number",depth:"number",select:"string[]",draft:"boolean"},findByID:{collection:p,id:"string",depth:"number",select:"string[]",draft:"boolean"},create:{collection:p,data:"Record<string,any>",depth:"number",select:"string[]"},update:{collection:p,id:"string",data:"Record<string,any>",depth:"number",select:"string[]",baseUpdatedAt:"string"},delete:{collection:p,id:"string"},count:{collection:p,where:"Record<string,any>"}}};}catch{}}for(let f of e.getGlobals()){let p=f.slug,w=f.fields;if(p==="storage-settings"){let C=e.storageProviders,v=C.getAll(),R=new Set(C.getAllAvailable(T=>C.isPluginEnabled(T)).map(T=>T.type));R.add("local");let P=new Set(v.map(T=>T.type));w=w.filter(T=>T.type==="group"&&T.name&&P.has(T.name)?R.has(T.name):true).map(T=>T.name==="provider"&&T.type==="select"?{...T,options:T.options.filter(N=>R.has(N.value))}:T);}try{A.globals[p]={slug:p,label:f.label||p,fields:b(w),jsonSchema:zn(e.getZodSchema(p),{target:"openApi3"}),procedures:{get:{},update:{data:"Record<string,any>"}}};}catch{}}return l.json(A)}),_.get("/api/collections",async l=>{let{user:g}=await V(l.req.raw,q,i,c);if(!g)return l.json({error:"Authentication required"},401);let b=e.getCollections().map(A=>({slug:A.slug,label:A.label||A.slug,fields:A.fields.filter(f=>f.name).map(f=>({name:f.name,type:f.type,required:f.required,label:f.label}))}));return l.json(b)});function Kn(l,g,b){if(b in g)return g[b];for(let A of l)if(A.name){if(A.type==="tabs"&&A.tabs){let f=g[A.name];if(f&&typeof f=="object"&&b in f)return f[b]}if((A.type==="group"||A.type==="collapsible")&&A.fields){let f=g[A.name];if(f&&typeof f=="object"){if(b in f)return f[b];let p=Kn(A.fields,f,b);if(p!==void 0)return p}}}}_.get("/api/search",async l=>{try{let g=l.req.query("q")||"",b=l.req.query("collections")||"",A=Math.min(parseInt(l.req.query("limit")||"10"),50);if(!g||g.length<2)return l.json({results:[],message:"Query too short"});let{user:f,tenantId:p}=await V(l.req.raw,q,i,c),w=b?b.split(",").filter(Boolean):e.getCollectionSlugs(),C=[],v=new RegExp(g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i");for(let R of e.getCollections()){if(!w.includes(R.slug)||!(await Ie(R,"read",l.req.raw,f,p,void 0,U,F)).allowed)continue;let T=R.fields.filter(N=>N.name&&N.name!=="id"&&(N.type==="text"||N.type==="email"||N.type==="textarea"||N.type==="richtext"||N.indexed)&&!N.admin?.hidden).map(N=>N.name);if(T.length!==0)try{let N=T.map(z=>{let Q={};return Q[z]={like:`%${g}%`},Q}),$=await t.find({collection:R.slug,where:{OR:N},limit:A,tenantId:p});await chunkAK754S3T_cjs.a($.docs,R.fields,t,e,1,0);for(let z of $.docs){let Q=R.admin?.useAsTitle||T.find(X=>X==="title"||X==="name"||X==="heading"||X==="slug"),ue=Q?Kn(R.fields,z,Q)??z.id:z.id;C.push({collection:R.slug,label:R.label||R.slug,id:z.id,title:String(ue||"Untitled"),doc:z});}}catch(N){console.error(`Search error for ${R.slug}:`,N);}}return C.sort((R,P)=>R.label.localeCompare(P.label)),l.json({results:C})}catch(g){return l.json({error:g.message,results:[]},500)}}),_.get("/api/keys",async l=>{try{let{user:g,tenantId:b}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:read"))return l.json({error:"Forbidden"},403);let A=parseInt(l.req.query("page")||"1"),f=Math.min(parseInt(l.req.query("limit")||"50"),100),p=await t.find({collection:chunkDUO523BH_cjs.d,where:{},page:A,limit:f,tenantId:b}),w=(p.docs||[]).map(C=>({id:C.id,name:C.name,keyPrefix:C.keyPrefix,permissions:C.permissions||[],lastUsed:C.lastUsedAt,createdAt:C.createdAt}));return l.json({docs:w,totalDocs:p.totalDocs||w.length,totalPages:p.totalPages||1})}catch(g){return console.error("[ApiKeys] GET error:",g),l.json({error:g.message},500)}}),_.post("/api/keys",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:admin"))return l.json({error:"Forbidden"},403);let b=await l.req.json();if(!b.name||typeof b.name!="string")return l.json({error:"name is required"},400);let A=chunkDUO523BH_cjs.i(),f=await t.create({collection:chunkDUO523BH_cjs.d,data:{userId:g.id,name:b.name,key:A,keyPrefix:chunkDUO523BH_cjs.j(A),permissions:Array.isArray(b.permissions)?b.permissions:["*"],expiresAt:b.expiresAt||null,createdAt:new Date().toISOString()}});return await W?.createAuditLog({action:"api_key_create",userId:g.id,resource:"api_key",resourceId:f.id,success:!0,metadata:{keyName:b.name}}),l.json({...f,key:A,permissions:Array.isArray(b.permissions)?b.permissions:["*"]},201)}catch(g){return console.error("[ApiKeys] POST error:",g),l.json({error:g.message},500)}}),_.delete("/api/keys/:id",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:admin"))return l.json({error:"Forbidden"},403);let b=l.req.param("id"),A=await t.findByID({collection:chunkDUO523BH_cjs.d,id:b});return A?(await t.delete({collection:chunkDUO523BH_cjs.d,id:b}),await W?.createAuditLog({action:"api_key_delete",userId:g.id,resource:"api_key",resourceId:b,success:!0,metadata:{keyName:A.name}}),l.json({message:"API key deleted"})):l.json({error:"API key not found"},404)}catch(g){return console.error("[ApiKeys] DELETE error:",g),l.json({error:g.message},500)}}),_.patch("/api/keys/:id",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:admin"))return l.json({error:"Forbidden"},403);let b=l.req.param("id"),A=await l.req.json(),f=await t.findByID({collection:chunkDUO523BH_cjs.d,id:b});if(!f)return l.json({error:"API key not found"},404);let p={};if(typeof A.name=="string"&&A.name.trim()&&(p.name=A.name.trim()),Array.isArray(A.permissions)&&(p.permissions=A.permissions),A.expiresAt!==void 0&&(p.expiresAt=A.expiresAt||null),Object.keys(p).length===0)return l.json({error:"Nothing to update"},400);let w=await t.update({collection:chunkDUO523BH_cjs.d,id:b,data:p});return l.json({...w,keyPrefix:f.keyPrefix})}catch(g){return console.error("[ApiKeys] PATCH error:",g),l.json({error:g.message},500)}}),_.post("/api/keys/:id/rotate",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:admin"))return l.json({error:"Forbidden"},403);let b=l.req.param("id"),A=await t.findByID({collection:chunkDUO523BH_cjs.d,id:b});if(!A)return l.json({error:"API key not found"},404);let f=chunkDUO523BH_cjs.i(),p=await t.update({collection:chunkDUO523BH_cjs.d,id:b,data:{key:f,keyPrefix:chunkDUO523BH_cjs.j(f),lastUsedAt:null}});return await W?.createAuditLog({action:"api_key_rotate",userId:g.id,resource:"api_key",resourceId:b,success:!0,metadata:{keyName:A.name}}),l.json({...p,key:f,permissions:A.permissions,expiresAt:A.expiresAt})}catch(g){return console.error("[ApiKeys] rotate error:",g),l.json({error:g.message},500)}}),_.get("/api/webhooks/actions",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:read"))return l.json({error:"Forbidden"},403);let b={generic:{label:"Custom URL",description:"POST to any endpoint with Kyro payload",configFields:[],envVars:[]},"github-push":{label:"GitHub Push",description:"Push an empty commit to simulate a push event",configFields:[{name:"githubOwner",label:"Owner",required:!0,placeholder:"e.g., kyro-dev"},{name:"githubRepo",label:"Repository",required:!0,placeholder:"e.g., my-website"},{name:"githubBranch",label:"Branch",required:!1,placeholder:"main"}],envVars:["GITHUB_TOKEN"]}};return l.json({actions:b})}catch(g){return console.error("[Webhooks] actions error:",g),l.json({error:g.message},500)}}),_.get("/api/webhooks",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:read"))return l.json({error:"Forbidden"},403);if(!y)return l.json({error:"Webhook service not available"},503);let b=await y.getWebhooks();return l.json({docs:b})}catch(g){return console.error("[Webhooks] GET error:",g),l.json({error:g.message},500)}}),_.post("/api/webhooks",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:admin"))return l.json({error:"Forbidden"},403);if(!y)return l.json({error:"Webhook service not available"},503);let b=await l.req.json(),A=await y.createWebhook(b);return await W?.createAuditLog({action:"webhook_create",userId:g.id,resource:"webhook",resourceId:A.id,success:!0,metadata:{name:A.name,url:A.url}}),l.json(A,201)}catch(g){return console.error("[Webhooks] POST error:",g),l.json({error:g.message},500)}}),_.get("/api/webhooks/:id",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:read"))return l.json({error:"Forbidden"},403);if(!y)return l.json({error:"Webhook service not available"},503);let b=l.req.param("id"),A=await y.getWebhookById(b);return A?l.json(A):l.json({error:"Webhook not found"},404)}catch(g){return console.error("[Webhooks] GET :id error:",g),l.json({error:g.message},500)}}),_.patch("/api/webhooks/:id",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:admin"))return l.json({error:"Forbidden"},403);if(!y)return l.json({error:"Webhook service not available"},503);let b=l.req.param("id"),A=await l.req.json(),f=await y.updateWebhook(b,A);return f?(await W?.createAuditLog({action:"webhook_update",userId:g.id,resource:"webhook",resourceId:b,success:!0,metadata:{name:f.name}}),l.json(f)):l.json({error:"Webhook not found"},404)}catch(g){return console.error("[Webhooks] PATCH error:",g),l.json({error:g.message},500)}}),_.delete("/api/webhooks/:id",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:admin"))return l.json({error:"Forbidden"},403);if(!y)return l.json({error:"Webhook service not available"},503);let b=l.req.param("id"),A=await y.getWebhookById(b);return A?(await y.deleteWebhook(b),await W?.createAuditLog({action:"webhook_delete",userId:g.id,resource:"webhook",resourceId:b,success:!0,metadata:{name:A.name}}),l.json({message:"Webhook deleted"})):l.json({error:"Webhook not found"},404)}catch(g){return console.error("[Webhooks] DELETE error:",g),l.json({error:g.message},500)}}),_.post("/api/webhooks/:id/test",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:admin"))return l.json({error:"Forbidden"},403);if(!y)return l.json({error:"Webhook service not available"},503);let b=l.req.param("id"),A=await y.testWebhook(b);return A?l.json(A):l.json({error:"Webhook not found"},404)}catch(g){return console.error("[Webhooks] test error:",g),l.json({error:g.message},500)}}),_.get("/api/webhooks/:id/history",async l=>{try{let{user:g}=await V(l.req.raw,q,i,c);if(!g||!chunk7WMMKGEO_cjs.a(g,"users:read"))return l.json({error:"Forbidden"},403);if(!y)return l.json({error:"Webhook service not available"},503);let b=l.req.param("id"),A=Math.min(parseInt(l.req.query("limit")||"50"),100),f=await y.getDeliveryHistory(b,A);return l.json({docs:f})}catch(g){return console.error("[Webhooks] history error:",g),l.json({error:g.message},500)}});function Vn(l){let g={},b=["name","type","required","hasMany","relationTo","options","min","max","minLength","maxLength","defaultValue","label","localized","admin","unique","index","hidden","readOnly","deprecated"];for(let A of b)A in l&&(g[A]=l[A]);return l.fields&&(g.fields=l.fields.map(Vn)),l.tabs&&(g.tabs=l.tabs.map(A=>({label:A.label,name:A.name,fields:A.fields.map(Vn)}))),g}_.get("/api/__schema",async l=>{try{let{user:g,apiKeyContext:b}=await V(l.req.raw,q,i,c);if(!g&&!b)return l.json({error:"Unauthorized"},401);let f=e.getCollections().filter(p=>p.slug!=="users"&&p.slug!=="audit_logs").map(p=>({slug:p.slug,label:p.label,labelPlural:p.labelPlural,singularLabel:p.singularLabel,timestamps:p.timestamps,auth:!!p.auth,tenantScoped:!!p.tenantScoped,upload:p.upload?{staticDir:p.upload.staticDir,imageSizes:p.upload.imageSizes,mimeTypes:p.upload.mimeTypes}:void 0,fields:p.fields.map(Vn)}));return l.json(f)}catch(g){return console.error("[Schema] error:",g),l.json({error:g.message},500)}});let gd=e.getCollections();for(let l of gd){let A=function(f,p){let w=[],C=new Set([...Object.keys(f),...Object.keys(p)]);for(let v of C)v==="id"||v==="createdAt"||v==="updatedAt"||JSON.stringify(f[v])!==JSON.stringify(p[v])&&w.push({field:v,oldValue:v in f?f[v]:void 0,newValue:v in p?p[v]:void 0});return w};let g=l.slug;if(g==="users"||g==="audit_logs")continue;let b=`/api/${g}`;_.post(`${b}/dynamic-options/:fieldName`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"read",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);let R=f.req.param("fieldName"),P=await f.req.json(),{data:T,siblingData:N}=P,$=hs(l.fields,R);if(!$)return f.json({error:"Field not found"},404);if($.type!=="select")return f.json({error:"Field is not a select field"},400);let z=[];return typeof $.options=="function"?z=await $.options({data:T||{},siblingData:N||{}}):Array.isArray($.options)&&(z=$.options),f.json({options:z})}catch(p){return f.json({error:p.message},500)}}),_.get(b,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"read",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);w&&t.setTenantContext({tenantId:w,userId:p?.id??"",role:p?.role,isSuperAdmin:p?.role==="super_admin"});let R=new URL(f.req.url),P=parseInt(R.searchParams.get("page")||"1"),T=Math.min(parseInt(R.searchParams.get("limit")||"10"),100),N=R.searchParams.get("sort")||void 0,$=parseInt(R.searchParams.get("depth")||"0"),z=R.searchParams.get("select")?.split(",")||void 0,Q=R.searchParams.get("draft"),ue=Q==="true"?!0:Q==="false"?!1:!!p,X={},ye=R.searchParams.get("where");if(ye)try{X=JSON.parse(ye);}catch{return f.json({error:"Invalid JSON in where parameter"},400)}let Ze=await t.find({collection:g,where:X,sort:N,limit:T,page:P,depth:$,tenantId:w,select:z,draft:ue});return await chunkAK754S3T_cjs.a(Ze.docs,l.fields,t,e,1,$),f.json(chunkZOVH6QT5_cjs.a(Ze))}catch(p){return console.error("[API] list error:",p),f.json({error:p.message},500)}}),_.get(`${b}/:id/versions`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"read",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);let R=f.req.param("id");if(!R)return f.json({error:"Missing document ID"},400);let P=new URL(f.req.url),T=P.searchParams.get("compareA"),N=P.searchParams.get("compareB");if(_c(W,C,`${b}/${R}/versions`,"GET",f.req.raw),T&&N){let[ue,X]=await Promise.all([t.findVersionByID({collection:g,versionId:T,tenantId:w}),t.findVersionByID({collection:g,versionId:N,tenantId:w})]);if(!ue||!X)return f.json({error:"Version not found"},404);let ye=A(ue.data,X.data);return f.json({diffs:ye})}let $=parseInt(P.searchParams.get("page")||"1"),z=Math.min(parseInt(P.searchParams.get("limit")||"10"),100),Q=await t.findVersions({collection:g,documentId:R,page:$,limit:z,tenantId:w});return f.json(Q)}catch(p){return console.error("[API] versions error:",p),f.json({error:p.message},500)}}),_.put(`${b}/:id/draft`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"update",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);let R=f.req.param("id"),P=await f.req.json(),T=wc(P),N=await t.findByID({collection:g,id:R,tenantId:w,draft:!0});if(!N)return f.json({error:"Document not found"},404);let $;P.delta?$={...N,...P.delta}:$=P.data??fd(P);let z=await t.updateLatestVersion({collection:g,documentId:R,data:$,status:"draft",tenantId:w});return p&&W?.createAuditLog({action:"document_update",userId:p.id,resource:g,resourceId:R,success:!0,metadata:{type:"draft_save"}}),f.json({data:z,message:"Draft saved successfully"})}catch(p){return f.json({error:p.message},500)}}),_.delete(`${b}/:id/draft`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"update",f.req.raw,p,w,C,U,F);return v.allowed?(p&&W?.createAuditLog({action:"document_update",userId:p.id,resource:g,resourceId:f.req.param("id"),success:!0,metadata:{type:"draft_discard"}}),f.json({message:"Draft discarded successfully"})):f.json({error:v.error},v.status||403)}catch(p){return f.json({error:p.message},500)}}),_.get(`${b}/:id`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=new URL(f.req.url),R=v.searchParams.get("draft"),P=v.searchParams.get("kyroToken"),T=!1;if(R==="true"&&P&&s)try{let X=await xo(P,s,"HS256");X&&X.type==="preview"&&X.collection===l.slug&&(T=!0);}catch(X){console.warn("Invalid preview token",X);}if(!T){let X=await Ie(l,"read",f.req.raw,p,w,C,U,F);if(!X.allowed)return f.json({error:X.error},X.status||403)}let N=f.req.param("id"),$=parseInt(v.searchParams.get("depth")||"0"),z=v.searchParams.get("select")?.split(",")||void 0,Q=R==="true"?!0:R==="false"?!1:!!p,ue=await t.findByID({collection:g,id:N,depth:$,tenantId:w,select:z,draft:Q});return !ue&&l.fields.some(X=>X.name==="slug")&&(ue=await t.findOne({collection:g,where:{slug:N},tenantId:w,draft:Q})),ue?(await chunkAK754S3T_cjs.a([ue],l.fields,t,e,1,$),f.json({data:chunkZOVH6QT5_cjs.a(ue)})):f.json({error:"Document not found"},404)}catch(p){return f.json({error:p.message},500)}}),_.post(`${b}/preview-url`,async f=>{try{let{user:p,tenantId:w}=await V(f.req.raw,q,i,c),C=await Ie(l,"read",f.req.raw,p,w);if(!C.allowed)return f.json({error:C.error||"Forbidden"},C.status||403);let v=await f.req.json().catch(()=>({})),R="";s&&(R=await _o({type:"preview",collection:l.slug,id:v.id,exp:Math.floor(Date.now()/1e3)+3600},s,"HS256"));let P="";if(l.admin?.preview){P=await l.admin.preview(v,{req:f.req.raw,token:R});try{let T=new URL(P,"http://localhost");T.searchParams.has("preview")||T.searchParams.set("preview","true"),!T.searchParams.has("kyroToken")&&R&&T.searchParams.set("kyroToken",R),P=P.startsWith("http")?T.toString():`${T.pathname}${T.search}`;}catch{}}else {let T="";try{let $=await t.findOne({collection:"_globals_site-settings",where:{}});$?.siteUrl&&(T=$.siteUrl);}catch{}if(!T)return f.json({error:"No site URL configured in settings, and no custom preview function defined for this collection."},400);T=T.replace(/\/$/,"");let N=v.slug||v.id||"";P=`${T}/${l.slug}/${N}?preview=true&kyroToken=${R}`;}return f.json({url:P})}catch(p){return f.json({error:p.message},500)}}),_.post(b,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"create",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);w&&t.setTenantContext({tenantId:w,userId:p?.id??"",role:p?.role,isSuperAdmin:p?.role==="super_admin"}),_c(W,C,b,"POST",f.req.raw);let P=await f.req.json();Jr(P,l.fields),Qr(l.fields,P);let T=f.req.raw;if(l.hooks?.beforeValidate)for(let X of l.hooks.beforeValidate){let ye=await X({collection:g,data:P,req:T,user:p,tenantId:w,operation:"create"});ye&&typeof ye=="object"&&!Array.isArray(ye)&&Object.assign(P,ye);}let N=e.getCreateZodSchema(g);try{P=N.parse(P);}catch(X){return f.json({error:`Validation failed: ${ra(X.errors)}`,details:X.errors},400)}l.tenantScoped&&w&&(P.tenantId=w);let $=l.versions?.drafts===!0,z=l.fields.find(X=>X.name==="status"),Q=z?.type==="select"&&Array.isArray(z.options)&&z.options.some(X=>X.value==="published");if($?P.status="draft":Q&&!P.status&&(P.status="published"),l.hooks?.beforeChange)for(let X of l.hooks.beforeChange){let ye=await X({collection:g,data:P,req:T,user:p,tenantId:w,operation:"create"});ye&&typeof ye=="object"&&!Array.isArray(ye)&&Object.assign(P,ye);}let ue=await t.create({collection:g,data:P,tenantId:w});if($&&await t.createVersion({collection:g,documentId:ue.id,data:P,status:"draft",createdBy:p?.id,changeDescription:"Created",tenantId:w}),l.hooks?.afterChange)for(let X of l.hooks.afterChange)await X({collection:g,doc:ue,data:P,req:T,user:p,tenantId:w,operation:"create"});return y&&y.trigger(Xa(g,"create"),{collection:g,operation:"create",data:ue,user:p?{id:p.id,email:p.email,role:p.role}:void 0,tenantId:w}).catch(X=>console.error("[Webhook] Failed to trigger:",X)),p&&W?.createAuditLog({action:"document_create",userId:p.id,resource:g,resourceId:ue.id,success:!0}),f.json({data:ue,message:"Created successfully"},201)}catch(p){return p.name==="ZodError"?f.json({error:`Validation failed: ${ra(p.errors)}`,details:p.errors},400):f.json({error:p.message},500)}}),_.patch(`${b}/:id`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"update",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);let R=f.req.param("id"),P=await f.req.json(),T=wc(P),N=await t.findByID({collection:g,id:R,tenantId:w,draft:!0});if(!N)return f.json({error:"Document not found"},404);if(T&&N.updatedAt&&T!==N.updatedAt)return f.json(hd(T,N),409);let $=Object.fromEntries(Object.entries(fd(P)).filter(([$t,Xe])=>Xe!=="null"&&Xe!==void 0));Jr($,l.fields),Qr(l.fields,$);let z=f.req.raw;if(l.hooks?.beforeValidate)for(let $t of l.hooks.beforeValidate){let Xe=await $t({collection:g,data:$,originalDoc:N,req:z,user:p,tenantId:w,operation:"update"});Xe&&typeof Xe=="object"&&!Array.isArray(Xe)&&Object.assign($,Xe);}if($=e.getUpdateZodSchema(g).parse($),l.hooks?.beforeChange)for(let $t of l.hooks.beforeChange){let Xe=await $t({collection:g,data:$,originalDoc:N,req:z,user:p,tenantId:w,operation:"update"});Xe&&typeof Xe=="object"&&!Array.isArray(Xe)&&Object.assign($,Xe);}let ue=f.req.header("X-Draft")==="true",X=l.versions?.drafts===!0,ye=f.req.query("autosave")==="true",Ze;if(X&&ue?await t.createVersion({collection:g,documentId:R,data:$,status:"draft",autosave:ye,createdBy:p?.id,changeDescription:ye?"Autosave":"Draft saved",tenantId:w}):X?(await t.update({collection:g,id:R,data:{...$,status:"published"},tenantId:w}),await t.createVersion({collection:g,documentId:R,data:$,status:"published",createdBy:p?.id,changeDescription:"Published",tenantId:w})):await t.update({collection:g,id:R,data:$,tenantId:w}),Ze=await t.findByID({collection:g,id:R,tenantId:w,draft:!0}),l.hooks?.afterChange)for(let $t of l.hooks.afterChange)await $t({collection:g,doc:Ze,data:$,originalDoc:N,req:z,user:p,tenantId:w,operation:"update"});return y&&!ye&&y.trigger(Xa(g,"update"),{collection:g,operation:"update",data:Ze,previousData:N,user:p?{id:p.id,email:p.email,role:p.role}:void 0,tenantId:w}).catch($t=>console.error("[Webhook] Failed to trigger:",$t)),_c(W,C,`${b}/${R}`,"PATCH",f.req.raw),p&&W?.createAuditLog({action:"document_update",userId:p.id,resource:g,resourceId:R,success:!0}),f.json({data:Ze,message:X?"Draft saved":"Updated successfully"})}catch(p){return p.name==="ZodError"?(console.error(`[PATCH ${b}/:id] Validation failed:`,p.errors),f.json({error:`Validation failed: ${ra(p.errors)}`,details:p.errors},400)):(console.error(`[PATCH ${b}/:id] ERROR:`,p.message,"CAUSE:",p.cause?.message||p.cause,"QUERY:",p.query),f.json({error:p.message},500))}}),_.delete(`${b}/:id`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"delete",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);w&&t.setTenantContext({tenantId:w,userId:p?.id??"",role:p?.role,isSuperAdmin:p?.role==="super_admin"});let R=f.req.param("id"),P=f.req.raw,T=await t.findByID({collection:g,id:R,tenantId:w,draft:!0});if(!T)return f.json({error:"Document not found"},404);if(l.hooks?.beforeDelete)for(let $ of l.hooks.beforeDelete)await $({collection:g,doc:T,req:P,user:p,tenantId:w,operation:"delete"});let N=await t.delete({collection:g,id:R,tenantId:w});if(l.hooks?.afterDelete)for(let $ of l.hooks.afterDelete)await $({collection:g,doc:N,originalDoc:T,req:P,user:p,tenantId:w,operation:"delete"});return y&&y.trigger(Xa(g,"delete"),{collection:g,operation:"delete",data:N,previousData:T,user:p?{id:p.id,email:p.email,role:p.role}:void 0,tenantId:w}).catch($=>console.error("[Webhook] Failed to trigger:",$)),_c(W,C,`${b}/${R}`,"DELETE",f.req.raw),p&&W?.createAuditLog({action:"document_delete",userId:p.id,resource:g,resourceId:R,success:!0}),f.json({data:N,message:"Deleted successfully"})}catch(p){return console.error(`[DELETE] Error deleting ${g}:`,p),f.json({error:p.message||String(p)},500)}}),_.post(`${b}/:id/duplicate`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"create",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);let R=f.req.param("id"),P=await t.findByID({collection:g,id:R,tenantId:w,draft:!0});if(!P)return f.json({error:"Document not found"},404);let{id:T,createdAt:N,updatedAt:$,...z}=P;Us(l.fields,z);let Q=Date.now().toString(36);"slug"in z&&typeof z.slug=="string"&&(z.slug=`${z.slug||"document"}-copy-${Q}`),"title"in z&&typeof z.title=="string"?z.title=`${z.title||"Copy"} (Copy)`:"name"in z&&typeof z.name=="string"&&(z.name=`${z.name||"Copy"} (Copy)`);let ue=await t.create({collection:g,data:{...z,status:"draft"},tenantId:w});return f.json({data:ue,message:"Document duplicated successfully"})}catch(p){return console.error("[Duplicate] Error:",p),f.json({error:p.message||String(p)},500)}}),_.post(`${b}/:id/versions/:versionId/restore`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"update",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);let R=f.req.param("id"),P=f.req.param("versionId"),T=await t.findVersionByID({collection:g,versionId:P,tenantId:w});if(!T)return f.json({error:"Version not found"},404);let N=await t.update({collection:g,id:R,data:{...T.data,status:"draft"},tenantId:w});return f.json({data:N,message:"Version restored successfully"})}catch(p){return f.json({error:p.message},500)}}),_.post(`${b}/:id/versions`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"update",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);let R=await f.req.json(),{versionId:P,action:T}=R;if(T==="restore"&&P){let N=await t.findVersionByID({collection:g,versionId:P,tenantId:w});if(!N)return f.json({error:"Version not found"},404);let $=await t.update({collection:g,id:f.req.param("id"),data:{...N.data,status:"draft"},tenantId:w});return f.json({data:$,message:"Version restored successfully"})}return f.json({error:"Invalid action"},400)}catch(p){return f.json({error:p.message},500)}}),_.post(`${b}/:id/publish`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"update",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);w&&t.setTenantContext({tenantId:w,userId:p?.id??"",role:p?.role,isSuperAdmin:p?.role==="super_admin"});let R=f.req.param("id"),P=await f.req.json().catch(()=>({})),T=wc(P),N=await t.findByID({collection:g,id:R,tenantId:w,draft:!0});if(!N)return f.json({error:"Document not found"},404);if(T&&N.updatedAt&&T!==N.updatedAt)return f.json(hd(T,N),409);let $={status:"published"},z=N;if(l.versions?.drafts){let ue=await t.findVersions({collection:g,documentId:R,limit:1,sort:"-createdAt",tenantId:w});if(ue.docs.length>0){let X=ue.docs[0];z={...N,...X.data},$={...X.data,...$};}}let Q=await t.update({collection:g,id:R,data:$,tenantId:w});return l.versions?.drafts&&await t.createVersion({collection:g,documentId:R,data:{...z,status:"published"},status:"published",createdBy:p?.id,changeDescription:"Published",tenantId:w}),y&&y.trigger(Xa(g,"update"),{collection:g,operation:"update",data:Q,user:p?{id:p.id,email:p.email,role:p.role}:void 0,tenantId:w}).catch(ue=>console.error("[Webhook] Failed to trigger:",ue)),f.json({data:Q,message:"Published successfully"})}catch(p){return f.json({error:p.message},500)}}),_.post(`${b}/:id/unpublish`,async f=>{try{let{user:p,tenantId:w,apiKeyContext:C}=await V(f.req.raw,q,i,c),v=await Ie(l,"update",f.req.raw,p,w,C,U,F);if(!v.allowed)return f.json({error:v.error},v.status||403);let R=f.req.param("id");if(!await t.findByID({collection:g,id:R,tenantId:w,draft:!0}))return f.json({error:"Document not found"},404);let T=await t.update({collection:g,id:R,data:{status:"draft"},tenantId:w});return y&&y.trigger(Xa(g,"update"),{collection:g,operation:"update",data:T,user:p?{id:p.id,email:p.email,role:p.role}:void 0,tenantId:w}).catch(N=>console.error("[Webhook] Failed to trigger:",N)),f.json({data:T,message:"Unpublished successfully"})}catch(p){return f.json({error:p.message},500)}});}for(let l of e.getGlobals()){let g=l.slug,b=`/api/globals/${g}`;_.post(`${b}/dynamic-options/:fieldName`,async f=>{try{let{user:p,tenantId:w}=await V(f.req.raw,q,i,c),C=await Yt(l,"read",f.req.raw,p,w,U);if(!C.allowed)return f.json({error:C.error},C.status||403);let v=f.req.param("fieldName"),R=await f.req.json(),{data:P,siblingData:T}=R,N=hs(l.fields,v);if(!N)return f.json({error:"Field not found"},404);if(N.type!=="select")return f.json({error:"Field is not a select field"},400);let $=[];return typeof N.options=="function"?$=await N.options({data:P||{},siblingData:T||{}}):Array.isArray(N.options)&&($=N.options),f.json({options:$})}catch(p){return f.json({error:p.message},500)}}),_.get(b,async f=>{try{let{user:p,tenantId:w}=await V(f.req.raw,q,i,c),C=new URL(f.req.url),v=C.searchParams.get("kyroToken"),R=C.searchParams.get("draft"),P=!1;if(R==="true"&&v&&s)try{let Q=await xo(v,s,"HS256");Q&&Q.type==="preview"&&Q.collection===`_globals_${l.slug}`&&(P=!0);}catch(Q){console.warn("Invalid preview token",Q);}if(!P){let Q=await Yt(l,"read",f.req.raw,p,w,U);if(!Q.allowed)return f.json({error:Q.error},Q.status||403)}let T=R==="true"?!0:R==="false"?!1:!!p,N=parseInt(C.searchParams.get("depth")||"0"),z=(await t.find({collection:`_globals_${g}`,where:{},tenantId:w,draft:T,depth:N,limit:1})).docs[0];if(z&&N>0&&await chunkAK754S3T_cjs.a([z],l.fields,t,e,1,N),g==="storage-settings"&&(typeof globalThis.STORAGE_BUCKET<"u"||typeof f.env?.STORAGE_BUCKET<"u")&&(z?z.provider||(z.provider="cloudflare_r2"):z={id:g,provider:"cloudflare_r2"}),g==="system"){let Q=BB__default.default.randomBytes(32).toString("hex");z?z.appSecret||(await t.update({collection:`_globals_${g}`,id:g,data:{appSecret:Q},tenantId:w}),z.appSecret=Q):z=await t.create({collection:`_globals_${g}`,data:{id:g,appSecret:Q},tenantId:w});}return f.json({data:z||{}})}catch(p){return f.json({error:p.message},500)}});let A=async f=>{try{let{user:p,tenantId:w}=await V(f.req.raw,q,i,c),C=await Yt(l,"update",f.req.raw,p,w,U);if(!C.allowed)return f.json({error:C.error},C.status||403);let v=new URL(f.req.url),R=parseInt(v.searchParams.get("depth")||"0"),P=await f.req.json(),T=wc(P),N=fd(P),$=Object.fromEntries(Object.entries(N).filter(([Ot,Is])=>Is!==null&&Is!=="null"&&Is!==void 0));Jr($,l.fields),Qr(l.fields,$);let z=e.getUpdateZodSchema(g),Q;try{Q=z.parse($);}catch(Ot){return f.json({error:`Validation failed: ${ra(Ot.errors)}`,details:Ot.errors},400)}let ue=new Set(["id","createdAt","updatedAt","status","baseUpdatedAt","_baseUpdatedAt"]),X=Object.fromEntries(Object.entries(Q).filter(([Ot])=>!ue.has(Ot))),ye=`_globals_${g}`,Ze=await t.findOne({collection:ye,where:{},tenantId:w,draft:!0});if(Ze&&T&&Ze.updatedAt&&T!==Ze.updatedAt)return f.json(hd(T,Ze),409);let $t=f.req.header("X-Draft")==="true",Xe=l.versions?.drafts===!0,Vr=f.req.query("autosave")==="true",vt;if(Xe&&$t)await t.createVersion({collection:ye,documentId:g,data:X,status:"draft",autosave:Vr,createdBy:p?.id,changeDescription:Vr?"Autosave":"Manual save",tenantId:w}),Ze?vt=Ze:vt=await t.create({collection:ye,data:{...X,id:g,status:"draft"},tenantId:w});else if(Xe&&!$t){let Ot="published";Ze?vt=await t.update({collection:ye,id:g,data:{...X,status:Ot},tenantId:w}):vt=await t.create({collection:ye,data:{...X,id:g,status:Ot},tenantId:w}),await t.createVersion({collection:ye,documentId:g,data:X,status:Ot,autosave:!1,createdBy:p?.id,changeDescription:"Published",tenantId:w});}else Ze?vt=await t.update({collection:ye,id:g,data:X,tenantId:w}):vt=await t.create({collection:ye,data:{...X,id:g},tenantId:w});if(g==="storage-settings"&&(Lt=null,Ir=null),g==="email-settings"){let Ot=await chunkYUER4JU3_cjs.k.fromConfig(t);Ae.email=Ot||void 0;}return g==="system"&&await chunkO4YE57OS_cjs.b(),p&&W?.createAuditLog({action:"settings_change",userId:p.id,resource:`global:${g}`,resourceId:g,success:!0}),vt&&R>0&&await chunkAK754S3T_cjs.a([vt],l.fields,t,e,1,R),f.json({data:vt,message:"Updated successfully"})}catch(p){return console.error(`[API] Save global "${g}" failed:`,p),f.json({error:p.message||"Save failed",stack:process.env.NODE_ENV==="development"?p.stack:void 0},500)}};_.post(b,A),_.patch(b,A),_.post(`${b}/preview-url`,async f=>{try{let{user:p,tenantId:w}=await V(f.req.raw,q,i,c),C=await Yt(l,"read",f.req.raw,p,w);if(!C.allowed)return f.json({error:C.error||"Forbidden"},C.status||403);let v=await f.req.json().catch(()=>({})),R="";s&&(R=await _o({type:"preview",collection:`_globals_${l.slug}`,exp:Math.floor(Date.now()/1e3)+3600},s,"HS256"));let P="";if(l.admin?.preview)P=await l.admin.preview(v,{req:f.req.raw,token:R});else {let T="";try{let N=await t.findOne({collection:"_globals_site-settings",where:{}});N?.siteUrl&&(T=N.siteUrl);}catch{}if(!T)return f.json({error:"No site URL configured in settings, and no custom preview function defined."},400);T=T.replace(/\/$/,""),P=`${T}/?preview=true&kyroToken=${R}`;}return f.json({url:P})}catch(p){return f.json({error:p.message},500)}}),_.post(`${b}/publish`,async f=>{try{let{user:p,tenantId:w}=await V(f.req.raw,q,i,c),C=await Yt(l,"update",f.req.raw,p,w,U);if(!C.allowed)return f.json({error:C.error},403);let v=`_globals_${g}`,R=await t.findOne({collection:v,where:{},tenantId:w,draft:!0});if(!R)return f.json({error:"Global not found"},404);let P={status:"published"},T=R;if(l.versions?.drafts){let $=await t.findVersions({collection:v,documentId:g,limit:1,sort:"-createdAt",tenantId:w});$.docs.length>0&&(T={...R,...$.docs[0].data},P={...$.docs[0].data,...P});}let N=await t.update({collection:v,id:g,data:P,tenantId:w});return l.versions?.drafts&&await t.createVersion({collection:v,documentId:g,data:{...T,status:"published"},status:"published",createdBy:p?.id,changeDescription:"Published",tenantId:w}),f.json({data:N,message:"Published successfully"})}catch(p){return f.json({error:p.message},500)}}),_.post(`${b}/unpublish`,async f=>{try{let{user:p,tenantId:w}=await V(f.req.raw,q,i,c),C=await Yt(l,"update",f.req.raw,p,w,U);if(!C.allowed)return f.json({error:C.error},403);let v=await t.update({collection:`_globals_${g}`,id:g,data:{status:"draft"},tenantId:w});return f.json({data:v,message:"Unpublished successfully"})}catch(p){return f.json({error:p.message},500)}}),_.get(`${b}/versions`,async f=>{try{let{user:p,tenantId:w}=await V(f.req.raw,q,i,c),C=await Yt(l,"read",f.req.raw,p,w,U);if(!C.allowed)return f.json({error:C.error},403);let v=parseInt(f.req.query("limit")||"10"),R=parseInt(f.req.query("page")||"1"),P=await t.findVersions({collection:`_globals_${g}`,documentId:g,limit:v,page:R,tenantId:w});return f.json(P)}catch(p){return f.json({error:p.message},500)}}),_.get(`${b}/versions/:versionId`,async f=>{try{let p=f.req.param("versionId"),{user:w,tenantId:C}=await V(f.req.raw,q,i,c),v=await Yt(l,"read",f.req.raw,w,C,U);if(!v.allowed)return f.json({error:v.error},403);let R=await t.findVersionByID({collection:`_globals_${g}`,versionId:p,tenantId:C});return R?f.json({data:R}):f.json({error:"Version not found"},404)}catch(p){return f.json({error:p.message},500)}}),_.post(`${b}/versions/:versionId/restore`,async f=>{try{let p=f.req.param("versionId"),{user:w,tenantId:C}=await V(f.req.raw,q,i,c),v=await Yt(l,"update",f.req.raw,w,C,U);if(!v.allowed)return f.json({error:v.error},403);let R=`_globals_${g}`,P=await t.findVersionByID({collection:R,versionId:p,tenantId:C});if(!P)return f.json({error:"Version not found"},404);let T=await t.update({collection:R,id:g,data:{...P.data,status:"draft"},tenantId:C});return f.json({data:T,message:"Version restored successfully"})}catch(p){return f.json({error:p.message},500)}}),g==="email-settings"&&_.post(`${b}/test`,async f=>{try{let{user:p,tenantId:w}=await V(f.req.raw,q,i,c),C=await Yt(l,"update",f.req.raw,p,w,U);if(!C.allowed)return f.json({error:C.error},C.status||403);let v=await f.req.json(),R={provider:v.provider,from:v.fromEmail||v.from,fromName:v.fromName,replyTo:v.replyTo,smtp:v.smtp?{host:v.smtp.host,port:v.smtp.port,secure:v.smtp.secure,auth:{user:v.smtp.username||v.smtp.user,pass:v.smtp.password||v.smtp.pass}}:void 0,resend:v.resend,sendgrid:v.sendgrid,mailgun:v.mailgun,ses:v.ses},P=new chunkYUER4JU3_cjs.k(R),T=v.email||v.testEmail||v.testEmailSection&&v.testEmailSection.testEmail;if(!T)return f.json({error:"No test recipient email provided"},400);let N=v.provider?v.provider.charAt(0).toUpperCase()+v.provider.slice(1):"SMTP",$=v.fromName?`${v.fromName} <${v.fromEmail||v.from||"default"}>`:v.fromEmail||v.from||"Configured Sender",z=new Date().toUTCString();return await P.send({to:T,subject:"Kyro CMS \u2014 Email Connection Test",html:`<!DOCTYPE html>
|
|
120
|
+
<html lang="en">
|
|
121
|
+
<head>
|
|
122
|
+
<meta charset="UTF-8">
|
|
123
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
124
|
+
<meta name="color-scheme" content="light dark">
|
|
125
|
+
<meta name="supported-color-schemes" content="light dark">
|
|
126
|
+
<title>Kyro CMS Test Email</title>
|
|
127
|
+
<style>
|
|
128
|
+
:root {
|
|
129
|
+
color-scheme: light dark;
|
|
130
|
+
supported-color-schemes: light dark;
|
|
131
|
+
}
|
|
132
|
+
@media (prefers-color-scheme: dark) {
|
|
133
|
+
.email-body { background-color: #09090b !important; color: #f4f4f5 !important; }
|
|
134
|
+
.email-card { background-color: #121215 !important; border-color: #27272a !important; box-shadow: none !important; }
|
|
135
|
+
.email-header { background-color: #18181b !important; border-color: #27272a !important; }
|
|
136
|
+
.email-brand-text { color: #ffffff !important; }
|
|
137
|
+
.email-title { color: #ffffff !important; }
|
|
138
|
+
.email-text { color: #a1a1aa !important; }
|
|
139
|
+
.email-strong { color: #ffffff !important; }
|
|
140
|
+
.email-table { background-color: #18181b !important; border-color: #27272a !important; }
|
|
141
|
+
.email-td-border { border-color: #27272a !important; }
|
|
142
|
+
.email-label { color: #a1a1aa !important; }
|
|
143
|
+
.email-value { color: #f4f4f5 !important; }
|
|
144
|
+
.email-btn-primary { background-color: #ffffff !important; color: #09090b !important; }
|
|
145
|
+
.email-btn-secondary { background-color: #18181b !important; border-color: #27272a !important; color: #f4f4f5 !important; }
|
|
146
|
+
.email-footer { background-color: #09090b !important; border-color: #27272a !important; }
|
|
147
|
+
.email-footer-text { color: #71717a !important; }
|
|
148
|
+
.email-footer-link { color: #a1a1aa !important; }
|
|
149
|
+
.logo-light { display: none !important; }
|
|
150
|
+
.logo-dark { display: inline-block !important; }
|
|
151
|
+
.badge-status { background-color: #064e3b !important; border-color: #047857 !important; color: #34d399 !important; }
|
|
152
|
+
}
|
|
153
|
+
</style>
|
|
154
|
+
</head>
|
|
155
|
+
<body class="email-body" style="margin: 0; padding: 36px 16px; background-color: #f4f4f5; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; color: #09090b; -webkit-font-smoothing: antialiased;">
|
|
156
|
+
<table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0" class="email-card" style="max-width: 540px; margin: 0 auto; background-color: #ffffff; border: 1px solid #e4e4e7; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);">
|
|
157
|
+
<!-- Header Bar -->
|
|
158
|
+
<tr>
|
|
159
|
+
<td class="email-header" style="padding: 22px 28px; border-bottom: 1px solid #f4f4f5; background-color: #ffffff;">
|
|
160
|
+
<table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
161
|
+
<tr>
|
|
162
|
+
<td align="left" valign="middle">
|
|
163
|
+
<a href="https://kyro-cms.com" target="_blank" style="text-decoration: none; display: inline-flex; align-items: center; gap: 10px;">
|
|
164
|
+
<!-- Light Mode Logo -->
|
|
165
|
+
<img src="https://kyro-cms.com/logo.svg" alt="Kyro Logo" class="logo-light" height="24" style="display: inline-block; border: 0; max-height: 24px; vertical-align: middle;" />
|
|
166
|
+
<!-- Dark Mode Logo -->
|
|
167
|
+
<img src="https://kyro-cms.com/logo-white.svg" alt="Kyro Logo" class="logo-dark" height="24" style="display: none; border: 0; max-height: 24px; vertical-align: middle;" />
|
|
168
|
+
<span class="email-brand-text" style="font-size: 16px; font-weight: 700; color: #09090b; letter-spacing: -0.3px; vertical-align: middle;">Kyro CMS</span>
|
|
169
|
+
</a>
|
|
170
|
+
</td>
|
|
171
|
+
<td align="right" valign="middle">
|
|
172
|
+
<span class="badge-status" style="display: inline-block; padding: 4px 10px; background-color: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 9999px; font-size: 11px; font-weight: 500; color: #047857;">
|
|
173
|
+
\u2713 Active Connection
|
|
174
|
+
</span>
|
|
175
|
+
</td>
|
|
176
|
+
</tr>
|
|
177
|
+
</table>
|
|
178
|
+
</td>
|
|
179
|
+
</tr>
|
|
180
|
+
|
|
181
|
+
<!-- Body Section -->
|
|
182
|
+
<tr>
|
|
183
|
+
<td style="padding: 28px;">
|
|
184
|
+
<h1 class="email-title" style="margin: 0 0 10px; font-size: 20px; font-weight: 600; color: #09090b; letter-spacing: -0.3px;">
|
|
185
|
+
Test Email Dispatch Successful
|
|
186
|
+
</h1>
|
|
187
|
+
<p class="email-text" style="margin: 0 0 24px; font-size: 14px; line-height: 1.6; color: #52525b;">
|
|
188
|
+
Your email transport configuration in <strong class="email-strong" style="color: #09090b;">Kyro CMS</strong> is active and successfully delivering messages. Below are the connection diagnostics.
|
|
189
|
+
</p>
|
|
190
|
+
|
|
191
|
+
<!-- Compact Metadata Grid -->
|
|
192
|
+
<table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0" class="email-table" style="background-color: #fafafa; border: 1px solid #e4e4e7; border-radius: 8px; margin-bottom: 24px; border-collapse: separate; overflow: hidden;">
|
|
193
|
+
<tr>
|
|
194
|
+
<td class="email-label email-td-border" style="padding: 10px 14px; border-bottom: 1px solid #e4e4e7; border-right: 1px solid #e4e4e7; width: 30%; font-size: 12px; font-weight: 500; color: #71717a;">
|
|
195
|
+
Provider
|
|
196
|
+
</td>
|
|
197
|
+
<td class="email-value email-td-border" style="padding: 10px 14px; border-bottom: 1px solid #e4e4e7; font-size: 13px; font-weight: 600; color: #09090b;">
|
|
198
|
+
${N}
|
|
199
|
+
</td>
|
|
200
|
+
</tr>
|
|
201
|
+
<tr>
|
|
202
|
+
<td class="email-label email-td-border" style="padding: 10px 14px; border-bottom: 1px solid #e4e4e7; border-right: 1px solid #e4e4e7; font-size: 12px; font-weight: 500; color: #71717a;">
|
|
203
|
+
Recipient
|
|
204
|
+
</td>
|
|
205
|
+
<td class="email-value email-td-border" style="padding: 10px 14px; border-bottom: 1px solid #e4e4e7; font-size: 13px; color: #18181b; font-family: monospace;">
|
|
206
|
+
${T}
|
|
207
|
+
</td>
|
|
208
|
+
</tr>
|
|
209
|
+
<tr>
|
|
210
|
+
<td class="email-label email-td-border" style="padding: 10px 14px; border-bottom: 1px solid #e4e4e7; border-right: 1px solid #e4e4e7; font-size: 12px; font-weight: 500; color: #71717a;">
|
|
211
|
+
From Sender
|
|
212
|
+
</td>
|
|
213
|
+
<td class="email-value email-td-border" style="padding: 10px 14px; border-bottom: 1px solid #e4e4e7; font-size: 13px; color: #18181b;">
|
|
214
|
+
${$}
|
|
215
|
+
</td>
|
|
216
|
+
</tr>
|
|
217
|
+
<tr>
|
|
218
|
+
<td class="email-label email-td-border" style="padding: 10px 14px; border-right: 1px solid #e4e4e7; font-size: 12px; font-weight: 500; color: #71717a;">
|
|
219
|
+
Timestamp
|
|
220
|
+
</td>
|
|
221
|
+
<td class="email-value" style="padding: 10px 14px; font-size: 12px; color: #52525b;">
|
|
222
|
+
${z}
|
|
223
|
+
</td>
|
|
224
|
+
</tr>
|
|
225
|
+
</table>
|
|
226
|
+
|
|
227
|
+
<!-- Action Links -->
|
|
228
|
+
<table role="presentation" width="100%" border="0" cellspacing="0" cellpadding="0">
|
|
229
|
+
<tr>
|
|
230
|
+
<td align="left">
|
|
231
|
+
<a href="https://kyro-cms.com" target="_blank" class="email-btn-primary" style="display: inline-block; padding: 10px 18px; background-color: #09090b; color: #ffffff; font-size: 13px; font-weight: 500; text-decoration: none; border-radius: 6px;">
|
|
232
|
+
Visit Website \u2192
|
|
233
|
+
</a>
|
|
234
|
+
<a href="https://kyro-cms.com/docs" target="_blank" class="email-btn-secondary" style="display: inline-block; padding: 10px 16px; margin-left: 8px; background-color: #ffffff; border: 1px solid #e4e4e7; color: #09090b; font-size: 13px; font-weight: 500; text-decoration: none; border-radius: 6px;">
|
|
235
|
+
Documentation
|
|
236
|
+
</a>
|
|
237
|
+
</td>
|
|
238
|
+
</tr>
|
|
239
|
+
</table>
|
|
240
|
+
</td>
|
|
241
|
+
</tr>
|
|
242
|
+
|
|
243
|
+
<!-- Footer -->
|
|
244
|
+
<tr>
|
|
245
|
+
<td class="email-footer" style="padding: 18px 28px; border-top: 1px solid #f4f4f5; background-color: #fafafa; text-align: center;">
|
|
246
|
+
<p class="email-footer-text" style="margin: 0 0 8px; font-size: 12px; color: #71717a;">
|
|
247
|
+
Automated test message dispatched from <strong>Kyro CMS Engine</strong>.
|
|
248
|
+
</p>
|
|
249
|
+
<p style="margin: 0; font-size: 12px; color: #71717a;">
|
|
250
|
+
<a href="https://kyro-cms.com" target="_blank" class="email-footer-link" style="color: #09090b; text-decoration: none; font-weight: 500;">kyro-cms.com</a> \u2022
|
|
251
|
+
<a href="https://kyro-cms.com/docs" target="_blank" class="email-footer-link" style="color: #09090b; text-decoration: none; font-weight: 500;">Docs</a> \u2022
|
|
252
|
+
<a href="https://github.com/danielDozie/kyro-cms" target="_blank" class="email-footer-link" style="color: #09090b; text-decoration: none; font-weight: 500;">GitHub</a>
|
|
253
|
+
</p>
|
|
254
|
+
</td>
|
|
255
|
+
</tr>
|
|
256
|
+
</table>
|
|
257
|
+
</body>
|
|
258
|
+
</html>`,text:`Success! Your email settings in Kyro CMS are working correctly.
|
|
259
|
+
|
|
260
|
+
Provider: ${N}
|
|
261
|
+
Recipient: ${T}
|
|
262
|
+
Timestamp: ${z}
|
|
263
|
+
Website: https://kyro-cms.com`}),f.json({message:"Test email sent successfully!"})}catch(p){return console.error("[Email Test] Failed:",p),f.json({error:p.message||"Failed to send test email"},500)}});}return _.onError((l,g)=>(console.error(`[API Error] ${g.req.method} ${g.req.path}:`,l),g.json({error:l.message||"Internal server error",code:"INTERNAL_ERROR"},500))),_}async function FB(r,e,t){return W_({registry:r,db:e,authSecret:t?.authSecret,user:t?.user,req:t?.req,tenantId:t?.tenantId,cors:t?.cors,webhookService:t?.webhookService})}
|
|
264
|
+
exports.$=Fn;exports.$a=su;exports.A=In;exports.Aa=VK;exports.B=Dn;exports.Ba=WK;exports.C=Ga;exports.Ca=ZK;exports.D=Ln;exports.Da=XK;exports.E=$n;exports.Ea=JK;exports.F=Os;exports.Fa=QK;exports.G=cs;exports.Ga=YK;exports.H=Or;exports.Ha=eV;exports.I=za;exports.Ia=tV;exports.J=us;exports.Ja=rV;exports.K=Ft;exports.Ka=sV;exports.L=Bn;exports.La=nV;exports.M=id;exports.Ma=aV;exports.N=Nn;exports.Na=oV;exports.O=zr;exports.Oa=iV;exports.P=ud;exports.Pa=cV;exports.Q=Ka;exports.Qa=uV;exports.R=Va;exports.Ra=lV;exports.S=ld;exports.Sa=dV;exports.T=jn;exports.Ta=pV;exports.U=Mn;exports.Ua=mV;exports.V=Un;exports.Va=fV;exports.W=qn;exports.Wa=hV;exports.X=Ps;exports.Xa=Y$;exports.Y=ur;exports.Ya=eB;exports.Z=cr;exports.Za=s_;exports._=Kr;exports._a=gs;exports.aa=Hn;exports.ab=wo;exports.ba=Wa;exports.bb=Jm;exports.c=K;exports.ca=PK;exports.cb=oU;exports.d=Hr;exports.da=fc;exports.db=Qm;exports.e=B;exports.ea=hc;exports.eb=vo;exports.f=cK;exports.fa=Gn;exports.fb=So;exports.g=qt;exports.ga=AB;exports.gb=a_;exports.h=is;exports.ha=IK;exports.hb=dc;exports.i=gK;exports.ib=W_;exports.j=Fa;exports.ja=DK;exports.jb=FB;exports.k=mc;exports.ka=RB;exports.l=bK;exports.la=CB;exports.m=G;exports.ma=LK;exports.n=wt;exports.na=$K;exports.o=Y;exports.oa=kB;exports.p=En;exports.pa=BK;exports.q=Et;exports.qa=NK;exports.r=nd;exports.ra=jK;exports.s=ad;exports.sa=MK;exports.t=Es;exports.ta=UK;exports.u=Ha;exports.ua=qK;exports.v=ie;exports.va=FK;exports.w=_B;exports.wa=HK;exports.x=Ts;exports.xa=GK;exports.y=On;exports.ya=zK;exports.z=Pn;exports.za=KK;
|