@vitnode/core 1.2.0-canary.23 → 1.2.0-canary.24

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 (165) hide show
  1. package/dist/scripts/plugin.d.ts.map +1 -1
  2. package/dist/scripts/scripts.js +2 -9
  3. package/dist/scripts/shared/file-utils.d.ts.map +1 -1
  4. package/dist/src/api/{plugins → adapters}/email/nodemailer.d.ts +1 -1
  5. package/dist/src/api/adapters/email/nodemailer.d.ts.map +1 -0
  6. package/dist/src/api/{plugins → adapters}/email/nodemailer.js +1 -1
  7. package/dist/src/api/{plugins → adapters}/email/resend.d.ts +1 -1
  8. package/dist/src/api/adapters/email/resend.d.ts.map +1 -0
  9. package/dist/src/api/{plugins → adapters}/email/resend.js +1 -1
  10. package/dist/src/api/adapters/sso/discord.d.ts.map +1 -0
  11. package/dist/src/api/adapters/sso/facebook.d.ts.map +1 -0
  12. package/dist/src/api/adapters/sso/google.d.ts.map +1 -0
  13. package/dist/src/api/config.d.ts.map +1 -1
  14. package/dist/src/api/config.js +6 -5
  15. package/dist/src/api/lib/logger-middleware.d.ts +8 -0
  16. package/dist/src/api/lib/logger-middleware.d.ts.map +1 -0
  17. package/dist/src/api/lib/logger-middleware.js +30 -0
  18. package/dist/src/api/lib/route.d.ts +1 -1
  19. package/dist/src/api/lib/route.d.ts.map +1 -1
  20. package/dist/src/api/lib/route.js +1 -1
  21. package/dist/src/api/middlewares/{global/global.d.ts → global.middleware.d.ts} +10 -8
  22. package/dist/src/api/middlewares/global.middleware.d.ts.map +1 -0
  23. package/dist/src/api/middlewares/global.middleware.js +86 -0
  24. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts +4 -0
  25. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts.map +1 -0
  26. package/dist/src/api/middlewares/rate-limiter.middleware.js +26 -0
  27. package/dist/src/api/models/device.d.ts +4 -1
  28. package/dist/src/api/models/device.d.ts.map +1 -1
  29. package/dist/src/api/models/device.js +21 -14
  30. package/dist/src/api/models/email.d.ts +1 -2
  31. package/dist/src/api/models/email.d.ts.map +1 -1
  32. package/dist/src/api/models/email.js +9 -16
  33. package/dist/src/api/models/password.d.ts.map +1 -1
  34. package/dist/src/api/models/password.js +8 -1
  35. package/dist/src/api/models/session-admin.d.ts +1 -1
  36. package/dist/src/api/models/session-admin.d.ts.map +1 -1
  37. package/dist/src/api/models/session-admin.js +40 -16
  38. package/dist/src/api/models/session.d.ts +1 -1
  39. package/dist/src/api/models/session.d.ts.map +1 -1
  40. package/dist/src/api/models/session.js +28 -12
  41. package/dist/src/api/models/sso.js +1 -1
  42. package/dist/src/api/models/user/sign-up.d.ts +1 -1
  43. package/dist/src/api/models/user/sign-up.d.ts.map +1 -1
  44. package/dist/src/api/models/user/sign-up.js +2 -3
  45. package/dist/src/api/models/user.d.ts +1 -1
  46. package/dist/src/api/models/user.d.ts.map +1 -1
  47. package/dist/src/api/modules/admin/admin.module.d.ts +161 -8
  48. package/dist/src/api/modules/admin/admin.module.d.ts.map +1 -1
  49. package/dist/src/api/modules/admin/admin.module.js +3 -1
  50. package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts +159 -0
  51. package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts.map +1 -0
  52. package/dist/src/api/modules/admin/debug/debug.admin.module.js +10 -0
  53. package/dist/src/api/modules/admin/debug/routes/logs.route.d.ts +160 -0
  54. package/dist/src/api/modules/admin/debug/routes/logs.route.d.ts.map +1 -0
  55. package/dist/src/api/modules/admin/debug/routes/logs.route.js +70 -0
  56. package/dist/src/api/modules/admin/routes/session.route.d.ts +1 -5
  57. package/dist/src/api/modules/admin/routes/session.route.d.ts.map +1 -1
  58. package/dist/src/api/modules/admin/routes/session.route.js +0 -4
  59. package/dist/src/api/modules/admin/users/routes/list.route.d.ts +1 -1
  60. package/dist/src/api/modules/admin/users/routes/users.route.d.ts +1 -1
  61. package/dist/src/api/modules/admin/users/users.admin.module.d.ts +1 -1
  62. package/dist/src/api/modules/middleware/middleware.module.d.ts +1 -1
  63. package/dist/src/api/modules/middleware/route.d.ts +1 -1
  64. package/dist/src/api/modules/middleware/route.d.ts.map +1 -1
  65. package/dist/src/api/modules/middleware/route.js +2 -4
  66. package/dist/src/api/modules/users/routes/session.route.d.ts +1 -1
  67. package/dist/src/api/modules/users/routes/sign-in.route.d.ts +1 -1
  68. package/dist/src/api/modules/users/routes/sign-out.route.d.ts +1 -1
  69. package/dist/src/api/modules/users/routes/sign-up.route.d.ts +1 -1
  70. package/dist/src/api/modules/users/routes/test.route.d.ts +1 -1
  71. package/dist/src/api/modules/users/routes/test.route.d.ts.map +1 -1
  72. package/dist/src/api/modules/users/routes/test.route.js +8 -0
  73. package/dist/src/api/modules/users/sso/routes/callback.route.d.ts +1 -1
  74. package/dist/src/api/modules/users/sso/routes/create-url.route.d.ts +1 -1
  75. package/dist/src/api/modules/users/sso/sso.module.d.ts +2 -2
  76. package/dist/src/api/modules/users/users.module.d.ts +7 -7
  77. package/dist/src/app_admin/core/debug/page.d.ts +11 -0
  78. package/dist/src/app_admin/core/debug/page.d.ts.map +1 -0
  79. package/dist/src/app_admin/core/debug/page.js +44 -0
  80. package/dist/src/app_admin/core/users/page.d.ts +4 -1
  81. package/dist/src/app_admin/core/users/page.d.ts.map +1 -1
  82. package/dist/src/app_admin/core/users/page.js +3 -1
  83. package/dist/src/components/confirm-action/confirm-action-alert-dialog.d.ts +15 -0
  84. package/dist/src/components/confirm-action/confirm-action-alert-dialog.d.ts.map +1 -0
  85. package/dist/src/components/confirm-action/confirm-action-alert-dialog.js +41 -0
  86. package/dist/src/components/confirm-action/content.d.ts +7 -0
  87. package/dist/src/components/confirm-action/content.d.ts.map +1 -0
  88. package/dist/src/components/confirm-action/content.js +31 -0
  89. package/dist/src/components/date-format.d.ts +2 -1
  90. package/dist/src/components/date-format.d.ts.map +1 -1
  91. package/dist/src/components/date-format.js +4 -1
  92. package/dist/src/components/switchers/langs/language-swietcher.d.ts +5 -0
  93. package/dist/src/components/switchers/langs/language-swietcher.d.ts.map +1 -0
  94. package/dist/src/components/switchers/langs/language-swietcher.js +45 -0
  95. package/dist/src/components/switchers/themes/theme-switcher.d.ts.map +1 -0
  96. package/dist/src/components/switchers/{theme-switcher.js → themes/theme-switcher.js} +1 -1
  97. package/dist/src/components/table/data-table.d.ts.map +1 -1
  98. package/dist/src/components/table/data-table.js +2 -7
  99. package/dist/src/components/ui/alert-dialog.d.ts +7 -2
  100. package/dist/src/components/ui/alert-dialog.d.ts.map +1 -1
  101. package/dist/src/components/ui/alert-dialog.js +39 -5
  102. package/dist/src/database/logs.d.ts +116 -0
  103. package/dist/src/database/logs.d.ts.map +1 -0
  104. package/dist/src/database/logs.js +18 -0
  105. package/dist/src/database/sessions.d.ts +19 -0
  106. package/dist/src/database/sessions.d.ts.map +1 -1
  107. package/dist/src/database/sessions.js +3 -0
  108. package/dist/src/lib/fetcher/core.d.ts +2 -1
  109. package/dist/src/lib/fetcher/core.d.ts.map +1 -1
  110. package/dist/src/lib/fetcher/core.js +2 -2
  111. package/dist/src/lib/fetcher-client.d.ts +2 -1
  112. package/dist/src/lib/fetcher-client.d.ts.map +1 -1
  113. package/dist/src/lib/fetcher-client.js +3 -2
  114. package/dist/src/lib/fetcher.d.ts +2 -1
  115. package/dist/src/lib/fetcher.d.ts.map +1 -1
  116. package/dist/src/lib/fetcher.js +2 -1
  117. package/dist/src/views/admin/layouts/admin-layout.d.ts.map +1 -1
  118. package/dist/src/views/admin/layouts/admin-layout.js +5 -1
  119. package/dist/src/views/admin/layouts/user-bar/client.d.ts.map +1 -1
  120. package/dist/src/views/admin/layouts/user-bar/client.js +26 -18
  121. package/dist/src/views/admin/views/core/debug/actions/clear-cache/clear-cache.d.ts +2 -0
  122. package/dist/src/views/admin/views/core/debug/actions/clear-cache/clear-cache.d.ts.map +1 -0
  123. package/dist/src/views/admin/views/core/debug/actions/clear-cache/clear-cache.js +35 -0
  124. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.d.ts +2 -0
  125. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.d.ts.map +1 -0
  126. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.js +5 -0
  127. package/dist/src/views/admin/views/core/debug/debug-admin-view.d.ts +4 -0
  128. package/dist/src/views/admin/views/core/debug/debug-admin-view.d.ts.map +1 -0
  129. package/dist/src/views/admin/views/core/debug/debug-admin-view.js +110 -0
  130. package/dist/src/views/auth/sso/buttons/sso-buttons.d.ts +1 -1
  131. package/dist/src/views/auth/sso/buttons/sso-buttons.d.ts.map +1 -1
  132. package/dist/src/views/auth/sso/buttons/sso-buttons.js +5 -2
  133. package/dist/src/views/layouts/theme/header/header.d.ts +4 -1
  134. package/dist/src/views/layouts/theme/header/header.d.ts.map +1 -1
  135. package/dist/src/views/layouts/theme/header/header.js +8 -4
  136. package/dist/src/views/layouts/theme/layout.d.ts +3 -1
  137. package/dist/src/views/layouts/theme/layout.d.ts.map +1 -1
  138. package/dist/src/views/layouts/theme/layout.js +4 -3
  139. package/dist/src/vitnode.config.d.ts +11 -5
  140. package/dist/src/vitnode.config.d.ts.map +1 -1
  141. package/dist/src/vitnode.config.js +2 -1
  142. package/dist/tsconfig.tsbuildinfo +1 -1
  143. package/package.json +39 -22
  144. package/src/app_admin/core/debug/page.tsx +43 -0
  145. package/src/app_admin/core/users/page.tsx +6 -1
  146. package/src/locales/en.json +35 -1
  147. package/src/vitnode.config.ts +16 -6
  148. package/dist/src/api/lib/get-user-ip.d.ts +0 -3
  149. package/dist/src/api/lib/get-user-ip.d.ts.map +0 -1
  150. package/dist/src/api/lib/get-user-ip.js +0 -8
  151. package/dist/src/api/middlewares/global/global.d.ts.map +0 -1
  152. package/dist/src/api/middlewares/global/global.js +0 -47
  153. package/dist/src/api/plugins/email/nodemailer.d.ts.map +0 -1
  154. package/dist/src/api/plugins/email/resend.d.ts.map +0 -1
  155. package/dist/src/api/plugins/sso/discord.d.ts.map +0 -1
  156. package/dist/src/api/plugins/sso/facebook.d.ts.map +0 -1
  157. package/dist/src/api/plugins/sso/google.d.ts.map +0 -1
  158. package/dist/src/components/switchers/theme-switcher.d.ts.map +0 -1
  159. /package/dist/src/api/{plugins → adapters}/sso/discord.d.ts +0 -0
  160. /package/dist/src/api/{plugins → adapters}/sso/discord.js +0 -0
  161. /package/dist/src/api/{plugins → adapters}/sso/facebook.d.ts +0 -0
  162. /package/dist/src/api/{plugins → adapters}/sso/facebook.js +0 -0
  163. /package/dist/src/api/{plugins → adapters}/sso/google.d.ts +0 -0
  164. /package/dist/src/api/{plugins → adapters}/sso/google.js +0 -0
  165. /package/dist/src/components/switchers/{theme-switcher.d.ts → themes/theme-switcher.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../scripts/plugin.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,aAAa,GAAI,iBAAiB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,SAiKrE,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../scripts/plugin.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,aAAa,GAAI,iBAAiB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,SAuKrE,CAAC"}
@@ -3,15 +3,8 @@ import 'tsx/esm';
3
3
  import { createRequire } from 'module';
4
4
  const require = createRequire(import.meta.url);
5
5
 
6
- import{stat as ca}from"fs";import{stat as ua,readdir as ma}from"fs/promises";import{EventEmitter as fa}from"events";import*as P from"path";import{stat as Lo,lstat as xs,readdir as Io,realpath as jo}from"fs/promises";import{Readable as zo}from"stream";import{resolve as _s,relative as Oo,join as Qo,sep as Ro}from"path";var re={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},lr={root:".",fileFilter:r=>!0,directoryFilter:r=>!0,type:re.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(lr);var Ps="READDIRP_RECURSIVE_ERROR",ko=new Set(["ENOENT","EPERM","EACCES","ELOOP",Ps]),Ns=[re.DIR_TYPE,re.EVERYTHING_TYPE,re.FILE_DIR_TYPE,re.FILE_TYPE],Bo=new Set([re.DIR_TYPE,re.EVERYTHING_TYPE,re.FILE_DIR_TYPE]),Ko=new Set([re.EVERYTHING_TYPE,re.FILE_DIR_TYPE,re.FILE_TYPE]),Vo=r=>ko.has(r.code),Mo=process.platform==="win32",Cs=r=>!0,vs=r=>{if(r===void 0)return Cs;if(typeof r=="function")return r;if(typeof r=="string"){let e=r.trim();return t=>t.basename===e}if(Array.isArray(r)){let e=r.map(t=>t.trim());return t=>e.some(i=>t.basename===i)}return Cs},cr=class extends zo{constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let t={...lr,...e},{root:i,type:s}=t;this._fileFilter=vs(t.fileFilter),this._directoryFilter=vs(t.directoryFilter);let n=t.lstat?xs:Lo;Mo?this._stat=o=>n(o,{bigint:!0}):this._stat=n,this._maxDepth=t.depth??lr.depth,this._wantsDir=s?Bo.has(s):!1,this._wantsFile=s?Ko.has(s):!1,this._wantsEverything=s===re.EVERYTHING_TYPE,this._root=_s(i),this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(i,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,i=t&&t.files;if(i&&i.length>0){let{path:s,depth:n}=t,o=i.splice(0,e).map(m=>this._formatEntry(m,s)),a=await Promise.all(o);for(let m of a){if(!m)continue;if(this.destroyed)return;let f=await this._getEntryType(m);f==="directory"&&this._directoryFilter(m)?(n<=this._maxDepth&&this.parents.push(this._exploreDir(m.fullPath,n+1)),this._wantsDir&&(this.push(m),e--)):(f==="file"||this._includeAsFile(m))&&this._fileFilter(m)&&this._wantsFile&&(this.push(m),e--)}}else{let s=this.parents.pop();if(!s){this.push(null);break}if(this.parent=await s,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(e,t){let i;try{i=await Io(e,this._rdOptions)}catch(s){this._onError(s)}return{files:i,depth:t,path:e}}async _formatEntry(e,t){let i,s=this._isDirent?e.name:e;try{let n=_s(Qo(t,s));i={path:Oo(this._root,n),fullPath:n,basename:s},i[this._statsProp]=this._isDirent?e:await this._stat(n)}catch(n){this._onError(n);return}return i}_onError(e){Vo(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return"";let t=e[this._statsProp];if(t.isFile())return"file";if(t.isDirectory())return"directory";if(t&&t.isSymbolicLink()){let i=e.fullPath;try{let s=await jo(i),n=await xs(s);if(n.isFile())return"file";if(n.isDirectory()){let o=s.length;if(i.startsWith(s)&&i.substr(o,1)===Ro){let a=new Error(`Circular symlink detected: "${i}" points to "${s}"`);return a.code=Ps,this._onError(a)}return"directory"}}catch(s){return this._onError(s),""}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}};function Ts(r,e={}){let t=e.entryType||e.type;if(t==="both"&&(t=re.FILE_DIR_TYPE),t&&(e.type=t),r){if(typeof r!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(t&&!Ns.includes(t))throw new Error(`readdirp: Invalid type passed. Use one of ${Ns.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=r,new cr(e)}import{watchFile as Wo,unwatchFile as $s,watch as Uo}from"fs";import{open as Jo,stat as Es,lstat as Ho,realpath as ur}from"fs/promises";import*as L from"path";import{type as Yo}from"os";var Go="data",dr="end",As="close",_t=()=>{};var Nt=process.platform,hr=Nt==="win32",Zo=Nt==="darwin",Xo=Nt==="linux",ea=Nt==="freebsd",Fs=Yo()==="OS400",j={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},se=j,ta="watch",ra={lstat:Ho,stat:Es},Ne="listeners",wt="errHandlers",Ee="rawEmitters",ia=[Ne,wt,Ee],sa=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),na=r=>sa.has(L.extname(r).slice(1).toLowerCase()),fr=(r,e)=>{r instanceof Set?r.forEach(e):e(r)},ke=(r,e,t)=>{let i=r[e];i instanceof Set||(r[e]=i=new Set([i])),i.add(t)},oa=r=>e=>{let t=r[e];t instanceof Set?t.clear():delete r[e]},Be=(r,e,t)=>{let i=r[e];i instanceof Set?i.delete(t):i===t&&delete r[e]},qs=r=>r instanceof Set?r.size===0:!r,bt=new Map;function Ds(r,e,t,i,s){let n=(o,a)=>{t(r),s(o,a,{watchedPath:r}),a&&r!==a&&St(L.resolve(r,a),Ne,L.join(r,a))};try{return Uo(r,{persistent:e.persistent},n)}catch(o){i(o);return}}var St=(r,e,t,i,s)=>{let n=bt.get(r);n&&fr(n[e],o=>{o(t,i,s)})},aa=(r,e,t,i)=>{let{listener:s,errHandler:n,rawEmitter:o}=i,a=bt.get(e),m;if(!t.persistent)return m=Ds(r,t,s,n,o),m?m.close.bind(m):void 0;if(a)ke(a,Ne,s),ke(a,wt,n),ke(a,Ee,o);else{if(m=Ds(r,t,St.bind(null,e,Ne),n,St.bind(null,e,Ee)),!m)return;m.on(se.ERROR,async f=>{let u=St.bind(null,e,wt);if(a&&(a.watcherUnusable=!0),hr&&f.code==="EPERM")try{await(await Jo(r,"r")).close(),u(f)}catch{}else u(f)}),a={listeners:s,errHandlers:n,rawEmitters:o,watcher:m},bt.set(e,a)}return()=>{Be(a,Ne,s),Be(a,wt,n),Be(a,Ee,o),qs(a.listeners)&&(a.watcher.close(),bt.delete(e),ia.forEach(oa(a)),a.watcher=void 0,Object.freeze(a))}},mr=new Map,la=(r,e,t,i)=>{let{listener:s,rawEmitter:n}=i,o=mr.get(e),a=o&&o.options;return a&&(a.persistent<t.persistent||a.interval>t.interval)&&($s(e),o=void 0),o?(ke(o,Ne,s),ke(o,Ee,n)):(o={listeners:s,rawEmitters:n,options:t,watcher:Wo(e,t,(m,f)=>{fr(o.rawEmitters,h=>{h(se.CHANGE,e,{curr:m,prev:f})});let u=m.mtimeMs;(m.size!==f.size||u>f.mtimeMs||u===0)&&fr(o.listeners,h=>h(r,m))})},mr.set(e,o)),()=>{Be(o,Ne,s),Be(o,Ee,n),qs(o.listeners)&&(mr.delete(e),$s(e),o.options=o.watcher=void 0,Object.freeze(o))}},xt=class{constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let i=this.fsw.options,s=L.dirname(e),n=L.basename(e);this.fsw._getWatchedDir(s).add(n);let a=L.resolve(e),m={persistent:i.persistent};t||(t=_t);let f;if(i.usePolling){let u=i.interval!==i.binaryInterval;m.interval=u&&na(n)?i.binaryInterval:i.interval,f=la(e,a,m,{listener:t,rawEmitter:this.fsw._emitRaw})}else f=aa(e,a,m,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return f}_handleFile(e,t,i){if(this.fsw.closed)return;let s=L.dirname(e),n=L.basename(e),o=this.fsw._getWatchedDir(s),a=t;if(o.has(n))return;let m=async(u,h)=>{if(this.fsw._throttle(ta,e,5)){if(!h||h.mtimeMs===0)try{let p=await Es(e);if(this.fsw.closed)return;let x=p.atimeMs,_=p.mtimeMs;if((!x||x<=_||_!==a.mtimeMs)&&this.fsw._emit(se.CHANGE,e,p),(Zo||Xo||ea)&&a.ino!==p.ino){this.fsw._closeFile(u),a=p;let C=this._watchWithNodeFs(e,m);C&&this.fsw._addPathCloser(u,C)}else a=p}catch{this.fsw._remove(s,n)}else if(o.has(n)){let p=h.atimeMs,x=h.mtimeMs;(!p||p<=x||x!==a.mtimeMs)&&this.fsw._emit(se.CHANGE,e,h),a=h}}},f=this._watchWithNodeFs(e,m);if(!(i&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(se.ADD,e,0))return;this.fsw._emit(se.ADD,e,t)}return f}async _handleSymlink(e,t,i,s){if(this.fsw.closed)return;let n=e.fullPath,o=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let a;try{a=await ur(i)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(o.has(s)?this.fsw._symlinkPaths.get(n)!==a&&(this.fsw._symlinkPaths.set(n,a),this.fsw._emit(se.CHANGE,i,e.stats)):(o.add(s),this.fsw._symlinkPaths.set(n,a),this.fsw._emit(se.ADD,i,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(n))return!0;this.fsw._symlinkPaths.set(n,!0)}_handleRead(e,t,i,s,n,o,a){if(e=L.join(e,""),a=this.fsw._throttle("readdir",e,1e3),!a)return;let m=this.fsw._getWatchedDir(i.path),f=new Set,u=this.fsw._readdirp(e,{fileFilter:h=>i.filterPath(h),directoryFilter:h=>i.filterDir(h)});if(u)return u.on(Go,async h=>{if(this.fsw.closed){u=void 0;return}let p=h.path,x=L.join(e,p);if(f.add(p),!(h.stats.isSymbolicLink()&&await this._handleSymlink(h,e,x,p))){if(this.fsw.closed){u=void 0;return}(p===s||!s&&!m.has(p))&&(this.fsw._incrReadyCount(),x=L.join(n,L.relative(n,x)),this._addToNodeFs(x,t,i,o+1))}}).on(se.ERROR,this._boundHandleError),new Promise((h,p)=>{if(!u)return p();u.once(dr,()=>{if(this.fsw.closed){u=void 0;return}let x=a?a.clear():!1;h(void 0),m.getChildren().filter(_=>_!==e&&!f.has(_)).forEach(_=>{this.fsw._remove(e,_)}),u=void 0,x&&this._handleRead(e,!1,i,s,n,o,a)})})}async _handleDir(e,t,i,s,n,o,a){let m=this.fsw._getWatchedDir(L.dirname(e)),f=m.has(L.basename(e));!(i&&this.fsw.options.ignoreInitial)&&!n&&!f&&this.fsw._emit(se.ADD_DIR,e,t),m.add(L.basename(e)),this.fsw._getWatchedDir(e);let u,h,p=this.fsw.options.depth;if((p==null||s<=p)&&!this.fsw._symlinkPaths.has(a)){if(!n&&(await this._handleRead(e,i,o,n,e,s,u),this.fsw.closed))return;h=this._watchWithNodeFs(e,(x,_)=>{_&&_.mtimeMs===0||this._handleRead(x,!1,o,n,e,s,u)})}return h}async _addToNodeFs(e,t,i,s,n){let o=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return o(),!1;let a=this.fsw._getWatchHelpers(e);i&&(a.filterPath=m=>i.filterPath(m),a.filterDir=m=>i.filterDir(m));try{let m=await ra[a.statMethod](a.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(a.watchPath,m))return o(),!1;let f=this.fsw.options.followSymlinks,u;if(m.isDirectory()){let h=L.resolve(e),p=f?await ur(e):e;if(this.fsw.closed||(u=await this._handleDir(a.watchPath,m,t,s,n,a,p),this.fsw.closed))return;h!==p&&p!==void 0&&this.fsw._symlinkPaths.set(h,p)}else if(m.isSymbolicLink()){let h=f?await ur(e):e;if(this.fsw.closed)return;let p=L.dirname(a.watchPath);if(this.fsw._getWatchedDir(p).add(a.watchPath),this.fsw._emit(se.ADD,a.watchPath,m),u=await this._handleDir(p,m,t,s,e,a,h),this.fsw.closed)return;h!==void 0&&this.fsw._symlinkPaths.set(L.resolve(e),h)}else u=this._handleFile(a.watchPath,m,t);return o(),u&&this.fsw._addPathCloser(e,u),!1}catch(m){if(this.fsw._handleError(m))return o(),e}}};var pr="/",da="//",Qs=".",ha="..",pa="string",ga=/\\/g,Ls=/\/\//,ya=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,wa=/^\.[/\\]/;function Ct(r){return Array.isArray(r)?r:[r]}var gr=r=>typeof r=="object"&&r!==null&&!(r instanceof RegExp);function ba(r){return typeof r=="function"?r:typeof r=="string"?e=>r===e:r instanceof RegExp?e=>r.test(e):typeof r=="object"&&r!==null?e=>{if(r.path===e)return!0;if(r.recursive){let t=P.relative(r.path,e);return t?!t.startsWith("..")&&!P.isAbsolute(t):!1}return!1}:()=>!1}function Sa(r){if(typeof r!="string")throw new Error("string expected");r=P.normalize(r),r=r.replace(/\\/g,"/");let e=!1;r.startsWith("//")&&(e=!0);let t=/\/\//;for(;r.match(t);)r=r.replace(t,"/");return e&&(r="/"+r),r}function Is(r,e,t){let i=Sa(e);for(let s=0;s<r.length;s++){let n=r[s];if(n(i,t))return!0}return!1}function xa(r,e){if(r==null)throw new TypeError("anymatch: specify first argument");let i=Ct(r).map(s=>ba(s));return e==null?(s,n)=>Is(i,s,n):Is(i,e)}var js=r=>{let e=Ct(r).flat();if(!e.every(t=>typeof t===pa))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(Rs)},zs=r=>{let e=r.replace(ga,pr),t=!1;for(e.startsWith(da)&&(t=!0);e.match(Ls);)e=e.replace(Ls,pr);return t&&(e=pr+e),e},Rs=r=>zs(P.normalize(zs(r))),Os=(r="")=>e=>typeof e=="string"?Rs(P.isAbsolute(e)?e:P.join(r,e)):e,_a=(r,e)=>P.isAbsolute(r)?r:P.join(e,r),Na=Object.freeze(new Set),yr=class{constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==Qs&&e!==ha&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let i=this.path;try{await ma(i)}catch{this._removeWatcher&&this._removeWatcher(P.dirname(i),P.basename(i))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=_t,this.items=Na,Object.freeze(this)}},Ca="stat",va="lstat",wr=class{constructor(e,t,i){this.fsw=i;let s=e;this.path=e=e.replace(wa,""),this.watchPath=s,this.fullWatchPath=P.resolve(s),this.dirParts=[],this.dirParts.forEach(n=>{n.length>1&&n.pop()}),this.followSymlinks=t,this.statMethod=t?Ca:va}entryPath(e){return P.join(this.watchPath,P.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let i=this.entryPath(e);return this.fsw._isntIgnored(i,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},vt=class extends fa{constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,i={stabilityThreshold:2e3,pollInterval:100},s={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?Ct(e.ignored):Ct([]),awaitWriteFinish:t===!0?i:typeof t=="object"?{...i,...t}:!1};Fs&&(s.usePolling=!0),s.atomic===void 0&&(s.atomic=!s.usePolling);let n=process.env.CHOKIDAR_USEPOLLING;if(n!==void 0){let m=n.toLowerCase();m==="false"||m==="0"?s.usePolling=!1:m==="true"||m==="1"?s.usePolling=!0:s.usePolling=!!m}let o=process.env.CHOKIDAR_INTERVAL;o&&(s.interval=Number.parseInt(o,10));let a=0;this._emitReady=()=>{a++,a>=this._readyCount&&(this._emitReady=_t,this._readyEmitted=!0,process.nextTick(()=>this.emit(j.READY)))},this._emitRaw=(...m)=>this.emit(j.RAW,...m),this._boundRemove=this._remove.bind(this),this.options=s,this._nodeFsHandler=new xt(this),Object.freeze(s)}_addIgnoredPath(e){if(gr(e)){for(let t of this._ignoredPaths)if(gr(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e=="string")for(let t of this._ignoredPaths)gr(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,i){let{cwd:s}=this.options;this.closed=!1,this._closePromise=void 0;let n=js(e);return s&&(n=n.map(o=>_a(o,s))),n.forEach(o=>{this._removeIgnoredPath(o)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=n.length,Promise.all(n.map(async o=>{let a=await this._nodeFsHandler._addToNodeFs(o,!i,void 0,0,t);return a&&this._emitReady(),a})).then(o=>{this.closed||o.forEach(a=>{a&&this.add(P.dirname(a),P.basename(t||a))})}),this}unwatch(e){if(this.closed)return this;let t=js(e),{cwd:i}=this.options;return t.forEach(s=>{!P.isAbsolute(s)&&!this._closers.has(s)&&(i&&(s=P.join(i,s)),s=P.resolve(s)),this._closePath(s),this._addIgnoredPath(s),this._watched.has(s)&&this._addIgnoredPath({path:s,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(i=>{let s=i();s instanceof Promise&&e.push(s)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,i)=>{let n=(this.options.cwd?P.relative(this.options.cwd,i):i)||Qs;e[n]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==j.ERROR&&this.emit(j.ALL,e,...t)}async _emit(e,t,i){if(this.closed)return;let s=this.options;hr&&(t=P.normalize(t)),s.cwd&&(t=P.relative(s.cwd,t));let n=[t];i!=null&&n.push(i);let o=s.awaitWriteFinish,a;if(o&&(a=this._pendingWrites.get(t)))return a.lastChange=new Date,this;if(s.atomic){if(e===j.UNLINK)return this._pendingUnlinks.set(t,[e,...n]),setTimeout(()=>{this._pendingUnlinks.forEach((m,f)=>{this.emit(...m),this.emit(j.ALL,...m),this._pendingUnlinks.delete(f)})},typeof s.atomic=="number"?s.atomic:100),this;e===j.ADD&&this._pendingUnlinks.has(t)&&(e=j.CHANGE,this._pendingUnlinks.delete(t))}if(o&&(e===j.ADD||e===j.CHANGE)&&this._readyEmitted){let m=(f,u)=>{f?(e=j.ERROR,n[0]=f,this.emitWithAll(e,n)):u&&(n.length>1?n[1]=u:n.push(u),this.emitWithAll(e,n))};return this._awaitWriteFinish(t,o.stabilityThreshold,e,m),this}if(e===j.CHANGE&&!this._throttle(j.CHANGE,t,50))return this;if(s.alwaysStat&&i===void 0&&(e===j.ADD||e===j.ADD_DIR||e===j.CHANGE)){let m=s.cwd?P.join(s.cwd,t):t,f;try{f=await ua(m)}catch{}if(!f||this.closed)return;n.push(f)}return this.emitWithAll(e,n),this}_handleError(e){let t=e&&e.code;return e&&t!=="ENOENT"&&t!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||t!=="EPERM"&&t!=="EACCES")&&this.emit(j.ERROR,e),e||this.closed}_throttle(e,t,i){this._throttled.has(e)||this._throttled.set(e,new Map);let s=this._throttled.get(e);if(!s)throw new Error("invalid throttle");let n=s.get(t);if(n)return n.count++,!1;let o,a=()=>{let f=s.get(t),u=f?f.count:0;return s.delete(t),clearTimeout(o),f&&clearTimeout(f.timeoutObject),u};o=setTimeout(a,i);let m={timeoutObject:o,clear:a,count:0};return s.set(t,m),m}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,i,s){let n=this.options.awaitWriteFinish;if(typeof n!="object")return;let o=n.pollInterval,a,m=e;this.options.cwd&&!P.isAbsolute(e)&&(m=P.join(this.options.cwd,e));let f=new Date,u=this._pendingWrites;function h(p){ca(m,(x,_)=>{if(x||!u.has(e)){x&&x.code!=="ENOENT"&&s(x);return}let C=Number(new Date);p&&_.size!==p.size&&(u.get(e).lastChange=C);let q=u.get(e);C-q.lastChange>=t?(u.delete(e),s(void 0,_)):a=setTimeout(h,o,_)})}u.has(e)||(u.set(e,{lastChange:f,cancelWait:()=>(u.delete(e),clearTimeout(a),i)}),a=setTimeout(h,o))}_isIgnored(e,t){if(this.options.atomic&&ya.test(e))return!0;if(!this._userIgnored){let{cwd:i}=this.options,n=(this.options.ignored||[]).map(Os(i)),a=[...[...this._ignoredPaths].map(Os(i)),...n];this._userIgnored=xa(a,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new wr(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=P.resolve(e);return this._watched.has(t)||this._watched.set(t,new yr(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,t,i){let s=P.join(e,t),n=P.resolve(s);if(i=i??(this._watched.has(s)||this._watched.has(n)),!this._throttle("remove",s,100))return;!i&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(s).getChildren().forEach(p=>this._remove(s,p));let m=this._getWatchedDir(e),f=m.has(t);m.remove(t),this._symlinkPaths.has(n)&&this._symlinkPaths.delete(n);let u=s;if(this.options.cwd&&(u=P.relative(this.options.cwd,s)),this.options.awaitWriteFinish&&this._pendingWrites.has(u)&&this._pendingWrites.get(u).cancelWait()===j.ADD)return;this._watched.delete(s),this._watched.delete(n);let h=i?j.UNLINK_DIR:j.UNLINK;f&&!this._isIgnored(s)&&this._emit(h,s),this._closePath(s)}_closePath(e){this._closeFile(e);let t=P.dirname(e);this._getWatchedDir(t).remove(P.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(i=>i()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let i=this._closers.get(e);i||(i=[],this._closers.set(e,i)),i.push(t)}_readdirp(e,t){if(this.closed)return;let i={type:j.ALL,alwaysStat:!0,lstat:!0,...t,depth:0},s=Ts(e,i);return this._streams.add(s),s.once(As,()=>{s=void 0}),s.once(dr,()=>{s&&(this._streams.delete(s),s=void 0)}),s}};function Pa(r,e={}){let t=new vt(e);return t.add(r),t}var ks={watch:Pa,FSWatcher:vt};import{existsSync as Ce,mkdirSync as za,readFileSync as Oa,unlinkSync as Qa}from"fs";import{basename as Ws,join as ne,relative as Us}from"path";import{copyFileSync as Ta,existsSync as le,mkdirSync as $a,readdirSync as Vs,readFileSync as Da,writeFileSync as Ea}from"fs";import{basename as Bs,dirname as Pt,extname as Aa,join as he,normalize as Fa,relative as Ae,sep as qa}from"path";var La=/import\s+(?:(?:{[^}]*})|(?:[^{}\s,]*))?\s*(?:,\s*(?:{[^}]*}))?\s*from\s+['"]([./]+[^'"]*)['"]/g,Ia=/import\s+(?:(?:{[^}]*})|(?:[^{}\s,]*))?\s*(?:,\s*(?:{[^}]*}))?\s*from\s+['"](@\/[^'"]*)['"]/g,Ks=/\.(js|jsx|ts|tsx)$/,br=/^page\.(tsx|ts|jsx|js)$/i,Ke=(r,e)=>{let i=Ae(e,r).split(qa);i.pop();let s=i.filter(n=>!n.startsWith("("));return Fa(s.join("/"))},Tt=r=>{let e=new Map,t=i=>{if(le(i))for(let s of Vs(i,{withFileTypes:!0})){let n=he(i,s.name);if(s.isDirectory()){t(n);continue}if(br.test(s.name)){let o=Ke(n,r);e.set(o,n)}}};return t(r),e},ja=(r,e)=>{let t=r.replace(La,(i,s)=>{if(s.startsWith(".")){let o=s.replace(Ks,"").replace(/^(?:\.\.\/)+/,"");return i.replace(s,`${e}/${o}`)}return i});return t=t.replace(Ia,(i,s)=>{let n=s.replace(/^@\//,"").replace(Ks,"");return i.replace(s,`${e}/${n}`)}),t};function $t(r){let e=r;for(;e!==Pt(e);){if(le(he(e,"turbo.json"))||le(he(e,".git")))return e;e=Pt(e)}let t=he(r,"package.json");if(le(t))return Pt(t);throw new Error("\u274C Could not locate project root")}function Dt(r){let e=he(r,"src","app","[locale]");if(le(e))return e;let t=he(r,"apps","web","src","app","[locale]");return le(t),t}var Ve=r=>{let e=[];if(!le(r))return e;let t=Vs(r,{withFileTypes:!0});for(let i of t){let s=he(r,i.name);i.isDirectory()?e.push(...Ve(s)):e.push(s)}return e},Me=r=>le(r)?Ve(r).length===0:!0,Sr=(r,e,t,i,s,n,o=!0)=>{let a=Bs(r);if(br.test(a)){let m=Ke(e,s),f=i.get(m);if(f&&f!==e){o&&console.log(`\x1B[31mSkipped duplicate page:\x1B[0m ${Ae(n,e)} (collides with ${Ae(n,f)})`);return}}try{let m=Pt(e);le(m)||$a(m,{recursive:!0});let f=Aa(r);if(t&&[".js",".jsx",".ts",".tsx"].includes(f)){let u=Da(r,"utf-8"),h=ja(u,t);Ea(e,h)}else Ta(r,e);if(o){let u=r.indexOf(he("src","app")),h=u!==-1?r.substring(u):r.startsWith(n)?Ae(n,r):r,p=e.startsWith(n)?Ae(n,e):e;console.log(`\x1B[32mCopied:\x1B[0m ${h} \u2192 ${p}`)}if(br.test(Bs(e))){let u=Ke(e,s);i.set(u,e)}}catch(m){console.error(`\x1B[31mError copying file:\x1B[0m ${r}`,m)}},Ms=(r,e,t,i,s,n,o=!0)=>{if(!le(r)||Me(r))return;let a=Ve(r);for(let m of a){let f=Ae(r,m),u=he(e,f);Sr(m,u,t,i,s,n,o)}};var Js=({initMessage:r})=>{let e=process.cwd(),t=$t(e),i=Dt(t),s=Tt(i),n=Ws(e);try{let w=ne(e,"package.json");Ce(w)&&(n=JSON.parse(Oa(w,"utf-8")).name??"")}catch(w){console.error("\x1B[31mError reading package.json:\x1B[0m",w);return}let o=n.replace(/\//g,"-").replace(/@/g,""),a=ne(t,"apps","web","src","app","[locale]","(main)",ne("(plugins)",`(${o})`)),m=ne(t,"apps","web","src","app","[locale]","admin","(auth)",ne("(plugins)",`(${o})`)),f=ne(t,"apps","web","src","locales",n),u=[{sourceDir:ne(e,"src","app_admin"),destinationDir:m},{sourceDir:ne(e,"src","app"),destinationDir:a},{sourceDir:ne(e,"src","locales"),destinationDir:f}];for(let{sourceDir:w,destinationDir:N}of u)Ce(w)&&!Me(w)&&!Ce(N)&&za(N,{recursive:!0});let h=(w,N)=>{Sr(w,N,n,s,i,t)},p=w=>{try{if(Ce(w)&&(Qa(w),console.log(`\x1B[33mRemoved:\x1B[0m ${w}`),/^page\.(tsx|ts|jsx|js)$/i.test(Ws(w)))){let N=Ke(w,i);s.get(N)===w&&s.delete(N)}}catch(N){console.error(`\x1B[31mError removing file:\x1B[0m ${w}`,N)}},x=(w,N)=>{if(!Ce(N))return;let R=Ve(N);for(let I of R){let J=Us(N,I),Q=ne(w,J);Ce(Q)||p(I)}};for(let{sourceDir:w,destinationDir:N}of u)x(w,N);console.log(`${r} \x1B[34mWatching for changes in plugins...\x1B[0m`);let _=u.map(w=>w.sourceDir).filter(w=>Ce(w)),C=ks.watch(_,{ignoreInitial:!1,persistent:!0}),q=w=>{let N=u.filter(({sourceDir:J})=>w.startsWith(J));if(N.length===0)throw new Error(`No matching source directory for: ${w}`);let R=N.reduce((J,Q)=>Q.sourceDir.length>J.sourceDir.length?Q:J),I=Us(R.sourceDir,w);return ne(R.destinationDir,I)};C.on("add",w=>{let N=q(w);h(w,N)}).on("change",w=>{let N=q(w);h(w,N)}).on("unlink",w=>{let N=q(w);p(N)}).on("error",w=>{console.error("\x1B[31mWatcher error:\x1B[0m",w)})};import*as $o from"dotenv";var l=Symbol.for("drizzle:entityKind"),ql=Symbol.for("drizzle:hasOwnEntityKind");function d(r,e){if(!r||typeof r!="object")return!1;if(r instanceof e)return!0;if(!Object.prototype.hasOwnProperty.call(e,l))throw new Error(`Class "${e.name??"<unknown>"}" doesn't look like a Drizzle entity. If this is incorrect and the class is provided by Drizzle, please report this as a bug.`);let t=Object.getPrototypeOf(r).constructor;if(t)for(;t;){if(l in t&&t[l]===e[l])return!0;t=Object.getPrototypeOf(t)}return!1}var E=class{constructor(e,t){this.table=e,this.config=t,this.name=t.name,this.keyAsName=t.keyAsName,this.notNull=t.notNull,this.default=t.default,this.defaultFn=t.defaultFn,this.onUpdateFn=t.onUpdateFn,this.hasDefault=t.hasDefault,this.primary=t.primaryKey,this.isUnique=t.isUnique,this.uniqueName=t.uniqueName,this.uniqueType=t.uniqueType,this.dataType=t.dataType,this.columnType=t.columnType,this.generated=t.generated,this.generatedIdentity=t.generatedIdentity}static[l]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(e){return e}mapToDriverValue(e){return e}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}};var Et=class{static[l]="ColumnBuilder";config;constructor(e,t,i){this.config={name:e,keyAsName:e==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:t,columnType:i,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(e){return this.config.default=e,this.config.hasDefault=!0,this}$defaultFn(e){return this.config.defaultFn=e,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(e){return this.config.onUpdateFn=e,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(e){this.config.name===""&&(this.config.name=e)}};var oe=Symbol.for("drizzle:Name");var At=class{static[l]="PgForeignKeyBuilder";reference;_onUpdate="no action";_onDelete="no action";constructor(e,t){this.reference=()=>{let{name:i,columns:s,foreignColumns:n}=e();return{name:i,columns:s,foreignTable:n[0].table,foreignColumns:n}},t&&(this._onUpdate=t.onUpdate,this._onDelete=t.onDelete)}onUpdate(e){return this._onUpdate=e===void 0?"no action":e,this}onDelete(e){return this._onDelete=e===void 0?"no action":e,this}build(e){return new xr(e,this)}},xr=class{constructor(e,t){this.table=e,this.reference=t.reference,this.onUpdate=t._onUpdate,this.onDelete=t._onDelete}static[l]="PgForeignKey";reference;onUpdate;onDelete;getName(){let{name:e,columns:t,foreignColumns:i}=this.reference(),s=t.map(a=>a.name),n=i.map(a=>a.name),o=[this.table[oe],...s,i[0].table[oe],...n];return e??`${o.join("_")}_fk`}};function Ft(r,...e){return r(...e)}function Cr(r,e){return`${r[oe]}_${e.join("_")}_unique`}var _r=class{constructor(e,t){this.name=t,this.columns=e}static[l]="PgUniqueConstraintBuilder";columns;nullsNotDistinctConfig=!1;nullsNotDistinct(){return this.nullsNotDistinctConfig=!0,this}build(e){return new Nr(e,this.columns,this.nullsNotDistinctConfig,this.name)}},Hs=class{static[l]="PgUniqueOnConstraintBuilder";name;constructor(e){this.name=e}on(...e){return new _r(e,this.name)}},Nr=class{constructor(e,t,i,s){this.table=e,this.columns=t,this.name=s??Cr(this.table,this.columns.map(n=>n.name)),this.nullsNotDistinct=i}static[l]="PgUniqueConstraint";columns;name;nullsNotDistinct=!1;getName(){return this.name}};function Ys(r,e,t){for(let i=e;i<r.length;i++){let s=r[i];if(s==="\\"){i++;continue}if(s==='"')return[r.slice(e,i).replace(/\\/g,""),i+1];if(!t&&(s===","||s==="}"))return[r.slice(e,i).replace(/\\/g,""),i]}return[r.slice(e).replace(/\\/g,""),r.length]}function Gs(r,e=0){let t=[],i=e,s=!1;for(;i<r.length;){let n=r[i];if(n===","){(s||i===e)&&t.push(""),s=!0,i++;continue}if(s=!1,n==="\\"){i+=2;continue}if(n==='"'){let[m,f]=Ys(r,i+1,!0);t.push(m),i=f;continue}if(n==="}")return[t,i+1];if(n==="{"){let[m,f]=Gs(r,i+1);t.push(m),i=f;continue}let[o,a]=Ys(r,i,!1);t.push(o),i=a}return[t,i]}function Zs(r){let[e]=Gs(r,1);return e}function vr(r){return`{${r.map(e=>Array.isArray(e)?vr(e):typeof e=="string"?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:`${e}`).join(",")}}`}var S=class extends Et{foreignKeyConfigs=[];static[l]="PgColumnBuilder";array(e){return new Tr(this.config.name,this,e)}references(e,t={}){return this.foreignKeyConfigs.push({ref:e,actions:t}),this}unique(e,t){return this.config.isUnique=!0,this.config.uniqueName=e,this.config.uniqueType=t?.nulls,this}generatedAlwaysAs(e){return this.config.generated={as:e,type:"always",mode:"stored"},this}buildForeignKeys(e,t){return this.foreignKeyConfigs.map(({ref:i,actions:s})=>Ft((n,o)=>{let a=new At(()=>{let m=n();return{columns:[e],foreignColumns:[m]}});return o.onUpdate&&a.onUpdate(o.onUpdate),o.onDelete&&a.onDelete(o.onDelete),a.build(t)},i,s))}buildExtraConfigColumn(e){return new Pr(e,this.config)}},g=class extends E{constructor(e,t){t.uniqueName||(t.uniqueName=Cr(e,[t.name])),super(e,t),this.table=e}static[l]="PgColumn"},Pr=class extends g{static[l]="ExtraConfigColumn";getSQLType(){return this.getSQLType()}indexConfig={order:this.config.order??"asc",nulls:this.config.nulls??"last",opClass:this.config.opClass};defaultConfig={order:"asc",nulls:"last",opClass:void 0};asc(){return this.indexConfig.order="asc",this}desc(){return this.indexConfig.order="desc",this}nullsFirst(){return this.indexConfig.nulls="first",this}nullsLast(){return this.indexConfig.nulls="last",this}op(e){return this.indexConfig.opClass=e,this}},Fe=class{static[l]="IndexedColumn";constructor(e,t,i,s){this.name=e,this.keyAsName=t,this.type=i,this.indexConfig=s}name;keyAsName;type;indexConfig},Tr=class extends S{static[l]="PgArrayBuilder";constructor(e,t,i){super(e,"array","PgArray"),this.config.baseBuilder=t,this.config.size=i}build(e){let t=this.config.baseBuilder.build(e);return new $r(e,this.config,t)}},$r=class r extends g{constructor(e,t,i,s){super(e,t),this.baseColumn=i,this.range=s,this.size=t.size}size;static[l]="PgArray";getSQLType(){return`${this.baseColumn.getSQLType()}[${typeof this.size=="number"?this.size:""}]`}mapFromDriverValue(e){return typeof e=="string"&&(e=Zs(e)),e.map(t=>this.baseColumn.mapFromDriverValue(t))}mapToDriverValue(e,t=!1){let i=e.map(s=>s===null?null:d(this.baseColumn,r)?this.baseColumn.mapToDriverValue(s,!0):this.baseColumn.mapToDriverValue(s));return t?i:vr(i)}};var Xs=class extends S{static[l]="PgEnumObjectColumnBuilder";constructor(e,t){super(e,"string","PgEnumObjectColumn"),this.config.enum=t}build(e){return new Dr(e,this.config)}},Dr=class extends g{static[l]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}},en=Symbol.for("drizzle:isPgEnum");function rn(r){return!!r&&typeof r=="function"&&en in r&&r[en]===!0}var tn=class extends S{static[l]="PgEnumColumnBuilder";constructor(e,t){super(e,"string","PgEnumColumn"),this.config.enum=t}build(e){return new Er(e,this.config)}},Er=class extends g{static[l]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(e,t){super(e,t),this.enum=t.enum}getSQLType(){return this.enum.enumName}};var z=class{static[l]="Subquery";constructor(e,t,i,s=!1,n=[]){this._={brand:"Subquery",sql:e,selectedFields:t,alias:i,isWith:s,usedTables:n}}},qe=class extends z{static[l]="WithSubquery"};var sn="0.44.2";var Ar,Fr,A={startActiveSpan(r,e){return Ar?(Fr||(Fr=Ar.trace.getTracer("drizzle-orm",sn)),Ft((t,i)=>i.startActiveSpan(r,s=>{try{return e(s)}catch(n){throw s.setStatus({code:t.SpanStatusCode.ERROR,message:n instanceof Error?n.message:"Unknown error"}),n}finally{s.end()}}),Ar,Fr)):e()}};var F=Symbol.for("drizzle:ViewBaseConfig");var ve=Symbol.for("drizzle:Schema"),qt=Symbol.for("drizzle:Columns"),nn=Symbol.for("drizzle:ExtraConfigColumns"),qr=Symbol.for("drizzle:OriginalName"),Lr=Symbol.for("drizzle:BaseName"),We=Symbol.for("drizzle:IsAlias"),on=Symbol.for("drizzle:ExtraConfigBuilder"),Ra=Symbol.for("drizzle:IsDrizzleTable"),y=class{static[l]="Table";static Symbol={Name:oe,Schema:ve,OriginalName:qr,Columns:qt,ExtraConfigColumns:nn,BaseName:Lr,IsAlias:We,ExtraConfigBuilder:on};[oe];[qr];[ve];[qt];[nn];[Lr];[We]=!1;[Ra]=!0;[on]=void 0;constructor(e,t,i){this[oe]=this[qr]=e,this[ve]=t,this[Lr]=i}};function Z(r){return r[oe]}function Pe(r){return`${r[ve]??"public"}.${r[oe]}`}var an=class{static[l]="FakePrimitiveParam"};function Ir(r){return r!=null&&typeof r.getSQL=="function"}function ka(r){let e={sql:"",params:[]};for(let t of r)e.sql+=t.sql,e.params.push(...t.params),t.typings?.length&&(e.typings||(e.typings=[]),e.typings.push(...t.typings));return e}var k=class{static[l]="StringChunk";value;constructor(e){this.value=Array.isArray(e)?e:[e]}getSQL(){return new b([this])}},b=class r{constructor(e){this.queryChunks=e;for(let t of e)if(d(t,y)){let i=t[y.Symbol.Schema];this.usedTables.push(i===void 0?t[y.Symbol.Name]:i+"."+t[y.Symbol.Name])}}static[l]="SQL";decoder=cn;shouldInlineParams=!1;usedTables=[];append(e){return this.queryChunks.push(...e.queryChunks),this}toQuery(e){return A.startActiveSpan("drizzle.buildSQL",t=>{let i=this.buildQueryFromSourceParams(this.queryChunks,e);return t?.setAttributes({"drizzle.query.text":i.sql,"drizzle.query.params":JSON.stringify(i.params)}),i})}buildQueryFromSourceParams(e,t){let i=Object.assign({},t,{inlineParams:t.inlineParams||this.shouldInlineParams,paramStartIndex:t.paramStartIndex||{value:0}}),{casing:s,escapeName:n,escapeParam:o,prepareTyping:a,inlineParams:m,paramStartIndex:f}=i;return ka(e.map(u=>{if(d(u,k))return{sql:u.value.join(""),params:[]};if(d(u,Ue))return{sql:n(u.value),params:[]};if(u===void 0)return{sql:"",params:[]};if(Array.isArray(u)){let h=[new k("(")];for(let[p,x]of u.entries())h.push(x),p<u.length-1&&h.push(new k(", "));return h.push(new k(")")),this.buildQueryFromSourceParams(h,i)}if(d(u,r))return this.buildQueryFromSourceParams(u.queryChunks,{...i,inlineParams:m||u.shouldInlineParams});if(d(u,y)){let h=u[y.Symbol.Schema],p=u[y.Symbol.Name];return{sql:h===void 0||u[We]?n(p):n(h)+"."+n(p),params:[]}}if(d(u,E)){let h=s.getColumnCasing(u);if(t.invokeSource==="indexes")return{sql:n(h),params:[]};let p=u.table[y.Symbol.Schema];return{sql:u.table[We]||p===void 0?n(u.table[y.Symbol.Name])+"."+n(h):n(p)+"."+n(u.table[y.Symbol.Name])+"."+n(h),params:[]}}if(d(u,H)){let h=u[F].schema,p=u[F].name;return{sql:h===void 0||u[F].isAlias?n(p):n(h)+"."+n(p),params:[]}}if(d(u,X)){if(d(u.value,pe))return{sql:o(f.value++,u),params:[u],typings:["none"]};let h=u.value===null?null:u.encoder.mapToDriverValue(u.value);if(d(h,r))return this.buildQueryFromSourceParams([h],i);if(m)return{sql:this.mapInlineParam(h,i),params:[]};let p=["none"];return a&&(p=[a(u.encoder)]),{sql:o(f.value++,h),params:[h],typings:p}}return d(u,pe)?{sql:o(f.value++,u),params:[u],typings:["none"]}:d(u,r.Aliased)&&u.fieldAlias!==void 0?{sql:n(u.fieldAlias),params:[]}:d(u,z)?u._.isWith?{sql:n(u._.alias),params:[]}:this.buildQueryFromSourceParams([new k("("),u._.sql,new k(") "),new Ue(u._.alias)],i):rn(u)?u.schema?{sql:n(u.schema)+"."+n(u.enumName),params:[]}:{sql:n(u.enumName),params:[]}:Ir(u)?u.shouldOmitSQLParens?.()?this.buildQueryFromSourceParams([u.getSQL()],i):this.buildQueryFromSourceParams([new k("("),u.getSQL(),new k(")")],i):m?{sql:this.mapInlineParam(u,i),params:[]}:{sql:o(f.value++,u),params:[u],typings:["none"]}}))}mapInlineParam(e,{escapeString:t}){if(e===null)return"null";if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="string")return t(e);if(typeof e=="object"){let i=e.toString();return t(i==="[object Object]"?JSON.stringify(e):i)}throw new Error("Unexpected param value: "+e)}getSQL(){return this}as(e){return e===void 0?this:new r.Aliased(this,e)}mapWith(e){return this.decoder=typeof e=="function"?{mapFromDriverValue:e}:e,this}inlineParams(){return this.shouldInlineParams=!0,this}if(e){return e?this:void 0}},Ue=class{constructor(e){this.value=e}static[l]="Name";brand;getSQL(){return new b([this])}};function ln(r){return typeof r=="object"&&r!==null&&"mapToDriverValue"in r&&typeof r.mapToDriverValue=="function"}var cn={mapFromDriverValue:r=>r},un={mapToDriverValue:r=>r},_c={...cn,...un},X=class{constructor(e,t=un){this.value=e,this.encoder=t}static[l]="Param";brand;getSQL(){return new b([this])}};function c(r,...e){let t=[];(e.length>0||r.length>0&&r[0]!=="")&&t.push(new k(r[0]));for(let[i,s]of e.entries())t.push(s,new k(r[i+1]));return new b(t)}(r=>{function e(){return new b([])}r.empty=e;function t(m){return new b(m)}r.fromList=t;function i(m){return new b([new k(m)])}r.raw=i;function s(m,f){let u=[];for(let[h,p]of m.entries())h>0&&f!==void 0&&u.push(f),u.push(p);return new b(u)}r.join=s;function n(m){return new Ue(m)}r.identifier=n;function o(m){return new pe(m)}r.placeholder=o;function a(m,f){return new X(m,f)}r.param=a})(c||(c={}));(r=>{class e{constructor(i,s){this.sql=i,this.fieldAlias=s}static[l]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new e(this.sql,this.fieldAlias)}}r.Aliased=e})(b||(b={}));var pe=class{constructor(e){this.name=e}static[l]="Placeholder";getSQL(){return new b([this])}};function jr(r,e){return r.map(t=>{if(d(t,pe)){if(!(t.name in e))throw new Error(`No value for placeholder "${t.name}" was provided`);return e[t.name]}if(d(t,X)&&d(t.value,pe)){if(!(t.value.name in e))throw new Error(`No value for placeholder "${t.value.name}" was provided`);return t.encoder.mapToDriverValue(e[t.value.name])}return t})}var Ba=Symbol.for("drizzle:IsDrizzleView"),H=class{static[l]="View";[F];[Ba]=!0;constructor({name:e,schema:t,selectedFields:i,query:s}){this[F]={name:e,originalName:e,schema:t,selectedFields:i,query:s,isExisting:!s,isAlias:!1}}getSQL(){return new b([this])}};E.prototype.getSQL=function(){return new b([this])};y.prototype.getSQL=function(){return new b([this])};z.prototype.getSQL=function(){return new b([this])};var Te=class{constructor(e){this.table=e}static[l]="ColumnAliasProxyHandler";get(e,t){return t==="table"?this.table:e[t]}},Le=class{constructor(e,t){this.alias=e,this.replaceOriginalName=t}static[l]="TableAliasProxyHandler";get(e,t){if(t===y.Symbol.IsAlias)return!0;if(t===y.Symbol.Name)return this.alias;if(this.replaceOriginalName&&t===y.Symbol.OriginalName)return this.alias;if(t===F)return{...e[F],name:this.alias,isAlias:!0};if(t===y.Symbol.Columns){let s=e[y.Symbol.Columns];if(!s)return s;let n={};return Object.keys(s).map(o=>{n[o]=new Proxy(s[o],new Te(new Proxy(e,this)))}),n}let i=e[t];return d(i,E)?new Proxy(i,new Te(new Proxy(e,this))):i}},mn=class{constructor(e){this.alias=e}static[l]="RelationTableAliasProxyHandler";get(e,t){return t==="sourceTable"?Je(e.sourceTable,this.alias):e[t]}};function Je(r,e){return new Proxy(r,new Le(e,!1))}function ce(r,e){return new Proxy(r,new Te(new Proxy(r.table,new Le(e,!1))))}function zr(r,e){return new b.Aliased(He(r.sql,e),r.fieldAlias)}function He(r,e){return c.join(r.queryChunks.map(t=>d(t,E)?ce(t,e):d(t,b)?He(t,e):d(t,b.Aliased)?zr(t,e):t))}var Ye=class extends Error{static[l]="DrizzleError";constructor({message:e,cause:t}){super(e),this.name="DrizzleError",this.cause=t}},Lt=class extends Ye{static[l]="TransactionRollbackError";constructor(){super({message:"Rollback"})}};var Or=class{static[l]="ConsoleLogWriter";write(e){console.log(e)}},It=class{static[l]="DefaultLogger";writer;constructor(e){this.writer=e?.writer??new Or}logQuery(e,t){let i=t.map(n=>{try{return JSON.stringify(n)}catch{return String(n)}}),s=i.length?` -- params: [${i.join(", ")}]`:"";this.writer.write(`Query: ${e}${s}`)}},jt=class{static[l]="NoopLogger";logQuery(){}};var M=class{static[l]="QueryPromise";[Symbol.toStringTag]="QueryPromise";catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}then(e,t){return this.execute().then(e,t)}};function fn(r,e,t){let i={},s=r.reduce((n,{path:o,field:a},m)=>{let f;d(a,E)?f=a:d(a,b)?f=a.decoder:f=a.sql.decoder;let u=n;for(let[h,p]of o.entries())if(h<o.length-1)p in u||(u[p]={}),u=u[p];else{let x=e[m],_=u[p]=x===null?null:f.mapFromDriverValue(x);if(t&&d(a,E)&&o.length===2){let C=o[0];C in i?typeof i[C]=="string"&&i[C]!==Z(a.table)&&(i[C]=!1):i[C]=_===null?Z(a.table):!1}}return n},{});if(t&&Object.keys(i).length>0)for(let[n,o]of Object.entries(i))typeof o=="string"&&!t[o]&&(s[n]=null);return s}function ie(r,e){return Object.entries(r).reduce((t,[i,s])=>{if(typeof i!="string")return t;let n=e?[...e,i]:[i];return d(s,E)||d(s,b)||d(s,b.Aliased)?t.push({path:n,field:s}):d(s,y)?t.push(...ie(s[y.Symbol.Columns],n)):t.push(...ie(s,n)),t},[])}function Ge(r,e){let t=Object.keys(r),i=Object.keys(e);if(t.length!==i.length)return!1;for(let[s,n]of t.entries())if(n!==i[s])return!1;return!0}function zt(r,e){let t=Object.entries(e).filter(([,i])=>i!==void 0).map(([i,s])=>d(s,b)||d(s,E)?[i,s]:[i,new X(s,r[y.Symbol.Columns][i])]);if(t.length===0)throw new Error("No values to set");return Object.fromEntries(t)}function dn(r,e){for(let t of e)for(let i of Object.getOwnPropertyNames(t.prototype))i!=="constructor"&&Object.defineProperty(r.prototype,i,Object.getOwnPropertyDescriptor(t.prototype,i)||Object.create(null))}function hn(r){return r[y.Symbol.Columns]}function ge(r){return d(r,z)?r._.alias:d(r,H)?r[F].name:d(r,b)?void 0:r[y.Symbol.IsAlias]?r[y.Symbol.Name]:r[y.Symbol.BaseName]}function T(r,e){return{name:typeof r=="string"&&r.length>0?r:"",config:typeof r=="object"?r:e}}function pn(r){if(typeof r!="object"||r===null||r.constructor.name!=="Object")return!1;if("logger"in r){let e=typeof r.logger;return!(e!=="boolean"&&(e!=="object"||typeof r.logger.logQuery!="function")&&e!=="undefined")}if("schema"in r){let e=typeof r.schema;return!(e!=="object"&&e!=="undefined")}if("casing"in r){let e=typeof r.casing;return!(e!=="string"&&e!=="undefined")}if("mode"in r)return!(r.mode!=="default"||r.mode!=="planetscale"||r.mode!==void 0);if("connection"in r){let e=typeof r.connection;return!(e!=="string"&&e!=="object"&&e!=="undefined")}if("client"in r){let e=typeof r.client;return!(e!=="object"&&e!=="function"&&e!=="undefined")}return Object.keys(r).length===0}var ye=class extends S{static[l]="PgIntColumnBaseBuilder";generatedAlwaysAsIdentity(e){if(e){let{name:t,...i}=e;this.config.generatedIdentity={type:"always",sequenceName:t,sequenceOptions:i}}else this.config.generatedIdentity={type:"always"};return this.config.hasDefault=!0,this.config.notNull=!0,this}generatedByDefaultAsIdentity(e){if(e){let{name:t,...i}=e;this.config.generatedIdentity={type:"byDefault",sequenceName:t,sequenceOptions:i}}else this.config.generatedIdentity={type:"byDefault"};return this.config.hasDefault=!0,this.config.notNull=!0,this}};var Qr=class extends ye{static[l]="PgBigInt53Builder";constructor(e){super(e,"number","PgBigInt53")}build(e){return new Rr(e,this.config)}},Rr=class extends g{static[l]="PgBigInt53";getSQLType(){return"bigint"}mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}},kr=class extends ye{static[l]="PgBigInt64Builder";constructor(e){super(e,"bigint","PgBigInt64")}build(e){return new Br(e,this.config)}},Br=class extends g{static[l]="PgBigInt64";getSQLType(){return"bigint"}mapFromDriverValue(e){return BigInt(e)}};function gn(r,e){let{name:t,config:i}=T(r,e);return i.mode==="number"?new Qr(t):new kr(t)}var Kr=class extends S{static[l]="PgBigSerial53Builder";constructor(e){super(e,"number","PgBigSerial53"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Vr(e,this.config)}},Vr=class extends g{static[l]="PgBigSerial53";getSQLType(){return"bigserial"}mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}},Mr=class extends S{static[l]="PgBigSerial64Builder";constructor(e){super(e,"bigint","PgBigSerial64"),this.config.hasDefault=!0}build(e){return new Wr(e,this.config)}},Wr=class extends g{static[l]="PgBigSerial64";getSQLType(){return"bigserial"}mapFromDriverValue(e){return BigInt(e)}};function yn(r,e){let{name:t,config:i}=T(r,e);return i.mode==="number"?new Kr(t):new Mr(t)}var Ur=class extends S{static[l]="PgBooleanBuilder";constructor(e){super(e,"boolean","PgBoolean")}build(e){return new Jr(e,this.config)}},Jr=class extends g{static[l]="PgBoolean";getSQLType(){return"boolean"}};function wn(r){return new Ur(r??"")}var Hr=class extends S{static[l]="PgCharBuilder";constructor(e,t){super(e,"string","PgChar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new Yr(e,this.config)}},Yr=class extends g{static[l]="PgChar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"char":`char(${this.length})`}};function bn(r,e={}){let{name:t,config:i}=T(r,e);return new Hr(t,i)}var Gr=class extends S{static[l]="PgCidrBuilder";constructor(e){super(e,"string","PgCidr")}build(e){return new Zr(e,this.config)}},Zr=class extends g{static[l]="PgCidr";getSQLType(){return"cidr"}};function Sn(r){return new Gr(r??"")}var Xr=class extends S{static[l]="PgCustomColumnBuilder";constructor(e,t,i){super(e,"custom","PgCustomColumn"),this.config.fieldConfig=t,this.config.customTypeParams=i}build(e){return new ei(e,this.config)}},ei=class extends g{static[l]="PgCustomColumn";sqlName;mapTo;mapFrom;constructor(e,t){super(e,t),this.sqlName=t.customTypeParams.dataType(t.fieldConfig),this.mapTo=t.customTypeParams.toDriver,this.mapFrom=t.customTypeParams.fromDriver}getSQLType(){return this.sqlName}mapFromDriverValue(e){return typeof this.mapFrom=="function"?this.mapFrom(e):e}mapToDriverValue(e){return typeof this.mapTo=="function"?this.mapTo(e):e}};function xn(r){return(e,t)=>{let{name:i,config:s}=T(e,t);return new Xr(i,s,r)}}var ue=class extends S{static[l]="PgDateColumnBaseBuilder";defaultNow(){return this.default(c`now()`)}};var ti=class extends ue{static[l]="PgDateBuilder";constructor(e){super(e,"date","PgDate")}build(e){return new Ze(e,this.config)}},Ze=class extends g{static[l]="PgDate";getSQLType(){return"date"}mapFromDriverValue(e){return new Date(e)}mapToDriverValue(e){return e.toISOString()}},ri=class extends ue{static[l]="PgDateStringBuilder";constructor(e){super(e,"string","PgDateString")}build(e){return new Xe(e,this.config)}},Xe=class extends g{static[l]="PgDateString";getSQLType(){return"date"}};function _n(r,e){let{name:t,config:i}=T(r,e);return i?.mode==="date"?new ti(t):new ri(t)}var ii=class extends S{static[l]="PgDoublePrecisionBuilder";constructor(e){super(e,"number","PgDoublePrecision")}build(e){return new si(e,this.config)}},si=class extends g{static[l]="PgDoublePrecision";getSQLType(){return"double precision"}mapFromDriverValue(e){return typeof e=="string"?Number.parseFloat(e):e}};function Nn(r){return new ii(r??"")}var ni=class extends S{static[l]="PgInetBuilder";constructor(e){super(e,"string","PgInet")}build(e){return new oi(e,this.config)}},oi=class extends g{static[l]="PgInet";getSQLType(){return"inet"}};function Cn(r){return new ni(r??"")}var ai=class extends ye{static[l]="PgIntegerBuilder";constructor(e){super(e,"number","PgInteger")}build(e){return new li(e,this.config)}},li=class extends g{static[l]="PgInteger";getSQLType(){return"integer"}mapFromDriverValue(e){return typeof e=="string"?Number.parseInt(e):e}};function vn(r){return new ai(r??"")}var ci=class extends S{static[l]="PgIntervalBuilder";constructor(e,t){super(e,"string","PgInterval"),this.config.intervalConfig=t}build(e){return new ui(e,this.config)}},ui=class extends g{static[l]="PgInterval";fields=this.config.intervalConfig.fields;precision=this.config.intervalConfig.precision;getSQLType(){let e=this.fields?` ${this.fields}`:"",t=this.precision?`(${this.precision})`:"";return`interval${e}${t}`}};function Pn(r,e={}){let{name:t,config:i}=T(r,e);return new ci(t,i)}var mi=class extends S{static[l]="PgJsonBuilder";constructor(e){super(e,"json","PgJson")}build(e){return new et(e,this.config)}},et=class extends g{static[l]="PgJson";constructor(e,t){super(e,t)}getSQLType(){return"json"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e}};function Tn(r){return new mi(r??"")}var fi=class extends S{static[l]="PgJsonbBuilder";constructor(e){super(e,"json","PgJsonb")}build(e){return new tt(e,this.config)}},tt=class extends g{static[l]="PgJsonb";constructor(e,t){super(e,t)}getSQLType(){return"jsonb"}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e}};function $n(r){return new fi(r??"")}var di=class extends S{static[l]="PgLineBuilder";constructor(e){super(e,"array","PgLine")}build(e){return new hi(e,this.config)}},hi=class extends g{static[l]="PgLine";getSQLType(){return"line"}mapFromDriverValue(e){let[t,i,s]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(i),Number.parseFloat(s)]}mapToDriverValue(e){return`{${e[0]},${e[1]},${e[2]}}`}},pi=class extends S{static[l]="PgLineABCBuilder";constructor(e){super(e,"json","PgLineABC")}build(e){return new gi(e,this.config)}},gi=class extends g{static[l]="PgLineABC";getSQLType(){return"line"}mapFromDriverValue(e){let[t,i,s]=e.slice(1,-1).split(",");return{a:Number.parseFloat(t),b:Number.parseFloat(i),c:Number.parseFloat(s)}}mapToDriverValue(e){return`{${e.a},${e.b},${e.c}}`}};function Dn(r,e){let{name:t,config:i}=T(r,e);return!i?.mode||i.mode==="tuple"?new di(t):new pi(t)}var yi=class extends S{static[l]="PgMacaddrBuilder";constructor(e){super(e,"string","PgMacaddr")}build(e){return new wi(e,this.config)}},wi=class extends g{static[l]="PgMacaddr";getSQLType(){return"macaddr"}};function En(r){return new yi(r??"")}var bi=class extends S{static[l]="PgMacaddr8Builder";constructor(e){super(e,"string","PgMacaddr8")}build(e){return new Si(e,this.config)}},Si=class extends g{static[l]="PgMacaddr8";getSQLType(){return"macaddr8"}};function An(r){return new bi(r??"")}var xi=class extends S{static[l]="PgNumericBuilder";constructor(e,t,i){super(e,"string","PgNumeric"),this.config.precision=t,this.config.scale=i}build(e){return new rt(e,this.config)}},rt=class extends g{static[l]="PgNumeric";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e=="string"?e:String(e)}getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?"numeric":`numeric(${this.precision})`}},_i=class extends S{static[l]="PgNumericNumberBuilder";constructor(e,t,i){super(e,"number","PgNumericNumber"),this.config.precision=t,this.config.scale=i}build(e){return new Ni(e,this.config)}},Ni=class extends g{static[l]="PgNumericNumber";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue(e){return typeof e=="number"?e:Number(e)}mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?"numeric":`numeric(${this.precision})`}},Ci=class extends S{static[l]="PgNumericBigIntBuilder";constructor(e,t,i){super(e,"bigint","PgNumericBigInt"),this.config.precision=t,this.config.scale=i}build(e){return new vi(e,this.config)}},vi=class extends g{static[l]="PgNumericBigInt";precision;scale;constructor(e,t){super(e,t),this.precision=t.precision,this.scale=t.scale}mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return this.precision!==void 0&&this.scale!==void 0?`numeric(${this.precision}, ${this.scale})`:this.precision===void 0?"numeric":`numeric(${this.precision})`}};function Fn(r,e){let{name:t,config:i}=T(r,e),s=i?.mode;return s==="number"?new _i(t,i?.precision,i?.scale):s==="bigint"?new Ci(t,i?.precision,i?.scale):new xi(t,i?.precision,i?.scale)}var Pi=class extends S{static[l]="PgPointTupleBuilder";constructor(e){super(e,"array","PgPointTuple")}build(e){return new Ti(e,this.config)}},Ti=class extends g{static[l]="PgPointTuple";getSQLType(){return"point"}mapFromDriverValue(e){if(typeof e=="string"){let[t,i]=e.slice(1,-1).split(",");return[Number.parseFloat(t),Number.parseFloat(i)]}return[e.x,e.y]}mapToDriverValue(e){return`(${e[0]},${e[1]})`}},$i=class extends S{static[l]="PgPointObjectBuilder";constructor(e){super(e,"json","PgPointObject")}build(e){return new Di(e,this.config)}},Di=class extends g{static[l]="PgPointObject";getSQLType(){return"point"}mapFromDriverValue(e){if(typeof e=="string"){let[t,i]=e.slice(1,-1).split(",");return{x:Number.parseFloat(t),y:Number.parseFloat(i)}}return e}mapToDriverValue(e){return`(${e.x},${e.y})`}};function qn(r,e){let{name:t,config:i}=T(r,e);return!i?.mode||i.mode==="tuple"?new Pi(t):new $i(t)}function Ka(r){let e=[];for(let t=0;t<r.length;t+=2)e.push(Number.parseInt(r.slice(t,t+2),16));return new Uint8Array(e)}function Ln(r,e){let t=new ArrayBuffer(8),i=new DataView(t);for(let s=0;s<8;s++)i.setUint8(s,r[e+s]);return i.getFloat64(0,!0)}function Ei(r){let e=Ka(r),t=0,i=e[t];t+=1;let s=new DataView(e.buffer),n=s.getUint32(t,i===1);t+=4;let o;if(n&536870912&&(o=s.getUint32(t,i===1),t+=4),(n&65535)===1){let a=Ln(e,t);t+=8;let m=Ln(e,t);return t+=8,[a,m]}throw new Error("Unsupported geometry type")}var Ai=class extends S{static[l]="PgGeometryBuilder";constructor(e){super(e,"array","PgGeometry")}build(e){return new Fi(e,this.config)}},Fi=class extends g{static[l]="PgGeometry";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){return Ei(e)}mapToDriverValue(e){return`point(${e[0]} ${e[1]})`}},qi=class extends S{static[l]="PgGeometryObjectBuilder";constructor(e){super(e,"json","PgGeometryObject")}build(e){return new Li(e,this.config)}},Li=class extends g{static[l]="PgGeometryObject";getSQLType(){return"geometry(point)"}mapFromDriverValue(e){let t=Ei(e);return{x:t[0],y:t[1]}}mapToDriverValue(e){return`point(${e.x} ${e.y})`}};function In(r,e){let{name:t,config:i}=T(r,e);return!i?.mode||i.mode==="tuple"?new Ai(t):new qi(t)}var Ii=class extends S{static[l]="PgRealBuilder";constructor(e,t){super(e,"number","PgReal"),this.config.length=t}build(e){return new ji(e,this.config)}},ji=class extends g{static[l]="PgReal";constructor(e,t){super(e,t)}getSQLType(){return"real"}mapFromDriverValue=e=>typeof e=="string"?Number.parseFloat(e):e};function jn(r){return new Ii(r??"")}var zi=class extends S{static[l]="PgSerialBuilder";constructor(e){super(e,"number","PgSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Oi(e,this.config)}},Oi=class extends g{static[l]="PgSerial";getSQLType(){return"serial"}};function zn(r){return new zi(r??"")}var Qi=class extends ye{static[l]="PgSmallIntBuilder";constructor(e){super(e,"number","PgSmallInt")}build(e){return new Ri(e,this.config)}},Ri=class extends g{static[l]="PgSmallInt";getSQLType(){return"smallint"}mapFromDriverValue=e=>typeof e=="string"?Number(e):e};function On(r){return new Qi(r??"")}var ki=class extends S{static[l]="PgSmallSerialBuilder";constructor(e){super(e,"number","PgSmallSerial"),this.config.hasDefault=!0,this.config.notNull=!0}build(e){return new Bi(e,this.config)}},Bi=class extends g{static[l]="PgSmallSerial";getSQLType(){return"smallserial"}};function Qn(r){return new ki(r??"")}var Ki=class extends S{static[l]="PgTextBuilder";constructor(e,t){super(e,"string","PgText"),this.config.enumValues=t.enum}build(e){return new Vi(e,this.config)}},Vi=class extends g{static[l]="PgText";enumValues=this.config.enumValues;getSQLType(){return"text"}};function Rn(r,e={}){let{name:t,config:i}=T(r,e);return new Ki(t,i)}var Mi=class extends ue{constructor(e,t,i){super(e,"string","PgTime"),this.withTimezone=t,this.precision=i,this.config.withTimezone=t,this.config.precision=i}static[l]="PgTimeBuilder";build(e){return new it(e,this.config)}},it=class extends g{static[l]="PgTime";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`time${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}};function kn(r,e={}){let{name:t,config:i}=T(r,e);return new Mi(t,i.withTimezone??!1,i.precision)}var Wi=class extends ue{static[l]="PgTimestampBuilder";constructor(e,t,i){super(e,"date","PgTimestamp"),this.config.withTimezone=t,this.config.precision=i}build(e){return new st(e,this.config)}},st=class extends g{static[l]="PgTimestamp";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?"":` (${this.precision})`}${this.withTimezone?" with time zone":""}`}mapFromDriverValue=e=>new Date(this.withTimezone?e:e+"+0000");mapToDriverValue=e=>e.toISOString()},Ui=class extends ue{static[l]="PgTimestampStringBuilder";constructor(e,t,i){super(e,"string","PgTimestampString"),this.config.withTimezone=t,this.config.precision=i}build(e){return new nt(e,this.config)}},nt=class extends g{static[l]="PgTimestampString";withTimezone;precision;constructor(e,t){super(e,t),this.withTimezone=t.withTimezone,this.precision=t.precision}getSQLType(){return`timestamp${this.precision===void 0?"":`(${this.precision})`}${this.withTimezone?" with time zone":""}`}};function Bn(r,e={}){let{name:t,config:i}=T(r,e);return i?.mode==="string"?new Ui(t,i.withTimezone??!1,i.precision):new Wi(t,i?.withTimezone??!1,i?.precision)}var Ji=class extends S{static[l]="PgUUIDBuilder";constructor(e){super(e,"string","PgUUID")}defaultRandom(){return this.default(c`gen_random_uuid()`)}build(e){return new ot(e,this.config)}},ot=class extends g{static[l]="PgUUID";getSQLType(){return"uuid"}};function Kn(r){return new Ji(r??"")}var Hi=class extends S{static[l]="PgVarcharBuilder";constructor(e,t){super(e,"string","PgVarchar"),this.config.length=t.length,this.config.enumValues=t.enum}build(e){return new Yi(e,this.config)}},Yi=class extends g{static[l]="PgVarchar";length=this.config.length;enumValues=this.config.enumValues;getSQLType(){return this.length===void 0?"varchar":`varchar(${this.length})`}};function Vn(r,e={}){let{name:t,config:i}=T(r,e);return new Hi(t,i)}var Gi=class extends S{static[l]="PgBinaryVectorBuilder";constructor(e,t){super(e,"string","PgBinaryVector"),this.config.dimensions=t.dimensions}build(e){return new Zi(e,this.config)}},Zi=class extends g{static[l]="PgBinaryVector";dimensions=this.config.dimensions;getSQLType(){return`bit(${this.dimensions})`}};function Mn(r,e){let{name:t,config:i}=T(r,e);return new Gi(t,i)}var Xi=class extends S{static[l]="PgHalfVectorBuilder";constructor(e,t){super(e,"array","PgHalfVector"),this.config.dimensions=t.dimensions}build(e){return new es(e,this.config)}},es=class extends g{static[l]="PgHalfVector";dimensions=this.config.dimensions;getSQLType(){return`halfvec(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(t=>Number.parseFloat(t))}};function Wn(r,e){let{name:t,config:i}=T(r,e);return new Xi(t,i)}var ts=class extends S{static[l]="PgSparseVectorBuilder";constructor(e,t){super(e,"string","PgSparseVector"),this.config.dimensions=t.dimensions}build(e){return new rs(e,this.config)}},rs=class extends g{static[l]="PgSparseVector";dimensions=this.config.dimensions;getSQLType(){return`sparsevec(${this.dimensions})`}};function Un(r,e){let{name:t,config:i}=T(r,e);return new ts(t,i)}var is=class extends S{static[l]="PgVectorBuilder";constructor(e,t){super(e,"array","PgVector"),this.config.dimensions=t.dimensions}build(e){return new ss(e,this.config)}},ss=class extends g{static[l]="PgVector";dimensions=this.config.dimensions;getSQLType(){return`vector(${this.dimensions})`}mapToDriverValue(e){return JSON.stringify(e)}mapFromDriverValue(e){return e.slice(1,-1).split(",").map(t=>Number.parseFloat(t))}};function Jn(r,e){let{name:t,config:i}=T(r,e);return new is(t,i)}function Hn(){return{bigint:gn,bigserial:yn,boolean:wn,char:bn,cidr:Sn,customType:xn,date:_n,doublePrecision:Nn,inet:Cn,integer:vn,interval:Pn,json:Tn,jsonb:$n,line:Dn,macaddr:En,macaddr8:An,numeric:Fn,point:qn,geometry:In,real:jn,serial:zn,smallint:On,smallserial:Qn,text:Rn,time:kn,timestamp:Bn,uuid:Kn,varchar:Vn,bit:Mn,halfvec:Wn,sparsevec:Un,vector:Jn}}var ns=Symbol.for("drizzle:PgInlineForeignKeys"),Yn=Symbol.for("drizzle:EnableRLS"),B=class extends y{static[l]="PgTable";static Symbol=Object.assign({},y.Symbol,{InlineForeignKeys:ns,EnableRLS:Yn});[ns]=[];[Yn]=!1;[y.Symbol.ExtraConfigBuilder]=void 0;[y.Symbol.ExtraConfigColumns]={}};function Va(r,e,t,i,s=r){let n=new B(r,i,s),o=typeof e=="function"?e(Hn()):e,a=Object.fromEntries(Object.entries(o).map(([u,h])=>{let p=h;p.setName(u);let x=p.build(n);return n[ns].push(...p.buildForeignKeys(x,n)),[u,x]})),m=Object.fromEntries(Object.entries(o).map(([u,h])=>{let p=h;p.setName(u);let x=p.buildExtraConfigColumn(n);return[u,x]})),f=Object.assign(n,a);return f[y.Symbol.Columns]=a,f[y.Symbol.ExtraConfigColumns]=m,t&&(f[B.Symbol.ExtraConfigBuilder]=t),Object.assign(f,{enableRLS:()=>(f[B.Symbol.EnableRLS]=!0,f)})}var V=(r,e,t)=>Va(r,e,t,void 0);var Ot=class{static[l]="PgPrimaryKeyBuilder";columns;name;constructor(e,t){this.columns=e,this.name=t}build(e){return new os(e,this.columns,this.name)}},os=class{constructor(e,t,i){this.table=e,this.columns=t,this.name=i}static[l]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[B.Symbol.Name]}_${this.columns.map(e=>e.name).join("_")}_pk`}};function ee(r,e){return ln(e)&&!Ir(r)&&!d(r,X)&&!d(r,pe)&&!d(r,E)&&!d(r,y)&&!d(r,H)?new X(r,e):r}var Qt=(r,e)=>c`${r} = ${ee(e,r)}`,Gn=(r,e)=>c`${r} <> ${ee(e,r)}`;function at(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new b(e):new b([new k("("),c.join(e,new k(" and ")),new k(")")])}function Zn(...r){let e=r.filter(t=>t!==void 0);if(e.length!==0)return e.length===1?new b(e):new b([new k("("),c.join(e,new k(" or ")),new k(")")])}function Xn(r){return c`not ${r}`}var eo=(r,e)=>c`${r} > ${ee(e,r)}`,to=(r,e)=>c`${r} >= ${ee(e,r)}`,ro=(r,e)=>c`${r} < ${ee(e,r)}`,io=(r,e)=>c`${r} <= ${ee(e,r)}`;function so(r,e){return Array.isArray(e)?e.length===0?c`false`:c`${r} in ${e.map(t=>ee(t,r))}`:c`${r} in ${ee(e,r)}`}function no(r,e){return Array.isArray(e)?e.length===0?c`true`:c`${r} not in ${e.map(t=>ee(t,r))}`:c`${r} not in ${ee(e,r)}`}function oo(r){return c`${r} is null`}function ao(r){return c`${r} is not null`}function lo(r){return c`exists ${r}`}function co(r){return c`not exists ${r}`}function uo(r,e,t){return c`${r} between ${ee(e,r)} and ${ee(t,r)}`}function mo(r,e,t){return c`${r} not between ${ee(e,r)} and ${ee(t,r)}`}function fo(r,e){return c`${r} like ${e}`}function ho(r,e){return c`${r} not like ${e}`}function po(r,e){return c`${r} ilike ${e}`}function go(r,e){return c`${r} not ilike ${e}`}function yo(r){return c`${r} asc`}function wo(r){return c`${r} desc`}var Rt=class{constructor(e,t,i){this.sourceTable=e,this.referencedTable=t,this.relationName=i,this.referencedTableName=t[y.Symbol.Name]}static[l]="Relation";referencedTableName;fieldName},kt=class{constructor(e,t){this.table=e,this.config=t}static[l]="Relations"},xe=class r extends Rt{constructor(e,t,i,s){super(e,t,i?.relationName),this.config=i,this.isNullable=s}static[l]="One";withFieldName(e){let t=new r(this.sourceTable,this.referencedTable,this.config,this.isNullable);return t.fieldName=e,t}},lt=class r extends Rt{constructor(e,t,i){super(e,t,i?.relationName),this.config=i}static[l]="Many";withFieldName(e){let t=new r(this.sourceTable,this.referencedTable,this.config);return t.fieldName=e,t}};function bo(){return{and:at,between:uo,eq:Qt,exists:lo,gt:eo,gte:to,ilike:po,inArray:so,isNull:oo,isNotNull:ao,like:fo,lt:ro,lte:io,ne:Gn,not:Xn,notBetween:mo,notExists:co,notLike:ho,notIlike:go,notInArray:no,or:Zn,sql:c}}function So(){return{sql:c,asc:yo,desc:wo}}function xo(r,e){Object.keys(r).length===1&&"default"in r&&!d(r.default,y)&&(r=r.default);let t={},i={},s={};for(let[n,o]of Object.entries(r))if(d(o,y)){let a=Pe(o),m=i[a];t[a]=n,s[n]={tsName:n,dbName:o[y.Symbol.Name],schema:o[y.Symbol.Schema],columns:o[y.Symbol.Columns],relations:m?.relations??{},primaryKey:m?.primaryKey??[]};for(let u of Object.values(o[y.Symbol.Columns]))u.primary&&s[n].primaryKey.push(u);let f=o[y.Symbol.ExtraConfigBuilder]?.(o[y.Symbol.ExtraConfigColumns]);if(f)for(let u of Object.values(f))d(u,Ot)&&s[n].primaryKey.push(...u.columns)}else if(d(o,kt)){let a=Pe(o.table),m=t[a],f=o.config(e(o.table)),u;for(let[h,p]of Object.entries(f))if(m){let x=s[m];x.relations[h]=p,u&&x.primaryKey.push(...u)}else a in i||(i[a]={relations:{},primaryKey:u}),i[a].relations[h]=p}return{tables:s,tableNamesMap:t}}function Y(r,e){return new kt(r,t=>Object.fromEntries(Object.entries(e(t)).map(([i,s])=>[i,s.withFieldName(i)])))}function Ma(r){return function(t,i){return new xe(r,t,i,i?.fields.reduce((s,n)=>s&&n.notNull,!0)??!1)}}function Wa(r){return function(t,i){return new lt(r,t,i)}}function _o(r,e,t){if(d(t,xe)&&t.config)return{fields:t.config.fields,references:t.config.references};let i=e[Pe(t.referencedTable)];if(!i)throw new Error(`Table "${t.referencedTable[y.Symbol.Name]}" not found in schema`);let s=r[i];if(!s)throw new Error(`Table "${i}" not found in schema`);let n=t.sourceTable,o=e[Pe(n)];if(!o)throw new Error(`Table "${n[y.Symbol.Name]}" not found in schema`);let a=[];for(let m of Object.values(s.relations))(t.relationName&&t!==m&&m.relationName===t.relationName||!t.relationName&&m.referencedTable===t.sourceTable)&&a.push(m);if(a.length>1)throw t.relationName?new Error(`There are multiple relations with name "${t.relationName}" in table "${i}"`):new Error(`There are multiple relations between "${i}" and "${t.sourceTable[y.Symbol.Name]}". Please specify relation name`);if(a[0]&&d(a[0],xe)&&a[0].config)return{fields:a[0].config.references,references:a[0].config.fields};throw new Error(`There is not enough information to infer relation "${o}.${t.fieldName}"`)}function No(r){return{one:Ma(r),many:Wa(r)}}function Bt(r,e,t,i,s=n=>n){let n={};for(let[o,a]of i.entries())if(a.isJson){let m=e.relations[a.tsKey],f=t[o],u=typeof f=="string"?JSON.parse(f):f;n[a.tsKey]=d(m,xe)?u&&Bt(r,r[a.relationTableTsKey],u,a.selection,s):u.map(h=>Bt(r,r[a.relationTableTsKey],h,a.selection,s))}else{let m=s(t[o]),f=a.field,u;d(f,E)?u=f:d(f,b)?u=f.decoder:u=f.sql.decoder,n[a.tsKey]=m===null?null:u.mapFromDriverValue(m)}return n}function as(r){return c`count(${r||c.raw("*")})`.mapWith(Number)}import gs from"postgres";var O=class r{static[l]="SelectionProxyHandler";config;constructor(e){this.config={...e}}get(e,t){if(t==="_")return{...e._,selectedFields:new Proxy(e._.selectedFields,this)};if(t===F)return{...e[F],selectedFields:new Proxy(e[F].selectedFields,this)};if(typeof t=="symbol")return e[t];let s=(d(e,z)?e._.selectedFields:d(e,H)?e[F].selectedFields:e)[t];if(d(s,b.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!s.isSelectionField)return s.sql;let n=s.clone();return n.isSelectionField=!0,n}if(d(s,b)){if(this.config.sqlBehavior==="sql")return s;throw new Error(`You tried to reference "${t}" 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 d(s,E)?this.config.alias?new Proxy(s,new Te(new Proxy(s.table,new Le(this.config.alias,this.config.replaceOriginalName??!1)))):s:typeof s!="object"||s===null?s:new Proxy(s,new r(this.config))}};var ls=class{constructor(e,t){this.unique=e,this.name=t}static[l]="PgIndexBuilderOn";on(...e){return new ct(e.map(t=>{if(d(t,b))return t;t=t;let i=new Fe(t.name,!!t.keyAsName,t.columnType,t.indexConfig);return t.indexConfig=JSON.parse(JSON.stringify(t.defaultConfig)),i}),this.unique,!1,this.name)}onOnly(...e){return new ct(e.map(t=>{if(d(t,b))return t;t=t;let i=new Fe(t.name,!!t.keyAsName,t.columnType,t.indexConfig);return t.indexConfig=t.defaultConfig,i}),this.unique,!0,this.name)}using(e,...t){return new ct(t.map(i=>{if(d(i,b))return i;i=i;let s=new Fe(i.name,!!i.keyAsName,i.columnType,i.indexConfig);return i.indexConfig=JSON.parse(JSON.stringify(i.defaultConfig)),s}),this.unique,!0,this.name,e)}},ct=class{static[l]="PgIndexBuilder";config;constructor(e,t,i,s,n="btree"){this.config={name:s,columns:e,unique:t,only:i,method:n}}concurrently(){return this.config.concurrently=!0,this}with(e){return this.config.with=e,this}where(e){return this.config.where=e,this}build(e){return new cs(this.config,e)}},cs=class{static[l]="PgIndex";config;constructor(e,t){this.config={...e,table:t}}};function K(r){return new ls(!1,r)}function Ua(r){return(r.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map(t=>t.toLowerCase()).join("_")}function Ja(r){return(r.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((t,i,s)=>{let n=s===0?i.toLowerCase():`${i[0].toUpperCase()}${i.slice(1)}`;return t+n},"")}function Ha(r){return r}var Kt=class{static[l]="CasingCache";cache={};cachedTables={};convert;constructor(e){this.convert=e==="snake_case"?Ua:e==="camelCase"?Ja:Ha}getColumnCasing(e){if(!e.keyAsName)return e.name;let t=e.table[y.Symbol.Schema]??"public",i=e.table[y.Symbol.OriginalName],s=`${t}.${i}.${e.name}`;return this.cache[s]||this.cacheTable(e.table),this.cache[s]}cacheTable(e){let t=e[y.Symbol.Schema]??"public",i=e[y.Symbol.OriginalName],s=`${t}.${i}`;if(!this.cachedTables[s]){for(let n of Object.values(e[y.Symbol.Columns])){let o=`${s}.${n.name}`;this.cache[o]=this.convert(n.name)}this.cachedTables[s]=!0}}clearCache(){this.cache={},this.cachedTables={}}};var Ie=class extends H{static[l]="PgViewBase"};var _e=class{static[l]="PgDialect";casing;constructor(e){this.casing=new Kt(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=c`
7
- CREATE TABLE IF NOT EXISTS ${c.identifier(n)}.${c.identifier(s)} (
8
- id SERIAL PRIMARY KEY,
9
- hash text NOT NULL,
10
- created_at bigint
11
- )
12
- `;await t.execute(c`CREATE SCHEMA IF NOT EXISTS ${c.identifier(n)}`),await t.execute(o);let m=(await t.all(c`select id, hash, created_at from ${c.identifier(n)}.${c.identifier(s)} order by created_at desc limit 1`))[0];await t.transaction(async f=>{for await(let u of e)if(!m||Number(m.created_at)<u.folderMillis){for(let h of u.sql)await f.execute(c.raw(h));await f.execute(c`insert into ${c.identifier(n)}.${c.identifier(s)} ("hash", "created_at") values(${u.hash}, ${u.folderMillis})`)}})}escapeName(e){return`"${e}"`}escapeParam(e){return`$${e+1}`}escapeString(e){return`'${e.replace(/'/g,"''")}'`}buildWithCTE(e){if(!e?.length)return;let t=[c`with `];for(let[i,s]of e.entries())t.push(c`${c.identifier(s._.alias)} as (${s._.sql})`),i<e.length-1&&t.push(c`, `);return t.push(c` `),c.join(t)}buildDeleteQuery({table:e,where:t,returning:i,withList:s}){let n=this.buildWithCTE(s),o=i?c` returning ${this.buildSelection(i,{isSingleTable:!0})}`:void 0,a=t?c` where ${t}`:void 0;return c`${n}delete from ${e}${a}${o}`}buildUpdateSet(e,t){let i=e[y.Symbol.Columns],s=Object.keys(i).filter(o=>t[o]!==void 0||i[o]?.onUpdateFn!==void 0),n=s.length;return c.join(s.flatMap((o,a)=>{let m=i[o],f=t[o]??c.param(m.onUpdateFn(),m),u=c`${c.identifier(this.casing.getColumnCasing(m))} = ${f}`;return a<n-1?[u,c.raw(", ")]:[u]}))}buildUpdateQuery({table:e,set:t,where:i,returning:s,withList:n,from:o,joins:a}){let m=this.buildWithCTE(n),f=e[B.Symbol.Name],u=e[B.Symbol.Schema],h=e[B.Symbol.OriginalName],p=f===h?void 0:f,x=c`${u?c`${c.identifier(u)}.`:void 0}${c.identifier(h)}${p&&c` ${c.identifier(p)}`}`,_=this.buildUpdateSet(e,t),C=o&&c.join([c.raw(" from "),this.buildFromTable(o)]),q=this.buildJoins(a),w=s?c` returning ${this.buildSelection(s,{isSingleTable:!o})}`:void 0,N=i?c` where ${i}`:void 0;return c`${m}update ${x} set ${_}${C}${q}${N}${w}`}buildSelection(e,{isSingleTable:t=!1}={}){let i=e.length,s=e.flatMap(({field:n},o)=>{let a=[];if(d(n,b.Aliased)&&n.isSelectionField)a.push(c.identifier(n.fieldAlias));else if(d(n,b.Aliased)||d(n,b)){let m=d(n,b.Aliased)?n.sql:n;t?a.push(new b(m.queryChunks.map(f=>d(f,g)?c.identifier(this.casing.getColumnCasing(f)):f))):a.push(m),d(n,b.Aliased)&&a.push(c` as ${c.identifier(n.fieldAlias)}`)}else d(n,E)&&(t?a.push(c.identifier(this.casing.getColumnCasing(n))):a.push(n));return o<i-1&&a.push(c`, `),a});return c.join(s)}buildJoins(e){if(!e||e.length===0)return;let t=[];for(let[i,s]of e.entries()){i===0&&t.push(c` `);let n=s.table,o=s.lateral?c` lateral`:void 0,a=s.on?c` on ${s.on}`:void 0;if(d(n,B)){let m=n[B.Symbol.Name],f=n[B.Symbol.Schema],u=n[B.Symbol.OriginalName],h=m===u?void 0:s.alias;t.push(c`${c.raw(s.joinType)} join${o} ${f?c`${c.identifier(f)}.`:void 0}${c.identifier(u)}${h&&c` ${c.identifier(h)}`}${a}`)}else if(d(n,H)){let m=n[F].name,f=n[F].schema,u=n[F].originalName,h=m===u?void 0:s.alias;t.push(c`${c.raw(s.joinType)} join${o} ${f?c`${c.identifier(f)}.`:void 0}${c.identifier(u)}${h&&c` ${c.identifier(h)}`}${a}`)}else t.push(c`${c.raw(s.joinType)} join${o} ${n}${a}`);i<e.length-1&&t.push(c` `)}return c.join(t)}buildFromTable(e){if(d(e,y)&&e[y.Symbol.IsAlias]){let t=c`${c.identifier(e[y.Symbol.OriginalName])}`;return e[y.Symbol.Schema]&&(t=c`${c.identifier(e[y.Symbol.Schema])}.${t}`),c`${t} ${c.identifier(e[y.Symbol.Name])}`}return e}buildSelectQuery({withList:e,fields:t,fieldsFlat:i,where:s,having:n,table:o,joins:a,orderBy:m,groupBy:f,limit:u,offset:h,lockingClause:p,distinct:x,setOperators:_}){let C=i??ie(t);for(let te of C)if(d(te.field,E)&&Z(te.field.table)!==(d(o,z)?o._.alias:d(o,Ie)?o[F].name:d(o,b)?void 0:Z(o))&&!(de=>a?.some(({alias:ar})=>ar===(de[y.Symbol.IsAlias]?Z(de):de[y.Symbol.BaseName])))(te.field.table)){let de=Z(te.field.table);throw new Error(`Your "${te.path.join("->")}" field references a column "${de}"."${te.field.name}", but the table "${de}" is not part of the query! Did you forget to join it?`)}let q=!a||a.length===0,w=this.buildWithCTE(e),N;x&&(N=x===!0?c` distinct`:c` distinct on (${c.join(x.on,c`, `)})`);let R=this.buildSelection(C,{isSingleTable:q}),I=this.buildFromTable(o),J=this.buildJoins(a),Q=s?c` where ${s}`:void 0,v=n?c` having ${n}`:void 0,$;m&&m.length>0&&($=c` order by ${c.join(m,c`, `)}`);let G;f&&f.length>0&&(G=c` group by ${c.join(f,c`, `)}`);let yt=typeof u=="object"||typeof u=="number"&&u>=0?c` limit ${u}`:void 0,or=h?c` offset ${h}`:void 0,De=c.empty();if(p){let te=c` for ${c.raw(p.strength)}`;p.config.of&&te.append(c` of ${c.join(Array.isArray(p.config.of)?p.config.of:[p.config.of],c`, `)}`),p.config.noWait?te.append(c` nowait`):p.config.skipLocked&&te.append(c` skip locked`),De.append(te)}let Se=c`${w}select${N} ${R} from ${I}${J}${Q}${G}${v}${$}${yt}${or}${De}`;return _.length>0?this.buildSetOperations(Se,_):Se}buildSetOperations(e,t){let[i,...s]=t;if(!i)throw new Error("Cannot pass undefined values to any set operator");return s.length===0?this.buildSetOperationQuery({leftSelect:e,setOperator:i}):this.buildSetOperations(this.buildSetOperationQuery({leftSelect:e,setOperator:i}),s)}buildSetOperationQuery({leftSelect:e,setOperator:{type:t,isAll:i,rightSelect:s,limit:n,orderBy:o,offset:a}}){let m=c`(${e.getSQL()}) `,f=c`(${s.getSQL()})`,u;if(o&&o.length>0){let _=[];for(let C of o)if(d(C,g))_.push(c.identifier(C.name));else if(d(C,b)){for(let q=0;q<C.queryChunks.length;q++){let w=C.queryChunks[q];d(w,g)&&(C.queryChunks[q]=c.identifier(w.name))}_.push(c`${C}`)}else _.push(c`${C}`);u=c` order by ${c.join(_,c`, `)} `}let h=typeof n=="object"||typeof n=="number"&&n>=0?c` limit ${n}`:void 0,p=c.raw(`${t} ${i?"all ":""}`),x=a?c` offset ${a}`:void 0;return c`${m}${p}${f}${u}${h}${x}`}buildInsertQuery({table:e,values:t,onConflict:i,returning:s,withList:n,select:o,overridingSystemValue_:a}){let m=[],f=e[y.Symbol.Columns],u=Object.entries(f).filter(([w,N])=>!N.shouldDisableInsert()),h=u.map(([,w])=>c.identifier(this.casing.getColumnCasing(w)));if(o){let w=t;d(w,b)?m.push(w):m.push(w.getSQL())}else{let w=t;m.push(c.raw("values "));for(let[N,R]of w.entries()){let I=[];for(let[J,Q]of u){let v=R[J];if(v===void 0||d(v,X)&&v.value===void 0)if(Q.defaultFn!==void 0){let $=Q.defaultFn(),G=d($,b)?$:c.param($,Q);I.push(G)}else if(!Q.default&&Q.onUpdateFn!==void 0){let $=Q.onUpdateFn(),G=d($,b)?$:c.param($,Q);I.push(G)}else I.push(c`default`);else I.push(v)}m.push(I),N<w.length-1&&m.push(c`, `)}}let p=this.buildWithCTE(n),x=c.join(m),_=s?c` returning ${this.buildSelection(s,{isSingleTable:!0})}`:void 0,C=i?c` on conflict ${i}`:void 0,q=a===!0?c`overriding system value `:void 0;return c`${p}insert into ${e} ${h} ${q}${x}${C}${_}`}buildRefreshMaterializedViewQuery({view:e,concurrently:t,withNoData:i}){let s=t?c` concurrently`:void 0,n=i?c` with no data`:void 0;return c`refresh materialized view${s} ${e}${n}`}prepareTyping(e){return d(e,tt)||d(e,et)?"json":d(e,rt)?"decimal":d(e,it)?"time":d(e,st)||d(e,nt)?"timestamp":d(e,Ze)||d(e,Xe)?"date":d(e,ot)?"uuid":"none"}sqlToQuery(e,t){return e.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,prepareTyping:this.prepareTyping,invokeSource:t})}buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:s,tableConfig:n,queryConfig:o,tableAlias:a,nestedQueryRelation:m,joinOn:f}){let u=[],h,p,x=[],_,C=[];if(o===!0)u=Object.entries(n.columns).map(([N,R])=>({dbKey:R.name,tsKey:N,field:ce(R,a),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let w=Object.fromEntries(Object.entries(n.columns).map(([v,$])=>[v,ce($,a)]));if(o.where){let v=typeof o.where=="function"?o.where(w,bo()):o.where;_=v&&He(v,a)}let N=[],R=[];if(o.columns){let v=!1;for(let[$,G]of Object.entries(o.columns))G!==void 0&&$ in n.columns&&(!v&&G===!0&&(v=!0),R.push($));R.length>0&&(R=v?R.filter($=>o.columns?.[$]===!0):Object.keys(n.columns).filter($=>!R.includes($)))}else R=Object.keys(n.columns);for(let v of R){let $=n.columns[v];N.push({tsKey:v,value:$})}let I=[];o.with&&(I=Object.entries(o.with).filter(v=>!!v[1]).map(([v,$])=>({tsKey:v,queryConfig:$,relation:n.relations[v]})));let J;if(o.extras){J=typeof o.extras=="function"?o.extras(w,{sql:c}):o.extras;for(let[v,$]of Object.entries(J))N.push({tsKey:v,value:zr($,a)})}for(let{tsKey:v,value:$}of N)u.push({dbKey:d($,b.Aliased)?$.fieldAlias:n.columns[v].name,tsKey:v,field:d($,E)?ce($,a):$,relationTableTsKey:void 0,isJson:!1,selection:[]});let Q=typeof o.orderBy=="function"?o.orderBy(w,So()):o.orderBy??[];Array.isArray(Q)||(Q=[Q]),x=Q.map(v=>d(v,E)?ce(v,a):He(v,a)),h=o.limit,p=o.offset;for(let{tsKey:v,queryConfig:$,relation:G}of I){let yt=_o(t,i,G),or=Pe(G.referencedTable),De=i[or],Se=`${a}_${v}`,te=at(...yt.fields.map((Fo,qo)=>Qt(ce(yt.references[qo],Se),ce(Fo,a)))),de=this.buildRelationalQueryWithoutPK({fullSchema:e,schema:t,tableNamesMap:i,table:e[De],tableConfig:t[De],queryConfig:d(G,xe)?$===!0?{limit:1}:{...$,limit:1}:$,tableAlias:Se,joinOn:te,nestedQueryRelation:G}),ar=c`${c.identifier(Se)}.${c.identifier("data")}`.as(v);C.push({on:c`true`,table:new z(de.sql,{},Se),alias:Se,joinType:"left",lateral:!0}),u.push({dbKey:v,tsKey:v,field:ar,relationTableTsKey:De,isJson:!0,selection:de.selection})}}if(u.length===0)throw new Ye({message:`No fields selected for table "${n.tsName}" ("${a}")`});let q;if(_=at(f,_),m){let w=c`json_build_array(${c.join(u.map(({field:I,tsKey:J,isJson:Q})=>Q?c`${c.identifier(`${a}_${J}`)}.${c.identifier("data")}`:d(I,b.Aliased)?I.sql:I),c`, `)})`;d(m,lt)&&(w=c`coalesce(json_agg(${w}${x.length>0?c` order by ${c.join(x,c`, `)}`:void 0}), '[]'::json)`);let N=[{dbKey:"data",tsKey:"data",field:w.as("data"),isJson:!0,relationTableTsKey:n.tsName,selection:u}];h!==void 0||p!==void 0||x.length>0?(q=this.buildSelectQuery({table:Je(s,a),fields:{},fieldsFlat:[{path:[],field:c.raw("*")}],where:_,limit:h,offset:p,orderBy:x,setOperators:[]}),_=void 0,h=void 0,p=void 0,x=[]):q=Je(s,a),q=this.buildSelectQuery({table:d(q,B)?q:new z(q,{},a),fields:{},fieldsFlat:N.map(({field:I})=>({path:[],field:d(I,E)?ce(I,a):I})),joins:C,where:_,limit:h,offset:p,orderBy:x,setOperators:[]})}else q=this.buildSelectQuery({table:Je(s,a),fields:{},fieldsFlat:u.map(({field:w})=>({path:[],field:d(w,E)?ce(w,a):w})),joins:C,where:_,limit:h,offset:p,orderBy:x,setOperators:[]});return{tableTsKey:n.tsName,sql:q,selection:u}}};var Vt=class{static[l]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}};var W=class{static[l]="PgSelectBuilder";fields;session;dialect;withList=[];distinct;constructor(e){this.fields=e.fields,this.session=e.session,this.dialect=e.dialect,e.withList&&(this.withList=e.withList),this.distinct=e.distinct}authToken;setToken(e){return this.authToken=e,this}from(e){let t=!!this.fields,i=e,s;return this.fields?s=this.fields:d(i,z)?s=Object.fromEntries(Object.keys(i._.selectedFields).map(n=>[n,i[n]])):d(i,Ie)?s=i[F].selectedFields:d(i,b)?s={}:s=hn(i),new Mt({table:i,fields:s,isPartialSelect:t,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct}).setToken(this.authToken)}},us=class extends Vt{static[l]="PgSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:e,fields:t,isPartialSelect:i,session:s,dialect:n,withList:o,distinct:a}){super(),this.config={withList:o,table:e,fields:{...t},distinct:a,setOperators:[]},this.isPartialSelect=i,this.session=s,this.dialect=n,this._={selectedFields:t,config:this.config},this.tableName=ge(e),this.joinsNotNullableMap=typeof this.tableName=="string"?{[this.tableName]:!0}:{};for(let m of ae(e))this.usedTables.add(m)}getUsedTables(){return[...this.usedTables]}createJoin(e,t){return(i,s)=>{let n=this.tableName,o=ge(i);for(let a of ae(i))this.usedTables.add(a);if(typeof o=="string"&&this.config.joins?.some(a=>a.alias===o))throw new Error(`Alias "${o}" is already used in this query`);if(!this.isPartialSelect&&(Object.keys(this.joinsNotNullableMap).length===1&&typeof n=="string"&&(this.config.fields={[n]:this.config.fields}),typeof o=="string"&&!d(i,b))){let a=d(i,z)?i._.selectedFields:d(i,H)?i[F].selectedFields:i[y.Symbol.Columns];this.config.fields[o]=a}if(typeof s=="function"&&(s=s(new Proxy(this.config.fields,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.joins||(this.config.joins=[]),this.config.joins.push({on:s,table:i,joinType:e,alias:o,lateral:t}),typeof o=="string")switch(e){case"left":{this.joinsNotNullableMap[o]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[o]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[o]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([a])=>[a,!1])),this.joinsNotNullableMap[o]=!1;break}}return this}}leftJoin=this.createJoin("left",!1);leftJoinLateral=this.createJoin("left",!0);rightJoin=this.createJoin("right",!1);innerJoin=this.createJoin("inner",!1);innerJoinLateral=this.createJoin("inner",!0);fullJoin=this.createJoin("full",!1);crossJoin=this.createJoin("cross",!1);crossJoinLateral=this.createJoin("cross",!0);createSetOperator(e,t){return i=>{let s=typeof i=="function"?i(Ya()):i;if(!Ge(this.getSelectedFields(),s.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return this.config.setOperators.push({type:e,isAll:t,rightSelect:s}),this}}union=this.createSetOperator("union",!1);unionAll=this.createSetOperator("union",!0);intersect=this.createSetOperator("intersect",!1);intersectAll=this.createSetOperator("intersect",!0);except=this.createSetOperator("except",!1);exceptAll=this.createSetOperator("except",!0);addSetOperators(e){return this.config.setOperators.push(...e),this}where(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.where=e,this}having(e){return typeof e=="function"&&(e=e(new Proxy(this.config.fields,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))),this.config.having=e,this}groupBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new O({sqlAliasedBehavior:"alias",sqlBehavior:"sql"})));this.config.groupBy=Array.isArray(t)?t:[t]}else this.config.groupBy=e;return this}orderBy(...e){if(typeof e[0]=="function"){let t=e[0](new Proxy(this.config.fields,new O({sqlAliasedBehavior:"alias",sqlBehavior:"sql"}))),i=Array.isArray(t)?t:[t];this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=i:this.config.orderBy=i}else{let t=e;this.config.setOperators.length>0?this.config.setOperators.at(-1).orderBy=t:this.config.orderBy=t}return this}limit(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).limit=e:this.config.limit=e,this}offset(e){return this.config.setOperators.length>0?this.config.setOperators.at(-1).offset=e:this.config.offset=e,this}for(e,t={}){return this.config.lockingClause={strength:e,config:t},this}getSQL(){return this.dialect.buildSelectQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}as(e){let t=[];if(t.push(...ae(this.config.table)),this.config.joins)for(let i of this.config.joins)t.push(...ae(i.table));return new Proxy(new z(this.getSQL(),this.config.fields,e,!1,[...new Set(t)]),new O({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new O({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}$withCache(e){return this.cacheConfig=e===void 0?{config:{},enable:!0,autoInvalidate:!0}:e===!1?{enable:!1}:{enable:!0,autoInvalidate:!0,...e},this}},Mt=class extends us{static[l]="PgSelect";_prepare(e){let{session:t,config:i,dialect:s,joinsNotNullableMap:n,authToken:o,cacheConfig:a,usedTables:m}=this;if(!t)throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");let{fields:f}=i;return A.startActiveSpan("drizzle.prepareQuery",()=>{let u=ie(f),h=t.prepareQuery(s.sqlToQuery(this.getSQL()),u,e,!0,void 0,{type:"select",tables:[...m]},a);return h.joinsNotNullableMap=n,h.setToken(o)})}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>A.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken))};dn(Mt,[M]);function je(r,e){return(t,i,...s)=>{let n=[i,...s].map(o=>({type:r,isAll:e,rightSelect:o}));for(let o of n)if(!Ge(t.getSelectedFields(),o.rightSelect.getSelectedFields()))throw new Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return t.addSetOperators(n)}}var Ya=()=>({union:Ga,unionAll:Za,intersect:Xa,intersectAll:el,except:tl,exceptAll:rl}),Ga=je("union",!1),Za=je("union",!0),Xa=je("intersect",!1),el=je("intersect",!0),tl=je("except",!1),rl=je("except",!0);var ze=class{static[l]="PgQueryBuilder";dialect;dialectConfig;constructor(e){this.dialect=d(e,_e)?e:void 0,this.dialectConfig=d(e,_e)?void 0:e}$with=(e,t)=>{let i=this;return{as:n=>(typeof n=="function"&&(n=n(i)),new Proxy(new qe(n.getSQL(),t??("getSelectedFields"in n?n.getSelectedFields()??{}:{}),e,!0),new O({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};with(...e){let t=this;function i(o){return new W({fields:o??void 0,session:void 0,dialect:t.getDialect(),withList:e})}function s(o){return new W({fields:o??void 0,session:void 0,dialect:t.getDialect(),distinct:!0})}function n(o,a){return new W({fields:a??void 0,session:void 0,dialect:t.getDialect(),distinct:{on:o}})}return{select:i,selectDistinct:s,selectDistinctOn:n}}select(e){return new W({fields:e??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(e){return new W({fields:e??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}selectDistinctOn(e,t){return new W({fields:t??void 0,session:void 0,dialect:this.getDialect(),distinct:{on:e}})}getDialect(){return this.dialect||(this.dialect=new _e(this.dialectConfig)),this.dialect}};function ae(r){return d(r,B)?[r[ve]?`${r[ve]}.${r[y.Symbol.BaseName]}`:r[y.Symbol.BaseName]]:d(r,z)?r._.usedTables??[]:d(r,b)?r.usedTables??[]:[]}var ut=class extends M{constructor(e,t,i,s){super(),this.session=t,this.dialect=i,this.config={table:e,withList:s}}static[l]="PgDelete";config;cacheConfig;where(e){return this.config.where=e,this}returning(e=this.config.table[y.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=ie(e),this}getSQL(){return this.dialect.buildDeleteQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return A.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:"delete",tables:ae(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>A.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new O({alias:Z(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}};var mt=class{constructor(e,t,i,s,n){this.table=e,this.session=t,this.dialect=i,this.withList=s,this.overridingSystemValue_=n}static[l]="PgInsertBuilder";authToken;setToken(e){return this.authToken=e,this}overridingSystemValue(){return this.overridingSystemValue_=!0,this}values(e){if(e=Array.isArray(e)?e:[e],e.length===0)throw new Error("values() must be called with at least one value");let t=e.map(i=>{let s={},n=this.table[y.Symbol.Columns];for(let o of Object.keys(i)){let a=i[o];s[o]=d(a,b)?a:new X(a,n[o])}return s});return new Wt(this.table,t,this.session,this.dialect,this.withList,!1,this.overridingSystemValue_).setToken(this.authToken)}select(e){let t=typeof e=="function"?e(new ze):e;if(!d(t,b)&&!Ge(this.table[qt],t._.selectedFields))throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");return new Wt(this.table,t,this.session,this.dialect,this.withList,!0)}},Wt=class extends M{constructor(e,t,i,s,n,o,a){super(),this.session=i,this.dialect=s,this.config={table:e,values:t,withList:n,select:o,overridingSystemValue_:a}}static[l]="PgInsert";config;cacheConfig;returning(e=this.config.table[y.Symbol.Columns]){return this.config.returningFields=e,this.config.returning=ie(e),this}onConflictDoNothing(e={}){if(e.target===void 0)this.config.onConflict=c`do nothing`;else{let t="";t=Array.isArray(e.target)?e.target.map(s=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(s))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target));let i=e.where?c` where ${e.where}`:void 0;this.config.onConflict=c`(${c.raw(t)})${i} do nothing`}return this}onConflictDoUpdate(e){if(e.where&&(e.targetWhere||e.setWhere))throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');let t=e.where?c` where ${e.where}`:void 0,i=e.targetWhere?c` where ${e.targetWhere}`:void 0,s=e.setWhere?c` where ${e.setWhere}`:void 0,n=this.dialect.buildUpdateSet(this.config.table,zt(this.config.table,e.set)),o="";return o=Array.isArray(e.target)?e.target.map(a=>this.dialect.escapeName(this.dialect.casing.getColumnCasing(a))).join(","):this.dialect.escapeName(this.dialect.casing.getColumnCasing(e.target)),this.config.onConflict=c`(${c.raw(o)})${i} do update set ${n}${t}${s}`,this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return A.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:"insert",tables:ae(this.config.table)},this.cacheConfig))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>A.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken));getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new O({alias:Z(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}};var Ut=class extends M{constructor(e,t,i){super(),this.session=t,this.dialect=i,this.config={view:e}}static[l]="PgRefreshMaterializedView";config;concurrently(){if(this.config.withNoData!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.concurrently=!0,this}withNoData(){if(this.config.concurrently!==void 0)throw new Error("Cannot use concurrently and withNoData together");return this.config.withNoData=!0,this}getSQL(){return this.dialect.buildRefreshMaterializedViewQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){return A.startActiveSpan("drizzle.prepareQuery",()=>this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),void 0,e,!0))}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>A.startActiveSpan("drizzle.operation",()=>this._prepare().execute(e,this.authToken))};var ft=class{constructor(e,t,i,s){this.table=e,this.session=t,this.dialect=i,this.withList=s}static[l]="PgUpdateBuilder";authToken;setToken(e){return this.authToken=e,this}set(e){return new ms(this.table,zt(this.table,e),this.session,this.dialect,this.withList).setToken(this.authToken)}},ms=class extends M{constructor(e,t,i,s,n){super(),this.session=i,this.dialect=s,this.config={set:t,table:e,withList:n,joins:[]},this.tableName=ge(e),this.joinsNotNullableMap=typeof this.tableName=="string"?{[this.tableName]:!0}:{}}static[l]="PgUpdate";config;tableName;joinsNotNullableMap;cacheConfig;from(e){let t=e,i=ge(t);return typeof i=="string"&&(this.joinsNotNullableMap[i]=!0),this.config.from=t,this}getTableLikeFields(e){return d(e,B)?e[y.Symbol.Columns]:d(e,z)?e._.selectedFields:e[F].selectedFields}createJoin(e){return(t,i)=>{let s=ge(t);if(typeof s=="string"&&this.config.joins.some(n=>n.alias===s))throw new Error(`Alias "${s}" is already used in this query`);if(typeof i=="function"){let n=this.config.from&&!d(this.config.from,b)?this.getTableLikeFields(this.config.from):void 0;i=i(new Proxy(this.config.table[y.Symbol.Columns],new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),n&&new Proxy(n,new O({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})))}if(this.config.joins.push({on:i,table:t,joinType:e,alias:s}),typeof s=="string")switch(e){case"left":{this.joinsNotNullableMap[s]=!1;break}case"right":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([n])=>[n,!1])),this.joinsNotNullableMap[s]=!0;break}case"inner":{this.joinsNotNullableMap[s]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([n])=>[n,!1])),this.joinsNotNullableMap[s]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");where(e){return this.config.where=e,this}returning(e){if(!e&&(e=Object.assign({},this.config.table[y.Symbol.Columns]),this.config.from)){let t=ge(this.config.from);if(typeof t=="string"&&this.config.from&&!d(this.config.from,b)){let i=this.getTableLikeFields(this.config.from);e[t]=i}for(let i of this.config.joins){let s=ge(i.table);if(typeof s=="string"&&!d(i.table,b)){let n=this.getTableLikeFields(i.table);e[s]=n}}}return this.config.returningFields=e,this.config.returning=ie(e),this}getSQL(){return this.dialect.buildUpdateQuery(this.config)}toSQL(){let{typings:e,...t}=this.dialect.sqlToQuery(this.getSQL());return t}_prepare(e){let t=this.session.prepareQuery(this.dialect.sqlToQuery(this.getSQL()),this.config.returning,e,!0,void 0,{type:"insert",tables:ae(this.config.table)},this.cacheConfig);return t.joinsNotNullableMap=this.joinsNotNullableMap,t}prepare(e){return this._prepare(e)}authToken;setToken(e){return this.authToken=e,this}execute=e=>this._prepare().execute(e,this.authToken);getSelectedFields(){return this.config.returningFields?new Proxy(this.config.returningFields,new O({alias:Z(this.config.table),sqlAliasedBehavior:"alias",sqlBehavior:"error"})):void 0}$dynamic(){return this}};var Jt=class r extends b{constructor(e){super(r.buildEmbeddedCount(e.source,e.filters).queryChunks),this.params=e,this.mapWith(Number),this.session=e.session,this.sql=r.buildCount(e.source,e.filters)}sql;token;static[l]="PgCountBuilder";[Symbol.toStringTag]="PgCountBuilder";session;static buildEmbeddedCount(e,t){return c`(select count(*) from ${e}${c.raw(" where ").if(t)}${t})`}static buildCount(e,t){return c`select count(*) as count from ${e}${c.raw(" where ").if(t)}${t};`}setToken(e){return this.token=e,this}then(e,t){return Promise.resolve(this.session.count(this.sql,this.token)).then(e,t)}catch(e){return this.then(void 0,e)}finally(e){return this.then(t=>(e?.(),t),t=>{throw e?.(),t})}};var Ht=class{constructor(e,t,i,s,n,o,a){this.fullSchema=e,this.schema=t,this.tableNamesMap=i,this.table=s,this.tableConfig=n,this.dialect=o,this.session=a}static[l]="PgRelationalQueryBuilder";findMany(e){return new Yt(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e||{},"many")}findFirst(e){return new Yt(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,e?{...e,limit:1}:{limit:1},"first")}},Yt=class extends M{constructor(e,t,i,s,n,o,a,m,f){super(),this.fullSchema=e,this.schema=t,this.tableNamesMap=i,this.table=s,this.tableConfig=n,this.dialect=o,this.session=a,this.config=m,this.mode=f}static[l]="PgRelationalQuery";_prepare(e){return A.startActiveSpan("drizzle.prepareQuery",()=>{let{query:t,builtQuery:i}=this._toSQL();return this.session.prepareQuery(i,void 0,e,!0,(s,n)=>{let o=s.map(a=>Bt(this.schema,this.tableConfig,a,t.selection,n));return this.mode==="first"?o[0]:o})})}prepare(e){return this._prepare(e)}_getQuery(){return this.dialect.buildRelationalQueryWithoutPK({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName})}getSQL(){return this._getQuery().sql}_toSQL(){let e=this._getQuery(),t=this.dialect.sqlToQuery(e.sql);return{query:e,builtQuery:t}}toSQL(){return this._toSQL().builtQuery}authToken;setToken(e){return this.authToken=e,this}execute(){return A.startActiveSpan("drizzle.operation",()=>this._prepare().execute(void 0,this.authToken))}};var Gt=class extends M{constructor(e,t,i,s){super(),this.execute=e,this.sql=t,this.query=i,this.mapBatchResult=s}static[l]="PgRaw";getSQL(){return this.sql}getQuery(){return this.query}mapResult(e,t){return t?this.mapBatchResult(e):e}_prepare(){return this}isResponseInArrayMode(){return!1}};var Oe=class{constructor(e,t,i){if(this.dialect=e,this.session=t,this._=i?{schema:i.schema,fullSchema:i.fullSchema,tableNamesMap:i.tableNamesMap,session:t}:{schema:void 0,fullSchema:{},tableNamesMap:{},session:t},this.query={},this._.schema)for(let[s,n]of Object.entries(this._.schema))this.query[s]=new Ht(i.fullSchema,this._.schema,this._.tableNamesMap,i.fullSchema[s],n,e,t);this.$cache={invalidate:async s=>{}}}static[l]="PgDatabase";query;$with=(e,t)=>{let i=this;return{as:n=>(typeof n=="function"&&(n=n(new ze(i.dialect))),new Proxy(new qe(n.getSQL(),t??("getSelectedFields"in n?n.getSelectedFields()??{}:{}),e,!0),new O({alias:e,sqlAliasedBehavior:"alias",sqlBehavior:"error"})))}};$count(e,t){return new Jt({source:e,filters:t,session:this.session})}$cache;with(...e){let t=this;function i(f){return new W({fields:f??void 0,session:t.session,dialect:t.dialect,withList:e})}function s(f){return new W({fields:f??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:!0})}function n(f,u){return new W({fields:u??void 0,session:t.session,dialect:t.dialect,withList:e,distinct:{on:f}})}function o(f){return new ft(f,t.session,t.dialect,e)}function a(f){return new mt(f,t.session,t.dialect,e)}function m(f){return new ut(f,t.session,t.dialect,e)}return{select:i,selectDistinct:s,selectDistinctOn:n,update:o,insert:a,delete:m}}select(e){return new W({fields:e??void 0,session:this.session,dialect:this.dialect})}selectDistinct(e){return new W({fields:e??void 0,session:this.session,dialect:this.dialect,distinct:!0})}selectDistinctOn(e,t){return new W({fields:t??void 0,session:this.session,dialect:this.dialect,distinct:{on:e}})}update(e){return new ft(e,this.session,this.dialect)}insert(e){return new mt(e,this.session,this.dialect)}delete(e){return new ut(e,this.session,this.dialect)}refreshMaterializedView(e){return new Ut(e,this.session,this.dialect)}authToken;execute(e){let t=typeof e=="string"?c.raw(e):e.getSQL(),i=this.dialect.sqlToQuery(t),s=this.session.prepareQuery(i,void 0,void 0,!1);return new Gt(()=>s.execute(void 0,this.authToken),t,i,n=>s.mapResult(n,!0))}transaction(e,t){return this.session.transaction(e,t)}};var fs=class{static[l]="Cache"},Qe=class extends fs{strategy(){return"all"}static[l]="NoopCache";async get(e){}async put(e,t,i,s){}async onMutate(e){}};async function ds(r,e){let t=`${r}-${JSON.stringify(e)}`,s=new TextEncoder().encode(t),n=await crypto.subtle.digest("SHA-256",s);return[...new Uint8Array(n)].map(m=>m.toString(16).padStart(2,"0")).join("")}var we=class r extends Error{constructor(e,t,i){super(`Failed query: ${e}
13
- params: ${t}`),this.query=e,this.params=t,this.cause=i,Error.captureStackTrace(this,r),i&&(this.cause=i)}};var Zt=class{constructor(e,t,i,s){this.query=e,this.cache=t,this.queryMetadata=i,this.cacheConfig=s,t&&t.strategy()==="all"&&s===void 0&&(this.cacheConfig={enable:!0,autoInvalidate:!0}),this.cacheConfig?.enable||(this.cacheConfig=void 0)}authToken;getQuery(){return this.query}mapResult(e,t){return e}setToken(e){return this.authToken=e,this}static[l]="PgPreparedQuery";joinsNotNullableMap;async queryWithCache(e,t,i){if(this.cache===void 0||d(this.cache,Qe)||this.queryMetadata===void 0)try{return await i()}catch(s){throw new we(e,t,s)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await i()}catch(s){throw new we(e,t,s)}if((this.queryMetadata.type==="insert"||this.queryMetadata.type==="update"||this.queryMetadata.type==="delete")&&this.queryMetadata.tables.length>0)try{let[s]=await Promise.all([i(),this.cache.onMutate({tables:this.queryMetadata.tables})]);return s}catch(s){throw new we(e,t,s)}if(!this.cacheConfig)try{return await i()}catch(s){throw new we(e,t,s)}if(this.queryMetadata.type==="select"){let s=await this.cache.get(this.cacheConfig.tag??await ds(e,t),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(s===void 0){let n;try{n=await i()}catch(o){throw new we(e,t,o)}return await this.cache.put(this.cacheConfig.tag??await ds(e,t),n,this.cacheConfig.autoInvalidate?this.queryMetadata.tables:[],this.cacheConfig.tag!==void 0,this.cacheConfig.config),n}return s}try{return await i()}catch(s){throw new we(e,t,s)}}},Xt=class{constructor(e){this.dialect=e}static[l]="PgSession";execute(e,t){return A.startActiveSpan("drizzle.operation",()=>A.startActiveSpan("drizzle.prepareQuery",()=>this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1)).setToken(t).execute(void 0,t))}all(e){return this.prepareQuery(this.dialect.sqlToQuery(e),void 0,void 0,!1).all()}async count(e,t){let i=await this.execute(e,t);return Number(i[0].count)}},er=class extends Oe{constructor(e,t,i,s=0){super(e,t,i),this.schema=i,this.nestedIndex=s}static[l]="PgTransaction";rollback(){throw new Lt}getTransactionConfigSQL(e){let t=[];return e.isolationLevel&&t.push(`isolation level ${e.isolationLevel}`),e.accessMode&&t.push(e.accessMode),typeof e.deferrable=="boolean"&&t.push(e.deferrable?"deferrable":"not deferrable"),c.raw(t.join(" "))}setTransaction(e){return this.session.execute(c`set transaction ${this.getTransactionConfigSQL(e)}`)}};var hs=class extends Zt{constructor(e,t,i,s,n,o,a,m,f,u){super({sql:t,params:i},n,o,a),this.client=e,this.queryString=t,this.params=i,this.logger=s,this.fields=m,this._isResponseInArrayMode=f,this.customResultMapper=u}static[l]="PostgresJsPreparedQuery";async execute(e={}){return A.startActiveSpan("drizzle.execute",async t=>{let i=jr(this.params,e);t?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(i)}),this.logger.logQuery(this.queryString,i);let{fields:s,queryString:n,client:o,joinsNotNullableMap:a,customResultMapper:m}=this;if(!s&&!m)return A.startActiveSpan("drizzle.driver.execute",()=>this.queryWithCache(n,i,async()=>await o.unsafe(n,i)));let f=await A.startActiveSpan("drizzle.driver.execute",()=>(t?.setAttributes({"drizzle.query.text":n,"drizzle.query.params":JSON.stringify(i)}),this.queryWithCache(n,i,async()=>await o.unsafe(n,i).values())));return A.startActiveSpan("drizzle.mapResponse",()=>m?m(f):f.map(u=>fn(s,u,a)))})}all(e={}){return A.startActiveSpan("drizzle.execute",async t=>{let i=jr(this.params,e);return t?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(i)}),this.logger.logQuery(this.queryString,i),A.startActiveSpan("drizzle.driver.execute",()=>(t?.setAttributes({"drizzle.query.text":this.queryString,"drizzle.query.params":JSON.stringify(i)}),this.queryWithCache(this.queryString,i,async()=>this.client.unsafe(this.queryString,i))))})}isResponseInArrayMode(){return this._isResponseInArrayMode}},dt=class r extends Xt{constructor(e,t,i,s={}){super(t),this.client=e,this.schema=i,this.options=s,this.logger=s.logger??new jt,this.cache=s.cache??new Qe}static[l]="PostgresJsSession";logger;cache;prepareQuery(e,t,i,s,n,o,a){return new hs(this.client,e.sql,e.params,this.logger,this.cache,o,a,t,s,n)}query(e,t){return this.logger.logQuery(e,t),this.client.unsafe(e,t).values()}queryObjects(e,t){return this.client.unsafe(e,t)}transaction(e,t){return this.client.begin(async i=>{let s=new r(i,this.dialect,this.schema,this.options),n=new ps(this.dialect,s,this.schema);return t&&await n.setTransaction(t),e(n)})}},ps=class r extends er{constructor(e,t,i,s=0){super(e,t,i,s),this.session=t}static[l]="PostgresJsTransaction";transaction(e){return this.session.client.savepoint(t=>{let i=new dt(t,this.dialect,this.schema,this.session.options),s=new r(this.dialect,i,this.schema);return e(s)})}};var ys=class extends Oe{static[l]="PostgresJsDatabase"};function Re(r,e={}){let t=m=>m;for(let m of["1184","1082","1083","1114","1182","1185","1115","1231"])r.options.parsers[m]=t,r.options.serializers[m]=t;r.options.serializers[114]=t,r.options.serializers[3802]=t;let i=new _e({casing:e.casing}),s;e.logger===!0?s=new It:e.logger!==!1&&(s=e.logger);let n;if(e.schema){let m=xo(e.schema,No);n={fullSchema:e.schema,schema:m.tables,tableNamesMap:m.tableNamesMap}}let o=new dt(r,i,n,{logger:s,cache:e.cache}),a=new ys(i,o,n);return a.$client=r,a.$cache=e.cache,a.$cache&&(a.$cache.invalidate=e.cache?.onMutate),a}function tr(...r){if(typeof r[0]=="string"){let e=gs(r[0]);return Re(e,r[1])}if(pn(r[0])){let{connection:e,client:t,...i}=r[0];if(t)return Re(t,i);if(typeof e=="object"&&e.url!==void 0){let{url:n,...o}=e,a=gs(n,o);return Re(a,i)}let s=gs(e);return Re(s,i)}return Re(r[0],r[1])}(r=>{function e(t){return Re({options:{parsers:{},serializers:{}}},t)}r.mock=e})(tr||(tr={}));import{join as al}from"path";var U=V("core_roles",r=>({id:r.serial().primaryKey(),createdAt:r.timestamp().notNull().defaultNow(),updatedAt:r.timestamp().notNull().$onUpdate(()=>new Date),protected:r.boolean().notNull().default(!1),default:r.boolean().notNull().default(!1),root:r.boolean().notNull().default(!1),guest:r.boolean().notNull().default(!1),color:r.varchar({length:19})})).enableRLS();var me=V("core_languages",r=>({id:r.serial().primaryKey(),code:r.varchar({length:32}).notNull().unique(),name:r.varchar({length:255}).notNull(),timezone:r.varchar({length:255}).notNull().default("UTC"),protected:r.boolean().notNull().default(!1),default:r.boolean().notNull().default(!1),enabled:r.boolean().notNull().default(!0),createdAt:r.timestamp().notNull().defaultNow(),updatedAt:r.timestamp().notNull().$onUpdate(()=>new Date),time24:r.boolean().notNull().default(!1)}),r=>[K("core_languages_code_idx").on(r.code),K("core_languages_name_idx").on(r.name)]).enableRLS(),rr=V("core_languages_words",r=>({id:r.serial().primaryKey(),languageCode:r.varchar().notNull().references(()=>me.code,{onDelete:"cascade"}),pluginCode:r.varchar({length:50}).notNull(),itemId:r.integer().notNull(),value:r.text().notNull(),tableName:r.varchar({length:255}).notNull(),variable:r.varchar({length:255}).notNull()}),r=>[K("core_languages_words_lang_code_idx").on(r.languageCode)]).enableRLS(),eg=Y(rr,({one:r})=>({language:r(me,{fields:[rr.languageCode],references:[me.code]})}));var D=V("core_users",r=>({id:r.serial().primaryKey(),nameCode:r.varchar({length:255}).notNull().unique(),name:r.varchar({length:255}).notNull().unique(),email:r.varchar({length:255}).notNull().unique(),password:r.varchar(),createdAt:r.timestamp().notNull().defaultNow(),newsletter:r.boolean().notNull().default(!1),avatarColor:r.varchar({length:6}).notNull(),emailVerified:r.boolean().notNull().default(!1),roleId:r.integer().references(()=>U.id).notNull(),birthday:r.timestamp(),ipAddress:r.varchar({length:40}).notNull(),language:r.varchar({length:32}).notNull().default("en").references(()=>me.code,{onDelete:"set default"})}),r=>[K("core_users_name_code_idx").on(r.nameCode),K("core_users_name_idx").on(r.name),K("core_users_email_idx").on(r.email)]).enableRLS(),og=Y(D,({one:r,many:e})=>({group:r(U,{fields:[D.roleId],references:[U.id]}),language:r(me,{fields:[D.language],references:[me.code]}),confirm_email:r(ir,{fields:[D.id],references:[ir.userId]}),sso:e(ws),forgot_password:r(sr,{fields:[D.id],references:[sr.userId]})})),ws=V("core_users_sso",r=>({userId:r.integer().references(()=>D.id,{onDelete:"cascade"}).notNull(),providerId:r.varchar({length:255}).notNull(),providerAccountId:r.varchar({length:255}).notNull(),createdAt:r.timestamp().notNull().defaultNow(),updatedAt:r.timestamp().notNull().$onUpdate(()=>new Date)}),r=>[K("core_users_sso_user_id_idx").on(r.userId)]).enableRLS(),ag=Y(ws,({one:r})=>({user:r(D,{fields:[ws.userId],references:[D.id]})})),ir=V("core_users_confirm_emails",r=>({id:r.serial().primaryKey(),userId:r.integer().references(()=>D.id,{onDelete:"cascade"}).notNull(),token:r.varchar({length:100}).notNull().unique(),createdAt:r.timestamp().notNull().defaultNow(),expires:r.timestamp().notNull()})).enableRLS(),lg=Y(ir,({one:r})=>({user:r(D,{fields:[ir.userId],references:[D.id]})})),sr=V("core_users_forgot_password",r=>({id:r.serial().primaryKey(),userId:r.integer().references(()=>D.id,{onDelete:"cascade"}).notNull().unique(),token:r.varchar({length:100}).notNull().unique(),ip_address:r.varchar({length:40}).notNull(),createdAt:r.timestamp().notNull().defaultNow(),expiresAt:r.timestamp().notNull()})).enableRLS(),cg=Y(sr,({one:r})=>({user:r(D,{fields:[sr.userId],references:[D.id]})}));var ht=V("core_sessions",r=>({id:r.serial().primaryKey(),token:r.varchar({length:255}).notNull().unique(),userId:r.integer().notNull().references(()=>D.id,{onDelete:"cascade"}),createdAt:r.timestamp().notNull().defaultNow(),expiresAt:r.timestamp().notNull(),deviceId:r.integer().references(()=>be.id,{onDelete:"cascade"}).notNull()}),r=>[K("core_sessions_user_id_idx").on(r.userId)]).enableRLS(),hg=Y(ht,({one:r})=>({user:r(D,{fields:[ht.userId],references:[D.id]}),device:r(be,{fields:[ht.deviceId],references:[be.id]})})),be=V("core_sessions_known_devices",r=>({id:r.serial().primaryKey(),ipAddress:r.varchar({length:40}).notNull(),userAgent:r.text().notNull(),lastSeen:r.timestamp().notNull().defaultNow()}),r=>[K("core_sessions_known_devices_ip_address_idx").on(r.ipAddress)]).enableRLS(),pg=Y(be,({one:r})=>({session:r(ht,{fields:[be.id],references:[ht.deviceId]})}));var pt=V("core_admin_permissions",r=>({id:r.serial().primaryKey(),roleId:r.integer().references(()=>U.id,{onDelete:"cascade"}),userId:r.integer().references(()=>D.id,{onDelete:"cascade"}),createdAt:r.timestamp().notNull().defaultNow(),updatedAt:r.timestamp().notNull().$onUpdate(()=>new Date),protected:r.boolean().notNull().default(!1)}),r=>[K("core_admin_permissions_role_id_idx").on(r.roleId),K("core_admin_permissions_user_id_idx").on(r.userId)]).enableRLS(),_g=Y(pt,({one:r})=>({group:r(U,{fields:[pt.roleId],references:[U.id]}),user:r(D,{fields:[pt.userId],references:[D.id]})})),bs=V("core_admin_sessions",r=>({id:r.serial().primaryKey(),token:r.varchar({length:255}).notNull().unique(),userId:r.integer().notNull().references(()=>D.id,{onDelete:"cascade"}),createdAt:r.timestamp().notNull().defaultNow(),lastSeen:r.timestamp().notNull().defaultNow(),expiresAt:r.timestamp().notNull(),deviceId:r.integer().references(()=>be.id,{onDelete:"cascade"}).notNull()}),r=>[K("core_admin_sessions_token_idx").on(r.token),K("core_admin_sessions_user_id_idx").on(r.userId)]).enableRLS(),Ng=Y(bs,({one:r})=>({user:r(D,{fields:[bs.userId],references:[D.id]}),device:r(be,{fields:[bs.deviceId],references:[be.id]})}));var gt=V("core_moderators_permissions",r=>({id:r.serial().primaryKey(),roleId:r.integer().references(()=>U.id,{onDelete:"cascade"}),userId:r.integer().references(()=>D.id,{onDelete:"cascade"}),createdAt:r.timestamp().notNull().defaultNow(),updatedAt:r.timestamp().notNull().$onUpdate(()=>new Date),protected:r.boolean().notNull().default(!1)}),r=>[K("core_moderators_permissions_role_id_idx").on(r.roleId),K("core_moderators_permissions_user_id_idx").on(r.userId)]).enableRLS(),Dg=Y(gt,({one:r})=>({group:r(U,{fields:[gt.roleId],references:[U.id]}),user:r(D,{fields:[gt.userId],references:[D.id]})}));import{existsSync as vo}from"fs";import{readFile as nl}from"fs/promises";import{join as fe,relative as Po}from"path";import{join as il}from"path";import{pathToFileURL as sl}from"url";var Co=async()=>{let r=il(process.cwd(),"src","vitnode.config.ts");try{return(await import(sl(r).href)).vitNodeConfig}catch(e){console.error("Failed to load config:",e),process.exit(1)}};var To=async()=>{let e=[...(await Co()).plugins.map(o=>o.pluginId),"@vitnode/core"],t=$t(process.cwd()),i=Dt(t),s=Tt(i),n=process.cwd();await Promise.all(e.map(async o=>{let a=fe(process.cwd(),"node_modules",o),m="";try{let _=fe(a,"package.json");vo(_)&&(m=JSON.parse(await nl(_,"utf-8")).name??"")}catch(_){console.error(`\x1B[31mError reading package.json for ${o}:\x1B[0m`,_);return}let f=o.replace(/\//g,"-").replace(/@/g,""),u=fe(n,"src","app","[locale]","(main)",fe("(plugins)",`(${f})`)),h=fe(n,"src","app","[locale]","admin","(auth)",fe("(plugins)",`(${f})`)),p=fe(n,"src","locales",o),x=[{sourceDir:fe(a,"src","app_admin"),destinationDir:h},{sourceDir:fe(a,"src","app"),destinationDir:u},{sourceDir:fe(a,"src","locales"),destinationDir:p}];for(let{sourceDir:_,destinationDir:C}of x)vo(_)&&!Me(_)&&(console.log(`\x1B[36mCopying ${o}:\x1B[0m ${Po(t,_)} \u2192 ${Po(t,C)}`),Ms(_,C,m,s,i,t,!1))}))};import{spawn as ol}from"child_process";var nr=async(r,e=[])=>new Promise((t,i)=>{let s=ol(r,e,{stdio:"inherit",shell:!0});s.on("error",n=>{i(n)}),s.on("close",n=>{n!==0?i(new Error(`Command failed with exit code ${n}`)):t(!0)})});$o.config({path:al(process.cwd(),"..","..",".env")});var $e=tr({connection:process.env.POSTGRES_URL??"postgresql://root:root@localhost:5432/vitnode",casing:"camelCase"}),ll=async()=>{try{await nr("npm",["run","drizzle-kit","up"]),await nr("npm",["run","drizzle-kit","generate"])}catch(r){console.error("\x1B[31m%s\x1B[0m",r),process.exit(1)}},cl=async()=>{try{await nr("npm",["run","drizzle-kit","migrate"])}catch(r){console.error("\x1B[31m%s\x1B[0m",r),process.exit(1)}},ul=async()=>{let[r]=await $e.select({count:as()}).from(U).limit(1),[e]=await $e.select({count:as()}).from(me);if(e.count===0&&await $e.insert(me).values([{code:"en",name:"English (USA)",default:!0,protected:!0,timezone:"America/New_York"}]),r.count===0){let t=await $e.insert(U).values([{protected:!0,guest:!0},{protected:!0,default:!0},{protected:!0,color:"hsl(122, 80%, 45%)"},{protected:!0,root:!0,color:"hsl(0, 100%, 50%)"}]).returning({id:U.id});await $e.insert(rr).values([{languageCode:"en",pluginCode:"core",itemId:t[0].id,value:"Guest",tableName:"core_roles",variable:"name"},{languageCode:"en",pluginCode:"core",itemId:t[1].id,value:"Member",tableName:"core_roles",variable:"name"},{languageCode:"en",pluginCode:"core",itemId:t[2].id,value:"Moderator",tableName:"core_roles",variable:"name"},{languageCode:"en",pluginCode:"core",itemId:t[3].id,value:"Administrator",tableName:"core_roles",variable:"name"}]),await Promise.all([await $e.insert(gt).values({roleId:t[2].id,protected:!0}),await $e.insert(pt).values({roleId:t[3].id,protected:!0})])}},Do=async({initMessage:r})=>{console.log(`${r} [1/4] Prepare plugins files...`),await To(),console.log(`${r} [2/4] Generate migrations...`),await ll(),console.log(`${r} [3/4] Run migrations...`),await cl(),console.log(`
14
- ${r} [4/4] Insert initial data...`),await ul(),console.log(`${r} \x1B[32mDatabase prepared successfully.\x1B[0m`),process.exit(0)};var Ss="\x1B[34m[VitNode]\x1B[0m",Eo=process.argv[2],Ao=process.argv[3];switch(Eo){case"init":Do({initMessage:Ss});break;case"plugin":(Ao==="--w"||Ao==="--watch")&&Js({initMessage:Ss});break;default:console.log(`${Ss} \x1B[31mCommand not found: "${Eo??""}"\x1B[0m`),process.exit(1)}
6
+ import{stat as Xt}from"fs";import{stat as Zt,readdir as es}from"fs/promises";import{EventEmitter as ts}from"events";import*as m from"path";import{stat as Pt,lstat as ke,readdir as Dt,realpath as vt}from"fs/promises";import{Readable as Nt}from"stream";import{resolve as Ce,relative as It,join as Rt,sep as St}from"path";var b={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},pe={root:".",fileFilter:t=>!0,directoryFilter:t=>!0,type:b.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(pe);var ze="READDIRP_RECURSIVE_ERROR",At=new Set(["ENOENT","EPERM","EACCES","ELOOP",ze]),Le=[b.DIR_TYPE,b.EVERYTHING_TYPE,b.FILE_DIR_TYPE,b.FILE_TYPE],Tt=new Set([b.DIR_TYPE,b.EVERYTHING_TYPE,b.FILE_DIR_TYPE]),Ft=new Set([b.EVERYTHING_TYPE,b.FILE_DIR_TYPE,b.FILE_TYPE]),kt=t=>At.has(t.code),Ct=process.platform==="win32",We=t=>!0,je=t=>{if(t===void 0)return We;if(typeof t=="function")return t;if(typeof t=="string"){let e=t.trim();return s=>s.basename===e}if(Array.isArray(t)){let e=t.map(s=>s.trim());return s=>e.some(i=>s.basename===i)}return We},_e=class extends Nt{constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let s={...pe,...e},{root:i,type:r}=s;this._fileFilter=je(s.fileFilter),this._directoryFilter=je(s.directoryFilter);let o=s.lstat?ke:Pt;Ct?this._stat=a=>o(a,{bigint:!0}):this._stat=o,this._maxDepth=s.depth??pe.depth,this._wantsDir=r?Tt.has(r):!1,this._wantsFile=r?Ft.has(r):!1,this._wantsEverything=r===b.EVERYTHING_TYPE,this._root=Ce(i),this._isDirent=!s.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(i,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let s=this.parent,i=s&&s.files;if(i&&i.length>0){let{path:r,depth:o}=s,a=i.splice(0,e).map(l=>this._formatEntry(l,r)),n=await Promise.all(a);for(let l of n){if(!l)continue;if(this.destroyed)return;let d=await this._getEntryType(l);d==="directory"&&this._directoryFilter(l)?(o<=this._maxDepth&&this.parents.push(this._exploreDir(l.fullPath,o+1)),this._wantsDir&&(this.push(l),e--)):(d==="file"||this._includeAsFile(l))&&this._fileFilter(l)&&this._wantsFile&&(this.push(l),e--)}}else{let r=this.parents.pop();if(!r){this.push(null);break}if(this.parent=await r,this.destroyed)return}}}catch(s){this.destroy(s)}finally{this.reading=!1}}}async _exploreDir(e,s){let i;try{i=await Dt(e,this._rdOptions)}catch(r){this._onError(r)}return{files:i,depth:s,path:e}}async _formatEntry(e,s){let i,r=this._isDirent?e.name:e;try{let o=Ce(Rt(s,r));i={path:It(this._root,o),fullPath:o,basename:r},i[this._statsProp]=this._isDirent?e:await this._stat(o)}catch(o){this._onError(o);return}return i}_onError(e){kt(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return"";let s=e[this._statsProp];if(s.isFile())return"file";if(s.isDirectory())return"directory";if(s&&s.isSymbolicLink()){let i=e.fullPath;try{let r=await vt(i),o=await ke(r);if(o.isFile())return"file";if(o.isDirectory()){let a=r.length;if(i.startsWith(r)&&i.substr(a,1)===St){let n=new Error(`Circular symlink detected: "${i}" points to "${r}"`);return n.code=ze,this._onError(n)}return"directory"}}catch(r){return this._onError(r),""}}}_includeAsFile(e){let s=e&&e[this._statsProp];return s&&this._wantsEverything&&!s.isDirectory()}};function Me(t,e={}){let s=e.entryType||e.type;if(s==="both"&&(s=b.FILE_DIR_TYPE),s&&(e.type=s),t){if(typeof t!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(s&&!Le.includes(s))throw new Error(`readdirp: Invalid type passed. Use one of ${Le.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=t,new _e(e)}import{watchFile as Lt,unwatchFile as Oe,watch as Wt}from"fs";import{open as jt,stat as He,lstat as zt,realpath as ge}from"fs/promises";import*as w from"path";import{type as Mt}from"os";var Ot="data",xe="end",Ye="close",Q=()=>{};var X=process.platform,Ee=X==="win32",$t=X==="darwin",Ht=X==="linux",Yt=X==="freebsd",Ue=Mt()==="OS400",x={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},v=x,Ut="watch",Kt={lstat:zt,stat:He},F="listeners",V="errHandlers",L="rawEmitters",Gt=[F,V,L],Vt=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),qt=t=>Vt.has(w.extname(t).slice(1).toLowerCase()),ye=(t,e)=>{t instanceof Set?t.forEach(e):e(t)},z=(t,e,s)=>{let i=t[e];i instanceof Set||(t[e]=i=new Set([i])),i.add(s)},Bt=t=>e=>{let s=t[e];s instanceof Set?s.clear():delete t[e]},M=(t,e,s)=>{let i=t[e];i instanceof Set?i.delete(s):i===s&&delete t[e]},Ke=t=>t instanceof Set?t.size===0:!t,q=new Map;function $e(t,e,s,i,r){let o=(a,n)=>{s(t),r(a,n,{watchedPath:t}),n&&t!==n&&B(w.resolve(t,n),F,w.join(t,n))};try{return Wt(t,{persistent:e.persistent},o)}catch(a){i(a);return}}var B=(t,e,s,i,r)=>{let o=q.get(t);o&&ye(o[e],a=>{a(s,i,r)})},Jt=(t,e,s,i)=>{let{listener:r,errHandler:o,rawEmitter:a}=i,n=q.get(e),l;if(!s.persistent)return l=$e(t,s,r,o,a),l?l.close.bind(l):void 0;if(n)z(n,F,r),z(n,V,o),z(n,L,a);else{if(l=$e(t,s,B.bind(null,e,F),o,B.bind(null,e,L)),!l)return;l.on(v.ERROR,async d=>{let c=B.bind(null,e,V);if(n&&(n.watcherUnusable=!0),Ee&&d.code==="EPERM")try{await(await jt(t,"r")).close(),c(d)}catch{}else c(d)}),n={listeners:r,errHandlers:o,rawEmitters:a,watcher:l},q.set(e,n)}return()=>{M(n,F,r),M(n,V,o),M(n,L,a),Ke(n.listeners)&&(n.watcher.close(),q.delete(e),Gt.forEach(Bt(n)),n.watcher=void 0,Object.freeze(n))}},we=new Map,Qt=(t,e,s,i)=>{let{listener:r,rawEmitter:o}=i,a=we.get(e),n=a&&a.options;return n&&(n.persistent<s.persistent||n.interval>s.interval)&&(Oe(e),a=void 0),a?(z(a,F,r),z(a,L,o)):(a={listeners:r,rawEmitters:o,options:s,watcher:Lt(e,s,(l,d)=>{ye(a.rawEmitters,f=>{f(v.CHANGE,e,{curr:l,prev:d})});let c=l.mtimeMs;(l.size!==d.size||c>d.mtimeMs||c===0)&&ye(a.listeners,f=>f(t,l))})},we.set(e,a)),()=>{M(a,F,r),M(a,L,o),Ke(a.listeners)&&(we.delete(e),Oe(e),a.options=a.watcher=void 0,Object.freeze(a))}},J=class{constructor(e){this.fsw=e,this._boundHandleError=s=>e._handleError(s)}_watchWithNodeFs(e,s){let i=this.fsw.options,r=w.dirname(e),o=w.basename(e);this.fsw._getWatchedDir(r).add(o);let n=w.resolve(e),l={persistent:i.persistent};s||(s=Q);let d;if(i.usePolling){let c=i.interval!==i.binaryInterval;l.interval=c&&qt(o)?i.binaryInterval:i.interval,d=Qt(e,n,l,{listener:s,rawEmitter:this.fsw._emitRaw})}else d=Jt(e,n,l,{listener:s,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return d}_handleFile(e,s,i){if(this.fsw.closed)return;let r=w.dirname(e),o=w.basename(e),a=this.fsw._getWatchedDir(r),n=s;if(a.has(o))return;let l=async(c,f)=>{if(this.fsw._throttle(Ut,e,5)){if(!f||f.mtimeMs===0)try{let u=await He(e);if(this.fsw.closed)return;let y=u.atimeMs,_=u.mtimeMs;if((!y||y<=_||_!==n.mtimeMs)&&this.fsw._emit(v.CHANGE,e,u),($t||Ht||Yt)&&n.ino!==u.ino){this.fsw._closeFile(c),n=u;let D=this._watchWithNodeFs(e,l);D&&this.fsw._addPathCloser(c,D)}else n=u}catch{this.fsw._remove(r,o)}else if(a.has(o)){let u=f.atimeMs,y=f.mtimeMs;(!u||u<=y||y!==n.mtimeMs)&&this.fsw._emit(v.CHANGE,e,f),n=f}}},d=this._watchWithNodeFs(e,l);if(!(i&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(v.ADD,e,0))return;this.fsw._emit(v.ADD,e,s)}return d}async _handleSymlink(e,s,i,r){if(this.fsw.closed)return;let o=e.fullPath,a=this.fsw._getWatchedDir(s);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let n;try{n=await ge(i)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(a.has(r)?this.fsw._symlinkPaths.get(o)!==n&&(this.fsw._symlinkPaths.set(o,n),this.fsw._emit(v.CHANGE,i,e.stats)):(a.add(r),this.fsw._symlinkPaths.set(o,n),this.fsw._emit(v.ADD,i,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(o))return!0;this.fsw._symlinkPaths.set(o,!0)}_handleRead(e,s,i,r,o,a,n){if(e=w.join(e,""),n=this.fsw._throttle("readdir",e,1e3),!n)return;let l=this.fsw._getWatchedDir(i.path),d=new Set,c=this.fsw._readdirp(e,{fileFilter:f=>i.filterPath(f),directoryFilter:f=>i.filterDir(f)});if(c)return c.on(Ot,async f=>{if(this.fsw.closed){c=void 0;return}let u=f.path,y=w.join(e,u);if(d.add(u),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,e,y,u))){if(this.fsw.closed){c=void 0;return}(u===r||!r&&!l.has(u))&&(this.fsw._incrReadyCount(),y=w.join(o,w.relative(o,y)),this._addToNodeFs(y,s,i,a+1))}}).on(v.ERROR,this._boundHandleError),new Promise((f,u)=>{if(!c)return u();c.once(xe,()=>{if(this.fsw.closed){c=void 0;return}let y=n?n.clear():!1;f(void 0),l.getChildren().filter(_=>_!==e&&!d.has(_)).forEach(_=>{this.fsw._remove(e,_)}),c=void 0,y&&this._handleRead(e,!1,i,r,o,a,n)})})}async _handleDir(e,s,i,r,o,a,n){let l=this.fsw._getWatchedDir(w.dirname(e)),d=l.has(w.basename(e));!(i&&this.fsw.options.ignoreInitial)&&!o&&!d&&this.fsw._emit(v.ADD_DIR,e,s),l.add(w.basename(e)),this.fsw._getWatchedDir(e);let c,f,u=this.fsw.options.depth;if((u==null||r<=u)&&!this.fsw._symlinkPaths.has(n)){if(!o&&(await this._handleRead(e,i,a,o,e,r,c),this.fsw.closed))return;f=this._watchWithNodeFs(e,(y,_)=>{_&&_.mtimeMs===0||this._handleRead(y,!1,a,o,e,r,c)})}return f}async _addToNodeFs(e,s,i,r,o){let a=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return a(),!1;let n=this.fsw._getWatchHelpers(e);i&&(n.filterPath=l=>i.filterPath(l),n.filterDir=l=>i.filterDir(l));try{let l=await Kt[n.statMethod](n.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(n.watchPath,l))return a(),!1;let d=this.fsw.options.followSymlinks,c;if(l.isDirectory()){let f=w.resolve(e),u=d?await ge(e):e;if(this.fsw.closed||(c=await this._handleDir(n.watchPath,l,s,r,o,n,u),this.fsw.closed))return;f!==u&&u!==void 0&&this.fsw._symlinkPaths.set(f,u)}else if(l.isSymbolicLink()){let f=d?await ge(e):e;if(this.fsw.closed)return;let u=w.dirname(n.watchPath);if(this.fsw._getWatchedDir(u).add(n.watchPath),this.fsw._emit(v.ADD,n.watchPath,l),c=await this._handleDir(u,l,s,r,e,n,f),this.fsw.closed)return;f!==void 0&&this.fsw._symlinkPaths.set(w.resolve(e),f)}else c=this._handleFile(n.watchPath,l,s);return a(),c&&this.fsw._addPathCloser(e,c),!1}catch(l){if(this.fsw._handleError(l))return a(),e}}};var be="/",ss="//",Qe=".",rs="..",is="string",os=/\\/g,Ge=/\/\//,ns=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,as=/^\.[/\\]/;function Z(t){return Array.isArray(t)?t:[t]}var Pe=t=>typeof t=="object"&&t!==null&&!(t instanceof RegExp);function ls(t){return typeof t=="function"?t:typeof t=="string"?e=>t===e:t instanceof RegExp?e=>t.test(e):typeof t=="object"&&t!==null?e=>{if(t.path===e)return!0;if(t.recursive){let s=m.relative(t.path,e);return s?!s.startsWith("..")&&!m.isAbsolute(s):!1}return!1}:()=>!1}function cs(t){if(typeof t!="string")throw new Error("string expected");t=m.normalize(t),t=t.replace(/\\/g,"/");let e=!1;t.startsWith("//")&&(e=!0);let s=/\/\//;for(;t.match(s);)t=t.replace(s,"/");return e&&(t="/"+t),t}function Ve(t,e,s){let i=cs(e);for(let r=0;r<t.length;r++){let o=t[r];if(o(i,s))return!0}return!1}function ds(t,e){if(t==null)throw new TypeError("anymatch: specify first argument");let i=Z(t).map(r=>ls(r));return e==null?(r,o)=>Ve(i,r,o):Ve(i,e)}var qe=t=>{let e=Z(t).flat();if(!e.every(s=>typeof s===is))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(Xe)},Be=t=>{let e=t.replace(os,be),s=!1;for(e.startsWith(ss)&&(s=!0);e.match(Ge);)e=e.replace(Ge,be);return s&&(e=be+e),e},Xe=t=>Be(m.normalize(Be(t))),Je=(t="")=>e=>typeof e=="string"?Xe(m.isAbsolute(e)?e:m.join(t,e)):e,fs=(t,e)=>m.isAbsolute(t)?t:m.join(e,t),us=Object.freeze(new Set),De=class{constructor(e,s){this.path=e,this._removeWatcher=s,this.items=new Set}add(e){let{items:s}=this;s&&e!==Qe&&e!==rs&&s.add(e)}async remove(e){let{items:s}=this;if(!s||(s.delete(e),s.size>0))return;let i=this.path;try{await es(i)}catch{this._removeWatcher&&this._removeWatcher(m.dirname(i),m.basename(i))}}has(e){let{items:s}=this;if(s)return s.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=Q,this.items=us,Object.freeze(this)}},hs="stat",ms="lstat",ve=class{constructor(e,s,i){this.fsw=i;let r=e;this.path=e=e.replace(as,""),this.watchPath=r,this.fullWatchPath=m.resolve(r),this.dirParts=[],this.dirParts.forEach(o=>{o.length>1&&o.pop()}),this.followSymlinks=s,this.statMethod=s?hs:ms}entryPath(e){return m.join(this.watchPath,m.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:s}=e;if(s&&s.isSymbolicLink())return this.filterDir(e);let i=this.entryPath(e);return this.fsw._isntIgnored(i,s)&&this.fsw._hasReadPermissions(s)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},ee=class extends ts{constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let s=e.awaitWriteFinish,i={stabilityThreshold:2e3,pollInterval:100},r={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?Z(e.ignored):Z([]),awaitWriteFinish:s===!0?i:typeof s=="object"?{...i,...s}:!1};Ue&&(r.usePolling=!0),r.atomic===void 0&&(r.atomic=!r.usePolling);let o=process.env.CHOKIDAR_USEPOLLING;if(o!==void 0){let l=o.toLowerCase();l==="false"||l==="0"?r.usePolling=!1:l==="true"||l==="1"?r.usePolling=!0:r.usePolling=!!l}let a=process.env.CHOKIDAR_INTERVAL;a&&(r.interval=Number.parseInt(a,10));let n=0;this._emitReady=()=>{n++,n>=this._readyCount&&(this._emitReady=Q,this._readyEmitted=!0,process.nextTick(()=>this.emit(x.READY)))},this._emitRaw=(...l)=>this.emit(x.RAW,...l),this._boundRemove=this._remove.bind(this),this.options=r,this._nodeFsHandler=new J(this),Object.freeze(r)}_addIgnoredPath(e){if(Pe(e)){for(let s of this._ignoredPaths)if(Pe(s)&&s.path===e.path&&s.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e=="string")for(let s of this._ignoredPaths)Pe(s)&&s.path===e&&this._ignoredPaths.delete(s)}add(e,s,i){let{cwd:r}=this.options;this.closed=!1,this._closePromise=void 0;let o=qe(e);return r&&(o=o.map(a=>fs(a,r))),o.forEach(a=>{this._removeIgnoredPath(a)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=o.length,Promise.all(o.map(async a=>{let n=await this._nodeFsHandler._addToNodeFs(a,!i,void 0,0,s);return n&&this._emitReady(),n})).then(a=>{this.closed||a.forEach(n=>{n&&this.add(m.dirname(n),m.basename(s||n))})}),this}unwatch(e){if(this.closed)return this;let s=qe(e),{cwd:i}=this.options;return s.forEach(r=>{!m.isAbsolute(r)&&!this._closers.has(r)&&(i&&(r=m.join(i,r)),r=m.resolve(r)),this._closePath(r),this._addIgnoredPath(r),this._watched.has(r)&&this._addIgnoredPath({path:r,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(s=>s.forEach(i=>{let r=i();r instanceof Promise&&e.push(r)})),this._streams.forEach(s=>s.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(s=>s.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((s,i)=>{let o=(this.options.cwd?m.relative(this.options.cwd,i):i)||Qe;e[o]=s.getChildren().sort()}),e}emitWithAll(e,s){this.emit(e,...s),e!==x.ERROR&&this.emit(x.ALL,e,...s)}async _emit(e,s,i){if(this.closed)return;let r=this.options;Ee&&(s=m.normalize(s)),r.cwd&&(s=m.relative(r.cwd,s));let o=[s];i!=null&&o.push(i);let a=r.awaitWriteFinish,n;if(a&&(n=this._pendingWrites.get(s)))return n.lastChange=new Date,this;if(r.atomic){if(e===x.UNLINK)return this._pendingUnlinks.set(s,[e,...o]),setTimeout(()=>{this._pendingUnlinks.forEach((l,d)=>{this.emit(...l),this.emit(x.ALL,...l),this._pendingUnlinks.delete(d)})},typeof r.atomic=="number"?r.atomic:100),this;e===x.ADD&&this._pendingUnlinks.has(s)&&(e=x.CHANGE,this._pendingUnlinks.delete(s))}if(a&&(e===x.ADD||e===x.CHANGE)&&this._readyEmitted){let l=(d,c)=>{d?(e=x.ERROR,o[0]=d,this.emitWithAll(e,o)):c&&(o.length>1?o[1]=c:o.push(c),this.emitWithAll(e,o))};return this._awaitWriteFinish(s,a.stabilityThreshold,e,l),this}if(e===x.CHANGE&&!this._throttle(x.CHANGE,s,50))return this;if(r.alwaysStat&&i===void 0&&(e===x.ADD||e===x.ADD_DIR||e===x.CHANGE)){let l=r.cwd?m.join(r.cwd,s):s,d;try{d=await Zt(l)}catch{}if(!d||this.closed)return;o.push(d)}return this.emitWithAll(e,o),this}_handleError(e){let s=e&&e.code;return e&&s!=="ENOENT"&&s!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||s!=="EPERM"&&s!=="EACCES")&&this.emit(x.ERROR,e),e||this.closed}_throttle(e,s,i){this._throttled.has(e)||this._throttled.set(e,new Map);let r=this._throttled.get(e);if(!r)throw new Error("invalid throttle");let o=r.get(s);if(o)return o.count++,!1;let a,n=()=>{let d=r.get(s),c=d?d.count:0;return r.delete(s),clearTimeout(a),d&&clearTimeout(d.timeoutObject),c};a=setTimeout(n,i);let l={timeoutObject:a,clear:n,count:0};return r.set(s,l),l}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,s,i,r){let o=this.options.awaitWriteFinish;if(typeof o!="object")return;let a=o.pollInterval,n,l=e;this.options.cwd&&!m.isAbsolute(e)&&(l=m.join(this.options.cwd,e));let d=new Date,c=this._pendingWrites;function f(u){Xt(l,(y,_)=>{if(y||!c.has(e)){y&&y.code!=="ENOENT"&&r(y);return}let D=Number(new Date);u&&_.size!==u.size&&(c.get(e).lastChange=D);let j=c.get(e);D-j.lastChange>=s?(c.delete(e),r(void 0,_)):n=setTimeout(f,a,_)})}c.has(e)||(c.set(e,{lastChange:d,cancelWait:()=>(c.delete(e),clearTimeout(n),i)}),n=setTimeout(f,a))}_isIgnored(e,s){if(this.options.atomic&&ns.test(e))return!0;if(!this._userIgnored){let{cwd:i}=this.options,o=(this.options.ignored||[]).map(Je(i)),n=[...[...this._ignoredPaths].map(Je(i)),...o];this._userIgnored=ds(n,void 0)}return this._userIgnored(e,s)}_isntIgnored(e,s){return!this._isIgnored(e,s)}_getWatchHelpers(e){return new ve(e,this.options.followSymlinks,this)}_getWatchedDir(e){let s=m.resolve(e);return this._watched.has(s)||this._watched.set(s,new De(s,this._boundRemove)),this._watched.get(s)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,s,i){let r=m.join(e,s),o=m.resolve(r);if(i=i??(this._watched.has(r)||this._watched.has(o)),!this._throttle("remove",r,100))return;!i&&this._watched.size===1&&this.add(e,s,!0),this._getWatchedDir(r).getChildren().forEach(u=>this._remove(r,u));let l=this._getWatchedDir(e),d=l.has(s);l.remove(s),this._symlinkPaths.has(o)&&this._symlinkPaths.delete(o);let c=r;if(this.options.cwd&&(c=m.relative(this.options.cwd,r)),this.options.awaitWriteFinish&&this._pendingWrites.has(c)&&this._pendingWrites.get(c).cancelWait()===x.ADD)return;this._watched.delete(r),this._watched.delete(o);let f=i?x.UNLINK_DIR:x.UNLINK;d&&!this._isIgnored(r)&&this._emit(f,r),this._closePath(r)}_closePath(e){this._closeFile(e);let s=m.dirname(e);this._getWatchedDir(s).remove(m.basename(e))}_closeFile(e){let s=this._closers.get(e);s&&(s.forEach(i=>i()),this._closers.delete(e))}_addPathCloser(e,s){if(!s)return;let i=this._closers.get(e);i||(i=[],this._closers.set(e,i)),i.push(s)}_readdirp(e,s){if(this.closed)return;let i={type:x.ALL,alwaysStat:!0,lstat:!0,...s,depth:0},r=Me(e,i);return this._streams.add(r),r.once(Ye,()=>{r=void 0}),r.once(xe,()=>{r&&(this._streams.delete(r),r=void 0)}),r}};function ps(t,e={}){let s=new ee(e);return s.add(t),s}var Ze={watch:ps,FSWatcher:ee};import{existsSync as k,mkdirSync as Is,readFileSync as Rs,unlinkSync as Ss}from"fs";import{basename as rt,join as P,relative as it}from"path";import{copyFileSync as _s,existsSync as N,mkdirSync as gs,readdirSync as tt,readFileSync as ws,writeFileSync as ys}from"fs";import{basename as et,dirname as te,extname as xs,join as S,normalize as Es,relative as W,sep as bs}from"path";var Ps=/import\s+(?:(?:{[^}]*})|(?:[^{}\s,]*))?\s*(?:,\s*(?:{[^}]*}))?\s*from\s+['"]([./]+[^'"]*)['"]/g,Ds=/import\s+(?:(?:{[^}]*})|(?:[^{}\s,]*))?\s*(?:,\s*(?:{[^}]*}))?\s*from\s+['"](@\/[^'"]*)['"]/g,vs=/import\s*\(\s*['"](@\/[^'"]*)['"]\s*\)/g,Ne=/\.(js|jsx|ts|tsx)$/,Ie=/^page\.(tsx|ts|jsx|js)$/i,O=(t,e)=>{let i=W(e,t).split(bs);i.pop();let r=i.filter(o=>!o.startsWith("("));return Es(r.join("/"))},se=t=>{let e=new Map,s=i=>{if(N(i))for(let r of tt(i,{withFileTypes:!0})){let o=S(i,r.name);if(r.isDirectory()){s(o);continue}if(Ie.test(r.name)){let a=O(o,t);e.set(a,o)}}};return s(t),e},Ns=(t,e)=>{let s=t.replace(Ps,(i,r)=>{if(r.startsWith(".")){let a=r.replace(Ne,"").replace(/^(?:\.\.\/)+/,"");return i.replace(r,`${e}/${a}`)}return i});return s=s.replace(Ds,(i,r)=>{let o=r.replace(/^@\//,"").replace(Ne,"");return i.replace(r,`${e}/${o}`)}),s=s.replace(vs,(i,r)=>{let o=r.replace(/^@\//,"").replace(Ne,"");return i.replace(r,`${e}/${o}`)}),s};function re(t){let e=t;for(;e!==te(e);){if(N(S(e,"turbo.json"))||N(S(e,".git")))return e;e=te(e)}let s=S(t,"package.json");if(N(s))return te(s);throw new Error("\u274C Could not locate project root")}function ie(t){let e=S(t,"src","app","[locale]");if(N(e))return e;let s=S(t,"apps","web","src","app","[locale]");return N(s),s}var $=t=>{let e=[];if(!N(t))return e;let s=tt(t,{withFileTypes:!0});for(let i of s){let r=S(t,i.name);i.isDirectory()?e.push(...$(r)):e.push(r)}return e},H=t=>N(t)?$(t).length===0:!0,Re=(t,e,s,i,r,o,a=!0)=>{let n=et(t);if(Ie.test(n)){let l=O(e,r),d=i.get(l);if(d&&d!==e){a&&console.log(`\x1B[31mSkipped duplicate page:\x1B[0m ${W(o,e)} (collides with ${W(o,d)})`);return}}try{let l=te(e);N(l)||gs(l,{recursive:!0});let d=xs(t);if(s&&[".js",".jsx",".ts",".tsx"].includes(d)){let c=ws(t,"utf-8"),f=Ns(c,s);ys(e,f)}else _s(t,e);if(a){let c=t.indexOf(S("src","app")),f=c!==-1?t.substring(c):t.startsWith(o)?W(o,t):t,u=e.startsWith(o)?W(o,e):e;console.log(`\x1B[32mCopied:\x1B[0m ${f} \u2192 ${u}`)}if(Ie.test(et(e))){let c=O(e,r);i.set(c,e)}}catch(l){console.error(`\x1B[31mError copying file:\x1B[0m ${t}`,l)}},st=(t,e,s,i,r,o,a=!0)=>{if(!N(t)||H(t))return;let n=$(t);for(let l of n){let d=W(t,l),c=S(e,d);Re(l,c,s,i,r,o,a)}};var ot=({initMessage:t})=>{let e=process.cwd(),s=re(e),i=ie(s),r=se(i),o=rt(e);try{let h=P(e,"package.json");k(h)&&(o=JSON.parse(Rs(h,"utf-8")).name??"")}catch(h){console.error("\x1B[31mError reading package.json:\x1B[0m",h);return}let a=o.replace(/\//g,"-").replace(/@/g,""),n=P(s,"apps","web","src","app","[locale]","(main)",P("(plugins)",`(${a})`)),l=P(s,"apps","web","src","app","[locale]","admin","(auth)",P("(plugins)",`(${a})`)),d=P(s,"apps","web","src","locales",o),c=[{sourceDir:P(e,"src","app_admin"),destinationDir:l},{sourceDir:P(e,"src","app"),destinationDir:n},{sourceDir:P(e,"src","locales"),destinationDir:d}];for(let{sourceDir:h,destinationDir:g}of c)k(h)&&!H(h)&&!k(g)&&Is(g,{recursive:!0});let f=(h,g)=>{Re(h,g,o,r,i,s)},u=h=>{try{if(k(h)&&(Ss(h),console.log(`\x1B[33mRemoved:\x1B[0m ${h}`),/^page\.(tsx|ts|jsx|js)$/i.test(rt(h)))){let g=O(h,i);r.get(g)===h&&r.delete(g)}}catch(g){console.error(`\x1B[31mError removing file:\x1B[0m ${h}`,g)}},y=(h,g)=>{if(!k(g)||g.includes(P("src","locales")))return;let me=$(g);for(let T of me){let G=it(g,T),bt=P(h,G);k(bt)||u(T)}};for(let{sourceDir:h,destinationDir:g}of c)y(h,g);console.log(`${t} \x1B[34mWatching for changes in plugins...\x1B[0m`);let _=c.map(h=>h.sourceDir).filter(h=>k(h)),D=Ze.watch(_,{ignoreInitial:!1,persistent:!0}),j=h=>{let g=c.filter(({sourceDir:T})=>h.startsWith(T));if(g.length===0)throw new Error(`No matching source directory for: ${h}`);let he=g.reduce((T,G)=>G.sourceDir.length>T.sourceDir.length?G:T),me=it(he.sourceDir,h);return P(he.destinationDir,me)};D.on("add",h=>{let g=j(h);f(h,g)}).on("change",h=>{let g=j(h);f(h,g)}).on("unlink",h=>{let g=j(h);u(g)}).on("error",h=>{console.error("\x1B[31mWatcher error:\x1B[0m",h)})};import*as wt from"dotenv";import{count as gt}from"drizzle-orm";import{drizzle as zs}from"drizzle-orm/postgres-js";import{join as Ms}from"path";import{relations as dt}from"drizzle-orm";import{index as fe,pgTable as ft}from"drizzle-orm/pg-core";import{pgTable as As}from"drizzle-orm/pg-core";var E=As("core_roles",t=>({id:t.serial().primaryKey(),createdAt:t.timestamp().notNull().defaultNow(),updatedAt:t.timestamp().notNull().$onUpdate(()=>new Date),protected:t.boolean().notNull().default(!1),default:t.boolean().notNull().default(!1),root:t.boolean().notNull().default(!1),guest:t.boolean().notNull().default(!1),color:t.varchar({length:19})})).enableRLS();import{relations as at}from"drizzle-orm";import{index as lt,pgTable as ct}from"drizzle-orm/pg-core";import{relations as ce}from"drizzle-orm";import{index as ne,pgTable as de}from"drizzle-orm/pg-core";import{relations as Ts}from"drizzle-orm";import{index as Se,pgTable as nt}from"drizzle-orm/pg-core";var I=nt("core_languages",t=>({id:t.serial().primaryKey(),code:t.varchar({length:32}).notNull().unique(),name:t.varchar({length:255}).notNull(),timezone:t.varchar({length:255}).notNull().default("UTC"),protected:t.boolean().notNull().default(!1),default:t.boolean().notNull().default(!1),enabled:t.boolean().notNull().default(!0),createdAt:t.timestamp().notNull().defaultNow(),updatedAt:t.timestamp().notNull().$onUpdate(()=>new Date),time24:t.boolean().notNull().default(!1)}),t=>[Se("core_languages_code_idx").on(t.code),Se("core_languages_name_idx").on(t.name)]).enableRLS(),oe=nt("core_languages_words",t=>({id:t.serial().primaryKey(),languageCode:t.varchar().notNull().references(()=>I.code,{onDelete:"cascade"}),pluginCode:t.varchar({length:50}).notNull(),itemId:t.integer().notNull(),value:t.text().notNull(),tableName:t.varchar({length:255}).notNull(),variable:t.varchar({length:255}).notNull()}),t=>[Se("core_languages_words_lang_code_idx").on(t.languageCode)]).enableRLS(),pr=Ts(oe,({one:t})=>({language:t(I,{fields:[oe.languageCode],references:[I.code]})}));var p=de("core_users",t=>({id:t.serial().primaryKey(),nameCode:t.varchar({length:255}).notNull().unique(),name:t.varchar({length:255}).notNull().unique(),email:t.varchar({length:255}).notNull().unique(),password:t.varchar(),createdAt:t.timestamp().notNull().defaultNow(),newsletter:t.boolean().notNull().default(!1),avatarColor:t.varchar({length:6}).notNull(),emailVerified:t.boolean().notNull().default(!1),roleId:t.integer().references(()=>E.id).notNull(),birthday:t.timestamp(),ipAddress:t.varchar({length:40}).notNull(),language:t.varchar({length:32}).notNull().default("en").references(()=>I.code,{onDelete:"set default"})}),t=>[ne("core_users_name_code_idx").on(t.nameCode),ne("core_users_name_idx").on(t.name),ne("core_users_email_idx").on(t.email)]).enableRLS(),Er=ce(p,({one:t,many:e})=>({group:t(E,{fields:[p.roleId],references:[E.id]}),language:t(I,{fields:[p.language],references:[I.code]}),confirm_email:t(ae,{fields:[p.id],references:[ae.userId]}),sso:e(Ae),forgot_password:t(le,{fields:[p.id],references:[le.userId]})})),Ae=de("core_users_sso",t=>({userId:t.integer().references(()=>p.id,{onDelete:"cascade"}).notNull(),providerId:t.varchar({length:255}).notNull(),providerAccountId:t.varchar({length:255}).notNull(),createdAt:t.timestamp().notNull().defaultNow(),updatedAt:t.timestamp().notNull().$onUpdate(()=>new Date)}),t=>[ne("core_users_sso_user_id_idx").on(t.userId)]).enableRLS(),br=ce(Ae,({one:t})=>({user:t(p,{fields:[Ae.userId],references:[p.id]})})),ae=de("core_users_confirm_emails",t=>({id:t.serial().primaryKey(),userId:t.integer().references(()=>p.id,{onDelete:"cascade"}).notNull(),token:t.varchar({length:100}).notNull().unique(),createdAt:t.timestamp().notNull().defaultNow(),expires:t.timestamp().notNull()})).enableRLS(),Pr=ce(ae,({one:t})=>({user:t(p,{fields:[ae.userId],references:[p.id]})})),le=de("core_users_forgot_password",t=>({id:t.serial().primaryKey(),userId:t.integer().references(()=>p.id,{onDelete:"cascade"}).notNull().unique(),token:t.varchar({length:100}).notNull().unique(),ip_address:t.varchar({length:40}).notNull(),createdAt:t.timestamp().notNull().defaultNow(),expiresAt:t.timestamp().notNull()})).enableRLS(),Dr=ce(le,({one:t})=>({user:t(p,{fields:[le.userId],references:[p.id]})}));var Y=ct("core_sessions",t=>({id:t.serial().primaryKey(),token:t.varchar({length:255}).notNull().unique(),userId:t.integer().notNull().references(()=>p.id,{onDelete:"cascade"}),createdAt:t.timestamp().notNull().defaultNow(),expiresAt:t.timestamp().notNull(),deviceId:t.integer().references(()=>A.id,{onDelete:"cascade"}).notNull()}),t=>[lt("core_sessions_user_id_idx").on(t.userId)]).enableRLS(),Sr=at(Y,({one:t})=>({user:t(p,{fields:[Y.userId],references:[p.id]}),device:t(A,{fields:[Y.deviceId],references:[A.id]})})),A=ct("core_sessions_known_devices",t=>({id:t.serial().primaryKey(),publicId:t.varchar({length:32}).notNull().unique(),ipAddress:t.varchar({length:40}).notNull(),userAgent:t.text().notNull(),lastSeen:t.timestamp().notNull().defaultNow()}),t=>[lt("core_sessions_known_devices_ip_address_idx").on(t.ipAddress)]).enableRLS(),Ar=at(A,({one:t})=>({session:t(Y,{fields:[A.id],references:[Y.deviceId]})}));var U=ft("core_admin_permissions",t=>({id:t.serial().primaryKey(),roleId:t.integer().references(()=>E.id,{onDelete:"cascade"}),userId:t.integer().references(()=>p.id,{onDelete:"cascade"}),createdAt:t.timestamp().notNull().defaultNow(),updatedAt:t.timestamp().notNull().$onUpdate(()=>new Date),protected:t.boolean().notNull().default(!1)}),t=>[fe("core_admin_permissions_role_id_idx").on(t.roleId),fe("core_admin_permissions_user_id_idx").on(t.userId)]).enableRLS(),jr=dt(U,({one:t})=>({group:t(E,{fields:[U.roleId],references:[E.id]}),user:t(p,{fields:[U.userId],references:[p.id]})})),Te=ft("core_admin_sessions",t=>({id:t.serial().primaryKey(),token:t.varchar({length:255}).notNull().unique(),userId:t.integer().notNull().references(()=>p.id,{onDelete:"cascade"}),createdAt:t.timestamp().notNull().defaultNow(),lastSeen:t.timestamp().notNull().defaultNow(),expiresAt:t.timestamp().notNull(),deviceId:t.integer().references(()=>A.id,{onDelete:"cascade"}).notNull()}),t=>[fe("core_admin_sessions_token_idx").on(t.token),fe("core_admin_sessions_user_id_idx").on(t.userId)]).enableRLS(),zr=dt(Te,({one:t})=>({user:t(p,{fields:[Te.userId],references:[p.id]}),device:t(A,{fields:[Te.deviceId],references:[A.id]})}));import{relations as Fs}from"drizzle-orm";import{index as ut,pgTable as ks}from"drizzle-orm/pg-core";var K=ks("core_moderators_permissions",t=>({id:t.serial().primaryKey(),roleId:t.integer().references(()=>E.id,{onDelete:"cascade"}),userId:t.integer().references(()=>p.id,{onDelete:"cascade"}),createdAt:t.timestamp().notNull().defaultNow(),updatedAt:t.timestamp().notNull().$onUpdate(()=>new Date),protected:t.boolean().notNull().default(!1)}),t=>[ut("core_moderators_permissions_role_id_idx").on(t.roleId),ut("core_moderators_permissions_user_id_idx").on(t.userId)]).enableRLS(),Ur=Fs(K,({one:t})=>({group:t(E,{fields:[K.roleId],references:[E.id]}),user:t(p,{fields:[K.userId],references:[p.id]})}));import{existsSync as mt}from"fs";import{readFile as Ws}from"fs/promises";import{join as R,relative as pt}from"path";import{join as Cs}from"path";import{pathToFileURL as Ls}from"url";var ht=async()=>{let t=Cs(process.cwd(),"src","vitnode.config.ts");try{return(await import(Ls(t).href)).vitNodeConfig}catch(e){console.error("Failed to load config:",e),process.exit(1)}};var _t=async()=>{let e=[...(await ht()).plugins.map(a=>a.pluginId),"@vitnode/core"],s=re(process.cwd()),i=ie(s),r=se(i),o=process.cwd();await Promise.all(e.map(async a=>{let n=R(process.cwd(),"node_modules",a),l="";try{let _=R(n,"package.json");mt(_)&&(l=JSON.parse(await Ws(_,"utf-8")).name??"")}catch(_){console.error(`\x1B[31mError reading package.json for ${a}:\x1B[0m`,_);return}let d=a.replace(/\//g,"-").replace(/@/g,""),c=R(o,"src","app","[locale]","(main)",R("(plugins)",`(${d})`)),f=R(o,"src","app","[locale]","admin","(auth)",R("(plugins)",`(${d})`)),u=R(o,"src","locales",a),y=[{sourceDir:R(n,"src","app_admin"),destinationDir:f},{sourceDir:R(n,"src","app"),destinationDir:c},{sourceDir:R(n,"src","locales"),destinationDir:u}];for(let{sourceDir:_,destinationDir:D}of y)mt(_)&&!H(_)&&(console.log(`\x1B[36mCopying ${a}:\x1B[0m ${pt(s,_)} \u2192 ${pt(s,D)}`),st(_,D,l,r,i,s,!1))}))};import{spawn as js}from"child_process";var ue=async(t,e=[])=>new Promise((s,i)=>{let r=js(t,e,{stdio:"inherit",shell:!0});r.on("error",o=>{i(o)}),r.on("close",o=>{o!==0?i(new Error(`Command failed with exit code ${o}`)):s(!0)})});wt.config({path:Ms(process.cwd(),"..","..",".env")});var C=zs({connection:process.env.POSTGRES_URL??"postgresql://root:root@localhost:5432/vitnode",casing:"camelCase"}),Os=async()=>{try{await ue("npm",["run","drizzle-kit","up"]),await ue("npm",["run","drizzle-kit","generate"])}catch(t){console.error("\x1B[31m%s\x1B[0m",t),process.exit(1)}},$s=async()=>{try{await ue("npm",["run","drizzle-kit","migrate"])}catch(t){console.error("\x1B[31m%s\x1B[0m",t),process.exit(1)}},Hs=async()=>{let[t]=await C.select({count:gt()}).from(E).limit(1),[e]=await C.select({count:gt()}).from(I);if(e.count===0&&await C.insert(I).values([{code:"en",name:"English (USA)",default:!0,protected:!0,timezone:"America/New_York"}]),t.count===0){let s=await C.insert(E).values([{protected:!0,guest:!0},{protected:!0,default:!0},{protected:!0,color:"hsl(122, 80%, 45%)"},{protected:!0,root:!0,color:"hsl(0, 100%, 50%)"}]).returning({id:E.id});await C.insert(oe).values([{languageCode:"en",pluginCode:"core",itemId:s[0].id,value:"Guest",tableName:"core_roles",variable:"name"},{languageCode:"en",pluginCode:"core",itemId:s[1].id,value:"Member",tableName:"core_roles",variable:"name"},{languageCode:"en",pluginCode:"core",itemId:s[2].id,value:"Moderator",tableName:"core_roles",variable:"name"},{languageCode:"en",pluginCode:"core",itemId:s[3].id,value:"Administrator",tableName:"core_roles",variable:"name"}]),await Promise.all([await C.insert(K).values({roleId:s[2].id,protected:!0}),await C.insert(U).values({roleId:s[3].id,protected:!0})])}},yt=async({initMessage:t})=>{console.log(`${t} [1/4] Prepare plugins files...`),await _t(),console.log(`${t} [2/4] Generate migrations...`),await Os(),console.log(`${t} [3/4] Run migrations...`),await $s(),console.log(`
7
+ ${t} [4/4] Insert initial data...`),await Hs(),console.log(`${t} \x1B[32mDatabase prepared successfully.\x1B[0m`),process.exit(0)};var Fe="\x1B[34m[VitNode]\x1B[0m",xt=process.argv[2],Et=process.argv[3];switch(xt){case"init":yt({initMessage:Fe});break;case"plugin":(Et==="--w"||Et==="--watch")&&ot({initMessage:Fe});break;default:console.log(`${Fe} \x1B[31mCommand not found: "${xt??""}"\x1B[0m`),process.exit(1)}
15
8
  /*! Bundled license information:
16
9
 
17
10
  chokidar/esm/index.js:
@@ -1 +1 @@
1
- {"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../../scripts/shared/file-utils.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,EAAE,YAAY,MAAM,KAAG,MAY/D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,KACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAwBpB,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,YAAY,MAAM,KACjB,MAmCF,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBlD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAevD;AAED,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAAM,EAgB/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,OAM9C,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,QAAQ,GACnB,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,iBAAc,SAkEf,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,EACjB,gBAAgB,MAAM,EACtB,YAAY,MAAM,EAClB,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,iBAAc,SAoBf,CAAC"}
1
+ {"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../../scripts/shared/file-utils.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,EAAE,YAAY,MAAM,KAAG,MAY/D,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,YAAY,MAAM,KACjB,GAAG,CAAC,MAAM,EAAE,MAAM,CAwBpB,CAAC;AAGF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,YAAY,MAAM,KACjB,MAiDF,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBlD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAevD;AAED,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAAM,EAgB/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,OAM9C,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,QAAQ,GACnB,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,iBAAc,SAkEf,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,EACjB,gBAAgB,MAAM,EACtB,YAAY,MAAM,EAClB,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,YAAY,MAAM,EAClB,UAAU,MAAM,EAChB,iBAAc,SAoBf,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { EmailApiPlugin } from '../../../api/models/email';
2
- export declare const NodemailerEmailPlugin: ({ host, port, secure, user, password, from, }: {
2
+ export declare const NodemailerEmailAdapter: ({ host, port, secure, user, password, from, }: {
3
3
  from: string | undefined;
4
4
  host: string | undefined;
5
5
  password: string | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodemailer.d.ts","sourceRoot":"","sources":["../../../../../src/api/adapters/email/nodemailer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,eAAO,MAAM,sBAAsB,GAAI,+CAOpC;IACD,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B,KAAG,cAiCH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { createTransport } from "nodemailer";
2
- export const NodemailerEmailPlugin = ({ host = '', port = 587, secure = false, user = '', password = '', from = '' })=>{
2
+ export const NodemailerEmailAdapter = ({ host = '', port = 587, secure = false, user = '', password = '', from = '' })=>{
3
3
  return {
4
4
  sendEmail: async ({ metadata, to, subject, html, replyTo })=>{
5
5
  if (!host || !user || !password || !from) {
@@ -1,5 +1,5 @@
1
1
  import type { EmailApiPlugin } from '../../../api/models/email';
2
- export declare const ResendEmailPlugin: ({ apiKey, from, }: {
2
+ export declare const ResendEmailAdapter: ({ apiKey, from, }: {
3
3
  apiKey: string | undefined;
4
4
  from: string | undefined;
5
5
  }) => EmailApiPlugin;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resend.d.ts","sourceRoot":"","sources":["../../../../../src/api/adapters/email/resend.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,eAAO,MAAM,kBAAkB,GAAI,mBAGhC;IACD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B,KAAG,cAqBH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Resend } from "resend";
2
- export const ResendEmailPlugin = ({ apiKey, from })=>{
2
+ export const ResendEmailAdapter = ({ apiKey, from })=>{
3
3
  return {
4
4
  sendEmail: async ({ to, subject, replyTo, metadata, html })=>{
5
5
  if (!apiKey || !from) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../../../../src/api/adapters/sso/discord.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,eAAO,MAAM,mBAAmB,GAAI,6BAGjC;IACD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,KAAG,YAoFH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facebook.d.ts","sourceRoot":"","sources":["../../../../../src/api/adapters/sso/facebook.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,eAAO,MAAM,oBAAoB,GAAI,6BAGlC;IACD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,KAAG,YAwFH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../../../src/api/adapters/sso/google.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIrD,eAAO,MAAM,kBAAkB,GAAI,6BAGhC;IACD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,KAAG,YA+FH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/api/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAOjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUxE,UAAU,WAAW;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EACF,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC,GAC3D,MAAM,GACN,MAAM,EAAE,CAAC;CACd;AAED,KAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAC5E,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,sBAAsB,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;CACrD;AAED,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,EACjB,gBAAgB,EAChB,aAAa,GACd,EAAE;IACD,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;CAC9B,oCAmDA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/api/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAOjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAWxE,UAAU,WAAW;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EACF,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC,GAC3D,MAAM,GACN,MAAM,EAAE,CAAC;CACd;AAED,KAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAC5E,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,sBAAsB,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;CACrD;AAED,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,WAAW,EACjB,gBAAgB,EAChB,aAAa,GACd,EAAE;IACD,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;CAC9B,oCAmDA"}
@@ -4,7 +4,8 @@ import { csrf } from "hono/csrf";
4
4
  import { HTTPException } from "hono/http-exception";
5
5
  import { newBuildPluginApiCore } from "./plugin.js";
6
6
  import { CONFIG_PLUGIN } from "../config.js";
7
- import { globalAdminMiddleware, globalMiddleware } from "./middlewares/global/global.js";
7
+ import { globalAdminMiddleware, globalMiddleware } from "./middlewares/global.middleware.js";
8
+ import { rateLimiterMiddleware } from "./middlewares/rate-limiter.middleware.js";
8
9
  export function VitNodeAPI({ app, cors: corsOptions, csrf: csrfOptions, vitNodeApiConfig, vitNodeConfig }) {
9
10
  app.doc('/swagger/doc', {
10
11
  openapi: '3.0.0',
@@ -15,11 +16,12 @@ export function VitNodeAPI({ app, cors: corsOptions, csrf: csrfOptions, vitNodeA
15
16
  });
16
17
  app.use(cors(corsOptions));
17
18
  app.use(csrf(csrfOptions));
19
+ app.use('*', rateLimiterMiddleware(vitNodeApiConfig.rateLimiter));
18
20
  app.get('/swagger', swaggerUI({
19
21
  url: `/api/swagger/doc`
20
22
  }));
21
23
  app.use('*', globalMiddleware({
22
- emailProvider: vitNodeApiConfig.emailProvider,
24
+ emailAdapter: vitNodeApiConfig.emailAdapter,
23
25
  metadata: vitNodeConfig.metadata,
24
26
  authorization: vitNodeApiConfig.authorization,
25
27
  dbProvider: vitNodeApiConfig.dbProvider
@@ -30,12 +32,11 @@ export function VitNodeAPI({ app, cors: corsOptions, csrf: csrfOptions, vitNodeA
30
32
  }
31
33
  return next();
32
34
  });
33
- app.onError((error)=>{
35
+ app.onError((error, c)=>{
34
36
  if (error instanceof HTTPException) {
35
37
  return error.getResponse();
36
38
  }
37
- // eslint-disable-next-line no-console
38
- console.error(error);
39
+ c.get('log').error(`Unhandled error: ${error.message}`);
39
40
  return new Response(process.env.NODE_ENV === 'development' ? error.message : 'Internal Server Error', {
40
41
  status: 500
41
42
  });
@@ -0,0 +1,8 @@
1
+ import type { Context } from 'hono';
2
+ export interface LoggerMiddlewareType {
3
+ debug: (content: string) => void;
4
+ error: (content: string) => void;
5
+ warn: (content: string) => void;
6
+ }
7
+ export declare const loggerMiddleware: (c: Context) => LoggerMiddlewareType;
8
+ //# sourceMappingURL=logger-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-middleware.d.ts","sourceRoot":"","sources":["../../../../src/api/lib/logger-middleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,gBAAgB,GAAI,GAAG,OAAO,KAAG,oBAwC7C,CAAC"}
@@ -0,0 +1,30 @@
1
+ /* eslint-disable no-console */ import { core_logs } from "../../database/logs.js";
2
+ export const loggerMiddleware = (c)=>{
3
+ const logToDbAndConsole = async (content, type)=>{
4
+ const pluginId = c.get('plugin')?.id ?? 'core';
5
+ const ipAddress = c.get('ipAddress');
6
+ await c.get('db').insert(core_logs).values({
7
+ pluginId,
8
+ type,
9
+ content,
10
+ ipAddress
11
+ });
12
+ const loggers = {
13
+ debug: (msg)=>console.debug(`\x1b[34m[VitNode]\x1b[0m \x1b[38;5;208mDebug (${pluginId})\x1b[0m: ${msg}`),
14
+ error: (msg)=>console.error(`\x1b[34m[VitNode]\x1b[0m \x1b[31mError (${pluginId})\x1b[0m: ${msg}`),
15
+ warn: (msg)=>console.warn(`\x1b[34m[VitNode]\x1b[0m \x1b[33mWarning (${pluginId})\x1b[0m: ${msg}`)
16
+ };
17
+ (loggers[type] ?? loggers.debug)(content);
18
+ };
19
+ return {
20
+ debug: (content)=>{
21
+ void logToDbAndConsole(content, 'debug');
22
+ },
23
+ error: (content)=>{
24
+ void logToDbAndConsole(content, 'error');
25
+ },
26
+ warn: (content)=>{
27
+ void logToDbAndConsole(content, 'warn');
28
+ }
29
+ };
30
+ };
@@ -1,5 +1,5 @@
1
1
  import type { RouteConfig, RouteHandler } from '@hono/zod-openapi';
2
- import { type EnvVitNode } from '../middlewares/global/global';
2
+ import { type EnvVitNode } from '../middlewares/global.middleware';
3
3
  type RoutingPath<P extends string> = P extends `${infer Head}/{${infer Param}}${infer Tail}` ? `${Head}/:${Param}${RoutingPath<Tail>}` : P;
4
4
  type ValidHandler<R extends RouteConfig> = (c: Parameters<RouteHandler<R, EnvVitNode>>[0]) => ReturnType<RouteHandler<R>>;
5
5
  export declare const buildRoute: <Plugin extends string, P extends string, R extends Omit<RouteConfig, "path"> & {