@payloadcms/plugin-cloud-storage 3.0.0-beta.7 → 3.0.0-canary.0017c67
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/README.md +15 -126
- package/azure.d.ts +2 -0
- package/azure.js +3 -0
- package/dist/adapters/azure/generateURL.js.map +1 -1
- package/dist/adapters/azure/handleDelete.d.ts +1 -1
- package/dist/adapters/azure/handleDelete.d.ts.map +1 -1
- package/dist/adapters/azure/handleDelete.js.map +1 -1
- package/dist/adapters/azure/handleUpload.d.ts +1 -1
- package/dist/adapters/azure/handleUpload.d.ts.map +1 -1
- package/dist/adapters/azure/handleUpload.js.map +1 -1
- package/dist/adapters/azure/index.d.ts +5 -0
- package/dist/adapters/azure/index.d.ts.map +1 -1
- package/dist/adapters/azure/index.js +6 -1
- package/dist/adapters/azure/index.js.map +1 -1
- package/dist/adapters/azure/staticHandler.d.ts +1 -1
- package/dist/adapters/azure/staticHandler.d.ts.map +1 -1
- package/dist/adapters/azure/staticHandler.js +3 -2
- package/dist/adapters/azure/staticHandler.js.map +1 -1
- package/dist/adapters/gcs/generateURL.js.map +1 -1
- package/dist/adapters/gcs/handleDelete.js.map +1 -1
- package/dist/adapters/gcs/handleUpload.d.ts +1 -1
- package/dist/adapters/gcs/handleUpload.d.ts.map +1 -1
- package/dist/adapters/gcs/handleUpload.js.map +1 -1
- package/dist/adapters/gcs/index.d.ts +5 -0
- package/dist/adapters/gcs/index.d.ts.map +1 -1
- package/dist/adapters/gcs/index.js +6 -1
- package/dist/adapters/gcs/index.js.map +1 -1
- package/dist/adapters/gcs/staticHandler.d.ts +1 -1
- package/dist/adapters/gcs/staticHandler.d.ts.map +1 -1
- package/dist/adapters/gcs/staticHandler.js +3 -2
- package/dist/adapters/gcs/staticHandler.js.map +1 -1
- package/dist/adapters/s3/generateURL.js.map +1 -1
- package/dist/adapters/s3/handleDelete.js.map +1 -1
- package/dist/adapters/s3/handleUpload.d.ts +1 -1
- package/dist/adapters/s3/handleUpload.d.ts.map +1 -1
- package/dist/adapters/s3/handleUpload.js.map +1 -1
- package/dist/adapters/s3/index.d.ts +5 -0
- package/dist/adapters/s3/index.d.ts.map +1 -1
- package/dist/adapters/s3/index.js +6 -1
- package/dist/adapters/s3/index.js.map +1 -1
- package/dist/adapters/s3/staticHandler.d.ts +1 -1
- package/dist/adapters/s3/staticHandler.d.ts.map +1 -1
- package/dist/adapters/s3/staticHandler.js +3 -2
- package/dist/adapters/s3/staticHandler.js.map +1 -1
- package/dist/adapters/vercelBlob/generateURL.js.map +1 -1
- package/dist/adapters/vercelBlob/handleDelete.js.map +1 -1
- package/dist/adapters/vercelBlob/handleUpload.js.map +1 -1
- package/dist/adapters/vercelBlob/index.d.ts +5 -0
- package/dist/adapters/vercelBlob/index.d.ts.map +1 -1
- package/dist/adapters/vercelBlob/index.js +6 -1
- package/dist/adapters/vercelBlob/index.js.map +1 -1
- package/dist/adapters/vercelBlob/staticHandler.d.ts +1 -1
- package/dist/adapters/vercelBlob/staticHandler.d.ts.map +1 -1
- package/dist/adapters/vercelBlob/staticHandler.js +1 -0
- package/dist/adapters/vercelBlob/staticHandler.js.map +1 -1
- package/dist/admin/fields/getFields.d.ts +1 -1
- package/dist/admin/fields/getFields.d.ts.map +1 -1
- package/dist/admin/fields/getFields.js.map +1 -1
- package/dist/admin/index.d.ts +1 -1
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/exports/azure.js.map +1 -1
- package/dist/exports/gcs.js.map +1 -1
- package/dist/exports/s3.js.map +1 -1
- package/dist/exports/utilities.js.map +1 -1
- package/dist/exports/vercelBlob.js.map +1 -1
- package/dist/fields/getFields.d.ts +1 -1
- package/dist/fields/getFields.d.ts.map +1 -1
- package/dist/fields/getFields.js +3 -1
- package/dist/fields/getFields.js.map +1 -1
- package/dist/hooks/afterDelete.d.ts +1 -2
- package/dist/hooks/afterDelete.d.ts.map +1 -1
- package/dist/hooks/afterDelete.js +4 -2
- package/dist/hooks/afterDelete.js.map +1 -1
- package/dist/hooks/afterRead.d.ts +1 -1
- package/dist/hooks/afterRead.d.ts.map +1 -1
- package/dist/hooks/afterRead.js +1 -0
- package/dist/hooks/afterRead.js.map +1 -1
- package/dist/hooks/beforeChange.d.ts +1 -2
- package/dist/hooks/beforeChange.d.ts.map +1 -1
- package/dist/hooks/beforeChange.js +4 -1
- package/dist/hooks/beforeChange.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts +2 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +2 -1
- package/dist/plugin.js.map +1 -1
- package/dist/types.d.ts +15 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/getFilePrefix.d.ts +4 -3
- package/dist/utilities/getFilePrefix.d.ts.map +1 -1
- package/dist/utilities/getFilePrefix.js +1 -3
- package/dist/utilities/getFilePrefix.js.map +1 -1
- package/dist/utilities/getIncomingFiles.d.ts +2 -2
- package/dist/utilities/getIncomingFiles.d.ts.map +1 -1
- package/dist/utilities/getIncomingFiles.js.map +1 -1
- package/dist/utilities/getRangeFromHeader.d.ts.map +1 -1
- package/dist/utilities/getRangeFromHeader.js.map +1 -1
- package/gcs.d.ts +2 -0
- package/gcs.js +3 -0
- package/package.json +63 -43
- package/s3.d.ts +2 -0
- package/s3.js +3 -0
- package/src/index.ts +0 -1
package/dist/plugin.js
CHANGED
|
@@ -7,7 +7,7 @@ import { getBeforeChangeHook } from './hooks/beforeChange.js';
|
|
|
7
7
|
// Adapters are responsible for providing four actions that this plugin will use:
|
|
8
8
|
// 1. handleUpload, 2. handleDelete, 3. generateURL, 4. staticHandler
|
|
9
9
|
// Optionally, the adapter can specify any Webpack config overrides if they are necessary.
|
|
10
|
-
export const
|
|
10
|
+
export const cloudStoragePlugin = (pluginOptions)=>(incomingConfig)=>{
|
|
11
11
|
const { collections: allCollectionOptions, enabled } = pluginOptions;
|
|
12
12
|
const config = {
|
|
13
13
|
...incomingConfig
|
|
@@ -62,6 +62,7 @@ export const cloudStorage = (pluginOptions)=>(incomingConfig)=>{
|
|
|
62
62
|
},
|
|
63
63
|
upload: {
|
|
64
64
|
...typeof existingCollection.upload === 'object' ? existingCollection.upload : {},
|
|
65
|
+
adapter: adapter.name,
|
|
65
66
|
disableLocalStorage: typeof options.disableLocalStorage === 'boolean' ? options.disableLocalStorage : true,
|
|
66
67
|
handlers
|
|
67
68
|
}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import type { Config } from 'payload
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import type { Config } from 'payload'\n\nimport type { PluginOptions } from './types.js'\n\nimport { getFields } from './fields/getFields.js'\nimport { getAfterDeleteHook } from './hooks/afterDelete.js'\nimport { getBeforeChangeHook } from './hooks/beforeChange.js'\n\n// This plugin extends all targeted collections by offloading uploaded files\n// to cloud storage instead of solely storing files locally.\n\n// It is based on an adapter approach, where adapters can be written for any cloud provider.\n// Adapters are responsible for providing four actions that this plugin will use:\n// 1. handleUpload, 2. handleDelete, 3. generateURL, 4. staticHandler\n\n// Optionally, the adapter can specify any Webpack config overrides if they are necessary.\n\nexport const cloudStoragePlugin =\n (pluginOptions: PluginOptions) =>\n (incomingConfig: Config): Config => {\n const { collections: allCollectionOptions, enabled } = pluginOptions\n const config = { ...incomingConfig }\n\n // Return early if disabled. Only webpack config mods are applied.\n if (enabled === false) {\n return config\n }\n\n const initFunctions: Array<() => void> = []\n\n return {\n ...config,\n collections: (config.collections || []).map((existingCollection) => {\n const options = allCollectionOptions[existingCollection.slug]\n\n if (options?.adapter) {\n const adapter = options.adapter({\n collection: existingCollection,\n prefix: options.prefix,\n })\n\n if (adapter.onInit) initFunctions.push(adapter.onInit)\n\n const fields = getFields({\n adapter,\n collection: existingCollection,\n disablePayloadAccessControl: options.disablePayloadAccessControl,\n generateFileURL: options.generateFileURL,\n prefix: options.prefix,\n })\n\n const handlers = [\n ...(typeof existingCollection.upload === 'object' &&\n Array.isArray(existingCollection.upload.handlers)\n ? existingCollection.upload.handlers\n : []),\n ]\n\n if (!options.disablePayloadAccessControl) {\n handlers.push(adapter.staticHandler)\n }\n\n return {\n ...existingCollection,\n fields,\n hooks: {\n ...(existingCollection.hooks || {}),\n afterDelete: [\n ...(existingCollection.hooks?.afterDelete || []),\n getAfterDeleteHook({ adapter, collection: existingCollection }),\n ],\n beforeChange: [\n ...(existingCollection.hooks?.beforeChange || []),\n getBeforeChangeHook({ adapter, collection: existingCollection }),\n ],\n },\n upload: {\n ...(typeof existingCollection.upload === 'object' ? existingCollection.upload : {}),\n adapter: adapter.name,\n disableLocalStorage:\n typeof options.disableLocalStorage === 'boolean'\n ? options.disableLocalStorage\n : true,\n handlers,\n },\n }\n }\n\n return existingCollection\n }),\n onInit: async (payload) => {\n initFunctions.forEach((fn) => fn())\n if (config.onInit) await config.onInit(payload)\n },\n }\n }\n"],"names":["getFields","getAfterDeleteHook","getBeforeChangeHook","cloudStoragePlugin","pluginOptions","incomingConfig","collections","allCollectionOptions","enabled","config","initFunctions","map","existingCollection","options","slug","adapter","collection","prefix","onInit","push","fields","disablePayloadAccessControl","generateFileURL","handlers","upload","Array","isArray","staticHandler","hooks","afterDelete","beforeChange","name","disableLocalStorage","payload","forEach","fn"],"mappings":"AAIA,SAASA,SAAS,QAAQ,wBAAuB;AACjD,SAASC,kBAAkB,QAAQ,yBAAwB;AAC3D,SAASC,mBAAmB,QAAQ,0BAAyB;AAE7D,4EAA4E;AAC5E,4DAA4D;AAE5D,4FAA4F;AAC5F,iFAAiF;AACjF,qEAAqE;AAErE,0FAA0F;AAE1F,OAAO,MAAMC,qBACX,CAACC,gBACD,CAACC;QACC,MAAM,EAAEC,aAAaC,oBAAoB,EAAEC,OAAO,EAAE,GAAGJ;QACvD,MAAMK,SAAS;YAAE,GAAGJ,cAAc;QAAC;QAEnC,kEAAkE;QAClE,IAAIG,YAAY,OAAO;YACrB,OAAOC;QACT;QAEA,MAAMC,gBAAmC,EAAE;QAE3C,OAAO;YACL,GAAGD,MAAM;YACTH,aAAa,AAACG,CAAAA,OAAOH,WAAW,IAAI,EAAE,AAAD,EAAGK,GAAG,CAAC,CAACC;gBAC3C,MAAMC,UAAUN,oBAAoB,CAACK,mBAAmBE,IAAI,CAAC;gBAE7D,IAAID,SAASE,SAAS;oBACpB,MAAMA,UAAUF,QAAQE,OAAO,CAAC;wBAC9BC,YAAYJ;wBACZK,QAAQJ,QAAQI,MAAM;oBACxB;oBAEA,IAAIF,QAAQG,MAAM,EAAER,cAAcS,IAAI,CAACJ,QAAQG,MAAM;oBAErD,MAAME,SAASpB,UAAU;wBACvBe;wBACAC,YAAYJ;wBACZS,6BAA6BR,QAAQQ,2BAA2B;wBAChEC,iBAAiBT,QAAQS,eAAe;wBACxCL,QAAQJ,QAAQI,MAAM;oBACxB;oBAEA,MAAMM,WAAW;2BACX,OAAOX,mBAAmBY,MAAM,KAAK,YACzCC,MAAMC,OAAO,CAACd,mBAAmBY,MAAM,CAACD,QAAQ,IAC5CX,mBAAmBY,MAAM,CAACD,QAAQ,GAClC,EAAE;qBACP;oBAED,IAAI,CAACV,QAAQQ,2BAA2B,EAAE;wBACxCE,SAASJ,IAAI,CAACJ,QAAQY,aAAa;oBACrC;oBAEA,OAAO;wBACL,GAAGf,kBAAkB;wBACrBQ;wBACAQ,OAAO;4BACL,GAAIhB,mBAAmBgB,KAAK,IAAI,CAAC,CAAC;4BAClCC,aAAa;mCACPjB,mBAAmBgB,KAAK,EAAEC,eAAe,EAAE;gCAC/C5B,mBAAmB;oCAAEc;oCAASC,YAAYJ;gCAAmB;6BAC9D;4BACDkB,cAAc;mCACRlB,mBAAmBgB,KAAK,EAAEE,gBAAgB,EAAE;gCAChD5B,oBAAoB;oCAAEa;oCAASC,YAAYJ;gCAAmB;6BAC/D;wBACH;wBACAY,QAAQ;4BACN,GAAI,OAAOZ,mBAAmBY,MAAM,KAAK,WAAWZ,mBAAmBY,MAAM,GAAG,CAAC,CAAC;4BAClFT,SAASA,QAAQgB,IAAI;4BACrBC,qBACE,OAAOnB,QAAQmB,mBAAmB,KAAK,YACnCnB,QAAQmB,mBAAmB,GAC3B;4BACNT;wBACF;oBACF;gBACF;gBAEA,OAAOX;YACT;YACAM,QAAQ,OAAOe;gBACbvB,cAAcwB,OAAO,CAAC,CAACC,KAAOA;gBAC9B,IAAI1B,OAAOS,MAAM,EAAE,MAAMT,OAAOS,MAAM,CAACe;YACzC;QACF;IACF,EAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import type { FileData, ImageSize } from 'payload/types';
|
|
3
|
-
import type { TypeWithID } from 'payload/types';
|
|
4
|
-
import type { CollectionConfig, PayloadRequest } from 'payload/types';
|
|
1
|
+
import type { CollectionConfig, Field, FileData, ImageSize, PayloadRequestWithData, TypeWithID } from 'payload';
|
|
5
2
|
export interface File {
|
|
6
3
|
buffer: Buffer;
|
|
7
4
|
filename: string;
|
|
@@ -13,7 +10,7 @@ export type HandleUpload = (args: {
|
|
|
13
10
|
collection: CollectionConfig;
|
|
14
11
|
data: any;
|
|
15
12
|
file: File;
|
|
16
|
-
req:
|
|
13
|
+
req: PayloadRequestWithData;
|
|
17
14
|
}) => Promise<void> | void;
|
|
18
15
|
export interface TypeWithPrefix {
|
|
19
16
|
prefix?: string;
|
|
@@ -22,23 +19,33 @@ export type HandleDelete = (args: {
|
|
|
22
19
|
collection: CollectionConfig;
|
|
23
20
|
doc: TypeWithID & FileData & TypeWithPrefix;
|
|
24
21
|
filename: string;
|
|
25
|
-
req:
|
|
22
|
+
req: PayloadRequestWithData;
|
|
26
23
|
}) => Promise<void> | void;
|
|
27
24
|
export type GenerateURL = (args: {
|
|
28
25
|
collection: CollectionConfig;
|
|
26
|
+
data: any;
|
|
29
27
|
filename: string;
|
|
30
28
|
prefix?: string;
|
|
31
29
|
}) => Promise<string> | string;
|
|
32
|
-
export type StaticHandler = (req:
|
|
30
|
+
export type StaticHandler = (req: PayloadRequestWithData, args: {
|
|
31
|
+
doc?: TypeWithID;
|
|
33
32
|
params: {
|
|
34
33
|
collection: string;
|
|
35
34
|
filename: string;
|
|
36
35
|
};
|
|
37
36
|
}) => Promise<Response> | Response;
|
|
38
37
|
export interface GeneratedAdapter {
|
|
39
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Additional fields to be injected into the base collection and image sizes
|
|
40
|
+
*/
|
|
41
|
+
fields?: Field[];
|
|
42
|
+
/**
|
|
43
|
+
* Generates the public URL for a file
|
|
44
|
+
*/
|
|
45
|
+
generateURL?: GenerateURL;
|
|
40
46
|
handleDelete: HandleDelete;
|
|
41
47
|
handleUpload: HandleUpload;
|
|
48
|
+
name: string;
|
|
42
49
|
onInit?: () => void;
|
|
43
50
|
staticHandler: StaticHandler;
|
|
44
51
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,sBAAsB,EACtB,UAAU,EACX,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAChC,UAAU,EAAE,gBAAgB,CAAA;IAC5B,IAAI,EAAE,GAAG,CAAA;IACT,IAAI,EAAE,IAAI,CAAA;IACV,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAE1B,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAChC,UAAU,EAAE,gBAAgB,CAAA;IAC5B,GAAG,EAAE,UAAU,GAAG,QAAQ,GAAG,cAAc,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAE1B,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE;IAC/B,UAAU,EAAE,gBAAgB,CAAA;IAC5B,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;AAE9B,MAAM,MAAM,aAAa,GAAG,CAC1B,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,KACzE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;AAEjC,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,YAAY,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,EAAE,aAAa,CAAA;CAC7B;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,gBAAgB,CAAA;AAEnG,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE;IACnC,UAAU,EAAE,gBAAgB,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;AAE9B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,2BAA2B,CAAC,EAAE,IAAI,CAAA;IAClC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAC9C;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n CollectionConfig,\n Field,\n FileData,\n ImageSize,\n PayloadRequestWithData,\n TypeWithID,\n} from 'payload'\n\nexport interface File {\n buffer: Buffer\n filename: string\n filesize: number\n mimeType: string\n tempFilePath?: string\n}\n\nexport type HandleUpload = (args: {\n collection: CollectionConfig\n data: any\n file: File\n req: PayloadRequestWithData\n}) => Promise<void> | void\n\nexport interface TypeWithPrefix {\n prefix?: string\n}\n\nexport type HandleDelete = (args: {\n collection: CollectionConfig\n doc: TypeWithID & FileData & TypeWithPrefix\n filename: string\n req: PayloadRequestWithData\n}) => Promise<void> | void\n\nexport type GenerateURL = (args: {\n collection: CollectionConfig\n data: any\n filename: string\n prefix?: string\n}) => Promise<string> | string\n\nexport type StaticHandler = (\n req: PayloadRequestWithData,\n args: { doc?: TypeWithID; params: { collection: string; filename: string } },\n) => Promise<Response> | Response\n\nexport interface GeneratedAdapter {\n /**\n * Additional fields to be injected into the base collection and image sizes\n */\n fields?: Field[]\n /**\n * Generates the public URL for a file\n */\n generateURL?: GenerateURL\n handleDelete: HandleDelete\n handleUpload: HandleUpload\n name: string\n onInit?: () => void\n staticHandler: StaticHandler\n}\n\nexport type Adapter = (args: { collection: CollectionConfig; prefix?: string }) => GeneratedAdapter\n\nexport type GenerateFileURL = (args: {\n collection: CollectionConfig\n filename: string\n prefix?: string\n size?: ImageSize\n}) => Promise<string> | string\n\nexport interface CollectionOptions {\n adapter: Adapter | null\n disableLocalStorage?: boolean\n disablePayloadAccessControl?: true\n generateFileURL?: GenerateFileURL\n prefix?: string\n}\n\nexport interface PluginOptions {\n collections: Record<string, CollectionOptions>\n /**\n * Whether or not to enable the plugin\n *\n * Default: true\n */\n enabled?: boolean\n}\n"],"names":[],"mappings":"AAgFA,WAQC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { CollectionConfig,
|
|
2
|
-
export declare function getFilePrefix({ collection, req, }: {
|
|
1
|
+
import type { CollectionConfig, PayloadRequestWithData } from 'payload';
|
|
2
|
+
export declare function getFilePrefix({ collection, filename, req, }: {
|
|
3
3
|
collection: CollectionConfig;
|
|
4
|
-
|
|
4
|
+
filename: string;
|
|
5
|
+
req: PayloadRequestWithData;
|
|
5
6
|
}): Promise<string>;
|
|
6
7
|
//# sourceMappingURL=getFilePrefix.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFilePrefix.d.ts","sourceRoot":"","sources":["../../src/utilities/getFilePrefix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"getFilePrefix.d.ts","sourceRoot":"","sources":["../../src/utilities/getFilePrefix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAgB,MAAM,SAAS,CAAA;AAErF,wBAAsB,aAAa,CAAC,EAClC,UAAU,EACV,QAAQ,EACR,GAAG,GACJ,EAAE;IACD,UAAU,EAAE,gBAAgB,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBlB"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
export async function getFilePrefix({ collection, req }) {
|
|
1
|
+
export async function getFilePrefix({ collection, filename, req }) {
|
|
2
2
|
const imageSizes = collection?.upload?.imageSizes || [];
|
|
3
|
-
const { routeParams } = req;
|
|
4
|
-
const filename = routeParams['filename'];
|
|
5
3
|
const files = await req.payload.find({
|
|
6
4
|
collection: collection.slug,
|
|
7
5
|
depth: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getFilePrefix.ts"],"sourcesContent":["import type { CollectionConfig,
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getFilePrefix.ts"],"sourcesContent":["import type { CollectionConfig, PayloadRequestWithData, UploadConfig } from 'payload'\n\nexport async function getFilePrefix({\n collection,\n filename,\n req,\n}: {\n collection: CollectionConfig\n filename: string\n req: PayloadRequestWithData\n}): Promise<string> {\n const imageSizes = (collection?.upload as UploadConfig)?.imageSizes || []\n\n const files = await req.payload.find({\n collection: collection.slug,\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n or: [\n {\n filename: { equals: filename },\n },\n ...imageSizes.map((imageSize) => ({\n [`sizes.${imageSize.name}.filename`]: { equals: filename },\n })),\n ],\n },\n })\n const prefix = files?.docs?.[0]?.prefix\n return prefix ? (prefix as string) : ''\n}\n"],"names":["getFilePrefix","collection","filename","req","imageSizes","upload","files","payload","find","slug","depth","limit","pagination","where","or","equals","map","imageSize","name","prefix","docs"],"mappings":"AAEA,OAAO,eAAeA,cAAc,EAClCC,UAAU,EACVC,QAAQ,EACRC,GAAG,EAKJ;IACC,MAAMC,aAAa,AAACH,YAAYI,QAAyBD,cAAc,EAAE;IAEzE,MAAME,QAAQ,MAAMH,IAAII,OAAO,CAACC,IAAI,CAAC;QACnCP,YAAYA,WAAWQ,IAAI;QAC3BC,OAAO;QACPC,OAAO;QACPC,YAAY;QACZC,OAAO;YACLC,IAAI;gBACF;oBACEZ,UAAU;wBAAEa,QAAQb;oBAAS;gBAC/B;mBACGE,WAAWY,GAAG,CAAC,CAACC,YAAe,CAAA;wBAChC,CAAC,CAAC,MAAM,EAAEA,UAAUC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE;4BAAEH,QAAQb;wBAAS;oBAC3D,CAAA;aACD;QACH;IACF;IACA,MAAMiB,SAASb,OAAOc,MAAM,CAAC,EAAE,EAAED;IACjC,OAAOA,SAAUA,SAAoB;AACvC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { FileData,
|
|
1
|
+
import type { FileData, PayloadRequestWithData } from 'payload';
|
|
2
2
|
import type { File } from '../types.js';
|
|
3
3
|
export declare function getIncomingFiles({ data, req, }: {
|
|
4
4
|
data: Partial<FileData>;
|
|
5
|
-
req:
|
|
5
|
+
req: PayloadRequestWithData;
|
|
6
6
|
}): File[];
|
|
7
7
|
//# sourceMappingURL=getIncomingFiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getIncomingFiles.d.ts","sourceRoot":"","sources":["../../src/utilities/getIncomingFiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"getIncomingFiles.d.ts","sourceRoot":"","sources":["../../src/utilities/getIncomingFiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAE/D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,GAAG,GACJ,EAAE;IACD,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,GAAG,IAAI,EAAE,CAiCT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getIncomingFiles.ts"],"sourcesContent":["import type { FileData,
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getIncomingFiles.ts"],"sourcesContent":["import type { FileData, PayloadRequestWithData } from 'payload'\n\nimport type { File } from '../types.js'\n\nexport function getIncomingFiles({\n data,\n req,\n}: {\n data: Partial<FileData>\n req: PayloadRequestWithData\n}): File[] {\n const file = req.file\n\n let files: File[] = []\n\n if (file && data.filename && data.mimeType) {\n const mainFile: File = {\n buffer: file.data,\n filename: data.filename,\n filesize: file.size,\n mimeType: data.mimeType,\n tempFilePath: file.tempFilePath,\n }\n\n files = [mainFile]\n\n if (data?.sizes) {\n Object.entries(data.sizes).forEach(([key, resizedFileData]) => {\n if (req.payloadUploadSizes?.[key] && data.mimeType) {\n files = files.concat([\n {\n buffer: req.payloadUploadSizes[key],\n filename: `${resizedFileData.filename}`,\n filesize: req.payloadUploadSizes[key].length,\n mimeType: data.mimeType,\n },\n ])\n }\n })\n }\n }\n\n return files\n}\n"],"names":["getIncomingFiles","data","req","file","files","filename","mimeType","mainFile","buffer","filesize","size","tempFilePath","sizes","Object","entries","forEach","key","resizedFileData","payloadUploadSizes","concat","length"],"mappings":"AAIA,OAAO,SAASA,iBAAiB,EAC/BC,IAAI,EACJC,GAAG,EAIJ;IACC,MAAMC,OAAOD,IAAIC,IAAI;IAErB,IAAIC,QAAgB,EAAE;IAEtB,IAAID,QAAQF,KAAKI,QAAQ,IAAIJ,KAAKK,QAAQ,EAAE;QAC1C,MAAMC,WAAiB;YACrBC,QAAQL,KAAKF,IAAI;YACjBI,UAAUJ,KAAKI,QAAQ;YACvBI,UAAUN,KAAKO,IAAI;YACnBJ,UAAUL,KAAKK,QAAQ;YACvBK,cAAcR,KAAKQ,YAAY;QACjC;QAEAP,QAAQ;YAACG;SAAS;QAElB,IAAIN,MAAMW,OAAO;YACfC,OAAOC,OAAO,CAACb,KAAKW,KAAK,EAAEG,OAAO,CAAC,CAAC,CAACC,KAAKC,gBAAgB;gBACxD,IAAIf,IAAIgB,kBAAkB,EAAE,CAACF,IAAI,IAAIf,KAAKK,QAAQ,EAAE;oBAClDF,QAAQA,MAAMe,MAAM,CAAC;wBACnB;4BACEX,QAAQN,IAAIgB,kBAAkB,CAACF,IAAI;4BACnCX,UAAU,CAAC,EAAEY,gBAAgBZ,QAAQ,CAAC,CAAC;4BACvCI,UAAUP,IAAIgB,kBAAkB,CAACF,IAAI,CAACI,MAAM;4BAC5Cd,UAAUL,KAAKK,QAAQ;wBACzB;qBACD;gBACH;YACF;QACF;IACF;IAEA,OAAOF;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRangeFromHeader.d.ts","sourceRoot":"","sources":["../../src/utilities/getRangeFromHeader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAI1D,QAAA,MAAM,kBAAkB,oBACL,eAAe,gBAClB,MAAM,KACnB,
|
|
1
|
+
{"version":3,"file":"getRangeFromHeader.d.ts","sourceRoot":"","sources":["../../src/utilities/getRangeFromHeader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAI1D,QAAA,MAAM,kBAAkB,oBACL,eAAe,gBAClB,MAAM,KACnB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkBpD,CAAA;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/getRangeFromHeader.ts"],"sourcesContent":["import type { BlockBlobClient } from '@azure/storage-blob'\n\nimport parseRange from 'range-parser'\n\nconst getRangeFromHeader = async (\n blockBlobClient: BlockBlobClient,\n rangeHeader?: string,\n): Promise<{ end: number | undefined; start: number }> => {\n const fullRange = { end: undefined, start: 0 }\n\n if (!rangeHeader) {\n return fullRange\n }\n\n const size = await blockBlobClient.getProperties().then((props) => props.contentLength)\n if (size === undefined) {\n return fullRange\n }\n\n const range = parseRange(size, rangeHeader)\n if (range === -1 || range === -2 || range.type !== 'bytes' || range.length !== 1) {\n return fullRange\n }\n\n return range[0]\n}\n\nexport default getRangeFromHeader\n"],"names":["parseRange","getRangeFromHeader","blockBlobClient","rangeHeader","fullRange","end","undefined","start","size","getProperties","then","props","contentLength","range","type","length"],"
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getRangeFromHeader.ts"],"sourcesContent":["import type { BlockBlobClient } from '@azure/storage-blob'\n\nimport parseRange from 'range-parser'\n\nconst getRangeFromHeader = async (\n blockBlobClient: BlockBlobClient,\n rangeHeader?: string,\n): Promise<{ end: number | undefined; start: number }> => {\n const fullRange = { end: undefined, start: 0 }\n\n if (!rangeHeader) {\n return fullRange\n }\n\n const size = await blockBlobClient.getProperties().then((props) => props.contentLength)\n if (size === undefined) {\n return fullRange\n }\n\n const range = parseRange(size, rangeHeader)\n if (range === -1 || range === -2 || range.type !== 'bytes' || range.length !== 1) {\n return fullRange\n }\n\n return range[0]\n}\n\nexport default getRangeFromHeader\n"],"names":["parseRange","getRangeFromHeader","blockBlobClient","rangeHeader","fullRange","end","undefined","start","size","getProperties","then","props","contentLength","range","type","length"],"mappings":"AAEA,OAAOA,gBAAgB,eAAc;AAErC,MAAMC,qBAAqB,OACzBC,iBACAC;IAEA,MAAMC,YAAY;QAAEC,KAAKC;QAAWC,OAAO;IAAE;IAE7C,IAAI,CAACJ,aAAa;QAChB,OAAOC;IACT;IAEA,MAAMI,OAAO,MAAMN,gBAAgBO,aAAa,GAAGC,IAAI,CAAC,CAACC,QAAUA,MAAMC,aAAa;IACtF,IAAIJ,SAASF,WAAW;QACtB,OAAOF;IACT;IAEA,MAAMS,QAAQb,WAAWQ,MAAML;IAC/B,IAAIU,UAAU,CAAC,KAAKA,UAAU,CAAC,KAAKA,MAAMC,IAAI,KAAK,WAAWD,MAAME,MAAM,KAAK,GAAG;QAChF,OAAOX;IACT;IAEA,OAAOS,KAAK,CAAC,EAAE;AACjB;AAEA,eAAeZ,mBAAkB"}
|
package/gcs.d.ts
ADDED
package/gcs.js
ADDED
package/package.json
CHANGED
|
@@ -1,17 +1,72 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-cloud-storage",
|
|
3
|
+
"version": "3.0.0-canary.0017c67",
|
|
3
4
|
"description": "The official cloud storage plugin for Payload CMS",
|
|
4
|
-
"version": "3.0.0-beta.7",
|
|
5
|
-
"main": "./dist/index.js",
|
|
6
|
-
"types": "./dist/index.d.ts",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"license": "MIT",
|
|
9
5
|
"homepage": "https://payloadcms.com",
|
|
10
6
|
"repository": {
|
|
11
7
|
"type": "git",
|
|
12
8
|
"url": "https://github.com/payloadcms/payload.git",
|
|
13
9
|
"directory": "packages/plugin-cloud-storage"
|
|
14
10
|
},
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"type": "module",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"default": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./types": {
|
|
20
|
+
"import": "./dist/types.js",
|
|
21
|
+
"types": "./dist/types.d.ts",
|
|
22
|
+
"default": "./dist/types.js"
|
|
23
|
+
},
|
|
24
|
+
"./utilities": {
|
|
25
|
+
"import": "./dist/exports/utilities.js",
|
|
26
|
+
"types": "./dist/exports/utilities.d.ts",
|
|
27
|
+
"default": "./dist/exports/utilities.js"
|
|
28
|
+
},
|
|
29
|
+
"./azure": {
|
|
30
|
+
"import": "./dist/exports/azure.js",
|
|
31
|
+
"types": "./dist/exports/azure.d.ts",
|
|
32
|
+
"default": "./dist/exports/azure.js"
|
|
33
|
+
},
|
|
34
|
+
"./gcs": {
|
|
35
|
+
"import": "./dist/exports/gcs.js",
|
|
36
|
+
"types": "./dist/exports/gcs.d.ts",
|
|
37
|
+
"default": "./dist/exports/gcs.js"
|
|
38
|
+
},
|
|
39
|
+
"./s3": {
|
|
40
|
+
"import": "./dist/exports/s3.js",
|
|
41
|
+
"types": "./dist/exports/s3.d.ts",
|
|
42
|
+
"default": "./dist/exports/s3.js"
|
|
43
|
+
},
|
|
44
|
+
"./vercelBlob": {
|
|
45
|
+
"import": "./dist/exports/vercelBlob.js",
|
|
46
|
+
"types": "./dist/exports/vercelBlob.d.ts",
|
|
47
|
+
"default": "./dist/exports/vercelBlob.js"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"main": "./dist/index.js",
|
|
51
|
+
"types": "./dist/index.d.ts",
|
|
52
|
+
"files": [
|
|
53
|
+
"dist",
|
|
54
|
+
"*.js",
|
|
55
|
+
"*.d.ts"
|
|
56
|
+
],
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"find-node-modules": "^2.1.3",
|
|
59
|
+
"range-parser": "^1.2.1"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@aws-sdk/client-s3": "^3.525.0",
|
|
63
|
+
"@aws-sdk/lib-storage": "^3.525.0",
|
|
64
|
+
"@azure/storage-blob": "^12.11.0",
|
|
65
|
+
"@google-cloud/storage": "^7.7.0",
|
|
66
|
+
"@types/find-node-modules": "^2.1.2",
|
|
67
|
+
"@vercel/blob": "^0.22.3",
|
|
68
|
+
"payload": "3.0.0-canary.0017c67"
|
|
69
|
+
},
|
|
15
70
|
"peerDependencies": {
|
|
16
71
|
"@aws-sdk/client-s3": "^3.525.0",
|
|
17
72
|
"@aws-sdk/lib-storage": "^3.525.0",
|
|
@@ -19,7 +74,7 @@
|
|
|
19
74
|
"@azure/storage-blob": "^12.11.0",
|
|
20
75
|
"@google-cloud/storage": "^7.7.0",
|
|
21
76
|
"@vercel/blob": "^0.22.3",
|
|
22
|
-
"payload": "3.0.0-
|
|
77
|
+
"payload": "3.0.0-canary.0017c67"
|
|
23
78
|
},
|
|
24
79
|
"peerDependenciesMeta": {
|
|
25
80
|
"@aws-sdk/client-s3": {
|
|
@@ -41,47 +96,12 @@
|
|
|
41
96
|
"optional": true
|
|
42
97
|
}
|
|
43
98
|
},
|
|
44
|
-
"files": [
|
|
45
|
-
"dist",
|
|
46
|
-
"*.js",
|
|
47
|
-
"*.d.ts"
|
|
48
|
-
],
|
|
49
|
-
"devDependencies": {
|
|
50
|
-
"@aws-sdk/client-s3": "^3.525.0",
|
|
51
|
-
"@aws-sdk/lib-storage": "^3.525.0",
|
|
52
|
-
"@azure/storage-blob": "^12.11.0",
|
|
53
|
-
"@google-cloud/storage": "^7.7.0",
|
|
54
|
-
"@types/find-node-modules": "^2.1.2",
|
|
55
|
-
"@vercel/blob": "^0.22.3",
|
|
56
|
-
"payload": "3.0.0-beta.7"
|
|
57
|
-
},
|
|
58
|
-
"dependencies": {
|
|
59
|
-
"find-node-modules": "^2.1.3",
|
|
60
|
-
"range-parser": "^1.2.1"
|
|
61
|
-
},
|
|
62
|
-
"exports": {
|
|
63
|
-
".": {
|
|
64
|
-
"import": "./dist/index.js",
|
|
65
|
-
"require": "./dist/index.js",
|
|
66
|
-
"types": "./dist/index.d.ts"
|
|
67
|
-
},
|
|
68
|
-
"./types": {
|
|
69
|
-
"import": "./dist/types.js",
|
|
70
|
-
"require": "./dist/types.js",
|
|
71
|
-
"types": "./dist/types.d.ts"
|
|
72
|
-
},
|
|
73
|
-
"./*": {
|
|
74
|
-
"import": "./dist/exports/*.js",
|
|
75
|
-
"require": "./dist/exports/*.js",
|
|
76
|
-
"types": "./dist/exports/*.d.ts"
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
99
|
"publishConfig": {
|
|
80
100
|
"registry": "https://registry.npmjs.org/"
|
|
81
101
|
},
|
|
82
102
|
"scripts": {
|
|
83
|
-
"build": "pnpm build:
|
|
84
|
-
"build:swc": "swc ./src -d ./dist --config-file .swcrc",
|
|
103
|
+
"build": "pnpm build:types && pnpm build:swc ",
|
|
104
|
+
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
85
105
|
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
86
106
|
"clean": "rimraf {dist,*.tsbuildinfo}",
|
|
87
107
|
"test": "echo \"No tests available.\""
|
package/s3.d.ts
ADDED
package/s3.js
ADDED
package/src/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { cloudStorage } from './plugin.js'
|