@payloadcms/storage-gcs 4.0.0-internal.cd69eef → 4.0.0-internal.d1cc1d3

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/adapter.js CHANGED
@@ -14,15 +14,17 @@ export function createGcsAdapter({ acl, bucket, clientUploads, getStorageClient,
14
14
  prefix: urlPrefix,
15
15
  useCompositePrefixes
16
16
  }),
17
- uploadInstructions: clientUploads ? {
18
- access: typeof clientUploads === 'object' ? clientUploads.access : undefined,
17
+ uploadInstructions: {
18
+ enabled: Boolean(clientUploads),
19
19
  generate: generateUploadInstructions({
20
+ access: typeof clientUploads === 'object' ? clientUploads.access : undefined,
20
21
  bucket,
21
22
  collectionPrefix: prefix,
22
23
  getStorageClient,
23
24
  useCompositePrefixes
24
- })
25
- } : undefined,
25
+ }),
26
+ useInAdmin: true
27
+ },
26
28
  handleDelete: ({ doc: { prefix: docPrefix = '' }, filename })=>deleteFile({
27
29
  bucket,
28
30
  client: getStorageClient(),
@@ -45,16 +47,16 @@ export function createGcsAdapter({ acl, bucket, clientUploads, getStorageClient,
45
47
  });
46
48
  return data;
47
49
  },
48
- staticHandler: (req, { headers, params: { directUpload, filename, prefix: prefixQueryParam } })=>getFile({
50
+ staticHandler: (req, { headers, params: { filename, prefix: prefixQueryParam, uploadReference } })=>getFile({
49
51
  bucket,
50
52
  client: getStorageClient(),
51
53
  collection,
52
54
  collectionPrefix: prefix,
53
- directUpload,
54
55
  filename,
55
56
  incomingHeaders: headers,
56
57
  prefixQueryParam,
57
58
  req,
59
+ uploadReference,
58
60
  useCompositePrefixes
59
61
  })
60
62
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/adapter.ts"],"sourcesContent":["import type { Storage } from '@google-cloud/storage'\nimport type {\n Adapter,\n ClientUploadsConfig,\n GeneratedAdapter,\n} from '@payloadcms/plugin-cloud-storage/types'\n\nimport { deleteFile } from './deleteFile.js'\nimport { generateUploadInstructions } from './generateUploadInstructions.js'\nimport { generateURL } from './generateURL.js'\nimport { getFile } from './getFile.js'\nimport { uploadFile } from './uploadFile.js'\n\ninterface CreateGcsAdapterArgs {\n acl?: 'Private' | 'Public'\n bucket: string\n clientUploads?: ClientUploadsConfig\n getStorageClient: () => Storage\n useCompositePrefixes?: boolean\n}\n\nexport function createGcsAdapter({\n acl,\n bucket,\n clientUploads,\n getStorageClient,\n useCompositePrefixes = false,\n}: CreateGcsAdapterArgs): Adapter {\n return ({ collection, prefix = '' }): GeneratedAdapter => ({\n name: 'gcs',\n\n generateURL: ({ filename, prefix: urlPrefix = '' }) =>\n generateURL({\n bucket,\n client: getStorageClient(),\n collectionPrefix: prefix,\n filename,\n prefix: urlPrefix,\n useCompositePrefixes,\n }),\n\n uploadInstructions: clientUploads\n ? {\n access: typeof clientUploads === 'object' ? clientUploads.access : undefined,\n generate: generateUploadInstructions({\n bucket,\n collectionPrefix: prefix,\n getStorageClient,\n useCompositePrefixes,\n }),\n }\n : undefined,\n\n handleDelete: ({ doc: { prefix: docPrefix = '' }, filename }) =>\n deleteFile({\n bucket,\n client: getStorageClient(),\n collectionPrefix: prefix,\n docPrefix,\n filename,\n useCompositePrefixes,\n }),\n\n handleUpload: async ({ data, file }) => {\n await uploadFile({\n acl,\n bucket,\n buffer: file.buffer,\n client: getStorageClient(),\n collectionPrefix: prefix,\n docPrefix: data.prefix,\n filename: file.filename,\n mimeType: file.mimeType,\n useCompositePrefixes,\n })\n\n return data\n },\n\n staticHandler: (\n req,\n { headers, params: { directUpload, filename, prefix: prefixQueryParam } },\n ) =>\n getFile({\n bucket,\n client: getStorageClient(),\n collection,\n collectionPrefix: prefix,\n directUpload,\n filename,\n incomingHeaders: headers,\n prefixQueryParam,\n req,\n useCompositePrefixes,\n }),\n })\n}\n"],"names":["deleteFile","generateUploadInstructions","generateURL","getFile","uploadFile","createGcsAdapter","acl","bucket","clientUploads","getStorageClient","useCompositePrefixes","collection","prefix","name","filename","urlPrefix","client","collectionPrefix","uploadInstructions","access","undefined","generate","handleDelete","doc","docPrefix","handleUpload","data","file","buffer","mimeType","staticHandler","req","headers","params","directUpload","prefixQueryParam","incomingHeaders"],"mappings":"AAOA,SAASA,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,0BAA0B,QAAQ,kCAAiC;AAC5E,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,UAAU,QAAQ,kBAAiB;AAU5C,OAAO,SAASC,iBAAiB,EAC/BC,GAAG,EACHC,MAAM,EACNC,aAAa,EACbC,gBAAgB,EAChBC,uBAAuB,KAAK,EACP;IACrB,OAAO,CAAC,EAAEC,UAAU,EAAEC,SAAS,EAAE,EAAE,GAAwB,CAAA;YACzDC,MAAM;YAENX,aAAa,CAAC,EAAEY,QAAQ,EAAEF,QAAQG,YAAY,EAAE,EAAE,GAChDb,YAAY;oBACVK;oBACAS,QAAQP;oBACRQ,kBAAkBL;oBAClBE;oBACAF,QAAQG;oBACRL;gBACF;YAEFQ,oBAAoBV,gBAChB;gBACEW,QAAQ,OAAOX,kBAAkB,WAAWA,cAAcW,MAAM,GAAGC;gBACnEC,UAAUpB,2BAA2B;oBACnCM;oBACAU,kBAAkBL;oBAClBH;oBACAC;gBACF;YACF,IACAU;YAEJE,cAAc,CAAC,EAAEC,KAAK,EAAEX,QAAQY,YAAY,EAAE,EAAE,EAAEV,QAAQ,EAAE,GAC1Dd,WAAW;oBACTO;oBACAS,QAAQP;oBACRQ,kBAAkBL;oBAClBY;oBACAV;oBACAJ;gBACF;YAEFe,cAAc,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAE;gBACjC,MAAMvB,WAAW;oBACfE;oBACAC;oBACAqB,QAAQD,KAAKC,MAAM;oBACnBZ,QAAQP;oBACRQ,kBAAkBL;oBAClBY,WAAWE,KAAKd,MAAM;oBACtBE,UAAUa,KAAKb,QAAQ;oBACvBe,UAAUF,KAAKE,QAAQ;oBACvBnB;gBACF;gBAEA,OAAOgB;YACT;YAEAI,eAAe,CACbC,KACA,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,YAAY,EAAEpB,QAAQ,EAAEF,QAAQuB,gBAAgB,EAAE,EAAE,GAEzEhC,QAAQ;oBACNI;oBACAS,QAAQP;oBACRE;oBACAM,kBAAkBL;oBAClBsB;oBACApB;oBACAsB,iBAAiBJ;oBACjBG;oBACAJ;oBACArB;gBACF;QACJ,CAAA;AACF"}
1
+ {"version":3,"sources":["../src/adapter.ts"],"sourcesContent":["import type { Storage } from '@google-cloud/storage'\nimport type {\n Adapter,\n ClientUploadsConfig,\n GeneratedAdapter,\n} from '@payloadcms/plugin-cloud-storage/types'\n\nimport { deleteFile } from './deleteFile.js'\nimport { generateUploadInstructions } from './generateUploadInstructions.js'\nimport { generateURL } from './generateURL.js'\nimport { getFile } from './getFile.js'\nimport { uploadFile } from './uploadFile.js'\n\ninterface CreateGcsAdapterArgs {\n acl?: 'Private' | 'Public'\n bucket: string\n clientUploads?: ClientUploadsConfig\n getStorageClient: () => Storage\n useCompositePrefixes?: boolean\n}\n\nexport function createGcsAdapter({\n acl,\n bucket,\n clientUploads,\n getStorageClient,\n useCompositePrefixes = false,\n}: CreateGcsAdapterArgs): Adapter {\n return ({ collection, prefix = '' }): GeneratedAdapter => ({\n name: 'gcs',\n\n generateURL: ({ filename, prefix: urlPrefix = '' }) =>\n generateURL({\n bucket,\n client: getStorageClient(),\n collectionPrefix: prefix,\n filename,\n prefix: urlPrefix,\n useCompositePrefixes,\n }),\n\n uploadInstructions: {\n enabled: Boolean(clientUploads),\n generate: generateUploadInstructions({\n access: typeof clientUploads === 'object' ? clientUploads.access : undefined,\n bucket,\n collectionPrefix: prefix,\n getStorageClient,\n useCompositePrefixes,\n }),\n useInAdmin: true,\n },\n\n handleDelete: ({ doc: { prefix: docPrefix = '' }, filename }) =>\n deleteFile({\n bucket,\n client: getStorageClient(),\n collectionPrefix: prefix,\n docPrefix,\n filename,\n useCompositePrefixes,\n }),\n\n handleUpload: async ({ data, file }) => {\n await uploadFile({\n acl,\n bucket,\n buffer: file.buffer,\n client: getStorageClient(),\n collectionPrefix: prefix,\n docPrefix: data.prefix,\n filename: file.filename,\n mimeType: file.mimeType,\n useCompositePrefixes,\n })\n\n return data\n },\n\n staticHandler: (\n req,\n { headers, params: { filename, prefix: prefixQueryParam, uploadReference } },\n ) =>\n getFile({\n bucket,\n client: getStorageClient(),\n collection,\n collectionPrefix: prefix,\n filename,\n incomingHeaders: headers,\n prefixQueryParam,\n req,\n uploadReference,\n useCompositePrefixes,\n }),\n })\n}\n"],"names":["deleteFile","generateUploadInstructions","generateURL","getFile","uploadFile","createGcsAdapter","acl","bucket","clientUploads","getStorageClient","useCompositePrefixes","collection","prefix","name","filename","urlPrefix","client","collectionPrefix","uploadInstructions","enabled","Boolean","generate","access","undefined","useInAdmin","handleDelete","doc","docPrefix","handleUpload","data","file","buffer","mimeType","staticHandler","req","headers","params","prefixQueryParam","uploadReference","incomingHeaders"],"mappings":"AAOA,SAASA,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,0BAA0B,QAAQ,kCAAiC;AAC5E,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,UAAU,QAAQ,kBAAiB;AAU5C,OAAO,SAASC,iBAAiB,EAC/BC,GAAG,EACHC,MAAM,EACNC,aAAa,EACbC,gBAAgB,EAChBC,uBAAuB,KAAK,EACP;IACrB,OAAO,CAAC,EAAEC,UAAU,EAAEC,SAAS,EAAE,EAAE,GAAwB,CAAA;YACzDC,MAAM;YAENX,aAAa,CAAC,EAAEY,QAAQ,EAAEF,QAAQG,YAAY,EAAE,EAAE,GAChDb,YAAY;oBACVK;oBACAS,QAAQP;oBACRQ,kBAAkBL;oBAClBE;oBACAF,QAAQG;oBACRL;gBACF;YAEFQ,oBAAoB;gBAClBC,SAASC,QAAQZ;gBACjBa,UAAUpB,2BAA2B;oBACnCqB,QAAQ,OAAOd,kBAAkB,WAAWA,cAAcc,MAAM,GAAGC;oBACnEhB;oBACAU,kBAAkBL;oBAClBH;oBACAC;gBACF;gBACAc,YAAY;YACd;YAEAC,cAAc,CAAC,EAAEC,KAAK,EAAEd,QAAQe,YAAY,EAAE,EAAE,EAAEb,QAAQ,EAAE,GAC1Dd,WAAW;oBACTO;oBACAS,QAAQP;oBACRQ,kBAAkBL;oBAClBe;oBACAb;oBACAJ;gBACF;YAEFkB,cAAc,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAE;gBACjC,MAAM1B,WAAW;oBACfE;oBACAC;oBACAwB,QAAQD,KAAKC,MAAM;oBACnBf,QAAQP;oBACRQ,kBAAkBL;oBAClBe,WAAWE,KAAKjB,MAAM;oBACtBE,UAAUgB,KAAKhB,QAAQ;oBACvBkB,UAAUF,KAAKE,QAAQ;oBACvBtB;gBACF;gBAEA,OAAOmB;YACT;YAEAI,eAAe,CACbC,KACA,EAAEC,OAAO,EAAEC,QAAQ,EAAEtB,QAAQ,EAAEF,QAAQyB,gBAAgB,EAAEC,eAAe,EAAE,EAAE,GAE5EnC,QAAQ;oBACNI;oBACAS,QAAQP;oBACRE;oBACAM,kBAAkBL;oBAClBE;oBACAyB,iBAAiBJ;oBACjBE;oBACAH;oBACAI;oBACA5B;gBACF;QACJ,CAAA;AACF"}
@@ -1,11 +1,12 @@
1
1
  import type { Storage } from '@google-cloud/storage';
2
- import type { GenerateUploadInstructions } from 'payload';
2
+ import type { GenerateUploadInstructions, UploadInstructionsAccess } from 'payload';
3
3
  interface Args {
4
+ access?: UploadInstructionsAccess;
4
5
  bucket: string;
5
6
  collectionPrefix: string;
6
7
  getStorageClient: () => Storage;
7
8
  useCompositePrefixes?: boolean;
8
9
  }
9
- export declare const generateUploadInstructions: ({ bucket, collectionPrefix, getStorageClient, useCompositePrefixes, }: Args) => GenerateUploadInstructions;
10
+ export declare const generateUploadInstructions: ({ access, bucket, collectionPrefix, getStorageClient, useCompositePrefixes, }: Args) => GenerateUploadInstructions;
10
11
  export {};
11
12
  //# sourceMappingURL=generateUploadInstructions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateUploadInstructions.d.ts","sourceRoot":"","sources":["../src/generateUploadInstructions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAIzD,UAAU,IAAI;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,eAAO,MAAM,0BAA0B,0EAKpC,IAAI,KAAG,0BAuCT,CAAA"}
1
+ {"version":3,"file":"generateUploadInstructions.d.ts","sourceRoot":"","sources":["../src/generateUploadInstructions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAKnF,UAAU,IAAI;IACZ,MAAM,CAAC,EAAE,wBAAwB,CAAA;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,eAAO,MAAM,0BAA0B,kFAMpC,IAAI,KAAG,0BAmDT,CAAA"}
@@ -1,6 +1,13 @@
1
1
  import { resolveSignedURLKey } from '@payloadcms/plugin-cloud-storage/utilities';
2
- export const generateUploadInstructions = ({ bucket, collectionPrefix, getStorageClient, useCompositePrefixes = false })=>{
3
- return async ({ collectionSlug, docPrefix, filename, filesize, mimeType, req })=>{
2
+ import { Forbidden } from 'payload';
3
+ export const generateUploadInstructions = ({ access, bucket, collectionPrefix, getStorageClient, useCompositePrefixes = false })=>{
4
+ return async ({ collectionSlug, docPrefix, filename, filesize, mimeType, overrideAccess, req })=>{
5
+ if (!overrideAccess && (access ? !await access({
6
+ collectionSlug,
7
+ req
8
+ }) : !req.user)) {
9
+ throw new Forbidden(req.t);
10
+ }
4
11
  const { fileKey, sanitizedDocPrefix, sanitizedFilename } = await resolveSignedURLKey({
5
12
  collectionPrefix,
6
13
  collectionSlug,
@@ -18,12 +25,12 @@ export const generateUploadInstructions = ({ bucket, collectionPrefix, getStorag
18
25
  return {
19
26
  type: 'http',
20
27
  file: {
21
- directUpload: {
22
- prefix: sanitizedDocPrefix
23
- },
24
28
  filename: sanitizedFilename,
25
29
  mimeType,
26
- size: filesize
30
+ size: filesize,
31
+ uploadReference: {
32
+ prefix: sanitizedDocPrefix
33
+ }
27
34
  },
28
35
  request: {
29
36
  headers: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generateUploadInstructions.ts"],"sourcesContent":["import type { Storage } from '@google-cloud/storage'\nimport type { GenerateUploadInstructions } from 'payload'\n\nimport { resolveSignedURLKey } from '@payloadcms/plugin-cloud-storage/utilities'\n\ninterface Args {\n bucket: string\n collectionPrefix: string\n getStorageClient: () => Storage\n useCompositePrefixes?: boolean\n}\n\nexport const generateUploadInstructions = ({\n bucket,\n collectionPrefix,\n getStorageClient,\n useCompositePrefixes = false,\n}: Args): GenerateUploadInstructions => {\n return async ({ collectionSlug, docPrefix, filename, filesize, mimeType, req }) => {\n const { fileKey, sanitizedDocPrefix, sanitizedFilename } = await resolveSignedURLKey({\n collectionPrefix,\n collectionSlug,\n docPrefix,\n filename,\n req,\n useCompositePrefixes,\n })\n\n const [url] = await getStorageClient()\n .bucket(bucket)\n .file(fileKey)\n .getSignedUrl({\n action: 'write',\n contentType: mimeType,\n expires: Date.now() + 60 * 60 * 5,\n version: 'v4',\n })\n\n return {\n type: 'http',\n file: {\n directUpload: { prefix: sanitizedDocPrefix },\n filename: sanitizedFilename,\n mimeType,\n size: filesize,\n },\n request: {\n headers: {\n 'Content-Length': String(filesize),\n 'Content-Type': mimeType,\n },\n method: 'PUT',\n url,\n },\n }\n }\n}\n"],"names":["resolveSignedURLKey","generateUploadInstructions","bucket","collectionPrefix","getStorageClient","useCompositePrefixes","collectionSlug","docPrefix","filename","filesize","mimeType","req","fileKey","sanitizedDocPrefix","sanitizedFilename","url","file","getSignedUrl","action","contentType","expires","Date","now","version","type","directUpload","prefix","size","request","headers","String","method"],"mappings":"AAGA,SAASA,mBAAmB,QAAQ,6CAA4C;AAShF,OAAO,MAAMC,6BAA6B,CAAC,EACzCC,MAAM,EACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,uBAAuB,KAAK,EACvB;IACL,OAAO,OAAO,EAAEC,cAAc,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,GAAG,EAAE;QAC5E,MAAM,EAAEC,OAAO,EAAEC,kBAAkB,EAAEC,iBAAiB,EAAE,GAAG,MAAMd,oBAAoB;YACnFG;YACAG;YACAC;YACAC;YACAG;YACAN;QACF;QAEA,MAAM,CAACU,IAAI,GAAG,MAAMX,mBACjBF,MAAM,CAACA,QACPc,IAAI,CAACJ,SACLK,YAAY,CAAC;YACZC,QAAQ;YACRC,aAAaT;YACbU,SAASC,KAAKC,GAAG,KAAK,KAAK,KAAK;YAChCC,SAAS;QACX;QAEF,OAAO;YACLC,MAAM;YACNR,MAAM;gBACJS,cAAc;oBAAEC,QAAQb;gBAAmB;gBAC3CL,UAAUM;gBACVJ;gBACAiB,MAAMlB;YACR;YACAmB,SAAS;gBACPC,SAAS;oBACP,kBAAkBC,OAAOrB;oBACzB,gBAAgBC;gBAClB;gBACAqB,QAAQ;gBACRhB;YACF;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../src/generateUploadInstructions.ts"],"sourcesContent":["import type { Storage } from '@google-cloud/storage'\nimport type { GenerateUploadInstructions, UploadInstructionsAccess } from 'payload'\n\nimport { resolveSignedURLKey } from '@payloadcms/plugin-cloud-storage/utilities'\nimport { Forbidden } from 'payload'\n\ninterface Args {\n access?: UploadInstructionsAccess\n bucket: string\n collectionPrefix: string\n getStorageClient: () => Storage\n useCompositePrefixes?: boolean\n}\n\nexport const generateUploadInstructions = ({\n access,\n bucket,\n collectionPrefix,\n getStorageClient,\n useCompositePrefixes = false,\n}: Args): GenerateUploadInstructions => {\n return async ({\n collectionSlug,\n docPrefix,\n filename,\n filesize,\n mimeType,\n overrideAccess,\n req,\n }) => {\n if (!overrideAccess && (access ? !(await access({ collectionSlug, req })) : !req.user)) {\n throw new Forbidden(req.t)\n }\n\n const { fileKey, sanitizedDocPrefix, sanitizedFilename } = await resolveSignedURLKey({\n collectionPrefix,\n collectionSlug,\n docPrefix,\n filename,\n req,\n useCompositePrefixes,\n })\n\n const [url] = await getStorageClient()\n .bucket(bucket)\n .file(fileKey)\n .getSignedUrl({\n action: 'write',\n contentType: mimeType,\n expires: Date.now() + 60 * 60 * 5,\n version: 'v4',\n })\n\n return {\n type: 'http',\n file: {\n filename: sanitizedFilename,\n mimeType,\n size: filesize,\n uploadReference: { prefix: sanitizedDocPrefix },\n },\n request: {\n headers: {\n 'Content-Length': String(filesize),\n 'Content-Type': mimeType,\n },\n method: 'PUT',\n url,\n },\n }\n }\n}\n"],"names":["resolveSignedURLKey","Forbidden","generateUploadInstructions","access","bucket","collectionPrefix","getStorageClient","useCompositePrefixes","collectionSlug","docPrefix","filename","filesize","mimeType","overrideAccess","req","user","t","fileKey","sanitizedDocPrefix","sanitizedFilename","url","file","getSignedUrl","action","contentType","expires","Date","now","version","type","size","uploadReference","prefix","request","headers","String","method"],"mappings":"AAGA,SAASA,mBAAmB,QAAQ,6CAA4C;AAChF,SAASC,SAAS,QAAQ,UAAS;AAUnC,OAAO,MAAMC,6BAA6B,CAAC,EACzCC,MAAM,EACNC,MAAM,EACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,uBAAuB,KAAK,EACvB;IACL,OAAO,OAAO,EACZC,cAAc,EACdC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACdC,GAAG,EACJ;QACC,IAAI,CAACD,kBAAmBV,CAAAA,SAAS,CAAE,MAAMA,OAAO;YAAEK;YAAgBM;QAAI,KAAM,CAACA,IAAIC,IAAI,AAAD,GAAI;YACtF,MAAM,IAAId,UAAUa,IAAIE,CAAC;QAC3B;QAEA,MAAM,EAAEC,OAAO,EAAEC,kBAAkB,EAAEC,iBAAiB,EAAE,GAAG,MAAMnB,oBAAoB;YACnFK;YACAG;YACAC;YACAC;YACAI;YACAP;QACF;QAEA,MAAM,CAACa,IAAI,GAAG,MAAMd,mBACjBF,MAAM,CAACA,QACPiB,IAAI,CAACJ,SACLK,YAAY,CAAC;YACZC,QAAQ;YACRC,aAAaZ;YACba,SAASC,KAAKC,GAAG,KAAK,KAAK,KAAK;YAChCC,SAAS;QACX;QAEF,OAAO;YACLC,MAAM;YACNR,MAAM;gBACJX,UAAUS;gBACVP;gBACAkB,MAAMnB;gBACNoB,iBAAiB;oBAAEC,QAAQd;gBAAmB;YAChD;YACAe,SAAS;gBACPC,SAAS;oBACP,kBAAkBC,OAAOxB;oBACzB,gBAAgBC;gBAClB;gBACAwB,QAAQ;gBACRhB;YACF;QACF;IACF;AACF,EAAC"}
package/dist/getFile.d.ts CHANGED
@@ -5,13 +5,13 @@ interface GetFileArgs {
5
5
  client: Storage;
6
6
  collection: CollectionConfig;
7
7
  collectionPrefix?: string;
8
- directUpload?: unknown;
9
8
  filename: string;
10
9
  incomingHeaders?: Headers;
11
10
  prefixQueryParam?: string;
12
11
  req: PayloadRequest;
12
+ uploadReference?: unknown;
13
13
  useCompositePrefixes?: boolean;
14
14
  }
15
- export declare function getFile({ bucket, client, collection, collectionPrefix, directUpload, filename, incomingHeaders, prefixQueryParam, req, useCompositePrefixes, }: GetFileArgs): Promise<Response>;
15
+ export declare function getFile({ bucket, client, collection, collectionPrefix, filename, incomingHeaders, prefixQueryParam, req, uploadReference, useCompositePrefixes, }: GetFileArgs): Promise<Response>;
16
16
  export {};
17
17
  //# sourceMappingURL=getFile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFile.d.ts","sourceRoot":"","sources":["../src/getFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAS/D,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,gBAAgB,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,GAAG,EAAE,cAAc,CAAA;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,wBAAsB,OAAO,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,UAAU,EACV,gBAAqB,EACrB,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,GAAG,EACH,oBAA4B,GAC7B,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiGjC"}
1
+ {"version":3,"file":"getFile.d.ts","sourceRoot":"","sources":["../src/getFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAS/D,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,UAAU,EAAE,gBAAgB,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,GAAG,EAAE,cAAc,CAAA;IACnB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,wBAAsB,OAAO,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,UAAU,EACV,gBAAqB,EACrB,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,GAAG,EACH,eAAe,EACf,oBAA4B,GAC7B,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiGjC"}
package/dist/getFile.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { ApiError } from '@google-cloud/storage';
2
2
  import { getFilePrefix as getDocPrefix, getFileKey } from '@payloadcms/plugin-cloud-storage/utilities';
3
3
  import { getRangeRequestInfo } from 'payload/internal';
4
- export async function getFile({ bucket, client, collection, collectionPrefix = '', directUpload, filename, incomingHeaders, prefixQueryParam, req, useCompositePrefixes = false }) {
4
+ export async function getFile({ bucket, client, collection, collectionPrefix = '', filename, incomingHeaders, prefixQueryParam, req, uploadReference, useCompositePrefixes = false }) {
5
5
  try {
6
6
  const docPrefix = await getDocPrefix({
7
7
  collection,
8
- directUpload,
9
8
  filename,
10
9
  prefixQueryParam,
11
- req
10
+ req,
11
+ uploadReference
12
12
  });
13
13
  const { fileKey } = getFileKey({
14
14
  collectionPrefix,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/getFile.ts"],"sourcesContent":["import type { Storage } from '@google-cloud/storage'\nimport type { CollectionConfig, PayloadRequest } from 'payload'\n\nimport { ApiError } from '@google-cloud/storage'\nimport {\n getFilePrefix as getDocPrefix,\n getFileKey,\n} from '@payloadcms/plugin-cloud-storage/utilities'\nimport { getRangeRequestInfo } from 'payload/internal'\n\ninterface GetFileArgs {\n bucket: string\n client: Storage\n collection: CollectionConfig\n collectionPrefix?: string\n directUpload?: unknown\n filename: string\n incomingHeaders?: Headers\n prefixQueryParam?: string\n req: PayloadRequest\n useCompositePrefixes?: boolean\n}\n\nexport async function getFile({\n bucket,\n client,\n collection,\n collectionPrefix = '',\n directUpload,\n filename,\n incomingHeaders,\n prefixQueryParam,\n req,\n useCompositePrefixes = false,\n}: GetFileArgs): Promise<Response> {\n try {\n const docPrefix = await getDocPrefix({\n collection,\n directUpload,\n filename,\n prefixQueryParam,\n req,\n })\n\n const { fileKey } = getFileKey({\n collectionPrefix,\n docPrefix,\n filename,\n useCompositePrefixes,\n })\n\n const file = client.bucket(bucket).file(fileKey)\n\n const [metadata] = await file.getMetadata()\n\n // Handle range request\n const rangeHeader = req.headers.get('range')\n const fileSize = Number(metadata.size)\n const rangeResult = getRangeRequestInfo({ fileSize, rangeHeader })\n\n if (rangeResult.type === 'invalid') {\n return new Response(null, {\n headers: new Headers(rangeResult.headers),\n status: rangeResult.status,\n })\n }\n\n const etagFromHeaders = req.headers.get('etag') || req.headers.get('if-none-match')\n const objectEtag = metadata.etag\n\n let headers = new Headers(incomingHeaders)\n\n // Add range-related headers from the result\n for (const [key, value] of Object.entries(rangeResult.headers)) {\n headers.append(key, value)\n }\n\n headers.append('Content-Type', String(metadata.contentType))\n headers.append('ETag', String(metadata.etag))\n\n // Add Content-Security-Policy header for SVG files to prevent executable code\n if (metadata.contentType === 'image/svg+xml') {\n headers.append('Content-Security-Policy', \"script-src 'none'\")\n }\n\n if (\n collection.upload &&\n typeof collection.upload === 'object' &&\n typeof collection.upload.modifyResponseHeaders === 'function'\n ) {\n headers = collection.upload.modifyResponseHeaders({ headers }) || headers\n }\n\n if (etagFromHeaders && etagFromHeaders === objectEtag) {\n return new Response(null, {\n headers,\n status: 304,\n })\n }\n\n // Manually create a ReadableStream for the web from a Node.js stream.\n const readableStream = new ReadableStream({\n start(controller) {\n const streamOptions =\n rangeResult.type === 'partial'\n ? { end: rangeResult.rangeEnd, start: rangeResult.rangeStart }\n : {}\n const nodeStream = file.createReadStream(streamOptions)\n nodeStream.on('data', (chunk) => {\n controller.enqueue(new Uint8Array(chunk))\n })\n nodeStream.on('end', () => {\n controller.close()\n })\n nodeStream.on('error', (err) => {\n controller.error(err)\n })\n },\n })\n\n return new Response(readableStream, {\n headers,\n status: rangeResult.status,\n })\n } catch (err: unknown) {\n if (err instanceof ApiError && err.code === 404) {\n return new Response(null, { status: 404, statusText: 'Not Found' })\n }\n req.payload.logger.error(err)\n return new Response('Internal Server Error', { status: 500 })\n }\n}\n"],"names":["ApiError","getFilePrefix","getDocPrefix","getFileKey","getRangeRequestInfo","getFile","bucket","client","collection","collectionPrefix","directUpload","filename","incomingHeaders","prefixQueryParam","req","useCompositePrefixes","docPrefix","fileKey","file","metadata","getMetadata","rangeHeader","headers","get","fileSize","Number","size","rangeResult","type","Response","Headers","status","etagFromHeaders","objectEtag","etag","key","value","Object","entries","append","String","contentType","upload","modifyResponseHeaders","readableStream","ReadableStream","start","controller","streamOptions","end","rangeEnd","rangeStart","nodeStream","createReadStream","on","chunk","enqueue","Uint8Array","close","err","error","code","statusText","payload","logger"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/getFile.ts"],"sourcesContent":["import type { Storage } from '@google-cloud/storage'\nimport type { CollectionConfig, PayloadRequest } from 'payload'\n\nimport { ApiError } from '@google-cloud/storage'\nimport {\n getFilePrefix as getDocPrefix,\n getFileKey,\n} from '@payloadcms/plugin-cloud-storage/utilities'\nimport { getRangeRequestInfo } from 'payload/internal'\n\ninterface GetFileArgs {\n bucket: string\n client: Storage\n collection: CollectionConfig\n collectionPrefix?: string\n filename: string\n incomingHeaders?: Headers\n prefixQueryParam?: string\n req: PayloadRequest\n uploadReference?: unknown\n useCompositePrefixes?: boolean\n}\n\nexport async function getFile({\n bucket,\n client,\n collection,\n collectionPrefix = '',\n filename,\n incomingHeaders,\n prefixQueryParam,\n req,\n uploadReference,\n useCompositePrefixes = false,\n}: GetFileArgs): Promise<Response> {\n try {\n const docPrefix = await getDocPrefix({\n collection,\n filename,\n prefixQueryParam,\n req,\n uploadReference,\n })\n\n const { fileKey } = getFileKey({\n collectionPrefix,\n docPrefix,\n filename,\n useCompositePrefixes,\n })\n\n const file = client.bucket(bucket).file(fileKey)\n\n const [metadata] = await file.getMetadata()\n\n // Handle range request\n const rangeHeader = req.headers.get('range')\n const fileSize = Number(metadata.size)\n const rangeResult = getRangeRequestInfo({ fileSize, rangeHeader })\n\n if (rangeResult.type === 'invalid') {\n return new Response(null, {\n headers: new Headers(rangeResult.headers),\n status: rangeResult.status,\n })\n }\n\n const etagFromHeaders = req.headers.get('etag') || req.headers.get('if-none-match')\n const objectEtag = metadata.etag\n\n let headers = new Headers(incomingHeaders)\n\n // Add range-related headers from the result\n for (const [key, value] of Object.entries(rangeResult.headers)) {\n headers.append(key, value)\n }\n\n headers.append('Content-Type', String(metadata.contentType))\n headers.append('ETag', String(metadata.etag))\n\n // Add Content-Security-Policy header for SVG files to prevent executable code\n if (metadata.contentType === 'image/svg+xml') {\n headers.append('Content-Security-Policy', \"script-src 'none'\")\n }\n\n if (\n collection.upload &&\n typeof collection.upload === 'object' &&\n typeof collection.upload.modifyResponseHeaders === 'function'\n ) {\n headers = collection.upload.modifyResponseHeaders({ headers }) || headers\n }\n\n if (etagFromHeaders && etagFromHeaders === objectEtag) {\n return new Response(null, {\n headers,\n status: 304,\n })\n }\n\n // Manually create a ReadableStream for the web from a Node.js stream.\n const readableStream = new ReadableStream({\n start(controller) {\n const streamOptions =\n rangeResult.type === 'partial'\n ? { end: rangeResult.rangeEnd, start: rangeResult.rangeStart }\n : {}\n const nodeStream = file.createReadStream(streamOptions)\n nodeStream.on('data', (chunk) => {\n controller.enqueue(new Uint8Array(chunk))\n })\n nodeStream.on('end', () => {\n controller.close()\n })\n nodeStream.on('error', (err) => {\n controller.error(err)\n })\n },\n })\n\n return new Response(readableStream, {\n headers,\n status: rangeResult.status,\n })\n } catch (err: unknown) {\n if (err instanceof ApiError && err.code === 404) {\n return new Response(null, { status: 404, statusText: 'Not Found' })\n }\n req.payload.logger.error(err)\n return new Response('Internal Server Error', { status: 500 })\n }\n}\n"],"names":["ApiError","getFilePrefix","getDocPrefix","getFileKey","getRangeRequestInfo","getFile","bucket","client","collection","collectionPrefix","filename","incomingHeaders","prefixQueryParam","req","uploadReference","useCompositePrefixes","docPrefix","fileKey","file","metadata","getMetadata","rangeHeader","headers","get","fileSize","Number","size","rangeResult","type","Response","Headers","status","etagFromHeaders","objectEtag","etag","key","value","Object","entries","append","String","contentType","upload","modifyResponseHeaders","readableStream","ReadableStream","start","controller","streamOptions","end","rangeEnd","rangeStart","nodeStream","createReadStream","on","chunk","enqueue","Uint8Array","close","err","error","code","statusText","payload","logger"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/storage-gcs",
3
- "version": "4.0.0-internal.cd69eef",
3
+ "version": "4.0.0-internal.d1cc1d3",
4
4
  "description": "Payload storage adapter for Google Cloud Storage",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -33,13 +33,13 @@
33
33
  ],
34
34
  "dependencies": {
35
35
  "@google-cloud/storage": "7.19.0",
36
- "@payloadcms/plugin-cloud-storage": "4.0.0-internal.cd69eef"
36
+ "@payloadcms/plugin-cloud-storage": "4.0.0-internal.d1cc1d3"
37
37
  },
38
38
  "devDependencies": {
39
- "payload": "4.0.0-internal.cd69eef"
39
+ "payload": "4.0.0-internal.d1cc1d3"
40
40
  },
41
41
  "peerDependencies": {
42
- "payload": "4.0.0-internal.cd69eef"
42
+ "payload": "4.0.0-internal.d1cc1d3"
43
43
  },
44
44
  "engines": {
45
45
  "node": ">=24.15.0"