payload 1.1.5 → 1.1.6

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.
Files changed (40) hide show
  1. package/dist/admin/components/elements/FileDetails/index.js +1 -1
  2. package/dist/admin/components/elements/RenderTitle/index.js +1 -4
  3. package/dist/admin/components/forms/field-types/Relationship/index.js +1 -1
  4. package/dist/admin/components/forms/field-types/RichText/RichText.js +25 -2
  5. package/dist/admin/components/forms/field-types/RichText/index.scss +24 -0
  6. package/dist/admin/components/forms/field-types/Select/index.js +2 -2
  7. package/dist/admin/components/forms/field-types/Textarea/index.scss +1 -0
  8. package/dist/admin/components/forms/field-types/Upload/index.scss +4 -4
  9. package/dist/admin/scss/app.scss +1 -0
  10. package/dist/auth/operations/access.js +3 -3
  11. package/dist/collections/config/types.d.ts +1 -1
  12. package/dist/collections/operations/create.js +12 -4
  13. package/dist/collections/operations/find.js +9 -2
  14. package/dist/collections/operations/findByID.js +2 -1
  15. package/dist/collections/operations/findVersions.js +9 -2
  16. package/dist/collections/operations/update.js +12 -4
  17. package/dist/fields/hooks/afterRead/promise.js +3 -3
  18. package/dist/globals/operations/findOne.js +2 -1
  19. package/dist/globals/operations/findVersions.js +9 -2
  20. package/dist/mongoose/buildSortParam.d.ts +11 -1
  21. package/dist/mongoose/buildSortParam.js +13 -3
  22. package/dist/mongoose/getLocalizedSortProperty.d.ts +11 -0
  23. package/dist/mongoose/getLocalizedSortProperty.js +69 -0
  24. package/dist/mongoose/getLocalizedSortProperty.spec.d.ts +1 -0
  25. package/dist/mongoose/getLocalizedSortProperty.spec.js +167 -0
  26. package/dist/uploads/{uploadFile.d.ts → generateFileData.d.ts} +7 -2
  27. package/dist/uploads/generateFileData.js +101 -0
  28. package/dist/uploads/imageResizer.d.ts +6 -2
  29. package/dist/uploads/imageResizer.js +25 -19
  30. package/dist/uploads/types.d.ts +4 -0
  31. package/dist/uploads/uploadFiles.d.ts +3 -0
  32. package/dist/uploads/uploadFiles.js +21 -0
  33. package/dist/utilities/flattenTopLevelFields.js +2 -2
  34. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +2 -1
  35. package/dist/versions/drafts/replaceWithDraftIfAvailable.js +51 -50
  36. package/docs/authentication/config.mdx +2 -0
  37. package/docs/rest-api/overview.mdx +15 -13
  38. package/package.json +1 -1
  39. package/CHANGELOG.md +0 -1957
  40. package/dist/uploads/uploadFile.js +0 -92
@@ -19,7 +19,8 @@ function getOutputImage(sourceImage, size) {
19
19
  };
20
20
  }
21
21
  async function resizeAndSave({ req, file, dimensions, staticPath, config, savedFilename, }) {
22
- const { imageSizes, disableLocalStorage } = config.upload;
22
+ const { imageSizes } = config.upload;
23
+ const sizesToSave = [];
23
24
  const sizes = imageSizes
24
25
  .filter((desiredSize) => needsResize(desiredSize, dimensions))
25
26
  .map(async (desiredSize) => {
@@ -31,43 +32,48 @@ async function resizeAndSave({ req, file, dimensions, staticPath, config, savedF
31
32
  resolveWithObject: true,
32
33
  });
33
34
  req.payloadUploadSizes[desiredSize.name] = bufferObject.data;
35
+ const mimeType = (await (0, file_type_1.fromBuffer)(bufferObject.data));
34
36
  const outputImage = getOutputImage(savedFilename, desiredSize);
35
- const imageNameWithDimensions = createImageName(outputImage, bufferObject);
37
+ const imageNameWithDimensions = createImageName(outputImage, bufferObject, mimeType.ext);
36
38
  const imagePath = `${staticPath}/${imageNameWithDimensions}`;
37
39
  const fileAlreadyExists = await (0, fileExists_1.default)(imagePath);
38
40
  if (fileAlreadyExists) {
39
41
  fs_1.default.unlinkSync(imagePath);
40
42
  }
41
- if (!disableLocalStorage) {
42
- await resized.toFile(imagePath);
43
- }
43
+ sizesToSave.push({
44
+ path: imagePath,
45
+ buffer: bufferObject.data,
46
+ });
44
47
  return {
45
48
  name: desiredSize.name,
46
49
  width: bufferObject.info.width,
47
50
  height: bufferObject.info.height,
48
51
  filename: imageNameWithDimensions,
49
52
  filesize: bufferObject.info.size,
50
- mimeType: (await (0, file_type_1.fromBuffer)(bufferObject.data)).mime,
53
+ mimeType: mimeType.mime,
51
54
  };
52
55
  });
53
56
  const savedSizes = await Promise.all(sizes);
54
- return savedSizes.reduce((results, size) => ({
55
- ...results,
56
- [size.name]: {
57
- width: size.width,
58
- height: size.height,
59
- filename: size.filename,
60
- mimeType: size.mimeType,
61
- filesize: size.filesize,
62
- },
63
- }), {});
57
+ return {
58
+ sizeData: savedSizes.reduce((results, size) => ({
59
+ ...results,
60
+ [size.name]: {
61
+ width: size.width,
62
+ height: size.height,
63
+ filename: size.filename,
64
+ mimeType: size.mimeType,
65
+ filesize: size.filesize,
66
+ },
67
+ }), {}),
68
+ sizesToSave,
69
+ };
64
70
  }
65
71
  exports.default = resizeAndSave;
66
- function createImageName(outputImage, bufferObject) {
67
- return `${outputImage.name}-${bufferObject.info.width}x${bufferObject.info.height}.${outputImage.extension}`;
72
+ function createImageName(outputImage, bufferObject, extension) {
73
+ return `${outputImage.name}-${bufferObject.info.width}x${bufferObject.info.height}.${extension}`;
68
74
  }
69
75
  function needsResize(desiredSize, dimensions) {
70
76
  return (typeof desiredSize.width === 'number' && desiredSize.width <= dimensions.width)
71
77
  || (typeof desiredSize.height === 'number' && desiredSize.height <= dimensions.height);
72
78
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VSZXNpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VwbG9hZHMvaW1hZ2VSZXNpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQXVDO0FBQ3ZDLDRDQUFvQjtBQUNwQiwwRUFBeUM7QUFDekMsa0RBQTBCO0FBRzFCLDhEQUFzQztBQXFCdEMsU0FBUyxjQUFjLENBQUMsV0FBbUIsRUFBRSxJQUFlO0lBQzFELE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0MsTUFBTSxJQUFJLEdBQUcsSUFBQSwyQkFBUSxFQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQztJQUU3RixPQUFPO1FBQ0wsSUFBSTtRQUNKLFNBQVM7UUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRWMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxFQUMxQyxHQUFHLEVBQ0gsSUFBSSxFQUNKLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLGFBQWEsR0FDUjtJQUNMLE1BQU0sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBRTFELE1BQU0sS0FBSyxHQUFHLFVBQVU7U0FDckIsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzdELEdBQUcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDekIsSUFBSSxPQUFPLEdBQUcsSUFBQSxlQUFLLEVBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcs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
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VSZXNpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VwbG9hZHMvaW1hZ2VSZXNpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQXVDO0FBQ3ZDLDRDQUFvQjtBQUNwQiwwRUFBeUM7QUFDekMsa0RBQTBCO0FBRzFCLDhEQUFzQztBQTBCdEMsU0FBUyxjQUFjLENBQUMsV0FBbUIsRUFBRSxJQUFlO0lBQzFELE1BQU0sU0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0MsTUFBTSxJQUFJLEdBQUcsSUFBQSwyQkFBUSxFQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQztJQUU3RixPQUFPO1FBQ0wsSUFBSTtRQUNKLFNBQVM7UUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7UUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRWMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxFQUMxQyxHQUFHLEVBQ0gsSUFBSSxFQUNKLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLGFBQWEsR0FDUjtJQUNMLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3JDLE1BQU0sV0FBVyxHQUFpQixFQUFFLENBQUM7SUFFckMsTUFBTSxLQUFLLEdBQUcsVUFBVTtTQUNyQixNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDN0QsR0FBRyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRTtRQUN6QixJQUFJLE9BQU8sR0FBRyxJQUFBLGVBQUssRUFBQyxJQUFJLENBQUMs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
@@ -71,3 +71,7 @@ export declare type File = {
71
71
  name: string;
72
72
  size: number;
73
73
  };
74
+ export declare type FileToSave = {
75
+ buffer: Buffer;
76
+ path: string;
77
+ };
@@ -0,0 +1,3 @@
1
+ import { FileToSave } from './types';
2
+ import { Payload } from '..';
3
+ export declare const uploadFiles: (payload: Payload, files: FileToSave[]) => Promise<void>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.uploadFiles = void 0;
7
+ const errors_1 = require("../errors");
8
+ const saveBufferToFile_1 = __importDefault(require("./saveBufferToFile"));
9
+ const uploadFiles = async (payload, files) => {
10
+ try {
11
+ await Promise.all(files.map(async ({ buffer, path }) => {
12
+ await (0, saveBufferToFile_1.default)(buffer, path);
13
+ }));
14
+ }
15
+ catch (err) {
16
+ payload.logger.error(err);
17
+ throw new errors_1.FileUploadError();
18
+ }
19
+ };
20
+ exports.uploadFiles = uploadFiles;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkRmlsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXBsb2Fkcy91cGxvYWRGaWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzQ0FBNEM7QUFDNUMsMEVBQWtEO0FBSTNDLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxPQUFnQixFQUFFLEtBQW1CLEVBQWlCLEVBQUU7SUFDeEYsSUFBSTtRQUNGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ3JELE1BQU0sSUFBQSwwQkFBZ0IsRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNMO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDWixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixNQUFNLElBQUksd0JBQWUsRUFBRSxDQUFDO0tBQzdCO0FBQ0gsQ0FBQyxDQUFDO0FBVFcsUUFBQSxXQUFXLGVBU3RCIn0=
@@ -21,7 +21,7 @@ const flattenFields = (fields, keepPresentationalFields) => {
21
21
  ...field.tabs.reduce((tabFields, tab) => {
22
22
  return [
23
23
  ...tabFields,
24
- ...((0, types_1.tabHasName)(tab) ? [tab] : flattenFields(tab.fields, keepPresentationalFields)),
24
+ ...((0, types_1.tabHasName)(tab) ? [{ ...tab, type: 'tab' }] : flattenFields(tab.fields, keepPresentationalFields)),
25
25
  ];
26
26
  }, []),
27
27
  ];
@@ -30,4 +30,4 @@ const flattenFields = (fields, keepPresentationalFields) => {
30
30
  }, []);
31
31
  };
32
32
  exports.default = flattenFields;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHRlblRvcExldmVsRmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9mbGF0dGVuVG9wTGV2ZWxGaWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrREFRZ0M7QUFFaEMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFlLEVBQUUsd0JBQWtDLEVBQW9ELEVBQUU7SUFDOUgsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzFDLElBQUksSUFBQSx3QkFBZ0IsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHdCQUF3QixJQUFJLElBQUEsaUNBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM3RixPQUFPO2dCQUNMLEdBQUcsV0FBVztnQkFDZCxLQUFLO2FBQ04sQ0FBQztTQUNIO1FBRUQsSUFBSSxJQUFBLHlCQUFpQixFQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVCLE9BQU87Z0JBQ0wsR0FBRyxXQUFXO2dCQUNkLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUM7YUFDekQsQ0FBQztTQUNIO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN6QixPQUFPO2dCQUNMLEdBQUcsV0FBVztnQkFDZCxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUN0QyxPQUFPO3dCQUNMLEdBQUcsU0FBUzt3QkFDWixHQUFHLENBQUMsSUFBQSxrQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO3FCQUNuRixDQUFDO2dCQUNKLENBQUMsRUFBRSxFQUFFLENBQUM7YUFDUCxDQUFDO1NBQ0g7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUM7QUFFRixrQkFBZSxhQUFhLENBQUMifQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHRlblRvcExldmVsRmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxpdGllcy9mbGF0dGVuVG9wTGV2ZWxGaWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrREFRZ0M7QUFFaEMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFlLEVBQUUsd0JBQWtDLEVBQW9ELEVBQUU7SUFDOUgsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzFDLElBQUksSUFBQSx3QkFBZ0IsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHdCQUF3QixJQUFJLElBQUEsaUNBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM3RixPQUFPO2dCQUNMLEdBQUcsV0FBVztnQkFDZCxLQUFLO2FBQ04sQ0FBQztTQUNIO1FBRUQsSUFBSSxJQUFBLHlCQUFpQixFQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVCLE9BQU87Z0JBQ0wsR0FBRyxXQUFXO2dCQUNkLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsd0JBQXdCLENBQUM7YUFDekQsQ0FBQztTQUNIO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN6QixPQUFPO2dCQUNMLEdBQUcsV0FBVztnQkFDZCxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUN0QyxPQUFPO3dCQUNMLEdBQUcsU0FBUzt3QkFDWixHQUFHLENBQUMsSUFBQSxrQkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLHdCQUF3QixDQUFDLENBQUM7cUJBQ3ZHLENBQUM7Z0JBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUNQLENBQUM7U0FDSDtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMsQ0FBQztBQUVGLGtCQUFlLGFBQWEsQ0FBQyJ9
@@ -5,9 +5,10 @@ import { SanitizedGlobalConfig } from '../../globals/config/types';
5
5
  declare type Arguments<T> = {
6
6
  payload: Payload;
7
7
  entity: SanitizedCollectionConfig | SanitizedGlobalConfig;
8
+ entityType: 'collection' | 'global';
8
9
  doc: T;
9
10
  locale: string;
10
11
  accessResult: AccessResult;
11
12
  };
12
- declare const replaceWithDraftIfAvailable: <T extends TypeWithID>({ payload, entity, doc, locale, accessResult, }: Arguments<T>) => Promise<T>;
13
+ declare const replaceWithDraftIfAvailable: <T extends TypeWithID>({ payload, entity, entityType, doc, locale, accessResult, }: Arguments<T>) => Promise<T>;
13
14
  export default replaceWithDraftIfAvailable;
@@ -8,59 +8,60 @@ const auth_1 = require("../../auth");
8
8
  const flattenWhereConstraints_1 = __importDefault(require("../../utilities/flattenWhereConstraints"));
9
9
  const sanitizeInternalFields_1 = __importDefault(require("../../utilities/sanitizeInternalFields"));
10
10
  const appendVersionToQueryKey_1 = require("./appendVersionToQueryKey");
11
- const replaceWithDraftIfAvailable = async ({ payload, entity, doc, locale, accessResult, }) => {
12
- if ((0, types_1.docHasTimestamps)(doc)) {
13
- const VersionModel = payload.versions[entity.slug];
14
- let useEstimatedCount = false;
15
- const queryToBuild = {
16
- where: {
17
- and: [
18
- {
19
- parent: {
20
- equals: doc.id,
21
- },
22
- },
23
- {
24
- 'version._status': {
25
- equals: 'draft',
26
- },
27
- },
28
- {
29
- updatedAt: {
30
- greater_than: doc.updatedAt,
31
- },
11
+ const replaceWithDraftIfAvailable = async ({ payload, entity, entityType, doc, locale, accessResult, }) => {
12
+ const VersionModel = payload.versions[entity.slug];
13
+ let useEstimatedCount = false;
14
+ const queryToBuild = {
15
+ where: {
16
+ and: [
17
+ {
18
+ 'version._status': {
19
+ equals: 'draft',
32
20
  },
33
- ],
21
+ },
22
+ ],
23
+ },
24
+ };
25
+ if (entityType === 'collection') {
26
+ queryToBuild.where.and.push({
27
+ parent: {
28
+ equals: doc.id,
34
29
  },
35
- };
36
- if ((0, auth_1.hasWhereAccessResult)(accessResult)) {
37
- const versionAccessResult = (0, appendVersionToQueryKey_1.appendVersionToQueryKey)(accessResult);
38
- queryToBuild.where.and.push(versionAccessResult);
39
- }
40
- const constraints = (0, flattenWhereConstraints_1.default)(queryToBuild);
41
- useEstimatedCount = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near'));
42
- const query = await VersionModel.buildQuery(queryToBuild, locale);
43
- let draft = await VersionModel.findOne(query, {}, {
44
- lean: true,
45
- useEstimatedCount,
46
- sort: { updatedAt: 'desc' },
47
30
  });
48
- if (!draft) {
49
- return doc;
50
- }
51
- draft = JSON.parse(JSON.stringify(draft));
52
- draft = (0, sanitizeInternalFields_1.default)(draft);
53
- // Disregard all other draft content at this point,
54
- // Only interested in the version itself.
55
- // Operations will handle firing hooks, etc.
56
- return {
57
- id: doc.id,
58
- ...draft.version,
59
- createdAt: draft.createdAt,
60
- updatedAt: draft.updatedAt,
61
- };
62
31
  }
63
- return doc;
32
+ if ((0, types_1.docHasTimestamps)(doc)) {
33
+ queryToBuild.where.and.push({
34
+ updatedAt: {
35
+ greater_than: doc.updatedAt,
36
+ },
37
+ });
38
+ }
39
+ if ((0, auth_1.hasWhereAccessResult)(accessResult)) {
40
+ const versionAccessResult = (0, appendVersionToQueryKey_1.appendVersionToQueryKey)(accessResult);
41
+ queryToBuild.where.and.push(versionAccessResult);
42
+ }
43
+ const constraints = (0, flattenWhereConstraints_1.default)(queryToBuild);
44
+ useEstimatedCount = constraints.some((prop) => Object.keys(prop).some((key) => key === 'near'));
45
+ const query = await VersionModel.buildQuery(queryToBuild, locale);
46
+ let draft = await VersionModel.findOne(query, {}, {
47
+ lean: true,
48
+ useEstimatedCount,
49
+ sort: { updatedAt: 'desc' },
50
+ });
51
+ if (!draft) {
52
+ return doc;
53
+ }
54
+ draft = JSON.parse(JSON.stringify(draft));
55
+ draft = (0, sanitizeInternalFields_1.default)(draft);
56
+ // Disregard all other draft content at this point,
57
+ // Only interested in the version itself.
58
+ // Operations will handle firing hooks, etc.
59
+ return {
60
+ id: doc.id,
61
+ ...draft.version,
62
+ createdAt: draft.createdAt,
63
+ updatedAt: draft.updatedAt,
64
+ };
64
65
  };
65
66
  exports.default = replaceWithDraftIfAvailable;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZVdpdGhEcmFmdElmQXZhaWxhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZlcnNpb25zL2RyYWZ0cy9yZXBsYWNlV2l0aERyYWZ0SWZBdmFpbGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSx1Q0FBc0Q7QUFDdEQscUNBQWtEO0FBR2xELHNHQUE4RTtBQUM5RSxvR0FBNEU7QUFDNUUsdUVBQW9FO0FBV3BFLE1BQU0sMkJBQTJCLEdBQUcsS0FBSyxFQUF3QixFQUMvRCxPQUFPLEVBQ1AsTUFBTSxFQUNOLEdBQUcsRUFDSCxNQUFNLEVBQ04sWUFBWSxHQUNDLEVBQWMsRUFBRTtJQUM3QixJQUFJLElBQUEsd0JBQWdCLEVBQUMsR0FBRyxDQUFDLEVBQUU7UUFDekIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFvQixDQUFDO1FBRXRFLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE1BQU0sWUFBWSxHQUFxQjtZQUNyQyxLQUFLLEVBQUU7Z0JBQ0wsR0FBRyxFQUFFO29CQUNIO3dCQUNFLE1BQU0sRUFBRTs0QkFDTixNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUU7eUJBQ2Y7cUJBQ0Y7b0JBQ0Q7d0JBQ0UsaUJBQWlCLEVBQUU7NEJBQ2pCLE1BQU0sRUFBRSxPQUFPO3lCQUNoQjtxQkFDRjtvQkFDRDt3QkFDRSxTQUFTLEVBQUU7NEJBQ1QsWUFBWSxFQUFFLEdBQUcsQ0FBQyxTQUFTO3lCQUM1QjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksSUFBQSwyQkFBb0IsRUFBQyxZQUFZLENBQUMsRUFBRTtZQUN0QyxNQUFNLG1CQUFtQixHQUFHLElBQUEsaURBQXVCLEVBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEUsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDbEQ7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFBLGlDQUF1QixFQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFELGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNoRyxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWxFLElBQUksS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2hELElBQUksRUFBRSxJQUFJO1lBQ1YsaUJBQWlCO1lBQ2pCLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUU7U0FDNUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFFRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUMsS0FBSyxHQUFHLElBQUEsZ0NBQXNCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsbURBQW1EO1FBQ25ELHlDQUF5QztRQUN6Qyw0Q0FBNEM7UUFDNUMsT0FBTztZQUNMLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNWLEdBQUcsS0FBSyxDQUFDLE9BQU87WUFDaEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztTQUMzQixDQUFDO0tBQ0g7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLGtCQUFlLDJCQUEyQixDQUFDIn0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZVdpdGhEcmFmdElmQXZhaWxhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZlcnNpb25zL2RyYWZ0cy9yZXBsYWNlV2l0aERyYWZ0SWZBdmFpbGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSx1Q0FBc0Q7QUFDdEQscUNBQWtEO0FBR2xELHNHQUE4RTtBQUM5RSxvR0FBNEU7QUFDNUUsdUVBQW9FO0FBWXBFLE1BQU0sMkJBQTJCLEdBQUcsS0FBSyxFQUF3QixFQUMvRCxPQUFPLEVBQ1AsTUFBTSxFQUNOLFVBQVUsRUFDVixHQUFHLEVBQ0gsTUFBTSxFQUNOLFlBQVksR0FDQyxFQUFjLEVBQUU7SUFDN0IsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFvQixDQUFDO0lBRXRFLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBRTlCLE1BQU0sWUFBWSxHQUFxQjtRQUNyQyxLQUFLLEVBQUU7WUFDTCxHQUFHLEVBQUU7Z0JBQ0g7b0JBQ0UsaUJBQWlCLEVBQUU7d0JBQ2pCLE1BQU0sRUFBRSxPQUFPO3FCQUNoQjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFO1FBQy9CLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUMxQixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2FBQ2Y7U0FDRixDQUFDLENBQUM7S0FDSjtJQUVELElBQUksSUFBQSx3QkFBZ0IsRUFBQyxHQUFHLENBQUMsRUFBRTtRQUN6QixZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDMUIsU0FBUyxFQUFFO2dCQUNULFlBQVksRUFBRSxHQUFHLENBQUMsU0FBUzthQUM1QjtTQUNGLENBQUMsQ0FBQztLQUNKO0lBRUQsSUFBSSxJQUFBLDJCQUFvQixFQUFDLFlBQVksQ0FBQyxFQUFFO1FBQ3RDLE1BQU0sbUJBQW1CLEdBQUcsSUFBQSxpREFBdUIsRUFBQyxZQUFZLENBQUMsQ0FBQztRQUNsRSxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUNsRDtJQUVELE1BQU0sV0FBVyxHQUFHLElBQUEsaUNBQXVCLEVBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUQsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFbEUsSUFBSSxLQUFLLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDaEQsSUFBSSxFQUFFLElBQUk7UUFDVixpQkFBaUI7UUFDakIsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRTtLQUM1QixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxHQUFHLENBQUM7S0FDWjtJQUVELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxQyxLQUFLLEdBQUcsSUFBQSxnQ0FBc0IsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUV0QyxtREFBbUQ7SUFDbkQseUNBQXlDO0lBQ3pDLDRDQUE0QztJQUM1QyxPQUFPO1FBQ0wsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ1YsR0FBRyxLQUFLLENBQUMsT0FBTztRQUNoQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO0tBQzNCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixrQkFBZSwyQkFBMkIsQ0FBQyJ9
@@ -57,6 +57,8 @@ const response = await fetch("http://localhost:3000/api/pages", {
57
57
  });
58
58
  ```
59
59
 
60
+ Note: The label portion of the header is case-sensitive and will likely have a capitalized first character unless the label has been customized.
61
+
60
62
  ### Forgot Password
61
63
 
62
64
  You can customize how the Forgot Password workflow operates with the following options on the `auth.forgotPassword` property:
@@ -22,15 +22,17 @@ All Payload API routes are mounted prefixed to your config's `routes.api` URL se
22
22
 
23
23
  Each collection is mounted using its `slug` value. For example, if a collection's slug is `users`, all corresponding routes will be mounted on `/api/users`.
24
24
 
25
+ Note: Collection slugs must be formatted in kebab-case
26
+
25
27
  **All CRUD operations are exposed as follows:**
26
28
 
27
29
  | Method | Path | Description |
28
30
  | -------- | --------------------------- | -------------------------------------- |
29
- | `GET` | `/api/{collectionSlug}` | Find paginated documents |
30
- | `GET` | `/api/{collectionSlug}/:id` | Find a specific document by ID |
31
- | `POST` | `/api/{collectionSlug}` | Create a new document |
32
- | `PATCH` | `/api/{collectionSlug}/:id` | Update a document by ID |
33
- | `DELETE` | `/api/{collectionSlug}/:id` | Delete an existing document by ID |
31
+ | `GET` | `/api/{collection-slug}` | Find paginated documents |
32
+ | `GET` | `/api/{collection-slug}/:id` | Find a specific document by ID |
33
+ | `POST` | `/api/{collection-slug}` | Create a new document |
34
+ | `PATCH` | `/api/{collection-slug}/:id` | Update a document by ID |
35
+ | `DELETE` | `/api/{collection-slug}/:id` | Delete an existing document by ID |
34
36
 
35
37
  ##### Additional `find` query parameters
36
38
 
@@ -47,14 +49,14 @@ Auth enabled collections are also given the following endpoints:
47
49
 
48
50
  | Method | Path | Description |
49
51
  | -------- | --------------------------- | ----------- |
50
- | `POST` | `/api/{collectionSlug}/verify/:token` | [Email verification](/docs/authentication/operations#verify-by-email), if enabled. |
51
- | `POST` | `/api/{collectionSlug}/unlock` | [Unlock a user's account](/docs/authentication/operations#unlock), if enabled. |
52
- | `POST` | `/api/{collectionSlug}/login` | [Logs in](/docs/authentication/operations#login) a user with email / password. |
53
- | `POST` | `/api/{collectionSlug}/logout` | [Logs out](/docs/authentication/operations#logout) a user. |
54
- | `POST` | `/api/{collectionSlug}/refresh-token` | [Refreshes a token](/docs/authentication/operations#refresh) that has not yet expired. |
55
- | `GET` | `/api/{collectionSlug}/me` | [Returns the currently logged in user with token](/docs/authentication/operations#me). |
56
- | `POST` | `/api/{collectionSlug}/forgot-password` | [Password reset workflow](/docs/authentication/operations#forgot-password) entry point. |
57
- | `POST` | `/api/{collectionSlug}/reset-password` | [To reset the user's password](/docs/authentication/operations#reset-password). |
52
+ | `POST` | `/api/{collection-slug}/verify/:token` | [Email verification](/docs/authentication/operations#verify-by-email), if enabled. |
53
+ | `POST` | `/api/{collection-slug}/unlock` | [Unlock a user's account](/docs/authentication/operations#unlock), if enabled. |
54
+ | `POST` | `/api/{collection-slug}/login` | [Logs in](/docs/authentication/operations#login) a user with email / password. |
55
+ | `POST` | `/api/{collection-slug}/logout` | [Logs out](/docs/authentication/operations#logout) a user. |
56
+ | `POST` | `/api/{collection-slug}/refresh-token` | [Refreshes a token](/docs/authentication/operations#refresh) that has not yet expired. |
57
+ | `GET` | `/api/{collection-slug}/me` | [Returns the currently logged in user with token](/docs/authentication/operations#me). |
58
+ | `POST` | `/api/{collection-slug}/forgot-password` | [Password reset workflow](/docs/authentication/operations#forgot-password) entry point. |
59
+ | `POST` | `/api/{collection-slug}/reset-password` | [To reset the user's password](/docs/authentication/operations#reset-password). |
58
60
 
59
61
  ## Globals
60
62
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "1.1.5",
3
+ "version": "1.1.6",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "author": {