@payloadcms/storage-vercel-blob 3.86.0-internal.ac46214 → 3.87.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.
@@ -1 +1 @@
1
- {"version":3,"file":"VercelBlobClientUploadHandler.d.ts","sourceRoot":"","sources":["../../src/client/VercelBlobClientUploadHandler.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,kCAAkC,GAAG;IAC/C,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,OAAO,CAAA;CAC9B,CAAA;AASD,eAAO,MAAM,6BAA6B;;;;;;;aAMpB,OAAO,aAmCzB,CAAA"}
1
+ {"version":3,"file":"VercelBlobClientUploadHandler.d.ts","sourceRoot":"","sources":["../../src/client/VercelBlobClientUploadHandler.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,kCAAkC,GAAG;IAC/C,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,OAAO,CAAA;CAC9B,CAAA;AASD,eAAO,MAAM,6BAA6B;;;;;;;aAQpC,OAAO,aAiCT,CAAA"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
- import { createClientUploadHandler } from '@payloadcms/plugin-cloud-storage/client';
3
- import { getFileKey } from '@payloadcms/plugin-cloud-storage/utilities';
2
+ import { createClientUploadHandler, getFileKey } from '@payloadcms/plugin-cloud-storage/client';
4
3
  import { upload } from '@vercel/blob/client';
5
4
  import { formatAdminURL } from 'payload/shared';
6
5
  /** Last path segment only (POSIX), for keys like `folder/sub/file.png`. */ function posixBasename(key) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/client/VercelBlobClientUploadHandler.ts"],"sourcesContent":["'use client'\nimport { createClientUploadHandler } from '@payloadcms/plugin-cloud-storage/client'\nimport { getFileKey } from '@payloadcms/plugin-cloud-storage/utilities'\nimport { upload } from '@vercel/blob/client'\nimport { formatAdminURL } from 'payload/shared'\n\nexport type VercelBlobClientUploadHandlerExtra = {\n addRandomSuffix: boolean\n useCompositePrefixes: boolean\n}\n\n/** Last path segment only (POSIX), for keys like `folder/sub/file.png`. */\nfunction posixBasename(key: string): string {\n const normalized = key.replace(/^\\/+/, '')\n const lastSlash = normalized.lastIndexOf('/')\n return lastSlash === -1 ? normalized : normalized.slice(lastSlash + 1)\n}\n\nexport const VercelBlobClientUploadHandler =\n createClientUploadHandler<VercelBlobClientUploadHandlerExtra>({\n handler: async ({\n apiRoute,\n collectionSlug,\n docPrefix,\n extra: { addRandomSuffix, useCompositePrefixes = false },\n file,\n prefix,\n serverHandlerPath,\n serverURL,\n updateFilename,\n }) => {\n const endpointRoute = formatAdminURL({\n apiRoute,\n path: serverHandlerPath,\n serverURL,\n })\n const { fileKey: pathname, sanitizedDocPrefix } = getFileKey({\n collectionPrefix: prefix,\n docPrefix,\n filename: file.name,\n useCompositePrefixes,\n })\n\n // upload the file directly to Vercel Blob using the signed URL\n const result = await upload(pathname, file, {\n access: 'public',\n clientPayload: collectionSlug,\n contentType: file.type,\n handleUploadUrl: endpointRoute,\n })\n\n // Match server uploadFile: document `filename` is basename only; prefixes are separate.\n if (addRandomSuffix) {\n const pathname = result.pathname.replace(/^\\/+/, '')\n updateFilename(decodeURIComponent(posixBasename(pathname)))\n }\n\n return { prefix: sanitizedDocPrefix }\n },\n })\n"],"names":["createClientUploadHandler","getFileKey","upload","formatAdminURL","posixBasename","key","normalized","replace","lastSlash","lastIndexOf","slice","VercelBlobClientUploadHandler","handler","apiRoute","collectionSlug","docPrefix","extra","addRandomSuffix","useCompositePrefixes","file","prefix","serverHandlerPath","serverURL","updateFilename","endpointRoute","path","fileKey","pathname","sanitizedDocPrefix","collectionPrefix","filename","name","result","access","clientPayload","contentType","type","handleUploadUrl","decodeURIComponent"],"mappings":"AAAA;AACA,SAASA,yBAAyB,QAAQ,0CAAyC;AACnF,SAASC,UAAU,QAAQ,6CAA4C;AACvE,SAASC,MAAM,QAAQ,sBAAqB;AAC5C,SAASC,cAAc,QAAQ,iBAAgB;AAO/C,yEAAyE,GACzE,SAASC,cAAcC,GAAW;IAChC,MAAMC,aAAaD,IAAIE,OAAO,CAAC,QAAQ;IACvC,MAAMC,YAAYF,WAAWG,WAAW,CAAC;IACzC,OAAOD,cAAc,CAAC,IAAIF,aAAaA,WAAWI,KAAK,CAACF,YAAY;AACtE;AAEA,OAAO,MAAMG,gCACXX,0BAA8D;IAC5DY,SAAS,OAAO,EACdC,QAAQ,EACRC,cAAc,EACdC,SAAS,EACTC,OAAO,EAAEC,eAAe,EAAEC,uBAAuB,KAAK,EAAE,EACxDC,IAAI,EACJC,MAAM,EACNC,iBAAiB,EACjBC,SAAS,EACTC,cAAc,EACf;QACC,MAAMC,gBAAgBrB,eAAe;YACnCU;YACAY,MAAMJ;YACNC;QACF;QACA,MAAM,EAAEI,SAASC,QAAQ,EAAEC,kBAAkB,EAAE,GAAG3B,WAAW;YAC3D4B,kBAAkBT;YAClBL;YACAe,UAAUX,KAAKY,IAAI;YACnBb;QACF;QAEA,+DAA+D;QAC/D,MAAMc,SAAS,MAAM9B,OAAOyB,UAAUR,MAAM;YAC1Cc,QAAQ;YACRC,eAAepB;YACfqB,aAAahB,KAAKiB,IAAI;YACtBC,iBAAiBb;QACnB;QAEA,wFAAwF;QACxF,IAAIP,iBAAiB;YACnB,MAAMU,WAAWK,OAAOL,QAAQ,CAACpB,OAAO,CAAC,QAAQ;YACjDgB,eAAee,mBAAmBlC,cAAcuB;QAClD;QAEA,OAAO;YAAEP,QAAQQ;QAAmB;IACtC;AACF,GAAE"}
1
+ {"version":3,"sources":["../../src/client/VercelBlobClientUploadHandler.ts"],"sourcesContent":["'use client'\nimport { createClientUploadHandler, getFileKey } from '@payloadcms/plugin-cloud-storage/client'\nimport { upload } from '@vercel/blob/client'\nimport { formatAdminURL } from 'payload/shared'\n\nexport type VercelBlobClientUploadHandlerExtra = {\n addRandomSuffix: boolean\n useCompositePrefixes: boolean\n}\n\n/** Last path segment only (POSIX), for keys like `folder/sub/file.png`. */\nfunction posixBasename(key: string): string {\n const normalized = key.replace(/^\\/+/, '')\n const lastSlash = normalized.lastIndexOf('/')\n return lastSlash === -1 ? normalized : normalized.slice(lastSlash + 1)\n}\n\nexport const VercelBlobClientUploadHandler =\n createClientUploadHandler<VercelBlobClientUploadHandlerExtra>({\n handler: async ({\n apiRoute,\n collectionSlug,\n docPrefix,\n extra: { addRandomSuffix, useCompositePrefixes = false },\n file,\n prefix,\n serverHandlerPath,\n serverURL,\n updateFilename,\n }) => {\n const endpointRoute = formatAdminURL({\n apiRoute,\n path: serverHandlerPath,\n serverURL,\n })\n const { fileKey: pathname, sanitizedDocPrefix } = getFileKey({\n collectionPrefix: prefix,\n docPrefix,\n filename: file.name,\n useCompositePrefixes,\n })\n\n // upload the file directly to Vercel Blob using the signed URL\n const result = await upload(pathname, file, {\n access: 'public',\n clientPayload: collectionSlug,\n contentType: file.type,\n handleUploadUrl: endpointRoute,\n })\n\n // Match server uploadFile: document `filename` is basename only; prefixes are separate.\n if (addRandomSuffix) {\n const pathname = result.pathname.replace(/^\\/+/, '')\n updateFilename(decodeURIComponent(posixBasename(pathname)))\n }\n\n return { prefix: sanitizedDocPrefix }\n },\n })\n"],"names":["createClientUploadHandler","getFileKey","upload","formatAdminURL","posixBasename","key","normalized","replace","lastSlash","lastIndexOf","slice","VercelBlobClientUploadHandler","handler","apiRoute","collectionSlug","docPrefix","extra","addRandomSuffix","useCompositePrefixes","file","prefix","serverHandlerPath","serverURL","updateFilename","endpointRoute","path","fileKey","pathname","sanitizedDocPrefix","collectionPrefix","filename","name","result","access","clientPayload","contentType","type","handleUploadUrl","decodeURIComponent"],"mappings":"AAAA;AACA,SAASA,yBAAyB,EAAEC,UAAU,QAAQ,0CAAyC;AAC/F,SAASC,MAAM,QAAQ,sBAAqB;AAC5C,SAASC,cAAc,QAAQ,iBAAgB;AAO/C,yEAAyE,GACzE,SAASC,cAAcC,GAAW;IAChC,MAAMC,aAAaD,IAAIE,OAAO,CAAC,QAAQ;IACvC,MAAMC,YAAYF,WAAWG,WAAW,CAAC;IACzC,OAAOD,cAAc,CAAC,IAAIF,aAAaA,WAAWI,KAAK,CAACF,YAAY;AACtE;AAEA,OAAO,MAAMG,gCACXX,0BAA8D;IAC5DY,SAAS,OAAO,EACdC,QAAQ,EACRC,cAAc,EACdC,SAAS,EACTC,OAAO,EAAEC,eAAe,EAAEC,uBAAuB,KAAK,EAAE,EACxDC,IAAI,EACJC,MAAM,EACNC,iBAAiB,EACjBC,SAAS,EACTC,cAAc,EACf;QACC,MAAMC,gBAAgBrB,eAAe;YACnCU;YACAY,MAAMJ;YACNC;QACF;QACA,MAAM,EAAEI,SAASC,QAAQ,EAAEC,kBAAkB,EAAE,GAAG3B,WAAW;YAC3D4B,kBAAkBT;YAClBL;YACAe,UAAUX,KAAKY,IAAI;YACnBb;QACF;QAEA,+DAA+D;QAC/D,MAAMc,SAAS,MAAM9B,OAAOyB,UAAUR,MAAM;YAC1Cc,QAAQ;YACRC,eAAepB;YACfqB,aAAahB,KAAKiB,IAAI;YACtBC,iBAAiBb;QACnB;QAEA,wFAAwF;QACxF,IAAIP,iBAAiB;YACnB,MAAMU,WAAWK,OAAOL,QAAQ,CAACpB,OAAO,CAAC,QAAQ;YACjDgB,eAAee,mBAAmBlC,cAAcuB;QAClD;QAEA,OAAO;YAAEP,QAAQQ;QAAmB;IACtC;AACF,GAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"getClientUploadRoute.d.ts","sourceRoot":"","sources":["../src/getClientUploadRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKnF,KAAK,IAAI,GAAG;IACV,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACd,cAAc,EAAE,oBAAoB,CAAA;QACpC,GAAG,EAAE,cAAc,CAAA;KACpB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAID,eAAO,MAAM,oBAAoB,2DAC0C,IAAI,KAAG,cA+B/E,CAAA"}
1
+ {"version":3,"file":"getClientUploadRoute.d.ts","sourceRoot":"","sources":["../src/getClientUploadRoute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKnF,KAAK,IAAI,GAAG;IACV,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACd,cAAc,EAAE,oBAAoB,CAAA;QACpC,GAAG,EAAE,cAAc,CAAA;KACpB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAChC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAID,eAAO,MAAM,oBAAoB,2DAC0C,IAAI,KAAG,cAgC/E,CAAA"}
@@ -18,6 +18,7 @@ export const getClientUploadRoute = ({ access = defaultAccess, addRandomSuffix,
18
18
  }
19
19
  return Promise.resolve({
20
20
  addRandomSuffix,
21
+ allowOverwrite: true,
21
22
  cacheControlMaxAge
22
23
  });
23
24
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/getClientUploadRoute.ts"],"sourcesContent":["import type { PayloadHandler, PayloadRequest, UploadCollectionSlug } from 'payload'\n\nimport { handleUpload, type HandleUploadBody } from '@vercel/blob/client'\nimport { APIError, Forbidden } from 'payload'\n\ntype Args = {\n access?: (args: {\n collectionSlug: UploadCollectionSlug\n req: PayloadRequest\n }) => boolean | Promise<boolean>\n addRandomSuffix?: boolean\n cacheControlMaxAge?: number\n token: string\n}\n\nconst defaultAccess: Args['access'] = ({ req }) => !!req.user\n\nexport const getClientUploadRoute =\n ({ access = defaultAccess, addRandomSuffix, cacheControlMaxAge, token }: Args): PayloadHandler =>\n async (req) => {\n const body = (await req.json!()) as HandleUploadBody\n\n try {\n const jsonResponse = await handleUpload({\n body,\n onBeforeGenerateToken: async (_pathname: string, collectionSlug: null | string) => {\n if (!collectionSlug) {\n throw new APIError('No payload was provided')\n }\n\n if (!(await access({ collectionSlug, req }))) {\n throw new Forbidden()\n }\n\n return Promise.resolve({\n addRandomSuffix,\n cacheControlMaxAge,\n })\n },\n onUploadCompleted: async () => {},\n request: req as Request,\n token,\n })\n\n return Response.json(jsonResponse)\n } catch (error) {\n req.payload.logger.error(error)\n throw new APIError('storage-vercel-blob client upload route error')\n }\n }\n"],"names":["handleUpload","APIError","Forbidden","defaultAccess","req","user","getClientUploadRoute","access","addRandomSuffix","cacheControlMaxAge","token","body","json","jsonResponse","onBeforeGenerateToken","_pathname","collectionSlug","Promise","resolve","onUploadCompleted","request","Response","error","payload","logger"],"mappings":"AAEA,SAASA,YAAY,QAA+B,sBAAqB;AACzE,SAASC,QAAQ,EAAEC,SAAS,QAAQ,UAAS;AAY7C,MAAMC,gBAAgC,CAAC,EAAEC,GAAG,EAAE,GAAK,CAAC,CAACA,IAAIC,IAAI;AAE7D,OAAO,MAAMC,uBACX,CAAC,EAAEC,SAASJ,aAAa,EAAEK,eAAe,EAAEC,kBAAkB,EAAEC,KAAK,EAAQ,GAC7E,OAAON;QACL,MAAMO,OAAQ,MAAMP,IAAIQ,IAAI;QAE5B,IAAI;YACF,MAAMC,eAAe,MAAMb,aAAa;gBACtCW;gBACAG,uBAAuB,OAAOC,WAAmBC;oBAC/C,IAAI,CAACA,gBAAgB;wBACnB,MAAM,IAAIf,SAAS;oBACrB;oBAEA,IAAI,CAAE,MAAMM,OAAO;wBAAES;wBAAgBZ;oBAAI,IAAK;wBAC5C,MAAM,IAAIF;oBACZ;oBAEA,OAAOe,QAAQC,OAAO,CAAC;wBACrBV;wBACAC;oBACF;gBACF;gBACAU,mBAAmB,WAAa;gBAChCC,SAAShB;gBACTM;YACF;YAEA,OAAOW,SAAST,IAAI,CAACC;QACvB,EAAE,OAAOS,OAAO;YACdlB,IAAImB,OAAO,CAACC,MAAM,CAACF,KAAK,CAACA;YACzB,MAAM,IAAIrB,SAAS;QACrB;IACF,EAAC"}
1
+ {"version":3,"sources":["../src/getClientUploadRoute.ts"],"sourcesContent":["import type { PayloadHandler, PayloadRequest, UploadCollectionSlug } from 'payload'\n\nimport { handleUpload, type HandleUploadBody } from '@vercel/blob/client'\nimport { APIError, Forbidden } from 'payload'\n\ntype Args = {\n access?: (args: {\n collectionSlug: UploadCollectionSlug\n req: PayloadRequest\n }) => boolean | Promise<boolean>\n addRandomSuffix?: boolean\n cacheControlMaxAge?: number\n token: string\n}\n\nconst defaultAccess: Args['access'] = ({ req }) => !!req.user\n\nexport const getClientUploadRoute =\n ({ access = defaultAccess, addRandomSuffix, cacheControlMaxAge, token }: Args): PayloadHandler =>\n async (req) => {\n const body = (await req.json!()) as HandleUploadBody\n\n try {\n const jsonResponse = await handleUpload({\n body,\n onBeforeGenerateToken: async (_pathname: string, collectionSlug: null | string) => {\n if (!collectionSlug) {\n throw new APIError('No payload was provided')\n }\n\n if (!(await access({ collectionSlug, req }))) {\n throw new Forbidden()\n }\n\n return Promise.resolve({\n addRandomSuffix,\n allowOverwrite: true,\n cacheControlMaxAge,\n })\n },\n onUploadCompleted: async () => {},\n request: req as Request,\n token,\n })\n\n return Response.json(jsonResponse)\n } catch (error) {\n req.payload.logger.error(error)\n throw new APIError('storage-vercel-blob client upload route error')\n }\n }\n"],"names":["handleUpload","APIError","Forbidden","defaultAccess","req","user","getClientUploadRoute","access","addRandomSuffix","cacheControlMaxAge","token","body","json","jsonResponse","onBeforeGenerateToken","_pathname","collectionSlug","Promise","resolve","allowOverwrite","onUploadCompleted","request","Response","error","payload","logger"],"mappings":"AAEA,SAASA,YAAY,QAA+B,sBAAqB;AACzE,SAASC,QAAQ,EAAEC,SAAS,QAAQ,UAAS;AAY7C,MAAMC,gBAAgC,CAAC,EAAEC,GAAG,EAAE,GAAK,CAAC,CAACA,IAAIC,IAAI;AAE7D,OAAO,MAAMC,uBACX,CAAC,EAAEC,SAASJ,aAAa,EAAEK,eAAe,EAAEC,kBAAkB,EAAEC,KAAK,EAAQ,GAC7E,OAAON;QACL,MAAMO,OAAQ,MAAMP,IAAIQ,IAAI;QAE5B,IAAI;YACF,MAAMC,eAAe,MAAMb,aAAa;gBACtCW;gBACAG,uBAAuB,OAAOC,WAAmBC;oBAC/C,IAAI,CAACA,gBAAgB;wBACnB,MAAM,IAAIf,SAAS;oBACrB;oBAEA,IAAI,CAAE,MAAMM,OAAO;wBAAES;wBAAgBZ;oBAAI,IAAK;wBAC5C,MAAM,IAAIF;oBACZ;oBAEA,OAAOe,QAAQC,OAAO,CAAC;wBACrBV;wBACAW,gBAAgB;wBAChBV;oBACF;gBACF;gBACAW,mBAAmB,WAAa;gBAChCC,SAASjB;gBACTM;YACF;YAEA,OAAOY,SAASV,IAAI,CAACC;QACvB,EAAE,OAAOU,OAAO;YACdnB,IAAIoB,OAAO,CAACC,MAAM,CAACF,KAAK,CAACA;YACzB,MAAM,IAAItB,SAAS;QACrB;IACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"uploadFile.d.ts","sourceRoot":"","sources":["../src/uploadFile.ts"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,MAAM,EAAE,QAAQ,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,UAAU,CAAC,EAC/B,MAAM,EACN,eAAe,EACf,MAAM,EACN,kBAAkB,EAClB,gBAAqB,EACrB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,oBAA4B,GAC7B,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuB5C"}
1
+ {"version":3,"file":"uploadFile.d.ts","sourceRoot":"","sources":["../src/uploadFile.ts"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,MAAM,EAAE,QAAQ,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAsB,UAAU,CAAC,EAC/B,MAAM,EACN,eAAe,EACf,MAAM,EACN,kBAAkB,EAClB,gBAAqB,EACrB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,oBAA4B,GAC7B,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwB5C"}
@@ -11,6 +11,7 @@ export async function uploadFile({ access, addRandomSuffix, buffer, cacheControl
11
11
  const result = await put(fileKey, buffer, {
12
12
  access,
13
13
  addRandomSuffix,
14
+ allowOverwrite: true,
14
15
  cacheControlMaxAge,
15
16
  contentType: mimeType,
16
17
  token
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/uploadFile.ts"],"sourcesContent":["import { getFileKey } from '@payloadcms/plugin-cloud-storage/utilities'\nimport { put } from '@vercel/blob'\nimport path from 'path'\n\ninterface UploadFileArgs {\n access: 'public'\n addRandomSuffix?: boolean\n buffer: Buffer\n cacheControlMaxAge?: number\n collectionPrefix?: string\n docPrefix?: string\n filename: string\n mimeType: string\n token: string\n useCompositePrefixes?: boolean\n}\n\ninterface UploadFileResult {\n filename?: string\n}\n\nexport async function uploadFile({\n access,\n addRandomSuffix,\n buffer,\n cacheControlMaxAge,\n collectionPrefix = '',\n docPrefix,\n filename,\n mimeType,\n token,\n useCompositePrefixes = false,\n}: UploadFileArgs): Promise<UploadFileResult> {\n const { fileKey } = getFileKey({\n collectionPrefix,\n docPrefix,\n filename,\n useCompositePrefixes,\n })\n\n const result = await put(fileKey, buffer, {\n access,\n addRandomSuffix,\n cacheControlMaxAge,\n contentType: mimeType,\n token,\n })\n\n if (addRandomSuffix) {\n const pathname = result.pathname.replace(/^\\/+/, '')\n const basename = path.posix.basename(pathname)\n return { filename: decodeURIComponent(basename) }\n }\n\n return {}\n}\n"],"names":["getFileKey","put","path","uploadFile","access","addRandomSuffix","buffer","cacheControlMaxAge","collectionPrefix","docPrefix","filename","mimeType","token","useCompositePrefixes","fileKey","result","contentType","pathname","replace","basename","posix","decodeURIComponent"],"mappings":"AAAA,SAASA,UAAU,QAAQ,6CAA4C;AACvE,SAASC,GAAG,QAAQ,eAAc;AAClC,OAAOC,UAAU,OAAM;AAmBvB,OAAO,eAAeC,WAAW,EAC/BC,MAAM,EACNC,eAAe,EACfC,MAAM,EACNC,kBAAkB,EAClBC,mBAAmB,EAAE,EACrBC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,uBAAuB,KAAK,EACb;IACf,MAAM,EAAEC,OAAO,EAAE,GAAGd,WAAW;QAC7BQ;QACAC;QACAC;QACAG;IACF;IAEA,MAAME,SAAS,MAAMd,IAAIa,SAASR,QAAQ;QACxCF;QACAC;QACAE;QACAS,aAAaL;QACbC;IACF;IAEA,IAAIP,iBAAiB;QACnB,MAAMY,WAAWF,OAAOE,QAAQ,CAACC,OAAO,CAAC,QAAQ;QACjD,MAAMC,WAAWjB,KAAKkB,KAAK,CAACD,QAAQ,CAACF;QACrC,OAAO;YAAEP,UAAUW,mBAAmBF;QAAU;IAClD;IAEA,OAAO,CAAC;AACV"}
1
+ {"version":3,"sources":["../src/uploadFile.ts"],"sourcesContent":["import { getFileKey } from '@payloadcms/plugin-cloud-storage/utilities'\nimport { put } from '@vercel/blob'\nimport path from 'path'\n\ninterface UploadFileArgs {\n access: 'public'\n addRandomSuffix?: boolean\n buffer: Buffer\n cacheControlMaxAge?: number\n collectionPrefix?: string\n docPrefix?: string\n filename: string\n mimeType: string\n token: string\n useCompositePrefixes?: boolean\n}\n\ninterface UploadFileResult {\n filename?: string\n}\n\nexport async function uploadFile({\n access,\n addRandomSuffix,\n buffer,\n cacheControlMaxAge,\n collectionPrefix = '',\n docPrefix,\n filename,\n mimeType,\n token,\n useCompositePrefixes = false,\n}: UploadFileArgs): Promise<UploadFileResult> {\n const { fileKey } = getFileKey({\n collectionPrefix,\n docPrefix,\n filename,\n useCompositePrefixes,\n })\n\n const result = await put(fileKey, buffer, {\n access,\n addRandomSuffix,\n allowOverwrite: true,\n cacheControlMaxAge,\n contentType: mimeType,\n token,\n })\n\n if (addRandomSuffix) {\n const pathname = result.pathname.replace(/^\\/+/, '')\n const basename = path.posix.basename(pathname)\n return { filename: decodeURIComponent(basename) }\n }\n\n return {}\n}\n"],"names":["getFileKey","put","path","uploadFile","access","addRandomSuffix","buffer","cacheControlMaxAge","collectionPrefix","docPrefix","filename","mimeType","token","useCompositePrefixes","fileKey","result","allowOverwrite","contentType","pathname","replace","basename","posix","decodeURIComponent"],"mappings":"AAAA,SAASA,UAAU,QAAQ,6CAA4C;AACvE,SAASC,GAAG,QAAQ,eAAc;AAClC,OAAOC,UAAU,OAAM;AAmBvB,OAAO,eAAeC,WAAW,EAC/BC,MAAM,EACNC,eAAe,EACfC,MAAM,EACNC,kBAAkB,EAClBC,mBAAmB,EAAE,EACrBC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,uBAAuB,KAAK,EACb;IACf,MAAM,EAAEC,OAAO,EAAE,GAAGd,WAAW;QAC7BQ;QACAC;QACAC;QACAG;IACF;IAEA,MAAME,SAAS,MAAMd,IAAIa,SAASR,QAAQ;QACxCF;QACAC;QACAW,gBAAgB;QAChBT;QACAU,aAAaN;QACbC;IACF;IAEA,IAAIP,iBAAiB;QACnB,MAAMa,WAAWH,OAAOG,QAAQ,CAACC,OAAO,CAAC,QAAQ;QACjD,MAAMC,WAAWlB,KAAKmB,KAAK,CAACD,QAAQ,CAACF;QACrC,OAAO;YAAER,UAAUY,mBAAmBF;QAAU;IAClD;IAEA,OAAO,CAAC;AACV"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/storage-vercel-blob",
3
- "version": "3.86.0-internal.ac46214",
3
+ "version": "3.87.0",
4
4
  "description": "Payload storage adapter for Vercel Blob Storage",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -38,13 +38,13 @@
38
38
  ],
39
39
  "dependencies": {
40
40
  "@vercel/blob": "2.3.1",
41
- "@payloadcms/plugin-cloud-storage": "3.86.0-internal.ac46214"
41
+ "@payloadcms/plugin-cloud-storage": "3.87.0"
42
42
  },
43
43
  "devDependencies": {
44
- "payload": "3.86.0-internal.ac46214"
44
+ "payload": "3.87.0"
45
45
  },
46
46
  "peerDependencies": {
47
- "payload": "3.86.0-internal.ac46214"
47
+ "payload": "3.87.0"
48
48
  },
49
49
  "engines": {
50
50
  "node": "^18.20.2 || >=20.9.0"