@webiny/api-headless-cms 5.39.0-beta.0 → 5.39.0-beta.2
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/constants.d.ts +31 -0
- package/constants.js +48 -1
- package/constants.js.map +1 -1
- package/context.js +40 -34
- package/context.js.map +1 -1
- package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
- package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
- package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
- package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
- package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
- package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
- package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
- package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
- package/crud/contentEntry/entryDataFactories/index.js +95 -0
- package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
- package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
- package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
- package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
- package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
- package/crud/contentEntry/entryDataValidation.js +29 -24
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.js +14 -9
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +10 -12
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.js +2 -3
- package/crud/contentEntry/searchableFields.js.map +1 -1
- package/crud/contentEntry.crud.d.ts +1 -4
- package/crud/contentEntry.crud.js +140 -383
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/fields/descriptionField.js +1 -1
- package/crud/contentModel/fields/descriptionField.js.map +1 -1
- package/crud/contentModel/fields/imageField.js +3 -7
- package/crud/contentModel/fields/imageField.js.map +1 -1
- package/crud/contentModel/fields/titleField.js +1 -1
- package/crud/contentModel/fields/titleField.js.map +1 -1
- package/crud/contentModel/listModelsFromDatabase.js +3 -4
- package/crud/contentModel/listModelsFromDatabase.js.map +1 -1
- package/crud/contentModel/validateModelFields.js +4 -5
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +96 -96
- package/crud/contentModel.crud.js +28 -26
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/validation.d.ts +1 -1
- package/crud/contentModelGroup.crud.js +18 -15
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/system.crud.js +4 -4
- package/crud/system.crud.js.map +1 -1
- package/export/crud/exporting.js +2 -3
- package/export/crud/exporting.js.map +1 -1
- package/export/crud/importing.js +3 -3
- package/export/crud/importing.js.map +1 -1
- package/export/crud/imports/importData.js +30 -3
- package/export/crud/imports/importData.js.map +1 -1
- package/export/crud/imports/importGroups.js +15 -10
- package/export/crud/imports/importGroups.js.map +1 -1
- package/export/crud/imports/importModels.js +14 -12
- package/export/crud/imports/importModels.js.map +1 -1
- package/export/crud/imports/validateGroups.js +13 -7
- package/export/crud/imports/validateGroups.js.map +1 -1
- package/export/crud/imports/validateInput.js +15 -9
- package/export/crud/imports/validateInput.js.map +1 -1
- package/export/crud/imports/validateModels.d.ts +4 -1
- package/export/crud/imports/validateModels.js +24 -25
- package/export/crud/imports/validateModels.js.map +1 -1
- package/export/types.d.ts +2 -0
- package/export/types.js.map +1 -1
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -6
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +2 -7
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +44 -37
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/graphql/getSchema.js +15 -9
- package/graphql/getSchema.js.map +1 -1
- package/graphql/index.d.ts +1 -1
- package/graphql/schema/baseContentSchema.js +6 -7
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.js +1 -8
- package/graphql/schema/baseSchema.js.map +1 -1
- package/graphql/schema/contentEntries.js +44 -13
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.js +1 -1
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.js +5 -5
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.js +11 -11
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageResolvers.js +6 -9
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.js +30 -24
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +4 -5
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +4 -5
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.js +9 -4
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +1 -1
- package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +9 -4
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.d.ts +1 -2
- package/graphql/schema/resolvers/manage/resolvePublish.js +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.js +3 -4
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +3 -4
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphqlFields/datetime.js +1 -2
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.js +13 -13
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +6 -6
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
- package/graphqlFields/index.js +2 -1
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/json.d.ts +2 -0
- package/graphqlFields/json.js +49 -0
- package/graphqlFields/json.js.map +1 -0
- package/graphqlFields/object.js +20 -28
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +24 -14
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
- package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
- package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
- package/graphqlFields/richText/richTextResolver.d.ts +7 -0
- package/graphqlFields/richText/richTextResolver.js +39 -0
- package/graphqlFields/richText/richTextResolver.js.map +1 -0
- package/graphqlFields/richText.js +8 -2
- package/graphqlFields/richText.js.map +1 -1
- package/htmlRenderer/LexicalRenderer.d.ts +5 -0
- package/htmlRenderer/LexicalRenderer.js +28 -0
- package/htmlRenderer/LexicalRenderer.js.map +1 -0
- package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
- package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
- package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +4 -4
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.js +0 -4
- package/modelManager/DefaultCmsModelManager.js.map +1 -1
- package/package.json +21 -19
- package/parameters/context.js +1 -1
- package/parameters/context.js.map +1 -1
- package/parameters/header.js +1 -2
- package/parameters/header.js.map +1 -1
- package/parameters/manual.js +6 -3
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js +1 -2
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin.js +3 -4
- package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +1 -4
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
- package/plugins/CmsGroupPlugin.js +4 -7
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.js +3 -4
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.d.ts +6 -4
- package/plugins/CmsModelPlugin.js +52 -27
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +1 -4
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
- package/plugins/CmsRichTextRendererPlugin.js +28 -0
- package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
- package/plugins/StorageOperationsCmsModelPlugin.js +3 -6
- package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
- package/plugins/StorageTransformPlugin.d.ts +2 -2
- package/plugins/StorageTransformPlugin.js +1 -4
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.d.ts +1 -0
- package/plugins/index.js +11 -0
- package/plugins/index.js.map +1 -1
- package/storage/index.d.ts +1 -0
- package/storage/index.js +15 -0
- package/storage/index.js.map +1 -0
- package/storage/json.d.ts +2 -0
- package/storage/json.js +27 -0
- package/storage/json.js.map +1 -0
- package/storage/object.js +5 -7
- package/storage/object.js.map +1 -1
- package/types.d.ts +182 -53
- package/types.js +0 -3
- package/types.js.map +1 -1
- package/utils/access.d.ts +0 -1
- package/utils/access.js +1 -10
- package/utils/access.js.map +1 -1
- package/utils/caching/Cache.js +3 -5
- package/utils/caching/Cache.js.map +1 -1
- package/utils/caching/CacheKey.js +0 -3
- package/utils/caching/CacheKey.js.map +1 -1
- package/utils/converters/Converter.js +1 -4
- package/utils/converters/Converter.js.map +1 -1
- package/utils/converters/ConverterCollection.js +10 -6
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.js +3 -3
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/date.d.ts +2 -2
- package/utils/date.js +1 -1
- package/utils/date.js.map +1 -1
- package/utils/entryStorage.js +3 -3
- package/utils/entryStorage.js.map +1 -1
- package/utils/identity.d.ts +2 -0
- package/utils/identity.js +20 -0
- package/utils/identity.js.map +1 -0
- package/utils/permissions/ModelsPermissions.js +0 -3
- package/utils/permissions/ModelsPermissions.js.map +1 -1
- package/utils/renderGetFilterFields.js +2 -3
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderListFilterFields.js +9 -3
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.js +2 -1
- package/utils/renderSortEnum.js.map +1 -1
- package/validators/gte.js +1 -2
- package/validators/gte.js.map +1 -1
- package/validators/in.js +1 -2
- package/validators/in.js.map +1 -1
- package/validators/lte.js +1 -2
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.js +1 -2
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.js +1 -2
- package/validators/minLength.js.map +1 -1
- package/validators/pattern.js +2 -2
- package/validators/pattern.js.map +1 -1
- package/validators/timeGte.js +1 -2
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.js +1 -2
- package/validators/timeLte.js.map +1 -1
- package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
- package/graphql/schema/resolvers/commonFieldResolvers.js +0 -15
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
|
@@ -1,26 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.CmsModelObjectFieldConverterPlugin = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
7
|
var _CmsModelFieldConverterPlugin = require("../plugins/CmsModelFieldConverterPlugin");
|
|
11
8
|
class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.CmsModelFieldConverterPlugin {
|
|
12
|
-
|
|
13
|
-
super(...args);
|
|
14
|
-
(0, _defineProperty2.default)(this, "name", "cms.field.converter.object");
|
|
15
|
-
}
|
|
9
|
+
name = "cms.field.converter.object";
|
|
16
10
|
getFieldType() {
|
|
17
11
|
return "object";
|
|
18
12
|
}
|
|
19
13
|
getChildFields({
|
|
20
14
|
field
|
|
21
15
|
}) {
|
|
22
|
-
|
|
23
|
-
return (field === null || field === void 0 || (_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.fields) || [];
|
|
16
|
+
return field?.settings?.fields || [];
|
|
24
17
|
}
|
|
25
18
|
convertToStorage(params) {
|
|
26
19
|
const {
|
|
@@ -44,9 +37,10 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
44
37
|
[field.storageId]: value.map(itemValue => {
|
|
45
38
|
return this.processChildFieldsToStorage({
|
|
46
39
|
fields: childFields.map(child => {
|
|
47
|
-
return
|
|
40
|
+
return {
|
|
41
|
+
...child,
|
|
48
42
|
parent: field
|
|
49
|
-
}
|
|
43
|
+
};
|
|
50
44
|
}),
|
|
51
45
|
value: itemValue,
|
|
52
46
|
converterCollection
|
|
@@ -56,9 +50,10 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
56
50
|
}
|
|
57
51
|
const values = this.processChildFieldsToStorage({
|
|
58
52
|
fields: childFields.map(child => {
|
|
59
|
-
return
|
|
53
|
+
return {
|
|
54
|
+
...child,
|
|
60
55
|
parent: field
|
|
61
|
-
}
|
|
56
|
+
};
|
|
62
57
|
}),
|
|
63
58
|
value,
|
|
64
59
|
converterCollection
|
|
@@ -91,9 +86,10 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
91
86
|
const values = value[field.fieldId].map(childValue => {
|
|
92
87
|
return converterCollection.convertToStorage({
|
|
93
88
|
fields: childFields.map(child => {
|
|
94
|
-
return
|
|
89
|
+
return {
|
|
90
|
+
...child,
|
|
95
91
|
parent: field
|
|
96
|
-
}
|
|
92
|
+
};
|
|
97
93
|
}),
|
|
98
94
|
values: childValue
|
|
99
95
|
});
|
|
@@ -101,9 +97,10 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
101
97
|
if (values === undefined) {
|
|
102
98
|
return output;
|
|
103
99
|
}
|
|
104
|
-
return
|
|
100
|
+
return {
|
|
101
|
+
...output,
|
|
105
102
|
[field.storageId]: values
|
|
106
|
-
}
|
|
103
|
+
};
|
|
107
104
|
}
|
|
108
105
|
/**
|
|
109
106
|
* No need to process child fields if no value is provided.
|
|
@@ -113,25 +110,28 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
113
110
|
}
|
|
114
111
|
const values = converterCollection.convertToStorage({
|
|
115
112
|
fields: childFields.map(child => {
|
|
116
|
-
return
|
|
113
|
+
return {
|
|
114
|
+
...child,
|
|
117
115
|
parent: field
|
|
118
|
-
}
|
|
116
|
+
};
|
|
119
117
|
}),
|
|
120
118
|
values: value[field.fieldId]
|
|
121
119
|
});
|
|
122
120
|
if (values === undefined) {
|
|
123
121
|
return output;
|
|
124
122
|
}
|
|
125
|
-
return
|
|
123
|
+
return {
|
|
124
|
+
...output,
|
|
126
125
|
[field.storageId]: values
|
|
127
|
-
}
|
|
126
|
+
};
|
|
128
127
|
}
|
|
129
128
|
if (value[field.fieldId] === undefined) {
|
|
130
129
|
return output;
|
|
131
130
|
}
|
|
132
|
-
return
|
|
131
|
+
return {
|
|
132
|
+
...output,
|
|
133
133
|
[field.storageId]: value[field.fieldId]
|
|
134
|
-
}
|
|
134
|
+
};
|
|
135
135
|
}, {});
|
|
136
136
|
}
|
|
137
137
|
convertFromStorage(params) {
|
|
@@ -156,9 +156,10 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
156
156
|
[field.fieldId]: value.map(itemValue => {
|
|
157
157
|
return this.processChildFieldsFromStorage({
|
|
158
158
|
fields: childFields.map(child => {
|
|
159
|
-
return
|
|
159
|
+
return {
|
|
160
|
+
...child,
|
|
160
161
|
parent: field
|
|
161
|
-
}
|
|
162
|
+
};
|
|
162
163
|
}),
|
|
163
164
|
value: itemValue,
|
|
164
165
|
converterCollection
|
|
@@ -168,9 +169,10 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
168
169
|
}
|
|
169
170
|
const values = this.processChildFieldsFromStorage({
|
|
170
171
|
fields: childFields.map(child => {
|
|
171
|
-
return
|
|
172
|
+
return {
|
|
173
|
+
...child,
|
|
172
174
|
parent: field
|
|
173
|
-
}
|
|
175
|
+
};
|
|
174
176
|
}),
|
|
175
177
|
value,
|
|
176
178
|
converterCollection
|
|
@@ -204,9 +206,10 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
204
206
|
const values = inputValues.map(childValue => {
|
|
205
207
|
return converterCollection.convertFromStorage({
|
|
206
208
|
fields: childFields.map(child => {
|
|
207
|
-
return
|
|
209
|
+
return {
|
|
210
|
+
...child,
|
|
208
211
|
parent: field
|
|
209
|
-
}
|
|
212
|
+
};
|
|
210
213
|
}),
|
|
211
214
|
values: childValue
|
|
212
215
|
});
|
|
@@ -214,9 +217,10 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
214
217
|
if (values === undefined) {
|
|
215
218
|
return output;
|
|
216
219
|
}
|
|
217
|
-
return
|
|
220
|
+
return {
|
|
221
|
+
...output,
|
|
218
222
|
[field.fieldId]: values
|
|
219
|
-
}
|
|
223
|
+
};
|
|
220
224
|
}
|
|
221
225
|
/**
|
|
222
226
|
* No need to process child fields if no value is provided.
|
|
@@ -226,25 +230,28 @@ class CmsModelObjectFieldConverterPlugin extends _CmsModelFieldConverterPlugin.C
|
|
|
226
230
|
}
|
|
227
231
|
const values = converterCollection.convertFromStorage({
|
|
228
232
|
fields: childFields.map(child => {
|
|
229
|
-
return
|
|
233
|
+
return {
|
|
234
|
+
...child,
|
|
230
235
|
parent: field
|
|
231
|
-
}
|
|
236
|
+
};
|
|
232
237
|
}),
|
|
233
238
|
values: value[field.storageId]
|
|
234
239
|
});
|
|
235
240
|
if (values === undefined) {
|
|
236
241
|
return output;
|
|
237
242
|
}
|
|
238
|
-
return
|
|
243
|
+
return {
|
|
244
|
+
...output,
|
|
239
245
|
[field.fieldId]: values
|
|
240
|
-
}
|
|
246
|
+
};
|
|
241
247
|
}
|
|
242
248
|
if (value[field.storageId] === undefined) {
|
|
243
249
|
return output;
|
|
244
250
|
}
|
|
245
|
-
return
|
|
251
|
+
return {
|
|
252
|
+
...output,
|
|
246
253
|
[field.fieldId]: value[field.storageId]
|
|
247
|
-
}
|
|
254
|
+
};
|
|
248
255
|
}, {});
|
|
249
256
|
}
|
|
250
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_CmsModelFieldConverterPlugin","require","CmsModelObjectFieldConverterPlugin","CmsModelFieldConverterPlugin","constructor","args","_defineProperty2","default","getFieldType","getChildFields","field","_field$settings","settings","fields","convertToStorage","params","value","converterCollection","childFields","length","multipleValues","Array","isArray","storageId","map","itemValue","processChildFieldsToStorage","child","_objectSpread2","parent","values","undefined","reduce","output","fieldId","childValue","convertFromStorage","processChildFieldsFromStorage","inputValues","exports"],"sources":["CmsModelObjectFieldConverterPlugin.ts"],"sourcesContent":["import {\n CmsModelFieldConverterPlugin,\n ConvertParams\n} from \"~/plugins/CmsModelFieldConverterPlugin\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\ninterface ProcessChildFieldsParams {\n fields: CmsModelFieldWithParent[];\n value?: Record<string, any> | null;\n converterCollection: ConverterCollection;\n}\n\ninterface GetChildFieldsParams {\n field?: CmsModelFieldWithParent | null;\n}\n\nexport class CmsModelObjectFieldConverterPlugin extends CmsModelFieldConverterPlugin {\n public override name = \"cms.field.converter.object\";\n\n public override getFieldType(): string {\n return \"object\";\n }\n\n private getChildFields({ field }: GetChildFieldsParams): CmsModelFieldWithParent[] {\n return field?.settings?.fields || [];\n }\n\n public override convertToStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.storageId]: []\n };\n }\n return {\n [field.storageId]: value.map((itemValue: any) => {\n return this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.storageId]: values\n };\n }\n\n private processChildFieldsToStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n if (Array.isArray(value[field.fieldId]) === false) {\n return output;\n }\n const values = value[field.fieldId].map((childValue: any) => {\n return converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.fieldId]) {\n return output;\n }\n const values = converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.fieldId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n\n if (value[field.fieldId] === undefined) {\n return output;\n }\n\n return {\n ...output,\n [field.storageId]: value[field.fieldId]\n };\n }, {});\n }\n\n public override convertFromStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.fieldId]: []\n };\n }\n return {\n [field.fieldId]: value.map((itemValue: any) => {\n return this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.fieldId]: values\n };\n }\n\n private processChildFieldsFromStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n const inputValues = value[field.storageId] as any[] | undefined;\n if (!inputValues || Array.isArray(inputValues) === false) {\n return output;\n }\n const values = inputValues.map(childValue => {\n return converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.storageId]) {\n return output;\n }\n const values = converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.storageId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n\n if (value[field.storageId] === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: value[field.storageId]\n };\n }, {});\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_CmsModelFieldConverterPlugin","require","CmsModelObjectFieldConverterPlugin","CmsModelFieldConverterPlugin","name","getFieldType","getChildFields","field","settings","fields","convertToStorage","params","value","converterCollection","childFields","length","multipleValues","Array","isArray","storageId","map","itemValue","processChildFieldsToStorage","child","parent","values","undefined","reduce","output","fieldId","childValue","convertFromStorage","processChildFieldsFromStorage","inputValues","exports"],"sources":["CmsModelObjectFieldConverterPlugin.ts"],"sourcesContent":["import {\n CmsModelFieldConverterPlugin,\n ConvertParams\n} from \"~/plugins/CmsModelFieldConverterPlugin\";\nimport { CmsEntryValues, CmsModelFieldWithParent } from \"~/types\";\nimport { ConverterCollection } from \"~/utils/converters/ConverterCollection\";\n\ninterface ProcessChildFieldsParams {\n fields: CmsModelFieldWithParent[];\n value?: Record<string, any> | null;\n converterCollection: ConverterCollection;\n}\n\ninterface GetChildFieldsParams {\n field?: CmsModelFieldWithParent | null;\n}\n\nexport class CmsModelObjectFieldConverterPlugin extends CmsModelFieldConverterPlugin {\n public override name = \"cms.field.converter.object\";\n\n public override getFieldType(): string {\n return \"object\";\n }\n\n private getChildFields({ field }: GetChildFieldsParams): CmsModelFieldWithParent[] {\n return field?.settings?.fields || [];\n }\n\n public override convertToStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.storageId]: []\n };\n }\n return {\n [field.storageId]: value.map((itemValue: any) => {\n return this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.storageId]: values\n };\n }\n\n private processChildFieldsToStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n if (Array.isArray(value[field.fieldId]) === false) {\n return output;\n }\n const values = value[field.fieldId].map((childValue: any) => {\n return converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.fieldId]) {\n return output;\n }\n const values = converterCollection.convertToStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.fieldId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.storageId]: values\n };\n }\n\n if (value[field.fieldId] === undefined) {\n return output;\n }\n\n return {\n ...output,\n [field.storageId]: value[field.fieldId]\n };\n }, {});\n }\n\n public override convertFromStorage(params: ConvertParams): CmsEntryValues {\n const { field, value, converterCollection } = params;\n\n const childFields = this.getChildFields({\n field\n });\n if (childFields.length === 0) {\n return {};\n }\n\n if (field.multipleValues) {\n if (Array.isArray(value) === false) {\n return {\n [field.fieldId]: []\n };\n }\n return {\n [field.fieldId]: value.map((itemValue: any) => {\n return this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value: itemValue,\n converterCollection\n });\n })\n };\n }\n\n const values = this.processChildFieldsFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n value,\n converterCollection\n });\n\n if (values === undefined) {\n return {};\n }\n\n return {\n [field.fieldId]: values\n };\n }\n\n private processChildFieldsFromStorage(\n params: ProcessChildFieldsParams\n ): CmsEntryValues | undefined {\n const { fields, value, converterCollection } = params;\n\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return fields.reduce<CmsEntryValues>((output, field) => {\n const childFields = this.getChildFields({\n field\n });\n\n if (childFields.length > 0) {\n if (field.multipleValues) {\n const inputValues = value[field.storageId] as unknown as Record<string, any>[];\n if (!inputValues || Array.isArray(inputValues) === false) {\n return output;\n }\n const values = inputValues.map(childValue => {\n return converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: childValue\n });\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n /**\n * No need to process child fields if no value is provided.\n */\n if (!value[field.storageId]) {\n return output;\n }\n const values = converterCollection.convertFromStorage({\n fields: childFields.map(child => {\n return {\n ...child,\n parent: field\n };\n }),\n values: value[field.storageId]\n });\n if (values === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: values\n };\n }\n\n if (value[field.storageId] === undefined) {\n return output;\n }\n return {\n ...output,\n [field.fieldId]: value[field.storageId]\n };\n }, {});\n }\n}\n"],"mappings":"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"}
|
package/graphql/getSchema.js
CHANGED
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.getSchema = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
8
|
var _codeFrame = _interopRequireDefault(require("code-frame"));
|
|
10
9
|
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
11
10
|
var _generateSchema = require("./generateSchema");
|
|
@@ -41,7 +40,11 @@ const generateCacheKey = async params => {
|
|
|
41
40
|
const keys = [];
|
|
42
41
|
for (const model of models) {
|
|
43
42
|
const savedOn = model.savedOn;
|
|
44
|
-
const value =
|
|
43
|
+
const value =
|
|
44
|
+
// @ts-expect-error
|
|
45
|
+
savedOn instanceof Date || savedOn?.toISOString ?
|
|
46
|
+
// @ts-expect-error
|
|
47
|
+
savedOn.toISOString() : savedOn || "unknown";
|
|
45
48
|
keys.push(model.modelId, model.singularApiName, model.pluralApiName, value);
|
|
46
49
|
}
|
|
47
50
|
const key = keys.join("#");
|
|
@@ -69,17 +72,19 @@ const getSchema = async params => {
|
|
|
69
72
|
});
|
|
70
73
|
});
|
|
71
74
|
const cacheId = generateCacheId(params);
|
|
72
|
-
const cacheKey = await generateCacheKey(
|
|
75
|
+
const cacheKey = await generateCacheKey({
|
|
76
|
+
...params,
|
|
73
77
|
models
|
|
74
|
-
})
|
|
78
|
+
});
|
|
75
79
|
const cachedSchema = schemaList.get(cacheId);
|
|
76
|
-
if (
|
|
80
|
+
if (cachedSchema?.key === cacheKey) {
|
|
77
81
|
return cachedSchema.schema;
|
|
78
82
|
}
|
|
79
83
|
try {
|
|
80
|
-
const schema = await (0, _generateSchema.generateSchema)(
|
|
84
|
+
const schema = await (0, _generateSchema.generateSchema)({
|
|
85
|
+
...params,
|
|
81
86
|
models
|
|
82
|
-
})
|
|
87
|
+
});
|
|
83
88
|
schemaList.set(cacheId, {
|
|
84
89
|
key: cacheKey,
|
|
85
90
|
schema
|
|
@@ -90,9 +95,10 @@ const getSchema = async params => {
|
|
|
90
95
|
throw new _error.default({
|
|
91
96
|
message: err.message,
|
|
92
97
|
code: err.code || "INVALID_GRAPHQL_SCHEMA_LOCATIONS",
|
|
93
|
-
data:
|
|
98
|
+
data: {
|
|
99
|
+
...(err.data || {}),
|
|
94
100
|
endpoint: context.cms.type
|
|
95
|
-
}
|
|
101
|
+
}
|
|
96
102
|
});
|
|
97
103
|
}
|
|
98
104
|
const [location] = err.locations;
|
package/graphql/getSchema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_codeFrame","_interopRequireDefault","require","_error","_generateSchema","_crypto","schemaList","Map","generateCacheId","params","getTenant","type","getLocale","id","code","join","generateCacheKey","models","keys","model","savedOn","value","Date","toISOString","push","modelId","singularApiName","pluralApiName","key","hash","crypto","createHash","update","digest","getSchema","context","security","withoutAuthorization","cms","listModels","filter","isPrivate","cacheId","cacheKey","
|
|
1
|
+
{"version":3,"names":["_codeFrame","_interopRequireDefault","require","_error","_generateSchema","_crypto","schemaList","Map","generateCacheId","params","getTenant","type","getLocale","id","code","join","generateCacheKey","models","keys","model","savedOn","value","Date","toISOString","push","modelId","singularApiName","pluralApiName","key","hash","crypto","createHash","update","digest","getSchema","context","security","withoutAuthorization","cms","listModels","filter","isPrivate","cacheId","cacheKey","cachedSchema","get","schema","generateSchema","set","err","Array","isArray","locations","WebinyError","message","data","endpoint","location","invalidSegment","codeFrame","source","body","line","column","frameSize","exports"],"sources":["getSchema.ts"],"sourcesContent":["// @ts-expect-error `code-frame` has no types\nimport codeFrame from \"code-frame\";\nimport WebinyError from \"@webiny/error\";\nimport { generateSchema } from \"./generateSchema\";\nimport { ApiEndpoint, CmsContext, CmsModel } from \"~/types\";\nimport { Tenant } from \"@webiny/api-tenancy/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { GraphQLSchema } from \"graphql\";\nimport crypto from \"crypto\";\n\ninterface SchemaCache {\n key: string;\n schema: GraphQLSchema;\n}\n\ninterface GetSchemaParams {\n context: CmsContext;\n type: ApiEndpoint;\n getTenant: () => Tenant;\n getLocale: () => I18NLocale;\n}\n\nconst schemaList = new Map<string, SchemaCache>();\n\n/**\n * Method generates cache ID based on:\n * - tenant\n * - endpoint type\n * - locale\n */\ntype GenerateCacheIdParams = Pick<GetSchemaParams, \"getTenant\" | \"getLocale\" | \"type\">;\nconst generateCacheId = (params: GenerateCacheIdParams): string => {\n const { getTenant, type, getLocale } = params;\n return [`tenant:${getTenant().id}`, `endpoint:${type}`, `locale:${getLocale().code}`].join(\"#\");\n};\n/**\n * Method generates cache key based on last model change time.\n * Or sets \"unknown\" - possible when no models in database.\n */\ninterface GenerateCacheKeyParams {\n models: Pick<CmsModel, \"modelId\" | \"singularApiName\" | \"pluralApiName\" | \"savedOn\">[];\n}\nconst generateCacheKey = async (params: GenerateCacheKeyParams): Promise<string> => {\n const { models } = params;\n\n const keys: string[] = [];\n for (const model of models) {\n const savedOn = model.savedOn;\n const value =\n // @ts-expect-error\n savedOn instanceof Date || savedOn?.toISOString\n ? // @ts-expect-error\n savedOn.toISOString()\n : savedOn || \"unknown\";\n keys.push(model.modelId, model.singularApiName, model.pluralApiName, value);\n }\n const key = keys.join(\"#\");\n\n const hash = crypto.createHash(\"sha1\");\n hash.update(key);\n return hash.digest(\"hex\");\n};\n\n/**\n * Gets an existing schema or rewrites existing one or creates a completely new one\n * depending on the schemaId created from type and locale parameters\n */\nexport const getSchema = async (params: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context } = params;\n\n /**\n * We need all the API models.\n * Private models are hidden in the GraphQL, so filter them out.\n */\n const models = await context.security.withoutAuthorization(async () => {\n return (await context.cms.listModels()).filter(model => {\n return model.isPrivate !== true;\n });\n });\n\n const cacheId = generateCacheId(params);\n\n const cacheKey = await generateCacheKey({ ...params, models });\n const cachedSchema = schemaList.get(cacheId);\n if (cachedSchema?.key === cacheKey) {\n return cachedSchema.schema;\n }\n\n try {\n const schema = await generateSchema({\n ...params,\n models\n });\n schemaList.set(cacheId, {\n key: cacheKey,\n schema\n });\n return schema;\n } catch (err) {\n if (!Array.isArray(err.locations)) {\n throw new WebinyError({\n message: err.message,\n code: err.code || \"INVALID_GRAPHQL_SCHEMA_LOCATIONS\",\n data: {\n ...(err.data || {}),\n endpoint: context.cms.type\n }\n });\n }\n const [location] = err.locations;\n\n throw new WebinyError({\n code: \"INVALID_GRAPHQL_SCHEMA\",\n message: err.message,\n data: {\n invalidSegment: codeFrame(err.source.body, location.line, location.column, {\n frameSize: 15\n })\n }\n });\n }\n};\n"],"mappings":"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"}
|
package/graphql/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { GraphQLHandlerFactoryParams } from "./graphQLHandlerFactory";
|
|
2
2
|
export declare type CreateGraphQLParams = GraphQLHandlerFactoryParams;
|
|
3
|
-
export declare const createGraphQL: (params: CreateGraphQLParams) => (import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("../types").CmsContext> | import("@webiny/
|
|
3
|
+
export declare const createGraphQL: (params: CreateGraphQLParams) => (import("@webiny/plugins/types").PluginCollection | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("../types").CmsContext> | import("@webiny/api").ContextPlugin<import("@webiny/api/types").Context>)[];
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.createBaseContentSchema = void 0;
|
|
8
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
7
|
var _builtInTypes = require("@webiny/handler-graphql/builtInTypes");
|
|
10
8
|
var _plugins = require("../../plugins");
|
|
11
9
|
const createBaseContentSchema = ({
|
|
@@ -42,10 +40,11 @@ const createBaseContentSchema = ({
|
|
|
42
40
|
published
|
|
43
41
|
}
|
|
44
42
|
`,
|
|
45
|
-
resolvers:
|
|
46
|
-
acc
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
resolvers: {
|
|
44
|
+
...scalars.reduce((acc, s) => {
|
|
45
|
+
acc[s.name] = s;
|
|
46
|
+
return acc;
|
|
47
|
+
}, {}),
|
|
49
48
|
JSON: _builtInTypes.JsonScalar,
|
|
50
49
|
Long: _builtInTypes.LongScalar,
|
|
51
50
|
RefInput: _builtInTypes.RefInputScalar,
|
|
@@ -58,7 +57,7 @@ const createBaseContentSchema = ({
|
|
|
58
57
|
Mutation: {
|
|
59
58
|
_empty: () => "_empty"
|
|
60
59
|
}
|
|
61
|
-
}
|
|
60
|
+
}
|
|
62
61
|
});
|
|
63
62
|
plugin.name = `headless-cms.graphql.schema.baseContentSchema`;
|
|
64
63
|
return plugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_builtInTypes","require","_plugins","createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","plugin","CmsGraphQLSchemaPlugin","typeDefs","name","join","resolvers","
|
|
1
|
+
{"version":3,"names":["_builtInTypes","require","_plugins","createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","plugin","CmsGraphQLSchemaPlugin","typeDefs","name","join","resolvers","reduce","acc","s","JSON","JsonScalar","Long","LongScalar","RefInput","RefInputScalar","Number","NumberScalar","Any","AnyScalar","DateTime","DateTimeScalar","DateTimeZ","DateTimeZScalar","Date","DateScalar","Time","TimeScalar","Mutation","_empty","exports"],"sources":["baseContentSchema.ts"],"sourcesContent":["import { GraphQLScalarPlugin } from \"@webiny/handler-graphql/types\";\nimport { CmsContext } from \"~/types\";\nimport {\n RefInputScalar,\n NumberScalar,\n AnyScalar,\n DateTimeScalar,\n DateScalar,\n TimeScalar,\n LongScalar,\n JsonScalar,\n DateTimeZScalar\n} from \"@webiny/handler-graphql/builtInTypes\";\nimport { GraphQLScalarType } from \"graphql\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\ninterface Params {\n context: CmsContext;\n}\nexport const createBaseContentSchema = ({ context }: Params): CmsGraphQLSchemaPlugin => {\n const scalars = context.plugins\n .byType<GraphQLScalarPlugin>(\"graphql-scalar\")\n .map(item => item.scalar);\n\n const plugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n ${scalars.map(scalar => `scalar ${scalar.name}`).join(\" \")}\n scalar JSON\n scalar Long\n scalar RefInput\n scalar Number\n scalar Any\n scalar Date\n scalar DateTime\n scalar DateTimeZ\n scalar Time\n\n type Query\n\n type Mutation {\n _empty: String\n }\n\n type CmsIdentity {\n id: String\n displayName: String\n type: String\n }\n\n enum CmsEntryStatusType {\n latest\n published\n }\n `,\n resolvers: {\n ...scalars.reduce<Record<string, GraphQLScalarType>>((acc, s) => {\n acc[s.name] = s;\n return acc;\n }, {}),\n JSON: JsonScalar,\n Long: LongScalar,\n RefInput: RefInputScalar,\n Number: NumberScalar,\n Any: AnyScalar,\n DateTime: DateTimeScalar,\n DateTimeZ: DateTimeZScalar,\n Date: DateScalar,\n Time: TimeScalar,\n Mutation: {\n _empty: () => \"_empty\"\n }\n }\n });\n plugin.name = `headless-cms.graphql.schema.baseContentSchema`;\n\n return plugin;\n};\n"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AAYA,IAAAC,QAAA,GAAAD,OAAA;AAKO,MAAME,uBAAuB,GAAGA,CAAC;EAAEC;AAAgB,CAAC,KAA6B;EACpF,MAAMC,OAAO,GAAGD,OAAO,CAACE,OAAO,CAC1BC,MAAM,CAAsB,gBAAgB,CAAC,CAC7CC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC;EAE7B,MAAMC,MAAM,GAAG,IAAIC,+BAAsB,CAAC;IACtCC,QAAQ,EAAE,aAAe;AACjC,cAAcR,OAAO,CAACG,GAAG,CAACE,MAAM,IAAK,UAASA,MAAM,CAACI,IAAK,EAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,EAAE;MACP,GAAGX,OAAO,CAACY,MAAM,CAAoC,CAACC,GAAG,EAAEC,CAAC,KAAK;QAC7DD,GAAG,CAACC,CAAC,CAACL,IAAI,CAAC,GAAGK,CAAC;QACf,OAAOD,GAAG;MACd,CAAC,EAAE,CAAC,CAAC,CAAC;MACNE,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAEC,4BAAc;MACxBC,MAAM,EAAEC,0BAAY;MACpBC,GAAG,EAAEC,uBAAS;MACdC,QAAQ,EAAEC,4BAAc;MACxBC,SAAS,EAAEC,6BAAe;MAC1BC,IAAI,EAAEC,wBAAU;MAChBC,IAAI,EAAEC,wBAAU;MAChBC,QAAQ,EAAE;QACNC,MAAM,EAAEA,CAAA,KAAM;MAClB;IACJ;EACJ,CAAC,CAAC;EACF5B,MAAM,CAACG,IAAI,GAAI,+CAA8C;EAE7D,OAAOH,MAAM;AACjB,CAAC;AAAC6B,OAAA,CAAArC,uBAAA,GAAAA,uBAAA"}
|
|
@@ -23,7 +23,7 @@ const createSkipValidatorEnum = plugins => {
|
|
|
23
23
|
}
|
|
24
24
|
return (/* GraphQL */`
|
|
25
25
|
enum SkipValidatorEnum {
|
|
26
|
-
|
|
26
|
+
${validators.join("\n")}
|
|
27
27
|
}
|
|
28
28
|
`
|
|
29
29
|
);
|
|
@@ -105,13 +105,6 @@ const createSchema = plugins => {
|
|
|
105
105
|
skipValidators: [SkipValidatorEnum!]
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
input CmsPublishEntryOptionsInput {
|
|
109
|
-
# By default, updatePublishedOn is true. User can set it to false to skip the publishedOn field update.
|
|
110
|
-
updatePublishedOn: Boolean
|
|
111
|
-
# By default, updateSavedOn is true. User can set it to false to skip the publishedOn field update.
|
|
112
|
-
updateSavedOn: Boolean
|
|
113
|
-
}
|
|
114
|
-
|
|
115
108
|
input CmsIdentityInput {
|
|
116
109
|
id: String!
|
|
117
110
|
displayName: String!
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_plugins","require","_handlerGraphql","_api","_camelCase","_interopRequireDefault","createSkipValidatorEnum","plugins","validators","byType","reduce","collection","validator","name","camelCase","includes","push","length","join","createSchema","skipValidatorEnum","cmsPlugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","corePlugin","GraphQLSchemaPlugin","schema","createBaseSchema","ContextPlugin","context","register","exports"],"sources":["baseSchema.ts"],"sourcesContent":["import { CmsContext, CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport camelCase from \"lodash/camelCase\";\n\nconst createSkipValidatorEnum = (plugins: PluginsContainer) => {\n const validators = plugins\n .byType<CmsModelFieldValidatorPlugin>(\"cms-model-field-validator\")\n .reduce<string[]>((collection, validator) => {\n const name = camelCase(validator.validator.name);\n if (collection.includes(name)) {\n return collection;\n }\n collection.push(name);\n return collection;\n }, []);\n\n if (validators.length === 0) {\n validators.push(\"_empty\");\n }\n return /* GraphQL */ `\n enum SkipValidatorEnum {\n
|
|
1
|
+
{"version":3,"names":["_plugins","require","_handlerGraphql","_api","_camelCase","_interopRequireDefault","createSkipValidatorEnum","plugins","validators","byType","reduce","collection","validator","name","camelCase","includes","push","length","join","createSchema","skipValidatorEnum","cmsPlugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","corePlugin","GraphQLSchemaPlugin","schema","createBaseSchema","ContextPlugin","context","register","exports"],"sources":["baseSchema.ts"],"sourcesContent":["import { CmsContext, CmsModelFieldValidatorPlugin } from \"~/types\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\nimport { PluginsContainer } from \"@webiny/plugins\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport camelCase from \"lodash/camelCase\";\n\nconst createSkipValidatorEnum = (plugins: PluginsContainer) => {\n const validators = plugins\n .byType<CmsModelFieldValidatorPlugin>(\"cms-model-field-validator\")\n .reduce<string[]>((collection, validator) => {\n const name = camelCase(validator.validator.name);\n if (collection.includes(name)) {\n return collection;\n }\n collection.push(name);\n return collection;\n }, []);\n\n if (validators.length === 0) {\n validators.push(\"_empty\");\n }\n return /* GraphQL */ `\n enum SkipValidatorEnum {\n ${validators.join(\"\\n\")}\n }\n `;\n};\n\nconst createSchema = (plugins: PluginsContainer): GraphQLSchemaPlugin<CmsContext>[] => {\n const skipValidatorEnum = createSkipValidatorEnum(plugins);\n\n const cmsPlugin = new CmsGraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n type CmsError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type CmsCursors {\n next: String\n previous: String\n }\n\n type CmsListMeta {\n cursor: String\n hasMoreItems: Boolean\n totalCount: Int\n }\n\n input CmsDeleteEntryOptions {\n # force delete an entry that might have some records left behind in the database\n # see CmsDeleteEntryOptions in types.ts\n force: Boolean\n }\n\n type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsDeleteMultipleDataResponse {\n id: ID!\n }\n\n type CmsDeleteMultipleResponse {\n data: [CmsDeleteMultipleDataResponse!]\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\n error: CmsError\n }\n\n # Advanced Content Organization\n type WbyAcoLocation {\n folderId: ID\n }\n\n input WbyAcoLocationInput {\n folderId: ID!\n }\n\n input WbyAcoLocationWhereInput {\n folderId: ID\n folderId_in: [ID!]\n folderId_not: ID\n folderId_not_in: [ID!]\n }\n\n ${skipValidatorEnum}\n\n input CreateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CreateRevisionCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input UpdateCmsEntryOptionsInput {\n skipValidators: [SkipValidatorEnum!]\n }\n\n input CmsIdentityInput {\n id: String!\n displayName: String!\n type: String!\n }\n\n type CmsEntryValidationResponseData {\n error: String!\n id: String!\n fieldId: String!\n parents: [String!]!\n }\n\n type CmsEntryValidationResponse {\n data: [CmsEntryValidationResponseData!]\n error: CmsError\n }\n `,\n resolvers: {}\n });\n cmsPlugin.name = \"headless-cms.graphql.schema.base\";\n const corePlugin = new GraphQLSchemaPlugin<CmsContext>({\n typeDefs: cmsPlugin.schema.typeDefs,\n resolvers: cmsPlugin.schema.resolvers\n });\n corePlugin.name = \"headless-cms.graphql.core.schema.base\";\n /**\n * Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.\n */\n return [cmsPlugin, corePlugin];\n};\n\nexport const createBaseSchema = () => {\n return new ContextPlugin(async context => {\n context.plugins.register(...createSchema(context.plugins));\n });\n};\n"],"mappings":";;;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAEA,MAAMK,uBAAuB,GAAIC,OAAyB,IAAK;EAC3D,MAAMC,UAAU,GAAGD,OAAO,CACrBE,MAAM,CAA+B,2BAA2B,CAAC,CACjEC,MAAM,CAAW,CAACC,UAAU,EAAEC,SAAS,KAAK;IACzC,MAAMC,IAAI,GAAG,IAAAC,kBAAS,EAACF,SAAS,CAACA,SAAS,CAACC,IAAI,CAAC;IAChD,IAAIF,UAAU,CAACI,QAAQ,CAACF,IAAI,CAAC,EAAE;MAC3B,OAAOF,UAAU;IACrB;IACAA,UAAU,CAACK,IAAI,CAACH,IAAI,CAAC;IACrB,OAAOF,UAAU;EACrB,CAAC,EAAE,EAAE,CAAC;EAEV,IAAIH,UAAU,CAACS,MAAM,KAAK,CAAC,EAAE;IACzBT,UAAU,CAACQ,IAAI,CAAC,QAAQ,CAAC;EAC7B;EACA,OAAO,cAAe;AAC1B;AACA,UAAUR,UAAU,CAACU,IAAI,CAAC,IAAI,CAAE;AAChC;AACA;EAAK;AACL,CAAC;AAED,MAAMC,YAAY,GAAIZ,OAAyB,IAAwC;EACnF,MAAMa,iBAAiB,GAAGd,uBAAuB,CAACC,OAAO,CAAC;EAE1D,MAAMc,SAAS,GAAG,IAAIC,+BAAsB,CAAC;IACzCC,QAAQ,EAAE,aAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAcH,iBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDI,SAAS,EAAE,CAAC;EAChB,CAAC,CAAC;EACFH,SAAS,CAACR,IAAI,GAAG,kCAAkC;EACnD,MAAMY,UAAU,GAAG,IAAIC,mCAAmB,CAAa;IACnDH,QAAQ,EAAEF,SAAS,CAACM,MAAM,CAACJ,QAAQ;IACnCC,SAAS,EAAEH,SAAS,CAACM,MAAM,CAACH;EAChC,CAAC,CAAC;EACFC,UAAU,CAACZ,IAAI,GAAG,uCAAuC;EACzD;AACJ;AACA;EACI,OAAO,CAACQ,SAAS,EAAEI,UAAU,CAAC;AAClC,CAAC;AAEM,MAAMG,gBAAgB,GAAGA,CAAA,KAAM;EAClC,OAAO,IAAIC,kBAAa,CAAC,MAAMC,OAAO,IAAI;IACtCA,OAAO,CAACvB,OAAO,CAACwB,QAAQ,CAAC,GAAGZ,YAAY,CAACW,OAAO,CAACvB,OAAO,CAAC,CAAC;EAC9D,CAAC,CAAC;AACN,CAAC;AAACyB,OAAA,CAAAJ,gBAAA,GAAAA,gBAAA"}
|
|
@@ -13,14 +13,18 @@ var _plugins = require("../../plugins");
|
|
|
13
13
|
var _getEntryDescription = require("../../utils/getEntryDescription");
|
|
14
14
|
var _getEntryImage = require("../../utils/getEntryImage");
|
|
15
15
|
var _entryStorage = require("../../utils/entryStorage");
|
|
16
|
+
var _constants = require("../../constants");
|
|
16
17
|
const createDate = date => {
|
|
18
|
+
if (!date) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
17
21
|
try {
|
|
18
22
|
return new Date(date);
|
|
19
|
-
} catch {
|
|
20
|
-
|
|
23
|
+
} catch {
|
|
24
|
+
return new Date();
|
|
25
|
+
}
|
|
21
26
|
};
|
|
22
27
|
const createCmsEntryRecord = (model, entry) => {
|
|
23
|
-
var _entry$location;
|
|
24
28
|
return {
|
|
25
29
|
id: entry.id,
|
|
26
30
|
entryId: entry.entryId,
|
|
@@ -32,12 +36,34 @@ const createCmsEntryRecord = (model, entry) => {
|
|
|
32
36
|
title: (0, _getEntryTitle.getEntryTitle)(model, entry),
|
|
33
37
|
description: (0, _getEntryDescription.getEntryDescription)(model, entry),
|
|
34
38
|
image: (0, _getEntryImage.getEntryImage)(model, entry),
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Entry-level meta fields. 👇
|
|
41
|
+
*/
|
|
37
42
|
createdOn: createDate(entry.createdOn),
|
|
43
|
+
modifiedOn: createDate(entry.modifiedOn),
|
|
38
44
|
savedOn: createDate(entry.savedOn),
|
|
45
|
+
createdBy: entry.createdBy,
|
|
46
|
+
savedBy: entry.savedBy,
|
|
47
|
+
modifiedBy: entry.modifiedBy,
|
|
48
|
+
firstPublishedOn: createDate(entry.firstPublishedOn),
|
|
49
|
+
lastPublishedOn: createDate(entry.lastPublishedOn),
|
|
50
|
+
firstPublishedBy: entry.firstPublishedBy,
|
|
51
|
+
lastPublishedBy: entry.lastPublishedBy,
|
|
52
|
+
/**
|
|
53
|
+
* Revision-level meta fields. 👇
|
|
54
|
+
*/
|
|
55
|
+
revisionCreatedOn: createDate(entry.revisionCreatedOn),
|
|
56
|
+
revisionSavedOn: createDate(entry.revisionSavedOn),
|
|
57
|
+
revisionModifiedOn: createDate(entry.revisionModifiedOn),
|
|
58
|
+
revisionCreatedBy: entry.revisionCreatedBy,
|
|
59
|
+
revisionModifiedBy: entry.revisionModifiedBy,
|
|
60
|
+
revisionSavedBy: entry.revisionSavedBy,
|
|
61
|
+
revisionFirstPublishedOn: createDate(entry.revisionFirstPublishedOn),
|
|
62
|
+
revisionLastPublishedOn: createDate(entry.revisionLastPublishedOn),
|
|
63
|
+
revisionFirstPublishedBy: entry.revisionFirstPublishedBy,
|
|
64
|
+
revisionLastPublishedBy: entry.revisionLastPublishedBy,
|
|
39
65
|
wbyAco_location: {
|
|
40
|
-
folderId:
|
|
66
|
+
folderId: entry.location?.folderId || null
|
|
41
67
|
}
|
|
42
68
|
};
|
|
43
69
|
};
|
|
@@ -56,6 +82,7 @@ const getFetchMethod = (type, context) => {
|
|
|
56
82
|
}
|
|
57
83
|
return context.cms[methodName];
|
|
58
84
|
};
|
|
85
|
+
|
|
59
86
|
/**
|
|
60
87
|
* Function to get the list of content entries depending on latest, published or exact GraphQL queries.
|
|
61
88
|
*/
|
|
@@ -190,8 +217,14 @@ const createContentEntriesSchema = ({
|
|
|
190
217
|
plugin.name = `headless-cms.graphql.schema.${context.cms.type}.empty`;
|
|
191
218
|
return plugin;
|
|
192
219
|
}
|
|
220
|
+
const onByMetaFields = _constants.ENTRY_META_FIELDS.map(field => {
|
|
221
|
+
const isNullable = (0, _constants.isNullableEntryMetaField)(field) ? "" : "!";
|
|
222
|
+
const fieldType = (0, _constants.isDateTimeEntryMetaField)(field) ? "DateTime" : "CmsIdentity";
|
|
223
|
+
return `${field}: ${fieldType}${isNullable}`;
|
|
224
|
+
}).join("\n");
|
|
193
225
|
const plugin = new _plugins.CmsGraphQLSchemaPlugin({
|
|
194
|
-
|
|
226
|
+
// Had to remove /* GraphQL */ because prettier would not format the code correctly.
|
|
227
|
+
typeDefs: `
|
|
195
228
|
type CmsModelMeta {
|
|
196
229
|
modelId: String!
|
|
197
230
|
name: String!
|
|
@@ -210,15 +243,13 @@ const createContentEntriesSchema = ({
|
|
|
210
243
|
entryId: String!
|
|
211
244
|
model: CmsModelMeta!
|
|
212
245
|
status: String!
|
|
246
|
+
published: CmsPublishedContentEntry
|
|
213
247
|
title: String!
|
|
214
248
|
description: String
|
|
215
249
|
image: String
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
published: CmsPublishedContentEntry
|
|
220
|
-
createdOn: DateTime!
|
|
221
|
-
savedOn: DateTime!
|
|
250
|
+
|
|
251
|
+
${onByMetaFields}
|
|
252
|
+
|
|
222
253
|
wbyAco_location: WbyAcoLocation
|
|
223
254
|
}
|
|
224
255
|
|