@webiny/api-headless-cms 5.21.0 → 5.22.0-beta.3

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 (36) hide show
  1. package/content/contextSetup.d.ts +1 -1
  2. package/content/contextSetup.js +2 -2
  3. package/content/graphQLHandlerFactory.js +8 -5
  4. package/content/plugins/crud/contentEntry/entryDataValidation.d.ts +8 -2
  5. package/content/plugins/crud/contentEntry/entryDataValidation.js +16 -6
  6. package/content/plugins/crud/contentEntry/markLockedFields.js +2 -2
  7. package/content/plugins/crud/contentEntry/referenceFieldsMapping.js +2 -2
  8. package/content/plugins/crud/contentEntry.crud.js +92 -10
  9. package/content/plugins/crud/contentModel/models.js +2 -1
  10. package/content/plugins/crud/contentModel.crud.js +2 -2
  11. package/content/plugins/crud/contentModelGroup.crud.js +2 -2
  12. package/content/plugins/crud/index.d.ts +1 -1
  13. package/content/plugins/crud/index.js +4 -4
  14. package/content/plugins/graphqlFields/ref.js +2 -2
  15. package/content/plugins/schema/baseSchema.js +2 -2
  16. package/content/plugins/schema/contentModels.js +2 -0
  17. package/content/plugins/schema/createFieldResolvers.js +2 -2
  18. package/content/plugins/schema/createManageResolvers.js +2 -2
  19. package/content/plugins/schema/createPreviewResolvers.js +2 -2
  20. package/content/plugins/schema/createReadResolvers.js +2 -2
  21. package/content/plugins/schema/resolvers/preview/resolveGet.js +2 -2
  22. package/content/plugins/schema/resolvers/read/resolveGet.js +2 -2
  23. package/content/plugins/storage/object.js +2 -2
  24. package/content/plugins/utils/entryStorage.js +2 -2
  25. package/content/plugins/validators/index.js +3 -1
  26. package/content/plugins/validators/unique.d.ts +7 -0
  27. package/content/plugins/validators/unique.js +62 -0
  28. package/index.d.ts +3 -3
  29. package/package.json +31 -31
  30. package/plugins/context.d.ts +1 -1
  31. package/plugins/context.js +4 -4
  32. package/plugins/crud/index.d.ts +1 -1
  33. package/plugins/crud/index.js +4 -4
  34. package/plugins/crud/settings.crud.js +2 -2
  35. package/plugins/crud/system.crud.js +2 -2
  36. package/types.d.ts +23 -4
@@ -1,4 +1,4 @@
1
1
  import { CmsContext } from "../types";
2
- import { ContextPlugin } from "@webiny/handler/plugins/ContextPlugin";
2
+ import { ContextPlugin } from "@webiny/handler";
3
3
  declare const _default: () => ContextPlugin<CmsContext>;
4
4
  export default _default;
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
 
10
10
  var _error = _interopRequireDefault(require("@webiny/error"));
11
11
 
12
- var _ContextPlugin = require("@webiny/handler/plugins/ContextPlugin");
12
+ var _handler = require("@webiny/handler");
13
13
 
14
14
  const extractHandlerHttpParameters = context => {
15
15
  var _context$http, _context$http$request, _context$http$request2;
@@ -32,7 +32,7 @@ const extractHandlerHttpParameters = context => {
32
32
  };
33
33
 
34
34
  var _default = () => {
35
- return new _ContextPlugin.ContextPlugin(async context => {
35
+ return new _handler.ContextPlugin(async context => {
36
36
  var _context$http2, _context$http2$reques;
37
37
 
38
38
  if (((_context$http2 = context.http) === null || _context$http2 === void 0 ? void 0 : (_context$http2$reques = _context$http2.request) === null || _context$http2$reques === void 0 ? void 0 : _context$http2$reques.method) === "OPTIONS") {
@@ -25,9 +25,9 @@ var _plugins = require("@webiny/handler-graphql/plugins");
25
25
 
26
26
  var _utils = require("@webiny/utils");
27
27
 
28
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
28
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
29
 
30
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
31
 
32
32
  const DEFAULT_HEADERS = _objectSpread({
33
33
  "Access-Control-Allow-Origin": "*",
@@ -38,6 +38,11 @@ const DEFAULT_HEADERS = _objectSpread({
38
38
 
39
39
  const DEFAULT_CACHE_MAX_AGE = 30758400; // 1 year
40
40
 
41
+ const OPTIONS_HEADERS = {
42
+ "Access-Control-Max-Age": `${DEFAULT_CACHE_MAX_AGE}`,
43
+ "Cache-Control": `public, max-age=${DEFAULT_CACHE_MAX_AGE}`
44
+ };
45
+
41
46
  const respond = (http, result) => {
42
47
  return http.response({
43
48
  body: JSON.stringify(result),
@@ -144,9 +149,7 @@ const graphQLHandlerFactory = (options = {}) => {
144
149
  if (http.request.method === "OPTIONS") {
145
150
  return http.response({
146
151
  statusCode: 204,
147
- headers: _objectSpread(_objectSpread({}, DEFAULT_HEADERS), {}, {
148
- "Cache-Control": "public, max-age=" + DEFAULT_CACHE_MAX_AGE
149
- })
152
+ headers: _objectSpread(_objectSpread({}, DEFAULT_HEADERS), OPTIONS_HEADERS)
150
153
  });
151
154
  }
152
155
 
@@ -1,4 +1,10 @@
1
- import { CmsModel, CmsContext } from "../../../../types";
1
+ import { CmsModel, CmsContext, CmsEntry } from "../../../../types";
2
2
  declare type InputData = Record<string, any>;
3
- export declare const validateModelEntryData: (context: CmsContext, contentModel: CmsModel, data: InputData) => Promise<void>;
3
+ export interface Params {
4
+ context: CmsContext;
5
+ model: CmsModel;
6
+ data: InputData;
7
+ entry?: CmsEntry;
8
+ }
9
+ export declare const validateModelEntryData: (params: Params) => Promise<void>;
4
10
  export {};
@@ -18,7 +18,8 @@ const validateValue = async (args, fieldValidators, value) => {
18
18
  validatorList,
19
19
  context,
20
20
  field,
21
- contentModel
21
+ model,
22
+ entry
22
23
  } = args;
23
24
 
24
25
  try {
@@ -36,7 +37,8 @@ const validateValue = async (args, fieldValidators, value) => {
36
37
  context,
37
38
  validator: fieldValidator,
38
39
  field,
39
- contentModel
40
+ model,
41
+ entry
40
42
  });
41
43
 
42
44
  if (!result) {
@@ -139,11 +141,18 @@ const execValidation = async args => {
139
141
  return await runFieldValueValidations(args);
140
142
  };
141
143
 
142
- const validateModelEntryData = async (context, contentModel, data) => {
144
+ const validateModelEntryData = async params => {
145
+ const {
146
+ context,
147
+ model,
148
+ entry,
149
+ data
150
+ } = params;
143
151
  /**
144
152
  * To later simplify searching for the validations we map them to a name.
145
153
  * @see CmsModelFieldValidatorPlugin.validator.validate
146
154
  */
155
+
147
156
  const validatorList = context.plugins.byType("cms-model-field-validator").reduce((acc, plugin) => {
148
157
  const name = plugin.validator.name;
149
158
 
@@ -161,13 +170,14 @@ const validateModelEntryData = async (context, contentModel, data) => {
161
170
 
162
171
  const invalidFields = [];
163
172
 
164
- for (const field of contentModel.fields) {
173
+ for (const field of model.fields) {
165
174
  const error = await execValidation({
166
- contentModel,
175
+ model,
167
176
  validatorList,
168
177
  field,
169
178
  data,
170
- context
179
+ context,
180
+ entry
171
181
  });
172
182
 
173
183
  if (!error) {
@@ -13,9 +13,9 @@ var _error = _interopRequireDefault(require("@webiny/error"));
13
13
 
14
14
  var _CmsModelPlugin = require("../../CmsModelPlugin");
15
15
 
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
17
 
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
19
 
20
20
  const markLockedFields = async params => {
21
21
  const {
@@ -15,9 +15,9 @@ var _dotProp = _interopRequireDefault(require("dot-prop"));
15
15
 
16
16
  var _utils = require("@webiny/utils");
17
17
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
 
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  const buildReferenceFieldPaths = params => {
23
23
  const {
@@ -37,9 +37,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
37
37
 
38
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
39
 
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
40
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
41
41
 
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
42
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
43
43
 
44
44
  const STATUS_DRAFT = "draft";
45
45
  exports.STATUS_DRAFT = STATUS_DRAFT;
@@ -50,17 +50,89 @@ exports.STATUS_UNPUBLISHED = STATUS_UNPUBLISHED;
50
50
  const STATUS_CHANGES_REQUESTED = "changesRequested";
51
51
  exports.STATUS_CHANGES_REQUESTED = STATUS_CHANGES_REQUESTED;
52
52
  const STATUS_REVIEW_REQUESTED = "reviewRequested";
53
+ /**
54
+ * Used for some fields to convert their values.
55
+ */
56
+
53
57
  exports.STATUS_REVIEW_REQUESTED = STATUS_REVIEW_REQUESTED;
54
58
 
59
+ const convertDefaultValue = (field, value) => {
60
+ switch (field.type) {
61
+ case "boolean":
62
+ return Boolean(value);
63
+
64
+ case "number":
65
+ return Number(value);
66
+
67
+ default:
68
+ return value;
69
+ }
70
+ };
71
+
72
+ const getDefaultValue = field => {
73
+ const {
74
+ settings,
75
+ multipleValues
76
+ } = field;
77
+
78
+ if (settings && settings.defaultValue !== undefined) {
79
+ return convertDefaultValue(field, settings.defaultValue);
80
+ }
81
+
82
+ const {
83
+ predefinedValues
84
+ } = field;
85
+
86
+ if (!predefinedValues || !predefinedValues.enabled || Array.isArray(predefinedValues.values) === false) {
87
+ return undefined;
88
+ }
89
+
90
+ if (!multipleValues) {
91
+ const selectedValue = predefinedValues.values.find(value => {
92
+ return !!value.selected;
93
+ });
94
+
95
+ if (selectedValue) {
96
+ return convertDefaultValue(field, selectedValue.value);
97
+ }
98
+
99
+ return undefined;
100
+ }
101
+
102
+ return predefinedValues.values.filter(({
103
+ selected
104
+ }) => !!selected).map(({
105
+ value
106
+ }) => {
107
+ return convertDefaultValue(field, value);
108
+ });
109
+ };
110
+ /**
111
+ * Cleans and adds default values to create input data.
112
+ */
113
+
114
+
55
115
  const cleanInputData = (model, input) => {
56
116
  return model.fields.reduce((acc, field) => {
57
- acc[field.fieldId] = input[field.fieldId];
117
+ const value = input[field.fieldId];
118
+ /**
119
+ * We set the default value on create input if value is not defined.
120
+ */
121
+
122
+ acc[field.fieldId] = value === undefined ? getDefaultValue(field) : value;
58
123
  return acc;
59
124
  }, {});
60
125
  };
126
+ /**
127
+ * Cleans the update input entry data.
128
+ */
129
+
61
130
 
62
131
  const cleanUpdatedInputData = (model, input) => {
63
132
  return model.fields.reduce((acc, field) => {
133
+ /**
134
+ * We cannot set default value here because user might want to updated only certain field values.
135
+ */
64
136
  if (input[field.fieldId] === undefined) {
65
137
  return acc;
66
138
  }
@@ -405,7 +477,11 @@ const createContentEntryCrud = params => {
405
477
  */
406
478
 
407
479
  const initialInput = cleanInputData(model, inputData);
408
- await (0, _entryDataValidation.validateModelEntryData)(context, model, initialInput);
480
+ await (0, _entryDataValidation.validateModelEntryData)({
481
+ context,
482
+ model,
483
+ data: initialInput
484
+ });
409
485
  const input = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
410
486
  context,
411
487
  model,
@@ -506,7 +582,12 @@ const createContentEntryCrud = params => {
506
582
 
507
583
  const initialValues = _objectSpread(_objectSpread({}, originalEntry.values), input);
508
584
 
509
- await (0, _entryDataValidation.validateModelEntryData)(context, model, initialValues);
585
+ await (0, _entryDataValidation.validateModelEntryData)({
586
+ context,
587
+ model,
588
+ data: initialValues,
589
+ entry: originalEntry
590
+ });
510
591
  const values = await (0, _referenceFieldsMapping.referenceFieldsMapping)({
511
592
  context,
512
593
  model,
@@ -584,11 +665,6 @@ const createContentEntryCrud = params => {
584
665
  */
585
666
 
586
667
  const input = cleanUpdatedInputData(model, inputData);
587
- /**
588
- * Validate data early. We don't want to query DB if input data is invalid.
589
- */
590
-
591
- await (0, _entryDataValidation.validateModelEntryData)(context, model, input);
592
668
  /**
593
669
  * The entry we are going to update.
594
670
  */
@@ -606,6 +682,12 @@ const createContentEntryCrud = params => {
606
682
  }
607
683
 
608
684
  const originalEntry = await (0, _entryStorage.entryFromStorageTransform)(context, model, originalStorageEntry);
685
+ await (0, _entryDataValidation.validateModelEntryData)({
686
+ context,
687
+ model,
688
+ data: input,
689
+ entry: originalEntry
690
+ });
609
691
  utils.checkOwnership(context, permission, originalEntry);
610
692
 
611
693
  const initialValues = _objectSpread(_objectSpread({}, originalEntry.values), input);
@@ -90,7 +90,8 @@ const ContentModelFieldModel = (0, _fields.withFields)({
90
90
  list: true,
91
91
  instanceOf: (0, _fields.withFields)({
92
92
  label: (0, _fields.string)(),
93
- value: (0, _fields.string)()
93
+ value: (0, _fields.string)(),
94
+ selected: (0, _fields.boolean)()
94
95
  })()
95
96
  })
96
97
  })()
@@ -45,9 +45,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
45
45
 
46
46
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
47
 
48
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
48
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
49
49
 
50
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
50
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
51
51
 
52
52
  const createModelsCrud = params => {
53
53
  const {
@@ -35,9 +35,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
35
35
 
36
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
37
 
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
38
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
39
 
40
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
40
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
41
 
42
42
  const CreateContentModelGroupModel = (0, _fields.withFields)({
43
43
  name: (0, _fields.string)({
@@ -1,4 +1,4 @@
1
- import { ContextPlugin } from "@webiny/handler/plugins/ContextPlugin";
1
+ import { ContextPlugin } from "@webiny/handler";
2
2
  import { CmsContext, HeadlessCmsStorageOperations } from "../../../types";
3
3
  export interface Params {
4
4
  storageOperations: HeadlessCmsStorageOperations;
@@ -9,7 +9,7 @@ exports.createContentCruds = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- var _ContextPlugin = require("@webiny/handler/plugins/ContextPlugin");
12
+ var _handler = require("@webiny/handler");
13
13
 
14
14
  var _contentModelGroup = require("./contentModelGroup.crud");
15
15
 
@@ -21,9 +21,9 @@ var _system = require("../../../plugins/crud/system.crud");
21
21
 
22
22
  var _settings = require("../../../plugins/crud/settings.crud");
23
23
 
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
25
 
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
27
 
28
28
  const debug = process.env.DEBUG === "true";
29
29
 
@@ -31,7 +31,7 @@ const createContentCruds = params => {
31
31
  const {
32
32
  storageOperations
33
33
  } = params;
34
- return new _ContextPlugin.ContextPlugin(async context => {
34
+ return new _handler.ContextPlugin(async context => {
35
35
  /**
36
36
  * This should never happen in the actual project.
37
37
  * It is to make sure that we load setup context before the CRUD init in our internal code.
@@ -15,9 +15,9 @@ var _utils = require("@webiny/utils");
15
15
 
16
16
  var _requiredField = require("./requiredField");
17
17
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
 
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  const createUnionTypeName = (model, field) => {
23
23
  return `${(0, _createTypeName.createReadTypeName)(model.modelId)}${(0, _createTypeName.createReadTypeName)(field.fieldId)}`;
@@ -13,9 +13,9 @@ var _builtInTypes = require("@webiny/handler-graphql/builtInTypes");
13
13
 
14
14
  var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
15
15
 
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
17
 
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
19
 
20
20
  const baseSchema = context => {
21
21
  const scalars = context.plugins.byType("graphql-scalar").map(item => item.scalar);
@@ -90,6 +90,7 @@ const plugin = context => {
90
90
  input CmsPredefinedValueInput {
91
91
  label: String!
92
92
  value: String!
93
+ selected: Boolean
93
94
  }
94
95
 
95
96
  input CmsPredefinedValuesInput {
@@ -180,6 +181,7 @@ const plugin = context => {
180
181
  type CmsPredefinedValue {
181
182
  label: String
182
183
  value: String
184
+ selected: Boolean
183
185
  }
184
186
 
185
187
  type CmsPredefinedValues {
@@ -15,9 +15,9 @@ var _set = _interopRequireDefault(require("lodash/set"));
15
15
 
16
16
  var _entryStorage = require("../utils/entryStorage");
17
17
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
 
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  /**
23
23
  * We use a factory to avoid passing the parameters for recursive invocations.
@@ -45,9 +45,9 @@ var _pluralizedTypeName = require("../utils/pluralizedTypeName");
45
45
 
46
46
  var _getEntryTitle = require("../utils/getEntryTitle");
47
47
 
48
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
48
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
49
49
 
50
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
50
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
51
51
 
52
52
  const createManageResolvers = ({
53
53
  models,
@@ -19,9 +19,9 @@ var _createTypeName = require("../utils/createTypeName");
19
19
 
20
20
  var _pluralizedTypeName = require("../utils/pluralizedTypeName");
21
21
 
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
23
 
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
25
 
26
26
  const createPreviewResolvers = ({
27
27
  models,
@@ -19,9 +19,9 @@ var _createTypeName = require("../utils/createTypeName");
19
19
 
20
20
  var _pluralizedTypeName = require("../utils/pluralizedTypeName");
21
21
 
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
23
 
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
25
 
26
26
  const createReadResolvers = ({
27
27
  models,
@@ -13,9 +13,9 @@ var _responses = require("@webiny/handler-graphql/responses");
13
13
 
14
14
  var _handlerGraphql = require("@webiny/handler-graphql");
15
15
 
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
17
 
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
19
 
20
20
  const resolveGet = ({
21
21
  model
@@ -13,9 +13,9 @@ var _responses = require("@webiny/handler-graphql/responses");
13
13
 
14
14
  var _handlerGraphql = require("@webiny/handler-graphql");
15
15
 
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
17
 
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
19
 
20
20
  const resolveGet = ({
21
21
  model
@@ -15,9 +15,9 @@ var _pMap = _interopRequireDefault(require("p-map"));
15
15
 
16
16
  var _StorageTransformPlugin = require("./StorageTransformPlugin");
17
17
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
 
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  const processValue = async ({
23
23
  fields,
@@ -13,9 +13,9 @@ var _error = _interopRequireDefault(require("@webiny/error"));
13
13
 
14
14
  var _StorageTransformPlugin = require("../storage/StorageTransformPlugin");
15
15
 
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
17
 
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
19
 
20
20
  const getStoragePluginFactory = context => {
21
21
  let defaultStoragePlugin;
@@ -31,6 +31,8 @@ var _timeLte = _interopRequireDefault(require("./timeLte"));
31
31
 
32
32
  var _timeGte = _interopRequireDefault(require("./timeGte"));
33
33
 
34
- var _default = () => [_gte.default, _in.default, _lte.default, _pattern.default, _required.default, _minLength.default, _maxLength.default, _patternPlugins.default, (0, _dateLte.default)(), (0, _dateGte.default)(), (0, _timeLte.default)(), (0, _timeGte.default)()];
34
+ var _unique = _interopRequireDefault(require("./unique"));
35
+
36
+ var _default = () => [_gte.default, _in.default, _lte.default, _pattern.default, _required.default, _minLength.default, _maxLength.default, _patternPlugins.default, (0, _dateLte.default)(), (0, _dateGte.default)(), (0, _timeLte.default)(), (0, _timeGte.default)(), (0, _unique.default)()];
35
37
 
36
38
  exports.default = _default;
@@ -0,0 +1,7 @@
1
+ import { CmsModelFieldValidatorPlugin } from "../../../types";
2
+ declare const _default: () => CmsModelFieldValidatorPlugin;
3
+ /**
4
+ * Validation if the field value is unique.
5
+ * Be aware of using this in DynamoDB only environment as all records will be loaded to check for the unique value.
6
+ */
7
+ export default _default;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _error = _interopRequireDefault(require("@webiny/error"));
11
+
12
+ /**
13
+ * Validation if the field value is unique.
14
+ * Be aware of using this in DynamoDB only environment as all records will be loaded to check for the unique value.
15
+ */
16
+ var _default = () => {
17
+ return {
18
+ type: "cms-model-field-validator",
19
+ name: "cms-model-field-validator-unique",
20
+ validator: {
21
+ name: "unique",
22
+ validate: async ({
23
+ field,
24
+ value: initialValue,
25
+ context,
26
+ model,
27
+ entry
28
+ }) => {
29
+ const manager = await context.cms.getModelManager(model);
30
+ /**
31
+ * If there is no value passed, we are assuming that user does not want any value to be validated.
32
+ * If user needs something to passed into a unique field, they must add "required" validator.
33
+ */
34
+
35
+ const value = (initialValue || "").trim();
36
+
37
+ if (!value) {
38
+ return true;
39
+ }
40
+
41
+ try {
42
+ const [items] = await manager.listLatest({
43
+ where: {
44
+ entryId_not: entry ? entry.entryId : undefined,
45
+ [field.fieldId]: value
46
+ },
47
+ limit: 1
48
+ });
49
+ return items.length === 0;
50
+ } catch (ex) {
51
+ throw new _error.default("Error while checking if the field value is unique.", "UNIQUE_CHECK_ERROR", {
52
+ field,
53
+ value,
54
+ model
55
+ });
56
+ }
57
+ }
58
+ }
59
+ };
60
+ };
61
+
62
+ exports.default = _default;
package/index.d.ts CHANGED
@@ -3,10 +3,10 @@ import { Params as CreateContentCrudsParams } from "./content/plugins/crud";
3
3
  import { CreateGraphQLHandlerOptions } from "./content/graphQLHandlerFactory";
4
4
  import { StorageTransformPlugin } from "./content/plugins/storage/StorageTransformPlugin";
5
5
  export declare type AdminContextParams = CreateAdminCrudsParams;
6
- export declare const createAdminHeadlessCmsContext: (params: AdminContextParams) => (import("@webiny/handler/plugins/ContextPlugin").ContextPlugin<import("./types").CmsContext> | import("@webiny/api-upgrade").UpgradePlugin<import("./types").CmsContext>[])[];
7
- export declare const createAdminHeadlessCmsGraphQL: () => import("@webiny/handler-graphql/types").GraphQLSchemaPlugin<import("@webiny/handler/types").ContextInterface>;
6
+ export declare const createAdminHeadlessCmsContext: (params: AdminContextParams) => (import("@webiny/handler").ContextPlugin<import("./types").CmsContext> | import("@webiny/api-upgrade").UpgradePlugin<import("./types").CmsContext>[])[];
7
+ export declare const createAdminHeadlessCmsGraphQL: () => import("@webiny/handler-graphql/types").GraphQLSchemaPlugin<import("@webiny/handler/types").Context>;
8
8
  export declare type ContentContextParams = CreateContentCrudsParams;
9
- export declare const createContentHeadlessCmsContext: (params: ContentContextParams) => (import("./types").ModelManagerPlugin | import("./types").CmsModelFieldToGraphQLPlugin[] | StorageTransformPlugin<any, any> | import("@webiny/handler/plugins/ContextPlugin").ContextPlugin<import("./types").CmsContext> | (import("./types").CmsModelFieldValidatorPlugin | import("./types").CmsModelFieldPatternValidatorPlugin[])[])[];
9
+ export declare const createContentHeadlessCmsContext: (params: ContentContextParams) => (import("./types").ModelManagerPlugin | import("./types").CmsModelFieldToGraphQLPlugin[] | StorageTransformPlugin<any, any> | import("@webiny/handler").ContextPlugin<import("./types").CmsContext> | (import("./types").CmsModelFieldValidatorPlugin | import("./types").CmsModelFieldPatternValidatorPlugin[])[])[];
10
10
  export declare type ContentGraphQLParams = CreateGraphQLHandlerOptions;
11
11
  export declare const createContentHeadlessCmsGraphQL: (params?: ContentGraphQLParams) => import("@webiny/plugins/types").PluginCollection;
12
12
  export { StorageTransformPlugin };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/api-headless-cms",
3
- "version": "5.21.0",
3
+ "version": "5.22.0-beta.3",
4
4
  "main": "index.js",
5
5
  "keywords": [
6
6
  "cms:base"
@@ -18,26 +18,26 @@
18
18
  ],
19
19
  "license": "MIT",
20
20
  "dependencies": {
21
- "@babel/runtime": "7.16.3",
21
+ "@babel/runtime": "7.16.7",
22
22
  "@commodo/fields": "1.1.2-beta.20",
23
23
  "@graphql-tools/schema": "7.1.5",
24
- "@webiny/api-file-manager": "5.21.0",
25
- "@webiny/api-i18n": "5.21.0",
26
- "@webiny/api-i18n-content": "5.21.0",
27
- "@webiny/api-i18n-ddb": "5.21.0",
28
- "@webiny/api-security": "5.21.0",
29
- "@webiny/api-tenancy": "5.21.0",
30
- "@webiny/api-upgrade": "5.21.0",
31
- "@webiny/error": "5.21.0",
32
- "@webiny/handler": "5.21.0",
33
- "@webiny/handler-aws": "5.21.0",
34
- "@webiny/handler-db": "5.21.0",
35
- "@webiny/handler-graphql": "5.21.0",
36
- "@webiny/handler-http": "5.21.0",
37
- "@webiny/plugins": "5.21.0",
38
- "@webiny/pubsub": "5.21.0",
39
- "@webiny/utils": "5.21.0",
40
- "@webiny/validation": "5.21.0",
24
+ "@webiny/api-file-manager": "5.22.0-beta.3",
25
+ "@webiny/api-i18n": "5.22.0-beta.3",
26
+ "@webiny/api-i18n-content": "5.22.0-beta.3",
27
+ "@webiny/api-i18n-ddb": "5.22.0-beta.3",
28
+ "@webiny/api-security": "5.22.0-beta.3",
29
+ "@webiny/api-tenancy": "5.22.0-beta.3",
30
+ "@webiny/api-upgrade": "5.22.0-beta.3",
31
+ "@webiny/error": "5.22.0-beta.3",
32
+ "@webiny/handler": "5.22.0-beta.3",
33
+ "@webiny/handler-aws": "5.22.0-beta.3",
34
+ "@webiny/handler-db": "5.22.0-beta.3",
35
+ "@webiny/handler-graphql": "5.22.0-beta.3",
36
+ "@webiny/handler-http": "5.22.0-beta.3",
37
+ "@webiny/plugins": "5.22.0-beta.3",
38
+ "@webiny/pubsub": "5.22.0-beta.3",
39
+ "@webiny/utils": "5.22.0-beta.3",
40
+ "@webiny/validation": "5.22.0-beta.3",
41
41
  "boolean": "3.1.4",
42
42
  "commodo-fields-object": "1.0.6",
43
43
  "dataloader": "2.0.0",
@@ -47,20 +47,20 @@
47
47
  "p-reduce": "2.1.0",
48
48
  "pluralize": "8.0.0",
49
49
  "shortid": "2.2.16",
50
- "slugify": "1.6.2"
50
+ "slugify": "1.6.5"
51
51
  },
52
52
  "devDependencies": {
53
- "@babel/cli": "^7.5.5",
54
- "@babel/core": "^7.5.5",
55
- "@babel/preset-env": "^7.5.5",
56
- "@babel/preset-flow": "^7.0.0",
57
- "@webiny/api-security-so-ddb": "^5.21.0",
58
- "@webiny/api-tenancy-so-ddb": "^5.21.0",
59
- "@webiny/cli": "^5.21.0",
60
- "@webiny/project-utils": "^5.21.0",
61
- "apollo-graphql": "^0.4.1",
53
+ "@babel/cli": "^7.16.0",
54
+ "@babel/core": "^7.16.0",
55
+ "@babel/preset-env": "^7.16.4",
56
+ "@babel/preset-flow": "^7.16.0",
57
+ "@webiny/api-security-so-ddb": "^5.22.0-beta.3",
58
+ "@webiny/api-tenancy-so-ddb": "^5.22.0-beta.3",
59
+ "@webiny/cli": "^5.22.0-beta.3",
60
+ "@webiny/project-utils": "^5.22.0-beta.3",
61
+ "apollo-graphql": "^0.9.5",
62
62
  "get-yarn-workspaces": "^1.0.2",
63
- "graphql": "^14.6.0",
63
+ "graphql": "^15.7.2",
64
64
  "jest": "^26.6.3",
65
65
  "mdbid": "^1.0.0",
66
66
  "prettier": "^2.3.2",
@@ -77,5 +77,5 @@
77
77
  "build": "yarn webiny run build",
78
78
  "watch": "yarn webiny run watch"
79
79
  },
80
- "gitHead": "c3d4955bf74e7ffdb9628867e3b23cdfe64ea8dc"
80
+ "gitHead": "7a6b4ce3b9f31fe0702fffd28b7959c637e9a20b"
81
81
  }
@@ -1,4 +1,4 @@
1
- import { ContextPlugin } from "@webiny/handler/plugins/ContextPlugin";
1
+ import { ContextPlugin } from "@webiny/handler";
2
2
  import { CmsContext } from "../types";
3
3
  declare const _default: () => ContextPlugin<CmsContext>;
4
4
  export default _default;
@@ -9,14 +9,14 @@ exports.default = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- var _ContextPlugin = require("@webiny/handler/plugins/ContextPlugin");
12
+ var _handler = require("@webiny/handler");
13
13
 
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
15
 
16
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
17
 
18
18
  var _default = () => {
19
- return new _ContextPlugin.ContextPlugin(context => {
19
+ return new _handler.ContextPlugin(context => {
20
20
  const locale = context.i18nContent.getCurrentLocale();
21
21
  context.cms = _objectSpread(_objectSpread({}, context.cms || {}), {}, {
22
22
  locale: locale ? locale.code : "en-US",
@@ -1,5 +1,5 @@
1
1
  import { CmsContext, HeadlessCmsStorageOperations } from "../../types";
2
- import { ContextPlugin } from "@webiny/handler/plugins/ContextPlugin";
2
+ import { ContextPlugin } from "@webiny/handler";
3
3
  export interface Params {
4
4
  storageOperations: HeadlessCmsStorageOperations;
5
5
  }
@@ -13,7 +13,7 @@ var _settings = require("./settings.crud");
13
13
 
14
14
  var _system = require("./system.crud");
15
15
 
16
- var _ContextPlugin = require("@webiny/handler/plugins/ContextPlugin");
16
+ var _handler = require("@webiny/handler");
17
17
 
18
18
  var _contentModelGroup = require("../../content/plugins/crud/contentModelGroup.crud");
19
19
 
@@ -21,9 +21,9 @@ var _contentModel = require("../../content/plugins/crud/contentModel.crud");
21
21
 
22
22
  var _contentEntry = require("../../content/plugins/crud/contentEntry.crud");
23
23
 
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
25
 
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
27
 
28
28
  const debug = process.env.DEBUG === "true";
29
29
 
@@ -31,7 +31,7 @@ const createAdminCruds = params => {
31
31
  const {
32
32
  storageOperations
33
33
  } = params;
34
- return new _ContextPlugin.ContextPlugin(async context => {
34
+ return new _handler.ContextPlugin(async context => {
35
35
  /**
36
36
  * This should never happen in the actual project.
37
37
  * It is to make sure that we load setup context before the CRUD init in our internal code.
@@ -15,9 +15,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
 
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  const createSettingsCrud = params => {
23
23
  const {
@@ -19,9 +19,9 @@ var _error = _interopRequireDefault(require("@webiny/error"));
19
19
 
20
20
  var _pubsub = require("@webiny/pubsub");
21
21
 
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
23
 
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
25
 
26
26
  const initialContentModelGroup = {
27
27
  name: "Ungrouped",
package/types.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { Plugin } from "@webiny/plugins/types";
2
2
  import { I18NContext, I18NLocale } from "@webiny/api-i18n/types";
3
- import { ContextInterface } from "@webiny/handler/types";
3
+ import { Context } from "@webiny/handler/types";
4
4
  import { TenancyContext } from "@webiny/api-tenancy/types";
5
5
  import { GraphQLFieldResolver, GraphQLSchemaDefinition, Resolvers } from "@webiny/handler-graphql/types";
6
- import { BaseI18NContentContext } from "@webiny/api-i18n-content/types";
6
+ import { I18NContentContext } from "@webiny/api-i18n-content/types";
7
7
  import { SecurityPermission } from "@webiny/api-security/types";
8
8
  import { HttpContext } from "@webiny/handler-http/types";
9
9
  import { DbContext } from "@webiny/handler-db/types";
@@ -45,12 +45,16 @@ export interface HeadlessCms extends CmsSettingsContext, CmsSystemContext, CmsGr
45
45
  *
46
46
  * @category Context
47
47
  */
48
- export interface CmsContext extends ContextInterface, DbContext, HttpContext, I18NContext, FileManagerContext, BaseI18NContentContext, TenancyContext {
48
+ export interface CmsContext extends Context, DbContext, HttpContext, I18NContext, FileManagerContext, I18NContentContext, TenancyContext {
49
49
  cms: HeadlessCms;
50
50
  }
51
51
  interface CmsModelFieldPredefinedValuesValue {
52
52
  value: string;
53
53
  label: string;
54
+ /**
55
+ * Default selected predefined value.
56
+ */
57
+ selected?: boolean;
54
58
  }
55
59
  /**
56
60
  * Object containing content model field predefined options and values.
@@ -143,6 +147,13 @@ export interface CmsModelField {
143
147
  * @default {}
144
148
  */
145
149
  settings?: {
150
+ /**
151
+ * The default value for the field in case it is not predefined values field.
152
+ */
153
+ defaultValue?: string | number | null | undefined;
154
+ /**
155
+ * There are a lot of other settings that are possible to add so we keep the type opened.
156
+ */
146
157
  [key: string]: any;
147
158
  };
148
159
  }
@@ -186,7 +197,12 @@ export interface CmsModelFieldValidatorValidateParams<T = any> {
186
197
  /**
187
198
  * An instance of the content model being validated.
188
199
  */
189
- contentModel: CmsModel;
200
+ model: CmsModel;
201
+ /**
202
+ * If entry is sent it means it is an update operation.
203
+ * First usage is for the unique field value.
204
+ */
205
+ entry?: CmsEntry;
190
206
  }
191
207
  /**
192
208
  * Definition for the field validator.
@@ -400,6 +416,9 @@ export interface CmsModelFieldToGraphQLPlugin extends Plugin {
400
416
  * ```
401
417
  */
402
418
  isSortable: boolean;
419
+ /**
420
+ * Read API methods.
421
+ */
403
422
  read: {
404
423
  /**
405
424
  * Definition for get filtering for GraphQL.