@payloadcms/plugin-cloud-storage 3.91.0-internal.c1569dc → 4.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/README.md +4 -4
- package/dist/client/createClientUploadHandler.d.ts +8 -7
- package/dist/client/createClientUploadHandler.d.ts.map +1 -1
- package/dist/client/createClientUploadHandler.js +26 -22
- package/dist/client/createClientUploadHandler.js.map +1 -1
- package/dist/exports/client.d.ts +1 -1
- package/dist/exports/client.d.ts.map +1 -1
- package/dist/exports/client.js +1 -1
- package/dist/exports/client.js.map +1 -1
- package/dist/exports/utilities.d.ts +2 -4
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +2 -4
- package/dist/exports/utilities.js.map +1 -1
- package/dist/fields/getFields.d.ts +1 -5
- package/dist/fields/getFields.d.ts.map +1 -1
- package/dist/fields/getFields.js +102 -35
- package/dist/fields/getFields.js.map +1 -1
- package/dist/hooks/afterChange.d.ts +3 -1
- package/dist/hooks/afterChange.d.ts.map +1 -1
- package/dist/hooks/afterChange.js +93 -27
- package/dist/hooks/afterChange.js.map +1 -1
- package/dist/hooks/afterDelete.d.ts.map +1 -1
- package/dist/hooks/afterDelete.js +10 -2
- package/dist/hooks/afterDelete.js.map +1 -1
- package/dist/hooks/afterRead.d.ts +6 -1
- package/dist/hooks/afterRead.d.ts.map +1 -1
- package/dist/hooks/afterRead.js +27 -11
- package/dist/hooks/afterRead.js.map +1 -1
- package/dist/hooks/beforeChange.d.ts +2 -1
- package/dist/hooks/beforeChange.d.ts.map +1 -1
- package/dist/hooks/beforeChange.js +14 -9
- package/dist/hooks/beforeChange.js.map +1 -1
- package/dist/hooks/publicOriginalURL.d.ts +8 -0
- package/dist/hooks/publicOriginalURL.d.ts.map +1 -0
- package/dist/hooks/publicOriginalURL.js +34 -0
- package/dist/hooks/publicOriginalURL.js.map +1 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +198 -133
- package/dist/plugin.js.map +1 -1
- package/dist/types.d.ts +48 -31
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utilities/buildStoragePathData.d.ts +0 -6
- package/dist/utilities/buildStoragePathData.d.ts.map +1 -1
- package/dist/utilities/buildStoragePathData.js +0 -2
- package/dist/utilities/buildStoragePathData.js.map +1 -1
- package/dist/utilities/createFileOperations.d.ts +13 -0
- package/dist/utilities/createFileOperations.d.ts.map +1 -0
- package/dist/utilities/createFileOperations.js +258 -0
- package/dist/utilities/createFileOperations.js.map +1 -0
- package/dist/utilities/getFilePrefix.d.ts +9 -20
- package/dist/utilities/getFilePrefix.d.ts.map +1 -1
- package/dist/utilities/getFilePrefix.js +42 -31
- package/dist/utilities/getFilePrefix.js.map +1 -1
- package/dist/utilities/getIncomingFiles.js +4 -4
- package/dist/utilities/getIncomingFiles.js.map +1 -1
- package/dist/utilities/getStorageLocationSelect.d.ts +9 -0
- package/dist/utilities/getStorageLocationSelect.d.ts.map +1 -0
- package/dist/utilities/getStorageLocationSelect.js +54 -0
- package/dist/utilities/getStorageLocationSelect.js.map +1 -0
- package/dist/utilities/resolveSignedURLKey.d.ts +10 -10
- package/dist/utilities/resolveSignedURLKey.d.ts.map +1 -1
- package/dist/utilities/resolveSignedURLKey.js +33 -26
- package/dist/utilities/resolveSignedURLKey.js.map +1 -1
- package/dist/utilities/sanitizePrefix.d.ts +1 -9
- package/dist/utilities/sanitizePrefix.d.ts.map +1 -1
- package/dist/utilities/sanitizePrefix.js +1 -21
- package/dist/utilities/sanitizePrefix.js.map +1 -1
- package/package.json +6 -6
- package/dist/admin/fields/getFields.d.ts +0 -17
- package/dist/admin/fields/getFields.d.ts.map +0 -1
- package/dist/admin/fields/getFields.js +0 -98
- package/dist/admin/fields/getFields.js.map +0 -1
- package/dist/admin/index.d.ts +0 -4
- package/dist/admin/index.d.ts.map +0 -1
- package/dist/admin/index.js +0 -34
- package/dist/admin/index.js.map +0 -1
- package/dist/hooks/afterChange.spec.js +0 -150
- package/dist/hooks/afterChange.spec.js.map +0 -1
- package/dist/hooks/normalizeUploadPrefix.spec.js +0 -154
- package/dist/hooks/normalizeUploadPrefix.spec.js.map +0 -1
- package/dist/plugin.spec.js +0 -186
- package/dist/plugin.spec.js.map +0 -1
- package/dist/utilities/assertReceiptMatchesFileKey.d.ts +0 -15
- package/dist/utilities/assertReceiptMatchesFileKey.d.ts.map +0 -1
- package/dist/utilities/assertReceiptMatchesFileKey.js +0 -31
- package/dist/utilities/assertReceiptMatchesFileKey.js.map +0 -1
- package/dist/utilities/buildStoragePathData.spec.js +0 -254
- package/dist/utilities/buildStoragePathData.spec.js.map +0 -1
- package/dist/utilities/getFilePrefix.spec.js +0 -291
- package/dist/utilities/getFilePrefix.spec.js.map +0 -1
- package/dist/utilities/initClientUploads.d.ts +0 -13
- package/dist/utilities/initClientUploads.d.ts.map +0 -1
- package/dist/utilities/initClientUploads.js +0 -66
- package/dist/utilities/initClientUploads.js.map +0 -1
- package/dist/utilities/initClientUploads.spec.js +0 -31
- package/dist/utilities/initClientUploads.spec.js.map +0 -1
- package/dist/utilities/resolveSignedURLKey.spec.js +0 -56
- package/dist/utilities/resolveSignedURLKey.spec.js.map +0 -1
- package/dist/utilities/verifyClientUploadReceiptForFileKey.d.ts +0 -20
- package/dist/utilities/verifyClientUploadReceiptForFileKey.d.ts.map +0 -1
- package/dist/utilities/verifyClientUploadReceiptForFileKey.js +0 -24
- package/dist/utilities/verifyClientUploadReceiptForFileKey.js.map +0 -1
- package/dist/utilities/verifyClientUploadReceiptForFileKey.spec.js +0 -108
- package/dist/utilities/verifyClientUploadReceiptForFileKey.spec.js.map +0 -1
package/LICENSE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2018-
|
|
3
|
+
Copyright (c) 2018-2026 Payload CMS, LLC <info@payloadcms.com>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
6
|
a copy of this software and associated documentation files (the
|
package/README.md
CHANGED
|
@@ -6,10 +6,10 @@ This repository contains the officially supported Payload Cloud Storage plugin.
|
|
|
6
6
|
|
|
7
7
|
| Service | Package |
|
|
8
8
|
| -------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
9
|
-
| Vercel Blob | [`@payloadcms/storage-vercel-blob`](https://github.com/payloadcms/payload/tree/
|
|
10
|
-
| AWS S3 | [`@payloadcms/storage-s3`](https://github.com/payloadcms/payload/tree/
|
|
11
|
-
| Azure | [`@payloadcms/storage-azure`](https://github.com/payloadcms/payload/tree/
|
|
12
|
-
| Google Cloud Storage | [`@payloadcms/storage-gcs`](https://github.com/payloadcms/payload/tree/
|
|
9
|
+
| Vercel Blob | [`@payloadcms/storage-vercel-blob`](https://github.com/payloadcms/payload/tree/main/packages/storage-vercel-blob) |
|
|
10
|
+
| AWS S3 | [`@payloadcms/storage-s3`](https://github.com/payloadcms/payload/tree/main/packages/storage-s3) |
|
|
11
|
+
| Azure | [`@payloadcms/storage-azure`](https://github.com/payloadcms/payload/tree/main/packages/storage-azure) |
|
|
12
|
+
| Google Cloud Storage | [`@payloadcms/storage-gcs`](https://github.com/payloadcms/payload/tree/main/packages/storage-gcs) |
|
|
13
13
|
|
|
14
14
|
This package is now best used for implementing custom storage solutions or third-party storage services that do not have `@payloadcms/storage-*` packages.
|
|
15
15
|
|
|
@@ -3,23 +3,24 @@ import { type ReactNode } from 'react';
|
|
|
3
3
|
type ClientUploadHandlerProps<T extends Record<string, unknown>> = {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
collectionSlug: UploadCollectionSlug;
|
|
6
|
-
|
|
7
|
-
extra: T;
|
|
6
|
+
endpointPath?: `/${string}`;
|
|
8
7
|
prefix?: string;
|
|
9
|
-
|
|
8
|
+
props: T;
|
|
10
9
|
};
|
|
11
|
-
export declare const createClientUploadHandler: <T extends Record<string, unknown>>({ handler, }: {
|
|
10
|
+
export declare const createClientUploadHandler: <T extends Record<string, unknown>>({ name, handler, }: {
|
|
12
11
|
handler: (args: {
|
|
13
12
|
apiRoute: string;
|
|
14
13
|
collectionSlug: UploadCollectionSlug;
|
|
14
|
+
data?: unknown;
|
|
15
15
|
docPrefix?: string;
|
|
16
|
-
|
|
16
|
+
endpointPath?: `/${string}`;
|
|
17
17
|
file: File;
|
|
18
18
|
prefix?: string;
|
|
19
|
-
|
|
19
|
+
props: T;
|
|
20
20
|
serverURL: string;
|
|
21
21
|
updateFilename: (value: string) => void;
|
|
22
22
|
}) => Promise<unknown>;
|
|
23
|
-
|
|
23
|
+
name: string;
|
|
24
|
+
}) => ({ children, collectionSlug, endpointPath, prefix, props, }: ClientUploadHandlerProps<T>) => import("react").JSX.Element;
|
|
24
25
|
export {};
|
|
25
26
|
//# sourceMappingURL=createClientUploadHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClientUploadHandler.d.ts","sourceRoot":"","sources":["../../src/client/createClientUploadHandler.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGnD,OAAO,EAAY,KAAK,SAAS,EAAa,MAAM,OAAO,CAAA;AAE3D,KAAK,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACjE,QAAQ,EAAE,SAAS,CAAA;IACnB,cAAc,EAAE,oBAAoB,CAAA;IACpC,
|
|
1
|
+
{"version":3,"file":"createClientUploadHandler.d.ts","sourceRoot":"","sources":["../../src/client/createClientUploadHandler.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGnD,OAAO,EAAY,KAAK,SAAS,EAAa,MAAM,OAAO,CAAA;AAE3D,KAAK,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACjE,QAAQ,EAAE,SAAS,CAAA;IACnB,cAAc,EAAE,oBAAoB,CAAA;IACpC,YAAY,CAAC,EAAE,IAAI,MAAM,EAAE,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,CAAC,CAAA;CACT,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,sBAGxE;IACD,OAAO,EAAE,CAAC,IAAI,EAAE;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,cAAc,EAAE,oBAAoB,CAAA;QACpC,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,YAAY,CAAC,EAAE,IAAI,MAAM,EAAE,CAAA;QAC3B,IAAI,EAAE,IAAI,CAAA;QACV,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,CAAC,CAAA;QACR,SAAS,EAAE,MAAM,CAAA;QACjB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KACxC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;CACb,kEAOI,wBAAwB,CAAC,CAAC,CAAC,gCAmD/B,CAAA"}
|
|
@@ -1,33 +1,37 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useConfig, useEffectEvent
|
|
3
|
+
import { useConfig, useEffectEvent } from '@payloadcms/ui';
|
|
4
4
|
import { Fragment, useEffect } from 'react';
|
|
5
|
-
export const createClientUploadHandler = ({ handler })=>{
|
|
6
|
-
return function ClientUploadHandler({ children, collectionSlug,
|
|
7
|
-
const { setUploadHandler } = useUploadHandlers();
|
|
5
|
+
export const createClientUploadHandler = ({ name, handler })=>{
|
|
6
|
+
return function ClientUploadHandler({ children, collectionSlug, endpointPath, prefix, props }) {
|
|
8
7
|
const { config: { routes: { api: apiRoute }, serverURL } } = useConfig();
|
|
9
8
|
const initializeHandler = useEffectEvent(()=>{
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const listener = (event)=>{
|
|
10
|
+
const customEvent = event;
|
|
11
|
+
if (customEvent.detail.collectionSlug !== collectionSlug) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
customEvent.preventDefault();
|
|
15
|
+
void handler({
|
|
16
|
+
apiRoute,
|
|
12
17
|
collectionSlug,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
18
|
+
data: customEvent.detail.data,
|
|
19
|
+
docPrefix: customEvent.detail.docPrefix,
|
|
20
|
+
endpointPath,
|
|
21
|
+
file: customEvent.detail.file,
|
|
22
|
+
prefix,
|
|
23
|
+
props,
|
|
24
|
+
serverURL,
|
|
25
|
+
updateFilename: customEvent.detail.updateFilename
|
|
26
|
+
}).then(customEvent.detail.resolve, customEvent.detail.reject);
|
|
27
|
+
};
|
|
28
|
+
const eventName = `payload:upload:${name}`;
|
|
29
|
+
const eventTarget = globalThis;
|
|
30
|
+
eventTarget.addEventListener(eventName, listener);
|
|
31
|
+
return ()=>eventTarget.removeEventListener(eventName, listener);
|
|
28
32
|
});
|
|
29
33
|
useEffect(()=>{
|
|
30
|
-
initializeHandler();
|
|
34
|
+
return initializeHandler();
|
|
31
35
|
}, []);
|
|
32
36
|
return /*#__PURE__*/ _jsx(Fragment, {
|
|
33
37
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/client/createClientUploadHandler.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadCollectionSlug } from 'payload'\n\nimport { useConfig, useEffectEvent
|
|
1
|
+
{"version":3,"sources":["../../src/client/createClientUploadHandler.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadCollectionSlug } from 'payload'\n\nimport { useConfig, useEffectEvent } from '@payloadcms/ui'\nimport { Fragment, type ReactNode, useEffect } from 'react'\n\ntype ClientUploadHandlerProps<T extends Record<string, unknown>> = {\n children: ReactNode\n collectionSlug: UploadCollectionSlug\n endpointPath?: `/${string}`\n prefix?: string\n props: T\n}\n\nexport const createClientUploadHandler = <T extends Record<string, unknown>>({\n name,\n handler,\n}: {\n handler: (args: {\n apiRoute: string\n collectionSlug: UploadCollectionSlug\n data?: unknown\n docPrefix?: string\n endpointPath?: `/${string}`\n file: File\n prefix?: string\n props: T\n serverURL: string\n updateFilename: (value: string) => void\n }) => Promise<unknown>\n name: string\n}) => {\n return function ClientUploadHandler({\n children,\n collectionSlug,\n endpointPath,\n prefix,\n props,\n }: ClientUploadHandlerProps<T>) {\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const initializeHandler = useEffectEvent(() => {\n const listener = (event: Event) => {\n const customEvent = event as CustomEvent<{\n collectionSlug: UploadCollectionSlug\n data?: unknown\n docPrefix?: string\n file: File\n reject: (reason?: unknown) => void\n resolve: (value: unknown) => void\n updateFilename: (value: string) => void\n }>\n\n if (customEvent.detail.collectionSlug !== collectionSlug) {\n return\n }\n\n customEvent.preventDefault()\n void handler({\n apiRoute,\n collectionSlug,\n data: customEvent.detail.data,\n docPrefix: customEvent.detail.docPrefix,\n endpointPath,\n file: customEvent.detail.file,\n prefix,\n props,\n serverURL,\n updateFilename: customEvent.detail.updateFilename,\n }).then(customEvent.detail.resolve, customEvent.detail.reject)\n }\n\n const eventName = `payload:upload:${name}`\n const eventTarget = globalThis as unknown as EventTarget\n eventTarget.addEventListener(eventName, listener)\n return () => eventTarget.removeEventListener(eventName, listener)\n })\n\n useEffect(() => {\n return initializeHandler()\n }, [])\n\n return <Fragment>{children}</Fragment>\n }\n}\n"],"names":["useConfig","useEffectEvent","Fragment","useEffect","createClientUploadHandler","name","handler","ClientUploadHandler","children","collectionSlug","endpointPath","prefix","props","config","routes","api","apiRoute","serverURL","initializeHandler","listener","event","customEvent","detail","preventDefault","data","docPrefix","file","updateFilename","then","resolve","reject","eventName","eventTarget","globalThis","addEventListener","removeEventListener"],"mappings":"AAAA;;AAIA,SAASA,SAAS,EAAEC,cAAc,QAAQ,iBAAgB;AAC1D,SAASC,QAAQ,EAAkBC,SAAS,QAAQ,QAAO;AAU3D,OAAO,MAAMC,4BAA4B,CAAoC,EAC3EC,IAAI,EACJC,OAAO,EAeR;IACC,OAAO,SAASC,oBAAoB,EAClCC,QAAQ,EACRC,cAAc,EACdC,YAAY,EACZC,MAAM,EACNC,KAAK,EACuB;QAC5B,MAAM,EACJC,QAAQ,EACNC,QAAQ,EAAEC,KAAKC,QAAQ,EAAE,EACzBC,SAAS,EACV,EACF,GAAGjB;QAEJ,MAAMkB,oBAAoBjB,eAAe;YACvC,MAAMkB,WAAW,CAACC;gBAChB,MAAMC,cAAcD;gBAUpB,IAAIC,YAAYC,MAAM,CAACb,cAAc,KAAKA,gBAAgB;oBACxD;gBACF;gBAEAY,YAAYE,cAAc;gBAC1B,KAAKjB,QAAQ;oBACXU;oBACAP;oBACAe,MAAMH,YAAYC,MAAM,CAACE,IAAI;oBAC7BC,WAAWJ,YAAYC,MAAM,CAACG,SAAS;oBACvCf;oBACAgB,MAAML,YAAYC,MAAM,CAACI,IAAI;oBAC7Bf;oBACAC;oBACAK;oBACAU,gBAAgBN,YAAYC,MAAM,CAACK,cAAc;gBACnD,GAAGC,IAAI,CAACP,YAAYC,MAAM,CAACO,OAAO,EAAER,YAAYC,MAAM,CAACQ,MAAM;YAC/D;YAEA,MAAMC,YAAY,CAAC,eAAe,EAAE1B,MAAM;YAC1C,MAAM2B,cAAcC;YACpBD,YAAYE,gBAAgB,CAACH,WAAWZ;YACxC,OAAO,IAAMa,YAAYG,mBAAmB,CAACJ,WAAWZ;QAC1D;QAEAhB,UAAU;YACR,OAAOe;QACT,GAAG,EAAE;QAEL,qBAAO,KAAChB;sBAAUM;;IACpB;AACF,EAAC"}
|
package/dist/exports/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { createClientUploadHandler } from '../client/createClientUploadHandler.js';
|
|
2
|
-
export { buildStoragePathData,
|
|
2
|
+
export { buildStoragePathData, buildUploadStoragePathData, } from '../utilities/buildStoragePathData.js';
|
|
3
3
|
export { sanitizePrefix } from '../utilities/sanitizePrefix.js';
|
|
4
4
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAClF,OAAO,EACL,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAClF,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA"}
|
package/dist/exports/client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { createClientUploadHandler } from '../client/createClientUploadHandler.js';
|
|
2
|
-
export { buildStoragePathData,
|
|
2
|
+
export { buildStoragePathData, buildUploadStoragePathData } from '../utilities/buildStoragePathData.js';
|
|
3
3
|
export { sanitizePrefix } from '../utilities/sanitizePrefix.js';
|
|
4
4
|
|
|
5
5
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["export { createClientUploadHandler } from '../client/createClientUploadHandler.js'\nexport {\n buildStoragePathData,\n
|
|
1
|
+
{"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["export { createClientUploadHandler } from '../client/createClientUploadHandler.js'\nexport {\n buildStoragePathData,\n buildUploadStoragePathData,\n} from '../utilities/buildStoragePathData.js'\nexport { sanitizePrefix } from '../utilities/sanitizePrefix.js'\n"],"names":["createClientUploadHandler","buildStoragePathData","buildUploadStoragePathData","sanitizePrefix"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ,yCAAwC;AAClF,SACEC,oBAAoB,EACpBC,0BAA0B,QACrB,uCAAsC;AAC7C,SAASC,cAAc,QAAQ,iCAAgC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
export { buildStoragePathData
|
|
2
|
-
export { getFilePrefix
|
|
3
|
-
export { initClientUploads } from '../utilities/initClientUploads.js';
|
|
1
|
+
export { buildStoragePathData, buildUploadStoragePathData, isStoragePathWithinCollectionPrefix, } from '../utilities/buildStoragePathData.js';
|
|
2
|
+
export { getFilePrefix } from '../utilities/getFilePrefix.js';
|
|
4
3
|
export { resolveSignedURLKey } from '../utilities/resolveSignedURLKey.js';
|
|
5
4
|
export { sanitizePrefix } from '../utilities/sanitizePrefix.js';
|
|
6
|
-
export { verifyClientUploadReceiptForFileKey } from '../utilities/verifyClientUploadReceiptForFileKey.js';
|
|
7
5
|
//# sourceMappingURL=utilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/exports/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/exports/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,mCAAmC,GACpC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
export { buildStoragePathData
|
|
2
|
-
export { getFilePrefix
|
|
3
|
-
export { initClientUploads } from '../utilities/initClientUploads.js';
|
|
1
|
+
export { buildStoragePathData, buildUploadStoragePathData, isStoragePathWithinCollectionPrefix } from '../utilities/buildStoragePathData.js';
|
|
2
|
+
export { getFilePrefix } from '../utilities/getFilePrefix.js';
|
|
4
3
|
export { resolveSignedURLKey } from '../utilities/resolveSignedURLKey.js';
|
|
5
4
|
export { sanitizePrefix } from '../utilities/sanitizePrefix.js';
|
|
6
|
-
export { verifyClientUploadReceiptForFileKey } from '../utilities/verifyClientUploadReceiptForFileKey.js';
|
|
7
5
|
|
|
8
6
|
//# sourceMappingURL=utilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/utilities.ts"],"sourcesContent":["export {\n buildStoragePathData
|
|
1
|
+
{"version":3,"sources":["../../src/exports/utilities.ts"],"sourcesContent":["export {\n buildStoragePathData,\n buildUploadStoragePathData,\n isStoragePathWithinCollectionPrefix,\n} from '../utilities/buildStoragePathData.js'\nexport { getFilePrefix } from '../utilities/getFilePrefix.js'\nexport { resolveSignedURLKey } from '../utilities/resolveSignedURLKey.js'\nexport { sanitizePrefix } from '../utilities/sanitizePrefix.js'\n"],"names":["buildStoragePathData","buildUploadStoragePathData","isStoragePathWithinCollectionPrefix","getFilePrefix","resolveSignedURLKey","sanitizePrefix"],"mappings":"AAAA,SACEA,oBAAoB,EACpBC,0BAA0B,EAC1BC,mCAAmC,QAC9B,uCAAsC;AAC7C,SAASC,aAAa,QAAQ,gCAA+B;AAC7D,SAASC,mBAAmB,QAAQ,sCAAqC;AACzE,SAASC,cAAc,QAAQ,iCAAgC"}
|
|
@@ -2,10 +2,6 @@ import type { CollectionConfig, Field } from 'payload';
|
|
|
2
2
|
import type { GeneratedAdapter, GenerateFileURL } from '../types.js';
|
|
3
3
|
interface Args {
|
|
4
4
|
adapter?: GeneratedAdapter;
|
|
5
|
-
/**
|
|
6
|
-
* When true, always insert the prefix field regardless of whether a prefix is configured.
|
|
7
|
-
*/
|
|
8
|
-
alwaysInsertFields?: boolean;
|
|
9
5
|
collection: CollectionConfig;
|
|
10
6
|
disablePayloadAccessControl?: true;
|
|
11
7
|
generateFileURL?: GenerateFileURL;
|
|
@@ -16,6 +12,6 @@ interface Args {
|
|
|
16
12
|
*/
|
|
17
13
|
useCompositePrefixes?: boolean;
|
|
18
14
|
}
|
|
19
|
-
export declare const getFields: ({ adapter,
|
|
15
|
+
export declare const getFields: ({ adapter, collection, disablePayloadAccessControl, generateFileURL, prefix, useCompositePrefixes, }: Args) => Field[];
|
|
20
16
|
export {};
|
|
21
17
|
//# sourceMappingURL=getFields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFields.d.ts","sourceRoot":"","sources":["../../src/fields/getFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"getFields.d.ts","sourceRoot":"","sources":["../../src/fields/getFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAgD,MAAM,SAAS,CAAA;AAIpG,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAMpE,UAAU,IAAI;IACZ,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,UAAU,EAAE,gBAAgB,CAAA;IAC5B,2BAA2B,CAAC,EAAE,IAAI,CAAA;IAClC,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,eAAO,MAAM,SAAS,yGAOnB,IAAI,KAAG,KAAK,EAgSd,CAAA"}
|
package/dist/fields/getFields.js
CHANGED
|
@@ -2,7 +2,7 @@ import path from 'path';
|
|
|
2
2
|
import { getAfterReadHook } from '../hooks/afterRead.js';
|
|
3
3
|
import { getBeforeChangeHook } from '../hooks/beforeChange.js';
|
|
4
4
|
import { getNormalizeUploadPrefixFieldHook } from '../hooks/normalizeUploadPrefix.js';
|
|
5
|
-
export const getFields = ({ adapter,
|
|
5
|
+
export const getFields = ({ adapter, collection, disablePayloadAccessControl, generateFileURL, prefix, useCompositePrefixes = false })=>{
|
|
6
6
|
const baseURLField = {
|
|
7
7
|
name: 'url',
|
|
8
8
|
type: 'text',
|
|
@@ -16,19 +16,38 @@ export const getFields = ({ adapter, alwaysInsertFields, collection, disablePayl
|
|
|
16
16
|
name: 'prefix',
|
|
17
17
|
type: 'text',
|
|
18
18
|
admin: {
|
|
19
|
+
disabled: {
|
|
20
|
+
bulkEdit: true,
|
|
21
|
+
column: true,
|
|
22
|
+
filter: true,
|
|
23
|
+
groupBy: true
|
|
24
|
+
},
|
|
19
25
|
hidden: true,
|
|
20
26
|
readOnly: true
|
|
21
27
|
}
|
|
22
28
|
};
|
|
23
|
-
//
|
|
29
|
+
// Server-owned key segment. Field-level `hidden` would remove it before the URL hooks can read it.
|
|
24
30
|
const baseObjectKeyField = {
|
|
25
31
|
name: '_objectKey',
|
|
26
32
|
type: 'text',
|
|
27
33
|
admin: {
|
|
34
|
+
disabled: {
|
|
35
|
+
bulkEdit: true,
|
|
36
|
+
column: true,
|
|
37
|
+
filter: true,
|
|
38
|
+
groupBy: true
|
|
39
|
+
},
|
|
28
40
|
hidden: true,
|
|
29
41
|
readOnly: true
|
|
30
42
|
}
|
|
31
43
|
};
|
|
44
|
+
const storedPrefixField = {
|
|
45
|
+
...basePrefixField,
|
|
46
|
+
admin: {
|
|
47
|
+
...basePrefixField.admin,
|
|
48
|
+
disabled: true
|
|
49
|
+
}
|
|
50
|
+
};
|
|
32
51
|
const fields = [
|
|
33
52
|
...collection.fields,
|
|
34
53
|
...adapter?.fields || []
|
|
@@ -77,10 +96,54 @@ export const getFields = ({ adapter, alwaysInsertFields, collection, disablePayl
|
|
|
77
96
|
...existingURLField || {}
|
|
78
97
|
});
|
|
79
98
|
}
|
|
80
|
-
|
|
99
|
+
let originalField = fields.find((field)=>field.type === 'group' && 'name' in field && field.name === 'original');
|
|
100
|
+
if (adapter && !originalField) {
|
|
101
|
+
originalField = {
|
|
102
|
+
name: 'original',
|
|
103
|
+
type: 'group',
|
|
104
|
+
fields: [
|
|
105
|
+
baseURLField
|
|
106
|
+
]
|
|
107
|
+
};
|
|
108
|
+
fields.push(originalField);
|
|
109
|
+
}
|
|
110
|
+
const originalURLFieldIndex = originalField?.fields.findIndex((field)=>'name' in field && field.name === 'url');
|
|
111
|
+
if (adapter && originalField && originalURLFieldIndex !== undefined && originalURLFieldIndex >= 0) {
|
|
112
|
+
const originalURLField = originalField.fields[originalURLFieldIndex];
|
|
113
|
+
originalField.fields[originalURLFieldIndex] = {
|
|
114
|
+
...baseURLField,
|
|
115
|
+
...originalURLField,
|
|
116
|
+
hooks: {
|
|
117
|
+
afterRead: [
|
|
118
|
+
getAfterReadHook({
|
|
119
|
+
adapter,
|
|
120
|
+
collection,
|
|
121
|
+
disablePayloadAccessControl,
|
|
122
|
+
generateFileURL,
|
|
123
|
+
isOriginal: true
|
|
124
|
+
}),
|
|
125
|
+
...originalURLField.hooks?.afterRead || []
|
|
126
|
+
],
|
|
127
|
+
beforeChange: [
|
|
128
|
+
getBeforeChangeHook({
|
|
129
|
+
adapter,
|
|
130
|
+
collection,
|
|
131
|
+
disablePayloadAccessControl,
|
|
132
|
+
generateFileURL,
|
|
133
|
+
isOriginal: true
|
|
134
|
+
}),
|
|
135
|
+
...originalURLField.hooks?.beforeChange || []
|
|
136
|
+
]
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// Storage adapters add these fields during their `init`, after transformers (e.g. Sharp) have
|
|
141
|
+
// written each collection's image sizes onto its upload config.
|
|
142
|
+
const variants = typeof collection.upload === 'object' ? collection.upload.variants : undefined;
|
|
143
|
+
if (variants) {
|
|
81
144
|
let existingSizesFieldIndex = -1;
|
|
82
145
|
const existingSizesField = fields.find((existingField, i)=>{
|
|
83
|
-
if ('name' in existingField && existingField.name === '
|
|
146
|
+
if ('name' in existingField && existingField.name === 'variants') {
|
|
84
147
|
existingSizesFieldIndex = i;
|
|
85
148
|
return true;
|
|
86
149
|
}
|
|
@@ -91,12 +154,12 @@ export const getFields = ({ adapter, alwaysInsertFields, collection, disablePayl
|
|
|
91
154
|
}
|
|
92
155
|
const sizesField = {
|
|
93
156
|
...existingSizesField || {},
|
|
94
|
-
name: '
|
|
157
|
+
name: 'variants',
|
|
95
158
|
type: 'group',
|
|
96
159
|
admin: {
|
|
97
160
|
hidden: true
|
|
98
161
|
},
|
|
99
|
-
fields:
|
|
162
|
+
fields: variants.map((size)=>{
|
|
100
163
|
const existingSizeField = existingSizesField?.fields.find((existingField)=>'name' in existingField && existingField.name === size.name);
|
|
101
164
|
const existingSizeURLField = existingSizeField?.fields.find((existingField)=>'name' in existingField && existingField.name === 'url');
|
|
102
165
|
// Only add afterRead hook if adapter is provided
|
|
@@ -134,43 +197,47 @@ export const getFields = ({ adapter, alwaysInsertFields, collection, disablePayl
|
|
|
134
197
|
name: size.name,
|
|
135
198
|
type: 'group',
|
|
136
199
|
fields: [
|
|
137
|
-
...adapter?.fields || []
|
|
138
|
-
|
|
200
|
+
...(adapter?.fields || []).filter((field)=>!('name' in field && [
|
|
201
|
+
'_objectKey',
|
|
202
|
+
'prefix'
|
|
203
|
+
].includes(field.name))),
|
|
204
|
+
sizeURLField,
|
|
205
|
+
storedPrefixField,
|
|
206
|
+
baseObjectKeyField
|
|
139
207
|
]
|
|
140
208
|
};
|
|
141
209
|
})
|
|
142
210
|
};
|
|
143
211
|
fields.push(sizesField);
|
|
144
212
|
}
|
|
145
|
-
//
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
153
|
-
return false;
|
|
154
|
-
});
|
|
155
|
-
if (existingPrefixFieldIndex > -1) {
|
|
156
|
-
fields.splice(existingPrefixFieldIndex, 1);
|
|
213
|
+
// Always insert the prefix field so the schema stays consistent regardless of
|
|
214
|
+
// whether the plugin is enabled or a prefix is configured.
|
|
215
|
+
let existingPrefixFieldIndex = -1;
|
|
216
|
+
const existingPrefixField = fields.find((existingField, i)=>{
|
|
217
|
+
if ('name' in existingField && existingField.name === 'prefix') {
|
|
218
|
+
existingPrefixFieldIndex = i;
|
|
219
|
+
return true;
|
|
157
220
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
hooks: {
|
|
163
|
-
...existingPrefixField?.hooks,
|
|
164
|
-
beforeChange: [
|
|
165
|
-
...existingPrefixField?.hooks?.beforeChange || [],
|
|
166
|
-
getNormalizeUploadPrefixFieldHook({
|
|
167
|
-
collectionPrefix: prefix,
|
|
168
|
-
useCompositePrefixes
|
|
169
|
-
})
|
|
170
|
-
]
|
|
171
|
-
}
|
|
172
|
-
});
|
|
221
|
+
return false;
|
|
222
|
+
});
|
|
223
|
+
if (existingPrefixFieldIndex > -1) {
|
|
224
|
+
fields.splice(existingPrefixFieldIndex, 1);
|
|
173
225
|
}
|
|
226
|
+
fields.push({
|
|
227
|
+
...basePrefixField,
|
|
228
|
+
...existingPrefixField || {},
|
|
229
|
+
defaultValue: existingPrefixField?.defaultValue ?? (useCompositePrefixes ? '' : prefix ? path.posix.join(prefix) : ''),
|
|
230
|
+
hooks: {
|
|
231
|
+
...existingPrefixField?.hooks,
|
|
232
|
+
beforeChange: [
|
|
233
|
+
...existingPrefixField?.hooks?.beforeChange || [],
|
|
234
|
+
getNormalizeUploadPrefixFieldHook({
|
|
235
|
+
collectionPrefix: prefix,
|
|
236
|
+
useCompositePrefixes
|
|
237
|
+
})
|
|
238
|
+
]
|
|
239
|
+
}
|
|
240
|
+
});
|
|
174
241
|
const existingObjectKeyFieldIndex = fields.findIndex((existingField)=>'name' in existingField && existingField.name === '_objectKey');
|
|
175
242
|
if (existingObjectKeyFieldIndex > -1) {
|
|
176
243
|
fields.splice(existingObjectKeyFieldIndex, 1);
|
|
@@ -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 { GeneratedAdapter, GenerateFileURL } from '../types.js'\n\nimport { getAfterReadHook } from '../hooks/afterRead.js'\nimport { getBeforeChangeHook } from '../hooks/beforeChange.js'\nimport { getNormalizeUploadPrefixFieldHook } from '../hooks/normalizeUploadPrefix.js'\n\ninterface Args {\n adapter?: GeneratedAdapter\n /**\n * When true, always insert the prefix field regardless of whether a prefix is configured.\n */\n alwaysInsertFields?: boolean\n collection: CollectionConfig\n disablePayloadAccessControl?: true\n generateFileURL?: GenerateFileURL\n prefix?: string\n /**\n * When true, do not default the `prefix` field to the collection prefix; the\n * document field holds only the document-level segment.\n */\n useCompositePrefixes?: boolean\n}\n\nexport const getFields = ({\n adapter,\n alwaysInsertFields,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n prefix,\n useCompositePrefixes = false,\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 // Unique storage object key\n const baseObjectKeyField: TextField = {\n name: '_objectKey',\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 // Only add afterRead hook if adapter is provided\n if (adapter) {\n fields.push({\n ...baseURLField,\n ...(existingURLField || {}),\n hooks: {\n afterRead: [\n getAfterReadHook({ adapter, collection, disablePayloadAccessControl, generateFileURL }),\n ...(existingURLField?.hooks?.afterRead || []),\n ],\n beforeChange: [\n getBeforeChangeHook({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n }),\n ...(existingURLField?.hooks?.beforeChange || []),\n ],\n },\n } as TextField)\n } else {\n fields.push({\n ...baseURLField,\n ...(existingURLField || {}),\n } as TextField)\n }\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 TextField\n\n // Only add afterRead hook if adapter is provided\n const sizeURLField: TextField = adapter\n ? ({\n ...(existingSizeURLField || {}),\n ...baseURLField,\n hooks: {\n afterRead: [\n getAfterReadHook({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n size,\n }),\n ...((typeof existingSizeURLField === 'object' &&\n 'hooks' in existingSizeURLField &&\n existingSizeURLField?.hooks?.afterRead) ||\n []),\n ],\n beforeChange: [\n getBeforeChangeHook({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n size,\n }),\n ...((typeof existingSizeURLField === 'object' &&\n 'hooks' in existingSizeURLField &&\n existingSizeURLField?.hooks?.beforeChange) ||\n []),\n ],\n },\n } as TextField)\n : ({\n ...(existingSizeURLField || {}),\n ...baseURLField,\n } as TextField)\n\n return {\n ...existingSizeField,\n name: size.name,\n type: 'group',\n fields: [...(adapter?.fields || []), sizeURLField],\n } as Field\n }),\n }\n\n fields.push(sizesField)\n }\n\n // If prefix is enabled or alwaysInsertFields is true, save it to db\n if (typeof prefix !== 'undefined' || alwaysInsertFields) {\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:\n existingPrefixField?.defaultValue ??\n (useCompositePrefixes ? '' : prefix ? path.posix.join(prefix) : ''),\n hooks: {\n ...existingPrefixField?.hooks,\n beforeChange: [\n ...(existingPrefixField?.hooks?.beforeChange || []),\n getNormalizeUploadPrefixFieldHook({ collectionPrefix: prefix, useCompositePrefixes }),\n ],\n },\n } as TextField)\n }\n\n const existingObjectKeyFieldIndex = fields.findIndex(\n (existingField) => 'name' in existingField && existingField.name === '_objectKey',\n )\n if (existingObjectKeyFieldIndex > -1) {\n fields.splice(existingObjectKeyFieldIndex, 1)\n }\n\n fields.push({ ...baseObjectKeyField } as TextField)\n\n return fields\n}\n"],"names":["path","getAfterReadHook","getBeforeChangeHook","getNormalizeUploadPrefixFieldHook","getFields","adapter","alwaysInsertFields","collection","disablePayloadAccessControl","generateFileURL","prefix","useCompositePrefixes","baseURLField","name","type","admin","hidden","readOnly","label","basePrefixField","baseObjectKeyField","fields","existingURLFieldIndex","existingURLField","find","existingField","i","splice","push","hooks","afterRead","beforeChange","upload","imageSizes","existingSizesFieldIndex","existingSizesField","sizesField","map","size","existingSizeField","existingSizeURLField","sizeURLField","existingPrefixFieldIndex","existingPrefixField","defaultValue","posix","join","collectionPrefix","existingObjectKeyFieldIndex","findIndex"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/fields/getFields.ts"],"sourcesContent":["import type { CollectionConfig, Field, GroupField, SanitizedUploadConfig, TextField } from 'payload'\n\nimport path from 'path'\n\nimport type { GeneratedAdapter, GenerateFileURL } from '../types.js'\n\nimport { getAfterReadHook } from '../hooks/afterRead.js'\nimport { getBeforeChangeHook } from '../hooks/beforeChange.js'\nimport { getNormalizeUploadPrefixFieldHook } from '../hooks/normalizeUploadPrefix.js'\n\ninterface Args {\n adapter?: GeneratedAdapter\n collection: CollectionConfig\n disablePayloadAccessControl?: true\n generateFileURL?: GenerateFileURL\n prefix?: string\n /**\n * When true, do not default the `prefix` field to the collection prefix; the\n * document field holds only the document-level segment.\n */\n useCompositePrefixes?: boolean\n}\n\nexport const getFields = ({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n prefix,\n useCompositePrefixes = false,\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 disabled: {\n bulkEdit: true,\n column: true,\n filter: true,\n groupBy: true,\n },\n hidden: true,\n readOnly: true,\n },\n }\n\n // Server-owned key segment. Field-level `hidden` would remove it before the URL hooks can read it.\n const baseObjectKeyField: TextField = {\n name: '_objectKey',\n type: 'text',\n admin: {\n disabled: {\n bulkEdit: true,\n column: true,\n filter: true,\n groupBy: true,\n },\n hidden: true,\n readOnly: true,\n },\n }\n\n const storedPrefixField: TextField = {\n ...basePrefixField,\n admin: {\n ...basePrefixField.admin,\n disabled: 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 // Only add afterRead hook if adapter is provided\n if (adapter) {\n fields.push({\n ...baseURLField,\n ...(existingURLField || {}),\n hooks: {\n afterRead: [\n getAfterReadHook({ adapter, collection, disablePayloadAccessControl, generateFileURL }),\n ...(existingURLField?.hooks?.afterRead || []),\n ],\n beforeChange: [\n getBeforeChangeHook({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n }),\n ...(existingURLField?.hooks?.beforeChange || []),\n ],\n },\n } as TextField)\n } else {\n fields.push({\n ...baseURLField,\n ...(existingURLField || {}),\n } as TextField)\n }\n\n let originalField = fields.find(\n (field): field is GroupField =>\n field.type === 'group' && 'name' in field && field.name === 'original',\n )\n\n if (adapter && !originalField) {\n originalField = {\n name: 'original',\n type: 'group',\n fields: [baseURLField],\n }\n fields.push(originalField)\n }\n\n const originalURLFieldIndex = originalField?.fields.findIndex(\n (field) => 'name' in field && field.name === 'url',\n )\n\n if (\n adapter &&\n originalField &&\n originalURLFieldIndex !== undefined &&\n originalURLFieldIndex >= 0\n ) {\n const originalURLField = originalField.fields[originalURLFieldIndex] as TextField\n\n originalField.fields[originalURLFieldIndex] = {\n ...baseURLField,\n ...originalURLField,\n hooks: {\n afterRead: [\n getAfterReadHook({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n isOriginal: true,\n }),\n ...(originalURLField.hooks?.afterRead || []),\n ],\n beforeChange: [\n getBeforeChangeHook({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n isOriginal: true,\n }),\n ...(originalURLField.hooks?.beforeChange || []),\n ],\n },\n } as TextField\n }\n\n // Storage adapters add these fields during their `init`, after transformers (e.g. Sharp) have\n // written each collection's image sizes onto its upload config.\n const variants =\n typeof collection.upload === 'object'\n ? (collection.upload as SanitizedUploadConfig).variants\n : undefined\n\n if (variants) {\n let existingSizesFieldIndex = -1\n\n const existingSizesField = fields.find((existingField, i) => {\n if ('name' in existingField && existingField.name === 'variants') {\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: 'variants',\n type: 'group',\n admin: {\n hidden: true,\n },\n fields: variants.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 TextField\n\n // Only add afterRead hook if adapter is provided\n const sizeURLField: TextField = adapter\n ? ({\n ...(existingSizeURLField || {}),\n ...baseURLField,\n hooks: {\n afterRead: [\n getAfterReadHook({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n size,\n }),\n ...((typeof existingSizeURLField === 'object' &&\n 'hooks' in existingSizeURLField &&\n existingSizeURLField?.hooks?.afterRead) ||\n []),\n ],\n beforeChange: [\n getBeforeChangeHook({\n adapter,\n collection,\n disablePayloadAccessControl,\n generateFileURL,\n size,\n }),\n ...((typeof existingSizeURLField === 'object' &&\n 'hooks' in existingSizeURLField &&\n existingSizeURLField?.hooks?.beforeChange) ||\n []),\n ],\n },\n } as TextField)\n : ({\n ...(existingSizeURLField || {}),\n ...baseURLField,\n } as TextField)\n\n return {\n ...existingSizeField,\n name: size.name,\n type: 'group',\n fields: [\n ...(adapter?.fields || []).filter(\n (field) => !('name' in field && ['_objectKey', 'prefix'].includes(field.name)),\n ),\n sizeURLField,\n storedPrefixField,\n baseObjectKeyField,\n ],\n } as Field\n }),\n }\n\n fields.push(sizesField)\n }\n\n // Always insert the prefix field so the schema stays consistent regardless of\n // whether the plugin is enabled or a prefix is configured.\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:\n existingPrefixField?.defaultValue ??\n (useCompositePrefixes ? '' : prefix ? path.posix.join(prefix) : ''),\n hooks: {\n ...existingPrefixField?.hooks,\n beforeChange: [\n ...(existingPrefixField?.hooks?.beforeChange || []),\n getNormalizeUploadPrefixFieldHook({ collectionPrefix: prefix, useCompositePrefixes }),\n ],\n },\n } as TextField)\n\n const existingObjectKeyFieldIndex = fields.findIndex(\n (existingField) => 'name' in existingField && existingField.name === '_objectKey',\n )\n if (existingObjectKeyFieldIndex > -1) {\n fields.splice(existingObjectKeyFieldIndex, 1)\n }\n\n fields.push({ ...baseObjectKeyField } as TextField)\n\n return fields\n}\n"],"names":["path","getAfterReadHook","getBeforeChangeHook","getNormalizeUploadPrefixFieldHook","getFields","adapter","collection","disablePayloadAccessControl","generateFileURL","prefix","useCompositePrefixes","baseURLField","name","type","admin","hidden","readOnly","label","basePrefixField","disabled","bulkEdit","column","filter","groupBy","baseObjectKeyField","storedPrefixField","fields","existingURLFieldIndex","existingURLField","find","existingField","i","splice","push","hooks","afterRead","beforeChange","originalField","field","originalURLFieldIndex","findIndex","undefined","originalURLField","isOriginal","variants","upload","existingSizesFieldIndex","existingSizesField","sizesField","map","size","existingSizeField","existingSizeURLField","sizeURLField","includes","existingPrefixFieldIndex","existingPrefixField","defaultValue","posix","join","collectionPrefix","existingObjectKeyFieldIndex"],"mappings":"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"}
|
|
@@ -4,8 +4,10 @@ interface Args {
|
|
|
4
4
|
adapter: GeneratedAdapter;
|
|
5
5
|
collection: CollectionConfig;
|
|
6
6
|
collectionPrefix?: string;
|
|
7
|
+
disablePayloadAccessControl?: boolean;
|
|
8
|
+
hasCustomFileURL?: boolean;
|
|
7
9
|
useCompositePrefixes?: boolean;
|
|
8
10
|
}
|
|
9
|
-
export declare const getAfterChangeHook: ({ adapter, collection, collectionPrefix, useCompositePrefixes, }: Args) => CollectionAfterChangeHook<FileData & TypeWithID>;
|
|
11
|
+
export declare const getAfterChangeHook: ({ adapter, collection, collectionPrefix, disablePayloadAccessControl, hasCustomFileURL, useCompositePrefixes, }: Args) => CollectionAfterChangeHook<FileData & TypeWithID>;
|
|
10
12
|
export {};
|
|
11
13
|
//# sourceMappingURL=afterChange.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"afterChange.d.ts","sourceRoot":"","sources":["../../src/hooks/afterChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"afterChange.d.ts","sourceRoot":"","sources":["../../src/hooks/afterChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAUnD,UAAU,IAAI;IACZ,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,2BAA2B,CAAC,EAAE,OAAO,CAAA;IACrC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAQD,eAAO,MAAM,kBAAkB,oHAQ1B,IAAI,KAAG,yBAAyB,CAAC,QAAQ,GAAG,UAAU,CA2OxD,CAAA"}
|