@payloadcms/plugin-cloud-storage 3.0.0-canary.d894ac7 → 3.0.0-canary.e198dc5
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/adapters/azure/index.d.ts.map +1 -1
- package/dist/adapters/azure/index.js +3 -1
- package/dist/adapters/azure/index.js.map +1 -1
- package/dist/adapters/gcs/index.d.ts.map +1 -1
- package/dist/adapters/gcs/index.js +3 -1
- package/dist/adapters/gcs/index.js.map +1 -1
- package/dist/adapters/s3/index.d.ts.map +1 -1
- package/dist/adapters/s3/index.js +3 -1
- package/dist/adapters/s3/index.js.map +1 -1
- package/dist/adapters/vercelBlob/generateURL.d.ts +1 -1
- package/dist/adapters/vercelBlob/generateURL.d.ts.map +1 -1
- package/dist/adapters/vercelBlob/generateURL.js.map +1 -1
- package/dist/adapters/vercelBlob/handleDelete.d.ts +1 -1
- package/dist/adapters/vercelBlob/handleDelete.d.ts.map +1 -1
- package/dist/adapters/vercelBlob/handleDelete.js.map +1 -1
- package/dist/adapters/vercelBlob/handleUpload.d.ts +1 -1
- package/dist/adapters/vercelBlob/handleUpload.d.ts.map +1 -1
- package/dist/adapters/vercelBlob/handleUpload.js.map +1 -1
- package/dist/adapters/vercelBlob/index.d.ts +1 -1
- package/dist/adapters/vercelBlob/index.d.ts.map +1 -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.map +1 -1
- package/dist/admin/fields/getFields.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.map +1 -1
- package/dist/hooks/afterDelete.d.ts.map +1 -1
- package/dist/hooks/afterDelete.js +8 -6
- 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.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +6 -2
- package/dist/plugin.js.map +1 -1
- package/eslint.config.js +3 -5
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,gBAAgB,CAAA;AAO/D,MAAM,WAAW,IAAI;IACnB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,wEAKjC,IAAI,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/azure/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,gBAAgB,CAAA;AAO/D,MAAM,WAAW,IAAI;IACnB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,wEAKjC,IAAI,KAAG,OA6CT,CAAA"}
|
|
@@ -13,7 +13,9 @@ import { getHandler } from './staticHandler.js';
|
|
|
13
13
|
}
|
|
14
14
|
let storageClient = null;
|
|
15
15
|
const getStorageClient = ()=>{
|
|
16
|
-
if (storageClient)
|
|
16
|
+
if (storageClient) {
|
|
17
|
+
return storageClient;
|
|
18
|
+
}
|
|
17
19
|
let blobServiceClient = null;
|
|
18
20
|
try {
|
|
19
21
|
blobServiceClient = BlobServiceClient.fromConnectionString(connectionString);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/azure/index.ts"],"sourcesContent":["import type { ContainerClient } from '@azure/storage-blob'\n\nimport { BlobServiceClient } from '@azure/storage-blob'\n\nimport type { Adapter, GeneratedAdapter } from '../../types.js'\n\nimport { getGenerateURL } from './generateURL.js'\nimport { getHandleDelete } from './handleDelete.js'\nimport { getHandleUpload } from './handleUpload.js'\nimport { getHandler } from './staticHandler.js'\n\nexport interface Args {\n allowContainerCreate: boolean\n baseURL: string\n connectionString: string\n containerName: string\n}\n\n/**\n * @deprecated Use [`@payloadcms/azure`](https://www.npmjs.com/package/@payloadcms/azure) instead.\n *\n * This adapter has been superceded by `@payloadcms/azure` and will be removed in Payload 3.0.\n */\nexport const azureBlobStorageAdapter = ({\n allowContainerCreate,\n baseURL,\n connectionString,\n containerName,\n}: Args): Adapter => {\n if (!BlobServiceClient) {\n throw new Error(\n 'The package @azure/storage-blob is not installed, but is required for the plugin-cloud-storage Azure adapter. Please install it.',\n )\n }\n\n let storageClient: ContainerClient | null = null\n const getStorageClient = () => {\n if (storageClient) return storageClient\n let blobServiceClient = null\n try {\n blobServiceClient = BlobServiceClient.fromConnectionString(connectionString)\n } catch (error) {\n if (/is not a constructor$/.test(error.message)) {\n throw new Error(\n 'The package @azure/storage-blob is not installed, but is required for the plugin-cloud-storage Azure adapter. Please install it.',\n )\n }\n // Re-throw other unexpected errors.\n throw error\n }\n return (storageClient = blobServiceClient.getContainerClient(containerName))\n }\n\n const createContainerIfNotExists = () => {\n getStorageClient().createIfNotExists({ access: 'blob' })\n }\n\n return ({ collection, prefix }): GeneratedAdapter => {\n return {\n name: 'azure',\n generateURL: getGenerateURL({ baseURL, containerName }),\n handleDelete: getHandleDelete({ collection, getStorageClient }),\n handleUpload: getHandleUpload({\n collection,\n getStorageClient,\n prefix,\n }),\n staticHandler: getHandler({ collection, getStorageClient }),\n ...(allowContainerCreate && { onInit: createContainerIfNotExists }),\n }\n }\n}\n"],"names":["BlobServiceClient","getGenerateURL","getHandleDelete","getHandleUpload","getHandler","azureBlobStorageAdapter","allowContainerCreate","baseURL","connectionString","containerName","Error","storageClient","getStorageClient","blobServiceClient","fromConnectionString","error","test","message","getContainerClient","createContainerIfNotExists","createIfNotExists","access","collection","prefix","name","generateURL","handleDelete","handleUpload","staticHandler","onInit"],"mappings":"AAEA,SAASA,iBAAiB,QAAQ,sBAAqB;AAIvD,SAASC,cAAc,QAAQ,mBAAkB;AACjD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,UAAU,QAAQ,qBAAoB;AAS/C;;;;CAIC,GACD,OAAO,MAAMC,0BAA0B,CAAC,EACtCC,oBAAoB,EACpBC,OAAO,EACPC,gBAAgB,EAChBC,aAAa,EACR;IACL,IAAI,CAACT,mBAAmB;QACtB,MAAM,IAAIU,MACR;IAEJ;IAEA,IAAIC,gBAAwC;IAC5C,MAAMC,mBAAmB;QACvB,IAAID,eAAe,OAAOA;
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/azure/index.ts"],"sourcesContent":["import type { ContainerClient } from '@azure/storage-blob'\n\nimport { BlobServiceClient } from '@azure/storage-blob'\n\nimport type { Adapter, GeneratedAdapter } from '../../types.js'\n\nimport { getGenerateURL } from './generateURL.js'\nimport { getHandleDelete } from './handleDelete.js'\nimport { getHandleUpload } from './handleUpload.js'\nimport { getHandler } from './staticHandler.js'\n\nexport interface Args {\n allowContainerCreate: boolean\n baseURL: string\n connectionString: string\n containerName: string\n}\n\n/**\n * @deprecated Use [`@payloadcms/azure`](https://www.npmjs.com/package/@payloadcms/azure) instead.\n *\n * This adapter has been superceded by `@payloadcms/azure` and will be removed in Payload 3.0.\n */\nexport const azureBlobStorageAdapter = ({\n allowContainerCreate,\n baseURL,\n connectionString,\n containerName,\n}: Args): Adapter => {\n if (!BlobServiceClient) {\n throw new Error(\n 'The package @azure/storage-blob is not installed, but is required for the plugin-cloud-storage Azure adapter. Please install it.',\n )\n }\n\n let storageClient: ContainerClient | null = null\n const getStorageClient = () => {\n if (storageClient) {\n return storageClient\n }\n let blobServiceClient = null\n try {\n blobServiceClient = BlobServiceClient.fromConnectionString(connectionString)\n } catch (error) {\n if (/is not a constructor$/.test(error.message)) {\n throw new Error(\n 'The package @azure/storage-blob is not installed, but is required for the plugin-cloud-storage Azure adapter. Please install it.',\n )\n }\n // Re-throw other unexpected errors.\n throw error\n }\n return (storageClient = blobServiceClient.getContainerClient(containerName))\n }\n\n const createContainerIfNotExists = () => {\n getStorageClient().createIfNotExists({ access: 'blob' })\n }\n\n return ({ collection, prefix }): GeneratedAdapter => {\n return {\n name: 'azure',\n generateURL: getGenerateURL({ baseURL, containerName }),\n handleDelete: getHandleDelete({ collection, getStorageClient }),\n handleUpload: getHandleUpload({\n collection,\n getStorageClient,\n prefix,\n }),\n staticHandler: getHandler({ collection, getStorageClient }),\n ...(allowContainerCreate && { onInit: createContainerIfNotExists }),\n }\n }\n}\n"],"names":["BlobServiceClient","getGenerateURL","getHandleDelete","getHandleUpload","getHandler","azureBlobStorageAdapter","allowContainerCreate","baseURL","connectionString","containerName","Error","storageClient","getStorageClient","blobServiceClient","fromConnectionString","error","test","message","getContainerClient","createContainerIfNotExists","createIfNotExists","access","collection","prefix","name","generateURL","handleDelete","handleUpload","staticHandler","onInit"],"mappings":"AAEA,SAASA,iBAAiB,QAAQ,sBAAqB;AAIvD,SAASC,cAAc,QAAQ,mBAAkB;AACjD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,UAAU,QAAQ,qBAAoB;AAS/C;;;;CAIC,GACD,OAAO,MAAMC,0BAA0B,CAAC,EACtCC,oBAAoB,EACpBC,OAAO,EACPC,gBAAgB,EAChBC,aAAa,EACR;IACL,IAAI,CAACT,mBAAmB;QACtB,MAAM,IAAIU,MACR;IAEJ;IAEA,IAAIC,gBAAwC;IAC5C,MAAMC,mBAAmB;QACvB,IAAID,eAAe;YACjB,OAAOA;QACT;QACA,IAAIE,oBAAoB;QACxB,IAAI;YACFA,oBAAoBb,kBAAkBc,oBAAoB,CAACN;QAC7D,EAAE,OAAOO,OAAO;YACd,IAAI,wBAAwBC,IAAI,CAACD,MAAME,OAAO,GAAG;gBAC/C,MAAM,IAAIP,MACR;YAEJ;YACA,oCAAoC;YACpC,MAAMK;QACR;QACA,OAAQJ,gBAAgBE,kBAAkBK,kBAAkB,CAACT;IAC/D;IAEA,MAAMU,6BAA6B;QACjCP,mBAAmBQ,iBAAiB,CAAC;YAAEC,QAAQ;QAAO;IACxD;IAEA,OAAO,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAE;QAC5B,OAAO;YACLC,MAAM;YACNC,aAAaxB,eAAe;gBAAEM;gBAASE;YAAc;YACrDiB,cAAcxB,gBAAgB;gBAAEoB;gBAAYV;YAAiB;YAC7De,cAAcxB,gBAAgB;gBAC5BmB;gBACAV;gBACAW;YACF;YACAK,eAAexB,WAAW;gBAAEkB;gBAAYV;YAAiB;YACzD,GAAIN,wBAAwB;gBAAEuB,QAAQV;YAA2B,CAAC;QACpE;IACF;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/gcs/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3D,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,gBAAgB,CAAA;AAO/D,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,cAAc,CAAA;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,6BACM,IAAI,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/gcs/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3D,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,gBAAgB,CAAA;AAO/D,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,cAAc,CAAA;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,6BACM,IAAI,KAAG,OAyCjC,CAAA"}
|
|
@@ -13,7 +13,9 @@ import { getHandler } from './staticHandler.js';
|
|
|
13
13
|
}
|
|
14
14
|
let storageClient = null;
|
|
15
15
|
const getStorageClient = ()=>{
|
|
16
|
-
if (storageClient)
|
|
16
|
+
if (storageClient) {
|
|
17
|
+
return storageClient;
|
|
18
|
+
}
|
|
17
19
|
try {
|
|
18
20
|
storageClient = new Storage(options);
|
|
19
21
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/gcs/index.ts"],"sourcesContent":["import type { StorageOptions } from '@google-cloud/storage'\n\nimport { Storage } from '@google-cloud/storage'\n\nimport type { Adapter, GeneratedAdapter } from '../../types.js'\n\nimport { getGenerateURL } from './generateURL.js'\nimport { getHandleDelete } from './handleDelete.js'\nimport { getHandleUpload } from './handleUpload.js'\nimport { getHandler } from './staticHandler.js'\n\nexport interface Args {\n acl?: 'Private' | 'Public'\n bucket: string\n options: StorageOptions\n}\n\n/**\n * @deprecated Use [`@payloadcms/storage-gcs`](https://www.npmjs.com/package/@payloadcms/storage-gcs) instead.\n *\n * This adapter has been superceded by `@payloadcms/storage-gcs` and will be removed in Payload 3.0.\n */\nexport const gcsAdapter =\n ({ acl, bucket, options }: Args): Adapter =>\n ({ collection, prefix }): GeneratedAdapter => {\n if (!Storage) {\n throw new Error(\n 'The package @google-cloud/storage is not installed, but is required for the plugin-cloud-storage GCS adapter. Please install it.',\n )\n }\n\n let storageClient:
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/gcs/index.ts"],"sourcesContent":["import type { StorageOptions } from '@google-cloud/storage'\n\nimport { Storage } from '@google-cloud/storage'\n\nimport type { Adapter, GeneratedAdapter } from '../../types.js'\n\nimport { getGenerateURL } from './generateURL.js'\nimport { getHandleDelete } from './handleDelete.js'\nimport { getHandleUpload } from './handleUpload.js'\nimport { getHandler } from './staticHandler.js'\n\nexport interface Args {\n acl?: 'Private' | 'Public'\n bucket: string\n options: StorageOptions\n}\n\n/**\n * @deprecated Use [`@payloadcms/storage-gcs`](https://www.npmjs.com/package/@payloadcms/storage-gcs) instead.\n *\n * This adapter has been superceded by `@payloadcms/storage-gcs` and will be removed in Payload 3.0.\n */\nexport const gcsAdapter =\n ({ acl, bucket, options }: Args): Adapter =>\n ({ collection, prefix }): GeneratedAdapter => {\n if (!Storage) {\n throw new Error(\n 'The package @google-cloud/storage is not installed, but is required for the plugin-cloud-storage GCS adapter. Please install it.',\n )\n }\n\n let storageClient: null | Storage = null\n\n const getStorageClient = (): Storage => {\n if (storageClient) {\n return storageClient\n }\n try {\n storageClient = new Storage(options)\n } catch (error) {\n if (/is not a constructor$/.test(error.message)) {\n throw new Error(\n 'The package @google-cloud/storage is not installed, but is required for the plugin-cloud-storage GCS adapter. Please install it.',\n )\n }\n // Re-throw other unexpected errors.\n throw error\n }\n return storageClient\n }\n\n return {\n name: 'gcs',\n generateURL: getGenerateURL({ bucket, getStorageClient }),\n handleDelete: getHandleDelete({ bucket, getStorageClient }),\n handleUpload: getHandleUpload({\n acl,\n bucket,\n collection,\n getStorageClient,\n prefix,\n }),\n staticHandler: getHandler({ bucket, collection, getStorageClient }),\n }\n }\n"],"names":["Storage","getGenerateURL","getHandleDelete","getHandleUpload","getHandler","gcsAdapter","acl","bucket","options","collection","prefix","Error","storageClient","getStorageClient","error","test","message","name","generateURL","handleDelete","handleUpload","staticHandler"],"mappings":"AAEA,SAASA,OAAO,QAAQ,wBAAuB;AAI/C,SAASC,cAAc,QAAQ,mBAAkB;AACjD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,UAAU,QAAQ,qBAAoB;AAQ/C;;;;CAIC,GACD,OAAO,MAAMC,aACX,CAAC,EAAEC,GAAG,EAAEC,MAAM,EAAEC,OAAO,EAAQ,GAC/B,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAE;QACrB,IAAI,CAACV,SAAS;YACZ,MAAM,IAAIW,MACR;QAEJ;QAEA,IAAIC,gBAAgC;QAEpC,MAAMC,mBAAmB;YACvB,IAAID,eAAe;gBACjB,OAAOA;YACT;YACA,IAAI;gBACFA,gBAAgB,IAAIZ,QAAQQ;YAC9B,EAAE,OAAOM,OAAO;gBACd,IAAI,wBAAwBC,IAAI,CAACD,MAAME,OAAO,GAAG;oBAC/C,MAAM,IAAIL,MACR;gBAEJ;gBACA,oCAAoC;gBACpC,MAAMG;YACR;YACA,OAAOF;QACT;QAEA,OAAO;YACLK,MAAM;YACNC,aAAajB,eAAe;gBAAEM;gBAAQM;YAAiB;YACvDM,cAAcjB,gBAAgB;gBAAEK;gBAAQM;YAAiB;YACzDO,cAAcjB,gBAAgB;gBAC5BG;gBACAC;gBACAE;gBACAI;gBACAH;YACF;YACAW,eAAejB,WAAW;gBAAEG;gBAAQE;gBAAYI;YAAiB;QACnE;IACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,gBAAgB,CAAA;AAO/D,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,CAAA;IAC/B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,MAAM,EAAE,GAAG,CAAC,cAAc,CAAA;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,4BACW,IAAI,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/s3/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAA;AAEzC,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,gBAAgB,CAAA;AAO/D,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,CAAA;IAC/B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,MAAM,EAAE,GAAG,CAAC,cAAc,CAAA;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,4BACW,IAAI,KAAG,OAuCrC,CAAA"}
|
|
@@ -13,7 +13,9 @@ import { getHandler } from './staticHandler.js';
|
|
|
13
13
|
}
|
|
14
14
|
let storageClient = null;
|
|
15
15
|
const getStorageClient = ()=>{
|
|
16
|
-
if (storageClient)
|
|
16
|
+
if (storageClient) {
|
|
17
|
+
return storageClient;
|
|
18
|
+
}
|
|
17
19
|
try {
|
|
18
20
|
storageClient = new AWS.S3(config);
|
|
19
21
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/s3/index.ts"],"sourcesContent":["import * as AWS from '@aws-sdk/client-s3'\n\nimport type { Adapter, GeneratedAdapter } from '../../types.js'\n\nimport { getGenerateURL } from './generateURL.js'\nimport { getHandleDelete } from './handleDelete.js'\nimport { getHandleUpload } from './handleUpload.js'\nimport { getHandler } from './staticHandler.js'\n\nexport interface Args {\n acl?: 'private' | 'public-read'\n /**\n * Bucket name to upload files to.\n *\n * Must follow [AWS S3 bucket naming conventions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).\n */\n bucket: string\n /**\n * AWS S3 client configuration. Highly dependent on your AWS setup.\n *\n * [AWS.S3ClientConfig Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/interfaces/s3clientconfig.html)\n */\n config: AWS.S3ClientConfig\n}\n\n/**\n * @deprecated Use [`@payloadcms/storage-s3`](https://www.npmjs.com/package/@payloadcms/storage-s3) instead.\n *\n * This adapter has been superceded by `@payloadcms/storage-s3` and will be removed in Payload 3.0.\n */\nexport const s3Adapter =\n ({ acl, bucket, config = {} }: Args): Adapter =>\n ({ collection, prefix }): GeneratedAdapter => {\n if (!AWS) {\n throw new Error(\n 'The packages @aws-sdk/client-s3, @aws-sdk/lib-storage and aws-crt are not installed, but are required for the plugin-cloud-storage S3 adapter. Please install them.',\n )\n }\n let storageClient: AWS.S3 | null = null\n const getStorageClient: () => AWS.S3 = () => {\n if (storageClient) return storageClient\n try {\n storageClient = new AWS.S3(config)\n } catch (error) {\n if (/is not a constructor$/.test(error.message)) {\n throw new Error(\n 'The packages @aws-sdk/client-s3, @aws-sdk/lib-storage and aws-crt are not installed, but are required for the plugin-cloud-storage S3 adapter. Please install them.',\n )\n }\n // Re-throw other unexpected errors.\n throw error\n }\n return storageClient\n }\n\n return {\n name: 's3',\n generateURL: getGenerateURL({ bucket, config }),\n handleDelete: getHandleDelete({ bucket, getStorageClient }),\n handleUpload: getHandleUpload({\n acl,\n bucket,\n collection,\n getStorageClient,\n prefix,\n }),\n staticHandler: getHandler({ bucket, collection, getStorageClient }),\n }\n }\n"],"names":["AWS","getGenerateURL","getHandleDelete","getHandleUpload","getHandler","s3Adapter","acl","bucket","config","collection","prefix","Error","storageClient","getStorageClient","S3","error","test","message","name","generateURL","handleDelete","handleUpload","staticHandler"],"mappings":"AAAA,YAAYA,SAAS,qBAAoB;AAIzC,SAASC,cAAc,QAAQ,mBAAkB;AACjD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,UAAU,QAAQ,qBAAoB;AAkB/C;;;;CAIC,GACD,OAAO,MAAMC,YACX,CAAC,EAAEC,GAAG,EAAEC,MAAM,EAAEC,SAAS,CAAC,CAAC,EAAQ,GACnC,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAE;QACrB,IAAI,CAACV,KAAK;YACR,MAAM,IAAIW,MACR;QAEJ;QACA,IAAIC,gBAA+B;QACnC,MAAMC,mBAAiC;YACrC,IAAID,eAAe,OAAOA;
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/s3/index.ts"],"sourcesContent":["import * as AWS from '@aws-sdk/client-s3'\n\nimport type { Adapter, GeneratedAdapter } from '../../types.js'\n\nimport { getGenerateURL } from './generateURL.js'\nimport { getHandleDelete } from './handleDelete.js'\nimport { getHandleUpload } from './handleUpload.js'\nimport { getHandler } from './staticHandler.js'\n\nexport interface Args {\n acl?: 'private' | 'public-read'\n /**\n * Bucket name to upload files to.\n *\n * Must follow [AWS S3 bucket naming conventions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).\n */\n bucket: string\n /**\n * AWS S3 client configuration. Highly dependent on your AWS setup.\n *\n * [AWS.S3ClientConfig Docs](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/interfaces/s3clientconfig.html)\n */\n config: AWS.S3ClientConfig\n}\n\n/**\n * @deprecated Use [`@payloadcms/storage-s3`](https://www.npmjs.com/package/@payloadcms/storage-s3) instead.\n *\n * This adapter has been superceded by `@payloadcms/storage-s3` and will be removed in Payload 3.0.\n */\nexport const s3Adapter =\n ({ acl, bucket, config = {} }: Args): Adapter =>\n ({ collection, prefix }): GeneratedAdapter => {\n if (!AWS) {\n throw new Error(\n 'The packages @aws-sdk/client-s3, @aws-sdk/lib-storage and aws-crt are not installed, but are required for the plugin-cloud-storage S3 adapter. Please install them.',\n )\n }\n let storageClient: AWS.S3 | null = null\n const getStorageClient: () => AWS.S3 = () => {\n if (storageClient) {\n return storageClient\n }\n try {\n storageClient = new AWS.S3(config)\n } catch (error) {\n if (/is not a constructor$/.test(error.message)) {\n throw new Error(\n 'The packages @aws-sdk/client-s3, @aws-sdk/lib-storage and aws-crt are not installed, but are required for the plugin-cloud-storage S3 adapter. Please install them.',\n )\n }\n // Re-throw other unexpected errors.\n throw error\n }\n return storageClient\n }\n\n return {\n name: 's3',\n generateURL: getGenerateURL({ bucket, config }),\n handleDelete: getHandleDelete({ bucket, getStorageClient }),\n handleUpload: getHandleUpload({\n acl,\n bucket,\n collection,\n getStorageClient,\n prefix,\n }),\n staticHandler: getHandler({ bucket, collection, getStorageClient }),\n }\n }\n"],"names":["AWS","getGenerateURL","getHandleDelete","getHandleUpload","getHandler","s3Adapter","acl","bucket","config","collection","prefix","Error","storageClient","getStorageClient","S3","error","test","message","name","generateURL","handleDelete","handleUpload","staticHandler"],"mappings":"AAAA,YAAYA,SAAS,qBAAoB;AAIzC,SAASC,cAAc,QAAQ,mBAAkB;AACjD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,UAAU,QAAQ,qBAAoB;AAkB/C;;;;CAIC,GACD,OAAO,MAAMC,YACX,CAAC,EAAEC,GAAG,EAAEC,MAAM,EAAEC,SAAS,CAAC,CAAC,EAAQ,GACnC,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAE;QACrB,IAAI,CAACV,KAAK;YACR,MAAM,IAAIW,MACR;QAEJ;QACA,IAAIC,gBAA+B;QACnC,MAAMC,mBAAiC;YACrC,IAAID,eAAe;gBACjB,OAAOA;YACT;YACA,IAAI;gBACFA,gBAAgB,IAAIZ,IAAIc,EAAE,CAACN;YAC7B,EAAE,OAAOO,OAAO;gBACd,IAAI,wBAAwBC,IAAI,CAACD,MAAME,OAAO,GAAG;oBAC/C,MAAM,IAAIN,MACR;gBAEJ;gBACA,oCAAoC;gBACpC,MAAMI;YACR;YACA,OAAOH;QACT;QAEA,OAAO;YACLM,MAAM;YACNC,aAAalB,eAAe;gBAAEM;gBAAQC;YAAO;YAC7CY,cAAclB,gBAAgB;gBAAEK;gBAAQM;YAAiB;YACzDQ,cAAclB,gBAAgB;gBAC5BG;gBACAC;gBACAE;gBACAI;gBACAH;YACF;YACAY,eAAelB,WAAW;gBAAEG;gBAAQE;gBAAYI;YAAiB;QACnE;IACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateURL.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/generateURL.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateURL.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/generateURL.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,cAAc,gBAAiB,eAAe,KAAG,WAI7D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/vercelBlob/generateURL.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/vercelBlob/generateURL.ts"],"sourcesContent":["import path from 'path'\n\nimport type { GenerateURL } from '../../types.js'\n\ntype GenerateUrlArgs = {\n baseUrl: string\n prefix?: string\n}\n\nexport const getGenerateUrl = ({ baseUrl }: GenerateUrlArgs): GenerateURL => {\n return ({ filename, prefix = '' }) => {\n return `${baseUrl}/${path.posix.join(prefix, filename)}`\n }\n}\n"],"names":["path","getGenerateUrl","baseUrl","filename","prefix","posix","join"],"mappings":"AAAA,OAAOA,UAAU,OAAM;AASvB,OAAO,MAAMC,iBAAiB,CAAC,EAAEC,OAAO,EAAmB;IACzD,OAAO,CAAC,EAAEC,QAAQ,EAAEC,SAAS,EAAE,EAAE;QAC/B,OAAO,CAAC,EAAEF,QAAQ,CAAC,EAAEF,KAAKK,KAAK,CAACC,IAAI,CAACF,QAAQD,UAAU,CAAC;IAC1D;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleDelete.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/handleDelete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handleDelete.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/handleDelete.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,eAAe,uBAAwB,gBAAgB,KAAG,YAOtE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/vercelBlob/handleDelete.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/vercelBlob/handleDelete.ts"],"sourcesContent":["import { del } from '@vercel/blob'\nimport path from 'path'\n\nimport type { HandleDelete } from '../../types.js'\n\ntype HandleDeleteArgs = {\n baseUrl: string\n prefix?: string\n token: string\n}\n\nexport const getHandleDelete = ({ baseUrl, token }: HandleDeleteArgs): HandleDelete => {\n return async ({ doc: { prefix = '' }, filename }) => {\n const fileUrl = `${baseUrl}/${path.posix.join(prefix, filename)}`\n const deletedBlob = await del(fileUrl, { token })\n\n return deletedBlob\n }\n}\n"],"names":["del","path","getHandleDelete","baseUrl","token","doc","prefix","filename","fileUrl","posix","join","deletedBlob"],"mappings":"AAAA,SAASA,GAAG,QAAQ,eAAc;AAClC,OAAOC,UAAU,OAAM;AAUvB,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,OAAO,EAAEC,KAAK,EAAoB;IAClE,OAAO,OAAO,EAAEC,KAAK,EAAEC,SAAS,EAAE,EAAE,EAAEC,QAAQ,EAAE;QAC9C,MAAMC,UAAU,CAAC,EAAEL,QAAQ,CAAC,EAAEF,KAAKQ,KAAK,CAACC,IAAI,CAACJ,QAAQC,UAAU,CAAC;QACjE,MAAMI,cAAc,MAAMX,IAAIQ,SAAS;YAAEJ;QAAM;QAE/C,OAAOO;IACT;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleUpload.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/handleUpload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handleUpload.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/handleUpload.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAA;AAEhE,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,8BAA8B,CAAA;AAElC,eAAO,MAAM,eAAe,6EAOzB,gBAAgB,KAAG,YAmBrB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/vercelBlob/handleUpload.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/vercelBlob/handleUpload.ts"],"sourcesContent":["import { put } from '@vercel/blob'\nimport path from 'path'\n\nimport type { HandleUpload } from '../../types.js'\nimport type { VercelBlobAdapterUploadOptions } from './index.js'\n\ntype HandleUploadArgs = {\n baseUrl: string\n prefix?: string\n token: string\n} & VercelBlobAdapterUploadOptions\n\nexport const getHandleUpload = ({\n access = 'public',\n addRandomSuffix,\n baseUrl,\n cacheControlMaxAge,\n prefix = '',\n token,\n}: HandleUploadArgs): HandleUpload => {\n return async ({ data, file: { buffer, filename, mimeType } }) => {\n const fileKey = path.posix.join(data.prefix || prefix, filename)\n\n const result = await put(fileKey, buffer, {\n access,\n addRandomSuffix,\n cacheControlMaxAge,\n contentType: mimeType,\n token,\n })\n\n // Get filename with suffix from returned url\n if (addRandomSuffix) {\n data.filename = result.url.replace(`${baseUrl}/`, '')\n }\n\n return data\n }\n}\n"],"names":["put","path","getHandleUpload","access","addRandomSuffix","baseUrl","cacheControlMaxAge","prefix","token","data","file","buffer","filename","mimeType","fileKey","posix","join","result","contentType","url","replace"],"mappings":"AAAA,SAASA,GAAG,QAAQ,eAAc;AAClC,OAAOC,UAAU,OAAM;AAWvB,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,SAAS,QAAQ,EACjBC,eAAe,EACfC,OAAO,EACPC,kBAAkB,EAClBC,SAAS,EAAE,EACXC,KAAK,EACY;IACjB,OAAO,OAAO,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,EAAE;QAC1D,MAAMC,UAAUb,KAAKc,KAAK,CAACC,IAAI,CAACP,KAAKF,MAAM,IAAIA,QAAQK;QAEvD,MAAMK,SAAS,MAAMjB,IAAIc,SAASH,QAAQ;YACxCR;YACAC;YACAE;YACAY,aAAaL;YACbL;QACF;QAEA,6CAA6C;QAC7C,IAAIJ,iBAAiB;YACnBK,KAAKG,QAAQ,GAAGK,OAAOE,GAAG,CAACC,OAAO,CAAC,CAAC,EAAEf,QAAQ,CAAC,CAAC,EAAE;QACpD;QAEA,OAAOI;IACT;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAoB,MAAM,gBAAgB,CAAA;AAO/D,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,8BAA8B,CAAA;IAExC;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAQD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,uBACF,qBAAqB,KAAG,OAoCjD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/vercelBlob/index.ts"],"sourcesContent":["import type { Adapter, GeneratedAdapter } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/vercelBlob/index.ts"],"sourcesContent":["import type { Adapter, GeneratedAdapter } from '../../types.js'\n\nimport { getGenerateUrl } from './generateURL.js'\nimport { getHandleDelete } from './handleDelete.js'\nimport { getHandleUpload } from './handleUpload.js'\nimport { getStaticHandler } from './staticHandler.js'\n\nexport interface VercelBlobAdapterArgs {\n options?: VercelBlobAdapterUploadOptions\n\n /**\n * Vercel Blob storage read/write token\n *\n * Usually process.env.BLOB_READ_WRITE_TOKEN set by Vercel\n */\n token: string\n}\n\nexport interface VercelBlobAdapterUploadOptions {\n /**\n * Access control level\n *\n * @default 'public'\n */\n access?: 'public'\n /**\n * Add a random suffix to the uploaded file name\n *\n * @default false\n */\n addRandomSuffix?: boolean\n /**\n * Cache-Control max-age in seconds\n *\n * @default 31536000 (1 year)\n */\n cacheControlMaxAge?: number\n}\n\nconst defaultUploadOptions: VercelBlobAdapterUploadOptions = {\n access: 'public',\n addRandomSuffix: false,\n cacheControlMaxAge: 60 * 60 * 24 * 365, // 1 year\n}\n\n/**\n * @deprecated Use [`@payloadcms/storage-vercel-blob`](https://www.npmjs.com/package/@payloadcms/storage-vercel-blob) instead.\n *\n * This adapter has been superceded by `@payloadcms/storage-vercel-blob` and will be removed in Payload 3.0.\n */\nexport const vercelBlobAdapter =\n ({ options = {}, token }: VercelBlobAdapterArgs): Adapter =>\n ({ collection, prefix }): GeneratedAdapter => {\n if (!token) {\n throw new Error('The token argument is required for the Vercel Blob adapter.')\n }\n\n // Parse storeId from token\n const storeId = token.match(/^vercel_blob_rw_([a-z\\d]+)_[a-z\\d]+$/i)?.[1].toLowerCase()\n\n if (!storeId) {\n throw new Error(\n 'Invalid token format for Vercel Blob adapter. Should be vercel_blob_rw_<store_id>_<random_string>.',\n )\n }\n\n const { access, addRandomSuffix, cacheControlMaxAge } = {\n ...defaultUploadOptions,\n ...options,\n }\n\n const baseUrl = `https://${storeId}.${access}.blob.vercel-storage.com`\n\n return {\n name: 'vercel-blob',\n generateURL: getGenerateUrl({ baseUrl, prefix }),\n handleDelete: getHandleDelete({ baseUrl, prefix, token }),\n handleUpload: getHandleUpload({\n access,\n addRandomSuffix,\n baseUrl,\n cacheControlMaxAge,\n prefix,\n token,\n }),\n staticHandler: getStaticHandler({ baseUrl, token }, collection),\n }\n }\n"],"names":["getGenerateUrl","getHandleDelete","getHandleUpload","getStaticHandler","defaultUploadOptions","access","addRandomSuffix","cacheControlMaxAge","vercelBlobAdapter","options","token","collection","prefix","Error","storeId","match","toLowerCase","baseUrl","name","generateURL","handleDelete","handleUpload","staticHandler"],"mappings":"AAEA,SAASA,cAAc,QAAQ,mBAAkB;AACjD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,eAAe,QAAQ,oBAAmB;AACnD,SAASC,gBAAgB,QAAQ,qBAAoB;AAkCrD,MAAMC,uBAAuD;IAC3DC,QAAQ;IACRC,iBAAiB;IACjBC,oBAAoB,KAAK,KAAK,KAAK;AACrC;AAEA;;;;CAIC,GACD,OAAO,MAAMC,oBACX,CAAC,EAAEC,UAAU,CAAC,CAAC,EAAEC,KAAK,EAAyB,GAC/C,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAE;QACrB,IAAI,CAACF,OAAO;YACV,MAAM,IAAIG,MAAM;QAClB;QAEA,2BAA2B;QAC3B,MAAMC,UAAUJ,MAAMK,KAAK,CAAC,0CAA0C,CAAC,EAAE,CAACC;QAE1E,IAAI,CAACF,SAAS;YACZ,MAAM,IAAID,MACR;QAEJ;QAEA,MAAM,EAAER,MAAM,EAAEC,eAAe,EAAEC,kBAAkB,EAAE,GAAG;YACtD,GAAGH,oBAAoB;YACvB,GAAGK,OAAO;QACZ;QAEA,MAAMQ,UAAU,CAAC,QAAQ,EAAEH,QAAQ,CAAC,EAAET,OAAO,wBAAwB,CAAC;QAEtE,OAAO;YACLa,MAAM;YACNC,aAAanB,eAAe;gBAAEiB;gBAASL;YAAO;YAC9CQ,cAAcnB,gBAAgB;gBAAEgB;gBAASL;gBAAQF;YAAM;YACvDW,cAAcnB,gBAAgB;gBAC5BG;gBACAC;gBACAW;gBACAV;gBACAK;gBACAF;YACF;YACAY,eAAenB,iBAAiB;gBAAEc;gBAASP;YAAM,GAAGC;QACtD;IACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staticHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/staticHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"staticHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/vercelBlob/staticHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAInD,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,gBAAgB,uBACP,iBAAiB,cACzB,gBAAgB,KAC3B,aAmCF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapters/vercelBlob/staticHandler.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/adapters/vercelBlob/staticHandler.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nimport { head } from '@vercel/blob'\nimport path from 'path'\n\nimport type { StaticHandler } from '../../types.js'\n\nimport { getFilePrefix } from '../../utilities/getFilePrefix.js'\n\ntype StaticHandlerArgs = {\n baseUrl: string\n token: string\n}\n\nexport const getStaticHandler = (\n { baseUrl, token }: StaticHandlerArgs,\n collection: CollectionConfig,\n): StaticHandler => {\n return async (req, { params: { filename } }) => {\n try {\n const prefix = await getFilePrefix({ collection, filename, req })\n\n const fileUrl = `${baseUrl}/${path.posix.join(prefix, filename)}`\n\n const blobMetadata = await head(fileUrl, { token })\n if (!blobMetadata) {\n return new Response(null, { status: 404, statusText: 'Not Found' })\n }\n\n const { contentDisposition, contentType, size } = blobMetadata\n const response = await fetch(fileUrl)\n const blob = await response.blob()\n\n if (!blob) {\n return new Response(null, { status: 204, statusText: 'No Content' })\n }\n\n const bodyBuffer = await blob.arrayBuffer()\n\n return new Response(bodyBuffer, {\n headers: new Headers({\n 'Content-Disposition': contentDisposition,\n 'Content-Length': String(size),\n 'Content-Type': contentType,\n }),\n status: 200,\n })\n } catch (err: unknown) {\n req.payload.logger.error({ err, msg: 'Unexpected error in staticHandler' })\n return new Response('Internal Server Error', { status: 500 })\n }\n }\n}\n"],"names":["head","path","getFilePrefix","getStaticHandler","baseUrl","token","collection","req","params","filename","prefix","fileUrl","posix","join","blobMetadata","Response","status","statusText","contentDisposition","contentType","size","response","fetch","blob","bodyBuffer","arrayBuffer","headers","Headers","String","err","payload","logger","error","msg"],"mappings":"AAEA,SAASA,IAAI,QAAQ,eAAc;AACnC,OAAOC,UAAU,OAAM;AAIvB,SAASC,aAAa,QAAQ,mCAAkC;AAOhE,OAAO,MAAMC,mBAAmB,CAC9B,EAAEC,OAAO,EAAEC,KAAK,EAAqB,EACrCC;IAEA,OAAO,OAAOC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,EAAE;QACzC,IAAI;YACF,MAAMC,SAAS,MAAMR,cAAc;gBAAEI;gBAAYG;gBAAUF;YAAI;YAE/D,MAAMI,UAAU,CAAC,EAAEP,QAAQ,CAAC,EAAEH,KAAKW,KAAK,CAACC,IAAI,CAACH,QAAQD,UAAU,CAAC;YAEjE,MAAMK,eAAe,MAAMd,KAAKW,SAAS;gBAAEN;YAAM;YACjD,IAAI,CAACS,cAAc;gBACjB,OAAO,IAAIC,SAAS,MAAM;oBAAEC,QAAQ;oBAAKC,YAAY;gBAAY;YACnE;YAEA,MAAM,EAAEC,kBAAkB,EAAEC,WAAW,EAAEC,IAAI,EAAE,GAAGN;YAClD,MAAMO,WAAW,MAAMC,MAAMX;YAC7B,MAAMY,OAAO,MAAMF,SAASE,IAAI;YAEhC,IAAI,CAACA,MAAM;gBACT,OAAO,IAAIR,SAAS,MAAM;oBAAEC,QAAQ;oBAAKC,YAAY;gBAAa;YACpE;YAEA,MAAMO,aAAa,MAAMD,KAAKE,WAAW;YAEzC,OAAO,IAAIV,SAASS,YAAY;gBAC9BE,SAAS,IAAIC,QAAQ;oBACnB,uBAAuBT;oBACvB,kBAAkBU,OAAOR;oBACzB,gBAAgBD;gBAClB;gBACAH,QAAQ;YACV;QACF,EAAE,OAAOa,KAAc;YACrBtB,IAAIuB,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC;gBAAEH;gBAAKI,KAAK;YAAoC;YACzE,OAAO,IAAIlB,SAAS,yBAAyB;gBAAEC,QAAQ;YAAI;QAC7D;IACF;AACF,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/admin/fields/getFields.ts"],"sourcesContent":["import type { CollectionConfig, Field, GroupField, TextField } from 'payload'\n\nimport path from 'path'\n\ninterface Args {\n collection: CollectionConfig\n prefix?: string\n}\n\nexport const getFields = ({ collection, prefix }: Args): Field[] => {\n const baseURLField:
|
|
1
|
+
{"version":3,"sources":["../../../src/admin/fields/getFields.ts"],"sourcesContent":["import type { CollectionConfig, Field, GroupField, TextField } from 'payload'\n\nimport path from 'path'\n\ninterface Args {\n collection: CollectionConfig\n prefix?: string\n}\n\nexport const getFields = ({ collection, prefix }: Args): Field[] => {\n const baseURLField: TextField = {\n name: 'url',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: 'URL',\n }\n\n const basePrefixField: TextField = {\n name: 'prefix',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n }\n\n const fields = [...collection.fields]\n\n // Inject a hook into all URL fields to generate URLs\n\n let existingURLFieldIndex = -1\n\n const existingURLField = fields.find((existingField, i) => {\n if ('name' in existingField && existingField.name === 'url') {\n existingURLFieldIndex = i\n return true\n }\n return false\n }) as TextField\n\n if (existingURLFieldIndex > -1) {\n fields.splice(existingURLFieldIndex, 1)\n }\n\n fields.push({\n ...baseURLField,\n ...(existingURLField || {}),\n } as TextField)\n\n if (typeof collection.upload === 'object' && collection.upload.imageSizes) {\n let existingSizesFieldIndex = -1\n\n const existingSizesField = fields.find((existingField, i) => {\n if ('name' in existingField && existingField.name === 'sizes') {\n existingSizesFieldIndex = i\n return true\n }\n\n return false\n }) as GroupField\n\n if (existingSizesFieldIndex > -1) {\n fields.splice(existingSizesFieldIndex, 1)\n }\n\n const sizesField: Field = {\n ...(existingSizesField || {}),\n name: 'sizes',\n type: 'group',\n admin: {\n hidden: true,\n },\n fields: collection.upload.imageSizes.map((size) => {\n const existingSizeField = existingSizesField?.fields.find(\n (existingField) => 'name' in existingField && existingField.name === size.name,\n ) as GroupField\n\n const existingSizeURLField = existingSizeField?.fields.find(\n (existingField) => 'name' in existingField && existingField.name === 'url',\n ) as GroupField\n\n return {\n ...existingSizeField,\n name: size.name,\n type: 'group',\n fields: [\n {\n ...(existingSizeURLField || ({} as any)),\n ...baseURLField,\n },\n ],\n }\n }),\n }\n\n fields.push(sizesField)\n }\n\n // If prefix is enabled, save it to db\n if (typeof prefix !== 'undefined') {\n let existingPrefixFieldIndex = -1\n\n const existingPrefixField = fields.find((existingField, i) => {\n if ('name' in existingField && existingField.name === 'prefix') {\n existingPrefixFieldIndex = i\n return true\n }\n return false\n }) as TextField\n\n if (existingPrefixFieldIndex > -1) {\n fields.splice(existingPrefixFieldIndex, 1)\n }\n\n fields.push({\n ...basePrefixField,\n ...(existingPrefixField || {}),\n defaultValue: path.posix.join(prefix),\n } as TextField)\n }\n\n return fields\n}\n"],"names":["path","getFields","collection","prefix","baseURLField","name","type","admin","hidden","readOnly","label","basePrefixField","fields","existingURLFieldIndex","existingURLField","find","existingField","i","splice","push","upload","imageSizes","existingSizesFieldIndex","existingSizesField","sizesField","map","size","existingSizeField","existingSizeURLField","existingPrefixFieldIndex","existingPrefixField","defaultValue","posix","join"],"mappings":"AAEA,OAAOA,UAAU,OAAM;AAOvB,OAAO,MAAMC,YAAY,CAAC,EAAEC,UAAU,EAAEC,MAAM,EAAQ;IACpD,MAAMC,eAA0B;QAC9BC,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO;IACT;IAEA,MAAMC,kBAA6B;QACjCN,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;IACF;IAEA,MAAMG,SAAS;WAAIV,WAAWU,MAAM;KAAC;IAErC,qDAAqD;IAErD,IAAIC,wBAAwB,CAAC;IAE7B,MAAMC,mBAAmBF,OAAOG,IAAI,CAAC,CAACC,eAAeC;QACnD,IAAI,UAAUD,iBAAiBA,cAAcX,IAAI,KAAK,OAAO;YAC3DQ,wBAAwBI;YACxB,OAAO;QACT;QACA,OAAO;IACT;IAEA,IAAIJ,wBAAwB,CAAC,GAAG;QAC9BD,OAAOM,MAAM,CAACL,uBAAuB;IACvC;IAEAD,OAAOO,IAAI,CAAC;QACV,GAAGf,YAAY;QACf,GAAIU,oBAAoB,CAAC,CAAC;IAC5B;IAEA,IAAI,OAAOZ,WAAWkB,MAAM,KAAK,YAAYlB,WAAWkB,MAAM,CAACC,UAAU,EAAE;QACzE,IAAIC,0BAA0B,CAAC;QAE/B,MAAMC,qBAAqBX,OAAOG,IAAI,CAAC,CAACC,eAAeC;YACrD,IAAI,UAAUD,iBAAiBA,cAAcX,IAAI,KAAK,SAAS;gBAC7DiB,0BAA0BL;gBAC1B,OAAO;YACT;YAEA,OAAO;QACT;QAEA,IAAIK,0BAA0B,CAAC,GAAG;YAChCV,OAAOM,MAAM,CAACI,yBAAyB;QACzC;QAEA,MAAME,aAAoB;YACxB,GAAID,sBAAsB,CAAC,CAAC;YAC5BlB,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLC,QAAQ;YACV;YACAI,QAAQV,WAAWkB,MAAM,CAACC,UAAU,CAACI,GAAG,CAAC,CAACC;gBACxC,MAAMC,oBAAoBJ,oBAAoBX,OAAOG,KACnD,CAACC,gBAAkB,UAAUA,iBAAiBA,cAAcX,IAAI,KAAKqB,KAAKrB,IAAI;gBAGhF,MAAMuB,uBAAuBD,mBAAmBf,OAAOG,KACrD,CAACC,gBAAkB,UAAUA,iBAAiBA,cAAcX,IAAI,KAAK;gBAGvE,OAAO;oBACL,GAAGsB,iBAAiB;oBACpBtB,MAAMqB,KAAKrB,IAAI;oBACfC,MAAM;oBACNM,QAAQ;wBACN;4BACE,GAAIgB,wBAAyB,CAAC,CAAS;4BACvC,GAAGxB,YAAY;wBACjB;qBACD;gBACH;YACF;QACF;QAEAQ,OAAOO,IAAI,CAACK;IACd;IAEA,sCAAsC;IACtC,IAAI,OAAOrB,WAAW,aAAa;QACjC,IAAI0B,2BAA2B,CAAC;QAEhC,MAAMC,sBAAsBlB,OAAOG,IAAI,CAAC,CAACC,eAAeC;YACtD,IAAI,UAAUD,iBAAiBA,cAAcX,IAAI,KAAK,UAAU;gBAC9DwB,2BAA2BZ;gBAC3B,OAAO;YACT;YACA,OAAO;QACT;QAEA,IAAIY,2BAA2B,CAAC,GAAG;YACjCjB,OAAOM,MAAM,CAACW,0BAA0B;QAC1C;QAEAjB,OAAOO,IAAI,CAAC;YACV,GAAGR,eAAe;YAClB,GAAImB,uBAAuB,CAAC,CAAC;YAC7BC,cAAc/B,KAAKgC,KAAK,CAACC,IAAI,CAAC9B;QAChC;IACF;IAEA,OAAOS;AACT,EAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CollectionConfig, Field } from 'payload';
|
|
2
|
-
import type {
|
|
2
|
+
import type { GeneratedAdapter, GenerateFileURL } from '../types.js';
|
|
3
3
|
interface Args {
|
|
4
4
|
adapter: GeneratedAdapter;
|
|
5
5
|
collection: CollectionConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFields.d.ts","sourceRoot":"","sources":["../../src/fields/getFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAyB,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"getFields.d.ts","sourceRoot":"","sources":["../../src/fields/getFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAyB,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAIpE,UAAU,IAAI;IACZ,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,2BAA2B,CAAC,EAAE,IAAI,CAAA;IAClC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,SAAS,mFAMnB,IAAI,KAAG,KAAK,EAuId,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fields/getFields.ts"],"sourcesContent":["import type { CollectionConfig, Field, GroupField, TextField } from 'payload'\n\nimport path from 'path'\n\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../src/fields/getFields.ts"],"sourcesContent":["import type { CollectionConfig, Field, GroupField, TextField } from 'payload'\n\nimport path from 'path'\n\nimport type { GeneratedAdapter, GenerateFileURL } from '../types.js'\n\nimport { getAfterReadHook } from '../hooks/afterRead.js'\n\ninterface Args {\n adapter: GeneratedAdapter\n collection: CollectionConfig\n disablePayloadAccessControl?: true\n generateFileURL?: GenerateFileURL\n prefix?: string\n}\n\nexport const getFields = ({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n prefix,\n}: Args): Field[] => {\n const baseURLField: TextField = {\n name: 'url',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n label: 'URL',\n }\n\n const basePrefixField: TextField = {\n name: 'prefix',\n type: 'text',\n admin: {\n hidden: true,\n readOnly: true,\n },\n }\n\n const fields = [...collection.fields, ...(adapter.fields || [])]\n\n // Inject a hook into all URL fields to generate URLs\n\n let existingURLFieldIndex = -1\n\n const existingURLField = fields.find((existingField, i) => {\n if ('name' in existingField && existingField.name === 'url') {\n existingURLFieldIndex = i\n return true\n }\n return false\n }) as TextField\n\n if (existingURLFieldIndex > -1) {\n fields.splice(existingURLFieldIndex, 1)\n }\n\n fields.push({\n ...baseURLField,\n ...(existingURLField || {}),\n hooks: {\n afterRead: [\n getAfterReadHook({ adapter, collection, disablePayloadAccessControl, generateFileURL }),\n ...(existingURLField?.hooks?.afterRead || []),\n ],\n },\n } as TextField)\n\n if (typeof collection.upload === 'object' && collection.upload.imageSizes) {\n let existingSizesFieldIndex = -1\n\n const existingSizesField = fields.find((existingField, i) => {\n if ('name' in existingField && existingField.name === 'sizes') {\n existingSizesFieldIndex = i\n return true\n }\n\n return false\n }) as GroupField\n\n if (existingSizesFieldIndex > -1) {\n fields.splice(existingSizesFieldIndex, 1)\n }\n\n const sizesField: Field = {\n ...(existingSizesField || {}),\n name: 'sizes',\n type: 'group',\n admin: {\n hidden: true,\n },\n fields: collection.upload.imageSizes.map((size) => {\n const existingSizeField = existingSizesField?.fields.find(\n (existingField) => 'name' in existingField && existingField.name === size.name,\n ) as GroupField\n\n const existingSizeURLField = existingSizeField?.fields.find(\n (existingField) => 'name' in existingField && existingField.name === 'url',\n ) as GroupField\n\n return {\n ...existingSizeField,\n name: size.name,\n type: 'group',\n fields: [\n ...(adapter.fields || []),\n {\n ...(existingSizeURLField || ({} as any)),\n ...baseURLField,\n hooks: {\n afterRead: [\n getAfterReadHook({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n size,\n }),\n ...(existingSizeURLField?.hooks?.afterRead || []),\n ],\n },\n },\n ],\n }\n }),\n }\n\n fields.push(sizesField)\n }\n\n // If prefix is enabled, save it to db\n if (typeof prefix !== 'undefined') {\n let existingPrefixFieldIndex = -1\n\n const existingPrefixField = fields.find((existingField, i) => {\n if ('name' in existingField && existingField.name === 'prefix') {\n existingPrefixFieldIndex = i\n return true\n }\n return false\n }) as TextField\n\n if (existingPrefixFieldIndex > -1) {\n fields.splice(existingPrefixFieldIndex, 1)\n }\n\n fields.push({\n ...basePrefixField,\n ...(existingPrefixField || {}),\n defaultValue: path.posix.join(prefix),\n } as TextField)\n }\n\n return fields\n}\n"],"names":["path","getAfterReadHook","getFields","adapter","collection","disablePayloadAccessControl","generateFileURL","prefix","baseURLField","name","type","admin","hidden","readOnly","label","basePrefixField","fields","existingURLFieldIndex","existingURLField","find","existingField","i","splice","push","hooks","afterRead","upload","imageSizes","existingSizesFieldIndex","existingSizesField","sizesField","map","size","existingSizeField","existingSizeURLField","existingPrefixFieldIndex","existingPrefixField","defaultValue","posix","join"],"mappings":"AAEA,OAAOA,UAAU,OAAM;AAIvB,SAASC,gBAAgB,QAAQ,wBAAuB;AAUxD,OAAO,MAAMC,YAAY,CAAC,EACxBC,OAAO,EACPC,UAAU,EACVC,2BAA2B,EAC3BC,eAAe,EACfC,MAAM,EACD;IACL,MAAMC,eAA0B;QAC9BC,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;QACAC,OAAO;IACT;IAEA,MAAMC,kBAA6B;QACjCN,MAAM;QACNC,MAAM;QACNC,OAAO;YACLC,QAAQ;YACRC,UAAU;QACZ;IACF;IAEA,MAAMG,SAAS;WAAIZ,WAAWY,MAAM;WAAMb,QAAQa,MAAM,IAAI,EAAE;KAAE;IAEhE,qDAAqD;IAErD,IAAIC,wBAAwB,CAAC;IAE7B,MAAMC,mBAAmBF,OAAOG,IAAI,CAAC,CAACC,eAAeC;QACnD,IAAI,UAAUD,iBAAiBA,cAAcX,IAAI,KAAK,OAAO;YAC3DQ,wBAAwBI;YACxB,OAAO;QACT;QACA,OAAO;IACT;IAEA,IAAIJ,wBAAwB,CAAC,GAAG;QAC9BD,OAAOM,MAAM,CAACL,uBAAuB;IACvC;IAEAD,OAAOO,IAAI,CAAC;QACV,GAAGf,YAAY;QACf,GAAIU,oBAAoB,CAAC,CAAC;QAC1BM,OAAO;YACLC,WAAW;gBACTxB,iBAAiB;oBAAEE;oBAASC;oBAAYC;oBAA6BC;gBAAgB;mBACjFY,kBAAkBM,OAAOC,aAAa,EAAE;aAC7C;QACH;IACF;IAEA,IAAI,OAAOrB,WAAWsB,MAAM,KAAK,YAAYtB,WAAWsB,MAAM,CAACC,UAAU,EAAE;QACzE,IAAIC,0BAA0B,CAAC;QAE/B,MAAMC,qBAAqBb,OAAOG,IAAI,CAAC,CAACC,eAAeC;YACrD,IAAI,UAAUD,iBAAiBA,cAAcX,IAAI,KAAK,SAAS;gBAC7DmB,0BAA0BP;gBAC1B,OAAO;YACT;YAEA,OAAO;QACT;QAEA,IAAIO,0BAA0B,CAAC,GAAG;YAChCZ,OAAOM,MAAM,CAACM,yBAAyB;QACzC;QAEA,MAAME,aAAoB;YACxB,GAAID,sBAAsB,CAAC,CAAC;YAC5BpB,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLC,QAAQ;YACV;YACAI,QAAQZ,WAAWsB,MAAM,CAACC,UAAU,CAACI,GAAG,CAAC,CAACC;gBACxC,MAAMC,oBAAoBJ,oBAAoBb,OAAOG,KACnD,CAACC,gBAAkB,UAAUA,iBAAiBA,cAAcX,IAAI,KAAKuB,KAAKvB,IAAI;gBAGhF,MAAMyB,uBAAuBD,mBAAmBjB,OAAOG,KACrD,CAACC,gBAAkB,UAAUA,iBAAiBA,cAAcX,IAAI,KAAK;gBAGvE,OAAO;oBACL,GAAGwB,iBAAiB;oBACpBxB,MAAMuB,KAAKvB,IAAI;oBACfC,MAAM;oBACNM,QAAQ;2BACFb,QAAQa,MAAM,IAAI,EAAE;wBACxB;4BACE,GAAIkB,wBAAyB,CAAC,CAAS;4BACvC,GAAG1B,YAAY;4BACfgB,OAAO;gCACLC,WAAW;oCACTxB,iBAAiB;wCACfE;wCACAC;wCACAC;wCACAC;wCACA0B;oCACF;uCACIE,sBAAsBV,OAAOC,aAAa,EAAE;iCACjD;4BACH;wBACF;qBACD;gBACH;YACF;QACF;QAEAT,OAAOO,IAAI,CAACO;IACd;IAEA,sCAAsC;IACtC,IAAI,OAAOvB,WAAW,aAAa;QACjC,IAAI4B,2BAA2B,CAAC;QAEhC,MAAMC,sBAAsBpB,OAAOG,IAAI,CAAC,CAACC,eAAeC;YACtD,IAAI,UAAUD,iBAAiBA,cAAcX,IAAI,KAAK,UAAU;gBAC9D0B,2BAA2Bd;gBAC3B,OAAO;YACT;YACA,OAAO;QACT;QAEA,IAAIc,2BAA2B,CAAC,GAAG;YACjCnB,OAAOM,MAAM,CAACa,0BAA0B;QAC1C;QAEAnB,OAAOO,IAAI,CAAC;YACV,GAAGR,eAAe;YAClB,GAAIqB,uBAAuB,CAAC,CAAC;YAC7BC,cAAcrC,KAAKsC,KAAK,CAACC,IAAI,CAAChC;QAChC;IACF;IAEA,OAAOS;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"afterDelete.d.ts","sourceRoot":"","sources":["../../src/hooks/afterDelete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEnE,UAAU,IAAI;IACZ,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,EAAE,gBAAgB,CAAA;CAC7B;AAED,eAAO,MAAM,kBAAkB,6BAG5B,IAAI,KAAG,yBAAyB,CAAC,QAAQ,GAAG,UAAU,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"afterDelete.d.ts","sourceRoot":"","sources":["../../src/hooks/afterDelete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEnE,UAAU,IAAI;IACZ,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,EAAE,gBAAgB,CAAA;CAC7B;AAED,eAAO,MAAM,kBAAkB,6BAG5B,IAAI,KAAG,yBAAyB,CAAC,QAAQ,GAAG,UAAU,GAAG,cAAc,CAuBzE,CAAA"}
|
|
@@ -6,12 +6,14 @@ export const getAfterDeleteHook = ({ adapter, collection })=>{
|
|
|
6
6
|
...Object.values(doc?.sizes || []).map((resizedFileData)=>resizedFileData?.filename)
|
|
7
7
|
];
|
|
8
8
|
const promises = filesToDelete.map(async (filename)=>{
|
|
9
|
-
if (filename)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
if (filename) {
|
|
10
|
+
await adapter.handleDelete({
|
|
11
|
+
collection,
|
|
12
|
+
doc,
|
|
13
|
+
filename,
|
|
14
|
+
req
|
|
15
|
+
});
|
|
16
|
+
}
|
|
15
17
|
});
|
|
16
18
|
await Promise.all(promises);
|
|
17
19
|
} catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/afterDelete.ts"],"sourcesContent":["import type { CollectionAfterDeleteHook, CollectionConfig, FileData, TypeWithID } from 'payload'\n\nimport type { GeneratedAdapter, TypeWithPrefix } from '../types.js'\n\ninterface Args {\n adapter: GeneratedAdapter\n collection: CollectionConfig\n}\n\nexport const getAfterDeleteHook = ({\n adapter,\n collection,\n}: Args): CollectionAfterDeleteHook<FileData & TypeWithID & TypeWithPrefix> => {\n return async ({ doc, req }) => {\n try {\n const filesToDelete: string[] = [\n doc.filename,\n ...Object.values(doc?.sizes || []).map((resizedFileData) => resizedFileData?.filename),\n ]\n\n const promises = filesToDelete.map(async (filename) => {\n if (filename) await adapter.handleDelete({ collection, doc, filename, req })\n })\n\n await Promise.all(promises)\n } catch (err: unknown) {\n req.payload.logger.error({\n err,\n msg: `There was an error while deleting files corresponding to the ${collection.labels?.singular} with ID ${doc.id}.`,\n })\n }\n return doc\n }\n}\n"],"names":["getAfterDeleteHook","adapter","collection","doc","req","filesToDelete","filename","Object","values","sizes","map","resizedFileData","promises","handleDelete","Promise","all","err","payload","logger","error","msg","labels","singular","id"],"mappings":"AASA,OAAO,MAAMA,qBAAqB,CAAC,EACjCC,OAAO,EACPC,UAAU,EACL;IACL,OAAO,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAE;QACxB,IAAI;YACF,MAAMC,gBAA0B;gBAC9BF,IAAIG,QAAQ;mBACTC,OAAOC,MAAM,CAACL,KAAKM,SAAS,EAAE,EAAEC,GAAG,CAAC,CAACC,kBAAoBA,iBAAiBL;aAC9E;YAED,MAAMM,WAAWP,cAAcK,GAAG,CAAC,OAAOJ;gBACxC,IAAIA,UAAU,MAAML,QAAQY,YAAY,CAAC;
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/afterDelete.ts"],"sourcesContent":["import type { CollectionAfterDeleteHook, CollectionConfig, FileData, TypeWithID } from 'payload'\n\nimport type { GeneratedAdapter, TypeWithPrefix } from '../types.js'\n\ninterface Args {\n adapter: GeneratedAdapter\n collection: CollectionConfig\n}\n\nexport const getAfterDeleteHook = ({\n adapter,\n collection,\n}: Args): CollectionAfterDeleteHook<FileData & TypeWithID & TypeWithPrefix> => {\n return async ({ doc, req }) => {\n try {\n const filesToDelete: string[] = [\n doc.filename,\n ...Object.values(doc?.sizes || []).map((resizedFileData) => resizedFileData?.filename),\n ]\n\n const promises = filesToDelete.map(async (filename) => {\n if (filename) {\n await adapter.handleDelete({ collection, doc, filename, req })\n }\n })\n\n await Promise.all(promises)\n } catch (err: unknown) {\n req.payload.logger.error({\n err,\n msg: `There was an error while deleting files corresponding to the ${collection.labels?.singular} with ID ${doc.id}.`,\n })\n }\n return doc\n }\n}\n"],"names":["getAfterDeleteHook","adapter","collection","doc","req","filesToDelete","filename","Object","values","sizes","map","resizedFileData","promises","handleDelete","Promise","all","err","payload","logger","error","msg","labels","singular","id"],"mappings":"AASA,OAAO,MAAMA,qBAAqB,CAAC,EACjCC,OAAO,EACPC,UAAU,EACL;IACL,OAAO,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAE;QACxB,IAAI;YACF,MAAMC,gBAA0B;gBAC9BF,IAAIG,QAAQ;mBACTC,OAAOC,MAAM,CAACL,KAAKM,SAAS,EAAE,EAAEC,GAAG,CAAC,CAACC,kBAAoBA,iBAAiBL;aAC9E;YAED,MAAMM,WAAWP,cAAcK,GAAG,CAAC,OAAOJ;gBACxC,IAAIA,UAAU;oBACZ,MAAML,QAAQY,YAAY,CAAC;wBAAEX;wBAAYC;wBAAKG;wBAAUF;oBAAI;gBAC9D;YACF;YAEA,MAAMU,QAAQC,GAAG,CAACH;QACpB,EAAE,OAAOI,KAAc;YACrBZ,IAAIa,OAAO,CAACC,MAAM,CAACC,KAAK,CAAC;gBACvBH;gBACAI,KAAK,CAAC,6DAA6D,EAAElB,WAAWmB,MAAM,EAAEC,SAAS,SAAS,EAAEnB,IAAIoB,EAAE,CAAC,CAAC,CAAC;YACvH;QACF;QACA,OAAOpB;IACT;AACF,EAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CollectionConfig, FieldHook, ImageSize } from 'payload';
|
|
2
|
-
import type {
|
|
2
|
+
import type { GeneratedAdapter, GenerateFileURL } from '../types.js';
|
|
3
3
|
interface Args {
|
|
4
4
|
adapter: GeneratedAdapter;
|
|
5
5
|
collection: CollectionConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"afterRead.d.ts","sourceRoot":"","sources":["../../src/hooks/afterRead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAErE,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"afterRead.d.ts","sourceRoot":"","sources":["../../src/hooks/afterRead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEpE,UAAU,IAAI;IACZ,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,eAAO,MAAM,gBAAgB,gFACmD,IAAI,KAAG,SAyBpF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/afterRead.ts"],"sourcesContent":["import type { CollectionConfig, FieldHook, ImageSize } from 'payload'\n\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/afterRead.ts"],"sourcesContent":["import type { CollectionConfig, FieldHook, ImageSize } from 'payload'\n\nimport type { GeneratedAdapter, GenerateFileURL } from '../types.js'\n\ninterface Args {\n adapter: GeneratedAdapter\n collection: CollectionConfig\n disablePayloadAccessControl?: boolean\n generateFileURL?: GenerateFileURL\n size?: ImageSize\n}\n\nexport const getAfterReadHook =\n ({ adapter, collection, disablePayloadAccessControl, generateFileURL, size }: Args): FieldHook =>\n async ({ data, value }) => {\n const filename = size ? data?.sizes?.[size.name]?.filename : data?.filename\n const prefix = data?.prefix\n let url = value\n\n if (disablePayloadAccessControl && filename) {\n url = await adapter.generateURL({\n collection,\n data,\n filename,\n prefix,\n })\n }\n\n if (generateFileURL) {\n url = await generateFileURL({\n collection,\n filename,\n prefix,\n size,\n })\n }\n\n return url\n }\n"],"names":["getAfterReadHook","adapter","collection","disablePayloadAccessControl","generateFileURL","size","data","value","filename","sizes","name","prefix","url","generateURL"],"mappings":"AAYA,OAAO,MAAMA,mBACX,CAAC,EAAEC,OAAO,EAAEC,UAAU,EAAEC,2BAA2B,EAAEC,eAAe,EAAEC,IAAI,EAAQ,GAClF,OAAO,EAAEC,IAAI,EAAEC,KAAK,EAAE;QACpB,MAAMC,WAAWH,OAAOC,MAAMG,OAAO,CAACJ,KAAKK,IAAI,CAAC,EAAEF,WAAWF,MAAME;QACnE,MAAMG,SAASL,MAAMK;QACrB,IAAIC,MAAML;QAEV,IAAIJ,+BAA+BK,UAAU;YAC3CI,MAAM,MAAMX,QAAQY,WAAW,CAAC;gBAC9BX;gBACAI;gBACAE;gBACAG;YACF;QACF;QAEA,IAAIP,iBAAiB;YACnBQ,MAAM,MAAMR,gBAAgB;gBAC1BF;gBACAM;gBACAG;gBACAN;YACF;QACF;QAEA,OAAOO;IACT,EAAC"}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAe/C,eAAO,MAAM,kBAAkB,kBACb,aAAa,sBACZ,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAe/C,eAAO,MAAM,kBAAkB,kBACb,aAAa,sBACZ,MAAM,KAAG,MAgFzB,CAAA"}
|
package/dist/plugin.js
CHANGED
|
@@ -26,7 +26,9 @@ export const cloudStoragePlugin = (pluginOptions)=>(incomingConfig)=>{
|
|
|
26
26
|
collection: existingCollection,
|
|
27
27
|
prefix: options.prefix
|
|
28
28
|
});
|
|
29
|
-
if (adapter.onInit)
|
|
29
|
+
if (adapter.onInit) {
|
|
30
|
+
initFunctions.push(adapter.onInit);
|
|
31
|
+
}
|
|
30
32
|
const fields = getFields({
|
|
31
33
|
adapter,
|
|
32
34
|
collection: existingCollection,
|
|
@@ -72,7 +74,9 @@ export const cloudStoragePlugin = (pluginOptions)=>(incomingConfig)=>{
|
|
|
72
74
|
}),
|
|
73
75
|
onInit: async (payload)=>{
|
|
74
76
|
initFunctions.forEach((fn)=>fn());
|
|
75
|
-
if (config.onInit)
|
|
77
|
+
if (config.onInit) {
|
|
78
|
+
await config.onInit(payload);
|
|
79
|
+
}
|
|
76
80
|
}
|
|
77
81
|
};
|
|
78
82
|
};
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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) {\n initFunctions.push(adapter.onInit)\n }\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) {\n await config.onInit(payload)\n }\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,EAAE;wBAClBR,cAAcS,IAAI,CAACJ,QAAQG,MAAM;oBACnC;oBAEA,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;oBACjB,MAAMT,OAAOS,MAAM,CAACe;gBACtB;YACF;QACF;IACF,EAAC"}
|
package/eslint.config.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { rootEslintConfig, rootParserOptions } from '../../eslint.config.js'
|
|
2
2
|
|
|
3
|
-
/** @typedef {import('eslint').Linter.
|
|
4
|
-
let FlatConfig
|
|
3
|
+
/** @typedef {import('eslint').Linter.Config} Config */
|
|
5
4
|
|
|
6
|
-
/** @type {
|
|
5
|
+
/** @type {Config[]} */
|
|
7
6
|
export const index = [
|
|
8
7
|
...rootEslintConfig,
|
|
9
8
|
{
|
|
10
9
|
languageOptions: {
|
|
11
10
|
parserOptions: {
|
|
12
|
-
project: './tsconfig.json',
|
|
13
|
-
tsconfigDirName: import.meta.dirname,
|
|
14
11
|
...rootParserOptions,
|
|
12
|
+
tsconfigRootDir: import.meta.dirname,
|
|
15
13
|
},
|
|
16
14
|
},
|
|
17
15
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-cloud-storage",
|
|
3
|
-
"version": "3.0.0-canary.
|
|
3
|
+
"version": "3.0.0-canary.e198dc5",
|
|
4
4
|
"description": "The official cloud storage plugin for Payload CMS",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"@google-cloud/storage": "^7.7.0",
|
|
66
66
|
"@types/find-node-modules": "^2.1.2",
|
|
67
67
|
"@vercel/blob": "^0.22.3",
|
|
68
|
-
"payload": "3.0.0-canary.
|
|
68
|
+
"payload": "3.0.0-canary.e198dc5"
|
|
69
69
|
},
|
|
70
70
|
"peerDependencies": {
|
|
71
71
|
"@aws-sdk/client-s3": "^3.614.0",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"@azure/storage-blob": "^12.11.0",
|
|
75
75
|
"@google-cloud/storage": "^7.7.0",
|
|
76
76
|
"@vercel/blob": "^0.22.3",
|
|
77
|
-
"payload": "3.0.0-canary.
|
|
77
|
+
"payload": "3.0.0-canary.e198dc5"
|
|
78
78
|
},
|
|
79
79
|
"peerDependenciesMeta": {
|
|
80
80
|
"@aws-sdk/client-s3": {
|
|
@@ -104,6 +104,8 @@
|
|
|
104
104
|
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
105
105
|
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
106
106
|
"clean": "rimraf {dist,*.tsbuildinfo}",
|
|
107
|
+
"lint": "eslint .",
|
|
108
|
+
"lint:fix": "eslint . --fix",
|
|
107
109
|
"test": "echo \"No tests available.\""
|
|
108
110
|
}
|
|
109
111
|
}
|