@mateosuarezdev/brpc 1.0.37 → 1.0.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/storage/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var S=(M)=>M.startsWith("image/"),z=(M)=>M.startsWith("video/"),D=(M)=>M.startsWith("audio/"),x=(M)=>M.startsWith("text/")||M.includes("pdf")||M.includes("word")||M.includes("sheet")||M.includes("presentation")||M.includes("opendocument")||M==="application/rtf",U=(M)=>M.includes("zip")||M.includes("rar")||M.includes("tar")||M.includes("7z")||M.includes("gzip"),N=(M)=>M==="application/javascript"||M==="application/json"||M==="text/html"||M==="text/css"||M==="application/xml"||M.includes("javascript"),q=(M)=>M.startsWith("font/")||M.includes("font"),
|
|
2
|
+
var S=(M)=>M.startsWith("image/"),z=(M)=>M.startsWith("video/"),D=(M)=>M.startsWith("audio/"),x=(M)=>M.startsWith("text/")||M.includes("pdf")||M.includes("word")||M.includes("sheet")||M.includes("presentation")||M.includes("opendocument")||M==="application/rtf",U=(M)=>M.includes("zip")||M.includes("rar")||M.includes("tar")||M.includes("7z")||M.includes("gzip"),N=(M)=>M==="application/javascript"||M==="application/json"||M==="text/html"||M==="text/css"||M==="application/xml"||M.includes("javascript"),q=(M)=>M.startsWith("font/")||M.includes("font"),v=(M)=>{if(!M)return"other";let _=M.toLowerCase();if(S(_))return"image";if(z(_))return"video";if(D(_))return"audio";if(x(_))return"document";if(U(_))return"archive";if(N(_))return"code";if(q(_))return"font";return"other"},V={isImage:S,isVideo:z,isAudio:D,isDocument:x,isArchive:U,isCode:N,isFont:q};function n(){let _=Buffer.from("Hello, this is a test file for S3 upload!","utf-8");return new File([_],"test.txt",{type:"text/plain"})}function f(M,_){if(M.url)return M.url;if(M.key)if(M.isPrivate)return`/storage/${M.key}`;else return`https://${_?.bucket??process.env.AWS_BUCKET}.s3.amazonaws.com/${M.key}`;throw Error("Invalid storage object")}function W(M,_){if(!M||M<1||!_||_<1)return"1:1";let $=(Q,J)=>J===0?Q:$(J,Q%J),H=$(M,_);return`${M/H}:${_/H}`}function s(M,_){if(!M||!_||M<1||_<1)return"1:1";let $=M/_,H=[{ratio:1,label:"1:1"},{ratio:0.8,label:"4:5"},{ratio:0.75,label:"3:4"},{ratio:0.6666666666666666,label:"2:3"},{ratio:0.5625,label:"9:16"},{ratio:1.5,label:"3:2"},{ratio:1.3333333333333333,label:"4:3"},{ratio:1.7777777777777777,label:"16:9"},{ratio:2.3333333333333335,label:"21:9"}],Q=0.03;for(let{ratio:Y,label:Z}of H)if(Math.abs($-Y)/Y<Q)return Z;let J=(Y,Z)=>Z===0?Y:J(Z,Y%Z),L=J(M,_);return`${M/L}:${_/L}`}class X extends Error{code;clientCode;httpStatus;data;cause;static STATUS_MAP={BAD_REQUEST:400,UNAUTHORIZED:401,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_SUPPORTED:405,TIMEOUT:408,CONFLICT:409,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,UNPROCESSABLE_CONTENT:422,TOO_MANY_REQUESTS:429,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504};constructor(M){super(M.message);if(this.name="BRPCError",this.code=M.code,this.clientCode=M.clientCode,this.httpStatus=X.STATUS_MAP[M.code],this.data=M.data,this.cause=M.cause,Error.captureStackTrace)Error.captureStackTrace(this,X)}toJSON(){return{name:this.name,code:this.code,clientCode:this.clientCode,message:this.message,data:this.data,httpStatus:this.httpStatus}}static badRequest(M,_,$){return new X({code:"BAD_REQUEST",message:M,clientCode:_,data:$})}static unauthorized(M="Unauthorized",_,$){return new X({code:"UNAUTHORIZED",message:M,clientCode:_,data:$})}static forbidden(M="Forbidden",_,$){return new X({code:"FORBIDDEN",message:M,clientCode:_,data:$})}static notFound(M="Not Found",_,$){return new X({code:"NOT_FOUND",message:M,clientCode:_,data:$})}static preconditionFailed(M="Precondition failed",_,$){return new X({code:"NOT_FOUND",message:M,clientCode:_,data:$})}static conflict(M,_,$){return new X({code:"CONFLICT",message:M,clientCode:_,data:$})}static unprocessableContent(M,_,$){return new X({code:"UNPROCESSABLE_CONTENT",message:M,clientCode:_,data:$})}static tooManyRequests(M="Too many requests",_,$){return new X({code:"TOO_MANY_REQUESTS",message:M,clientCode:_,data:$})}static internalServerError(M="Internal Server Error",_,$){return new X({code:"INTERNAL_SERVER_ERROR",message:M,clientCode:_,data:$})}static timeout(M="Request timeout",_,$){return new X({code:"TIMEOUT",message:M,clientCode:_,data:$})}}import w from"sharp";async function F(M,_,$,H,Q){try{let{data:J,info:L}=await w(M).resize(_,null,{withoutEnlargement:!0}).webp({quality:$}).toBuffer({resolveWithObject:!0});return{buffer:J,object:{name:H.replace(/\.[^/.]+$/,".webp"),resolvedType:"image",metadata:{type:"image/webp",size:J.length,extension:".webp",width:L.width,height:L.height,aspectRatio:L.height>0?L.width/L.height:1,aspectRatioStr:W(L.width,L.height),acl:Q}}}}catch(J){throw X.conflict(`Failed to optimize image: ${J instanceof Error?J.message:"Unknown error"}`)}}async function e(M,{width:_,quality:$,acl:H}={}){let Q=_??1200,J=$??75;if(!M)throw X.conflict("A file must be provided");let L,Y="unknown.webp";if(typeof M==="string"){if(!M.startsWith("data:"))throw X.conflict("Invalid base64 format");let[,Z]=M.split(",");if(!Z)throw X.conflict("Invalid base64 data");L=Buffer.from(Z,"base64")}else{if(!V.isImage(M.type))throw X.conflict("File must be an image");let Z=await M.arrayBuffer();L=Buffer.from(Z),Y=M.name??Y}return F(L,Q,J,Y,H??"public-read")}async function M0(M,{name:_="unknown.webp",width:$,quality:H,acl:Q}={}){if(!M?.length)throw X.conflict("A buffer must be provided");return F(M,$??1200,H??75,_,Q??"public-read")}import P from"sharp";import{randomUUID as k}from"crypto";import{extname as R}from"path";async function I(M,_,$){if(!_)return{data:null,error:Error("File not found")};let H=M.replace(/^\/+|\/+$/g,""),Q=R(_.name),J=`${k()}${Q}`,L=`${H}/${J}`,Y=`./buckets/${H}/${J}`;try{let Z=await Bun.write(Y,_);return{data:{key:L,file:_,bytesWritten:Z},error:null}}catch(Z){return{data:null,error:Error(`Failed to upload ${_.name} to local filesystem`)}}}async function E(M,_,$){if(!_||_.length===0)return[];let H=_.map((J)=>{let L=$?.(J)??J.name;return I(M,J,L)});return await Promise.all(H)}async function B(M){let _=Bun.file(`./buckets/${M}`);if(!await _.exists())return null;return _}async function b(M){let _=Bun.file(`./buckets/${M}`);if(!await _.exists())return!1;return await _.delete(),!0}var A={uploadOne:I,uploadMany:E,getOne:B,deleteOne:b};async function Y0(M){let _=`./cache/images/${M.key}_${M.width}_${M.quality}.webp`,$=await A.getOne(_);if($){if(!V.isImage($.type))return null;return $}let H=M.key,Q=await A.getOne(H);if(!Q)return null;if(!V.isImage(Q.type))return null;let J=await Q.arrayBuffer(),L=await P(J).resize(M.width,null,{withoutEnlargement:!0}).webp({quality:M.quality??75}).toBuffer();await Bun.write(_,L);let Y=Bun.file(_);if(!await Y.exists())return null;return Y}import g from"sharp";async function W0(M){if(!M?.length)return null;try{let _=await g(M).metadata(),$=_.width??0,H=_.height??0,Q=_.height>0?$/H:1;return{type:`image/${_.format}`,size:_.size??0,extension:`.${_.format}`,width:$,height:H,aspectRatio:Q,aspectRatioStr:W($,H)}}catch(_){return console.warn("Failed to read image metadata:",_),null}}var j=process.env.AWS_FOLDER,T=j?`${j}/`:"";var{s3:C}=globalThis.Bun;import{extname as m}from"path";async function u(M,_,$){let H="buffer"in _?_:{buffer:_,object:{name:_.name,resolvedType:v(_.type),metadata:{type:_.type,extension:m(_.name),size:_.size,acl:$?.acl??"public-read"}}};if("buffer"in _){if(!_.object?.name||!_.object?.metadata)throw X.badRequest("Complete metadata required when uploading buffer")}let Q=M.length>1?`${M.replace(/^\/+|\/+$/g,"")}/`:"",J=H.object.metadata.extension.startsWith(".")?H.object.metadata.extension:`.${H.object.metadata.extension}`,L=`${crypto.randomUUID()}${J}`,Y=`${T}${Q}${L}`,Z=C.file(Y),G=H?.object?.metadata?.acl??"public-read",K=G!=="public-read"&&G!=="public-read-write",O=await Z.write(H.buffer,{acl:G});return{uploadedBy:$?.uploadedBy??null,key:Y,url:null,name:H.object.name,thumbnail:null,resolvedType:H.object.resolvedType,provider:"s3",isPrivate:K,metadata:{...H.object.metadata,size:O,acl:G},isActive:!0}}async function N0(M,_,$={throwIf:"any"}){let H=await Promise.allSettled(_.map((L)=>u(M,L,{acl:$?.acl,uploadedBy:$?.uploadedBy}))),Q=[],J=[];if(H.forEach((L)=>{if(L.status==="fulfilled"){if(Q.push(L.value),$?.externalKeys)$.externalKeys.push(L.value.key)}else J.push(L.reason)}),$?.throwIf==="any"&&J.length>0||$?.throwIf==="all"&&J.length===_.length)throw X.internalServerError(`Upload failed: ${J.length} of ${_.length}`);return{data:Q,errors:J.length?J:void 0}}var{s3:h}=globalThis.Bun;async function c(M,_){if(!M||typeof M!=="string")throw X.badRequest("Key is required");let $=M.trim();if(!$||$.length===0)throw X.badRequest("Key must be a non-empty string");try{return await h.delete(M),{key:M,deleted:!0,error:null}}catch(H){return{key:M,deleted:!1,error:H}}}async function I0(M,_){return(await Promise.allSettled(M.map((H)=>c(H,_)))).map((H,Q)=>{if(H.status==="fulfilled")return H.value;return{key:M[Q],deleted:!1,error:H.reason}})}var{s3:y}=globalThis.Bun;async function O0(M,_={debug:!0}){try{return{exists:await y.exists(M),error:null}}catch($){if(_?.debug)console.error("There was an error checking for file existance",$);return{exists:null,error:$}}}export{u as uploadOne,N0 as uploadMany,M0 as optimizeImageBuffer,e as optimizeImage,v as mimeTypeToResolvedType,Y0 as getOptimizedImage,f as getObjectUrl,W0 as getImageMetadata,s as getAspectRatioStringRound,W as getAspectRatioString,n as generateTestFile,V as fileTypePredicates,c as deleteOne,I0 as deleteMany,O0 as checkFileExistance};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=0E360294ED80A4DC64756E2164756E21
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
"import { randomUUID } from \"crypto\";\r\nimport { extname } from \"path\";\r\nimport type { SafeResult } from \"../../types\";\r\n\r\ntype UploadSuccess = {\r\n key: string;\r\n file: File;\r\n bytesWritten: number;\r\n};\r\n\r\n/**\r\n * Uploads a file to local filesystem\r\n * @param path - The folder path (e.g. \"public/images\")\r\n * @param file - The file to upload\r\n * @param filename - Optional custom filename to use instead of original file.name\r\n * @returns Promise<SafeResult<number>> - Success: {data: bytesWritten, error: null}\r\n * Failure: {data: null, error: Error}\r\n *\r\n * Example:\r\n * ```ts\r\n * const {data, error} = await uploadToLocal(\"public/avatars\", userPhoto);\r\n * if (error) {\r\n * console.error(\"Upload failed:\", error);\r\n * return;\r\n * }\r\n * console.log(`Uploaded ${data} bytes`);\r\n * ```\r\n */\r\nasync function uploadOne(\r\n path: string,\r\n file: File,\r\n _filename?: string\r\n): Promise<SafeResult<UploadSuccess>> {\r\n if (!file)\r\n return {\r\n data: null,\r\n error: new Error(`File not found`),\r\n };\r\n\r\n const cleanPath = path.replace(/^\\/+|\\/+$/g, \"\");\r\n const ext = extname(file.name);\r\n const uniqueName = `${randomUUID()}${ext}`;\r\n const filePath = `${cleanPath}/${uniqueName}`;\r\n const fullPath = `./buckets/${cleanPath}/${uniqueName}`;\r\n\r\n try {\r\n const writtenBytes = await Bun.write(fullPath, file);\r\n return {\r\n data: {\r\n key: filePath,\r\n file: file,\r\n bytesWritten: writtenBytes,\r\n },\r\n error: null,\r\n };\r\n } catch (err) {\r\n return {\r\n data: null,\r\n error: new Error(`Failed to upload ${file.name} to local filesystem`),\r\n };\r\n }\r\n}\r\n\r\nasync function uploadMany(\r\n path: string,\r\n files: File[],\r\n nameGetter?: (file: File) => string\r\n): Promise<SafeResult<UploadSuccess>[]> {\r\n if (!files || files.length === 0) {\r\n return [];\r\n }\r\n\r\n const uploadPromises = files.map((file) => {\r\n const filename = nameGetter?.(file) ?? file.name;\r\n return uploadOne(path, file, filename);\r\n });\r\n\r\n const results = await Promise.all(uploadPromises);\r\n\r\n return results;\r\n}\r\n\r\nasync function getOne(key: string) {\r\n const file = Bun.file(`./buckets/${key}`);\r\n const exists = await file.exists();\r\n\r\n if (!exists) return null;\r\n\r\n return file;\r\n}\r\n\r\nasync function deleteOne(key: string) {\r\n const file = Bun.file(`./buckets/${key}`);\r\n const exists = await file.exists();\r\n\r\n if (!exists) return false;\r\n\r\n await file.delete();\r\n\r\n return true;\r\n}\r\n\r\nexport const local = {\r\n uploadOne,\r\n uploadMany,\r\n getOne,\r\n deleteOne,\r\n};\r\n",
|
|
11
11
|
"import sharp from \"sharp\";\r\nimport type { StrictImageMetadata } from \"./types\";\r\nimport { getAspectRatioString } from \"../utils/aspect-ratio\";\r\n\r\nexport async function getImageMetadata(\r\n buffer: Buffer,\r\n): Promise<StrictImageMetadata | null> {\r\n if (!buffer?.length) return null;\r\n\r\n try {\r\n const meta = await sharp(buffer).metadata();\r\n\r\n const width = meta.width ?? 0;\r\n const height = meta.height ?? 0;\r\n const aspectRatio = meta.height > 0 ? width / height : 1;\r\n\r\n return {\r\n // general\r\n type: `image/${meta.format}`,\r\n size: meta.size ?? 0, // original file size in bytes\r\n extension: `.${meta.format}`,\r\n\r\n // image related\r\n width: width,\r\n height: height,\r\n aspectRatio: aspectRatio,\r\n aspectRatioStr: getAspectRatioString(width, height),\r\n };\r\n } catch (err) {\r\n console.warn(\"Failed to read image metadata:\", err);\r\n return null;\r\n }\r\n}\r\n",
|
|
12
12
|
"const AWS_FOLDER = process.env.AWS_FOLDER;\r\nconst CONSTRUCTED_AWS_FOLDER = AWS_FOLDER ? `${AWS_FOLDER}/` : \"\";\r\n\r\nexport { CONSTRUCTED_AWS_FOLDER };\r\n",
|
|
13
|
-
"import type { Acl, InsertStorageObjet, UploadableObjectBuffer } from \"../types\";\r\nimport { BRPCError } from \"../../errors/BRPCError\";\r\nimport { CONSTRUCTED_AWS_FOLDER } from \"./constants\";\r\nimport { s3 as s3Bun } from \"bun\";\r\n\r\n/**\r\n * Uploads a file or optimized buffer to S3 with UUID-based naming\r\n *\r\n * @param path - S3 folder path (e.g. \"images/avatars\")\r\n * @param file - File object or OptimizedBuffer from optimize()\r\n * @returns SafeResult with S3 key, bytes written, isPrivate and metadata for database storage\r\n *\r\n * @throws {Error} When buffer is provided without required metadata\r\n *\r\n * @example\r\n * ```typescript\r\n * // regular files\r\n * const result = await uploadOne('images', userFile);\r\n *\r\n * // optimized images\r\n * const optimized = await optimize(bunFile);\r\n * const result2 = await uploadOne('images/optimized', optimized);\r\n *\r\n * if (result.error) throw BRPCError.conlict(\"Error uploading \")\r\n *\r\n * if (result.data) {\r\n * console.log(`Uploaded: ${result.data.key}`);\r\n * // Save metadata to DB: result.data.metadata\r\n * }\r\n * ```\r\n */\r\nasync function uploadOne(\r\n path: string,\r\n file: UploadableObjectBuffer,\r\n opts?: { acl?: Acl; externalReference?: string; uploadedBy?: string },\r\n): Promise<InsertStorageObjet> {\r\n // Extract file info based on type\r\n const fileInfo
|
|
13
|
+
"import type { Acl, InsertStorageObjet, UploadableObjectBuffer } from \"../types\";\r\nimport { BRPCError } from \"../../errors/BRPCError\";\r\nimport { CONSTRUCTED_AWS_FOLDER } from \"./constants\";\r\nimport { s3 as s3Bun } from \"bun\";\r\nimport { extname } from \"path\";\r\nimport { mimeTypeToResolvedType } from \"../utils\";\r\n\r\n// function isUploadableBuffer(\r\n// file: File | UploadableObjectBuffer\r\n// ): file is UploadableObjectBuffer {\r\n// return \"object\" in file && \"buffer\" in file;\r\n// }\r\n\r\n/**\r\n * Uploads a file or optimized buffer to S3 with UUID-based naming\r\n *\r\n * @param path - S3 folder path (e.g. \"images/avatars\")\r\n * @param file - File object or OptimizedBuffer from optimize()\r\n * @returns SafeResult with S3 key, bytes written, isPrivate and metadata for database storage\r\n *\r\n * @throws {Error} When buffer is provided without required metadata\r\n *\r\n * @example\r\n * ```typescript\r\n * // regular files\r\n * const result = await uploadOne('images', userFile);\r\n *\r\n * // optimized images\r\n * const optimized = await optimize(bunFile);\r\n * const result2 = await uploadOne('images/optimized', optimized);\r\n *\r\n * if (result.error) throw BRPCError.conlict(\"Error uploading \")\r\n *\r\n * if (result.data) {\r\n * console.log(`Uploaded: ${result.data.key}`);\r\n * // Save metadata to DB: result.data.metadata\r\n * }\r\n * ```\r\n */\r\nasync function uploadOne(\r\n path: string,\r\n file: File | UploadableObjectBuffer,\r\n opts?: { acl?: Acl; externalReference?: string; uploadedBy?: string },\r\n): Promise<InsertStorageObjet> {\r\n // Extract file info based on type\r\n const fileInfo: UploadableObjectBuffer =\r\n \"buffer\" in file\r\n ? file\r\n : {\r\n buffer: file,\r\n object: {\r\n name: file.name,\r\n resolvedType: mimeTypeToResolvedType(file.type),\r\n metadata: {\r\n type: file.type,\r\n extension: extname(file.name),\r\n size: file.size,\r\n acl: opts?.acl ?? \"public-read\",\r\n },\r\n },\r\n };\r\n\r\n // Only validate the risky input (UploadableObjectBuffer)\r\n if (\"buffer\" in file) {\r\n if (!file.object?.name || !file.object?.metadata) {\r\n throw BRPCError.badRequest(\r\n \"Complete metadata required when uploading buffer\",\r\n );\r\n }\r\n }\r\n\r\n // Common upload logic\r\n const cleanPath = path.length > 1 ? `${path.replace(/^\\/+|\\/+$/g, \"\")}/` : \"\";\r\n const extension = fileInfo.object.metadata.extension.startsWith(\".\")\r\n ? fileInfo.object.metadata.extension\r\n : `.${fileInfo.object.metadata.extension}`;\r\n const fileName = `${crypto.randomUUID()}${extension}`;\r\n const key = `${CONSTRUCTED_AWS_FOLDER}${cleanPath}${fileName}`;\r\n\r\n const s3file = s3Bun.file(key);\r\n\r\n const acl = fileInfo?.object?.metadata?.acl ?? \"public-read\";\r\n\r\n const isPrivate = acl !== \"public-read\" && acl !== \"public-read-write\";\r\n\r\n const writtenBytes = await s3file.write(fileInfo.buffer, {\r\n acl: acl,\r\n });\r\n\r\n const digestedObject: InsertStorageObjet = {\r\n uploadedBy: opts?.uploadedBy ?? null,\r\n key: key,\r\n url: null,\r\n name: fileInfo.object.name,\r\n thumbnail: null,\r\n resolvedType: fileInfo.object.resolvedType,\r\n provider: \"s3\",\r\n isPrivate: isPrivate,\r\n metadata: {\r\n ...fileInfo.object.metadata,\r\n size: writtenBytes,\r\n acl: acl,\r\n },\r\n isActive: true,\r\n };\r\n\r\n return digestedObject;\r\n}\r\n\r\nexport { uploadOne };\r\n\r\ntype UploadManyOptions = {\r\n acl?: Acl;\r\n uploadedBy?: string;\r\n throwIf?: \"any\" | \"all\" | \"ignore\"; // error behavior\r\n externalKeys?: string[]; // array to push uploaded keys to\r\n};\r\n\r\ntype UploadManyResult = {\r\n data: InsertStorageObjet[];\r\n errors?: any[];\r\n};\r\n\r\nexport async function uploadMany(\r\n path: string,\r\n files: UploadableObjectBuffer[],\r\n opts: UploadManyOptions = { throwIf: \"any\" },\r\n): Promise<UploadManyResult> {\r\n const results = await Promise.allSettled(\r\n files.map((file) =>\r\n uploadOne(path, file, {\r\n acl: opts?.acl,\r\n uploadedBy: opts?.uploadedBy,\r\n }),\r\n ),\r\n );\r\n\r\n const data: InsertStorageObjet[] = [];\r\n const errors: any[] = [];\r\n\r\n results.forEach((res) => {\r\n if (res.status === \"fulfilled\") {\r\n data.push(res.value);\r\n if (opts?.externalKeys) opts.externalKeys.push(res.value.key);\r\n } else {\r\n errors.push(res.reason);\r\n }\r\n });\r\n\r\n // Decide whether to throw based on `throwIf` option\r\n if (\r\n (opts?.throwIf === \"any\" && errors.length > 0) ||\r\n (opts?.throwIf === \"all\" && errors.length === files.length)\r\n ) {\r\n throw BRPCError.internalServerError(\r\n `Upload failed: ${errors.length} of ${files.length}`,\r\n );\r\n }\r\n\r\n return { data, errors: errors.length ? errors : undefined };\r\n}\r\n",
|
|
14
14
|
"import { BRPCError } from \"../../errors\";\r\nimport { s3 as s3Bun } from \"bun\";\r\nimport type { DeleteOneResult } from \"./types\";\r\n\r\nexport async function deleteOne(\r\n key: string,\r\n opts?: { debug?: boolean }\r\n): Promise<DeleteOneResult> {\r\n if (!key || typeof key !== \"string\") {\r\n throw BRPCError.badRequest(\"Key is required\");\r\n }\r\n\r\n const sanitizedKey = key.trim();\r\n if (!sanitizedKey || sanitizedKey.length === 0) {\r\n throw BRPCError.badRequest(\"Key must be a non-empty string\");\r\n }\r\n\r\n try {\r\n await s3Bun.delete(key);\r\n return {\r\n key: key,\r\n deleted: true,\r\n error: null,\r\n };\r\n } catch (e) {\r\n return {\r\n key: key,\r\n deleted: false,\r\n error: e as Error,\r\n };\r\n // if (opts?.debug) {\r\n // console.error(`Error deleting file with key \"${key}\"`, e);\r\n // }\r\n //? Handle this at app level\r\n // throw BRPCError.conflict(\r\n // \"There was an error when trying to delete the file\",\r\n // \"FILE_NOT_DELETED\"\r\n // );\r\n }\r\n}\r\n\r\n/**\r\n * Deletes multiple S3 keys in parallel.\r\n * Returns per-key result so caller can handle failures/rollback.\r\n */\r\nexport async function deleteMany(\r\n keys: string[],\r\n opts?: { debug?: boolean }\r\n): Promise<DeleteOneResult[]> {\r\n const results = await Promise.allSettled(\r\n keys.map((key) => deleteOne(key, opts))\r\n );\r\n\r\n return results.map((res, i) => {\r\n if (res.status === \"fulfilled\") return res.value;\r\n return { key: keys[i], deleted: false, error: res.reason as Error };\r\n });\r\n}\r\n",
|
|
15
15
|
"import { s3 as s3Bun } from \"bun\";\r\n\r\n/**\r\n * Checks a file existance in S3\r\n */\r\nasync function checkFileExistance(\r\n key: string,\r\n opts: { debug?: boolean } = { debug: process.env.NODE_ENV !== \"production\" }\r\n): Promise<{ exists: boolean; error: null } | { exists: null; error: Error }> {\r\n try {\r\n const exists = await s3Bun.exists(key);\r\n return { exists, error: null };\r\n } catch (e) {\r\n if (opts?.debug) {\r\n console.error(\"There was an error checking for file existance\", e);\r\n }\r\n return { exists: null, error: e as Error };\r\n }\r\n}\r\n\r\nexport { checkFileExistance };\r\n"
|
|
16
16
|
],
|
|
17
|
-
"mappings": "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
|
|
18
|
-
"debugId": "
|
|
17
|
+
"mappings": "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",
|
|
18
|
+
"debugId": "0E360294ED80A4DC64756E2164756E21",
|
|
19
19
|
"names": []
|
|
20
20
|
}
|
|
@@ -25,7 +25,7 @@ import type { Acl, InsertStorageObjet, UploadableObjectBuffer } from "../types";
|
|
|
25
25
|
* }
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
|
-
declare function uploadOne(path: string, file: UploadableObjectBuffer, opts?: {
|
|
28
|
+
declare function uploadOne(path: string, file: File | UploadableObjectBuffer, opts?: {
|
|
29
29
|
acl?: Acl;
|
|
30
30
|
externalReference?: string;
|
|
31
31
|
uploadedBy?: string;
|