@visulima/storage 1.0.10 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/LICENSE.md +33 -22
  3. package/dist/adapter/nuxt/module.d.ts +5 -4
  4. package/dist/ai/ai-sdk/index.d.ts +4 -3
  5. package/dist/ai/claude/index.d.ts +3 -2
  6. package/dist/ai/openai/index.d.ts +4 -3
  7. package/dist/ai/tanstack/index.d.ts +3 -2
  8. package/dist/handler/http/fetch/index.d.ts +8 -7
  9. package/dist/handler/http/fetch/index.js +1 -1
  10. package/dist/handler/http/hono/index.d.ts +5 -4
  11. package/dist/handler/http/hono/index.js +1 -1
  12. package/dist/handler/http/nextjs/index.d.ts +5 -4
  13. package/dist/handler/http/nextjs/index.js +1 -1
  14. package/dist/handler/http/node/index.d.ts +8 -7
  15. package/dist/handler/http/node/index.js +1 -1
  16. package/dist/handler/http/solid-start/index.d.ts +5 -4
  17. package/dist/handler/http/solid-start/index.js +1 -1
  18. package/dist/index.d.ts +8 -7
  19. package/dist/index.js +1 -1
  20. package/dist/packem_shared/{AbstractBaseStorage-CiPEMcuo.js → AbstractBaseStorage-CLsYmMZg.js} +1 -1
  21. package/dist/packem_shared/AwsLightStorage-DGSPFUqr.js +1 -0
  22. package/dist/packem_shared/AzureStorage-DvKk_hhz.js +1 -0
  23. package/dist/packem_shared/BoxMetaStorage-CJsyeQ63.js +1 -0
  24. package/dist/packem_shared/{BoxStorage-B8_oCz27.js → BoxStorage-CmM95wi2.js} +1 -1
  25. package/dist/packem_shared/BunS3MetaStorage-CJsyeQ63.js +1 -0
  26. package/dist/packem_shared/{BunS3Storage-_PVXu_na.js → BunS3Storage-B_roVJ29.js} +1 -1
  27. package/dist/packem_shared/BunnyMetaStorage-CJsyeQ63.js +1 -0
  28. package/dist/packem_shared/{BunnyStorage-BsoWjScH.js → BunnyStorage-eZ1QDVaY.js} +1 -1
  29. package/dist/packem_shared/CloudinaryMetaStorage-Bv_YCZ0Q.js +1 -0
  30. package/dist/packem_shared/{CloudinaryStorage-BNwiLF9V.js → CloudinaryStorage-CpH2f0Fv.js} +1 -1
  31. package/dist/packem_shared/DiskStorage-DzjjqCzo.js +1 -0
  32. package/dist/packem_shared/{DiskStorageWithChecksum-UnCtyEvs.js → DiskStorageWithChecksum-MZkDEyts.js} +1 -1
  33. package/dist/packem_shared/DropboxMetaStorage-CJsyeQ63.js +1 -0
  34. package/dist/packem_shared/{DropboxStorage-BS9kj0nH.js → DropboxStorage-BB9NoWK2.js} +1 -1
  35. package/dist/packem_shared/{Files-CpIcMjP0.js → Files-DyMJ9FPN.js} +1 -1
  36. package/dist/packem_shared/FirebaseMetaStorage-Bv_YCZ0Q.js +1 -0
  37. package/dist/packem_shared/{FirebaseStorage-DNquii2p.js → FirebaseStorage-BgbxzYNC.js} +1 -1
  38. package/dist/packem_shared/FtpMetaStorage-CJsyeQ63.js +1 -0
  39. package/dist/packem_shared/{FtpStorage-Bd004--s.js → FtpStorage-CNqXDz7P.js} +1 -1
  40. package/dist/packem_shared/{GCSMetaStorage-Bf4qDFB1.js → GCSMetaStorage-Cm_XzR0C.js} +1 -1
  41. package/dist/packem_shared/GCStorage-DcvsI7eu.js +1 -0
  42. package/dist/packem_shared/GoogleDriveMetaStorage-B0gLF7Io.js +1 -0
  43. package/dist/packem_shared/{GoogleDriveStorage-v1glykjd.js → GoogleDriveStorage-Du7uBhSm.js} +1 -1
  44. package/dist/packem_shared/{LocalMetaStorage-YWPBYEe7.js → LocalMetaStorage-CcGfFG39.js} +1 -1
  45. package/dist/packem_shared/{MemoryStorage-9gbWd09l.js → MemoryStorage-ChKyI6OY.js} +1 -1
  46. package/dist/packem_shared/{Multipart-D0ok6BBy.js → Multipart-C35TR2qL.js} +1 -1
  47. package/dist/packem_shared/{Multipart-CQjYqU--.js → Multipart-V64Bg5dt.js} +1 -1
  48. package/dist/packem_shared/NetlifyBlobMetaStorage-Bv_YCZ0Q.js +1 -0
  49. package/dist/packem_shared/NetlifyBlobStorage-CZsr_0DF.js +1 -0
  50. package/dist/packem_shared/OneDriveMetaStorage-B0gLF7Io.js +1 -0
  51. package/dist/packem_shared/{OneDriveStorage-BJ3Kzxc5.js → OneDriveStorage-B8qFgMq1.js} +1 -1
  52. package/dist/packem_shared/PocketBaseMetaStorage-Cm3v8g1-.js +1 -0
  53. package/dist/packem_shared/{PocketBaseStorage-DqKHbbvn.js → PocketBaseStorage-D2vMN-oY.js} +1 -1
  54. package/dist/packem_shared/{Rest-DvfN4-kf.js → Rest-BrEMYgxZ.js} +1 -1
  55. package/dist/packem_shared/{Rest-CI_BiZPv.js → Rest-aPVP2ww1.js} +1 -1
  56. package/dist/packem_shared/{S3Storage-BiI2k6d1.js → S3Storage-CTe_BMDl.js} +1 -1
  57. package/dist/packem_shared/SftpMetaStorage-CJsyeQ63.js +1 -0
  58. package/dist/packem_shared/{SftpStorage-w8XdtZtw.js → SftpStorage-BKeAzuej.js} +1 -1
  59. package/dist/packem_shared/SharePointMetaStorage-CJsyeQ63.js +1 -0
  60. package/dist/packem_shared/{SharePointStorage-DpDpI7Ln.js → SharePointStorage-Dtnt5-wk.js} +1 -1
  61. package/dist/packem_shared/SupabaseMetaStorage-B0gLF7Io.js +1 -0
  62. package/dist/packem_shared/{SupabaseStorage-B_ugUCs7.js → SupabaseStorage-CmGQjqXf.js} +1 -1
  63. package/dist/packem_shared/{Tus-BlBZykIL.js → Tus-CJBgnJrn.js} +1 -1
  64. package/dist/packem_shared/{Tus-BBVt2ky3.js → Tus-D9c7KDnl.js} +1 -1
  65. package/dist/packem_shared/UploadThingMetaStorage-Bv_YCZ0Q.js +1 -0
  66. package/dist/packem_shared/{UploadThingStorage-_H45IVqX.js → UploadThingStorage-DZ4zNvDH.js} +1 -1
  67. package/dist/packem_shared/VercelBlobMetaStorage-CJsyeQ63.js +1 -0
  68. package/dist/packem_shared/{VercelBlobStorage-U1YMKeHs.js → VercelBlobStorage-DDNEofR3.js} +1 -1
  69. package/dist/packem_shared/{base-handler-core-D-9Ku1h-.js → base-handler-core-BJP9jHCE.js} +1 -1
  70. package/dist/packem_shared/{base-handler-fetch-CfkNakv8.js → base-handler-fetch-yrYrukwL.js} +1 -1
  71. package/dist/packem_shared/base-handler-node-C8P9rkaH.js +1 -0
  72. package/dist/packem_shared/{createRetryWrapper-CxgiV_hH.js → createRetryWrapper-DgmeHPNF.js} +1 -1
  73. package/dist/packem_shared/disk-storage-DqnnFQAQ.js +1 -0
  74. package/dist/packem_shared/{disk-storage-with-checksum.d-CQucFacO.d.ts → disk-storage-with-checksum.d-Dgwyza8a.d.ts} +1 -1
  75. package/dist/packem_shared/{executors.d-DeDH3Ilt.d.ts → executors.d-B9dIy3NT.d.ts} +2 -1
  76. package/dist/packem_shared/{files.d-D8H_ge9Y.d.ts → files.d-CmSZi3M0.d.ts} +1 -1
  77. package/dist/packem_shared/gcs-meta-storage-Bu2upyHK.js +1 -0
  78. package/dist/packem_shared/local-meta-storage-BELb1YwO.js +11 -0
  79. package/dist/packem_shared/{local-meta-storage.d-DuTEzyii.d.ts → local-meta-storage.d-cRTXr1kb.d.ts} +1 -1
  80. package/dist/packem_shared/{media-transformer.d-CvMFjINm.d.ts → media-transformer.d-C8tn4J2Z.d.ts} +2 -2
  81. package/dist/packem_shared/{memory-storage.d-BRdTiY8y.d.ts → memory-storage.d-BNZvDG1b.d.ts} +1 -1
  82. package/dist/packem_shared/path-C-OWflAo-_mqb5p5d.js +1 -0
  83. package/dist/packem_shared/{rest-base-e0reNDE_.js → rest-base-BQ_dhWyV.js} +1 -1
  84. package/dist/packem_shared/s3-base-storage-CX94H-Za.js +1 -0
  85. package/dist/packem_shared/{s3-base-storage.d-Cg7m4FuH.d.ts → s3-base-storage.d-ks99NSs-.d.ts} +1 -1
  86. package/dist/packem_shared/storage-DR7qdwBN.js +1 -0
  87. package/dist/packem_shared/{storage.d-DIav_lF1.d.ts → storage.d-DwdJrArF.d.ts} +26 -3
  88. package/dist/packem_shared/{tus-base.d-BiEg5t4t.d.ts → tus-base.d-BKBoJVy0.d.ts} +4 -3
  89. package/dist/packem_shared/{types.d-DgHhkCAl.d.ts → types.d-B1_xZIhu.d.ts} +1 -1
  90. package/dist/packem_shared/{types.d-CAAzKiI6.d.ts → types.d-BEUv414z.d.ts} +1 -1
  91. package/dist/packem_shared/{types.d-jAs_Rp_v.d.ts → types.d-D7Zlz5RE.d.ts} +2 -2
  92. package/dist/storage/aws/index.d.ts +3 -2
  93. package/dist/storage/aws/index.js +1 -1
  94. package/dist/storage/aws-light/index.d.ts +3 -2
  95. package/dist/storage/aws-light/index.js +1 -1
  96. package/dist/storage/azure/index.d.ts +2 -1
  97. package/dist/storage/azure/index.js +1 -1
  98. package/dist/storage/box/index.d.ts +3 -2
  99. package/dist/storage/box/index.js +1 -1
  100. package/dist/storage/bun-s3/index.d.ts +3 -2
  101. package/dist/storage/bun-s3/index.js +1 -1
  102. package/dist/storage/bunny/index.d.ts +3 -2
  103. package/dist/storage/bunny/index.js +1 -1
  104. package/dist/storage/cloudinary/index.d.ts +3 -2
  105. package/dist/storage/cloudinary/index.js +1 -1
  106. package/dist/storage/dropbox/index.d.ts +3 -2
  107. package/dist/storage/dropbox/index.js +1 -1
  108. package/dist/storage/firebase/index.d.ts +3 -2
  109. package/dist/storage/firebase/index.js +1 -1
  110. package/dist/storage/ftp/index.d.ts +3 -2
  111. package/dist/storage/ftp/index.js +1 -1
  112. package/dist/storage/gcs/index.d.ts +2 -1
  113. package/dist/storage/gcs/index.js +1 -1
  114. package/dist/storage/google-drive/index.d.ts +3 -2
  115. package/dist/storage/google-drive/index.js +1 -1
  116. package/dist/storage/local/index.d.ts +4 -3
  117. package/dist/storage/local/index.js +1 -1
  118. package/dist/storage/memory/index.d.ts +3 -2
  119. package/dist/storage/memory/index.js +1 -1
  120. package/dist/storage/netlify-blob/index.d.ts +3 -2
  121. package/dist/storage/netlify-blob/index.js +1 -1
  122. package/dist/storage/onedrive/index.d.ts +5 -4
  123. package/dist/storage/onedrive/index.js +1 -1
  124. package/dist/storage/pocketbase/index.d.ts +3 -2
  125. package/dist/storage/pocketbase/index.js +1 -1
  126. package/dist/storage/sftp/index.d.ts +3 -2
  127. package/dist/storage/sftp/index.js +1 -1
  128. package/dist/storage/sharepoint/index.d.ts +4 -3
  129. package/dist/storage/sharepoint/index.js +1 -1
  130. package/dist/storage/supabase/index.d.ts +3 -2
  131. package/dist/storage/supabase/index.js +1 -1
  132. package/dist/storage/uploadthing/index.d.ts +3 -2
  133. package/dist/storage/uploadthing/index.js +1 -1
  134. package/dist/storage/vercel-blob/index.d.ts +3 -2
  135. package/dist/storage/vercel-blob/index.js +1 -1
  136. package/dist/transformer/audio-transformer.d.ts +3 -2
  137. package/dist/transformer/image-transformer.d.ts +3 -2
  138. package/dist/transformer/index.d.ts +4 -3
  139. package/dist/transformer/video-transformer.d.ts +3 -2
  140. package/package.json +2 -2
  141. package/dist/packem_shared/AwsLightStorage-EsqkAtU5.js +0 -1
  142. package/dist/packem_shared/AzureStorage-DL-U7qFG.js +0 -1
  143. package/dist/packem_shared/BoxMetaStorage-CHWrhgg2.js +0 -1
  144. package/dist/packem_shared/BunS3MetaStorage-CHWrhgg2.js +0 -1
  145. package/dist/packem_shared/BunnyMetaStorage-CHWrhgg2.js +0 -1
  146. package/dist/packem_shared/CloudinaryMetaStorage-BI9YXcwU.js +0 -1
  147. package/dist/packem_shared/DiskStorage-D-NtQDms.js +0 -1
  148. package/dist/packem_shared/DropboxMetaStorage-CHWrhgg2.js +0 -1
  149. package/dist/packem_shared/FirebaseMetaStorage-BI9YXcwU.js +0 -1
  150. package/dist/packem_shared/FtpMetaStorage-CHWrhgg2.js +0 -1
  151. package/dist/packem_shared/GCStorage-ChqEpgqR.js +0 -1
  152. package/dist/packem_shared/GoogleDriveMetaStorage-xlHfKwmR.js +0 -1
  153. package/dist/packem_shared/NetlifyBlobMetaStorage-BI9YXcwU.js +0 -1
  154. package/dist/packem_shared/NetlifyBlobStorage-BPyEWSnx.js +0 -1
  155. package/dist/packem_shared/OneDriveMetaStorage-xlHfKwmR.js +0 -1
  156. package/dist/packem_shared/PocketBaseMetaStorage-DnrxOQhO.js +0 -1
  157. package/dist/packem_shared/SftpMetaStorage-CHWrhgg2.js +0 -1
  158. package/dist/packem_shared/SharePointMetaStorage-CHWrhgg2.js +0 -1
  159. package/dist/packem_shared/SupabaseMetaStorage-xlHfKwmR.js +0 -1
  160. package/dist/packem_shared/UploadThingMetaStorage-BI9YXcwU.js +0 -1
  161. package/dist/packem_shared/VercelBlobMetaStorage-CHWrhgg2.js +0 -1
  162. package/dist/packem_shared/base-handler-node-BF1v1qDa.js +0 -1
  163. package/dist/packem_shared/disk-storage-BwPk2IRa.js +0 -1
  164. package/dist/packem_shared/gcs-meta-storage-DQGu_cHq.js +0 -1
  165. package/dist/packem_shared/local-meta-storage-DJDcuxf1.js +0 -11
  166. package/dist/packem_shared/path-0oTTdkvl-DvWvbDbh.js +0 -1
  167. package/dist/packem_shared/s3-base-storage-CMUui93V.js +0 -1
  168. package/dist/packem_shared/storage-0j5nCAUp.js +0 -1
@@ -1,11 +0,0 @@
1
- import{utimes as tr}from"node:fs/promises";import{tmpdir as rr}from"node:os";import{createRequire as k}from"node:module";import{v as or,H as ge,B as mt,m as Ut,W as yt,J as sr}from"./path-0oTTdkvl-DvWvbDbh.js";import{throwErrorCode as nt,ERRORS as it}from"./ERRORS-BIBxE2oR.js";import nr from"./MetaStorage-DPEUyWgN.js";import{stringifyMetadata as ir,parseMetadata as ur}from"./Metadata-B7CcBueg.js";const Xt=0;let ar;const lr=e=>(ar??=k(import.meta.url))(e),be=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,pr=e=>{if(typeof be<"u"&&be.versions&&be.versions.node){const[t,r]=be.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return be.getBuiltinModule(e)}return lr(e)},{fileURLToPath:cr}=pr("node:url");function fr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Tt,xt;function dr(){return xt||(xt=1,Tt=["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","cr3","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"]),Tt}var gr=dr();const hr=fr(gr);new Set(hr);const ye=e=>or(e instanceof URL?cr(e):e);let mr=class extends Error{constructor(t){super(`EEXIST: ${t}`)}get code(){return"EEXIST"}set code(t){throw new Error("Cannot overwrite code EEXIST")}get name(){return"AlreadyExistsError"}set name(t){throw new Error("Cannot overwrite name of AlreadyExistsError")}};const he=e=>{if(!e||!(e instanceof URL)&&typeof e!="string")throw new TypeError("Path must be a non-empty string or URL.")};let yr;const br=e=>(yr??=k(import.meta.url))(e),$e=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,$r=e=>{if(typeof $e<"u"&&$e.versions&&$e.versions.node){const[t,r]=$e.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return $e.getBuiltinModule(e)}return br(e)};$r("node:fs/promises");let vr;const Er=e=>(vr??=k(import.meta.url))(e),ve=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ar=e=>{if(typeof ve<"u"&&ve.versions&&ve.versions.node){const[t,r]=ve.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return ve.getBuiltinModule(e)}return Er(e)};Ar("node:fs");const bt=e=>{if(e.isFile())return"file";if(e.isDirectory())return"dir";if(e.isSymbolicLink())return"symlink"};let Rr;const Tr=e=>(Rr??=k(import.meta.url))(e),Ee=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,xr=e=>{if(typeof Ee<"u"&&Ee.versions&&Ee.versions.node){const[t,r]=Ee.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ee.getBuiltinModule(e)}return Tr(e)},{lstat:wt,mkdir:wr}=xr("node:fs/promises"),zt=async e=>{he(e);try{const t=await wt(e);if(!t.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(bt(t))}'`);return}catch(t){if(t.code!=="ENOENT")throw t}try{await wr(e,{recursive:!0})}catch(t){if(t.code!=="EEXIST")throw t;const r=await wt(e);if(!r.isDirectory())throw new Error(`Ensure path exists, expected 'dir', got '${String(bt(r))}'`,{cause:t})}};let _r;const Sr=e=>(_r??=k(import.meta.url))(e),Ae=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Cr=e=>{if(typeof Ae<"u"&&Ae.versions&&Ae.versions.node){const[t,r]=Ae.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ae.getBuiltinModule(e)}return Sr(e)};Cr("node:fs");let Or;const kr=e=>(Or??=k(import.meta.url))(e),Re=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Nr=e=>{if(typeof Re<"u"&&Re.versions&&Re.versions.node){const[t,r]=Re.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Re.getBuiltinModule(e)}return kr(e)},{lstat:Lr,writeFile:Hr}=Nr("node:fs/promises"),mn=async e=>{he(e);try{const t=await Lr(e);if(!t.isFile())throw new Error(`Ensure path exists, expected 'file', got '${String(bt(t))}'`)}catch(t){if(t.code==="ENOENT"){await zt(ge(ye(e))),await Hr(e,new Uint8Array);return}throw t}};let Mr;const Br=e=>(Mr??=k(import.meta.url))(e),Te=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ir=e=>{if(typeof Te<"u"&&Te.versions&&Te.versions.node){const[t,r]=Te.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Te.getBuiltinModule(e)}return Br(e)};Ir("node:fs");let Dr;const Pr=e=>(Dr??=k(import.meta.url))(e),xe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Fr=e=>{if(typeof xe<"u"&&xe.versions&&xe.versions.node){const[t,r]=xe.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return xe.getBuiltinModule(e)}return Pr(e)};Fr("node:fs/promises");let Gr;const Ur=e=>(Gr??=k(import.meta.url))(e),we=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Xr=e=>{if(typeof we<"u"&&we.versions&&we.versions.node){const[t,r]=we.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return we.getBuiltinModule(e)}return Ur(e)};Xr("node:fs");let zr;const Kr=e=>(zr??=k(import.meta.url))(e),_e=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Wr=e=>{if(typeof _e<"u"&&_e.versions&&_e.versions.node){const[t,r]=_e.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return _e.getBuiltinModule(e)}return Kr(e)};Wr("node:fs/promises");let jr;const Qr=e=>(jr??=k(import.meta.url))(e),Se=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,qr=e=>{if(typeof Se<"u"&&Se.versions&&Se.versions.node){const[t,r]=Se.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Se.getBuiltinModule(e)}return Qr(e)};qr("node:fs");let _t=class extends Error{root;constructor(t,r){super(`${t instanceof Error?t.message:String(t)} for path "${r}"`),this.cause=t,this.root=r}get name(){return"WalkError"}set name(t){throw new Error("Cannot overwrite name of WalkError")}};const St=e=>{const t=e.replace(/[$()+\\^]/g,String.raw`\$&`).replace(/\.\*/g,".([^/]*)").replace(/\*\*/g,"(.*)").replace(/(?<!\.)\*(?!\*)/g,"([^/]*)").replace(/\?/g,"[^/]").replace(/\.(?!\*)/g,String.raw`\.`).replace(/\{/g,"(").replace(/\}/g,")").replace(/,/g,"|").replace(/\[!(.*?)\]/g,"[^$1]");try{return new RegExp(`^${t}$`)}catch(r){throw new Error(`Invalid glob pattern: ${e}`,{cause:r})}};let Vr=class{name;path;#e;constructor(t,r,y){this.#e=t,this.name=r,this.path=y}isDirectory(){return this.#e.isDirectory()}isFile(){return this.#e.isFile()}isSymbolicLink(){return this.#e.isSymbolicLink()}};const $t=(e,t,r)=>new Vr(e,t,r),rt=(e,t,r,y)=>{if(Array.isArray(t)&&t.length>0&&!t.some(o=>e.endsWith(o)))return!1;const p=e.includes("\\")?e.replaceAll("\\","/"):e;return r&&!r.some(o=>o.test(p))?!1:!y?.some(o=>o.test(p))};let Yr;const Zr=e=>(Yr??=k(import.meta.url))(e),Ce=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Jr=e=>{if(typeof Ce<"u"&&Ce.versions&&Ce.versions.node){const[t,r]=Ce.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ce.getBuiltinModule(e)}return Zr(e)},{readdir:eo,realpath:to,stat:Kt}=Jr("node:fs/promises"),ro=async e=>{const t=yt(e),r=sr(t),y=await Kt(t);return $t(y,r,t)};async function*oo(e,t={}){const{extensions:r,followSymlinks:y=!1,includeDirs:p=!0,includeFiles:o=!0,includeSymlinks:a=!0,match:f,maxDepth:l=Number.POSITIVE_INFINITY,skip:A}=t;if(he(e),l<0)return;const g=t.visited??new Set,T=f?f.map(b=>typeof b=="string"?St(b):b):void 0,w=A?A.map(b=>typeof b=="string"?St(b):b):void 0;if(e=mt(ye(e)),p&&rt(e,r,T,w)&&(yield await ro(e)),!(l<1||!rt(e,void 0,void 0,w)))try{const b=await eo(e,{withFileTypes:!0});for(const C of b){let X=Ut(e,C.name),K=C.isDirectory(),W=C.isFile();if(C.isSymbolicLink())if(y){const L=await to(X);if(g.has(L))continue;X=L;const h=await Kt(L);K=h.isDirectory(),W=h.isFile()}else if(a&&rt(X,r,T,w)){yield $t(C,C.name,X);continue}else continue;K?(y&&g.add(X),yield*oo(X,{extensions:r,followSymlinks:y,includeDirs:p,includeFiles:o,includeSymlinks:a,match:T,maxDepth:l-1,skip:w,visited:g})):W&&o&&rt(X,r,T,w)&&(yield $t(C,C.name,X))}}catch(b){throw b instanceof _t?b:new _t(b,e)}}let so;const no=e=>(so??=k(import.meta.url))(e),Oe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,io=e=>{if(typeof Oe<"u"&&Oe.versions&&Oe.versions.node){const[t,r]=Oe.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Oe.getBuiltinModule(e)}return no(e)};io("node:fs");let uo;const ao=e=>(uo??=k(import.meta.url))(e),ke=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,lo=e=>{if(typeof ke<"u"&&ke.versions&&ke.versions.node){const[t,r]=ke.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return ke.getBuiltinModule(e)}return ao(e)};lo("node:fs/promises");let po;const co=e=>(po??=k(import.meta.url))(e),Ne=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,fo=e=>{if(typeof Ne<"u"&&Ne.versions&&Ne.versions.node){const[t,r]=Ne.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ne.getBuiltinModule(e)}return co(e)};fo("node:fs");function Et(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ct={},ut,Ot;function ot(){if(Ot)return ut;Ot=1;const e="[^\\\\/]",t=Symbol("unignore"),r="\\.",y="\\+",p="\\?",o="\\/",a="(?=.)",f="[^/]",l=`(?:${o}|$)`,A=`(?:^|${o})`,g=`${r}{1,2}${l}`,T=`(?!${r})`,w=`(?!${A}${g})`,b=`(?!${r}{0,1}${l})`,C=`(?!${g})`,X=`[^.${o}]`,K=`${f}*?`,W="/",L={DOT_LITERAL:r,PLUS_LITERAL:y,QMARK_LITERAL:p,SLASH_LITERAL:o,ONE_CHAR:a,QMARK:f,END_ANCHOR:l,DOTS_SLASH:g,NO_DOT:T,NO_DOTS:w,NO_DOT_SLASH:b,NO_DOTS_SLASH:C,QMARK_NO_DOT:X,STAR:K,START_ANCHOR:A,SEP:W},h={...L,SLASH_LITERAL:"[\\\\/]",QMARK:e,STAR:`${e}*?`,DOTS_SLASH:`${r}{1,2}(?:[\\\\/]|$)`,NO_DOT:`(?!${r})`,NO_DOTS:`(?!(?:^|[\\\\/])${r}{1,2}(?:[\\\\/]|$))`,NO_DOT_SLASH:`(?!${r}{0,1}(?:[\\\\/]|$))`,NO_DOTS_SLASH:`(?!${r}{1,2}(?:[\\\\/]|$))`,QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)",SEP:"\\"},m={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};return ut={DEFAULT_MAX_EXTGLOB_RECURSION:0,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:m,UNIGNORE:t,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(s){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${s.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(s){return s===!0?h:L}},ut}var kt;function st(){return kt||(kt=1,(function(e){const{REGEX_BACKSLASH:t,REGEX_REMOVE_BACKSLASH:r,REGEX_SPECIAL_CHARS:y,REGEX_SPECIAL_CHARS_GLOBAL:p}=ot();e.isObject=o=>o!==null&&typeof o=="object"&&!Array.isArray(o),e.hasRegexChars=o=>y.test(o),e.isRegexChar=o=>o.length===1&&e.hasRegexChars(o),e.escapeRegex=o=>o.replace(p,"\\$1"),e.toPosixSlashes=o=>o.replace(t,"/"),e.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){const o=navigator.platform.toLowerCase();return o==="win32"||o==="windows"}return process.platform?process.platform==="win32":!1},e.removeBackslashes=o=>o.replace(r,a=>a==="\\"?"":a),e.escapeLast=(o,a,f)=>{const l=o.lastIndexOf(a,f);return l===-1?o:o[l-1]==="\\"?e.escapeLast(o,a,l-1):`${o.slice(0,l)}\\${o.slice(l)}`},e.removePrefix=(o,a={})=>{let f=o;return f.startsWith("./")&&(f=f.slice(2),a.prefix="./"),f},e.wrapOutput=(o,a={},f={})=>{const l=f.contains?"":"^",A=f.contains?"":"$";let g=`${l}(?:${o})${A}`;return a.negated===!0&&(g=`(?:^(?!${g}).*$)`),g},e.basename=(o,{windows:a}={})=>{const f=o.split(a?/[\\/]/:"/"),l=f[f.length-1];return l===""?f[f.length-2]:l}})(Ct)),Ct}var at,Nt;function go(){if(Nt)return at;Nt=1;const e=st(),{CHAR_ASTERISK:t,CHAR_AT:r,CHAR_BACKWARD_SLASH:y,CHAR_COMMA:p,CHAR_DOT:o,CHAR_EXCLAMATION_MARK:a,CHAR_FORWARD_SLASH:f,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:A,CHAR_LEFT_SQUARE_BRACKET:g,CHAR_PLUS:T,CHAR_QUESTION_MARK:w,CHAR_RIGHT_CURLY_BRACE:b,CHAR_RIGHT_PARENTHESES:C,CHAR_RIGHT_SQUARE_BRACKET:X}=ot(),K=L=>L===f||L===y,W=L=>{L.isPrefix!==!0&&(L.depth=L.isGlobstar?1/0:1)};return at=(L,h)=>{const m=h||{},s=L.length-1,R=m.parts===!0||m.scanToEnd===!0,O=[],$=[],x=[];let v=L,j=-1,G=0,J=0,le=!1,ee=!1,U=!1,te=!1,pe=!1,se=!1,re=!1,P=!1,ne=!1,q=!1,ce=0,V,E,H={value:"",depth:0,isGlob:!1};const Q=()=>j>=s,u=()=>v.charCodeAt(j+1),I=()=>(V=E,v.charCodeAt(++j));for(;j<s;){E=I();let Y;if(E===y){re=H.backslashes=!0,E=I(),E===l&&(se=!0);continue}if(se===!0||E===l){for(ce++;Q()!==!0&&(E=I());){if(E===y){re=H.backslashes=!0,I();continue}if(E===l){ce++;continue}if(se!==!0&&E===o&&(E=I())===o){if(le=H.isBrace=!0,U=H.isGlob=!0,q=!0,R===!0)continue;break}if(se!==!0&&E===p){if(le=H.isBrace=!0,U=H.isGlob=!0,q=!0,R===!0)continue;break}if(E===b&&(ce--,ce===0)){se=!1,le=H.isBrace=!0,q=!0;break}}if(R===!0)continue;break}if(E===f){if(O.push(j),$.push(H),H={value:"",depth:0,isGlob:!1},q===!0)continue;if(V===o&&j===G+1){G+=2;continue}J=j+1;continue}if(m.noext!==!0&&(E===T||E===r||E===t||E===w||E===a)&&u()===A){if(U=H.isGlob=!0,te=H.isExtglob=!0,q=!0,E===a&&j===G&&(ne=!0),R===!0){for(;Q()!==!0&&(E=I());){if(E===y){re=H.backslashes=!0,E=I();continue}if(E===C){U=H.isGlob=!0,q=!0;break}}continue}break}if(E===t){if(V===t&&(pe=H.isGlobstar=!0),U=H.isGlob=!0,q=!0,R===!0)continue;break}if(E===w){if(U=H.isGlob=!0,q=!0,R===!0)continue;break}if(E===g){for(;Q()!==!0&&(Y=I());){if(Y===y){re=H.backslashes=!0,I();continue}if(Y===X){ee=H.isBracket=!0,U=H.isGlob=!0,q=!0;break}}if(R===!0)continue;break}if(m.nonegate!==!0&&E===a&&j===G){P=H.negated=!0,G++;continue}if(m.noparen!==!0&&E===A){if(U=H.isGlob=!0,R===!0){for(;Q()!==!0&&(E=I());){if(E===A){re=H.backslashes=!0,E=I();continue}if(E===C){q=!0;break}}continue}break}if(U===!0){if(q=!0,R===!0)continue;break}}m.noext===!0&&(te=!1,U=!1);let B=v,fe="",n="";G>0&&(fe=v.slice(0,G),v=v.slice(G),J-=G),B&&U===!0&&J>0?(B=v.slice(0,J),n=v.slice(J)):U===!0?(B="",n=v):B=v,B&&B!==""&&B!=="/"&&B!==v&&K(B.charCodeAt(B.length-1))&&(B=B.slice(0,-1)),m.unescape===!0&&(n&&(n=e.removeBackslashes(n)),B&&re===!0&&(B=e.removeBackslashes(B)));const i={prefix:fe,input:L,start:G,base:B,glob:n,isBrace:le,isBracket:ee,isGlob:U,isExtglob:te,isGlobstar:pe,negated:P,negatedExtglob:ne};if(m.tokens===!0&&(i.maxDepth=0,K(E)||$.push(H),i.tokens=$),m.parts===!0||m.tokens===!0){let Y;for(let N=0;N<O.length;N++){const oe=Y?Y+1:G,ie=O[N],Z=L.slice(oe,ie);m.tokens&&(N===0&&G!==0?($[N].isPrefix=!0,$[N].value=fe):$[N].value=Z,W($[N]),i.maxDepth+=$[N].depth),(N!==0||Z!=="")&&x.push(Z),Y=ie}if(Y&&Y+1<L.length){const N=L.slice(Y+1);x.push(N),m.tokens&&($[$.length-1].value=N,W($[$.length-1]),i.maxDepth+=$[$.length-1].depth)}i.slashes=O,i.parts=x}return i},at}var lt,Lt;function ho(){if(Lt)return lt;Lt=1;const e=ot(),t=st(),{MAX_LENGTH:r,POSIX_REGEX_SOURCE:y,REGEX_NON_SPECIAL_CHARS:p,REGEX_SPECIAL_CHARS_BACKREF:o,REPLACEMENTS:a}=e,f=(h,m)=>typeof m.expandRange=="function"?m.expandRange(...h,m):(h.sort(),`[${h.join("-")}]`),l=(h,m)=>`Missing ${h}: "${m}" - use "\\\\${m}" to match literal characters`,A=h=>{const m=[];let s=0,R=0,O=0,$="",x=!1;for(const v of h){if(x===!0){$+=v,x=!1;continue}if(v==="\\"){$+=v,x=!0;continue}if(v==='"'){O=O===1?0:1,$+=v;continue}if(O===0){if(v==="[")s++;else if(v==="]"&&s>0)s--;else if(s===0){if(v==="(")R++;else if(v===")"&&R>0)R--;else if(v==="|"&&R===0){m.push($),$="";continue}}}$+=v}return m.push($),m},g=h=>{let m=!1;for(const s of h){if(m===!0){m=!1;continue}if(s==="\\"){m=!0;continue}if(/[?*+@!()[\]{}]/.test(s))return!1}return!0},T=h=>{let m=h.trim(),s=!0;for(;s===!0;)s=!1,/^@\([^\\()[\]{}|]+\)$/.test(m)&&(m=m.slice(2,-1),s=!0);if(g(m))return m.replace(/\\(.)/g,"$1")},w=h=>{const m=h.map(T).filter(Boolean);for(let s=0;s<m.length;s++)for(let R=s+1;R<m.length;R++){const O=m[s],$=m[R],x=O[0];if(!(!x||O!==x.repeat(O.length)||$!==x.repeat($.length))&&(O===$||O.startsWith($)||$.startsWith(O)))return!0}return!1},b=(h,m=!0)=>{if(h[0]!=="+"&&h[0]!=="*"||h[1]!=="(")return;let s=0,R=0,O=0,$=!1;for(let x=1;x<h.length;x++){const v=h[x];if($===!0){$=!1;continue}if(v==="\\"){$=!0;continue}if(v==='"'){O=O===1?0:1;continue}if(O!==1){if(v==="["){s++;continue}if(v==="]"&&s>0){s--;continue}if(!(s>0)){if(v==="("){R++;continue}if(v===")"&&(R--,R===0))return m===!0&&x!==h.length-1?void 0:{type:h[0],body:h.slice(2,x),end:x}}}}},C=h=>`${h.length===1?t.escapeRegex(h[0]):`[${h.map(m=>t.escapeRegex(m)).join("")}]`}*`,X=h=>{let m=0;const s=[];for(;m<h.length;){const R=b(h.slice(m),!1);if(!R||R.type!=="*")return;const O=A(R.body).map(x=>x.trim());if(O.length!==1)return;const $=T(O[0]);if(!$||$.length!==1)return;s.push($),m+=R.end+1}if(!(s.length<1))return s},K=h=>{let m=0,s=h.trim(),R=b(s);for(;R;)m++,s=R.body.trim(),R=b(s);return m},W=(h,m)=>{if(m.maxExtglobRecursion===!1)return{risky:!1};const s=typeof m.maxExtglobRecursion=="number"?m.maxExtglobRecursion:e.DEFAULT_MAX_EXTGLOB_RECURSION,R=A(h).map(v=>v.trim());if(R.length>1&&(R.some(v=>v==="")||R.some(v=>/^[*?]+$/.test(v))||w(R)))return{risky:!0};const O=[];let $=!1,x=!0;for(const v of R){const j=X(v);if(j){$=!0,O.push(...j);continue}const G=T(v);if(G&&G.length===1){O.push(G);continue}if(x=!1,K(v)>s)return{risky:!0}}return $?x?{risky:!0,safeOutput:C([...new Set(O)])}:{risky:!0}:{risky:!1}},L=(h,m)=>{if(typeof h!="string")throw new TypeError("Expected a string");h=a[h]||h;const s={...m},R=typeof s.maxLength=="number"?Math.min(r,s.maxLength):r;let O=h.length;if(O>R)throw new SyntaxError(`Input length: ${O}, exceeds maximum allowed length: ${R}`);const $={type:"bos",value:"",output:s.prepend||""},x=[$],v=s.capture?"":"?:",j=e.globChars(s.windows),G=e.extglobChars(j),{DOT_LITERAL:J,PLUS_LITERAL:le,SLASH_LITERAL:ee,ONE_CHAR:U,DOTS_SLASH:te,NO_DOT:pe,NO_DOT_SLASH:se,NO_DOTS_SLASH:re,QMARK:P,QMARK_NO_DOT:ne,STAR:q,START_ANCHOR:ce}=j,V=d=>`(${v}(?:(?!${ce}${d.dot?te:J}).)*?)`,E=s.dot?"":pe,H=s.dot?P:ne;let Q=s.bash===!0?V(s):q;s.capture&&(Q=`(${Q})`),typeof s.noext=="boolean"&&(s.noextglob=s.noext);const u={input:h,index:-1,start:0,dot:s.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:x};h=t.removePrefix(h,u),O=h.length;const I=[],B=[],fe=[];let n=$,i;const Y=()=>u.index===O-1,N=u.peek=(d=1)=>h[u.index+d],oe=u.advance=()=>h[++u.index]||"",ie=()=>h.slice(u.index+1),Z=(d="",D=0)=>{u.consumed+=d,u.index+=D},Je=d=>{u.output+=d.output!=null?d.output:d.value,Z(d.value)},Jt=()=>{let d=1;for(;N()==="!"&&(N(2)!=="("||N(3)==="?");)oe(),u.start++,d++;return d%2===0?!1:(u.negated=!0,u.start++,!0)},et=d=>{u[d]++,fe.push(d)},de=d=>{u[d]--,fe.pop()},_=d=>{if(n.type==="globstar"){const D=u.braces>0&&(d.type==="comma"||d.type==="brace"),c=d.extglob===!0||I.length&&(d.type==="pipe"||d.type==="paren");d.type!=="slash"&&d.type!=="paren"&&!D&&!c&&(u.output=u.output.slice(0,-n.output.length),n.type="star",n.value="*",n.output=Q,u.output+=n.output)}if(I.length&&d.type!=="paren"&&(I[I.length-1].inner+=d.value),(d.value||d.output)&&Je(d),n&&n.type==="text"&&d.type==="text"){n.output=(n.output||n.value)+d.value,n.value+=d.value;return}d.prev=n,x.push(d),n=d},tt=(d,D)=>{const c={...G[D],conditions:1,inner:""};c.prev=n,c.parens=u.parens,c.output=u.output,c.startIndex=u.index,c.tokensIndex=x.length;const S=(s.capture?"(":"")+c.open;et("parens"),_({type:d,value:D,output:u.output?"":U}),_({type:"paren",extglob:!0,value:oe(),output:S}),I.push(c)},er=d=>{const D=h.slice(d.startIndex,u.index+1),c=h.slice(d.startIndex+2,u.index),S=W(c,s);if((d.type==="plus"||d.type==="star")&&S.risky){const M=S.safeOutput?(d.output?"":U)+(s.capture?`(${S.safeOutput})`:S.safeOutput):void 0,ue=x[d.tokensIndex];ue.type="text",ue.value=D,ue.output=M||t.escapeRegex(D);for(let ae=d.tokensIndex+1;ae<x.length;ae++)x[ae].value="",x[ae].output="",delete x[ae].suffix;u.output=d.output+ue.output,u.backtrack=!0,_({type:"paren",extglob:!0,value:i,output:""}),de("parens");return}let F=d.close+(s.capture?")":""),z;if(d.type==="negate"){let M=Q;if(d.inner&&d.inner.length>1&&d.inner.includes("/")&&(M=V(s)),(M!==Q||Y()||/^\)+$/.test(ie()))&&(F=d.close=`)$))${M}`),d.inner.includes("*")&&(z=ie())&&/^\.[^\\/.]+$/.test(z)){const ue=L(z,{...m,fastpaths:!1}).output;F=d.close=`)${ue})${M})`}d.prev.type==="bos"&&(u.negatedExtglob=!0)}_({type:"paren",extglob:!0,value:i,output:F}),de("parens")};if(s.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(h)){let d=!1,D=h.replace(o,(c,S,F,z,M,ue)=>z==="\\"?(d=!0,c):z==="?"?S?S+z+(M?P.repeat(M.length):""):ue===0?H+(M?P.repeat(M.length):""):P.repeat(F.length):z==="."?J.repeat(F.length):z==="*"?S?S+z+(M?Q:""):Q:S?c:`\\${c}`);return d===!0&&(s.unescape===!0?D=D.replace(/\\/g,""):D=D.replace(/\\+/g,c=>c.length%2===0?"\\\\":c?"\\":"")),D===h&&s.contains===!0?(u.output=h,u):(u.output=t.wrapOutput(D,u,m),u)}for(;!Y();){if(i=oe(),i==="\0")continue;if(i==="\\"){const c=N();if(c==="/"&&s.bash!==!0||c==="."||c===";")continue;if(!c){i+="\\",_({type:"text",value:i});continue}const S=/^\\+/.exec(ie());let F=0;if(S&&S[0].length>2&&(F=S[0].length,u.index+=F,F%2!==0&&(i+="\\")),s.unescape===!0?i=oe():i+=oe(),u.brackets===0){_({type:"text",value:i});continue}}if(u.brackets>0&&(i!=="]"||n.value==="["||n.value==="[^")){if(s.posix!==!1&&i===":"){const c=n.value.slice(1);if(c.includes("[")&&(n.posix=!0,c.includes(":"))){const S=n.value.lastIndexOf("["),F=n.value.slice(0,S),z=n.value.slice(S+2),M=y[z];if(M){n.value=F+M,u.backtrack=!0,oe(),!$.output&&x.indexOf(n)===1&&($.output=U);continue}}}(i==="["&&N()!==":"||i==="-"&&N()==="]")&&(i=`\\${i}`),i==="]"&&(n.value==="["||n.value==="[^")&&(i=`\\${i}`),s.posix===!0&&i==="!"&&n.value==="["&&(i="^"),n.value+=i,Je({value:i});continue}if(u.quotes===1&&i!=='"'){i=t.escapeRegex(i),n.value+=i,Je({value:i});continue}if(i==='"'){u.quotes=u.quotes===1?0:1,s.keepQuotes===!0&&_({type:"text",value:i});continue}if(i==="("){et("parens"),_({type:"paren",value:i});continue}if(i===")"){if(u.parens===0&&s.strictBrackets===!0)throw new SyntaxError(l("opening","("));const c=I[I.length-1];if(c&&u.parens===c.parens+1){er(I.pop());continue}_({type:"paren",value:i,output:u.parens?")":"\\)"}),de("parens");continue}if(i==="["){if(s.nobracket===!0||!ie().includes("]")){if(s.nobracket!==!0&&s.strictBrackets===!0)throw new SyntaxError(l("closing","]"));i=`\\${i}`}else et("brackets");_({type:"bracket",value:i});continue}if(i==="]"){if(s.nobracket===!0||n&&n.type==="bracket"&&n.value.length===1){_({type:"text",value:i,output:`\\${i}`});continue}if(u.brackets===0){if(s.strictBrackets===!0)throw new SyntaxError(l("opening","["));_({type:"text",value:i,output:`\\${i}`});continue}de("brackets");const c=n.value.slice(1);if(n.posix!==!0&&c[0]==="^"&&!c.includes("/")&&(i=`/${i}`),n.value+=i,Je({value:i}),s.literalBrackets===!1||t.hasRegexChars(c))continue;const S=t.escapeRegex(n.value);if(u.output=u.output.slice(0,-n.value.length),s.literalBrackets===!0){u.output+=S,n.value=S;continue}n.value=`(${v}${S}|${n.value})`,u.output+=n.value;continue}if(i==="{"&&s.nobrace!==!0){et("braces");const c={type:"brace",value:i,output:"(",outputIndex:u.output.length,tokensIndex:u.tokens.length};B.push(c),_(c);continue}if(i==="}"){const c=B[B.length-1];if(s.nobrace===!0||!c){_({type:"text",value:i,output:i});continue}let S=")";if(c.dots===!0){const F=x.slice(),z=[];for(let M=F.length-1;M>=0&&(x.pop(),F[M].type!=="brace");M--)F[M].type!=="dots"&&z.unshift(F[M].value);S=f(z,s),u.backtrack=!0}if(c.comma!==!0&&c.dots!==!0){const F=u.output.slice(0,c.outputIndex),z=u.tokens.slice(c.tokensIndex);c.value=c.output="\\{",i=S="\\}",u.output=F;for(const M of z)u.output+=M.output||M.value}_({type:"brace",value:i,output:S}),de("braces"),B.pop();continue}if(i==="|"){I.length>0&&I[I.length-1].conditions++,_({type:"text",value:i});continue}if(i===","){let c=i;const S=B[B.length-1];S&&fe[fe.length-1]==="braces"&&(S.comma=!0,c="|"),_({type:"comma",value:i,output:c});continue}if(i==="/"){if(n.type==="dot"&&u.index===u.start+1){u.start=u.index+1,u.consumed="",u.output="",x.pop(),n=$;continue}_({type:"slash",value:i,output:ee});continue}if(i==="."){if(u.braces>0&&n.type==="dot"){n.value==="."&&(n.output=J);const c=B[B.length-1];n.type="dots",n.output+=i,n.value+=i,c.dots=!0;continue}if(u.braces+u.parens===0&&n.type!=="bos"&&n.type!=="slash"){_({type:"text",value:i,output:J});continue}_({type:"dot",value:i,output:J});continue}if(i==="?"){if(!(n&&n.value==="(")&&s.noextglob!==!0&&N()==="("&&N(2)!=="?"){tt("qmark",i);continue}if(n&&n.type==="paren"){const c=N();let S=i;(n.value==="("&&!/[!=<:]/.test(c)||c==="<"&&!/<([!=]|\w+>)/.test(ie()))&&(S=`\\${i}`),_({type:"text",value:i,output:S});continue}if(s.dot!==!0&&(n.type==="slash"||n.type==="bos")){_({type:"qmark",value:i,output:ne});continue}_({type:"qmark",value:i,output:P});continue}if(i==="!"){if(s.noextglob!==!0&&N()==="("&&(N(2)!=="?"||!/[!=<:]/.test(N(3)))){tt("negate",i);continue}if(s.nonegate!==!0&&u.index===0){Jt();continue}}if(i==="+"){if(s.noextglob!==!0&&N()==="("&&N(2)!=="?"){tt("plus",i);continue}if(n&&n.value==="("||s.regex===!1){_({type:"plus",value:i,output:le});continue}if(n&&(n.type==="bracket"||n.type==="paren"||n.type==="brace")||u.parens>0){_({type:"plus",value:i});continue}_({type:"plus",value:le});continue}if(i==="@"){if(s.noextglob!==!0&&N()==="("&&N(2)!=="?"){_({type:"at",extglob:!0,value:i,output:""});continue}_({type:"text",value:i});continue}if(i!=="*"){(i==="$"||i==="^")&&(i=`\\${i}`);const c=p.exec(ie());c&&(i+=c[0],u.index+=c[0].length),_({type:"text",value:i});continue}if(n&&(n.type==="globstar"||n.star===!0)){n.type="star",n.star=!0,n.value+=i,n.output=Q,u.backtrack=!0,u.globstar=!0,Z(i);continue}let d=ie();if(s.noextglob!==!0&&/^\([^?]/.test(d)){tt("star",i);continue}if(n.type==="star"){if(s.noglobstar===!0){Z(i);continue}const c=n.prev,S=c.prev,F=c.type==="slash"||c.type==="bos",z=S&&(S.type==="star"||S.type==="globstar");if(s.bash===!0&&(!F||d[0]&&d[0]!=="/")){_({type:"star",value:i,output:""});continue}const M=u.braces>0&&(c.type==="comma"||c.type==="brace"),ue=I.length&&(c.type==="pipe"||c.type==="paren");if(!F&&c.type!=="paren"&&!M&&!ue){_({type:"star",value:i,output:""});continue}for(;d.slice(0,3)==="/**";){const ae=h[u.index+4];if(ae&&ae!=="/")break;d=d.slice(3),Z("/**",3)}if(c.type==="bos"&&Y()){n.type="globstar",n.value+=i,n.output=V(s),u.output=n.output,u.globstar=!0,Z(i);continue}if(c.type==="slash"&&c.prev.type!=="bos"&&!z&&Y()){u.output=u.output.slice(0,-(c.output+n.output).length),c.output=`(?:${c.output}`,n.type="globstar",n.output=V(s)+(s.strictSlashes?")":"|$)"),n.value+=i,u.globstar=!0,u.output+=c.output+n.output,Z(i);continue}if(c.type==="slash"&&c.prev.type!=="bos"&&d[0]==="/"){const ae=d[1]!==void 0?"|$":"";u.output=u.output.slice(0,-(c.output+n.output).length),c.output=`(?:${c.output}`,n.type="globstar",n.output=`${V(s)}${ee}|${ee}${ae})`,n.value+=i,u.output+=c.output+n.output,u.globstar=!0,Z(i+oe()),_({type:"slash",value:"/",output:""});continue}if(c.type==="bos"&&d[0]==="/"){n.type="globstar",n.value+=i,n.output=`(?:^|${ee}|${V(s)}${ee})`,u.output=n.output,u.globstar=!0,Z(i+oe()),_({type:"slash",value:"/",output:""});continue}if(M&&d[0]==="/"){n.type="globstar",n.value+=i,n.output=`(?:^|${ee}|${V(s)}${ee})`,u.output+=n.output,u.globstar=!0,Z(i+oe()),_({type:"slash",value:"/",output:""});continue}u.output=u.output.slice(0,-n.output.length),n.type="globstar",n.output=V(s),n.value+=i,u.output+=n.output,u.globstar=!0,Z(i);continue}const D={type:"star",value:i,output:Q};if(s.bash===!0){D.output=".*?",(n.type==="bos"||n.type==="slash")&&(D.output=E+D.output),_(D);continue}if(n&&(n.type==="bracket"||n.type==="paren")&&s.regex===!0){D.output=i,_(D);continue}(u.index===u.start||n.type==="slash"||n.type==="dot")&&(n.type==="dot"?(u.output+=se,n.output+=se):s.dot===!0?(u.output+=re,n.output+=re):(u.output+=E,n.output+=E),N()!=="*"&&(u.output+=U,n.output+=U)),_(D)}for(;u.brackets>0;){if(s.strictBrackets===!0)throw new SyntaxError(l("closing","]"));u.output=t.escapeLast(u.output,"["),de("brackets")}for(;u.parens>0;){if(s.strictBrackets===!0)throw new SyntaxError(l("closing",")"));u.output=t.escapeLast(u.output,"("),de("parens")}for(;u.braces>0;){if(s.strictBrackets===!0)throw new SyntaxError(l("closing","}"));u.output=t.escapeLast(u.output,"{"),de("braces")}if(s.strictSlashes!==!0&&(n.type==="star"||n.type==="bracket")&&_({type:"maybe_slash",value:"",output:`${ee}?`}),u.backtrack===!0){u.output="";for(const d of u.tokens)u.output+=d.output!=null?d.output:d.value,d.suffix&&(u.output+=d.suffix)}return u};return L.fastpaths=(h,m)=>{const s={...m},R=typeof s.maxLength=="number"?Math.min(r,s.maxLength):r,O=h.length;if(O>R)throw new SyntaxError(`Input length: ${O}, exceeds maximum allowed length: ${R}`);h=a[h]||h;const{DOT_LITERAL:$,SLASH_LITERAL:x,ONE_CHAR:v,DOTS_SLASH:j,NO_DOT:G,NO_DOTS:J,NO_DOTS_SLASH:le,STAR:ee,START_ANCHOR:U}=e.globChars(s.windows),te=s.dot?J:G,pe=s.dot?le:G,se=s.capture?"":"?:",re={negated:!1,prefix:""};let P=s.bash===!0?".*?":ee;s.capture&&(P=`(${P})`);const ne=E=>E.noglobstar===!0?P:`(${se}(?:(?!${U}${E.dot?j:$}).)*?)`,q=E=>{switch(E){case"*":return`${te}${v}${P}`;case".*":return`${$}${v}${P}`;case"*.*":return`${te}${P}${$}${v}${P}`;case"*/*":return`${te}${P}${x}${v}${pe}${P}`;case"**":return te+ne(s);case"**/*":return`(?:${te}${ne(s)}${x})?${pe}${v}${P}`;case"**/*.*":return`(?:${te}${ne(s)}${x})?${pe}${P}${$}${v}${P}`;case"**/.*":return`(?:${te}${ne(s)}${x})?${$}${v}${P}`;default:{const H=/^(.*?)\.(\w+)$/.exec(E);if(!H)return;const Q=q(H[1]);return Q?Q+$+H[2]:void 0}}},ce=t.removePrefix(h,re);let V=q(ce);return V&&s.strictSlashes!==!0&&(V+=`${x}?`),V},lt=L,lt}var pt,Ht;function mo(){if(Ht)return pt;Ht=1;const e=go(),t=ho(),r=st(),y=ot(),p=a=>a&&typeof a=="object"&&!Array.isArray(a),o=(a,f,l=!1)=>{if(Array.isArray(a)){const K=a.map(W=>o(W,f,l));return W=>{for(const L of K){const h=L(W);if(h)return h}return!1}}const A=p(a)&&a.tokens&&a.input;if(a===""||typeof a!="string"&&!A)throw new TypeError("Expected pattern to be a non-empty string");const g=f||{},T=g.windows,w=A?o.compileRe(a,f):o.makeRe(a,f,!1,!0),b=w.state;delete w.state;let C=()=>!1;if(g.ignore){const K={...f,ignore:null,onMatch:null,onResult:null};C=o(g.ignore,K,l)}const X=(K,W=!1)=>{const{isMatch:L,match:h,output:m}=o.test(K,w,f,{glob:a,posix:T}),s={glob:a,state:b,regex:w,posix:T,input:K,output:m,match:h,isMatch:L};if(typeof g.onResult=="function"&&g.onResult(s),L===!1)return s.isMatch=!1,W?s:!1;e:if(C(K)){if(typeof g.onIgnore=="function"&&g.onIgnore(s)===y.UNIGNORE){s.isMatch=!0;break e}return s.isMatch=!1,W?s:!1}return typeof g.onMatch=="function"&&g.onMatch(s),W?s:!0};return l&&(X.state=b),X};return o.test=(a,f,l,{glob:A,posix:g}={})=>{if(typeof a!="string")throw new TypeError("Expected input to be a string");if(a==="")return{isMatch:!1,output:""};const T=l||{},w=T.format||(g?r.toPosixSlashes:null);let b=a===A,C=b&&w?w(a):a;return b===!1&&(C=w?w(a):a,b=C===A),(b===!1||T.capture===!0)&&(T.matchBase===!0||T.basename===!0?b=o.matchBase(a,f,l,g):b=f.exec(C)),{isMatch:!!b,match:b,output:C}},o.matchBase=(a,f,l,A=l&&l.windows)=>(f instanceof RegExp?f:o.makeRe(f,l)).test(r.basename(a,{windows:A})),o.isMatch=(a,f,l)=>o(f,l)(a),o.parse=(a,f)=>Array.isArray(a)?a.map(l=>o.parse(l,f)):t(a,{...f,fastpaths:!1}),o.scan=(a,f)=>e(a,f),o.compileRe=(a,f,l=!1,A=!1)=>{if(l===!0)return a.output;const g=f||{},T=g.contains?"":"^",w=g.contains?"":"$";let b=`${T}(?:${a.output})${w}`;a&&a.negated===!0&&(b=`^(?!${b}).*$`);const C=o.toRegex(b,f);return A===!0&&(C.state=a),C},o.makeRe=(a,f={},l=!1,A=!1)=>{if(!a||typeof a!="string")throw new TypeError("Expected a non-empty string");let g={negated:!1,fastpaths:!0};return f.fastpaths!==!1&&(a[0]==="."||a[0]==="*")&&(g.output=t.fastpaths(a,f)),g.output||(g=t(a,f)),o.compileRe(g,f,l,A)},o.toRegex=(a,f)=>{try{const l=f||{};return new RegExp(a,l.flags||(l.nocase?"i":""))}catch(l){if(f&&f.debug===!0)throw l;return/$^/}},o.constants=y,pt=o,pt}var ct,Mt;function yo(){if(Mt)return ct;Mt=1;const e=mo(),t=st();function r(y,p,o=!1){return p&&(p.windows===null||p.windows===void 0)&&(p={...p,windows:t.isWindows()}),e(y,p,o)}return Object.assign(r,e),ct=r,ct}var bo=yo();Et(bo);let $o;const vo=e=>($o??=k(import.meta.url))(e),Le=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ze=e=>{if(typeof Le<"u"&&Le.versions&&Le.versions.node){const[t,r]=Le.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Le.getBuiltinModule(e)}return vo(e)};Ze("fs");Ze("fs");Ze("path");Ze("url");const{createRequire:Eo}=Ze("module");var Bt=Eo(import.meta.url);try{Bt.resolve("picomatch"),Bt("picomatch")}catch{}var ft,It;function Ao(){if(It)return ft;It=1;/*!
2
- * is-extglob <https://github.com/jonschlinkert/is-extglob>
3
- *
4
- * Copyright (c) 2014-2016, Jon Schlinkert.
5
- * Licensed under the MIT License.
6
- */return ft=function(e){if(typeof e!="string"||e==="")return!1;for(var t;t=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(t[2])return!0;e=e.slice(t.index+t[0].length)}return!1},ft}var dt,Dt;function Wt(){if(Dt)return dt;Dt=1;/*!
7
- * is-glob <https://github.com/jonschlinkert/is-glob>
8
- *
9
- * Copyright (c) 2014-2017, Jon Schlinkert.
10
- * Released under the MIT License.
11
- */var e=Ao(),t={"{":"}","(":")","[":"]"},r=function(p){if(p[0]==="!")return!0;for(var o=0,a=-2,f=-2,l=-2,A=-2,g=-2;o<p.length;){if(p[o]==="*"||p[o+1]==="?"&&/[\].+)]/.test(p[o])||f!==-1&&p[o]==="["&&p[o+1]!=="]"&&(f<o&&(f=p.indexOf("]",o)),f>o&&(g===-1||g>f||(g=p.indexOf("\\",o),g===-1||g>f)))||l!==-1&&p[o]==="{"&&p[o+1]!=="}"&&(l=p.indexOf("}",o),l>o&&(g=p.indexOf("\\",o),g===-1||g>l))||A!==-1&&p[o]==="("&&p[o+1]==="?"&&/[:!=]/.test(p[o+2])&&p[o+3]!==")"&&(A=p.indexOf(")",o),A>o&&(g=p.indexOf("\\",o),g===-1||g>A))||a!==-1&&p[o]==="("&&p[o+1]!=="|"&&(a<o&&(a=p.indexOf("|",o)),a!==-1&&p[a+1]!==")"&&(A=p.indexOf(")",a),A>a&&(g=p.indexOf("\\",a),g===-1||g>A))))return!0;if(p[o]==="\\"){var T=p[o+1];o+=2;var w=t[T];if(w){var b=p.indexOf(w,o);b!==-1&&(o=b+1)}if(p[o]==="!")return!0}else o++}return!1},y=function(p){if(p[0]==="!")return!0;for(var o=0;o<p.length;){if(/[*?{}()[\]]/.test(p[o]))return!0;if(p[o]==="\\"){var a=p[o+1];o+=2;var f=t[a];if(f){var l=p.indexOf(f,o);l!==-1&&(o=l+1)}if(p[o]==="!")return!0}else o++}return!1};return dt=function(p,o){if(typeof p!="string"||p==="")return!1;if(e(p))return!0;var a=r;return o&&o.strict===!1&&(a=y),a(p)},dt}let Ro;const To=e=>(Ro??=k(import.meta.url))(e),He=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,jt=e=>{if(typeof He<"u"&&He.versions&&He.versions.node){const[t,r]=He.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return He.getBuiltinModule(e)}return To(e)},xo=jt("path"),wo=jt("os");var gt,Pt;function _o(){if(Pt)return gt;Pt=1;var e=Wt(),t=xo.posix.dirname,r=wo.platform()==="win32",y="/",p=/\\/g,o=/\\([!*?|[\](){}])/g;gt=function(l,A){var g=Object.assign({flipBackslashes:!0},A);g.flipBackslashes&&r&&l.indexOf(y)<0&&(l=l.replace(p,y)),a(l)&&(l+=y),l+="a";do l=t(l);while(f(l));return l.replace(o,"$1")};function a(l){var A=l.slice(-1),g;switch(A){case"}":g="{";break;case"]":g="[";break;default:return!1}var T=l.indexOf(g);return T<0?!1:l.slice(T+1,-1).includes(y)}function f(l){return/\([^()]+$/.test(l)||l[0]==="{"||l[0]==="["||/[^\\][{[]/.test(l)?!0:e(l)}return gt}var So=_o();Et(So);let Co;const Oo=e=>(Co??=k(import.meta.url))(e),Me=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ko=e=>{if(typeof Me<"u"&&Me.versions&&Me.versions.node){const[t,r]=Me.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Me.getBuiltinModule(e)}return Oo(e)},{access:No}=ko("node:fs/promises");async function vt(e,t=Xt){he(e),e=ye(e);try{return await No(e,t),!0}catch{return!1}}let Lo;const Ho=e=>(Lo??=k(import.meta.url))(e),Be=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Mo=e=>{if(typeof Be<"u"&&Be.versions&&Be.versions.node){const[t,r]=Be.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Be.getBuiltinModule(e)}return Ho(e)};Mo("node:fs");var Bo=Wt();Et(Bo);let Io;const Do=e=>(Io??=k(import.meta.url))(e),me=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Qt=e=>{if(typeof me<"u"&&me.versions&&me.versions.node){const[t,r]=me.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return me.getBuiltinModule(e)}return Do(e)},{cwd:Po}=me,{mkdir:Fo,rename:Go,copyFile:Uo,unlink:Xo}=Qt("node:fs/promises");Qt("node:fs");let zo=class extends Error{constructor(t,r){super(`Source directory "${ge(t)}" does not match destination directory "${ge(r)}"`),this.name="SameDirectoryError"}};const Ko=(e,t)=>{if(!e||!t)throw new Error("Source and destination paths must not be empty");if(ge(e)!==ge(t))throw new zo(e,t)},Wo=async(e,t,{cwd:r,directoryMode:y,overwrite:p,validateDirectory:o})=>{if(r&&(e=mt(r,e),t=mt(r,t)),o&&Ko(e,t),!p&&await vt(t))throw new Error(`The destination file exists: ${t}`);await Fo(ge(t),{mode:y,recursive:!0});try{await Go(e,t)}catch(a){if(a.code==="EXDEV")await Uo(e,t),await Xo(e);else throw a}},vn=async(e,t,r={})=>{const y={overwrite:!0,validateDirectory:!1,...r,cwd:r.cwd?ye(r.cwd):Po()};await Wo(e,t,y)};let jo=class extends Error{constructor(t){super(`ENOENT: ${t}`)}get code(){return"ENOENT"}set code(t){throw new Error("Cannot overwrite code ENOENT")}get name(){return"NotFoundError"}set name(t){throw new Error("Cannot overwrite name of NotFoundError")}},Qo=class extends Error{constructor(t){super(`EPERM: Operation not permitted, ${t}`)}get code(){return"EPERM"}set code(t){throw new Error("Cannot overwrite code EPERM")}get name(){return"PermissionError"}set name(t){throw new Error("Cannot overwrite name of PermissionError")}};const qo=(e,t)=>{const r=e?.code;return r==="ENOENT"?new jo(`no such file or directory, open '${t}'`):r==="EACCES"||r==="EPERM"?new Qo(`unable to read the non-readable file: ${t}`):e};let Vo;const Yo=e=>(Vo??=k(import.meta.url))(e),Ie=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,qt=e=>{if(typeof Ie<"u"&&Ie.versions&&Ie.versions.node){const[t,r]=Ie.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ie.getBuiltinModule(e)}return Yo(e)},{readFile:Zo}=qt("node:fs/promises"),{unzip:Jo,brotliDecompress:es}=qt("node:zlib"),ts={brotli:es,gzip:Jo,none:(e,t)=>{t(null,e)}},rs=async(e,t)=>{he(e),e=ye(e);const{buffer:r,compression:y,encoding:p,flag:o}=t??{};let a;try{a=await Zo(e,o?{flag:o}:{})}catch(f){throw qo(f,e)}return await new Promise((f,l)=>{ts[y??"none"](a,(A,g)=>{A?l(A):f(r?g:g.toString(p??"utf8"))})})};let os;const ss=e=>(os??=k(import.meta.url))(e),De=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Vt=e=>{if(typeof De<"u"&&De.versions&&De.versions.node){const[t,r]=De.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return De.getBuiltinModule(e)}return ss(e)};Vt("node:fs");Vt("node:zlib");let ns;const is=e=>(ns??=k(import.meta.url))(e),Pe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,us=e=>{if(typeof Pe<"u"&&Pe.versions&&Pe.versions.node){const[t,r]=Pe.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Pe.getBuiltinModule(e)}return is(e)},{createRequire:Yt}=us("node:module"),as=new Map([["Error",Error],["EvalError",EvalError],["RangeError",RangeError],["ReferenceError",ReferenceError],["SyntaxError",SyntaxError],["TypeError",TypeError],["URIError",URIError]]);typeof AggregateError<"u"&&as.set("AggregateError",AggregateError);let ls;const ps=e=>(ls??=Yt(import.meta.url))(e),Fe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,cs=e=>{if(typeof Fe<"u"&&Fe.versions&&Fe.versions.node){const[t,r]=Fe.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Fe.getBuiltinModule(e)}return ps(e)};cs("node:util");let fs;const ds=e=>(fs??=Yt(import.meta.url))(e),Ge=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,At=e=>{if(typeof Ge<"u"&&Ge.versions&&Ge.versions.node){const[t,r]=Ge.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ge.getBuiltinModule(e)}return ds(e)};At("node:fs");At("node:path");At("node:url");const gs=e=>{const t={force:!0,recursive:!0};return e?.maxRetries!==void 0&&(t.maxRetries=e.maxRetries),e?.retryDelay!==void 0&&(t.retryDelay=e.retryDelay),t};let hs;const ms=e=>(hs??=k(import.meta.url))(e),Ue=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Zt=e=>{if(typeof Ue<"u"&&Ue.versions&&Ue.versions.node){const[t,r]=Ue.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ue.getBuiltinModule(e)}return ms(e)};Zt("node:fs");Zt("node:fs/promises");let ys;const bs=e=>(ys??=k(import.meta.url))(e),Xe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,$s=e=>{if(typeof Xe<"u"&&Xe.versions&&Xe.versions.node){const[t,r]=Xe.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Xe.getBuiltinModule(e)}return bs(e)};$s("node:fs");let vs;const Es=e=>(vs??=k(import.meta.url))(e),ze=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,As=e=>{if(typeof ze<"u"&&ze.versions&&ze.versions.node){const[t,r]=ze.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return ze.getBuiltinModule(e)}return Es(e)},{rm:Rs}=As("node:fs/promises"),Ts=async(e,t={})=>{he(e),await Rs(e,gs(t))};let xs;const ws=e=>(xs??=k(import.meta.url))(e),Ke=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,_s=e=>{if(typeof Ke<"u"&&Ke.versions&&Ke.versions.node){const[t,r]=Ke.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ke.getBuiltinModule(e)}return ws(e)};_s("node:fs");const Ss=e=>{if(typeof e!="string"&&!(e instanceof ArrayBuffer)&&!ArrayBuffer.isView(e))throw new TypeError("File contents must be a string, ArrayBuffer, or ArrayBuffer view.")};let Cs;const Os=e=>(Cs??=k(import.meta.url))(e),We=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,ks=e=>{if(typeof We<"u"&&We.versions&&We.versions.node){const[t,r]=We.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return We.getBuiltinModule(e)}return Os(e)},{randomBytes:Ns}=ks("node:crypto"),Ls=e=>`${e}.${process.pid.toString(36)}.${Ns(6).toString("hex")}.tmp`,Hs=new TextEncoder,Ms=e=>{if(e instanceof Uint8Array)return e;if(typeof e=="string")return Hs.encode(e);if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e)){const t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(t)}throw new TypeError("Invalid contents type. Expected string or ArrayBuffer.")};let Bs;const Is=e=>(Bs??=k(import.meta.url))(e),je=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ds=e=>{if(typeof je<"u"&&je.versions&&je.versions.node){const[t,r]=je.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return je.getBuiltinModule(e)}return Is(e)},{mkdir:Ps,writeFile:Fs,stat:Gs,rename:Ft,chown:Us,chmod:Xs,unlink:zs}=Ds("node:fs/promises"),Ks=async(e,t,r)=>{r={backup:!1,encoding:"utf8",flag:"w",overwrite:!0,recursive:!0,...r},he(e),Ss(t),e=ye(e);const y=await vt(e,Xt);if(y&&!r.overwrite)throw new mr(`file already exists, open '${e}'`);const p=Ls(e);try{!y&&r.recursive&&await Ps(ge(e),{recursive:!0});let o;if(await Fs(p,typeof t=="string"?Buffer.from(t,r.encoding??"utf8"):Ms(t),{flag:"wx"}),y&&r.backup&&(o=await Gs(e),r.chown??={gid:o.gid,uid:o.uid},await Ft(e,`${e}.bak`)),r.chown)try{await Us(p,r.chown.uid,r.chown.gid)}catch{}await Xs(p,o&&!r.mode?o.mode:r.mode??438),await Ft(p,e)}catch(o){throw new Error(`Failed to write file at: ${e} - ${o.message}`,{cause:o})}finally{await vt(p)&&await zs(p)}};let Ws;const js=e=>(Ws??=k(import.meta.url))(e),Qe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Qs=e=>{if(typeof Qe<"u"&&Qe.versions&&Qe.versions.node){const[t,r]=Qe.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Qe.getBuiltinModule(e)}return js(e)};Qs("node:fs");let qs;const Vs=e=>(qs??=k(import.meta.url))(e),qe=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Ys=e=>{if(typeof qe<"u"&&qe.versions&&qe.versions.node){const[t,r]=qe.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return qe.getBuiltinModule(e)}return Vs(e)};Ys("node:fs/promises");let Zs;const Js=e=>(Zs??=k(import.meta.url))(e),Ve=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,en=e=>{if(typeof Ve<"u"&&Ve.versions&&Ve.versions.node){const[t,r]=Ve.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ve.getBuiltinModule(e)}return Js(e)};en("node:fs");let tn;const rn=e=>(tn??=k(import.meta.url))(e),Ye=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,Rt=e=>{if(typeof Ye<"u"&&Ye.versions&&Ye.versions.node){const[t,r]=Ye.versions.node.split(".").map(Number);if(t>22||t===22&&r>=3||t===20&&r>=16)return Ye.getBuiltinModule(e)}return rn(e)},on=Rt("fs"),sn=Rt("os"),nn=Rt("path");var ht={},Gt;function un(){if(Gt)return ht;Gt=1;var e=Object.defineProperty,t=(g,T)=>e(g,"name",{value:T,configurable:!0}),r=on,y=sn,p=nn;const o=t(g=>{let T="";for(let w=0;w<g.length;w+=1){const b=g[w],C=b.toUpperCase();T+=b===C?b.toLowerCase():C}return T},"invertCase"),a=new Map,f=t((g,T)=>{const w=p.join(g,`.is-fs-case-sensitive-test-${process.pid}`);try{return T.writeFileSync(w,""),!T.existsSync(o(w))}finally{try{T.unlinkSync(w)}catch{}}},"checkDirectoryCaseWithWrite"),l=t((g,T,w)=>{try{return f(g,w)}catch(b){if(T===void 0)return f(y.tmpdir(),w);throw b}},"checkDirectoryCaseWithFallback"),A=t((g,T=r,w=!0)=>{const b=g??process.cwd();if(w&&a.has(b))return a.get(b);let C;const X=o(b);return X!==b&&T.existsSync(b)?C=!T.existsSync(X):C=l(b,g,T),w&&a.set(b,C),C},"isFsCaseSensitive");return ht.isFsCaseSensitive=A,ht}un();class Rn extends nr{directory;constructor(t){super(t),this.directory=yt(t?.directory||Ut(rr(),"Upload_meta")),this.accessCheck().catch(r=>{this.logger?.error("Metadata storage access check failed: %O",r)})}getMetaPath=t=>{const r=yt(`${this.directory}/${this.prefix}${t}${this.suffix}`),y=this.directory.endsWith("/")?this.directory:`${this.directory}/`;return r.startsWith(y)?r:nt(it.INVALID_FILE_NAME,`Invalid id: "${t}" resolves outside the meta directory`)};getIdFromPath=t=>t.slice(`${this.directory}/${this.prefix}`.length,-this.suffix.length);async save(t,r){await this.accessCheck();const y={...r};return y.metadata&&(y.metadata=ir(r.metadata)),await Ks(this.getMetaPath(t),JSON.stringify(y),{recursive:!0}),r}async touch(t,r){const y=new Date;return await tr(this.getMetaPath(t),y,y),r}async get(t){try{const r=await rs(this.getMetaPath(t));if(r===void 0)throw nt(it.FILE_NOT_FOUND);const y=JSON.parse(r);return y.metadata&&typeof y.metadata=="string"&&(y.metadata=ur(y.metadata)),y}catch(r){const y=r,p=r instanceof SyntaxError;throw y.code==="ENOENT"||p?nt(it.FILE_NOT_FOUND):r}}async delete(t){await Ts(this.getMetaPath(t))}async accessCheck(){await zt(this.directory)}}export{vn as X,zt as d,mn as h,rs as q,Ts as u,oo as x,Rn as y};
@@ -1 +0,0 @@
1
- const $=/^[A-Z]:\//i,h=(t="")=>t&&t.replaceAll("\\","/").replace($,n=>n.toUpperCase()),p=/^[/\\]{2}/,d=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i,g=/^[A-Z]:$/i,i=/\/$/,x=()=>typeof process.cwd=="function"?process.cwd().replaceAll("\\","/"):"/",u=(t,n)=>{let e="",l=0,s=-1,r=0,o;for(let f=0;f<=t.length;++f){if(f<t.length)o=t[f];else{if(o==="/")break;o="/"}if(o==="/"){if(!(s===f-1||r===1))if(r===2){if(e.length<2||l!==2||!e.endsWith(".")||e.at(-2)!=="."){if(e.length>2){const a=e.lastIndexOf("/");a===-1?(e="",l=0):(e=e.slice(0,a),l=e.length-1-e.lastIndexOf("/")),s=f,r=0;continue}else if(e.length>0){e="",l=0,s=f,r=0;continue}}n&&(e+=e.length>0?"/..":"..",l=2)}else e.length>0?e+=`/${t.slice(s+1,f)}`:e=t.slice(s+1,f),l=f-s-1;s=f,r=0}else o==="."&&r!==-1?++r:r=-1}return e},c=t=>d.test(t),A=function(t){if(t.length===0)return".";t=h(t);const n=p.exec(t),e=c(t),l=t.at(-1)==="/";return t=u(t,!e),t.length===0?e?"/":l?"./":".":(l&&(t+="/"),g.test(t)&&(t+="/"),n?e?`//${t}`:`//./${t}`:e&&!c(t)?`/${t}`:t)},I=(...t)=>{let n="";for(const e of t)if(e)if(n.length>0){const l=n.at(-1)==="/",s=e[0]==="/";l&&s?n+=e.slice(1):n+=l||s?e:`/${e}`}else n+=e;return A(n)},O=function(...t){t=t.map(l=>h(l));let n="",e=!1;for(let l=t.length-1;l>=-1&&!e;l--){const s=l>=0?t[l]:x();!s||s.length===0||(n=`${s}/${n}`,e=c(s))}return n=u(n,!e),e&&!c(n)?`/${n}`:n.length>0?n:"."},m=t=>{const n=h(t).replace(i,""),e=n.lastIndexOf("/");if(e===-1)return c(t)?"/":".";const l=n.slice(0,e);return g.test(l)?`${l}/`:l||(c(t)?"/":".")},W=(t,n)=>{const e=h(t),l=e.slice(e.lastIndexOf("/")+1);if(n&&l.endsWith(n)){if(n===e)return"";const s=l.slice(0,-n.length);if(s.length>0)return s}return l};export{c as A,O as B,m as H,W as J,A as W,I as m,h as v};
@@ -1 +0,0 @@
1
- import{Readable as w}from"node:stream";import{C,B as M,X as U,c as O}from"./storage-0j5nCAUp.js";import{d as T}from"./detect-file-type-BA7UBLKA.js";import{throwErrorCode as m,ERRORS as y}from"./ERRORS-BIBxE2oR.js";import{createRetryWrapper as A}from"./createRetryWrapper-CxgiV_hH.js";import{y as k}from"./local-meta-storage-DJDcuxf1.js";import{t as x}from"./update-size-DuNuLyxj.js";import{i as I}from"./part-match-D-9dGX42.js";import{e as R}from"./has-content-50BsqrWw.js";import{t as S}from"./get-file-status-y3wTtDQs.js";const z=(u,t)=>{const i={};return Object.keys(u).forEach(e=>{i[e]=t(u[e])}),i},v=u=>u===Number(u)?u:(C(u)??0)/1e3,B=5*1024*1024,L=16*1024*1024,N=u=>{if(u)return`bytes=${Math.max(0,u.start)}-${u.end===void 0?"":u.end}`};class b extends M{checksumTypes=["md5","crc32","crc32c","sha1","sha256"];supportsRange=!0;supportsDelimiter=!0;bucket;meta;MAX_PARTS=1e4;partSize;retry;resolvedRetryConfig;constructor(t){if(super(t),this.bucket=t.bucket,this.partSize=typeof t.partSize=="string"?U(t.partSize):t.partSize||L,this.partSize<B)throw new Error("Minimum allowed partSize value is 5MB");const i={backoffMultiplier:2,initialDelay:1e3,maxDelay:3e4,maxRetries:3,retryableStatusCodes:[408,429,500,502,503,504],shouldRetry:a=>{const s=a;return s.statusCode&&[408,429,500,502,503,504].includes(s.statusCode)?!0:s.retryable??!1},...t.retryConfig};this.retry=A(i),this.resolvedRetryConfig=i;const{metaStorage:e,metaStorageConfig:r}=t;if(e)this.meta=e;else{const a={...t,...r,logger:this.logger};"directory"in a?(this.logger?.debug("Using local meta storage"),this.meta=new k(a)):this.meta=new k(a)}this.isReady=!1,this.accessCheck().then(()=>{this.isReady=!0}).catch(a=>{this.logger?.error("Storage access check failed: %O",a)})}getRetryConfig(){return this.resolvedRetryConfig}async create(t,i){return this.instrumentOperation("create",async()=>{const e={...t};if(t.ttl){const n=typeof t.ttl=="string"?O(t.ttl):t.ttl;n!==void 0&&(e.expiredAt=Date.now()+n)}const r=new(this.getFileClass())(e);r.name=this.namingFunction(r),await this.validate(r);try{const n=await this.getMeta(r.id);if(n.bytesWritten>=0)return n}catch{}const a=this.getS3Api();let s;try{s=await this.runOperation(i,n=>a.createMultipartUpload({ACL:this.getAcl(),Bucket:this.bucket,ContentType:r.contentType,Key:r.name,Metadata:z({originalName:r.originalName,...r.metadata},o=>encodeURI(String(o)))},{signal:n}))}catch{return m(y.FILE_ERROR,"s3 create upload error")}const{UploadId:c}=s||{};return c?(r.UploadId=c,r.bytesWritten=0,this.config.clientDirectUpload&&(r.partSize??=this.partSize),await this.saveMeta(r),r.status="created",await this.onCreate(r),this.config.clientDirectUpload?this.buildPresigned(r):r):m(y.FILE_ERROR,"s3 create upload error")})}async write(t,i){return this.instrumentOperation("write",async()=>{let e;if("contentType"in t&&"metadata"in t&&!("body"in t)&&!("start"in t)?e=t:(e=await this.getMeta(t.id),await this.checkIfExpired(e)),e.status==="completed")return e;if(typeof t.size=="number"&&t.size>0&&x(e,t.size),!I(t,e))return m(y.FILE_CONFLICT);if(this.config.clientDirectUpload)return this.buildPresigned(e);e.Parts??=await this.getParts(e),e.bytesWritten=e.Parts.map(a=>a.Size||0).reduce((a,s)=>a+s,0);const r=await this.lock(t.id);try{if(R(t)){if(this.isUnsupportedChecksum(t.checksumAlgorithm))return m(y.UNSUPPORTED_CHECKSUM_ALGORITHM);if(e.Parts.length===0&&(!e.contentType||e.contentType==="application/octet-stream"))try{const d=t.body instanceof w?t.body:w.fromWeb(t.body),{fileType:g,stream:f}=await T(d);g?.mime&&(e.contentType=g.mime),t.body=f}catch{}if(e.Parts.length>this.MAX_PARTS)throw new Error(`Exceeded ${this.MAX_PARTS} as part of the upload to ${this.bucket}.`);const a=e.Parts.length+1,s=this.getS3Api(),c=e.UploadId;if(!c)throw new Error("UploadId is required");const n=t.body,o=n instanceof Uint8Array,{ETag:l}=await this.runOperation(i,d=>s.uploadPart({Body:n,Bucket:this.bucket,ContentLength:t.contentLength||0,Key:e.name,PartNumber:a,UploadId:c,...t.checksumAlgorithm==="md5"?{ContentMD5:t.checksum}:{}},{signal:d}),{replayable:o}),p={ETag:l,PartNumber:a,Size:t.contentLength};e.Parts=[...e.Parts,p],e.bytesWritten+=t.contentLength||0}if(this.cache.set(e.id,e),e.status=S(e),e.status==="completed"){const[a]=await this.internalOnComplete(e);delete e.Parts,e.uri=a.Location,e.ETag=a.ETag}}finally{await this.unlock(t.id,r)}return e})}async delete({id:t},i){return this.instrumentOperation("delete",async()=>{const e=await this.getMeta(t);e.status="deleted",await this.abortMultipartUpload(e,i),await this.deleteMeta(e.id);const r={...e};return await this.onDelete(r),r})}async copy(t,i,e){return this.instrumentOperation("copy",async()=>{b.assertSafeId(t),b.assertSafeId(i);const r=await this.getMeta(t),a=`${this.bucket}/${t}`,s=this.bucket,c=i,n=this.getS3Api();return await this.runOperation(e,o=>n.copyObject({Bucket:s,CopySource:a,Key:c,...e?.storageClass&&{StorageClass:e.storageClass}},{signal:o})),{...r,id:c,name:c}})}async move(t,i,e){return this.instrumentOperation("move",async()=>{await this.copy(t,i,e);const r=this.getS3Api();return await this.runOperation(e,a=>r.deleteObject({Bucket:this.bucket,Key:t},{signal:a})),await this.getMeta(i)})}async list(t=1e3,i){return this.instrumentOperation("list",async()=>{const e=this.getS3Api(),r=Math.min(t,1e3);let a={Bucket:this.bucket,MaxKeys:r};const s=[];let c=!0;for(;c&&s.length<t;)try{const n=await this.runOperation(i,o=>e.listObjectsV2(a,{signal:o}));for(const{Key:o,LastModified:l}of n?.Contents||[]){if(s.length>=t)break;o!==void 0&&s.push({id:o,...l&&{createdAt:l}})}c=n.IsTruncated||!1,c&&n.NextContinuationToken&&s.length<t&&(a={...a,ContinuationToken:n.NextContinuationToken,MaxKeys:Math.min(r,t-s.length)})}catch(n){const o=this.normalizeError(n instanceof Error?n:new Error(String(n)));throw await this.onError(o),n}return s},{limit:t})}async listDirectory(t){return this.instrumentOperation("listDirectory",async()=>{const i=this.getS3Api(),e=t?.limit??1e3,r=Math.min(e,1e3);let a={Bucket:this.bucket,Delimiter:t?.delimiter,MaxKeys:r,...t?.prefix!==void 0&&{Prefix:t.prefix}};const s=[],c=new Set;let n=!0;for(;n&&s.length<e;)try{const o=await this.runOperation(t,l=>i.listObjectsV2(a,{signal:l}));for(const{Prefix:l}of o?.CommonPrefixes||[])l!==void 0&&c.add(l);for(const{Key:l,LastModified:p}of o?.Contents||[]){if(s.length>=e)break;l!==void 0&&s.push({id:l,...p&&{createdAt:p}})}n=o.IsTruncated||!1,n&&o.NextContinuationToken&&s.length<e&&(a={...a,ContinuationToken:o.NextContinuationToken,MaxKeys:Math.min(r,e-s.length)})}catch(o){const l=this.normalizeError(o instanceof Error?o:new Error(String(o)));throw await this.onError(l),o}return{files:s,prefixes:[...c]}},{limit:t?.limit??1e3})}async exists({id:t},i){return this.instrumentOperation("exists",async()=>{try{await this.getMeta(t);const e=this.getS3Api();return await this.runOperation(i,r=>e.headObject({Bucket:this.bucket,Key:t},{signal:r})),!0}catch{return!1}})}async get({id:t},i){return this.instrumentOperation("get",async()=>{const e=this.getS3Api(),r=N(i?.range),{Body:a,ContentLength:s,ContentType:c,ETag:n,Expires:o,LastModified:l,Metadata:p}=await this.runOperation(i,h=>e.getObject({Bucket:this.bucket,Key:t,...r!==void 0&&{Range:r}},{signal:h}));await this.checkIfExpired({expiredAt:o});const d=[];if(a)if(a instanceof w)for await(const h of a)d.push(h instanceof Uint8Array?h:new Uint8Array(h));else{const h=a.getReader();try{for(;;){const{done:P,value:E}=await h.read();if(P)break;d.push(E)}}finally{h.releaseLock()}}const{originalName:g,...f}=p||{};return{content:Buffer.concat(d),contentType:c,ETag:n,expiredAt:o,id:t,metadata:f,modifiedAt:l,name:t,originalName:g||t,size:Number(s)}})}async buildPresigned(t){const i=t;if(i.Parts?.length||(i.Parts=await this.getParts(t)),i.bytesWritten=i.Parts.map(e=>e.Size||0).reduce((e,r)=>e+r,0),t.status=S(i),i.partsUrls?.length||(i.partsUrls=await this.getPartsPresignedUrls(t)),t.status==="completed"){const[e]=await this.internalOnComplete(t);return delete i.Parts,i.uri=e.Location,t}return t}async getPartsPresignedUrls(t){t.partSize??=this.partSize;const i=t.UploadId;if(!i)throw new Error("UploadId is required for getting presigned URLs");const e=Math.trunc(t.size/this.partSize)+1,r=[],a=Math.trunc(v(this.config.expiration?.maxAge||"6hrs")),s=this.getS3Api();for(let c=0;c<e;c++)r.push(s.getPresignedUrl({Bucket:this.bucket,expiresIn:a,Key:t.name,PartNumber:c+1,UploadId:i}));return Promise.all(r)}async getParts(t){const i=this.getS3Api(),e=t.UploadId;if(!e)throw new Error("UploadId is required");const{Parts:r=[]}=await this.runOperation(void 0,a=>i.listParts({Bucket:this.bucket,Key:t.name,UploadId:e},{signal:a}));return r}completeMultipartUpload(t){const i=this.getS3Api(),e=t.UploadId;if(!e)throw new Error("UploadId is required");const r=t.Parts?.map(({ETag:a,PartNumber:s})=>{if(!a||!s)throw new Error("ETag and PartNumber are required");return{ETag:a,PartNumber:s}})||[];return this.runOperation(void 0,a=>i.completeMultipartUpload({Bucket:this.bucket,Key:t.name,Parts:r,UploadId:e},{signal:a}))}async abortMultipartUpload(t,i){if(t.status!=="completed")try{const e=this.getS3Api(),r=t.UploadId;if(!r)return;await this.runOperation(i,a=>e.abortMultipartUpload({Bucket:this.bucket,Key:t.name,UploadId:r},{signal:a}))}catch(e){this.logger?.error("abortMultipartUploadError: ",e);const r=this.normalizeError(e instanceof Error?e:new Error(String(e)));await this.onError(r)}}internalOnComplete=async t=>{const[i]=await Promise.all([this.completeMultipartUpload(t),this.deleteMeta(t.id)]);return[i,t]}}export{b as S,N as b};
@@ -1 +0,0 @@
1
- import{Readable as K}from"node:stream";import{setInterval as W}from"node:timers";import{inspect as Z}from"node:util";import{W as H,A as O}from"./path-0oTTdkvl-DvWvbDbh.js";import X from"type-is";import q from"./NoOpMetrics-BLo6u4NY.js";import{N as J}from"./cache-Cw3QjoVN.js";import{ErrorMap as $,throwErrorCode as b,ERRORS as E}from"./ERRORS-BIBxE2oR.js";import{randomUUID as Q}from"node:crypto";import{LRUCache as ee}from"lru-cache";import{retry as te}from"./createRetryWrapper-CxgiV_hH.js";import{t as re}from"./is-expired-CBEk6XBi.js";const se=/^(?<value>-?\d+(?:[.,]\d+)*) *(?<type>[a-z]+)?$/i,oe=/^KIBI/,ie=/^MIBI/,ae=/^GIBI/,ne=/^TEBI/,ce=/^PEBI/,le=/^EXBI/,ue=/^ZEBI/,ge=/^YIBI/,he=/^(.)IB$/,me={iec:[{long:"Bytes",short:"B"},{long:"Kibibytes",short:"KiB"},{long:"Mebibytes",short:"MiB"},{long:"Gibibytes",short:"GiB"},{long:"Tebibytes",short:"TiB"},{long:"Pebibytes",short:"PiB"},{long:"Exbibytes",short:"EiB"},{long:"Zebibytes",short:"ZiB"},{long:"Yobibytes",short:"YiB"}],iec_octet:[{long:"Octets",short:"o"},{long:"Kibioctets",short:"Kio"},{long:"Mebioctets",short:"Mio"},{long:"Gibioctets",short:"Gio"},{long:"Tebioctets",short:"Tio"},{long:"Pebioctets",short:"Pio"},{long:"Exbioctets",short:"Eio"},{long:"Zebioctets",short:"Zio"},{long:"Yobioctets",short:"Yio"}],metric:[{long:"Bytes",short:"Bytes"},{long:"Kilobytes",short:"KB"},{long:"Megabytes",short:"MB"},{long:"Gigabytes",short:"GB"},{long:"Terabytes",short:"TB"},{long:"Petabytes",short:"PB"},{long:"Exabytes",short:"EB"},{long:"Zettabytes",short:"ZB"},{long:"Yottabytes",short:"YB"}],metric_octet:[{long:"Octets",short:"o"},{long:"Kilo-octets",short:"ko"},{long:"Mega-octets",short:"Mo"},{long:"Giga-octets",short:"Go"},{long:"Tera-octets",short:"To"},{long:"Peta-octets",short:"Po"},{long:"Exa-octets",short:"Eo"},{long:"Zetta-octets",short:"Zo"},{long:"Yotta-octets",short:"Yo"}]},k=new Map,de=t=>{let e=k.get(t);if(e===void 0){const r=new Intl.NumberFormat(t);e={decimalSeparator:r.format(1.1).replaceAll(new RegExp("\\p{Number}","gu"),""),thousandSeparator:r.format(11111).replaceAll(new RegExp("\\p{Number}","gu"),"")},k.set(t,e)}return e},pe=(t,e)=>{const{decimalSeparator:r,thousandSeparator:s}=de(e);return Number.parseFloat(t.replaceAll(new RegExp(`\\${s}`,"g"),"").replace(new RegExp(`\\${r}`),"."))},fe=t=>{switch(t){case 2:return 1024;case 10:return 1e3;default:throw new Error("Unsupported base.")}},_=(t,e)=>{const r={base:2,locale:"en-US",units:"metric",...e};if(typeof t!="string"||t.length===0)throw new TypeError("Value is not a string or is empty.");if(t.length>100)throw new TypeError("Value exceeds the maximum length of 100 characters.");const s=se.exec(t)?.groups;if(!s)return Number.NaN;const o=pe(s.value,r.locale),i=(s.type??"Bytes").toUpperCase().replace(oe,"KILO").replace(ie,"MEGA").replace(ae,"GIGA").replace(ne,"TERA").replace(ce,"PETA").replace(le,"EXA").replace(ue,"ZETTA").replace(ge,"YOTTA").replace(he,"$1B"),a=me[r.units].findIndex(l=>l.short.toUpperCase()===i||l.long.toUpperCase()===i);if(a===-1)return Number.NaN;const c=fe(r.base);return o*c**a},ye=(t,e,r,s,o,i,a,c,l,n,u,h,g,d)=>{const m={d:s,h:o,m:i,mo:e,ms:c,s:a,w:r,y:t};return m.future=l,m.past=n,m.decimal=u,h!==void 0&&(m.unitMap=h),m.groupSeparator=g,m.placeholderSeparator=d,m},F={d:"d",day:"d",days:"d",h:"h",hour:"h",hours:"h",hr:"h",hrs:"h",m:"m",millisecond:"ms",milliseconds:"ms",min:"m",mins:"m",minute:"m",minutes:"m",mo:"mo",month:"mo",months:"mo",ms:"ms",s:"s",sec:"s",second:"s",seconds:"s",secs:"s",w:"w",week:"w",weeks:"w",y:"y",year:"y",years:"y",yr:"y",yrs:"y"},we=ye(t=>`year${t===1?"":"s"}`,t=>`month${t===1?"":"s"}`,t=>`week${t===1?"":"s"}`,t=>`day${t===1?"":"s"}`,t=>`hour${t===1?"":"s"}`,t=>`minute${t===1?"":"s"}`,t=>`second${t===1?"":"s"}`,t=>`millisecond${t===1?"":"s"}`,"in %s","%s ago",".",F,",","_"),z=new WeakSet,be=t=>{if(z.has(t))return;const e=["y","mo","w","d","h","m","s","ms","future","past"];for(const s of e)if(!Object.hasOwn(t,s))throw new TypeError(`Missing required property: ${s}`);if(typeof t.future!="string"||typeof t.past!="string")throw new TypeError("Properties future and past must be of type string");const r=["y","mo","w","d","h","m","s","ms"];for(const s of r)if(typeof t[s]!="string"&&typeof t[s]!="function")throw new TypeError(`Property ${s} must be of type string or function`);if(t.decimal&&typeof t.decimal!="string")throw new TypeError("Property decimal must be of type string");if(t.delimiter&&typeof t.delimiter!="string")throw new TypeError("Property delimiter must be of type string");if(t._digitReplacements&&!Array.isArray(t._digitReplacements))throw new TypeError("Property _digitReplacements must be an array");if(t._numberFirst&&typeof t._numberFirst!="boolean")throw new TypeError("Property _numberFirst must be of type boolean");if(t.unitMap&&typeof t.unitMap!="object")throw new TypeError("Property unitMap must be an object");if(t.unitMap&&Object.values(t.unitMap).some(s=>typeof s!="string"))throw new TypeError("All values in unitMap must be of type string");z.add(t)},w={d:864e5,h:36e5,m:6e4,mo:2629746e3,ms:1,s:1e3,w:6048e5,y:31556952e3},T=/[-/\\^$*+?.()|[\]{}]/g,R=new WeakMap,v=t=>String.raw`(?:(\d+(?:[.,]\d+)?)${t})?`,Ee=new RegExp(`^P${v("Y")}${v("M")}${v("W")}${v("D")}(?:T${v("H")}${v("M")}${v("S")})?$`,"i"),ve=/^(?:(\d+):)?(?:(\d+):)?(\d+)$/,$e=/^[+-]?\d+(?:\.\d+)?$/,xe=/^[-+]/,Ae=(t,e)=>{if(typeof t!="string"||t.length===0)return;const{defaultUnit:r="ms",language:s=we}={};be(s);const o=s.decimal??".",i=s.groupSeparator??",",a=s.placeholderSeparator??"_",c=o.replaceAll(T,String.raw`\$&`),l=i.replaceAll(T,String.raw`\$&`),n=a.replaceAll(T,String.raw`\$&`),u=s.unitMap??F;let h=t.replaceAll(new RegExp(String.raw`(\d)[${n}${l}](\d)`,"g"),"$1$2");if(o!=="."&&(h=h.replaceAll(new RegExp(String.raw`(\d)${c}(\d)`,"g"),"$1.$2")),$e.test(t)){const f=Number.parseFloat(h.trim());if(!Number.isNaN(f)){const p=u[r];if(p!==void 0)return f*w[p]}return}const g=Ee.exec(t);if(g){const f=[[1,w.y],[2,w.mo],[3,w.w],[4,w.d],[5,w.h],[6,w.m],[7,w.s]];let p=0,y=!1;for(const[N,I]of f){const A=g[N];A!==void 0&&(y=!0,p+=Number.parseFloat(A.replace(",","."))*I)}if(y)return p}const d=ve.exec(t);if(d){let f=0,p=0;d[2]!==void 0?(f=Number.parseInt(d[1]??"0",10),p=Number.parseInt(d[2],10)):d[1]!==void 0&&(p=Number.parseInt(d[1],10));const y=Number.parseInt(d[3]??"0",10);return f*36e5+p*6e4+y*1e3}let m=R.get(u);if(m===void 0){const f=Object.keys(u).toSorted((p,y)=>y.length-p.length).map(p=>p.replaceAll(T,String.raw`\$&`)).join("|");m=new RegExp(String.raw`(-?\d*\.?\d+)\s*(${f})`,"gi"),R.set(u,m)}let D=0,x,S=!1,B=-1,M=0;for(m.lastIndex=0;(x=m.exec(h))!==null;){const f=x[1],p=x[2];if(!f||!p)continue;const y=f.trim(),N=y.startsWith("-")?-1:1,I=y.replace(xe,""),A=Number.parseFloat(I),U=u[p.toLowerCase()];if(U===void 0)continue;if(!S)B=x.index;else if(h.slice(M,x.index).trim().length>0)return;S=!0,M=m.lastIndex;const Y=w[U];if(Number.isNaN(A))return;D+=N*A*Y}const j=h.slice(0,B).trim(),G=h.slice(M).trim();if(!(S&&(j.length>0||G.length>0))&&S)return D};class Se extends ee{constructor(e){super({ttl:3e4,ttlAutopurge:!0,...e})}lock(e){if(this.get(e)!==void 0)throw new Error(`${e} is locked`);const r=Q();return this.set(e,r),r}unlock(e,r){return this.get(e)!==r?!1:this.delete(e)}}const C=t=>{if(t===Number(t))return t;if(!t)return;const e=Ae(t);if(e!==void 0)return e};class Te extends Error{code;statusCode;body;headers;name="ValidationError";constructor(e,r,s,o){const i=typeof s=="string"?s:s?.message||"Validation error";super(i),this.code=e,this.statusCode=r,this.body=s,this.headers=o}}const Ce=t=>t&&t[0].toUpperCase()+t.slice(1),Me=t=>{if(!Array.isArray(t))return t;const[e,r,s]=t;return{body:r,headers:s,statusCode:e}};class Ne{constructor(e="ValidationError"){this.prefix=e}prefix;validators={};add(e){Object.entries(e).forEach(([r,s])=>{const o=`${this.prefix}${Ce(r)}`;if(this.validators[o]={...this.validators[o],...s},typeof this.validators[o].isValid!="function")throw new TypeError('Validation config "isValid" is missing, or it is not a function!')})}async verify(e){for(const[r,s]of Object.entries(this.validators))if(!await s.isValid(e)){const o=s.response||(r in $?$[r]:$.UnknownError),i=Me(o),{body:a,headers:c,message:l,statusCode:n}=i;throw new Te(r,n,a||l,c)}}}const We=t=>t.name==="ValidationError",Ie=t=>{if(typeof t.name=="string")return t.name;if(typeof t.title=="string")return t.title;if(typeof t.originalName=="string")return t.originalName;if(typeof t.filename=="string")return t.filename},P=(t,e)=>{const r={...t};return Object.keys(e).forEach(s=>{const o=e[s];if(o!==null&&typeof o=="object"&&!Array.isArray(o)){const i=r[s],a=i&&typeof i=="object"&&!Array.isArray(i)?i:{};r[s]=P(a,o)}else r[s]=o}),r},Oe=(t,e)=>{const r=P(t,e);Object.assign(t,r),t.originalName=Ie(t.metadata)||t.originalName},De=/(secret|password|passwd|pwd|token|api[_-]?key|credential|authorization|sas|signature|sessiontoken|connectionstring)/i,L=t=>{const e={};for(const[r,s]of Object.entries(t))typeof s=="string"&&De.test(r)?e[r]="[REDACTED]":s&&typeof s=="object"&&!Array.isArray(s)&&s.constructor===Object?e[r]=L(s):e[r]=s;return e},Be={allowMIME:["*/*"],filename:({id:t})=>t,maxMetadataSize:"8MB",maxUploadSize:"5TB",onComplete:()=>{},onCreate:()=>{},onDelete:()=>{},onError:()=>{},onUpdate:()=>{},useRelativeLocation:!1,validation:{}},Ue=t=>!t||t.length<3||t.length>255||O(t)?!1:!(t.toUpperCase().includes("../")||t.includes("\0")),Ze=t=>{if(!t||t.length<3||t.length>255||O(t))return!1;const e=t.toUpperCase();return!['"',"*",":","<",">","?","\\","|","../","\0"].some(r=>e.includes(r))};class V{onCreate;onUpdate;onComplete;onDelete;onError;isReady=!0;errorResponses={};cache;logger;metrics;genericConfig;maxMetadataSize;checksumTypes=[];supportsRange=!1;supportsMetadata=!0;supportsCacheControl=!1;supportsDelimiter=!1;reportsUploadProgress=!1;maxUploadSize;expiration;locker;namingFunction;validation=new Ne;assetFolder=void 0;concurrency;constructor(e){const r={...Be,...e};this.onCreate=r.onCreate,this.onUpdate=r.onUpdate,this.onComplete=r.onComplete,this.onDelete=r.onDelete,this.onError=r.onError,this.namingFunction=r.filename,this.maxUploadSize=typeof r.maxUploadSize=="string"?_(r.maxUploadSize):r.maxUploadSize,this.maxMetadataSize=typeof r.maxMetadataSize=="string"?_(r.maxMetadataSize):r.maxMetadataSize,this.expiration=r.expiration,this.genericConfig=r,r.assetFolder!==void 0&&(this.assetFolder=H(r.assetFolder)),this.locker=new Se({max:1e3,ttl:3e4,ttlAutopurge:!0}),this.cache=r.cache??new J,this.logger=r.logger,this.metrics=r.metrics??new q,this.logger?.debug(`${this.constructor.name} config: ${Z(L({...e,logger:this.logger.constructor}))}`);const s=C(r.expiration?.purgeInterval);s&&this.startAutoPurge(s);const o={isValid(l){if(l.size===void 0)return!0;const n=l.size;if(n==null)return!1;const u=typeof n=="number"?n:Number(n);if(Number.isNaN(u)||u<0)return!1;const h=typeof this.value=="number"?this.value:Number(this.value);return!Number.isNaN(h)&&u<=h},response:$.RequestEntityTooLarge,value:this.maxUploadSize},i={isValid(l){return!!X.is(l.contentType,this.value)},response:$.UnsupportedMediaType,value:r.allowMIME},a=r.fileNameValidation??Ue,c={isValid(l){return a(l.name)},response:$.InvalidFileName};this.validation.add({filename:c,mime:i,size:o}),this.validation.add({...r.validation})}get raw(){}async getReadUrl(e,r){return b(E.METHOD_NOT_ALLOWED,`${this.constructor.name} does not implement getReadUrl()`)}async getUploadUrl(e,r){return b(E.METHOD_NOT_ALLOWED,`${this.constructor.name} does not implement getUploadUrl()`)}get tusExtension(){const e=["creation","creation-with-upload","termination","checksum","creation-defer-length","concatenation"];return this.expiration&&e.push("expiration"),e}async validate(e){await this.validation.verify(e)}async exists(e,r){return this.instrumentOperation("exists",async()=>{try{return await this.getMeta(e.id,r),!0}catch{return!1}})}normalizeError(e){const r={code:e.name,message:e.message,name:e.name,statusCode:500};return{...r,message:`[${this.constructor.name}] ${r.message}`}}get config(){return this.genericConfig}async saveMeta(e){return V.assertSafeId(e.id),this.updateTimestamps(e),this.cache.set(e.id,e),this.meta.save(e.id,e)}static assertSafeId(e){(!e||typeof e!="string"||e.includes("\0")||e.includes("../")||e.includes("..\\")||e===".."||e.startsWith("../")||e.startsWith("..\\")||O(e)||/^[A-Z]:[/\\]/i.test(e))&&b(E.INVALID_FILE_NAME,`Invalid file id: "${e}"`)}async deleteMeta(e){return this.cache.delete(e),this.meta.delete(e)}async getMeta(e,r){try{const s=await this.meta.get(e);return this.cache.set(s.id,s),{...s}}catch(s){const o=this.normalizeError(s instanceof Error?s:new Error(String(s)));return await this.onError(o),b(E.FILE_NOT_FOUND)}}async checkIfExpired(e){return re(e)?(this.delete(e).catch(()=>{}),this.deleteMeta(e.id).catch(()=>{}),b(E.GONE)):e}async purge(e){return this.instrumentOperation("purge",async()=>{const r=C(e||this.expiration?.maxAge),s={items:[],maxAgeMs:r};if(r){const o=Date.now()-r,i=(await this.list()).filter(a=>Number(new Date(this.expiration?.rolling&&a.modifiedAt||a.createdAt))<o);for await(const{id:a,...c}of i)try{const l=await this.delete({id:a});s.items.push({...l,...c})}catch(l){this.logger?.warn(`Failed to delete file ${a} during purge: ${l instanceof Error?l.message:String(l)}`)}s.items.length>0&&(this.logger?.info(`Purge: removed ${s.items.length} uploads`),this.metrics.gauge("storage.operations.purge.items_count",s.items.length,{storage:this.constructor.name.toLowerCase().replace("storage","")}))}return s})}async getStream({id:e},r){return this.instrumentOperation("getStream",async()=>{const s=await this.get({id:e},r),o=K.from(s.content);return{headers:{"Content-Length":String(s.size),"Content-Type":s.contentType,...s.ETag&&{ETag:s.ETag},...s.modifiedAt&&{"Last-Modified":s.modifiedAt.toString()}},size:typeof s.size=="number"?s.size:void 0,stream:o}})}async list(e=1e3,r){return this.instrumentOperation("list",async()=>{throw new Error("Not implemented")})}async listDirectory(e){return b(E.METHOD_NOT_ALLOWED,`${this.constructor.name} does not implement listDirectory()`)}async update({id:e},r){return this.instrumentOperation("update",async()=>{const s=await this.getMeta(e),o={...r};if("ttl"in o&&o.ttl!==void 0){const a=o.ttl,c=typeof a=="string"?C(a):a;c!==void 0&&(o.expiredAt=Date.now()+c),delete o.ttl}Oe(s,o),await this.saveMeta(s);const i={...s,status:"updated"};return await this.onUpdate(i),i})}async deleteBatch(e,r){const s=Date.now(),o=this.constructor.name.toLowerCase().replace("storage","");this.metrics.increment("storage.operations.batch.delete.count",1,{batch_size:e.length,storage:o});const i=[],a=[],c=e.map(async u=>{try{return{file:await this.delete({id:u},r),id:u,success:!0}}catch(h){const g=h instanceof Error?h.message:"Delete failed";return this.metrics.increment("storage.operations.delete.error.count",1,{error:g,storage:o}),{error:g,id:u,success:!1}}}),l=await Promise.allSettled(c);for(const u of l)u.status==="fulfilled"?u.value.success?i.push(u.value.file):a.push({error:u.value.error,id:u.value.id}):a.push({error:u.reason?.message||"Delete failed",id:""});const n=Date.now()-s;return this.metrics.timing("storage.operations.batch.delete.duration",n,{batch_size:e.length,storage:o}),this.metrics.gauge("storage.operations.batch.delete.success_count",i.length,{storage:o}),this.metrics.gauge("storage.operations.batch.delete.failed_count",a.length,{storage:o}),{failed:a,failedCount:a.length,successful:i,successfulCount:i.length}}async copyBatch(e){const r=Date.now(),s=this.constructor.name.toLowerCase().replace("storage","");this.metrics.increment("storage.operations.batch.copy.count",1,{batch_size:e.length,storage:s});const o=[],i=[],a=e.map(async({destination:n,options:u,source:h})=>{try{return{file:await this.copy(h,n,u),id:n,success:!0}}catch(g){const d=g instanceof Error?g.message:"Copy failed";return this.metrics.increment("storage.operations.copy.error.count",1,{error:d,storage:s}),{error:d,id:n,success:!1}}}),c=await Promise.allSettled(a);for(const n of c)n.status==="fulfilled"?n.value.success&&n.value.file?o.push(n.value.file):i.push({error:n.value.error||"Copy failed",id:n.value.id}):i.push({error:n.reason?.message||"Copy failed",id:""});const l=Date.now()-r;return this.metrics.timing("storage.operations.batch.copy.duration",l,{batch_size:e.length,storage:s}),this.metrics.gauge("storage.operations.batch.copy.success_count",o.length,{storage:s}),this.metrics.gauge("storage.operations.batch.copy.failed_count",i.length,{storage:s}),{failed:i,failedCount:i.length,successful:o,successfulCount:o.length}}async moveBatch(e){const r=Date.now(),s=this.constructor.name.toLowerCase().replace("storage","");this.metrics.increment("storage.operations.batch.move.count",1,{batch_size:e.length,storage:s});const o=[],i=[],a=e.map(async({destination:n,source:u})=>{try{return{file:await this.move(u,n),id:n,success:!0}}catch(h){const g=h instanceof Error?h.message:"Move failed";return this.metrics.increment("storage.operations.move.error.count",1,{error:g,storage:s}),{error:g,id:n,success:!1}}}),c=await Promise.allSettled(a);for(const n of c)n.status==="fulfilled"?n.value.success&&n.value.file?o.push(n.value.file):i.push({error:n.value.error||"Move failed",id:n.value.id}):i.push({error:n.reason?.message||"Move failed",id:n.reason?.id||""});const l=Date.now()-r;return this.metrics.timing("storage.operations.batch.move.duration",l,{batch_size:e.length,storage:s}),this.metrics.gauge("storage.operations.batch.move.success_count",o.length,{storage:s}),this.metrics.gauge("storage.operations.batch.move.failed_count",i.length,{storage:s}),{failed:i,failedCount:i.length,successful:o,successfulCount:o.length}}async lock(e){return this.locker.has(e)?b(E.FILE_LOCKED):this.config.concurrency&&typeof this.config.concurrency=="number"&&this.config.concurrency<=this.locker.size?b(E.STORAGE_BUSY):this.locker.lock(e)}async unlock(e,r){if(r===void 0){this.locker.delete(e);return}this.locker.unlock(e,r)}async withLock(e,r){const s=await this.lock(e);try{return await r()}finally{await this.unlock(e,s)}}isUnsupportedChecksum(e=""){return!!e&&!this.checksumTypes.includes(e)}startAutoPurge(e){if(e>=2147483647)throw new Error("“purgeInterval” must be less than 2147483647 ms");W(()=>{this.purge().catch(r=>this.logger?.error(r))},e)}updateTimestamps(e){e.createdAt??=new Date().toISOString();const r=C(this.expiration?.maxAge);return r&&!e.expiredAt&&(e.expiredAt=this.expiration?.rolling?Date.now()+r:+new Date(e.createdAt)+r),e}getRetryConfig(){}runOperation(e,r,s){let o;typeof e?.retries=="number"?o={maxRetries:e.retries}:e?.retries&&(o=e.retries);const i={...this.getRetryConfig(),...o};s?.replayable===!1&&(i.maxRetries=0);const a=[];this.genericConfig.defaultSignal&&a.push(this.genericConfig.defaultSignal),e?.signal&&a.push(e.signal);let c;a.length===1?[c]=a:a.length>1&&(c=AbortSignal.any(a));const l=typeof e?.timeout=="number"?e.timeout:this.genericConfig.defaultTimeout,n=typeof l=="number"&&l>0?l:void 0,u=i.shouldRetry;i.shouldRetry=g=>c?.aborted||g instanceof Error&&g.name==="AbortError"?!1:u?u(g):!1;const h=g=>{if(g instanceof Error&&g.name==="AbortError")return g;const d=g instanceof Error&&g.message?g.message:"The operation was aborted",m=new Error(d,{cause:g});return m.name="AbortError",m};return te(async()=>{if(c?.aborted)throw h(c.reason);let g,d;if(n===void 0)d=c;else{const m=new AbortController;g=setTimeout(()=>{m.abort(new DOMException(`The operation timed out after ${n}ms`,"TimeoutError"))},n),d=c?AbortSignal.any([c,m.signal]):m.signal}try{return await r(d)}catch(m){throw d?.aborted?h(m):m}finally{g&&clearTimeout(g)}},i)}async instrumentOperation(e,r,s){const o=Date.now(),i={storage:this.constructor.name.toLowerCase().replace("storage",""),...s};try{this.metrics.increment(`storage.operations.${e}.count`,1,i);const a=await r(),c=Date.now()-o;return this.metrics.timing(`storage.operations.${e}.duration`,c,i),a&&typeof a=="object"&&"size"in a&&typeof a.size=="number"&&this.metrics.gauge("storage.files.size",a.size,{...i,operation:e}),a}catch(a){const c=Date.now()-o,l=a instanceof Error?a.message:"Unknown error";throw this.metrics.timing(`storage.operations.${e}.duration`,c,{...i,error:"true"}),this.metrics.increment(`storage.operations.${e}.error.count`,1,{...i,error:l}),a}}}export{V as B,Ae as C,_ as X,Ze as a,Te as b,C as c,Ue as d,Oe as e,We as i};