payload 0.14.0 → 0.14.1-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/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [0.14.1-beta.0](https://github.com/payloadcms/payload/compare/v0.14.0...v0.14.1-beta.0) (2022-01-03)
2
+
3
+
4
+ ### Features
5
+
6
+ * builds a way for multipart/form-data reqs to retain non-string values ([65b0ad7](https://github.com/payloadcms/payload/commit/65b0ad7f084a9c279a1e4fb799542f97c645653d))
7
+
1
8
  # [0.14.0](https://github.com/payloadcms/payload/compare/v0.13.6...v0.14.0) (2022-01-03)
2
9
 
3
10
 
@@ -204,8 +204,16 @@ const Form = (props) => {
204
204
  const getUnflattenedValues = useCallback(() => reduceFieldsToValues(contextRef.current.fields), [contextRef]);
205
205
  const createFormData = useCallback(() => {
206
206
  const data = reduceFieldsToValues(contextRef.current.fields);
207
+ const file = data === null || data === void 0 ? void 0 : data.file;
208
+ if (file) {
209
+ delete data.file;
210
+ }
211
+ const dataToSerialize = {
212
+ _payload: JSON.stringify(data),
213
+ file,
214
+ };
207
215
  // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves
208
- const formData = serialize(data, { indices: true, nullsAsUndefineds: false });
216
+ const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false });
209
217
  return formData;
210
218
  }, [contextRef]);
211
219
  contextRef.current.dispatchFields = dispatchFields;
@@ -0,0 +1,3 @@
1
+ import { Request, Response, NextFunction } from 'express';
2
+ declare const _default: (req: Request, _: Response, next: NextFunction) => void;
3
+ export default _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = (req, _, next) => {
4
+ var _a;
5
+ if ((_a = req.body) === null || _a === void 0 ? void 0 : _a._payload) {
6
+ const payloadJSON = JSON.parse(req.body._payload);
7
+ req.body = {
8
+ ...req.body,
9
+ ...payloadJSON,
10
+ };
11
+ }
12
+ next();
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydFBheWxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhwcmVzcy9taWRkbGV3YXJlL2NvbnZlcnRQYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsa0JBQWUsQ0FBQyxHQUFZLEVBQUUsQ0FBVyxFQUFFLElBQWtCLEVBQVEsRUFBRTs7SUFDckUsSUFBSSxNQUFBLEdBQUcsQ0FBQyxJQUFJLDBDQUFFLFFBQVEsRUFBRTtRQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEQsR0FBRyxDQUFDLElBQUksR0FBRztZQUNULEdBQUcsR0FBRyxDQUFDLElBQUk7WUFDWCxHQUFHLFdBQVc7U0FDZixDQUFDO0tBQ0g7SUFFRCxJQUFJLEVBQUUsQ0FBQztBQUNULENBQUMsQ0FBQyJ9
@@ -15,6 +15,7 @@ const middleware_1 = __importDefault(require("../../localization/middleware"));
15
15
  const authenticate_1 = __importDefault(require("./authenticate"));
16
16
  const identifyAPI_1 = __importDefault(require("./identifyAPI"));
17
17
  const corsHeaders_1 = __importDefault(require("./corsHeaders"));
18
+ const convertPayload_1 = __importDefault(require("./convertPayload"));
18
19
  const middleware = (payload) => {
19
20
  const rateLimitOptions = {
20
21
  windowMs: payload.config.rateLimit.window,
@@ -36,10 +37,11 @@ const middleware = (payload) => {
36
37
  parseNested: true,
37
38
  ...payload.config.upload,
38
39
  }),
40
+ convertPayload_1.default,
39
41
  (0, corsHeaders_1.default)(payload.config),
40
42
  (0, authenticate_1.default)(payload.config),
41
43
  ...(payload.config.express.middleware || []),
42
44
  ];
43
45
  };
44
46
  exports.default = middleware;
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhwcmVzcy9taWRkbGV3YXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQThCO0FBQzlCLHdEQUFnQztBQUNoQyw4REFBc0M7QUFDdEMsOERBQXFDO0FBQ3JDLHNFQUE2QztBQUM3QyxrRUFBeUM7QUFDekMsNEVBQTRDO0FBQzVDLDRFQUEyQztBQUMzQywrRUFBbUU7QUFDbkUsa0VBQTBDO0FBQzFDLGdFQUF3QztBQUd4QyxnRUFBd0M7QUFFeEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxPQUFnQixFQUFPLEVBQUU7SUFDM0MsTUFBTSxnQkFBZ0IsR0FJbEI7UUFDRixRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTTtRQUN6QyxHQUFHLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRztLQUNsQyxDQUFDO0lBRUYsSUFBSSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxVQUFVO1FBQUUsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztJQUUvRyxPQUFPO1FBQ0wsSUFBQSw0QkFBUyxFQUFDLGdCQUFnQixDQUFDO1FBQzNCLGtCQUFRLENBQUMsVUFBVSxFQUFFO1FBQ3JCLElBQUEscUJBQVcsRUFBQyxNQUFNLENBQUM7UUFDbkIsSUFBQSx5QkFBYyxFQUFDLHdCQUF3QixDQUFDO1FBQ3hDLElBQUEsdUJBQVksRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUMzQixxQkFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN6QyxJQUFBLHFCQUFXLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQy9DLElBQUEsb0JBQXNCLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDbkQsaUJBQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pDLElBQUEsNEJBQVUsRUFBQztZQUNULFdBQVcsRUFBRSxJQUFJO1lBQ2pCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNO1NBQ3pCLENBQUM7UUFDRixJQUFBLHFCQUFXLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFBLHNCQUFZLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM1QixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztLQUM3QyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsa0JBQWUsVUFBVSxDQUFDIn0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhwcmVzcy9taWRkbGV3YXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQThCO0FBQzlCLHdEQUFnQztBQUNoQyw4REFBc0M7QUFDdEMsOERBQXFDO0FBQ3JDLHNFQUE2QztBQUM3QyxrRUFBeUM7QUFDekMsNEVBQTRDO0FBQzVDLDRFQUEyQztBQUMzQywrRUFBbUU7QUFDbkUsa0VBQTBDO0FBQzFDLGdFQUF3QztBQUd4QyxnRUFBd0M7QUFDeEMsc0VBQThDO0FBRTlDLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBZ0IsRUFBTyxFQUFFO0lBQzNDLE1BQU0sZ0JBQWdCLEdBSWxCO1FBQ0YsUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU07UUFDekMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUc7S0FDbEMsQ0FBQztJQUVGLElBQUksT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssVUFBVTtRQUFFLGdCQUFnQixDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFFL0csT0FBTztRQUNMLElBQUEsNEJBQVMsRUFBQyxnQkFBZ0IsQ0FBQztRQUMzQixrQkFBUSxDQUFDLFVBQVUsRUFBRTtRQUNyQixJQUFBLHFCQUFXLEVBQUMsTUFBTSxDQUFDO1FBQ25CLElBQUEseUJBQWMsRUFBQyx3QkFBd0IsQ0FBQztRQUN4QyxJQUFBLHVCQUFZLEVBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDM0IscUJBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDekMsSUFBQSxxQkFBVyxFQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUMvQyxJQUFBLG9CQUFzQixFQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ25ELGlCQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QyxJQUFBLDRCQUFVLEVBQUM7WUFDVCxXQUFXLEVBQUUsSUFBSTtZQUNqQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTTtTQUN6QixDQUFDO1FBQ0Ysd0JBQWM7UUFDZCxJQUFBLHFCQUFXLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFBLHNCQUFZLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM1QixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztLQUM3QyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsa0JBQWUsVUFBVSxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "0.14.0",
3
+ "version": "0.14.1-beta.0",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "SEE LICENSE IN license.md",
6
6
  "author": {