@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.
- package/content/contextSetup.d.ts +1 -1
- package/content/contextSetup.js +2 -2
- package/content/graphQLHandlerFactory.js +8 -5
- package/content/plugins/crud/contentEntry/entryDataValidation.d.ts +8 -2
- package/content/plugins/crud/contentEntry/entryDataValidation.js +16 -6
- package/content/plugins/crud/contentEntry/markLockedFields.js +2 -2
- package/content/plugins/crud/contentEntry/referenceFieldsMapping.js +2 -2
- package/content/plugins/crud/contentEntry.crud.js +92 -10
- package/content/plugins/crud/contentModel/models.js +2 -1
- package/content/plugins/crud/contentModel.crud.js +2 -2
- package/content/plugins/crud/contentModelGroup.crud.js +2 -2
- package/content/plugins/crud/index.d.ts +1 -1
- package/content/plugins/crud/index.js +4 -4
- package/content/plugins/graphqlFields/ref.js +2 -2
- package/content/plugins/schema/baseSchema.js +2 -2
- package/content/plugins/schema/contentModels.js +2 -0
- package/content/plugins/schema/createFieldResolvers.js +2 -2
- package/content/plugins/schema/createManageResolvers.js +2 -2
- package/content/plugins/schema/createPreviewResolvers.js +2 -2
- package/content/plugins/schema/createReadResolvers.js +2 -2
- package/content/plugins/schema/resolvers/preview/resolveGet.js +2 -2
- package/content/plugins/schema/resolvers/read/resolveGet.js +2 -2
- package/content/plugins/storage/object.js +2 -2
- package/content/plugins/utils/entryStorage.js +2 -2
- package/content/plugins/validators/index.js +3 -1
- package/content/plugins/validators/unique.d.ts +7 -0
- package/content/plugins/validators/unique.js +62 -0
- package/index.d.ts +3 -3
- package/package.json +31 -31
- package/plugins/context.d.ts +1 -1
- package/plugins/context.js +4 -4
- package/plugins/crud/index.d.ts +1 -1
- package/plugins/crud/index.js +4 -4
- package/plugins/crud/settings.crud.js +2 -2
- package/plugins/crud/system.crud.js +2 -2
- package/types.d.ts +23 -4
package/content/contextSetup.js
CHANGED
|
@@ -9,7 +9,7 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
11
|
|
|
12
|
-
var
|
|
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
|
|
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);
|
|
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]
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
173
|
+
for (const field of model.fields) {
|
|
165
174
|
const error = await execValidation({
|
|
166
|
-
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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
|
-
|
|
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)(
|
|
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)(
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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
|
|
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
|
|
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);
|
|
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]
|
|
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
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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
|
|
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
|
|
7
|
-
export declare const createAdminHeadlessCmsGraphQL: () => import("@webiny/handler-graphql/types").GraphQLSchemaPlugin<import("@webiny/handler/types").
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
25
|
-
"@webiny/api-i18n": "5.
|
|
26
|
-
"@webiny/api-i18n-content": "5.
|
|
27
|
-
"@webiny/api-i18n-ddb": "5.
|
|
28
|
-
"@webiny/api-security": "5.
|
|
29
|
-
"@webiny/api-tenancy": "5.
|
|
30
|
-
"@webiny/api-upgrade": "5.
|
|
31
|
-
"@webiny/error": "5.
|
|
32
|
-
"@webiny/handler": "5.
|
|
33
|
-
"@webiny/handler-aws": "5.
|
|
34
|
-
"@webiny/handler-db": "5.
|
|
35
|
-
"@webiny/handler-graphql": "5.
|
|
36
|
-
"@webiny/handler-http": "5.
|
|
37
|
-
"@webiny/plugins": "5.
|
|
38
|
-
"@webiny/pubsub": "5.
|
|
39
|
-
"@webiny/utils": "5.
|
|
40
|
-
"@webiny/validation": "5.
|
|
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.
|
|
50
|
+
"slugify": "1.6.5"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@babel/cli": "^7.
|
|
54
|
-
"@babel/core": "^7.
|
|
55
|
-
"@babel/preset-env": "^7.
|
|
56
|
-
"@babel/preset-flow": "^7.
|
|
57
|
-
"@webiny/api-security-so-ddb": "^5.
|
|
58
|
-
"@webiny/api-tenancy-so-ddb": "^5.
|
|
59
|
-
"@webiny/cli": "^5.
|
|
60
|
-
"@webiny/project-utils": "^5.
|
|
61
|
-
"apollo-graphql": "^0.
|
|
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": "^
|
|
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": "
|
|
80
|
+
"gitHead": "7a6b4ce3b9f31fe0702fffd28b7959c637e9a20b"
|
|
81
81
|
}
|
package/plugins/context.d.ts
CHANGED
package/plugins/context.js
CHANGED
|
@@ -9,14 +9,14 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
12
|
-
var
|
|
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);
|
|
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]
|
|
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
|
|
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",
|
package/plugins/crud/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CmsContext, HeadlessCmsStorageOperations } from "../../types";
|
|
2
|
-
import { ContextPlugin } from "@webiny/handler
|
|
2
|
+
import { ContextPlugin } from "@webiny/handler";
|
|
3
3
|
export interface Params {
|
|
4
4
|
storageOperations: HeadlessCmsStorageOperations;
|
|
5
5
|
}
|
package/plugins/crud/index.js
CHANGED
|
@@ -13,7 +13,7 @@ var _settings = require("./settings.crud");
|
|
|
13
13
|
|
|
14
14
|
var _system = require("./system.crud");
|
|
15
15
|
|
|
16
|
-
var
|
|
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);
|
|
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]
|
|
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
|
|
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);
|
|
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]
|
|
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);
|
|
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]
|
|
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 {
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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.
|