@kyro-cms/core 0.12.48 → 0.12.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/README.md +1 -0
  2. package/dist/api-handler-graphql.cjs +1 -1
  3. package/dist/api-handler-graphql.js +1 -1
  4. package/dist/api-handler-trpc.cjs +1 -1
  5. package/dist/api-handler-trpc.js +1 -1
  6. package/dist/api-handler.cjs +1 -1
  7. package/dist/api-handler.d.cts +2 -1
  8. package/dist/api-handler.d.ts +2 -1
  9. package/dist/api-handler.js +1 -1
  10. package/dist/auth-session-DHVGXHOH.cjs +1 -0
  11. package/dist/auth-session-O7IIH7EP.js +1 -0
  12. package/dist/bcryptjs-ZEEHSMAG.js +2 -0
  13. package/dist/{better-sqlite3-42Q3FG3E.js → better-sqlite3-B34RIU4C.js} +1 -1
  14. package/dist/bootstrap-4FK3LPPH.js +1 -0
  15. package/dist/bootstrap-F4SDJLPK.cjs +1 -0
  16. package/dist/{bowser-FI5JQGKZ.js → bowser-SB3ZUPO4.js} +1 -1
  17. package/dist/chokidar-5RVQZVHP.cjs +5 -0
  18. package/dist/chokidar-BOYGRT4Q.js +6 -0
  19. package/dist/{chunk-DS5DE5BU.js → chunk-24L3UEJJ.js} +1 -1
  20. package/dist/{chunk-HT44I66C.js → chunk-2HA6EKXX.js} +1 -1
  21. package/dist/{chunk-7AQSH3KR.js → chunk-3NSZZCOJ.js} +1 -1
  22. package/dist/{chunk-VIUU4D5I.js → chunk-47CXBWMA.js} +1 -1
  23. package/dist/{chunk-6MSS5X77.js → chunk-5M3FKE2V.js} +1 -1
  24. package/dist/chunk-6TPICJ2L.js +7 -0
  25. package/dist/{chunk-K7YNEKVE.js → chunk-7FXEXHK6.js} +1 -1
  26. package/dist/{chunk-WSP7PSXC.js → chunk-7MNDQU6K.js} +1 -1
  27. package/dist/{chunk-7V67ONUD.js → chunk-7N7U2ERH.js} +1 -1
  28. package/dist/{chunk-BPMA2ECA.js → chunk-7NH7H3WA.js} +1 -1
  29. package/dist/{chunk-ZJE3VAAW.js → chunk-BU6O3TP7.js} +3 -3
  30. package/dist/{chunk-W46LZ4MY.js → chunk-C7QCZX7X.js} +1 -1
  31. package/dist/chunk-CFZVJTXW.cjs +264 -0
  32. package/dist/{chunk-2WFTETFB.js → chunk-CIVA6SKW.js} +1 -1
  33. package/dist/chunk-EFGOYI57.js +265 -0
  34. package/dist/{chunk-2BUODBE2.js → chunk-EML5FDUU.js} +1 -1
  35. package/dist/{chunk-66BJXVFJ.js → chunk-FLMUMPDE.js} +1 -1
  36. package/dist/chunk-H5UFXXWD.js +2 -0
  37. package/dist/{chunk-M2QRXAWT.js → chunk-HAM4M6VZ.js} +9 -9
  38. package/dist/{chunk-QYI3GOHF.cjs → chunk-HKNQVI76.cjs} +1 -1
  39. package/dist/{chunk-IP6JUEH3.js → chunk-HRAY65XH.js} +1 -1
  40. package/dist/{chunk-KH7LM52S.js → chunk-IKGVPXMK.js} +1 -1
  41. package/dist/{chunk-XOACKBG7.js → chunk-JRUQ5ABB.js} +2 -2
  42. package/dist/{chunk-OMWQVPV7.js → chunk-JV4HJBXW.js} +1 -1
  43. package/dist/{chunk-X54XZACS.cjs → chunk-KZHXYXSH.cjs} +2 -2
  44. package/dist/{chunk-UD6ZPO7T.js → chunk-L2QXP26Q.js} +1 -1
  45. package/dist/{chunk-ORG67NXX.js → chunk-L3Q64RUX.js} +1 -1
  46. package/dist/chunk-LELK3TYX.js +3 -0
  47. package/dist/{chunk-7I6URA6F.js → chunk-LVBHOZZF.js} +1 -1
  48. package/dist/{chunk-R3NEPC4I.js → chunk-LWM4WABU.js} +1 -1
  49. package/dist/{chunk-TR3ZS3T3.js → chunk-M75VGFCI.js} +1 -1
  50. package/dist/chunk-MCIZG4A3.cjs +1 -0
  51. package/dist/{chunk-VBPAAQEF.js → chunk-N5POANYV.js} +1 -1
  52. package/dist/chunk-O4YE57OS.cjs +6 -0
  53. package/dist/{chunk-A73AVVFR.js → chunk-OBYAIJVU.js} +1 -1
  54. package/dist/chunk-OLRCZ6E3.js +2 -0
  55. package/dist/{chunk-WGESLAWV.js → chunk-OXGJOYEO.js} +1 -1
  56. package/dist/{chunk-CGPAS4U5.js → chunk-P6JITOFF.js} +1 -1
  57. package/dist/{chunk-JUJZOG6P.js → chunk-PA4ZZREG.js} +1 -1
  58. package/dist/{chunk-45TJAB5X.js → chunk-PENOCINR.js} +3 -3
  59. package/dist/{chunk-MZOWPV4D.js → chunk-PRMILS4Y.js} +1 -1
  60. package/dist/chunk-QDBGBDCT.js +2 -0
  61. package/dist/{chunk-XBH4YMC7.js → chunk-R25WLKX4.js} +1 -1
  62. package/dist/{chunk-J6U5LWZ7.js → chunk-RPRGGGIW.js} +3 -3
  63. package/dist/{chunk-E27KEZPT.js → chunk-RTHJ6SS5.js} +1 -1
  64. package/dist/{chunk-MCZ3YZ2L.js → chunk-SLMIYECU.js} +1 -1
  65. package/dist/{chunk-IPXOY4RI.js → chunk-SQBTIMWF.js} +1 -1
  66. package/dist/{chunk-VJ2WMKPK.js → chunk-SZT6BLUR.js} +1 -1
  67. package/dist/{chunk-6KRR7YHA.js → chunk-TBHNE4VV.js} +1 -1
  68. package/dist/{chunk-FAAAHE5O.cjs → chunk-TUIKVRQN.cjs} +8 -8
  69. package/dist/{chunk-OSAVAYJZ.js → chunk-TYQYKKWJ.js} +1 -1
  70. package/dist/{chunk-ICVQWR2A.js → chunk-U6KFONKM.js} +1 -1
  71. package/dist/chunk-UT7RGIYS.js +2 -0
  72. package/dist/{chunk-PBOZJOKN.js → chunk-UWHWSWDE.js} +1 -1
  73. package/dist/chunk-VVVCCB6R.js +2 -0
  74. package/dist/{chunk-MY42EWZP.js → chunk-W45TLOOT.js} +1 -1
  75. package/dist/chunk-WJBQ2NBD.cjs +1 -0
  76. package/dist/{chunk-ATBH763U.js → chunk-WPM6LFCY.js} +1 -1
  77. package/dist/chunk-XBQ6HV3T.cjs +114 -0
  78. package/dist/{chunk-C2PXMVR5.js → chunk-Y2YAKDEQ.js} +1 -1
  79. package/dist/chunk-YENNL5HG.js +2 -0
  80. package/dist/chunk-YP3SCVT3.cjs +1 -0
  81. package/dist/{chunk-SYEP5QLG.js → chunk-YUUXFD73.js} +1 -1
  82. package/dist/{chunk-NWCREF47.js → chunk-YZEMLLD2.js} +1 -1
  83. package/dist/chunk-ZKHTFR5S.cjs +2 -0
  84. package/dist/{chunk-7T35572E.js → chunk-ZMG7Z3KF.js} +1 -1
  85. package/dist/{chunk-HLAEJB5R.js → chunk-ZRIBWDYJ.js} +1 -1
  86. package/dist/chunk-ZWDBPEXL.js +115 -0
  87. package/dist/cli/index.cjs +1 -1
  88. package/dist/cli/index.js +2 -2
  89. package/dist/client.js +1 -1
  90. package/dist/{d1-VPH75GI2.js → d1-HPB6B253.js} +1 -1
  91. package/dist/{dist-es-6TQTDPE7.js → dist-es-64F22JL2.js} +2 -2
  92. package/dist/{dist-es-XZBHIIKY.js → dist-es-F2ZR55UK.js} +2 -2
  93. package/dist/dist-es-IPSSZNFP.js +1 -0
  94. package/dist/{dist-es-SJ76GYCI.js → dist-es-M2F7M27Y.js} +1 -1
  95. package/dist/{dist-es-U4ZB3ZDA.js → dist-es-M66JKZF5.js} +1 -1
  96. package/dist/{dist-es-MNIQZC4U.js → dist-es-OKLLRYI3.js} +2 -2
  97. package/dist/{dist-es-TX4DBXEW.js → dist-es-SVHZDVUF.js} +2 -2
  98. package/dist/{dist-es-EMUQ6ZNZ.js → dist-es-WFI55HKT.js} +1 -1
  99. package/dist/drizzle/index.cjs +1 -1
  100. package/dist/drizzle/index.d.cts +1 -0
  101. package/dist/drizzle/index.d.ts +1 -0
  102. package/dist/drizzle/index.js +1 -1
  103. package/dist/drizzle-orm-XRTSOQJS.js +1 -0
  104. package/dist/event-streams-7NAWZW2I.js +1 -0
  105. package/dist/fields/index.js +1 -1
  106. package/dist/fs-KWBRQ6T6.js +1 -0
  107. package/dist/fs-ZQYOJOIO.cjs +1 -0
  108. package/dist/graphql/index.js +1 -1
  109. package/dist/index.cjs +9 -9
  110. package/dist/index.d.cts +2 -1
  111. package/dist/index.d.ts +2 -1
  112. package/dist/index.js +10 -10
  113. package/dist/integration.js +1 -1
  114. package/dist/{jsonwebtoken-S7BG2YWK.js → jsonwebtoken-OD67R5JS.js} +3 -3
  115. package/dist/{lib-IYW32OER.js → lib-XXYYUPMW.js} +3 -3
  116. package/dist/{loadSso-YTG2GQGW.js → loadSso-UQR6545M.js} +1 -1
  117. package/dist/local-3V3XEQUY.js +1 -0
  118. package/dist/media-E762GEHL.js +1 -0
  119. package/dist/mongo-auth-adapter-QDXVHREJ.js +1 -0
  120. package/dist/{mongo-auth-adapter-7K64Y2QM.cjs → mongo-auth-adapter-W3HLB7OR.cjs} +1 -1
  121. package/dist/mongodb/index.cjs +1 -1
  122. package/dist/mongodb/index.js +1 -1
  123. package/dist/{nodemailer-AXROO37D.js → nodemailer-NITB45SS.js} +3 -3
  124. package/dist/postgres-auth-adapter-SK3N3OSS.js +1 -0
  125. package/dist/postgres-auth-adapter-ZO6HK5AK.cjs +1 -0
  126. package/dist/postgres-js-3Y54EXVQ.cjs +1 -1
  127. package/dist/postgres-js-4CI7FMYS.js +1 -0
  128. package/dist/redis-adapter-QPCTMF55.js +1 -0
  129. package/dist/rest/index.cjs +1 -1
  130. package/dist/rest/index.js +1 -1
  131. package/dist/schema-YFMSJK2P.js +2 -0
  132. package/dist/{signin-KZBIAHGS.js → signin-N3T2KF5Q.js} +1 -1
  133. package/dist/sqlite-adapter-4TPNROJK.js +1 -0
  134. package/dist/src-QBADSZV4.js +1 -0
  135. package/dist/{sso-oidc-SX5OIQGG.js → sso-oidc-UB7G4END.js} +1 -1
  136. package/dist/{sts-HVGDJYIF.js → sts-WAA6I22C.js} +1 -1
  137. package/dist/templates/index.js +1 -1
  138. package/dist/trpc/index.js +1 -1
  139. package/dist/ws/index.js +1 -1
  140. package/package.json +2 -2
  141. package/dist/bcryptjs-AZA6WEN2.js +0 -2
  142. package/dist/bootstrap-7CI3NVSY.js +0 -1
  143. package/dist/bootstrap-DOOM2CNQ.cjs +0 -1
  144. package/dist/chokidar-24HVS6XD.cjs +0 -5
  145. package/dist/chokidar-43DT7CVN.js +0 -6
  146. package/dist/chunk-5DWYVUQR.cjs +0 -1
  147. package/dist/chunk-6QWLXJ7L.js +0 -2
  148. package/dist/chunk-B3GDQ7UI.cjs +0 -114
  149. package/dist/chunk-BLH2MRK4.js +0 -2
  150. package/dist/chunk-EOOZDOL7.js +0 -3
  151. package/dist/chunk-IIOVJTCD.cjs +0 -1
  152. package/dist/chunk-L4ZAI2XB.cjs +0 -269
  153. package/dist/chunk-PL5AIE6F.js +0 -2
  154. package/dist/chunk-QDHP5E4P.cjs +0 -2
  155. package/dist/chunk-R2CLQMNJ.js +0 -270
  156. package/dist/chunk-R4LXRAMX.js +0 -2
  157. package/dist/chunk-SVYUTQVE.js +0 -115
  158. package/dist/chunk-UB5TJHQR.js +0 -2
  159. package/dist/chunk-XPPVX4GQ.cjs +0 -1
  160. package/dist/chunk-XRINX47D.js +0 -2
  161. package/dist/dist-es-6SVFVYN3.js +0 -1
  162. package/dist/drizzle-orm-7YTX5NTT.js +0 -1
  163. package/dist/event-streams-25YJ2Z6R.js +0 -1
  164. package/dist/fs-DGKZLRM6.cjs +0 -1
  165. package/dist/fs-YZJ5FM6J.js +0 -2
  166. package/dist/local-VDCSEMC2.js +0 -1
  167. package/dist/media-HK2IZMUZ.js +0 -1
  168. package/dist/mongo-auth-adapter-BUKINEZL.js +0 -1
  169. package/dist/postgres-auth-adapter-2M4RNEY3.cjs +0 -1
  170. package/dist/postgres-auth-adapter-MKSHIJDL.js +0 -1
  171. package/dist/postgres-js-INQPBHJP.js +0 -1
  172. package/dist/redis-adapter-SXOXLHNH.js +0 -1
  173. package/dist/schema-XC5ISGNR.js +0 -2
  174. package/dist/sqlite-adapter-DV7ZX2EJ.js +0 -1
  175. package/dist/src-GZRZ4VAO.js +0 -1
  176. /package/dist/{chunk-P7XYIKL6.cjs → chunk-YUER4JU3.cjs} +0 -0
@@ -1,2 +1,2 @@
1
- import {createRequire}from'module';import {a as a$1,b}from'./chunk-IP6JUEH3.js';import {a,l,c,i,N,A as A$1,d,t}from'./chunk-7AQSH3KR.js';import {g}from'./chunk-C2PXMVR5.js';createRequire(import.meta.url);
1
+ import {a as a$1,b}from'./chunk-HRAY65XH.js';import {a,l,c,i,N,A as A$1,d,t}from'./chunk-3NSZZCOJ.js';import {g}from'./chunk-Y2YAKDEQ.js';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
2
  g();var m=class{static[a]="Cache"},x=class extends m{strategy(){return "all"}static[a]="NoopCache";async get(e){}async put(e,a,i,t){}async onMutate(e){}};async function z(s,e){let a=`${s}-${JSON.stringify(e)}`,t=new TextEncoder().encode(a),n=await crypto.subtle.digest("SHA-256",t);return [...new Uint8Array(n)].map($=>$.toString(16).padStart(2,"0")).join("")}g();var C=class s{static[a]="SelectionProxyHandler";config;constructor(e){this.config={...e};}get(e,a){if(a==="_")return {...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(a===l)return {...e[l],selectedFields:new Proxy(e[l].selectedFields,this)};if(typeof a=="symbol")return e[a];let t=(c(e,i)?e._.selectedFields:c(e,N)?e[l].selectedFields:e)[a];if(c(t,A$1.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!t.isSelectionField)return t.sql;let n=t.clone();return n.isSelectionField=true,n}if(c(t,A$1)){if(this.config.sqlBehavior==="sql")return t;throw new Error(`You tried to reference "${a}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`)}return c(t,d)?this.config.alias?new Proxy(t,new a$1(new Proxy(t.table,new b(this.config.alias,this.config.replaceOriginalName??false)))):t:typeof t!="object"||t===null?t:new Proxy(t,new s(this.config))}};g();function F(s){return (s.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(a=>a.toLowerCase()).join("_")}function T(s){return (s.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((a,i,t)=>{let n=t===0?i.toLowerCase():`${i[0].toUpperCase()}${i.slice(1)}`;return a+n},"")}function v(s){return s}var A=class{static[a]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert=e==="snake_case"?F:e==="camelCase"?T:v;}getColumnCasing(e){if(!e.keyAsName)return e.name;let a=e.table[t.Symbol.Schema]??"public",i=e.table[t.Symbol.OriginalName],t$1=`${a}.${i}.${e.name}`;return this.cache[t$1]||this.cacheTable(e.table),this.cache[t$1]}cacheTable(e){let a=e[t.Symbol.Schema]??"public",i=e[t.Symbol.OriginalName],t$1=`${a}.${i}`;if(!this.cachedTables[t$1]){for(let n of Object.values(e[t.Symbol.Columns])){let y=`${t$1}.${n.name}`;this.cache[y]=this.convert(n.name);}this.cachedTables[t$1]=true;}}clearCache(){this.cache={},this.cachedTables={};}};g();var _=class{static[a]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}};export{C as a,A as b,_ as c,x as d,z as e};
@@ -0,0 +1,6 @@
1
+ 'use strict';var chunkBUNLC3II_cjs=require('./chunk-BUNLC3II.cjs'),Q=require('crypto');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var Q__default=/*#__PURE__*/_interopDefault(Q);chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var N=null,I=null;function xe(e){N=e;}async function Ee(){if(N)try{let e=await N.findOne({collection:"_globals_system",where:{}});if(e){I={appSecret:e.appSecret||null,encryptionKey:e.encryptionKey||null,sessionConfig:e.sessionMaxAge||e.maxSessionsPerUser?{maxAge:(e.sessionMaxAge||7)*24*60*60*1e3,maxSessionsPerUser:e.maxSessionsPerUser||3}:null};return}}catch{}I={appSecret:process.env.APP_SECRET||"development-secret-key",encryptionKey:null,sessionConfig:null};}function Z(){return I?.appSecret?I.appSecret:process.env.APP_SECRET||"development-secret-key"}function Pe(){if(I?.encryptionKey)return I.encryptionKey;let e=Z();return Q__default.default.createHash("sha256").update(e).digest("hex")}function z(){return I?.sessionConfig?I.sessionConfig:{maxAge:10080*60*1e3,maxSessionsPerUser:3}}chunkBUNLC3II_cjs.h();chunkBUNLC3II_cjs.h();var ee=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,te=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,re=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function se(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){ne(e);return}return t}function ne(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`);}function R(e,t={}){if(typeof e!="string")return e;if(e[0]==='"'&&e[e.length-1]==='"'&&e.indexOf("\\")===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case "true":return true;case "false":return false;case "undefined":return;case "null":return null;case "nan":return Number.NaN;case "infinity":return Number.POSITIVE_INFINITY;case "-infinity":return Number.NEGATIVE_INFINITY}if(!re.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(ee.test(e)||te.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,se)}return JSON.parse(e)}catch(o){if(t.strict)throw o;return e}}chunkBUNLC3II_cjs.h();function ie(e){return !e||typeof e.then!="function"?Promise.resolve(e):e}function p(e,...t){try{return ie(e(...t))}catch(n){return Promise.reject(n)}}function oe(e){let t=typeof e;return e===null||t!=="object"&&t!=="function"}function ae(e){let t=Object.getPrototypeOf(e);return !t||t.isPrototypeOf(Object)}function M(e){if(oe(e))return String(e);if(ae(e)||Array.isArray(e))return JSON.stringify(e);if(typeof e.toJSON=="function")return M(e.toJSON());throw new Error("[unstorage] Cannot stringify value!")}var k="base64:";function F(e){return typeof e=="string"?e:k+ce(e)}function L(e){return typeof e!="string"||!e.startsWith(k)?e:ue(e.slice(k.length))}function ue(e){return globalThis.Buffer?Buffer.from(e,"base64"):Uint8Array.from(globalThis.atob(e),t=>t.codePointAt(0))}function ce(e){return globalThis.Buffer?Buffer.from(e).toString("base64"):globalThis.btoa(String.fromCodePoint(...e))}function v(e){return e&&e.split("?")[0]?.replace(/[/\\]/g,":").replace(/:+/g,":").replace(/^:|:$/g,"")||""}function U(...e){return v(e.join(":"))}function _(e){return e=v(e),e?e+":":""}function j(e,t){if(t===void 0)return true;let n=0,o=e.indexOf(":");for(;o>-1;)n++,o=e.indexOf(":",o+1);return n<=t}function W(e,t){return t?e.startsWith(t)&&e[e.length-1]!=="$":e[e.length-1]!=="$"}var le="memory",fe=()=>{let e=new Map;return {name:le,getInstance:()=>e,hasItem(t){return e.has(t)},getItem(t){return e.get(t)??null},getItemRaw(t){return e.get(t)??null},setItem(t,n){e.set(t,n);},setItemRaw(t,n){e.set(t,n);},removeItem(t){e.delete(t);},getKeys(){return [...e.keys()]},clear(){e.clear();},dispose(){e.clear();}}};function D(e={}){let t={mounts:{"":e.driver||fe()},mountpoints:[""],watching:false,watchListeners:[],unwatch:{}},n=r=>{for(let s of t.mountpoints)if(r.startsWith(s))return {base:s,relativeKey:r.slice(s.length),driver:t.mounts[s]};return {base:"",relativeKey:r,driver:t.mounts[""]}},o=(r,s)=>t.mountpoints.filter(i=>i.startsWith(r)||s&&r.startsWith(i)).map(i=>({relativeBase:r.length>i.length?r.slice(i.length):void 0,mountpoint:i,driver:t.mounts[i]})),c=(r,s)=>{if(t.watching){s=v(s);for(let i of t.watchListeners)i(r,s);}},u=async()=>{if(!t.watching){t.watching=true;for(let r in t.mounts)t.unwatch[r]=await H(t.mounts[r],c,r);}},d=async()=>{if(t.watching){for(let r in t.unwatch)await t.unwatch[r]();t.unwatch={},t.watching=false;}},g=(r,s,i)=>{let a=new Map,l=f=>{let y=a.get(f.base);return y||(y={driver:f.driver,base:f.base,items:[]},a.set(f.base,y)),y};for(let f of r){let y=typeof f=="string",w=v(y?f:f.key),T=y?void 0:f.value,A=y||!f.options?s:{...s,...f.options},b=n(w);l(b).items.push({key:w,value:T,relativeKey:b.relativeKey,options:A});}return Promise.all([...a.values()].map(f=>i(f))).then(f=>f.flat())},m={hasItem(r,s={}){r=v(r);let{relativeKey:i,driver:a}=n(r);return p(a.hasItem,i,s)},getItem(r,s={}){r=v(r);let{relativeKey:i,driver:a}=n(r);return p(a.getItem,i,s).then(l=>R(l))},getItems(r,s={}){return g(r,s,i=>i.driver.getItems?p(i.driver.getItems,i.items.map(a=>({key:a.relativeKey,options:a.options})),s).then(a=>a.map(l=>({key:U(i.base,l.key),value:R(l.value)}))):Promise.all(i.items.map(a=>p(i.driver.getItem,a.relativeKey,a.options).then(l=>({key:a.key,value:R(l)})))))},getItemRaw(r,s={}){r=v(r);let{relativeKey:i,driver:a}=n(r);return a.getItemRaw?p(a.getItemRaw,i,s):p(a.getItem,i,s).then(l=>L(l))},async setItem(r,s,i={}){if(s===void 0)return m.removeItem(r);r=v(r);let{relativeKey:a,driver:l}=n(r);l.setItem&&(await p(l.setItem,a,M(s),i),l.watch||c("update",r));},async setItems(r,s){await g(r,s,async i=>{if(i.driver.setItems)return p(i.driver.setItems,i.items.map(a=>({key:a.relativeKey,value:M(a.value),options:a.options})),s);i.driver.setItem&&await Promise.all(i.items.map(a=>p(i.driver.setItem,a.relativeKey,M(a.value),a.options)));});},async setItemRaw(r,s,i={}){if(s===void 0)return m.removeItem(r,i);r=v(r);let{relativeKey:a,driver:l}=n(r);if(l.setItemRaw)await p(l.setItemRaw,a,s,i);else if(l.setItem)await p(l.setItem,a,F(s),i);else return;l.watch||c("update",r);},async removeItem(r,s={}){typeof s=="boolean"&&(s={removeMeta:s}),r=v(r);let{relativeKey:i,driver:a}=n(r);a.removeItem&&(await p(a.removeItem,i,s),(s.removeMeta||s.removeMata)&&await p(a.removeItem,i+"$",s),a.watch||c("remove",r));},async getMeta(r,s={}){typeof s=="boolean"&&(s={nativeOnly:s}),r=v(r);let{relativeKey:i,driver:a}=n(r),l=Object.create(null);if(a.getMeta&&Object.assign(l,await p(a.getMeta,i,s)),!s.nativeOnly){let f=await p(a.getItem,i+"$",s).then(y=>R(y));f&&typeof f=="object"&&(typeof f.atime=="string"&&(f.atime=new Date(f.atime)),typeof f.mtime=="string"&&(f.mtime=new Date(f.mtime)),Object.assign(l,f));}return l},setMeta(r,s,i={}){return this.setItem(r+"$",s,i)},removeMeta(r,s={}){return this.removeItem(r+"$",s)},async getKeys(r,s={}){r=_(r);let i=o(r,true),a=[],l=[],f=true;for(let w of i){w.driver.flags?.maxDepth||(f=false);let T=await p(w.driver.getKeys,w.relativeBase,s);for(let A of T){let b=w.mountpoint+v(A);a.some(q=>b.startsWith(q))||l.push(b);}a=[w.mountpoint,...a.filter(A=>!A.startsWith(w.mountpoint))];}let y=s.maxDepth!==void 0&&!f;return l.filter(w=>(!y||j(w,s.maxDepth))&&W(w,r))},async clear(r,s={}){r=_(r),await Promise.all(o(r,false).map(async i=>{if(i.driver.clear)return p(i.driver.clear,i.relativeBase,s);if(i.driver.removeItem){let a=await i.driver.getKeys(i.relativeBase||"",s);return Promise.all(a.map(l=>i.driver.removeItem(l,s)))}}));},async dispose(){await Promise.all(Object.values(t.mounts).map(r=>V(r)));},async watch(r){return await u(),t.watchListeners.push(r),async()=>{t.watchListeners=t.watchListeners.filter(s=>s!==r),t.watchListeners.length===0&&await d();}},async unwatch(){t.watchListeners=[],await d();},mount(r,s){if(r=_(r),r&&t.mounts[r])throw new Error(`already mounted at ${r}`);return r&&(t.mountpoints.push(r),t.mountpoints.sort((i,a)=>a.length-i.length)),t.mounts[r]=s,t.watching&&Promise.resolve(H(s,c,r)).then(i=>{t.unwatch[r]=i;}).catch(console.error),m},async unmount(r,s=true){r=_(r),!(!r||!t.mounts[r])&&(t.watching&&r in t.unwatch&&(t.unwatch[r]?.(),delete t.unwatch[r]),s&&await V(t.mounts[r]),t.mountpoints=t.mountpoints.filter(i=>i!==r),delete t.mounts[r]);},getMount(r=""){r=v(r)+":";let s=n(r);return {driver:s.driver,base:s.base}},getMounts(r="",s={}){return r=v(r),o(r,s.parents).map(a=>({driver:a.driver,base:a.mountpoint}))},keys:(r,s={})=>m.getKeys(r,s),get:(r,s={})=>m.getItem(r,s),set:(r,s,i={})=>m.setItem(r,s,i),has:(r,s={})=>m.hasItem(r,s),del:(r,s={})=>m.removeItem(r,s),remove:(r,s={})=>m.removeItem(r,s)};return m}function H(e,t,n){return e.watch?e.watch((o,c)=>t(o,n+c)):()=>{}}async function V(e){typeof e.dispose=="function"&&await p(e.dispose);}chunkBUNLC3II_cjs.h();var de="memory",J=()=>{let e=new Map;return {name:de,getInstance:()=>e,hasItem(t){return e.has(t)},getItem(t){return e.get(t)??null},getItemRaw(t){return e.get(t)??null},setItem(t,n){e.set(t,n);},setItemRaw(t,n){e.set(t,n);},removeItem(t){e.delete(t);},getKeys(){return [...e.keys()]},clear(){e.clear();},dispose(){e.clear();}}};var G=z(),x={absoluteMaxAge:G.maxAge,maxSessionsPerUser:G.maxSessionsPerUser,refreshThreshold:300*1e3,activityDebounce:30*1e3,pollInterval:30*1e3},B="kyro-session",S=null;function O(){return globalThis.DB}function me(){let e=null,t=()=>(e||(e=(async()=>{let u=O();u?.prepare&&await u.prepare(`CREATE TABLE IF NOT EXISTS kyro_session_store (
2
+ key TEXT PRIMARY KEY,
3
+ value TEXT,
4
+ expires_at INTEGER
5
+ )`).run();})()),e),n=()=>Date.now(),o=async(u,d=[])=>{let g=O();if(!g?.prepare)return null;let m=g.prepare(u);return d.length>0?m.bind(...d):m},c=async(u,d=[])=>{await t();let g=await o(u,d);g&&await g.run();};return {name:"kyro-d1",options:{},getInstance:()=>null,async hasItem(u){await t();let d=await o("SELECT expires_at FROM kyro_session_store WHERE key = ?",[u]);if(!d)return false;let g=await d.first();return g?!(g.expires_at&&g.expires_at<n()):false},async getItem(u){await t();let d=await o("SELECT value, expires_at FROM kyro_session_store WHERE key = ?",[u]);if(!d)return null;let g=await d.first();return g?g.expires_at&&g.expires_at<n()?(await o("DELETE FROM kyro_session_store WHERE key = ?",[u]),null):g.value:null},async setItem(u,d,g={}){let m=g?.ttl?Number(g.ttl):null,r=m?n()+m*1e3:null,s=typeof d=="string"?d:JSON.stringify(d);await c(`INSERT INTO kyro_session_store (key, value, expires_at) VALUES (?, ?, ?)
6
+ ON CONFLICT(key) DO UPDATE SET value = excluded.value, expires_at = excluded.expires_at`,[u,s,r]);},async removeItem(u){await c("DELETE FROM kyro_session_store WHERE key = ?",[u]);},async getKeys(u=""){await t();let d=await o("SELECT key FROM kyro_session_store WHERE key LIKE ?",[u+"%"]);return d?((await d.all()).results||[]).map(m=>m.key):[]},async clear(){await c("DELETE FROM kyro_session_store");},async dispose(){},async getMeta(){return {}},async setMeta(){},async removeMeta(){}}}async function E(){if(S)return S;if(!(typeof window>"u"&&(typeof process<"u"&&(process.env?.CLOUDFLARE||process.env?.CF_PAGES)||O())))try{let{default:t}=await import('./fs-ZQYOJOIO.cjs');return S=D({driver:t({base:".astro/sessions"})}),S}catch{}return O()?.prepare?(S=D({driver:me()}),S):(S=D({driver:J()}),S)}function pe(){return Q__default.default.randomUUID()}function X(e){let t="Unknown",n="Unknown",o="Unknown";return e.includes("Firefox")?t="Firefox":e.includes("Edg/")?t="Edge":e.includes("Chrome")?t="Chrome":e.includes("Safari")&&!e.includes("Chrome")&&(t="Safari"),e.includes("iPhone")?(n="iPhone",o="iOS"):e.includes("iPad")?(n="iPad",o="iOS"):e.includes("Mac")?(n="MacBook",o="macOS"):e.includes("Windows")?(n="Windows PC",o="Windows"):e.includes("Linux")?(n="Linux PC",o="Linux"):e.includes("Android")&&(n="Android Phone",o="Android"),{browser:t,device:n,platform:o}}function ve(e){if(!e?.userAgent)return "Session";let{browser:t,device:n}=X(e.userAgent);return `${n} - ${t}`}function ye(e){let t=e.headers.get("Cookie");return t&&Object.fromEntries(t.split("; ").map(o=>o.split("=")))[B]||null}function Y(e){let t=e.headers.get("x-forwarded-for");return t?t.split(",")[0].trim():e.headers.get("x-real-ip")||"unknown"}function Le(e,t){let o=process.env.NODE_ENV==="production"?"Secure; ":"",c=new Headers(e.headers);return c.append("Set-Cookie",`${B}=${t}; HttpOnly; Path=/; Max-Age=${x.absoluteMaxAge/1e3}; SameSite=Strict; ${o}`),new Response(e.body,{status:e.status,statusText:e.statusText,headers:c})}function Ue(e){let n=process.env.NODE_ENV==="production"?"Secure; ":"",o=new Headers(e.headers);return o.append("Set-Cookie",`${B}=; HttpOnly; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Strict; ${n}`),new Response(e.body,{status:e.status,statusText:e.statusText,headers:o})}async function C(e){return await(await E()).getItem(`user:${e}`)||[]}async function $(e,t){let n=await E();t.length>0?await n.setItem(`user:${e}`,t):await n.removeItem(`user:${e}`);}async function je(e,t){let n=await E(),o=await C(e.id);for(;o.length>=x.maxSessionsPerUser;){let s=o.shift();s&&await n.removeItem(`session:${s}`);}let c=pe(),u=Date.now(),d=t?.headers.get("user-agent"),g=t?Y(t):"unknown",m=d?{userAgent:d,ip:g,...X(d)}:{ip:g},r={id:c,userId:e.id,email:e.email,role:e.role,tenantId:e.tenantId,permissions:e.permissions,createdAt:u,expiresAt:u+x.absoluteMaxAge,lastActivityAt:u,deviceInfo:m,sessionName:ve(m)};return await n.setItem(`session:${c}`,r,{ttl:Math.floor(x.absoluteMaxAge/1e3)}),o.push(c),await $(e.id,o),c}async function P(e){return await(await E()).getItem(`session:${e}`)||null}async function we(e){let t=await P(e);return t?t.expiresAt<Date.now()?(await Ie(e),{valid:false,reason:"Session expired"}):{valid:true}:{valid:false,reason:"Session not found"}}async function he(e,t){let n=await E(),o=await P(e);if(!o)return null;let c=Date.now(),u=o.expiresAt-c,d=o.deviceInfo;if(t){let r=Y(t);r!==o.deviceInfo?.ip&&(d={...o.deviceInfo,ip:r});}let g={...o,lastActivityAt:c,expiresAt:u<x.refreshThreshold?c+x.absoluteMaxAge:o.expiresAt,deviceInfo:d},m=u<x.refreshThreshold?x.absoluteMaxAge:void 0;return await n.setItem(`session:${e}`,g,m?{ttl:Math.floor(m/1e3)}:void 0),g}async function Ie(e){let t=await E(),n=await P(e);if(n){let c=(await C(n.userId)).filter(u=>u!==e);await $(n.userId,c);}await t.removeItem(`session:${e}`),await t.removeItem(`activity:${e}`);}async function We(e){let t=await C(e),n=await E();for(let o of t)await n.removeItem(`session:${o}`),await n.removeItem(`activity:${o}`);await $(e,[]);}async function He(e,t){let n=await C(e),o=[];for(let c of n){let u=await P(c);u&&o.push({id:u.id,sessionName:u.sessionName||"Session",deviceInfo:u.deviceInfo,createdAt:u.createdAt,lastActivityAt:u.lastActivityAt,currentSession:u.id===t});}return o.sort((c,u)=>u.lastActivityAt-c.lastActivityAt),o}async function Ve(e,t){let n=await P(e);return n?(await(await E()).setItem(`session:${e}`,{...n,sessionName:t}),true):false}async function Je(e){let t=ye(e);if(!t||!(await we(t)).valid)return null;let o=await P(t);return o?(await he(t,e),o):null}exports.a=xe;exports.b=Ee;exports.c=Z;exports.d=Pe;exports.e=z;exports.f=D;exports.g=x;exports.h=ye;exports.i=Y;exports.j=Le;exports.k=Ue;exports.l=je;exports.m=P;exports.n=we;exports.o=he;exports.p=Ie;exports.q=We;exports.r=He;exports.s=Ve;exports.t=Je;
@@ -1,4 +1,4 @@
1
- import {createRequire}from'module';import {b as b$1,a,c,h,g as g$1,C,F,G as G$1,m,e,d,j as j$1,f,s,t}from'./chunk-XOACKBG7.js';import {C as C$1,i}from'./chunk-OSAVAYJZ.js';import {g}from'./chunk-C2PXMVR5.js';import {Readable}from'stream';import {platform,release}from'os';import {env,versions}from'process';createRequire(import.meta.url);
1
+ import {b as b$1,a,c,h,g as g$1,C,F,G as G$1,m,e,d,j as j$1,f,s,t}from'./chunk-JRUQ5ABB.js';import {C as C$1,i}from'./chunk-TYQYKKWJ.js';import {g}from'./chunk-Y2YAKDEQ.js';import {Readable}from'stream';import {platform,release}from'os';import {env,versions}from'process';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
2
  g();g();var M=(e,t)=>{let r=[];if(e&&r.push(e),t)for(let o of t)r.push(o);return r},v=(e,t)=>`${e||"anonymous"}${t&&t.length>0?` (a.k.a. ${t.join(",")})`:""}`,L=()=>{let e=[],t=[],r=false,o=new Set,s=p=>p.sort((m,h)=>gt[h.step]-gt[m.step]||Et[h.priority||"normal"]-Et[m.priority||"normal"]),i=p=>{let m=false,h=R=>{let A=M(R.name,R.aliases);if(A.includes(p)){m=true;for(let E of A)o.delete(E);return false}return true};return e=e.filter(h),t=t.filter(h),m},a=p=>{let m=false,h=R=>{if(R.middleware===p){m=true;for(let A of M(R.name,R.aliases))o.delete(A);return false}return true};return e=e.filter(h),t=t.filter(h),m},u=p=>(e.forEach(m=>{p.add(m.middleware,{...m});}),t.forEach(m=>{p.addRelativeTo(m.middleware,{...m});}),p.identifyOnResolve?.(g.identifyOnResolve()),p),l=p=>{let m=[];return p.before.forEach(h=>{h.before.length===0&&h.after.length===0?m.push(h):m.push(...l(h));}),m.push(p),p.after.reverse().forEach(h=>{h.before.length===0&&h.after.length===0?m.push(h):m.push(...l(h));}),m},f=(p=false)=>{let m=[],h=[],R={};return e.forEach(E=>{let S={...E,before:[],after:[]};for(let T of M(S.name,S.aliases))R[T]=S;m.push(S);}),t.forEach(E=>{let S={...E,before:[],after:[]};for(let T of M(S.name,S.aliases))R[T]=S;h.push(S);}),h.forEach(E=>{if(E.toMiddleware){let S=R[E.toMiddleware];if(S===void 0){if(p)return;throw new Error(`${E.toMiddleware} is not found when adding ${v(E.name,E.aliases)} middleware ${E.relation} ${E.toMiddleware}`)}E.relation==="after"&&S.after.push(E),E.relation==="before"&&S.before.push(E);}}),s(m).map(l).reduce((E,S)=>(E.push(...S),E),[])},g={add:(p,m={})=>{let{name:h,override:R,aliases:A}=m,E={step:"initialize",priority:"normal",middleware:p,...m},S=M(h,A);if(S.length>0){if(S.some(T=>o.has(T))){if(!R)throw new Error(`Duplicate middleware name '${v(h,A)}'`);for(let T of S){let I=e.findIndex(B=>B.name===T||B.aliases?.some(Ee=>Ee===T));if(I===-1)continue;let _=e[I];if(_.step!==E.step||E.priority!==_.priority)throw new Error(`"${v(_.name,_.aliases)}" middleware with ${_.priority} priority in ${_.step} step cannot be overridden by "${v(h,A)}" middleware with ${E.priority} priority in ${E.step} step.`);e.splice(I,1);}}for(let T of S)o.add(T);}e.push(E);},addRelativeTo:(p,m)=>{let{name:h,override:R,aliases:A}=m,E={middleware:p,...m},S=M(h,A);if(S.length>0){if(S.some(T=>o.has(T))){if(!R)throw new Error(`Duplicate middleware name '${v(h,A)}'`);for(let T of S){let I=t.findIndex(B=>B.name===T||B.aliases?.some(Ee=>Ee===T));if(I===-1)continue;let _=t[I];if(_.toMiddleware!==E.toMiddleware||_.relation!==E.relation)throw new Error(`"${v(_.name,_.aliases)}" middleware ${_.relation} "${_.toMiddleware}" middleware cannot be overridden by "${v(h,A)}" middleware ${E.relation} "${E.toMiddleware}" middleware.`);t.splice(I,1);}}for(let T of S)o.add(T);}t.push(E);},clone:()=>u(L()),use:p=>{p.applyToStack(g);},remove:p=>typeof p=="string"?i(p):a(p),removeByTag:p=>{let m=false,h=R=>{let{tags:A,name:E,aliases:S}=R;if(A&&A.includes(p)){let T=M(E,S);for(let I of T)o.delete(I);return m=true,false}return true};return e=e.filter(h),t=t.filter(h),m},concat:p=>{let m=u(L());return m.use(p),m.identifyOnResolve(r||m.identifyOnResolve()||(p.identifyOnResolve?.()??false)),m},applyToStack:u,identify:()=>f(true).map(p=>{let m=p.step??p.relation+" "+p.toMiddleware;return v(p.name,p.aliases)+" - "+m}),identifyOnResolve(p){return typeof p=="boolean"&&(r=p),r},resolve:(p,m)=>{for(let h of f().map(R=>R.middleware).reverse())p=h(p,m);return r&&console.log(g.identify()),p}};return g},gt={initialize:5,serialize:4,build:3,finalizeRequest:2,deserialize:1},Et={high:3,normal:2,low:1};var Ae=class{config;middlewareStack=L();initConfig;handlers;constructor(t){this.config=t;let{protocol:r,protocolSettings:o}=t;o&&typeof r=="function"&&(t.protocol=new r(o));}send(t,r,o){let s=typeof r!="function"?r:void 0,i=typeof r=="function"?r:o,a=s===void 0&&this.config.cacheMiddleware===true,u;if(a){this.handlers||(this.handlers=new WeakMap);let l=this.handlers;l.has(t.constructor)?u=l.get(t.constructor):(u=t.resolveMiddleware(this.middlewareStack,this.config,s),l.set(t.constructor,u));}else delete this.handlers,u=t.resolveMiddleware(this.middlewareStack,this.config,s);if(i)u(t).then(l=>i(null,l.output),l=>i(l)).catch(()=>{});else return u(t).then(l=>l.output)}destroy(){this.config?.requestHandler?.destroy?.(),delete this.handlers;}};g();g();var Te="***SensitiveInformation***";function ee(e,t){if(t==null)return t;let r=m.of(e);if(r.getMergedTraits().sensitive)return Te;if(r.isListSchema()){if(!!r.getValueSchema().getMergedTraits().sensitive)return Te}else if(r.isMapSchema()){if(!!r.getKeySchema().getMergedTraits().sensitive||!!r.getValueSchema().getMergedTraits().sensitive)return Te}else if(r.isStructSchema()&&typeof t=="object"){let o=t,s={};for(let[i,a]of r.structIterator())o[i]!=null&&(s[i]=ee(a,o[i]));return s}return t}var $=class{middlewareStack=L();schema;static classBuilder(){return new xe}resolveMiddlewareWithContext(t,r,o,{middlewareFn:s,clientName:i,commandName:a,inputFilterSensitiveLog:u,outputFilterSensitiveLog:l,smithyContext:f,additionalContext:g,CommandCtor:p}){for(let S of s.bind(this)(p,t,r,o))this.middlewareStack.use(S);let m=t.concat(this.middlewareStack),{logger:h}=r,R={logger:h,clientName:i,commandName:a,inputFilterSensitiveLog:u,outputFilterSensitiveLog:l,[c]:{commandInstance:this,...f},...g},{requestHandler:A}=r,E=o??{};return f.eventStream&&(E={isEventStream:true,...E}),m.resolve(S=>A.handle(S.request,E),R)}},xe=class{_init=()=>{};_ep={};_middlewareFn=()=>[];_commandName="";_clientName="";_additionalContext={};_smithyContext={};_inputFilterSensitiveLog=void 0;_outputFilterSensitiveLog=void 0;_serializer=null;_deserializer=null;_operationSchema;init(t){this._init=t;}ep(t){return this._ep=t,this}m(t){return this._middlewareFn=t,this}s(t,r,o={}){return this._smithyContext={service:t,operation:r,...o},this}c(t={}){return this._additionalContext=t,this}n(t,r){return this._clientName=t,this._commandName=r,this}f(t=o=>o,r=o=>o){return this._inputFilterSensitiveLog=t,this._outputFilterSensitiveLog=r,this}ser(t){return this._serializer=t,this}de(t){return this._deserializer=t,this}sc(t){return this._operationSchema=t,this._smithyContext.operationSchema=t,this}build(){let t=this,r;return r=class extends ${input;static getEndpointParameterInstructions(){return t._ep}constructor(...[o]){super(),this.input=o??{},t._init(this),this.schema=t._operationSchema;}resolveMiddleware(o,s,i){let a=t._operationSchema,u=a?.[4]??a?.input,l=a?.[5]??a?.output;return this.resolveMiddlewareWithContext(o,s,i,{CommandCtor:r,middlewareFn:t._middlewareFn,clientName:t._clientName,commandName:t._commandName,inputFilterSensitiveLog:t._inputFilterSensitiveLog??(a?ee.bind(null,u):f=>f),outputFilterSensitiveLog:t._outputFilterSensitiveLog??(a?ee.bind(null,l):f=>f),smithyContext:t._smithyContext,additionalContext:t._additionalContext})}serialize=t._serializer;deserialize=t._deserializer}}};g();g();var kr=(e,t,r)=>{for(let[i,a]of Object.entries(e)){let u=async function(f,g,p){let m=new a(f);if(typeof g=="function")this.send(m,g);else if(typeof p=="function"){if(typeof g!="object")throw new Error(`Expected http options but got ${typeof g}`);this.send(m,g||{},p);}else return this.send(m,g)},l=(i[0].toLowerCase()+i.slice(1)).replace(/Command$/,"");t.prototype[l]=u;}let{paginators:o={},waiters:s={}}=r??{};for(let[i,a]of Object.entries(o))t.prototype[i]===void 0&&(t.prototype[i]=function(u={},l,...f){return a({...l,client:this},u,...f)});for(let[i,a]of Object.entries(s))t.prototype[i]===void 0&&(t.prototype[i]=async function(u={},l,...f){let g=l;return typeof l=="number"&&(g={maxWaitTime:l}),a({...g,client:this},u,...f)});};g();var ye=class e extends Error{$fault;$response;$retryable;$metadata;constructor(t){super(t.message),Object.setPrototypeOf(this,Object.getPrototypeOf(this).constructor.prototype),this.name=t.name,this.$fault=t.$fault,this.$metadata=t.$metadata;}static isInstance(t){if(!t)return false;let r=t;return e.prototype.isPrototypeOf(r)||!!r.$fault&&!!r.$metadata&&(r.$fault==="client"||r.$fault==="server")}static[Symbol.hasInstance](t){if(!t)return false;let r=t;return this===e?e.isInstance(t):e.isInstance(t)?r.name&&this.name?this.prototype.isPrototypeOf(t)||r.name===this.name:this.prototype.isPrototypeOf(t):false}},Ur=(e,t={})=>{Object.entries(t).filter(([,o])=>o!==void 0).forEach(([o,s])=>{(e[o]==null||e[o]==="")&&(e[o]=s);});let r=e.message||e.Message||"UnknownError";return e.message=r,delete e.Message,e};g();var Fr=e=>{switch(e){case "standard":return {retryMode:"standard",connectionTimeout:3100};case "in-region":return {retryMode:"standard",connectionTimeout:1100};case "cross-region":return {retryMode:"standard",connectionTimeout:3100};case "mobile":return {retryMode:"standard",connectionTimeout:3e4};default:return {}}};g();var Rt=false,Lr=e=>{e&&!Rt&&parseInt(e.substring(1,e.indexOf(".")))<16&&(Rt=true);};g();g();var St=Object.values(b$1),At=e=>{let t=[];for(let r in b$1){let o=b$1[r];e[o]!==void 0&&t.push({algorithmId:()=>o,checksumConstructor:()=>e[o]});}for(let[r,o]of Object.entries(e.checksumAlgorithms??{}))t.push({algorithmId:()=>r,checksumConstructor:()=>o});return {addChecksumAlgorithm(r){e.checksumAlgorithms=e.checksumAlgorithms??{};let o=r.algorithmId(),s=r.checksumConstructor();St.includes(o)?e.checksumAlgorithms[o.toUpperCase()]=s:e.checksumAlgorithms[o]=s,t.push(r);},checksumAlgorithms(){return t}}},Tt=e=>{let t={};return e.checksumAlgorithms().forEach(r=>{let o=r.algorithmId();St.includes(o)&&(t[o]=r.checksumConstructor());}),t};g();var xt=e=>({setRetryStrategy(t){e.retryStrategy=t;},retryStrategy(){return e.retryStrategy}}),yt=e=>{let t={};return t.retryStrategy=e.retryStrategy(),t};var $r=e=>Object.assign(At(e),xt(e));var Hr=e=>Object.assign(Tt(e),yt(e));g();var _t=e=>{let t="#text";for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&e[r][t]!==void 0?e[r]=e[r][t]:typeof e[r]=="object"&&e[r]!==null&&(e[r]=_t(e[r]));return e};g();var q=class{trace(){}debug(){}info(){}warn(){}error(){}};g();function Gr(e,t,r,o){return function(i,a,u,l,f={}){let g=Object.assign({},e,i);return $.classBuilder().ep(g).m(function(p,m,h,R){let A=a.call(this,p,m,h,R);return A.unshift(o(h,p.getEndpointParameterInstructions())),A}).s(t,u,f).n(r,u.charAt(0).toUpperCase()+u.slice(1)+"Command").sc(l).build()}}g();function Br(e,t,r){return e.$source||(e.$source={}),e.$source[t]=r,e}g();g();g();var wt="AWS_ENDPOINT_URL",It="endpoint_url",Nt=e=>({environmentVariableSelector:t=>{let r=e.split(" ").map(i=>i.toUpperCase()),o=t[[wt,...r].join("_")];if(o)return o;let s=t[wt];if(s)return s},configFileSelector:(t,r)=>{if(t.services){let s=["services",t.services].join(".");if(!r||!r[s])throw new Error(`The services section "${t.services}" specified in the profile is not present in the shared configuration file.`);let i=r[s],a=e.split(" ").map(l=>l.toLowerCase()),u=i[[a.join("_"),It].join(".")];if(u)return u}let o=t[It];if(o)return o},default:void 0});g();var Wr="AWS_IGNORE_CONFIGURED_ENDPOINT_URLS",qr="ignore_configured_endpoint_urls",Ct={environmentVariableSelector:e=>s(e,Wr,t.ENV),configFileSelector:e=>s(e,qr,t.CONFIG),default:false};var z=async e=>{if(!await C(Ct)())return C(Nt(e??""))()};g();g();g();var _e=async e=>{let t=e?.Bucket||"";if(typeof e.Bucket=="string"&&(e.Bucket=t.replace(/#/g,encodeURIComponent("#")).replace(/\?/g,encodeURIComponent("?"))),vt(t)){if(e.ForcePathStyle===true)throw new Error("Path-style addressing cannot be used with ARN buckets")}else (!Ot(t)||t.indexOf(".")!==-1&&!String(e.Endpoint).startsWith("http:")||t.toLowerCase()!==t||t.length<3)&&(e.ForcePathStyle=true);return e.DisableMultiRegionAccessPoints&&(e.disableMultiRegionAccessPoints=true,e.DisableMRAP=true),e},zr=/^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$/,Yr=/(\d+\.){3}\d+/,jr=/\.\./;var Ot=e=>zr.test(e)&&!Yr.test(e)&&!jr.test(e),vt=e=>{let[t,r,o,,,s]=e.split(":"),i=t==="arn"&&e.split(":").length>=6,a=!!(i&&r&&o&&s);if(i&&!a)throw new Error(`Invalid ARN: ${e} was an invalid ARN.`);return a};g();var Pt=(e,t,r,o=false)=>{let s=async()=>{let i;return o?i=r.clientContextParams?.[e]??r[e]??r[t]:i=r[e]??r[t],typeof i=="function"?i():i};return e==="credentialScope"||t==="CredentialScope"?async()=>{let i=typeof r.credentials=="function"?await r.credentials():r.credentials;return i?.credentialScope??i?.CredentialScope}:e==="accountId"||t==="AccountId"?async()=>{let i=typeof r.credentials=="function"?await r.credentials():r.credentials;return i?.accountId??i?.AccountId}:e==="endpoint"||t==="endpoint"?async()=>{if(r.isCustomEndpoint===false)return;let i=await s();if(i&&typeof i=="object"){if("url"in i)return i.url.href;if("hostname"in i){let{protocol:a,hostname:u,port:l,path:f}=i;return `${a}//${u}${l?":"+l:""}${f}`}}return i}:s};g();function te(e){return async(t,r,o,s)=>{if(!o.isCustomEndpoint&&!o.ignoreConfiguredEndpointUrls){let u;o.serviceConfiguredEndpoint?u=await o.serviceConfiguredEndpoint():u=await e(o.serviceId),u&&(o.endpoint=()=>Promise.resolve(j$1(u)),o.isCustomEndpoint=true,s?.logger?.debug?.(`@smithy/core/endpoints - resolved endpoint from config: ${u}`));}let i=await bt(t,r,o);if(typeof o.endpointProvider!="function")throw new Error("config.endpointProvider is not set.");let a=o.endpointProvider(i,s);if(o.isCustomEndpoint&&o.endpoint){let u=await o.endpoint();if(u?.headers){a.headers??={};for(let[l,f]of Object.entries(u.headers))a.headers[l]=Array.isArray(f)?f:[f];}}return a}}var bt=async(e,t,r)=>{let o={},s=t?.getEndpointParameterInstructions?.()||{};for(let[i,a]of Object.entries(s))switch(a.type){case "staticContextParams":o[i]=a.value;break;case "contextParams":o[i]=e[a.name];break;case "clientContextParams":case "builtInParams":o[i]=await Pt(a.name,i,r,a.type!=="builtInParams")();break;case "operationContextParams":o[i]=a.get(e);break;default:throw new Error("Unrecognized endpoint parameter instruction: "+JSON.stringify(a))}return Object.keys(s).length===0&&Object.assign(o,r),String(r.serviceId).toLowerCase()==="s3"&&await _e(o),o};g();function Xr(e,t,r){e.__smithy_context?e.__smithy_context.features||(e.__smithy_context.features={}):e.__smithy_context={features:{}},e.__smithy_context.features[t]=r;}function re(e){let t=te(e);return ({config:r,instructions:o})=>(s,i)=>async a=>{r.isCustomEndpoint&&Xr(i,"ENDPOINT_OVERRIDE","N");let u=await t(a.input,{getEndpointParameterInstructions(){return o}},{...r},i);i.endpointV2=u,i.authSchemes=u.properties?.authSchemes;let l=i.authSchemes?.[0];if(l){i.signing_region=l.signingRegion,i.signing_service=l.signingName;let g=d(i)?.selectedHttpAuthScheme?.httpAuthOption;g&&(g.signingProperties=Object.assign(g.signingProperties||{},{signing_region:l.signingRegion,signingRegion:l.signingRegion,signing_service:l.signingName,signingName:l.signingName,signingRegionSet:l.signingRegionSet},l.properties));}return s({...a})}}g();var Kr={name:"serializerMiddleware"},Jr={step:"serialize",tags:["ENDPOINT_PARAMETERS","ENDPOINT_V2","ENDPOINT"],name:"endpointV2Middleware",override:true,relation:"before",toMiddleware:Kr.name};function Dt(e){let t=re(e);return (r,o)=>({applyToStack:s=>{s.addRelativeTo(t({config:r,instructions:o}),Jr);}})}g();function Mt(e){return t=>{let r=t.tls??true,{endpoint:o,useDualstackEndpoint:s,useFipsEndpoint:i}=t,a=o!=null?async()=>j$1(await h(o)()):void 0,l=Object.assign(t,{endpoint:a,tls:r,isCustomEndpoint:!!o,useDualstackEndpoint:h(s??false),useFipsEndpoint:h(i??false),ignoreConfiguredEndpointUrls:!!t.ignoreConfiguredEndpointUrls}),f;return l.serviceConfiguredEndpoint=async()=>(t.serviceId&&!f&&(f=e(t.serviceId)),f),l}}g();var we=class e{nodes;root;conditions;results;constructor(t,r,o,s){this.nodes=t,this.root=r,this.conditions=o,this.results=s;}static from(t,r,o,s){return new e(t,r,o,s)}};g();var Ie=class{capacity;data=new Map;parameters=[];constructor({size:t,params:r}){this.capacity=t??50,r&&(this.parameters=r);}get(t,r){let o=this.hash(t);if(o===false)return r();if(!this.data.has(o)){if(this.data.size>this.capacity+10){let s=this.data.keys(),i=0;for(;;){let{value:a,done:u}=s.next();if(this.data.delete(a),u||++i>10)break}}this.data.set(o,r());}return this.data.get(o)}size(){return this.data.size}hash(t){let r="",{parameters:o}=this;if(o.length===0)return false;for(let s of o){let i=String(t[s]??"");if(i.includes("|;"))return false;r+=i+"|;";}return r}};g();g();g();var x=class extends Error{constructor(t){super(t),this.name="EndpointError";}};g();g();g();var Ne="endpoints";g();function H(e){return typeof e!="object"||e==null?e:"ref"in e?`$${H(e.ref)}`:"fn"in e?`${e.fn}(${(e.argv||[]).map(H).join(", ")})`:JSON.stringify(e,null,2)}g();g();g();var Y={};g();g();g();var Ce=(e,t)=>e===t;g();function Oe(...e){for(let t of e)if(t!=null)return t}g();g();var kt=e=>{let t=e.split("."),r=[];for(let o of t){let s=o.indexOf("[");if(s!==-1){if(o.indexOf("]")!==o.length-1)throw new x(`Path: '${e}' does not end with ']'`);let i=o.slice(s+1,-1);if(Number.isNaN(parseInt(i)))throw new x(`Invalid array index: '${i}' in path: '${e}'`);s!==0&&r.push(o.slice(0,s)),r.push(i);}else r.push(o);}return r};var j=(e,t)=>kt(t).reduce((r,o)=>{if(typeof r!="object")throw new x(`Index '${o}' in '${t}' not found in '${JSON.stringify(e)}'`);if(Array.isArray(r)){let s=parseInt(o);return r[s<0?r.length+s:s]}return r[o]},e);g();var ve=e=>e!=null;g();function Pe(e,t,r){return e?t:r}g();var be=e=>!e;g();g();var Qr=new RegExp("^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$"),G=e=>Qr.test(e)||e.startsWith("[")&&e.endsWith("]");var De={[a.HTTP]:80,[a.HTTPS]:443},Me=e=>{let t=(()=>{try{if(e instanceof URL)return e;if(typeof e=="object"&&"hostname"in e){let{hostname:m,port:h,protocol:R="",path:A="",query:E={}}=e,S=new URL(`${R}//${m}${h?`:${h}`:""}${A}`);return S.search=Object.entries(E).map(([T,I])=>`${T}=${I}`).join("&"),S}return new URL(e)}catch{return null}})();if(!t)return console.error(`Unable to parse ${JSON.stringify(e)} as a whatwg URL.`),null;let r=t.href,{host:o,hostname:s,pathname:i,protocol:a$1,search:u}=t;if(u)return null;let l=a$1.slice(0,-1);if(!Object.values(a).includes(l))return null;let f=G(s),g=r.includes(`${o}:${De[l]}`)||typeof e=="string"&&e.includes(`${o}:${De[l]}`),p=`${o}${g?`:${De[l]}`:""}`;return {scheme:l,authority:p,path:i,normalizedPath:i.endsWith("/")?i:`${i}/`,isIp:f}};g();function ke(e,t,r){if(r===1)return [e];if(e==="")return [""];let o=e.split(t);return r===0?o:o.slice(0,r-1).concat(o.slice(1).join(t))}g();var Ue=(e,t)=>e===t;g();var Fe=(e,t,r,o)=>e==null||t>=r||e.length<r||/[^\u0000-\u007f]/.test(e)?null:o?e.substring(e.length-r,e.length-t):e.substring(t,r);g();var Le=e=>encodeURIComponent(e).replace(/[!*'()]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`);var Ut={booleanEquals:Ce,coalesce:Oe,getAttr:j,isSet:ve,isValidHostLabel:g$1,ite:Pe,not:be,parseURL:Me,split:ke,stringEquals:Ue,substring:Fe,uriEncode:Le};g();var oe=(e,t)=>{let r=[],{referenceRecord:o,endpointParams:s}=t,i=0;for(;i<e.length;){let a=e.indexOf("{",i);if(a===-1){r.push(e.slice(i));break}r.push(e.slice(i,a));let u=e.indexOf("}",a);if(u===-1){r.push(e.slice(a));break}e[a+1]==="{"&&e[u+1]==="}"&&(r.push(e.slice(a+1,u)),i=u+2);let l=e.substring(a+1,u);if(l.includes("#")){let[f,g]=l.split("#");r.push(j(o[f]??s[f],g));}else r.push(o[l]??s[l]);i=u+1;}return r.join("")};g();var Ft=({ref:e},t)=>t.referenceRecord[e]??t.endpointParams[e];var k=(e,t,r)=>{if(typeof e=="string")return oe(e,r);if(e.fn)return Lt.callFunction(e,r);if(e.ref)return Ft(e,r);throw new x(`'${t}': ${String(e)} is not a string, function or reference.`)},ne=({fn:e,argv:t},r)=>{let o=Array(t.length);for(let a=0;a<o.length;++a){let u=t[a];typeof u=="boolean"||typeof u=="number"?o[a]=u:o[a]=Lt.evaluateExpression(u,"arg",r);}let s=e.indexOf(".");if(s!==-1){let u=Y[e.slice(0,s)]?.[e.slice(s+1)];if(typeof u=="function")return u(...o)}let i=Ut[e];if(typeof i=="function")return i(...o);throw new Error(`function ${e} not loaded in endpointFunctions.`)},Lt={evaluateExpression:k,callFunction:ne};var $t=(e,t)=>{let{assign:r}=e;if(r&&r in t.referenceRecord)throw new x(`'${r}' is already defined in Reference Record.`);let o=ne(e,t);t.logger?.debug?.(`${Ne} evaluateCondition: ${H(e)} = ${H(o)}`);let s=o===""?true:!!o;return r!=null?{result:s,toAssign:{name:r,value:o}}:{result:s}};g();var Ht=(e,t)=>Object.entries(e??{}).reduce((r,[o,s])=>(r[o]=s.map(i=>{let a=k(i,"Header value entry",t);if(typeof a!="string")throw new x(`Header '${o}' value '${a}' is not a string`);return a}),r),{});g();var $e=(e,t)=>Object.entries(e).reduce((r,[o,s])=>(r[o]=Bt.getEndpointProperty(s,t),r),{}),Gt=(e,t)=>{if(Array.isArray(e))return e.map(r=>Gt(r,t));switch(typeof e){case "string":return oe(e,t);case "object":if(e===null)throw new x(`Unexpected endpoint property: ${e}`);return Bt.getEndpointProperties(e,t);case "boolean":return e;default:throw new x(`Unexpected endpoint property type: ${typeof e}`)}},Bt={getEndpointProperty:Gt,getEndpointProperties:$e};g();var Vt=(e,t)=>{let r=k(e,"Endpoint URL",t);if(typeof r=="string")try{return new URL(r)}catch(o){throw console.error(`Failed to construct URL with ${r}`,o),o}throw new x(`Endpoint URL must be a string, got ${typeof r}`)};var He=1e8,Zr=(e,t)=>{let{nodes:r,root:o,results:s,conditions:i}=e,a=o,u={},l={referenceRecord:u,endpointParams:t.endpointParams,logger:t.logger};for(;a!==1&&a!==-1&&a<He;){let f=3*(Math.abs(a)-1),[g,p,m]=[r[f],r[f+1],r[f+2]],[h,R,A]=i[g],E=$t({fn:h,assign:A,argv:R},l);if(E.toAssign){let{name:S,value:T}=E.toAssign;u[S]=T;}a=a>=0===E.result?p:m;}if(a>=He){let f=s[a-He];if(f[0]===-1){let[,h]=f;throw new x(k(h,"Error",l))}let[g,p,m]=f;return {url:Vt(g,l),properties:$e(p,l),headers:Ht(m??{},l)}}throw new x("No matching endpoint.")};var Ma=Mt(z),Ua=Dt(z);g();g();g();g();g();var Wt=["BandwidthLimitExceeded","EC2ThrottledException","LimitExceededException","PriorRequestNotComplete","ProvisionedThroughputExceededException","RequestLimitExceeded","RequestThrottled","RequestThrottledException","SlowDown","ThrottledException","Throttling","ThrottlingException","TooManyRequestsException","TransactionInProgressException"],qt=["TimeoutError","RequestTimeout","RequestTimeoutException"],zt=[500,502,503,504],Yt=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT"],jt=["EHOSTUNREACH","ENETUNREACH","ENOTFOUND","EAI_AGAIN"];var eo=e=>e?.$retryable!==void 0;var to=e=>e.$metadata?.clockSkewCorrected,ro=e=>{let t=new Set(["Failed to fetch","NetworkError when attempting to fetch resource","The Internet connection appears to be offline","Load failed","Network request failed"]);return e&&e instanceof TypeError?t.has(e.message):false},ie=e=>e.$metadata?.httpStatusCode===429||Wt.includes(e.name)||e.$retryable?.throttling==true,se=(e,t=0)=>eo(e)||to(e)||e.name==="InvalidSignatureException"&&e.message?.includes("Signature expired")||qt.includes(e.name)||Yt.includes(e?.code||"")||jt.includes(e?.code||"")||zt.includes(e.$metadata?.httpStatusCode||0)||ro(e)||oo(e)||e.cause!==void 0&&t<=10&&se(e.cause,t+1),Xt=e=>{if(e.$metadata?.httpStatusCode!==void 0){let t=e.$metadata.httpStatusCode;return 500<=t&&t<=599&&!se(e)}return false};function oo(e){return e.code==="ERR_HTTP2_STREAM_ERROR"&&e.message.includes("NGHTTP2_REFUSED_STREAM")}var ae=class e{static setTimeoutFn=(t,r)=>setTimeout(t,r);beta;minCapacity;minFillRate;scaleConstant;smooth;enabled=false;availableTokens=0;lastMaxRate=0;measuredTxRate=0;requestCount=0;fillRate;lastThrottleTime;lastTimestamp=0;lastTxRateBucket;maxCapacity;timeWindow=0;constructor(t){this.beta=t?.beta??.7,this.minCapacity=t?.minCapacity??1,this.minFillRate=t?.minFillRate??.5,this.scaleConstant=t?.scaleConstant??.4,this.smooth=t?.smooth??.8,this.lastThrottleTime=this.getCurrentTimeInSeconds(),this.lastTxRateBucket=Math.floor(this.getCurrentTimeInSeconds()),this.fillRate=this.minFillRate,this.maxCapacity=this.minCapacity;}async getSendToken(){return this.acquireTokenBucket(1)}updateClientSendingRate(t){let r;this.updateMeasuredRate();let o=t;if(o?.errorType==="THROTTLING"||ie(o?.error??t)){let a=this.enabled?Math.min(this.measuredTxRate,this.fillRate):this.measuredTxRate;this.lastMaxRate=a,this.calculateTimeWindow(),this.lastThrottleTime=this.getCurrentTimeInSeconds(),r=this.cubicThrottle(a),this.enableTokenBucket();}else this.calculateTimeWindow(),r=this.cubicSuccess(this.getCurrentTimeInSeconds());let i=Math.min(r,2*this.measuredTxRate);this.updateTokenBucketRate(i);}getCurrentTimeInSeconds(){return Date.now()/1e3}async acquireTokenBucket(t){if(this.enabled){for(this.refillTokenBucket();t>this.availableTokens;){let r=(t-this.availableTokens)/this.fillRate*1e3;await new Promise(o=>e.setTimeoutFn(o,r)),this.refillTokenBucket();}this.availableTokens=this.availableTokens-t;}}refillTokenBucket(){let t=this.getCurrentTimeInSeconds();if(!this.lastTimestamp){this.lastTimestamp=t;return}let r=(t-this.lastTimestamp)*this.fillRate;this.availableTokens=Math.min(this.maxCapacity,this.availableTokens+r),this.lastTimestamp=t;}calculateTimeWindow(){this.timeWindow=this.getPrecise(Math.pow(this.lastMaxRate*(1-this.beta)/this.scaleConstant,1/3));}cubicThrottle(t){return this.getPrecise(t*this.beta)}cubicSuccess(t){return this.getPrecise(this.scaleConstant*Math.pow(t-this.lastThrottleTime-this.timeWindow,3)+this.lastMaxRate)}enableTokenBucket(){this.enabled=true;}updateTokenBucketRate(t){this.refillTokenBucket(),this.fillRate=Math.max(t,this.minFillRate),this.maxCapacity=Math.max(t,this.minCapacity),this.availableTokens=Math.min(this.availableTokens,this.maxCapacity);}updateMeasuredRate(){let t=this.getCurrentTimeInSeconds(),r=Math.floor(t*2)/2;if(this.requestCount++,r>this.lastTxRateBucket){let o=this.requestCount/(r-this.lastTxRateBucket);this.measuredTxRate=this.getPrecise(o*this.smooth+this.measuredTxRate*(1-this.smooth)),this.requestCount=0,this.lastTxRateBucket=r;}}getPrecise(t){return parseFloat(t.toFixed(8))}};g();g();g();var Kt="amz-sdk-invocation-id",Jt="amz-sdk-request";g();var y=class e{static v2026=typeof process<"u"&&process.env?.SMITHY_NEW_RETRIES_2026==="true";static delay(){return e.v2026?50:100}static throttlingDelay(){return e.v2026?1e3:500}static cost(){return e.v2026?14:5}static throttlingCost(){return e.v2026?5:10}static modifiedCostType(){return e.v2026?"THROTTLING":"TRANSIENT"}};var ce=class{x=y.delay();computeNextBackoffDelay(t){let s=Math.random()*Math.min(this.x*2**t,2e4);return Math.floor(s)}setDelayBase(t){this.x=t;}};g();var X=class{delay;count;cost;longPoll;$retryLog={acquisitionDelay:0};constructor(t,r,o,s){this.delay=t,this.count=r,this.cost=o,this.longPoll=s;}getRetryCount(){return this.count}getRetryDelay(){return Math.min(2e4,this.delay)}getRetryCost(){return this.cost}isLongPoll(){return this.longPoll}};g();var w;(function(e){e.STANDARD="standard",e.ADAPTIVE="adaptive";})(w||(w={}));var P=3,Ge=w.STANDARD;var de={incompatible:1,attempts:2,capacity:3},U=class{mode=w.STANDARD;retryBackoffStrategy;capacity=500;maxAttemptsProvider;baseDelay;constructor(t){typeof t=="number"?this.maxAttemptsProvider=async()=>t:typeof t=="function"?this.maxAttemptsProvider=t:t&&typeof t=="object"&&(this.maxAttemptsProvider=async()=>t.maxAttempts,this.baseDelay=t.baseDelay,this.retryBackoffStrategy=t.backoff),this.maxAttemptsProvider??=async()=>P,this.baseDelay??=y.delay(),this.retryBackoffStrategy??=new ce;}async acquireInitialRetryToken(t){return new X(y.delay(),0,void 0,y.v2026&&t.includes(":longpoll"))}async refreshRetryTokenForRetry(t,r){let o=await this.getMaxAttempts(),s=this.retryCode(t,r,o),i=s===0,a=t.isLongPoll?.();if(i||a){let u=r.errorType;this.retryBackoffStrategy.setDelayBase(u==="THROTTLING"?y.throttlingDelay():this.baseDelay);let l=this.retryBackoffStrategy.computeNextBackoffDelay(t.getRetryCount()),f=l;if(r.retryAfterHint instanceof Date&&(f=Math.max(l,Math.min(r.retryAfterHint.getTime()-Date.now(),l+5e3))),i){let g=this.getCapacityCost(u);this.capacity-=g;let p=new X(0,t.getRetryCount()+1,g,t.isLongPoll?.()??false);return await new Promise(m=>setTimeout(m,f)),p.$retryLog.acquisitionDelay=f,p}else {let g=y.v2026&&s===de.capacity&&a?f:0;g>0&&await new Promise(p=>setTimeout(p,g));}}throw new Error("No retry token available")}recordSuccess(t){this.capacity=Math.min(500,this.capacity+(t.getRetryCost()??1));}getCapacity(){return this.capacity}async maxAttempts(){return this.maxAttemptsProvider()}async getMaxAttempts(){try{return await this.maxAttemptsProvider()}catch{return console.warn(`Max attempts provider could not resolve. Using default of ${P}`),P}}retryCode(t,r,o){let s=t.getRetryCount()+1,i=this.isRetryableError(r.errorType)?0:de.incompatible,a=s<o?0:de.attempts,u=this.capacity>=this.getCapacityCost(r.errorType)?0:de.capacity;return i||a||u}getCapacityCost(t){return t===y.modifiedCostType()?y.throttlingCost():y.cost()}isRetryableError(t){return t==="THROTTLING"||t==="TRANSIENT"}};var ue=class{mode=w.ADAPTIVE;rateLimiter;standardRetryStrategy;constructor(t,r){let{rateLimiter:o}=r??{};this.rateLimiter=o??new ae,this.standardRetryStrategy=r?new U({maxAttempts:typeof t=="number"?t:3,...r}):new U(t);}async acquireInitialRetryToken(t){let r=await this.standardRetryStrategy.acquireInitialRetryToken(t);return await this.rateLimiter.getSendToken(),r}async refreshRetryTokenForRetry(t,r){this.rateLimiter.updateClientSendingRate(r);let o=await this.standardRetryStrategy.refreshRetryTokenForRetry(t,r);return await this.rateLimiter.getSendToken(),o}recordSuccess(t){this.rateLimiter.updateClientSendingRate({}),this.standardRetryStrategy.recordSuccess(t);}async maxAttemptsProvider(){return this.standardRetryStrategy.maxAttempts()}};var Be="AWS_MAX_ATTEMPTS",Ve="max_attempts",so={environmentVariableSelector:e=>{let t=e[Be];if(!t)return;let r=parseInt(t);if(Number.isNaN(r))throw new Error(`Environment variable ${Be} mast be a number, got "${t}"`);return r},configFileSelector:e=>{let t=e[Ve];if(!t)return;let r=parseInt(t);if(Number.isNaN(r))throw new Error(`Shared config file entry ${Ve} mast be a number, got "${t}"`);return r},default:P},ao=(e,t)=>{let{retryStrategy:r,retryMode:o}=e,{defaultMaxAttempts:s=P,defaultBaseDelay:i=y.delay()}=t??{},a=h(e.maxAttempts??s),u=r?Promise.resolve(r):void 0,l=async()=>{let f=await a();return await h(o)()===w.ADAPTIVE?new ue(a,{maxAttempts:f,baseDelay:i}):new U({maxAttempts:f,baseDelay:i})};return Object.assign(e,{maxAttempts:a,retryStrategy:()=>u??=l()})},Qt="AWS_RETRY_MODE",Zt="retry_mode",co={environmentVariableSelector:e=>e[Qt],configFileSelector:e=>e[Zt],default:Ge};g();g();var We=e=>e?.body instanceof Readable||typeof ReadableStream<"u"&&e?.body instanceof ReadableStream;g();g();function er(e,t){if(f.isInstance(e))for(let r of Object.keys(e.headers)){let o=r.toLowerCase();if(o==="retry-after"){let s=e.headers[r],i$1=NaN;if(s.endsWith("GMT"))try{i$1=(i(s).getTime()-Date.now())/1e3;}catch(a){t?.trace?.("Failed to parse retry-after header"),t?.trace?.(a);}else s.match(/ GMT, ((\d+)|(\d+\.\d+))$/)?i$1=Number(s.match(/ GMT, ([\d.]+)$/)?.[1]):s.match(/^((\d+)|(\d+\.\d+))$/)?i$1=Number(s):Date.parse(s)>=Date.now()&&(i$1=(Date.parse(s)-Date.now())/1e3);return isNaN(i$1)?void 0:new Date(Date.now()+i$1*1e3)}else if(o==="x-amz-retry-after"){let s=e.headers[r],i=Number(s);if(isNaN(i)){t?.trace?.(`Failed to parse x-amz-retry-after=${s}`);return}return new Date(Date.now()+i)}}}g();var tr=e=>e instanceof Error?e:e instanceof Object?Object.assign(new Error,e):typeof e=="string"?new Error(e):new Error(`AWS SDK error wrapper for ${e}`);function qe(e$1){return t=>(r,o)=>async s=>{let i=await t.retryStrategy(),a=await t.maxAttempts();if(po(i)){i=i;let u=await i.acquireInitialRetryToken((o.partition_id??"")+(o.__retryLongPoll?":longpoll":"")),l=new Error,f=0,g=0,{request:p}=s,m=e.isInstance(p);for(m&&(p.headers[Kt]=C$1());;)try{m&&(p.headers[Jt]=`attempt=${f+1}; max=${a}`);let{response:h,output:R}=await r(s);return i.recordSuccess(u),R.$metadata.attempts=f+1,R.$metadata.totalRetryDelay=g,{response:h,output:R}}catch(h){let R=fo(h,t.logger);if(l=tr(h),m&&e$1(p))throw (o.logger instanceof q?console:o.logger)?.warn("An error was encountered in a non-retryable streaming request."),l;try{u=await i.refreshRetryTokenForRetry(u,R);}catch{throw l.$metadata||(l.$metadata={}),l.$metadata.attempts=f+1,l.$metadata.totalRetryDelay=g,l}f=u.getRetryCount();let A=u.getRetryDelay();g+=(u?.$retryLog?.acquisitionDelay??0)+A,A>0&&await lo(A);}}else return i=i,i?.mode&&(o.userAgent=[...o.userAgent||[],["cfg/retry-mode",i.mode]]),i.retry(r,s)}}var lo=e=>new Promise(t=>setTimeout(t,e)),po=e=>typeof e.acquireInitialRetryToken<"u"&&typeof e.refreshRetryTokenForRetry<"u"&&typeof e.recordSuccess<"u",fo=(e,t)=>{let r={error:e,errorType:mo(e)},o=er(e.$response,t);return o&&(r.retryAfterHint=o),r},mo=e=>ie(e)?"THROTTLING":se(e)?"TRANSIENT":Xt(e)?"SERVER_ERROR":"CLIENT_ERROR",ho={name:"retryMiddleware",tags:["RETRY"],step:"finalizeRequest",priority:"high",override:true};function rr(e){let t=qe(e);return r=>({applyToStack:o=>{o.add(t(r),ho);}})}var Qc=rr(We);g();var or=e$1=>t=>async r=>{if(!e.isInstance(r.request))return t(r);let{request:o}=r,{handlerProtocol:s=""}=e$1.requestHandler.metadata||{};if(s.indexOf("h2")>=0&&!o.headers[":authority"])delete o.headers.host,o.headers[":authority"]=o.hostname+(o.port?":"+o.port:"");else if(!o.headers.host){let i=o.hostname;o.port!=null&&(i+=`:${o.port}`),o.headers.host=i;}return t(r)},nr={name:"hostHeaderMiddleware",step:"build",priority:"low",tags:["HOST"],override:true},go=e=>({applyToStack:t=>{t.add(or(e),nr);}});g();var ir=()=>(e,t)=>async r=>{try{let o=await e(r),{clientName:s,commandName:i,logger:a,dynamoDbDocumentClientOptions:u={}}=t,{overrideInputFilterSensitiveLog:l,overrideOutputFilterSensitiveLog:f}=u,g=l??t.inputFilterSensitiveLog,p=f??t.outputFilterSensitiveLog,{$metadata:m,...h}=o.output;return a?.info?.({clientName:s,commandName:i,input:g(r.input),output:p(h),metadata:m}),o}catch(o){let{clientName:s,commandName:i,logger:a,dynamoDbDocumentClientOptions:u={}}=t,{overrideInputFilterSensitiveLog:l}=u,f=l??t.inputFilterSensitiveLog;throw a?.error?.({clientName:s,commandName:i,input:f(r.input),error:o,metadata:o.$metadata}),o}},sr={name:"loggerMiddleware",tags:["LOGGER"],step:"initialize",override:true},Eo=e=>({applyToStack:t=>{t.add(ir(),sr);}});g();g();var ar={step:"build",tags:["RECURSION_DETECTION","TRACE_CONTEXT_PROPAGATION"],name:"recursionDetectionMiddleware",override:true,priority:"low"};g();g();var b={REQUEST_ID:Symbol.for("_AWS_LAMBDA_REQUEST_ID"),X_RAY_TRACE_ID:Symbol.for("_AWS_LAMBDA_X_RAY_TRACE_ID"),TENANT_ID:Symbol.for("_AWS_LAMBDA_TENANT_ID"),TRACEPARENT:Symbol.for("_AWS_LAMBDA_TRACEPARENT"),TRACESTATE:Symbol.for("_AWS_LAMBDA_TRACESTATE"),BAGGAGE:Symbol.for("_AWS_LAMBDA_BAGGAGE")},ze=["true","1"].includes(process.env?.AWS_LAMBDA_NODEJS_NO_GLOBAL_AWSLAMBDA??"");ze||(globalThis.awslambda=globalThis.awslambda||{});var le=class{static PROTECTED_KEYS=b;isProtectedKey(t){return Object.values(b).includes(t)}getRequestId(){return this.get(b.REQUEST_ID)??"-"}getXRayTraceId(){return this.get(b.X_RAY_TRACE_ID)}getTenantId(){return this.get(b.TENANT_ID)}getTraceparent(){return this.get(b.TRACEPARENT)}getTracestate(){return this.get(b.TRACESTATE)}getBaggage(){return this.get(b.BAGGAGE)}},Ye=class extends le{currentContext;getContext(){return this.currentContext}hasContext(){return this.currentContext!==void 0}get(t){return this.currentContext?.[t]}set(t,r){if(this.isProtectedKey(t))throw new Error(`Cannot modify protected Lambda context field: ${String(t)}`);this.currentContext=this.currentContext||{},this.currentContext[t]=r;}run(t,r){return this.currentContext=t,r()}},je=class e extends le{als;static async create(){let t=new e,r=await import('async_hooks');return t.als=new r.AsyncLocalStorage,t}getContext(){return this.als.getStore()}hasContext(){return this.als.getStore()!==void 0}get(t){return this.als.getStore()?.[t]}set(t,r){if(this.isProtectedKey(t))throw new Error(`Cannot modify protected Lambda context field: ${String(t)}`);let o=this.als.getStore();if(!o)throw new Error("No context available");o[t]=r;}run(t,r){return this.als.run(t,r)}},K;(function(e){let t=null;async function r(o){return t||(t=(async()=>{let i=o===true||"AWS_LAMBDA_MAX_CONCURRENCY"in process.env?await je.create():new Ye;return !ze&&globalThis.awslambda?.InvokeStore?globalThis.awslambda.InvokeStore:(!ze&&globalThis.awslambda&&(globalThis.awslambda.InvokeStore=i),i)})()),t}e.getInstanceAsync=r,e._testing=process.env.AWS_LAMBDA_BENCHMARK_MODE==="1"?{reset:()=>{t=null,globalThis.awslambda?.InvokeStore&&delete globalThis.awslambda.InvokeStore,globalThis.awslambda={InvokeStore:void 0};}}:void 0;})(K||(K={}));var Ro="AWS_LAMBDA_FUNCTION_NAME",So="_X_AMZN_TRACE_ID",Xe="X-Amzn-Trace-Id",Ke="traceparent",cr="tracestate",dr="baggage",ur=()=>e$1=>async t=>{let{request:r}=t;if(!e.isInstance(r))return e$1(t);let o;{let s=Object.keys(r.headers??{}).find(i=>i.toLowerCase()===Xe.toLowerCase())??Xe;if(!r.headers.hasOwnProperty(s)){let i=process.env[Ro],a=process.env[So];o??=await K.getInstanceAsync();let l=o?.getXRayTraceId()??a,f=g=>typeof g=="string"&&g.length>0;f(i)&&f(l)&&(r.headers[Xe]=l);}}if(Ao(r.headers),!r.headers[Ke]){let i=(o??=await K.getInstanceAsync())?.getTraceparent?.();if(i){r.headers[Ke]=i;let a=o?.getTracestate?.();a&&(r.headers[cr]=a);let u=o?.getBaggage?.();u&&(r.headers[dr]=u);}}return e$1(t)};function Ao(e){for(let t of Object.keys(e)){let r=t.toLowerCase();t!==r&&(r===Ke||r===cr||r===dr)&&(e[r]=e[t],delete e[t]);}}var To=e=>({applyToStack:t=>{t.add(ur(),ar);}});g();g();g();var lr=(e,t)=>{if(!t||t.length===0)return e;let r=[];for(let o of t)for(let s of e)s.schemeId.split("#")[1]===o&&r.push(s);for(let o of e)r.find(({schemeId:s})=>s===o.schemeId)||r.push(o);return r};function xo(e){let t=new Map;for(let r of e)t.set(r.schemeId,r);return t}var Je=(e,t)=>(r,o)=>async s=>{let i=e.httpAuthSchemeProvider(await t.httpAuthSchemeParametersProvider(e,o,s.input)),a=e.authSchemePreference?await e.authSchemePreference():[],u=lr(i,a),l=xo(e.httpAuthSchemes),f=d(o),g=[];for(let p of u){let m=l.get(p.schemeId);if(!m){g.push(`HttpAuthScheme \`${p.schemeId}\` was not enabled for this service.`);continue}let h=m.identityProvider(await t.identityProviderConfigProvider(e));if(!h){g.push(`HttpAuthScheme \`${p.schemeId}\` did not have an IdentityProvider configured.`);continue}let{identityProperties:R={},signingProperties:A={}}=p.propertiesExtractor?.(e,o)||{};p.identityProperties=Object.assign(p.identityProperties||{},R),p.signingProperties=Object.assign(p.signingProperties||{},A),f.selectedHttpAuthScheme={httpAuthOption:p,identity:await h(p.identityProperties),signer:m.signer};break}if(!f.selectedHttpAuthScheme)throw new Error(g.join(`
3
3
  `));return r(s)};var Qe={step:"serialize",tags:["HTTP_AUTH_SCHEME"],name:"httpAuthSchemeMiddleware",override:true,relation:"before",toMiddleware:"endpointV2Middleware"},pr=(e,{httpAuthSchemeParametersProvider:t,identityProviderConfigProvider:r})=>({applyToStack:o=>{o.addRelativeTo(Je(e,{httpAuthSchemeParametersProvider:t,identityProviderConfigProvider:r}),Qe);}});g();g();g();var yo=e=>t=>{throw t},_o=(e,t)=>{},Ze=e$1=>(t,r)=>async o=>{if(!e.isInstance(o.request))return t(o);let i=d(r).selectedHttpAuthScheme;if(!i)throw new Error("No HttpAuthScheme was selected: unable to sign request");let{httpAuthOption:{signingProperties:a={}},identity:u,signer:l}=i,f=await t({...o,request:await l.sign(o.request,u,a)}).catch((l.errorHandler||yo)(a));return (l.successHandler||_o)(f.response,a),f};var et={step:"finalizeRequest",tags:["HTTP_SIGNING"],name:"httpSigningMiddleware",aliases:["apiKeyMiddleware","tokenMiddleware","awsAuthMiddleware"],override:true,relation:"after",toMiddleware:"retryMiddleware"},fr=e=>({applyToStack:t=>{t.addRelativeTo(Ze(),et);}});g();g();var pe=class{authSchemes=new Map;constructor(t){for(let r in t){let o=t[r];o!==void 0&&this.authSchemes.set(r,o);}}getIdentityProvider(t){return this.authSchemes.get(t)}};g();g();g();var J=class{async sign(t,r,o){return t}};g();var tt=e=>function(r){return rt(r)&&r.expiration.getTime()-Date.now()<e};var mr=tt(3e5),rt=e=>e.expiration!==void 0,hr=(e,t,r)=>{if(e===void 0)return;let o=typeof e!="function"?async()=>Promise.resolve(e):e,s,i,a,u=false,l=async f=>{i||(i=o(f));try{s=await i,a=!0,u=!1;}finally{i=void 0;}return s};return t===void 0?async f=>((!a||f?.forceRefresh)&&(s=await l(f)),s):async f=>((!a||f?.forceRefresh)&&(s=await l(f)),u?s:r(s)?(t(s)&&await l(f),s):(u=true,s))};g();g();var ot=e=>{if(typeof e=="function")return e;let t=Promise.resolve(e);return ()=>t};g();var fe=void 0;function Co(e){return e===void 0?true:typeof e=="string"&&e.length<=50}function Oo(e){let t=ot(e.userAgentAppId??fe),{customUserAgent:r}=e;return Object.assign(e,{customUserAgent:typeof r=="string"?[[r]]:r,userAgentAppId:async()=>{let o=await t();if(!Co(o)){let s=e.logger?.constructor?.name==="NoOpLogger"||!e.logger?console:e.logger;typeof o!="string"?s?.warn("userAgentAppId must be a string or undefined."):o.length>50&&s?.warn("The provided userAgentAppId exceeds the maximum length of 50 characters.");}return o}})}g();g();g();var gr={partitions:[{id:"aws",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-east-1",name:"aws",supportsDualStack:true,supportsFIPS:true},regionRegex:"^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$",regions:{"af-south-1":{description:"Africa (Cape Town)"},"ap-east-1":{description:"Asia Pacific (Hong Kong)"},"ap-east-2":{description:"Asia Pacific (Taipei)"},"ap-northeast-1":{description:"Asia Pacific (Tokyo)"},"ap-northeast-2":{description:"Asia Pacific (Seoul)"},"ap-northeast-3":{description:"Asia Pacific (Osaka)"},"ap-south-1":{description:"Asia Pacific (Mumbai)"},"ap-south-2":{description:"Asia Pacific (Hyderabad)"},"ap-southeast-1":{description:"Asia Pacific (Singapore)"},"ap-southeast-2":{description:"Asia Pacific (Sydney)"},"ap-southeast-3":{description:"Asia Pacific (Jakarta)"},"ap-southeast-4":{description:"Asia Pacific (Melbourne)"},"ap-southeast-5":{description:"Asia Pacific (Malaysia)"},"ap-southeast-6":{description:"Asia Pacific (New Zealand)"},"ap-southeast-7":{description:"Asia Pacific (Thailand)"},"aws-global":{description:"aws global region"},"ca-central-1":{description:"Canada (Central)"},"ca-west-1":{description:"Canada West (Calgary)"},"eu-central-1":{description:"Europe (Frankfurt)"},"eu-central-2":{description:"Europe (Zurich)"},"eu-north-1":{description:"Europe (Stockholm)"},"eu-south-1":{description:"Europe (Milan)"},"eu-south-2":{description:"Europe (Spain)"},"eu-west-1":{description:"Europe (Ireland)"},"eu-west-2":{description:"Europe (London)"},"eu-west-3":{description:"Europe (Paris)"},"il-central-1":{description:"Israel (Tel Aviv)"},"me-central-1":{description:"Middle East (UAE)"},"me-south-1":{description:"Middle East (Bahrain)"},"mx-central-1":{description:"Mexico (Central)"},"sa-east-1":{description:"South America (Sao Paulo)"},"us-east-1":{description:"US East (N. Virginia)"},"us-east-2":{description:"US East (Ohio)"},"us-west-1":{description:"US West (N. California)"},"us-west-2":{description:"US West (Oregon)"}}},{id:"aws-cn",outputs:{dnsSuffix:"amazonaws.com.cn",dualStackDnsSuffix:"api.amazonwebservices.com.cn",implicitGlobalRegion:"cn-northwest-1",name:"aws-cn",supportsDualStack:true,supportsFIPS:true},regionRegex:"^cn\\-\\w+\\-\\d+$",regions:{"aws-cn-global":{description:"aws-cn global region"},"cn-north-1":{description:"China (Beijing)"},"cn-northwest-1":{description:"China (Ningxia)"}}},{id:"aws-eusc",outputs:{dnsSuffix:"amazonaws.eu",dualStackDnsSuffix:"api.amazonwebservices.eu",implicitGlobalRegion:"eusc-de-east-1",name:"aws-eusc",supportsDualStack:true,supportsFIPS:true},regionRegex:"^eusc\\-(de)\\-\\w+\\-\\d+$",regions:{"eusc-de-east-1":{description:"AWS European Sovereign Cloud (Germany)"}}},{id:"aws-iso",outputs:{dnsSuffix:"c2s.ic.gov",dualStackDnsSuffix:"api.aws.ic.gov",implicitGlobalRegion:"us-iso-east-1",name:"aws-iso",supportsDualStack:true,supportsFIPS:true},regionRegex:"^us\\-iso\\-\\w+\\-\\d+$",regions:{"aws-iso-global":{description:"aws-iso global region"},"us-iso-east-1":{description:"US ISO East"},"us-iso-west-1":{description:"US ISO WEST"}}},{id:"aws-iso-b",outputs:{dnsSuffix:"sc2s.sgov.gov",dualStackDnsSuffix:"api.aws.scloud",implicitGlobalRegion:"us-isob-east-1",name:"aws-iso-b",supportsDualStack:true,supportsFIPS:true},regionRegex:"^us\\-isob\\-\\w+\\-\\d+$",regions:{"aws-iso-b-global":{description:"aws-iso-b global region"},"us-isob-east-1":{description:"US ISOB East (Ohio)"},"us-isob-west-1":{description:"US ISOB West"}}},{id:"aws-iso-e",outputs:{dnsSuffix:"cloud.adc-e.uk",dualStackDnsSuffix:"api.cloud-aws.adc-e.uk",implicitGlobalRegion:"eu-isoe-west-1",name:"aws-iso-e",supportsDualStack:true,supportsFIPS:true},regionRegex:"^eu\\-isoe\\-\\w+\\-\\d+$",regions:{"aws-iso-e-global":{description:"aws-iso-e global region"},"eu-isoe-west-1":{description:"EU ISOE West"}}},{id:"aws-iso-f",outputs:{dnsSuffix:"csp.hci.ic.gov",dualStackDnsSuffix:"api.aws.hci.ic.gov",implicitGlobalRegion:"us-isof-south-1",name:"aws-iso-f",supportsDualStack:true,supportsFIPS:true},regionRegex:"^us\\-isof\\-\\w+\\-\\d+$",regions:{"aws-iso-f-global":{description:"aws-iso-f global region"},"us-isof-east-1":{description:"US ISOF EAST"},"us-isof-south-1":{description:"US ISOF SOUTH"}}},{id:"aws-us-gov",outputs:{dnsSuffix:"amazonaws.com",dualStackDnsSuffix:"api.aws",implicitGlobalRegion:"us-gov-west-1",name:"aws-us-gov",supportsDualStack:true,supportsFIPS:true},regionRegex:"^us\\-gov\\-\\w+\\-\\d+$",regions:{"aws-us-gov-global":{description:"aws-us-gov global region"},"us-gov-east-1":{description:"AWS GovCloud (US-East)"},"us-gov-west-1":{description:"AWS GovCloud (US-West)"}}}]};var vo=gr,Er=e=>{let{partitions:t}=vo;for(let o of t){let{regions:s,outputs:i}=o;for(let[a,u]of Object.entries(s))if(a===e)return {...i,...u}}for(let o of t){let{regionRegex:s,outputs:i}=o;if(new RegExp(s).test(e))return {...i}}let r=t.find(o=>o.id==="aws");if(!r)throw new Error("Provided region was not found in the partition array or regex, and default partition with id 'aws' doesn't exist.");return {...r.outputs}};g();g();y.v2026||=typeof process=="object"&&process.env?.AWS_NEW_RETRIES_2026==="true";function N(e,t,r){e.__aws_sdk_context?e.__aws_sdk_context.features||(e.__aws_sdk_context.features={}):e.__aws_sdk_context={features:{}},e.__aws_sdk_context.features[t]=r;}var bo=/\d{12}\.ddb/;async function Sr(e,t,r){if(r.request?.headers?.["smithy-protocol"]==="rpc-v2-cbor"&&N(e,"PROTOCOL_RPC_V2_CBOR","M"),typeof t.retryStrategy=="function"){let i=await t.retryStrategy();if(typeof i.mode=="string")switch(i.mode){case w.ADAPTIVE:N(e,"RETRY_MODE_ADAPTIVE","F");break;case w.STANDARD:N(e,"RETRY_MODE_STANDARD","E");break}}if(typeof t.accountIdEndpointMode=="function"){let i=e.endpointV2;switch(String(i?.url?.hostname).match(bo)&&N(e,"ACCOUNT_ID_ENDPOINT","O"),await t.accountIdEndpointMode?.()){case "disabled":N(e,"ACCOUNT_ID_MODE_DISABLED","Q");break;case "preferred":N(e,"ACCOUNT_ID_MODE_PREFERRED","P");break;case "required":N(e,"ACCOUNT_ID_MODE_REQUIRED","R");break}}let s=e.__smithy_context?.selectedHttpAuthScheme?.identity;if(s?.$source){let i=s;i.accountId&&N(e,"RESOLVED_ACCOUNT_ID","T");for(let[a,u]of Object.entries(i.$source??{}))N(e,a,u);}}g();var nt="user-agent",me="x-amz-user-agent";var Ar=/[^!$%&'*+\-.^_`|~\w]/g,Tr=/[^!$%&'*+\-.^_`|~\w#]/g;g();function xr(e){let t="";for(let r in e){let o=e[r];if(t.length+o.length+1<=1024){t.length?t+=","+o:t+=o;continue}break}return t}var wr=e$1=>(t,r)=>async o=>{let{request:s}=o;if(!e.isInstance(s))return t(o);let{headers:i}=s,a=r?.userAgent?.map(he)||[],u=(await e$1.defaultUserAgentProvider()).map(he);await Sr(r,e$1,o);let l=r;u.push(`m/${xr(Object.assign({},r.__smithy_context?.features,l.__aws_sdk_context?.features))}`);let f=e$1?.customUserAgent?.map(he)||[],g=await e$1.userAgentAppId();g&&u.push(he(["app",`${g}`]));let m=([]).concat([...u,...a,...f]).join(" "),h=[...u.filter(R=>R.startsWith("aws-sdk-")),...f].join(" ");return e$1.runtime!=="browser"?(h&&(i[me]=i[me]?`${i[nt]} ${h}`:h),i[nt]=m):i[me]=m,t({...o,request:s})},he=e=>{let t=e[0].split("/").map(a=>a.replace(Ar,"-")).join("/"),r=e[1]?.replace(Tr,"-"),o=t.indexOf("/"),s=t.substring(0,o),i=t.substring(o+1);return s==="api"&&(i=i.toLowerCase()),[s,i,r].filter(a=>a&&a.length>0).reduce((a,u,l)=>{switch(l){case 0:return u;case 1:return `${a}/${u}`;default:return `${a}#${u}`}},"")},Ir={name:"getUserAgentMiddleware",step:"build",priority:"low",tags:["SET_USER_AGENT","USER_AGENT"],override:true},Do=e=>({applyToStack:t=>{t.add(wr(e),Ir);}});g();g();var ge={warningEmitted:false},Mo=e=>{if(e&&!ge.warningEmitted){if(process.env.AWS_SDK_JS_NODE_VERSION_SUPPORT_WARNING_DISABLED==="true"){ge.warningEmitted=true;return}let t=parseInt(e.substring(1,e.indexOf("."))),r=22;t<r&&(ge.warningEmitted=true,process.emitWarning(`NodeVersionSupportWarning: The AWS SDK for JavaScript (v3)
4
4
  versions published after the first week of January 2027
@@ -0,0 +1,2 @@
1
+ import {ra,ma,ia,pa}from'./chunk-3NSZZCOJ.js';import {g}from'./chunk-Y2YAKDEQ.js';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
+ g();var a=ra("settings",{key:pa("key",{length:255}).primaryKey(),value:ia("value").notNull(),description:ia("description"),updatedAt:ma("updated_at").defaultNow()});export{a};
@@ -1,4 +1,4 @@
1
- import {createRequire}from'module';import {a as a$1}from'./chunk-HT44I66C.js';import {c,a as a$2,b,d as d$2,e}from'./chunk-VBPAAQEF.js';import {i,$,T,Y,f,R as R$1,h,g as g$2,S as S$1,X as X$1,p,n,P,j,Q,d as d$1,aa as aa$1,k as k$1,l as l$1,Z as Z$1}from'./chunk-IP6JUEH3.js';import {U,a,k,R,Z,X,c as c$1,A,i as i$1,N,l,t,S,qa,m,J,g as g$1,d,v,H as H$1,ea,da,ga,ja,ka,la,aa,ba,na,w,M,Q as Q$1,j as j$1,V,T as T$1,n as n$1}from'./chunk-7AQSH3KR.js';import {g}from'./chunk-C2PXMVR5.js';createRequire(import.meta.url);
1
+ import {a as a$1}from'./chunk-2HA6EKXX.js';import {c,a as a$2,b,d as d$2,e}from'./chunk-N5POANYV.js';import {i,$,T,Y,f,R as R$1,h,g as g$2,S as S$1,X as X$1,p,n,P,j,Q,d as d$1,aa as aa$1,k as k$1,l as l$1,Z as Z$1}from'./chunk-HRAY65XH.js';import {U,a,k,R,Z,X,c as c$1,A,i as i$1,N,l,t,S,qa,m,J,g as g$1,d,v,H as H$1,ea,da,ga,ja,ka,la,aa,ba,na,w,M,Q as Q$1,j as j$1,V,T as T$1,n as n$1}from'./chunk-3NSZZCOJ.js';import {g}from'./chunk-Y2YAKDEQ.js';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
2
  g();g();g();g();g();g();g();g();var ee=class extends N{static[a]="PgViewBase"};var H=class{static[a]="PgDialect";casing;constructor(e){this.casing=new b(e?.casing);}async migrate(e,t,i){let s=typeof i=="string"?"__drizzle_migrations":i.migrationsTable??"__drizzle_migrations",n=typeof i=="string"?"drizzle":i.migrationsSchema??"drizzle",o=J`
3
3
  CREATE TABLE IF NOT EXISTS ${J.identifier(n)}.${J.identifier(s)} (
4
4
  id SERIAL PRIMARY KEY,
@@ -1,4 +1,4 @@
1
- import {createRequire}from'module';import {g}from'./chunk-C2PXMVR5.js';import {execSync}from'child_process';import {existsSync}from'fs';import {join}from'path';createRequire(import.meta.url);
1
+ import {g}from'./chunk-Y2YAKDEQ.js';import {execSync}from'child_process';import {existsSync}from'fs';import {join}from'path';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
2
  g();function s(){let n=process.cwd();return existsSync(join(n,"pnpm-lock.yaml"))?"pnpm":existsSync(join(n,"yarn.lock"))?"yarn":existsSync(join(n,"bun.lockb"))||existsSync(join(n,"bun.lock"))?"bun":"npm"}function d(n){let o=s();console.log(`
3
3
  \u{1F4E6} [Kyro CMS] Auto-installing missing database drivers: ${n.join(", ")}...`);try{let i=o==="npm"?"npm install":`${o} add`;execSync(`${i} ${n.join(" ")}`,{stdio:"inherit"}),console.log(`\u2705 [Kyro CMS] Successfully installed drivers!
4
4
  `);}catch(i){throw console.error(`\u274C [Kyro CMS] Failed to auto-install drivers. Please run manually: ${o==="npm"?"npm install":`${o} add`} ${n.join(" ")}`),i}}export{d as a};
@@ -1,2 +1,2 @@
1
- import {createRequire}from'module';import {d,o,a,b as b$1,c}from'./chunk-NWCREF47.js';import {f,e,g as g$1}from'./chunk-E27KEZPT.js';import {a as a$1}from'./chunk-BLH2MRK4.js';import {g}from'./chunk-C2PXMVR5.js';createRequire(import.meta.url);
1
+ import {d,o,a,b as b$1,c}from'./chunk-YZEMLLD2.js';import {f,e,g as g$1}from'./chunk-RTHJ6SS5.js';import {a as a$1}from'./chunk-VVVCCB6R.js';import {g}from'./chunk-Y2YAKDEQ.js';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
2
  g();g();async function G(e$1){let a=o(e$1.db),t={db:e$1.db,registry:e$1.registry,req:e$1.req,user:e$1.user,tenantId:e$1.tenantId,webhookService:a,settings:e$1.settings},n=f(e$1.req);if(n){let r=await e(n,e$1.db,async o=>{try{return await e$1.db.findByID({collection:"users",id:o})||null}catch{return null}});r.valid&&(t.user=r.user||e$1.user,t.tenantId=r.tenantId||e$1.tenantId,t.apiKey=g$1(r));}return t}g();var L={_media:{create:d.MEDIA_UPLOAD,update:d.MEDIA_UPLOAD,delete:d.MEDIA_DELETE}};function q(e,a){let t=L[e];return t?t[a]:`collection.${a}`}async function P(e,a,t){if(e.webhookService)try{await e.webhookService.trigger(a,{collection:t.collection,operation:t.operation,data:t.data,previousData:t.previousData,user:e.user?{id:e.user.id,email:e.user.email,role:e.user.role}:void 0,tenantId:e.tenantId});}catch(n){console.error(`[Webhook] Failed to trigger ${a}:`,n);}}function I(e,a){if(!(!e||typeof e!="object"))for(let t of a){if(t.type==="tabs"&&Array.isArray(t.tabs)){let r=t.name?e[t.name]:e;if(r&&typeof r=="object")for(let o of t.tabs)Array.isArray(o.fields)&&I(r,o.fields);continue}if(!t.name||!(t.name in e))continue;if(e[t.name]===""&&(t.type==="text"||t.type==="textarea"||t.type==="code"||t.type==="markdown"||t.type==="email"||t.type==="password"||t.type==="color"||(e[t.name]=null)),(t.type==="group"||t.type==="collapsible")&&t.name&&Array.isArray(t.fields)&&e[t.name]&&typeof e[t.name]=="object")I(e[t.name],t.fields);else if(t.type==="array"&&t.name&&Array.isArray(t.fields)&&Array.isArray(e[t.name]))for(let r of e[t.name])r&&typeof r=="object"&&I(r,t.fields);else if(t.type==="blocks"&&t.name&&Array.isArray(t.blocks)&&Array.isArray(e[t.name]))for(let r of e[t.name]){if(!r||typeof r!="object")continue;let o=r.type||r.blockType;if(!o)continue;let s=t.blocks.find(i=>i.slug===o);if(!s||!Array.isArray(s.fields))continue;let u=r.data&&typeof r.data=="object"?r.data:r;I(u,s.fields);}}}async function b(e,a,t){let n=await b$1(e,a,{user:t.user,req:t.req,tenantId:t.tenantId,apiKey:t.apiKey});if(!n.allowed)throw new Error(n.error||"Access denied");t.tenantId&&t.db.setTenantContext({tenantId:t.tenantId,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"});}function v(e){return async a$2=>{let{collection:t,where:n,sort:r,limit:o,page:s,depth:u,select:i,draft:d}=a$2,l=e.registry.getCollection(t);if(await b(l,"read",e),l.hooks?.beforeRead)for(let p of l.hooks.beforeRead)await p({collection:t,req:e.req,user:e.user,tenantId:e.tenantId,operation:"read",where:n});let c=d??!!e.user,h=await e.db.find({collection:t,where:n||{},sort:r,limit:o||10,page:s||1,depth:u||0,tenantId:e.tenantId,select:i,draft:c});if(l.hooks?.afterRead)for(let p of h.docs)for(let k of l.hooks.afterRead)await k({collection:t,doc:p,req:e.req,user:e.user,tenantId:e.tenantId,operation:"read"});return await a(h.docs,l.fields,e.db,e.registry,1,u||0),a$1(h)}}function K(e){return async a$2=>{let{collection:t,id:n,depth:r,select:o,draft:s}=a$2,u=e.registry.getCollection(t);await b(u,"read",e);let i=s??!!e.user,d=await e.db.findByID({collection:t,id:n,depth:r||0,tenantId:e.tenantId,select:o,draft:i});if(!d)throw new Error(`Document not found: ${t}/${n}`);if(u.hooks?.afterRead)for(let l of u.hooks.afterRead)await l({collection:t,doc:d,req:e.req,user:e.user,tenantId:e.tenantId,operation:"read",id:n});return await a([d],u.fields,e.db,e.registry,1,r||0),a$1(d)}}function E(e){return async a=>{let{collection:t,data:n,depth:r,select:o}=a,s=e.registry.getCollection(t);await b(s,"create",e);let i=e.registry.getCreateZodSchema(t).parse(n);if(s.tenantScoped&&e.tenantId&&(i.tenantId=e.tenantId),s.hooks?.beforeValidate)for(let l of s.hooks.beforeValidate){let c=await l({collection:t,data:i,req:e.req,user:e.user,tenantId:e.tenantId,operation:"create"});c&&typeof c=="object"&&!Array.isArray(c)&&Object.assign(i,c);}if(s.hooks?.beforeChange)for(let l of s.hooks.beforeChange){let c=await l({collection:t,data:i,req:e.req,user:e.user,tenantId:e.tenantId,operation:"create"});c&&typeof c=="object"&&!Array.isArray(c)&&Object.assign(i,c);}let d=await e.db.create({collection:t,data:i,depth:r||0,tenantId:e.tenantId,select:o});if(s.hooks?.afterChange)for(let l of s.hooks.afterChange)await l({collection:t,doc:d,data:i,req:e.req,user:e.user,tenantId:e.tenantId,operation:"create"});return await P(e,q(t,"create"),{collection:t,data:d,operation:"create"}),{doc:d}}}function j(e){return async a=>{let{collection:t,id:n,data:r,depth:o,select:s,baseUpdatedAt:u}=a,i=e.registry.getCollection(t);await b(i,"update",e);let d=await e.db.findByID({collection:t,id:n,tenantId:e.tenantId,draft:true});if(!d)throw new Error(`Document not found: ${t}/${n}`);if(u&&d.updatedAt&&u!==d.updatedAt)throw new Error(`Revision conflict: document has changed since ${u}. Current updatedAt: ${d.updatedAt}`);I(r,i.fields);let c=e.registry.getUpdateZodSchema(t).parse(r);if(i.tenantScoped&&e.tenantId&&(c.tenantId=e.tenantId),i.hooks?.beforeValidate)for(let m of i.hooks.beforeValidate){let f=await m({collection:t,data:c,originalDoc:d,req:e.req,user:e.user,tenantId:e.tenantId,operation:"update",id:n});f&&typeof f=="object"&&!Array.isArray(f)&&Object.assign(c,f);}if(i.hooks?.beforeChange)for(let m of i.hooks.beforeChange){let f=await m({collection:t,data:c,originalDoc:d,req:e.req,user:e.user,tenantId:e.tenantId,operation:"update",id:n});f&&typeof f=="object"&&!Array.isArray(f)&&Object.assign(c,f);}let h=e.req&&typeof e.req.headers?.get=="function"&&e.req.headers.get("x-draft")==="true"||a.draft===true,p=i.versions?.drafts===true,k=e.req?.query?.autosave==="true"||e.req?.url?.includes("autosave=true")||a.autosave===true,g;if(p&&h?(await e.db.createVersion({collection:t,documentId:n,data:c,status:"draft",autosave:k,createdBy:e.user?.id,tenantId:e.tenantId}),g=await e.db.findByID({collection:t,id:n,tenantId:e.tenantId,draft:true})):p?(g=await e.db.update({collection:t,id:n,data:{...c,status:"published"},depth:o||0,tenantId:e.tenantId,select:s}),await e.db.createVersion({collection:t,documentId:n,data:c,status:"published",createdBy:e.user?.id,tenantId:e.tenantId})):g=await e.db.update({collection:t,id:n,data:c,depth:o||0,tenantId:e.tenantId,select:s}),i.hooks?.afterChange)for(let m of i.hooks.afterChange)await m({collection:t,doc:g,data:c,originalDoc:d,req:e.req,user:e.user,tenantId:e.tenantId,operation:"update",id:n});return await P(e,q(t,"update"),{collection:t,data:g,previousData:d,operation:"update"}),{doc:g}}}function S(e){return async a=>{let{collection:t,id:n}=a,r=e.registry.getCollection(t);await b(r,"delete",e);let o=await e.db.findByID({collection:t,id:n,tenantId:e.tenantId,draft:true});if(!o)throw new Error(`Document not found: ${t}/${n}`);if(r.hooks?.beforeDelete)for(let u of r.hooks.beforeDelete)await u({collection:t,doc:o,req:e.req,user:e.user,tenantId:e.tenantId,operation:"delete",id:n});let s=await e.db.delete({collection:t,id:n,tenantId:e.tenantId});if(r.hooks?.afterDelete)for(let u of r.hooks.afterDelete)await u({collection:t,doc:s,req:e.req,user:e.user,tenantId:e.tenantId,operation:"delete",id:n});return await P(e,q(t,"delete"),{collection:t,data:s,previousData:o,operation:"delete"}),{doc:s,message:"Deleted successfully"}}}function _(e){return async a=>{let{collection:t,where:n}=a,r=e.registry.getCollection(t);return await b(r,"read",e),{totalDocs:await e.db.count({collection:t,where:n||{},tenantId:e.tenantId})}}}g();async function O(e,a,t){let n=await c(e,a,{user:t.user,req:t.req,tenantId:t.tenantId});if(!n.allowed)throw new Error(n.error||"Access denied");t.tenantId&&t.db.setTenantContext({tenantId:t.tenantId,userId:t.user?.id??"",role:t.user?.role,isSuperAdmin:t.user?.role==="super_admin"});}function V(e){let a={},t=e.registry.getCollections();for(let r of t){let o=r.slug;a[o]={find:v(e),findByID:K(e),create:E(e),update:j(e),delete:S(e),count:_(e)};}let n=e.registry.getGlobals();for(let r of n){let o=r.slug;a[`_globals_${o}`]={get:async s=>(await O(r,"read",e),await e.db.findOne({collection:`_globals_${o}`,where:{},tenantId:e.tenantId,depth:s?.depth,draft:s?.draft,select:s?.select})),update:async s=>{await O(r,"update",e);let i=e.registry.getZodSchema(o).parse(s.data),d=await e.db.findOne({collection:`_globals_${o}`,where:{},tenantId:e.tenantId,draft:true}),l;return d?l=await e.db.update({collection:`_globals_${o}`,id:d.id,data:i,tenantId:e.tenantId}):l=await e.db.create({collection:`_globals_${o}`,data:{...i,id:o},tenantId:e.tenantId}),l}};}return a}function M(e){if(e.settings?.access?.apiAccess?.trpcEnabled===false)throw new Error("tRPC API is disabled");return V(e)}export{G as a,v as b,K as c,E as d,j as e,S as f,_ as g,V as h,M as i};
@@ -1,4 +1,4 @@
1
- import {createRequire}from'module';import {a}from'./chunk-R4LXRAMX.js';import {g as g$1}from'./chunk-C2PXMVR5.js';createRequire(import.meta.url);
1
+ import {a}from'./chunk-OLRCZ6E3.js';import {g as g$1}from'./chunk-Y2YAKDEQ.js';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
2
  g$1();function g(i){let{title:e,previewText:t=e,badgeText:r="Security Notification",badgeType:s="info",bodyHtml:o,ctaText:a,ctaUrl:n,secondaryCtaText:l,secondaryCtaUrl:p}=i,u="#eff6ff",f="#bfdbfe",h="#1d4ed8";return s==="success"?(u="#ecfdf5",f="#a7f3d0",h="#047857"):s==="warning"?(u="#fffbeb",f="#fde68a",h="#b45309"):s==="error"&&(u="#fef2f2",f="#fecaca",h="#b91c1c"),`<!DOCTYPE html>
3
3
  <html lang="en">
4
4
  <head>
@@ -283,7 +283,7 @@ Kyro CMS \u2014 https://kyro-cms.com`;return {subject:r,html:o,text:a}}g$1();fun
283
283
  Accept your invitation here:
284
284
  ${i}
285
285
 
286
- Kyro CMS \u2014 https://kyro-cms.com`;return {subject:r,html:o,text:a}}g$1();function k(){return {verifyEmail:(i,e)=>x(i,e),resetPassword:(i,e)=>_(i,e),welcome:(i,e)=>S(i,e),passwordChanged:i=>T(i),magicLink:(i,e,t)=>w(i,e,t),accountLocked:(i,e,t)=>C(i,e,t),newLogin:(i,e,t="User")=>{let r="Security Alert: New Sign-in to Kyro CMS",s=`New login detected for ${t} at ${e} from ${i}.`,o=`<p>${s}</p>`;return {subject:r,html:o,text:s}},userInvite:(i,e,t)=>E(i,e,t)}}g$1();var v=false,b=class i{db;cache={};loaded=false;static SENSITIVE_KEYS=["storage.s3.secret_access_key","storage.r2.secret_access_key","storage.gcs.private_key","storage.backblaze.application_key","storage.wasabi.secret_access_key","storage.ftp.password","storage.bunny.api_key","storage.cloudinary.api_secret","storage.imgix.sign_key","email.smtp.pass","auth.jwt_secret","auth.github_secret","auth.google_secret","auth.app_secret","database.url","redis.url","auth.admin_password"];constructor(e){this.db=e;}async load(){if(!this.loaded){await this.ensureSettingsTable();try{if(typeof this.db?.select=="function"){let e=await this.db.select().from(a);this.cache=e.reduce((t,r)=>(t[r.key]=r.value,t),{});}await this.loadFromGlobals();}catch{console.warn("ConfigService: Could not load settings from database, using environment fallbacks.");}this.loaded=true;}}async ensureSettingsTable(){if(!v)try{if(typeof this.db?.execute=="function"){let{sql:e}=await import('./drizzle-orm-7YTX5NTT.js');await this.db.execute(e`
286
+ Kyro CMS \u2014 https://kyro-cms.com`;return {subject:r,html:o,text:a}}g$1();function k(){return {verifyEmail:(i,e)=>x(i,e),resetPassword:(i,e)=>_(i,e),welcome:(i,e)=>S(i,e),passwordChanged:i=>T(i),magicLink:(i,e,t)=>w(i,e,t),accountLocked:(i,e,t)=>C(i,e,t),newLogin:(i,e,t="User")=>{let r="Security Alert: New Sign-in to Kyro CMS",s=`New login detected for ${t} at ${e} from ${i}.`,o=`<p>${s}</p>`;return {subject:r,html:o,text:s}},userInvite:(i,e,t)=>E(i,e,t)}}g$1();var v=false,b=class i{db;cache={};loaded=false;static SENSITIVE_KEYS=["storage.s3.secret_access_key","storage.r2.secret_access_key","storage.gcs.private_key","storage.backblaze.application_key","storage.wasabi.secret_access_key","storage.ftp.password","storage.bunny.api_key","storage.cloudinary.api_secret","storage.imgix.sign_key","email.smtp.pass","auth.jwt_secret","auth.github_secret","auth.google_secret","auth.app_secret","database.url","redis.url","auth.admin_password"];constructor(e){this.db=e;}async load(){if(!this.loaded){await this.ensureSettingsTable();try{if(typeof this.db?.select=="function"){let e=await this.db.select().from(a);this.cache=e.reduce((t,r)=>(t[r.key]=r.value,t),{});}await this.loadFromGlobals();}catch{console.warn("ConfigService: Could not load settings from database, using environment fallbacks.");}this.loaded=true;}}async ensureSettingsTable(){if(!v)try{if(typeof this.db?.execute=="function"){let{sql:e}=await import('./drizzle-orm-XRTSOQJS.js');await this.db.execute(e`
287
287
  CREATE TABLE IF NOT EXISTS "settings" (
288
288
  "key" VARCHAR(255) PRIMARY KEY,
289
289
  "value" TEXT NOT NULL,
@@ -297,5 +297,5 @@ Kyro CMS \u2014 https://kyro-cms.com`;return {subject:r,html:o,text:a}}g$1();fun
297
297
  description TEXT,
298
298
  updated_at TEXT
299
299
  )
300
- `),v=!0);}catch{}}async loadFromGlobals(){try{let e=null;if(typeof this.db?.findOne=="function")try{let s=await this.db.findOne({collection:"_globals_storage-settings",where:{},draft:!0});s&&(e=s);}catch{}if(!e&&typeof this.db?.execute=="function"){let{sql:s}=await import('./drizzle-orm-7YTX5NTT.js'),o=['"_globals_storage-settings"','"_globals_storage_settings"','"global_storage_settings"'];for(let a of o)try{let n=await this.db.execute(s`SELECT * FROM ${s.raw(a)} LIMIT 1`);if(e=Array.isArray(n)?n[0]:n?.rows?n.rows[0]:null,e)break}catch{}}else if(!e&&typeof this.db?.prepare=="function"){let s=['"_globals_storage-settings"','"_globals_storage_settings"','"global_storage_settings"'];for(let o of s)try{if(e=this.db.prepare(`SELECT * FROM ${o} LIMIT 1`).get(),e)break}catch{}}if(!e)return;let t=s=>{if(!s)return null;if(typeof s=="string")try{return JSON.parse(s)}catch{return null}return s},r=e.provider||"local";if(this.cache["storage.type"]=r,r==="local"){let s=t(e.local);this.cache["storage.local.dir"]=s?.uploadDir||"./public/uploads",this.cache["storage.local.url"]=s?.baseUrl||"/uploads";}if(r==="aws"){let s=t(e.aws);this.cache["storage.s3.bucket"]=s?.bucket||"",this.cache["storage.s3.region"]=s?.region||"us-east-1",this.cache["storage.s3.access_key_id"]=s?.accessKeyId||"",this.cache["storage.s3.secret_access_key"]=s?.secretAccessKey||"",this.cache["storage.s3.endpoint"]=s?.endpoint||"",this.cache["storage.s3.cdn_url"]=s?.cdnUrl||"",this.cache["storage.s3.prefix"]=s?.prefix||"";}if(r==="r2"){let s=t(e.r2);this.cache["storage.r2.account_id"]=s?.accountId||"",this.cache["storage.r2.access_key_id"]=s?.accessKeyId||"",this.cache["storage.r2.secret_access_key"]=s?.secretAccessKey||"",this.cache["storage.r2.bucket"]=s?.bucket||"",this.cache["storage.r2.cdn_url"]=s?.cdnUrl||"",this.cache["storage.r2.prefix"]=s?.prefix||"";}if(r==="cloudinary"){let s=t(e.cloudinary);this.cache["storage.cloudinary.cloud_name"]=s?.cloudName||"",this.cache["storage.cloudinary.api_key"]=s?.apiKey||"",this.cache["storage.cloudinary.api_secret"]=s?.apiSecret||"",this.cache["storage.cloudinary.folder"]=s?.folder||"";}if(r==="ftp"){let s=t(e.ftp);this.cache["storage.ftp.host"]=s?.host||"",this.cache["storage.ftp.port"]=String(s?.port||"21"),this.cache["storage.ftp.user"]=s?.user||"",this.cache["storage.ftp.password"]=s?.password||"",this.cache["storage.ftp.secure"]=s?.secure?"true":"false",this.cache["storage.ftp.base_url"]=s?.baseUrl||"",this.cache["storage.ftp.prefix"]=s?.prefix||"";}}catch(e){console.warn("ConfigService: Could not load storage settings from globals table:",e);}try{let e=null;if(typeof this.db?.findOne=="function")try{let t=await this.db.findOne({collection:"_globals_email-settings",where:{},draft:!0});t&&(e=t);}catch{}if(!e&&typeof this.db?.execute=="function"){let{sql:t}=await import('./drizzle-orm-7YTX5NTT.js'),r=['"_globals_email-settings"','"_globals_email_settings"','"global_email_settings"'];for(let s of r)try{let o=await this.db.execute(t`SELECT * FROM ${t.raw(s)} LIMIT 1`);if(e=Array.isArray(o)?o[0]:o?.rows?o.rows[0]:null,e)break}catch{}}else if(!e&&typeof this.db?.prepare=="function"){let t=['"_globals_email-settings"','"_globals_email_settings"','"global_email_settings"'];for(let r of t)try{if(e=this.db.prepare(`SELECT * FROM ${r} LIMIT 1`).get(),e)break}catch{}}if(e){let t=r=>{if(!r)return null;if(typeof r=="string")try{return JSON.parse(r)}catch{return null}return r};if(this.cache["email.provider"]=e.provider||"smtp",this.cache["email.smtp.from"]=e.fromEmail||"",this.cache["email.smtp.from_name"]=e.fromName||"",this.cache["email.smtp.reply_to"]=e.replyTo||"",e.provider==="smtp"){let r=t(e.smtp);this.cache["email.smtp.host"]=r?.host||"",this.cache["email.smtp.port"]=String(r?.port||"587"),this.cache["email.smtp.user"]=r?.username||"",this.cache["email.smtp.pass"]=r?.password||"",this.cache["email.smtp.secure"]=r?.secure?"true":"false";}else if(e.provider==="resend"){let r=t(e.resend);this.cache["email.smtp.pass"]=r?.apiKey||"";}else if(e.provider==="sendgrid"){let r=t(e.sendgrid);this.cache["email.smtp.pass"]=r?.apiKey||"";}else if(e.provider==="mailgun"){let r=t(e.mailgun);this.cache["email.smtp.pass"]=r?.apiKey||"";}else if(e.provider==="ses"){let r=t(e.ses);this.cache["email.smtp.user"]=r?.accessKeyId||"",this.cache["email.smtp.pass"]=r?.secretAccessKey||"";}}}catch(e){console.warn("ConfigService: Could not load email settings from globals table:",e);}}get(e,t,r){return this.cache[e]?this.cache[e]:t&&process.env[t]?process.env[t]:r}getStorageConfig(){let e="local";return typeof globalThis.STORAGE_BUCKET<"u"&&(e="cloudflare_r2"),{type:this.get("storage.type","STORAGE_TYPE",e),s3:{bucket:this.get("storage.s3.bucket","STORAGE_BUCKET"),region:this.get("storage.s3.region","STORAGE_REGION","us-east-1"),accessKeyId:this.get("storage.s3.access_key_id","STORAGE_ACCESS_KEY_ID"),secretAccessKey:this.get("storage.s3.secret_access_key","STORAGE_SECRET_ACCESS_KEY"),endpoint:this.get("storage.s3.endpoint","STORAGE_ENDPOINT"),cdnUrl:this.get("storage.s3.cdn_url","STORAGE_CDN_URL"),prefix:this.get("storage.s3.prefix","STORAGE_PREFIX")},r2:{accountId:this.get("storage.r2.account_id","R2_ACCOUNT_ID"),accessKeyId:this.get("storage.r2.access_key_id","R2_ACCESS_KEY_ID"),secretAccessKey:this.get("storage.r2.secret_access_key","R2_SECRET_ACCESS_KEY"),bucket:this.get("storage.r2.bucket","R2_BUCKET"),cdnUrl:this.get("storage.r2.cdn_url","R2_CDN_URL"),prefix:this.get("storage.r2.prefix","R2_PREFIX")},gcs:{bucket:this.get("storage.gcs.bucket","GCS_BUCKET"),projectId:this.get("storage.gcs.project_id","GCS_PROJECT_ID"),clientEmail:this.get("storage.gcs.client_email","GCS_CLIENT_EMAIL"),privateKey:this.get("storage.gcs.private_key","GCS_PRIVATE_KEY"),cdnUrl:this.get("storage.gcs.cdn_url","GCS_CDN_URL"),prefix:this.get("storage.gcs.prefix","GCS_PREFIX")},digitalocean:{bucket:this.get("storage.digitalocean.bucket","DO_BUCKET"),region:this.get("storage.digitalocean.region","DO_REGION","nyc3"),accessKeyId:this.get("storage.digitalocean.access_key_id","DO_ACCESS_KEY_ID"),secretAccessKey:this.get("storage.digitalocean.secret_access_key","DO_SECRET_ACCESS_KEY"),cdnUrl:this.get("storage.digitalocean.cdn_url","DO_CDN_URL"),prefix:this.get("storage.digitalocean.prefix","DO_PREFIX")},backblaze:{bucket:this.get("storage.backblaze.bucket","BB_BUCKET"),accountId:this.get("storage.backblaze.account_id","BB_ACCOUNT_ID"),applicationKeyId:this.get("storage.backblaze.application_key_id","BB_APPLICATION_KEY_ID"),applicationKey:this.get("storage.backblaze.application_key","BB_APPLICATION_KEY"),cdnUrl:this.get("storage.backblaze.cdn_url","BB_CDN_URL"),prefix:this.get("storage.backblaze.prefix","BB_PREFIX")},wasabi:{bucket:this.get("storage.wasabi.bucket","WASABI_BUCKET"),region:this.get("storage.wasabi.region","WASABI_REGION","us-east-1"),accessKeyId:this.get("storage.wasabi.access_key_id","WASABI_ACCESS_KEY_ID"),secretAccessKey:this.get("storage.wasabi.secret_access_key","WASABI_SECRET_ACCESS_KEY"),cdnUrl:this.get("storage.wasabi.cdn_url","WASABI_CDN_URL"),prefix:this.get("storage.wasabi.prefix","WASABI_PREFIX")},bunny:{storageZone:this.get("storage.bunny.storage_zone","BUNNY_STORAGE_ZONE"),apiKey:this.get("storage.bunny.api_key","BUNNY_API_KEY"),cdnUrl:this.get("storage.bunny.cdn_url","BUNNY_CDN_URL"),prefix:this.get("storage.bunny.prefix","BUNNY_PREFIX")},ftp:{host:this.get("storage.ftp.host","FTP_HOST"),port:parseInt(this.get("storage.ftp.port","FTP_PORT","21"),10),user:this.get("storage.ftp.user","FTP_USER"),password:this.get("storage.ftp.password","FTP_PASSWORD"),secure:this.get("storage.ftp.secure","FTP_SECURE")==="true",baseUrl:this.get("storage.ftp.base_url","FTP_BASE_URL"),prefix:this.get("storage.ftp.prefix","FTP_PREFIX")},cloudinary:{cloudName:this.get("storage.cloudinary.cloud_name","CLOUDINARY_CLOUD_NAME"),apiKey:this.get("storage.cloudinary.api_key","CLOUDINARY_API_KEY"),apiSecret:this.get("storage.cloudinary.api_secret","CLOUDINARY_API_SECRET"),folder:this.get("storage.cloudinary.folder","CLOUDINARY_FOLDER")},imgix:{domain:this.get("storage.imgix.domain","IMGIX_DOMAIN"),signKey:this.get("storage.imgix.sign_key","IMGIX_SIGN_KEY")},local:{uploadDir:this.get("storage.local.dir","STORAGE_LOCAL_DIR","./public/uploads"),baseUrl:this.get("storage.local.url","STORAGE_LOCAL_URL","/uploads")}}}getEmailConfig(){return {provider:this.get("email.provider","EMAIL_PROVIDER","smtp"),host:this.get("email.smtp.host","SMTP_HOST"),port:parseInt(this.get("email.smtp.port","SMTP_PORT","587"),10),secure:this.get("email.smtp.secure","SMTP_SECURE")==="true",user:this.get("email.smtp.user","SMTP_USER"),pass:this.get("email.smtp.pass","SMTP_PASS"),from:this.get("email.smtp.from","SMTP_FROM","noreply@example.com"),fromName:this.get("email.smtp.from_name","SMTP_FROM_NAME","Kyro CMS"),replyTo:this.get("email.smtp.reply_to","SMTP_REPLY_TO")}}maskSensitive(e,t){return t&&(i.SENSITIVE_KEYS.includes(e)?"********":t)}async set(e,t,r){await this.db.insert(a).values({key:e,value:t,description:r,updatedAt:new Date}).onConflictDoUpdate({target:[a.key],set:{value:t,description:r,updatedAt:new Date}}),this.cache[e]=t;}};g$1();var A=class i{transporter;config;templates;transporterInitialized=false;constructor(e,t){this.config=e,this.templates={...k(),...t};}async ensureTransporter(){if(this.transporterInitialized)return this.transporter;let{default:e}=await import('./nodemailer-AXROO37D.js');return this.config.provider==="smtp"&&this.config.smtp?this.transporter=e.createTransport({host:this.config.smtp.host,port:this.config.smtp.port,secure:this.config.smtp.secure,auth:this.config.smtp.auth}):this.config.provider==="ses"&&this.config.ses&&(this.transporter=e.createTransport({host:`email-smtp.${this.config.ses.region}.amazonaws.com`,port:587,secure:false,auth:{user:this.config.ses.accessKeyId,pass:this.config.ses.secretAccessKey}})),this.transporterInitialized=true,this.transporter}async send(e){let{provider:t,from:r,fromName:s,replyTo:o}=this.config,a=`"${s||"Kyro CMS"}" <${r}>`,n=e.replyTo||o;try{let l;switch(t){case "smtp":case "ses":{let p=await this.ensureTransporter();if(!p)throw new Error(`${t} transporter not initialized`);l=await p.sendMail({from:a,to:Array.isArray(e.to)?e.to.join(", "):e.to,subject:e.subject,html:e.html,text:e.text,replyTo:n});}break;case "resend":l=await this.sendViaResend(a,e,n);break;case "sendgrid":l=await this.sendViaSendGrid(a,e,n);break;case "mailgun":l=await this.sendViaMailgun(a,e,n);break;default:throw new Error(`Unsupported email provider: ${t}`)}return l}catch(l){throw console.error("[EmailTransport] FAILED to send email:",l.message),l.response&&console.error("[EmailTransport] Provider Error Detail:",JSON.stringify(l.response,null,2)),l}}async sendViaResend(e,t,r){let s=this.config.resend?.apiKey;if(!s)throw new Error("Resend API Key missing");let o={from:e,to:t.to,subject:t.subject,html:t.html,text:t.text,reply_to:r},a=await fetch("https://api.resend.com/emails",{method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!a.ok){let n=await a.json();throw new Error(`Resend Error: ${JSON.stringify(n)}`)}return a.json()}async sendViaSendGrid(e,t,r){let s=this.config.sendgrid?.apiKey;if(!s)throw new Error("SendGrid API Key missing");let o={personalizations:[{to:Array.isArray(t.to)?t.to.map(n=>({email:n})):[{email:t.to}]}],from:{email:e.match(/<(.+)>/)?.[1]||e,name:e.match(/"(.+)"/)?.[1]},subject:t.subject,content:[{type:"text/plain",value:t.text||""},{type:"text/html",value:t.html}],reply_to:r?{email:r}:void 0},a=await fetch("https://api.sendgrid.com/v3/mail/send",{method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!a.ok){let n=await a.json();throw new Error(`SendGrid Error: ${JSON.stringify(n)}`)}return {success:true}}async sendViaMailgun(e,t,r){let{apiKey:s,domain:o,region:a}=this.config.mailgun||{};if(!s||!o)throw new Error("Mailgun config missing");let n=a==="eu"?"api.eu.mailgun.net":"api.mailgun.net",l=btoa(`api:${s}`),p=new URLSearchParams;p.append("from",e);let u=Array.isArray(t.to)?t.to.join(", "):t.to;p.append("to",u),p.append("subject",t.subject),p.append("html",t.html),t.text&&p.append("text",t.text),r&&p.append("h:Reply-To",r);let f=await fetch(`https://${n}/v3/${o}/messages`,{method:"POST",headers:{Authorization:`Basic ${l}`,"Content-Type":"application/x-www-form-urlencoded"},body:p});if(!f.ok){let h=await f.json();throw new Error(`Mailgun Error: ${JSON.stringify(h)}`)}return f.json()}getTemplates(){return this.templates}async verifyConnection(){if(this.config.provider==="smtp"||this.config.provider==="ses")try{let e=await this.ensureTransporter();if(e)return await e.verify(),!0}catch{return false}return !!(this.config.resend?.apiKey||this.config.sendgrid?.apiKey||this.config.mailgun?.apiKey)}static async fromConfig(e){let t=new b(e);await t.load();let r=t.getEmailConfig();if(!r.provider)return this.fromEnv();let s={provider:r.provider||"smtp",from:r.from||"noreply@example.com",fromName:r.fromName,replyTo:r.replyTo,smtp:r.provider==="smtp"?{host:r.host||"",port:r.port||587,secure:r.secure||false,auth:{user:r.user||"",pass:r.pass||""}}:void 0,resend:r.provider==="resend"?{apiKey:r.pass||""}:void 0,sendgrid:r.provider==="sendgrid"?{apiKey:r.pass||""}:void 0,mailgun:r.provider==="mailgun"?{apiKey:r.pass||"",domain:r.host||"",region:r.secure?"eu":"us"}:void 0,ses:r.provider==="ses"?{accessKeyId:r.user||"",secretAccessKey:r.pass||"",region:r.host||"us-east-1"}:void 0};return new i(s)}static fromEnv(){let e=process.env.EMAIL_PROVIDER||"smtp",t=process.env.SMTP_FROM||process.env.DEFAULT_FROM||"noreply@example.com",r=process.env.SMTP_FROM_NAME||"Kyro CMS",s=process.env.SMTP_REPLY_TO;if(e==="smtp"){let o=process.env.SMTP_HOST,a=process.env.SMTP_USER,n=process.env.SMTP_PASS;return !o||!a||!n?null:new i({provider:"smtp",from:t,fromName:r,replyTo:s,smtp:{host:o,port:parseInt(process.env.SMTP_PORT||"587",10),secure:process.env.SMTP_SECURE==="true",auth:{user:a,pass:n}}})}if(e==="resend"){let o=process.env.RESEND_API_KEY||process.env.SMTP_PASS;return o?new i({provider:"resend",from:t,fromName:r,replyTo:s,resend:{apiKey:o}}):null}if(e==="sendgrid"){let o=process.env.SENDGRID_API_KEY||process.env.SMTP_PASS;return o?new i({provider:"sendgrid",from:t,fromName:r,replyTo:s,sendgrid:{apiKey:o}}):null}if(e==="mailgun"){let o=process.env.MAILGUN_API_KEY||process.env.SMTP_PASS,a=process.env.MAILGUN_DOMAIN||process.env.SMTP_HOST;return !o||!a?null:new i({provider:"mailgun",from:t,fromName:r,replyTo:s,mailgun:{apiKey:o,domain:a,region:process.env.MAILGUN_REGION||(process.env.SMTP_SECURE==="true"?"eu":"us")}})}if(e==="ses"){let o=process.env.AWS_ACCESS_KEY_ID||process.env.SMTP_USER,a=process.env.AWS_SECRET_ACCESS_KEY||process.env.SMTP_PASS,n=process.env.AWS_REGION||process.env.SMTP_HOST||"us-east-1";return !o||!a?null:new i({provider:"ses",from:t,fromName:r,replyTo:s,ses:{accessKeyId:o,secretAccessKey:a,region:n}})}return null}};g$1();var I={minLength:12,requireUppercase:true,requireLowercase:true,requireNumbers:true,requireSpecialChars:true,preventReuse:5,maxLength:128},P=class{config;constructor(e={}){this.config={...I,...e};}validate(e){let t=[];return this.config.maxLength&&e.length>this.config.maxLength&&t.push(`Password must not exceed ${this.config.maxLength} characters`),e.length<this.config.minLength&&t.push(`Password must be at least ${this.config.minLength} characters`),this.config.requireUppercase&&!/[A-Z]/.test(e)&&t.push("Password must contain at least one uppercase letter"),this.config.requireLowercase&&!/[a-z]/.test(e)&&t.push("Password must contain at least one lowercase letter"),this.config.requireNumbers&&!/[0-9]/.test(e)&&t.push("Password must contain at least one number"),this.config.requireSpecialChars&&!/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(e)&&t.push("Password must contain at least one special character"),["password","123456","12345678","qwerty","abc123","monkey","1234567","letmein","trustno1","dragon","baseball","iloveyou","master","sunshine","ashley","football","password1","shadow","123123","654321"].includes(e.toLowerCase())&&t.push("This password is too common. Please choose a more secure password"),(/^[a-zA-Z]+$/.test(e)||/^[0-9]+$/.test(e))&&t.push("Password must contain a mix of letters, numbers, and/or special characters"),/(.)\1{2,}/.test(e)&&t.push("Password must not contain more than 2 consecutive identical characters"),/^(012|123|234|345|456|567|678|789|890|098|987|876|765|654|543|432|321|210)+$/i.test(e)&&t.push("Password must not contain sequential numbers or letters"),{valid:t.length===0,errors:t}}async checkReuse(e,t,r){return {valid:true,errors:[]}}async isInHistory(e,t,r){for(let s of t)if(await r(e,s))return true;return false}generatePassword(e=16){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZ",r="abcdefghijklmnopqrstuvwxyz",s="0123456789",o="!@#$%^&*()_+-=[]{}|;:,.<>?",a="";a+=t[Math.floor(Math.random()*t.length)],a+=r[Math.floor(Math.random()*r.length)],a+=s[Math.floor(Math.random()*s.length)],a+=o[Math.floor(Math.random()*o.length)];let n=t+r+s+o;for(let l=a.length;l<e;l++)a+=n[Math.floor(Math.random()*n.length)];return a.split("").sort(()=>Math.random()-.5).join("")}getStrength(e){let t=0,r=[];e.length>=8&&(t+=1),e.length>=12&&(t+=1),e.length>=16&&(t+=1),/[a-z]/.test(e)&&(t+=1),/[A-Z]/.test(e)&&(t+=1),/[0-9]/.test(e)&&(t+=1),/[!@#$%^&*()_+\-=\[\]{}|;:,.<>?]/.test(e)&&(t+=1),e.length>8&&(t+=1),e.length>12&&(t+=1);let s=new Set(e).size;s>6&&(t+=1),s>10&&(t+=1);let o;return t<=3?(o="Weak",r.push("Add more characters"),r.push("Include uppercase and lowercase letters")):t<=5?(o="Fair",r.push("Add special characters"),r.push("Consider making it longer")):t<=7?(o="Good",r.push("Consider making it longer for extra security")):o="Strong",{score:t,label:o,feedback:r}}setConfig(e){this.config={...this.config,...e};}getConfig(){return {...this.config}}};
300
+ `),v=!0);}catch{}}async loadFromGlobals(){try{let e=null;if(typeof this.db?.findOne=="function")try{let s=await this.db.findOne({collection:"_globals_storage-settings",where:{},draft:!0});s&&(e=s);}catch{}if(!e&&typeof this.db?.execute=="function"){let{sql:s}=await import('./drizzle-orm-XRTSOQJS.js'),o=['"_globals_storage-settings"','"_globals_storage_settings"','"global_storage_settings"'];for(let a of o)try{let n=await this.db.execute(s`SELECT * FROM ${s.raw(a)} LIMIT 1`);if(e=Array.isArray(n)?n[0]:n?.rows?n.rows[0]:null,e)break}catch{}}else if(!e&&typeof this.db?.prepare=="function"){let s=['"_globals_storage-settings"','"_globals_storage_settings"','"global_storage_settings"'];for(let o of s)try{if(e=this.db.prepare(`SELECT * FROM ${o} LIMIT 1`).get(),e)break}catch{}}if(!e)return;let t=s=>{if(!s)return null;if(typeof s=="string")try{return JSON.parse(s)}catch{return null}return s},r=e.provider||"local";if(this.cache["storage.type"]=r,r==="local"){let s=t(e.local);this.cache["storage.local.dir"]=s?.uploadDir||"./public/uploads",this.cache["storage.local.url"]=s?.baseUrl||"/uploads";}if(r==="aws"){let s=t(e.aws);this.cache["storage.s3.bucket"]=s?.bucket||"",this.cache["storage.s3.region"]=s?.region||"us-east-1",this.cache["storage.s3.access_key_id"]=s?.accessKeyId||"",this.cache["storage.s3.secret_access_key"]=s?.secretAccessKey||"",this.cache["storage.s3.endpoint"]=s?.endpoint||"",this.cache["storage.s3.cdn_url"]=s?.cdnUrl||"",this.cache["storage.s3.prefix"]=s?.prefix||"";}if(r==="r2"){let s=t(e.r2);this.cache["storage.r2.account_id"]=s?.accountId||"",this.cache["storage.r2.access_key_id"]=s?.accessKeyId||"",this.cache["storage.r2.secret_access_key"]=s?.secretAccessKey||"",this.cache["storage.r2.bucket"]=s?.bucket||"",this.cache["storage.r2.cdn_url"]=s?.cdnUrl||"",this.cache["storage.r2.prefix"]=s?.prefix||"";}if(r==="cloudinary"){let s=t(e.cloudinary);this.cache["storage.cloudinary.cloud_name"]=s?.cloudName||"",this.cache["storage.cloudinary.api_key"]=s?.apiKey||"",this.cache["storage.cloudinary.api_secret"]=s?.apiSecret||"",this.cache["storage.cloudinary.folder"]=s?.folder||"";}if(r==="ftp"){let s=t(e.ftp);this.cache["storage.ftp.host"]=s?.host||"",this.cache["storage.ftp.port"]=String(s?.port||"21"),this.cache["storage.ftp.user"]=s?.user||"",this.cache["storage.ftp.password"]=s?.password||"",this.cache["storage.ftp.secure"]=s?.secure?"true":"false",this.cache["storage.ftp.base_url"]=s?.baseUrl||"",this.cache["storage.ftp.prefix"]=s?.prefix||"";}}catch(e){console.warn("ConfigService: Could not load storage settings from globals table:",e);}try{let e=null;if(typeof this.db?.findOne=="function")try{let t=await this.db.findOne({collection:"_globals_email-settings",where:{},draft:!0});t&&(e=t);}catch{}if(!e&&typeof this.db?.execute=="function"){let{sql:t}=await import('./drizzle-orm-XRTSOQJS.js'),r=['"_globals_email-settings"','"_globals_email_settings"','"global_email_settings"'];for(let s of r)try{let o=await this.db.execute(t`SELECT * FROM ${t.raw(s)} LIMIT 1`);if(e=Array.isArray(o)?o[0]:o?.rows?o.rows[0]:null,e)break}catch{}}else if(!e&&typeof this.db?.prepare=="function"){let t=['"_globals_email-settings"','"_globals_email_settings"','"global_email_settings"'];for(let r of t)try{if(e=this.db.prepare(`SELECT * FROM ${r} LIMIT 1`).get(),e)break}catch{}}if(e){let t=r=>{if(!r)return null;if(typeof r=="string")try{return JSON.parse(r)}catch{return null}return r};if(this.cache["email.provider"]=e.provider||"smtp",this.cache["email.smtp.from"]=e.fromEmail||"",this.cache["email.smtp.from_name"]=e.fromName||"",this.cache["email.smtp.reply_to"]=e.replyTo||"",e.provider==="smtp"){let r=t(e.smtp);this.cache["email.smtp.host"]=r?.host||"",this.cache["email.smtp.port"]=String(r?.port||"587"),this.cache["email.smtp.user"]=r?.username||"",this.cache["email.smtp.pass"]=r?.password||"",this.cache["email.smtp.secure"]=r?.secure?"true":"false";}else if(e.provider==="resend"){let r=t(e.resend);this.cache["email.smtp.pass"]=r?.apiKey||"";}else if(e.provider==="sendgrid"){let r=t(e.sendgrid);this.cache["email.smtp.pass"]=r?.apiKey||"";}else if(e.provider==="mailgun"){let r=t(e.mailgun);this.cache["email.smtp.pass"]=r?.apiKey||"";}else if(e.provider==="ses"){let r=t(e.ses);this.cache["email.smtp.user"]=r?.accessKeyId||"",this.cache["email.smtp.pass"]=r?.secretAccessKey||"";}}}catch(e){console.warn("ConfigService: Could not load email settings from globals table:",e);}}get(e,t,r){return this.cache[e]?this.cache[e]:t&&process.env[t]?process.env[t]:r}getStorageConfig(){let e="local";return typeof globalThis.STORAGE_BUCKET<"u"&&(e="cloudflare_r2"),{type:this.get("storage.type","STORAGE_TYPE",e),s3:{bucket:this.get("storage.s3.bucket","STORAGE_BUCKET"),region:this.get("storage.s3.region","STORAGE_REGION","us-east-1"),accessKeyId:this.get("storage.s3.access_key_id","STORAGE_ACCESS_KEY_ID"),secretAccessKey:this.get("storage.s3.secret_access_key","STORAGE_SECRET_ACCESS_KEY"),endpoint:this.get("storage.s3.endpoint","STORAGE_ENDPOINT"),cdnUrl:this.get("storage.s3.cdn_url","STORAGE_CDN_URL"),prefix:this.get("storage.s3.prefix","STORAGE_PREFIX")},r2:{accountId:this.get("storage.r2.account_id","R2_ACCOUNT_ID"),accessKeyId:this.get("storage.r2.access_key_id","R2_ACCESS_KEY_ID"),secretAccessKey:this.get("storage.r2.secret_access_key","R2_SECRET_ACCESS_KEY"),bucket:this.get("storage.r2.bucket","R2_BUCKET"),cdnUrl:this.get("storage.r2.cdn_url","R2_CDN_URL"),prefix:this.get("storage.r2.prefix","R2_PREFIX")},gcs:{bucket:this.get("storage.gcs.bucket","GCS_BUCKET"),projectId:this.get("storage.gcs.project_id","GCS_PROJECT_ID"),clientEmail:this.get("storage.gcs.client_email","GCS_CLIENT_EMAIL"),privateKey:this.get("storage.gcs.private_key","GCS_PRIVATE_KEY"),cdnUrl:this.get("storage.gcs.cdn_url","GCS_CDN_URL"),prefix:this.get("storage.gcs.prefix","GCS_PREFIX")},digitalocean:{bucket:this.get("storage.digitalocean.bucket","DO_BUCKET"),region:this.get("storage.digitalocean.region","DO_REGION","nyc3"),accessKeyId:this.get("storage.digitalocean.access_key_id","DO_ACCESS_KEY_ID"),secretAccessKey:this.get("storage.digitalocean.secret_access_key","DO_SECRET_ACCESS_KEY"),cdnUrl:this.get("storage.digitalocean.cdn_url","DO_CDN_URL"),prefix:this.get("storage.digitalocean.prefix","DO_PREFIX")},backblaze:{bucket:this.get("storage.backblaze.bucket","BB_BUCKET"),accountId:this.get("storage.backblaze.account_id","BB_ACCOUNT_ID"),applicationKeyId:this.get("storage.backblaze.application_key_id","BB_APPLICATION_KEY_ID"),applicationKey:this.get("storage.backblaze.application_key","BB_APPLICATION_KEY"),cdnUrl:this.get("storage.backblaze.cdn_url","BB_CDN_URL"),prefix:this.get("storage.backblaze.prefix","BB_PREFIX")},wasabi:{bucket:this.get("storage.wasabi.bucket","WASABI_BUCKET"),region:this.get("storage.wasabi.region","WASABI_REGION","us-east-1"),accessKeyId:this.get("storage.wasabi.access_key_id","WASABI_ACCESS_KEY_ID"),secretAccessKey:this.get("storage.wasabi.secret_access_key","WASABI_SECRET_ACCESS_KEY"),cdnUrl:this.get("storage.wasabi.cdn_url","WASABI_CDN_URL"),prefix:this.get("storage.wasabi.prefix","WASABI_PREFIX")},bunny:{storageZone:this.get("storage.bunny.storage_zone","BUNNY_STORAGE_ZONE"),apiKey:this.get("storage.bunny.api_key","BUNNY_API_KEY"),cdnUrl:this.get("storage.bunny.cdn_url","BUNNY_CDN_URL"),prefix:this.get("storage.bunny.prefix","BUNNY_PREFIX")},ftp:{host:this.get("storage.ftp.host","FTP_HOST"),port:parseInt(this.get("storage.ftp.port","FTP_PORT","21"),10),user:this.get("storage.ftp.user","FTP_USER"),password:this.get("storage.ftp.password","FTP_PASSWORD"),secure:this.get("storage.ftp.secure","FTP_SECURE")==="true",baseUrl:this.get("storage.ftp.base_url","FTP_BASE_URL"),prefix:this.get("storage.ftp.prefix","FTP_PREFIX")},cloudinary:{cloudName:this.get("storage.cloudinary.cloud_name","CLOUDINARY_CLOUD_NAME"),apiKey:this.get("storage.cloudinary.api_key","CLOUDINARY_API_KEY"),apiSecret:this.get("storage.cloudinary.api_secret","CLOUDINARY_API_SECRET"),folder:this.get("storage.cloudinary.folder","CLOUDINARY_FOLDER")},imgix:{domain:this.get("storage.imgix.domain","IMGIX_DOMAIN"),signKey:this.get("storage.imgix.sign_key","IMGIX_SIGN_KEY")},local:{uploadDir:this.get("storage.local.dir","STORAGE_LOCAL_DIR","./public/uploads"),baseUrl:this.get("storage.local.url","STORAGE_LOCAL_URL","/uploads")}}}getEmailConfig(){return {provider:this.get("email.provider","EMAIL_PROVIDER","smtp"),host:this.get("email.smtp.host","SMTP_HOST"),port:parseInt(this.get("email.smtp.port","SMTP_PORT","587"),10),secure:this.get("email.smtp.secure","SMTP_SECURE")==="true",user:this.get("email.smtp.user","SMTP_USER"),pass:this.get("email.smtp.pass","SMTP_PASS"),from:this.get("email.smtp.from","SMTP_FROM","noreply@example.com"),fromName:this.get("email.smtp.from_name","SMTP_FROM_NAME","Kyro CMS"),replyTo:this.get("email.smtp.reply_to","SMTP_REPLY_TO")}}maskSensitive(e,t){return t&&(i.SENSITIVE_KEYS.includes(e)?"********":t)}async set(e,t,r){await this.db.insert(a).values({key:e,value:t,description:r,updatedAt:new Date}).onConflictDoUpdate({target:[a.key],set:{value:t,description:r,updatedAt:new Date}}),this.cache[e]=t;}};g$1();var A=class i{transporter;config;templates;transporterInitialized=false;constructor(e,t){this.config=e,this.templates={...k(),...t};}async ensureTransporter(){if(this.transporterInitialized)return this.transporter;let{default:e}=await import('./nodemailer-NITB45SS.js');return this.config.provider==="smtp"&&this.config.smtp?this.transporter=e.createTransport({host:this.config.smtp.host,port:this.config.smtp.port,secure:this.config.smtp.secure,auth:this.config.smtp.auth}):this.config.provider==="ses"&&this.config.ses&&(this.transporter=e.createTransport({host:`email-smtp.${this.config.ses.region}.amazonaws.com`,port:587,secure:false,auth:{user:this.config.ses.accessKeyId,pass:this.config.ses.secretAccessKey}})),this.transporterInitialized=true,this.transporter}async send(e){let{provider:t,from:r,fromName:s,replyTo:o}=this.config,a=`"${s||"Kyro CMS"}" <${r}>`,n=e.replyTo||o;try{let l;switch(t){case "smtp":case "ses":{let p=await this.ensureTransporter();if(!p)throw new Error(`${t} transporter not initialized`);l=await p.sendMail({from:a,to:Array.isArray(e.to)?e.to.join(", "):e.to,subject:e.subject,html:e.html,text:e.text,replyTo:n});}break;case "resend":l=await this.sendViaResend(a,e,n);break;case "sendgrid":l=await this.sendViaSendGrid(a,e,n);break;case "mailgun":l=await this.sendViaMailgun(a,e,n);break;default:throw new Error(`Unsupported email provider: ${t}`)}return l}catch(l){throw console.error("[EmailTransport] FAILED to send email:",l.message),l.response&&console.error("[EmailTransport] Provider Error Detail:",JSON.stringify(l.response,null,2)),l}}async sendViaResend(e,t,r){let s=this.config.resend?.apiKey;if(!s)throw new Error("Resend API Key missing");let o={from:e,to:t.to,subject:t.subject,html:t.html,text:t.text,reply_to:r},a=await fetch("https://api.resend.com/emails",{method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!a.ok){let n=await a.json();throw new Error(`Resend Error: ${JSON.stringify(n)}`)}return a.json()}async sendViaSendGrid(e,t,r){let s=this.config.sendgrid?.apiKey;if(!s)throw new Error("SendGrid API Key missing");let o={personalizations:[{to:Array.isArray(t.to)?t.to.map(n=>({email:n})):[{email:t.to}]}],from:{email:e.match(/<(.+)>/)?.[1]||e,name:e.match(/"(.+)"/)?.[1]},subject:t.subject,content:[{type:"text/plain",value:t.text||""},{type:"text/html",value:t.html}],reply_to:r?{email:r}:void 0},a=await fetch("https://api.sendgrid.com/v3/mail/send",{method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},body:JSON.stringify(o)});if(!a.ok){let n=await a.json();throw new Error(`SendGrid Error: ${JSON.stringify(n)}`)}return {success:true}}async sendViaMailgun(e,t,r){let{apiKey:s,domain:o,region:a}=this.config.mailgun||{};if(!s||!o)throw new Error("Mailgun config missing");let n=a==="eu"?"api.eu.mailgun.net":"api.mailgun.net",l=btoa(`api:${s}`),p=new URLSearchParams;p.append("from",e);let u=Array.isArray(t.to)?t.to.join(", "):t.to;p.append("to",u),p.append("subject",t.subject),p.append("html",t.html),t.text&&p.append("text",t.text),r&&p.append("h:Reply-To",r);let f=await fetch(`https://${n}/v3/${o}/messages`,{method:"POST",headers:{Authorization:`Basic ${l}`,"Content-Type":"application/x-www-form-urlencoded"},body:p});if(!f.ok){let h=await f.json();throw new Error(`Mailgun Error: ${JSON.stringify(h)}`)}return f.json()}getTemplates(){return this.templates}async verifyConnection(){if(this.config.provider==="smtp"||this.config.provider==="ses")try{let e=await this.ensureTransporter();if(e)return await e.verify(),!0}catch{return false}return !!(this.config.resend?.apiKey||this.config.sendgrid?.apiKey||this.config.mailgun?.apiKey)}static async fromConfig(e){let t=new b(e);await t.load();let r=t.getEmailConfig();if(!r.provider)return this.fromEnv();let s={provider:r.provider||"smtp",from:r.from||"noreply@example.com",fromName:r.fromName,replyTo:r.replyTo,smtp:r.provider==="smtp"?{host:r.host||"",port:r.port||587,secure:r.secure||false,auth:{user:r.user||"",pass:r.pass||""}}:void 0,resend:r.provider==="resend"?{apiKey:r.pass||""}:void 0,sendgrid:r.provider==="sendgrid"?{apiKey:r.pass||""}:void 0,mailgun:r.provider==="mailgun"?{apiKey:r.pass||"",domain:r.host||"",region:r.secure?"eu":"us"}:void 0,ses:r.provider==="ses"?{accessKeyId:r.user||"",secretAccessKey:r.pass||"",region:r.host||"us-east-1"}:void 0};return new i(s)}static fromEnv(){let e=process.env.EMAIL_PROVIDER||"smtp",t=process.env.SMTP_FROM||process.env.DEFAULT_FROM||"noreply@example.com",r=process.env.SMTP_FROM_NAME||"Kyro CMS",s=process.env.SMTP_REPLY_TO;if(e==="smtp"){let o=process.env.SMTP_HOST,a=process.env.SMTP_USER,n=process.env.SMTP_PASS;return !o||!a||!n?null:new i({provider:"smtp",from:t,fromName:r,replyTo:s,smtp:{host:o,port:parseInt(process.env.SMTP_PORT||"587",10),secure:process.env.SMTP_SECURE==="true",auth:{user:a,pass:n}}})}if(e==="resend"){let o=process.env.RESEND_API_KEY||process.env.SMTP_PASS;return o?new i({provider:"resend",from:t,fromName:r,replyTo:s,resend:{apiKey:o}}):null}if(e==="sendgrid"){let o=process.env.SENDGRID_API_KEY||process.env.SMTP_PASS;return o?new i({provider:"sendgrid",from:t,fromName:r,replyTo:s,sendgrid:{apiKey:o}}):null}if(e==="mailgun"){let o=process.env.MAILGUN_API_KEY||process.env.SMTP_PASS,a=process.env.MAILGUN_DOMAIN||process.env.SMTP_HOST;return !o||!a?null:new i({provider:"mailgun",from:t,fromName:r,replyTo:s,mailgun:{apiKey:o,domain:a,region:process.env.MAILGUN_REGION||(process.env.SMTP_SECURE==="true"?"eu":"us")}})}if(e==="ses"){let o=process.env.AWS_ACCESS_KEY_ID||process.env.SMTP_USER,a=process.env.AWS_SECRET_ACCESS_KEY||process.env.SMTP_PASS,n=process.env.AWS_REGION||process.env.SMTP_HOST||"us-east-1";return !o||!a?null:new i({provider:"ses",from:t,fromName:r,replyTo:s,ses:{accessKeyId:o,secretAccessKey:a,region:n}})}return null}};g$1();var I={minLength:12,requireUppercase:true,requireLowercase:true,requireNumbers:true,requireSpecialChars:true,preventReuse:5,maxLength:128},P=class{config;constructor(e={}){this.config={...I,...e};}validate(e){let t=[];return this.config.maxLength&&e.length>this.config.maxLength&&t.push(`Password must not exceed ${this.config.maxLength} characters`),e.length<this.config.minLength&&t.push(`Password must be at least ${this.config.minLength} characters`),this.config.requireUppercase&&!/[A-Z]/.test(e)&&t.push("Password must contain at least one uppercase letter"),this.config.requireLowercase&&!/[a-z]/.test(e)&&t.push("Password must contain at least one lowercase letter"),this.config.requireNumbers&&!/[0-9]/.test(e)&&t.push("Password must contain at least one number"),this.config.requireSpecialChars&&!/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(e)&&t.push("Password must contain at least one special character"),["password","123456","12345678","qwerty","abc123","monkey","1234567","letmein","trustno1","dragon","baseball","iloveyou","master","sunshine","ashley","football","password1","shadow","123123","654321"].includes(e.toLowerCase())&&t.push("This password is too common. Please choose a more secure password"),(/^[a-zA-Z]+$/.test(e)||/^[0-9]+$/.test(e))&&t.push("Password must contain a mix of letters, numbers, and/or special characters"),/(.)\1{2,}/.test(e)&&t.push("Password must not contain more than 2 consecutive identical characters"),/^(012|123|234|345|456|567|678|789|890|098|987|876|765|654|543|432|321|210)+$/i.test(e)&&t.push("Password must not contain sequential numbers or letters"),{valid:t.length===0,errors:t}}async checkReuse(e,t,r){return {valid:true,errors:[]}}async isInHistory(e,t,r){for(let s of t)if(await r(e,s))return true;return false}generatePassword(e=16){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZ",r="abcdefghijklmnopqrstuvwxyz",s="0123456789",o="!@#$%^&*()_+-=[]{}|;:,.<>?",a="";a+=t[Math.floor(Math.random()*t.length)],a+=r[Math.floor(Math.random()*r.length)],a+=s[Math.floor(Math.random()*s.length)],a+=o[Math.floor(Math.random()*o.length)];let n=t+r+s+o;for(let l=a.length;l<e;l++)a+=n[Math.floor(Math.random()*n.length)];return a.split("").sort(()=>Math.random()-.5).join("")}getStrength(e){let t=0,r=[];e.length>=8&&(t+=1),e.length>=12&&(t+=1),e.length>=16&&(t+=1),/[a-z]/.test(e)&&(t+=1),/[A-Z]/.test(e)&&(t+=1),/[0-9]/.test(e)&&(t+=1),/[!@#$%^&*()_+\-=\[\]{}|;:,.<>?]/.test(e)&&(t+=1),e.length>8&&(t+=1),e.length>12&&(t+=1);let s=new Set(e).size;s>6&&(t+=1),s>10&&(t+=1);let o;return t<=3?(o="Weak",r.push("Add more characters"),r.push("Include uppercase and lowercase letters")):t<=5?(o="Fair",r.push("Add special characters"),r.push("Consider making it longer")):t<=7?(o="Good",r.push("Consider making it longer for extra security")):o="Strong",{score:t,label:o,feedback:r}}setConfig(e){this.config={...this.config,...e};}getConfig(){return {...this.config}}};
301
301
  export{g as a,x as b,_ as c,S as d,T as e,w as f,C as g,E as h,k as i,b as j,A as k,P as l};
@@ -1,4 +1,4 @@
1
- import {createRequire}from'module';import {a,c,b,d}from'./chunk-MCZ3YZ2L.js';import {a as a$1}from'./chunk-BLH2MRK4.js';import {g}from'./chunk-C2PXMVR5.js';import {randomBytes}from'crypto';createRequire(import.meta.url);
1
+ import {a,c,b,d}from'./chunk-SLMIYECU.js';import {a as a$1}from'./chunk-VVVCCB6R.js';import {g}from'./chunk-Y2YAKDEQ.js';import {createRequire}from'module';import {randomBytes}from'crypto';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
2
  g();g();var _;function x(){return _||(_=createRequire("file:///")("node:sqlite").DatabaseSync,_)}function N(T){let e=[];for(let a of T)if(a.type==="tabs"&&"tabs"in a)for(let n of a.tabs)e.push(...N(n.fields));else a.type==="row"&&"fields"in a?e.push(...N(a.fields)):a.type==="collapsible"&&"fields"in a?e.push(...N(a.fields)):e.push(a);return e}function B(T,e){let a=e,n=T[a.name];if(a.type==="json"||a.type==="richtext"||a.type==="array"||a.type==="group"||a.type==="blocks"||a.type==="list"||a.type==="relationship-block")try{n=n?JSON.parse(n):null;}catch{n=null;}if(a.type==="checkbox"&&(n=!!n),a.type==="date"&&n)try{let i=new Date(n);isNaN(i.getTime())?n=null:n=i.toISOString();}catch{n=null;}if((a.type==="upload"||a.type==="image")&&n)try{let i=JSON.parse(n);Array.isArray(i)?n=i.map(o=>typeof o=="object"&&o!==null?o:{id:o}):n=typeof i=="object"?i:{id:i};}catch{n={id:n};}if(a.type==="relationship"&&n)try{let i=JSON.parse(n);Array.isArray(i),n=i;}catch{n={relationTo:Array.isArray(a.relationTo)?a.relationTo[0]:a.relationTo,value:n};}if(a.type==="list"&&n)try{let i=JSON.parse(n);n=Array.isArray(i)?i:[];}catch{n=[];}if(a.type==="relationship-block"&&n)try{let i=JSON.parse(n);n=Array.isArray(i)?i:[];}catch{n=[];}return n}function P(T,e){return Array.isArray(T)?T.map(a=>{if(!a||typeof a!="object")return a;let n=a.data?{...a.data}:void 0;if(!n)return a;let i=e.find(o=>o.slug===a.type||o.slug===a.slug);if(!i||!Array.isArray(i.fields))return a;for(let o of i.fields){if(o.name&&(o.type==="upload"||o.type==="image")&&n[o.name]){let t=n[o.name];Array.isArray(t)?n[o.name]=t.map(s=>typeof s=="string"?{id:s}:s):typeof t=="string"&&(n[o.name]={id:t});}if(o.type==="blocks"&&o.name&&n[o.name]){let t=o.blocks||[];n[o.name]=P(n[o.name],t);}}return {...a,data:n}}):T}function O(T,e){try{return T.prepare(`PRAGMA table_info(${e})`).all().map(n=>n.name)}catch{return []}}var L=class extends a{db;path;migrations=new Map;versionsTableName="kyro_versions";constructor(e){super(),this.path=e.path,e.db?this.db=e.db:this.db=null;}async connect(){if(!this.db)this.db=new(x())(this.path||":memory:");else try{this.db.exec("SELECT 1");}catch{this.db=new(x())(this.path||":memory:");}if(this.db&&typeof this.db.prepare=="function"&&!this.db.prepare.__wrapped){let e=this.db.prepare.bind(this.db),a=n=>{let i=e(n),o=t=>typeof t=="boolean"?t?1:0:t===void 0?null:t;return new Proxy(i,{get(t,s,r){if(s==="all")return (...c)=>t.all(...c.map(o));if(s==="get")return (...c)=>t.get(...c.map(o));if(s==="run")return (...c)=>t.run(...c.map(o));let l=Reflect.get(t,s,r);return typeof l=="function"?l.bind(t):l}})};a.__wrapped=true,this.db.prepare=a;}this.db.exec("PRAGMA journal_mode = WAL"),this.db.exec("PRAGMA foreign_keys = ON"),this.connected=true;}async disconnect(){if(this.db){try{this.db.close();}catch{}this.db=null;}this.connected=false;}ensureTable(e,a){let n=a||this.getTableNameFor(e.slug),i=["id TEXT PRIMARY KEY"];for(let s of N(e.fields)){if(!s.name||s.name==="id")continue;let r=this.fieldToSQL(s);r&&i.push(r);}let o=N(e.fields);o.some(s=>s.name==="createdAt")||i.push(`${this.col("createdAt")} TEXT DEFAULT (datetime('now'))`),o.some(s=>s.name==="updatedAt")||i.push(`${this.col("updatedAt")} TEXT DEFAULT (datetime('now'))`),o.some(s=>s.name==="status")||i.push("status TEXT DEFAULT 'draft'"),o.some(s=>s.name==="hasDraft")||i.push("hasDraft INTEGER DEFAULT 0"),e.tenantScoped&&i.push("tenant_id TEXT NOT NULL");let t=O(this.db,n);if(t.length===0){let s=`CREATE TABLE IF NOT EXISTS ${n} (${i.join(", ")})`;this.db.exec(s),this.db.exec(`CREATE INDEX IF NOT EXISTS idx_${n}_status ON ${n}(status)`);for(let r of N(e.fields))r.name&&r.indexed&&this.db.exec(`CREATE INDEX IF NOT EXISTS idx_${n}_${r.name} ON ${n}(${this.col(r.name)})`),r.name&&r.unique&&this.db.exec(`CREATE UNIQUE INDEX IF NOT EXISTS idx_${n}_${r.name}_unique ON ${n}(${this.col(r.name)})`);}else {let s=new Set(t);for(let r of i){let l=r.split(" ")[0].replace(/^"/,"").replace(/"$/,"");if(!s.has(l)&&l!=="id")try{l==="status"?this.db.exec(`ALTER TABLE ${n} ADD COLUMN ${this.col(l)} TEXT DEFAULT 'published'`):l==="hasDraft"?this.db.exec(`ALTER TABLE ${n} ADD COLUMN ${this.col(l)} INTEGER DEFAULT 0`):this.db.exec(`ALTER TABLE ${n} ADD COLUMN ${this.col(l)} TEXT`);}catch{}}}this.migrations.set(n,true);}ensureVersionsTable(){this.db.exec(`
3
3
  CREATE TABLE IF NOT EXISTS ${this.versionsTableName} (
4
4
  id TEXT PRIMARY KEY,
@@ -0,0 +1,2 @@
1
+ import {g}from'./chunk-Y2YAKDEQ.js';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
+ g();
@@ -1,4 +1,4 @@
1
- import {createRequire}from'module';import {a}from'./chunk-BPMA2ECA.js';import {g,e}from'./chunk-C2PXMVR5.js';import {randomBytes}from'crypto';import {mkdirSync}from'fs';import {dirname}from'path';createRequire(import.meta.url);
1
+ import {a}from'./chunk-7NH7H3WA.js';import {g,e}from'./chunk-Y2YAKDEQ.js';import {randomBytes}from'crypto';import {mkdirSync}from'fs';import {dirname}from'path';import {createRequire}from'module';if (typeof window === "undefined") { const { createRequire } = await import(/* @vite-ignore */ 'module'); createRequire(import.meta.url); }
2
2
  g();var E=e(a(),1);var c;function k(){return c||(c=createRequire("file:///")("node:sqlite").DatabaseSync,c)}var A=5e3,y=1e3,R=-64e3,L=268435456,p=class{db=null;path;saltRounds;externalDb;busyTimeout;walAutoCheckpoint;cacheSize;mmapSize;preparedStatements=new Map;constructor(e={}){this.path=e.path||"./data/auth.db",this.saltRounds=e.saltRounds||12,this.externalDb=!!e.db,this.busyTimeout=e.busyTimeout??A,this.walAutoCheckpoint=e.walAutoCheckpoint??y,this.cacheSize=e.cacheSize??R,this.mmapSize=e.mmapSize??L,e.db&&(this.db=e.db);}async connect(){if(this.db)return;let e=dirname(this.path);e&&e!=="."&&mkdirSync(e,{recursive:true}),this.db=new(k())(this.path),this.db.exec(`PRAGMA busy_timeout = ${this.busyTimeout}`),this.db.exec("PRAGMA journal_mode = WAL"),this.db.exec("PRAGMA synchronous = NORMAL"),this.db.exec("PRAGMA cache_size = "+this.cacheSize),this.db.exec("PRAGMA mmap_size = "+this.mmapSize),this.db.exec("PRAGMA wal_autocheckpoint = "+this.walAutoCheckpoint),this.db.exec("PRAGMA foreign_keys = ON"),this.db.exec("PRAGMA temp_store = MEMORY"),this.ensureTables(),this.prepareStatements();}async disconnect(){this.db&&!this.externalDb&&(this.db.exec("PRAGMA wal_checkpoint(TRUNCATE)"),this.db.close(),this.db=null,this.preparedStatements.clear());}async ensureConnected(){if(this.db||await this.connect(),!this.db)throw new Error("Failed to connect to SQLite database");return this.db}ensureTables(){if(this.db){this.db.exec(`
3
3
  CREATE TABLE IF NOT EXISTS kyro_users (
4
4
  id TEXT PRIMARY KEY,