@webiny/api-headless-cms 0.0.0-unstable.d4f203fa97 → 0.0.0-unstable.d7f521b032
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/context.d.ts +5 -2
- package/context.js +53 -19
- package/context.js.map +1 -1
- package/crud/contentEntry/afterDelete.js +0 -5
- package/crud/contentEntry/afterDelete.js.map +1 -1
- package/crud/contentEntry/beforeCreate.js +0 -3
- package/crud/contentEntry/beforeCreate.js.map +1 -1
- package/crud/contentEntry/beforeUpdate.js +0 -3
- package/crud/contentEntry/beforeUpdate.js.map +1 -1
- package/crud/contentEntry/entryDataValidation.js +1 -40
- package/crud/contentEntry/entryDataValidation.js.map +1 -1
- package/crud/contentEntry/markLockedFields.js +16 -29
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +12 -64
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.d.ts +9 -0
- package/crud/contentEntry/searchableFields.js +72 -0
- package/crud/contentEntry/searchableFields.js.map +1 -0
- package/crud/contentEntry.crud.js +120 -181
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/afterCreate.js +0 -2
- package/crud/contentModel/afterCreate.js.map +1 -1
- package/crud/contentModel/afterCreateFrom.js +0 -2
- package/crud/contentModel/afterCreateFrom.js.map +1 -1
- package/crud/contentModel/afterDelete.js +0 -2
- package/crud/contentModel/afterDelete.js.map +1 -1
- package/crud/contentModel/afterUpdate.js +0 -2
- package/crud/contentModel/afterUpdate.js.map +1 -1
- package/crud/contentModel/beforeCreate.d.ts +2 -3
- package/crud/contentModel/beforeCreate.js +7 -36
- package/crud/contentModel/beforeCreate.js.map +1 -1
- package/crud/contentModel/beforeDelete.js +0 -10
- package/crud/contentModel/beforeDelete.js.map +1 -1
- package/crud/contentModel/beforeUpdate.d.ts +2 -4
- package/crud/contentModel/beforeUpdate.js +2 -7
- package/crud/contentModel/beforeUpdate.js.map +1 -1
- package/crud/contentModel/contentModelManagerFactory.js +0 -7
- package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +4 -3
- package/crud/contentModel/createFieldStorageId.js.map +1 -1
- package/crud/contentModel/models.js +12 -0
- package/crud/contentModel/models.js.map +1 -1
- package/crud/contentModel/systemFields.js.map +1 -1
- package/crud/contentModel/validateLayout.js +0 -8
- package/crud/contentModel/validateLayout.js.map +1 -1
- package/crud/contentModel/validateModel.d.ts +3 -4
- package/crud/contentModel/validateModel.js +6 -11
- package/crud/contentModel/validateModel.js.map +1 -1
- package/crud/contentModel/validateModelFields.d.ts +3 -4
- package/crud/contentModel/validateModelFields.js +118 -97
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +477 -0
- package/crud/contentModel/validation.js +97 -0
- package/crud/contentModel/validation.js.map +1 -0
- package/crud/contentModel.crud.js +219 -269
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/beforeCreate.js +0 -12
- package/crud/contentModelGroup/beforeCreate.js.map +1 -1
- package/crud/contentModelGroup/beforeDelete.js +0 -8
- package/crud/contentModelGroup/beforeDelete.js.map +1 -1
- package/crud/contentModelGroup/beforeUpdate.js +0 -5
- package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
- package/crud/contentModelGroup/validation.d.ts +30 -0
- package/crud/contentModelGroup/validation.js +34 -0
- package/crud/contentModelGroup/validation.js.map +1 -0
- package/crud/contentModelGroup.crud.js +53 -95
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/crud/settings.crud.js +0 -12
- package/crud/settings.crud.js.map +1 -1
- package/crud/system.crud.js +2 -37
- package/crud/system.crud.js.map +1 -1
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
- package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
- package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
- package/fieldConverters/index.d.ts +2 -1
- package/fieldConverters/index.js +2 -5
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.d.ts +8 -3
- package/graphql/buildSchemaPlugins.js +6 -14
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/createExecutableSchema.d.ts +7 -0
- package/graphql/createExecutableSchema.js +29 -0
- package/graphql/createExecutableSchema.js.map +1 -0
- package/graphql/generateSchema.d.ts +8 -0
- package/graphql/generateSchema.js +31 -0
- package/graphql/generateSchema.js.map +1 -0
- package/graphql/graphQLHandlerFactory.js +90 -74
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/index.d.ts +1 -3
- package/graphql/index.js +2 -46
- package/graphql/index.js.map +1 -1
- package/graphql/schema/baseContentSchema.d.ts +6 -2
- package/graphql/schema/baseContentSchema.js +9 -13
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/baseSchema.d.ts +3 -0
- package/graphql/schema/baseSchema.js +53 -0
- package/graphql/schema/baseSchema.js.map +1 -0
- package/graphql/schema/contentEntries.d.ts +6 -2
- package/graphql/schema/contentEntries.js +39 -65
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.d.ts +6 -2
- package/graphql/schema/contentModelGroups.js +9 -22
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.d.ts +6 -2
- package/graphql/schema/contentModels.js +42 -25
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +1 -1
- package/graphql/schema/createFieldResolvers.js +20 -27
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageResolvers.js +0 -26
- package/graphql/schema/createManageResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.d.ts +2 -0
- package/graphql/schema/createManageSDL.js +8 -19
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createPreviewResolvers.js +0 -10
- package/graphql/schema/createPreviewResolvers.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +5 -10
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.d.ts +2 -0
- package/graphql/schema/createReadSDL.js +11 -15
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/resolvers/commonFieldResolvers.js +0 -2
- package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
- package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
- package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
- package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
- package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
- package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
- package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveList.js +0 -3
- package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
- package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
- package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
- package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
- package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/preview/resolveList.js +0 -3
- package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveGet.js +0 -8
- package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
- package/graphql/schema/resolvers/read/resolveList.js +0 -3
- package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
- package/graphql/schema/schemaPlugins.d.ts +8 -3
- package/graphql/schema/schemaPlugins.js +63 -65
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.js +69 -85
- package/graphql/system.js.map +1 -1
- package/graphqlFields/boolean.js +0 -12
- package/graphqlFields/boolean.js.map +1 -1
- package/graphqlFields/datetime.js +0 -17
- package/graphqlFields/datetime.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js +208 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +63 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
- package/graphqlFields/dynamicZone/index.d.ts +2 -0
- package/graphqlFields/dynamicZone/index.js +19 -0
- package/graphqlFields/dynamicZone/index.js.map +1 -0
- package/graphqlFields/file.js +0 -8
- package/graphqlFields/file.js.map +1 -1
- package/graphqlFields/helpers.js +0 -10
- package/graphqlFields/helpers.js.map +1 -1
- package/graphqlFields/index.d.ts +1 -1
- package/graphqlFields/index.js +2 -12
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/longText.js +0 -10
- package/graphqlFields/longText.js.map +1 -1
- package/graphqlFields/number.js +0 -12
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +112 -98
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +48 -96
- package/graphqlFields/ref.js.map +1 -1
- package/graphqlFields/richText.js +0 -9
- package/graphqlFields/richText.js.map +1 -1
- package/graphqlFields/text.js +0 -11
- package/graphqlFields/text.js.map +1 -1
- package/index.d.ts +3 -3
- package/index.js +3 -26
- package/index.js.map +1 -1
- package/modelManager/DefaultCmsModelManager.js +0 -16
- package/modelManager/DefaultCmsModelManager.js.map +1 -1
- package/modelManager/index.js +0 -4
- package/modelManager/index.js.map +1 -1
- package/package.json +28 -28
- package/parameters/context.js +0 -4
- package/parameters/context.js.map +1 -1
- package/parameters/header.js +0 -11
- package/parameters/header.js.map +1 -1
- package/parameters/index.js +0 -8
- package/parameters/index.js.map +1 -1
- package/parameters/manual.js +1 -8
- package/parameters/manual.js.map +1 -1
- package/parameters/path.js +0 -11
- package/parameters/path.js.map +1 -1
- package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
- package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
- package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
- package/plugins/CmsGroupPlugin.js +0 -8
- package/plugins/CmsGroupPlugin.js.map +1 -1
- package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
- package/plugins/CmsModelFieldConverterPlugin.js +0 -5
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/CmsModelPlugin.js +2 -38
- package/plugins/CmsModelPlugin.js.map +1 -1
- package/plugins/CmsParametersPlugin.js +0 -7
- package/plugins/CmsParametersPlugin.js.map +1 -1
- package/plugins/StorageTransformPlugin.d.ts +11 -11
- package/plugins/StorageTransformPlugin.js +0 -9
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.d.ts +2 -0
- package/plugins/index.js +22 -10
- package/plugins/index.js.map +1 -1
- package/storage/default.js +0 -3
- package/storage/default.js.map +1 -1
- package/storage/object.js +4 -20
- package/storage/object.js.map +1 -1
- package/types.d.ts +235 -57
- package/types.js +62 -69
- package/types.js.map +1 -1
- package/upgrades/5.33.0/index.js +3 -26
- package/upgrades/5.33.0/index.js.map +1 -1
- package/upgrades/index.js +0 -3
- package/upgrades/index.js.map +1 -1
- package/utils/access.js +11 -25
- package/utils/access.js.map +1 -1
- package/utils/converters/Converter.js +0 -13
- package/utils/converters/Converter.js.map +1 -1
- package/utils/converters/ConverterCollection.js +14 -34
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/converters/valueKeyStorageConverter.js +0 -26
- package/utils/converters/valueKeyStorageConverter.js.map +1 -1
- package/utils/createTypeFromFields.d.ts +15 -0
- package/utils/createTypeFromFields.js +64 -0
- package/utils/createTypeFromFields.js.map +1 -0
- package/utils/createTypeName.js +2 -9
- package/utils/createTypeName.js.map +1 -1
- package/utils/entryStorage.js +22 -35
- package/utils/entryStorage.js.map +1 -1
- package/utils/filterAsync.js +0 -5
- package/utils/filterAsync.js.map +1 -1
- package/utils/getBaseFieldType.d.ts +4 -0
- package/utils/getBaseFieldType.js +10 -0
- package/utils/getBaseFieldType.js.map +1 -0
- package/utils/getEntryTitle.js +0 -9
- package/utils/getEntryTitle.js.map +1 -1
- package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
- package/utils/getSchemaFromFieldPlugins.js +23 -19
- package/utils/getSchemaFromFieldPlugins.js.map +1 -1
- package/utils/ownership.js +0 -8
- package/utils/ownership.js.map +1 -1
- package/utils/permissions.js +8 -23
- package/utils/permissions.js.map +1 -1
- package/utils/pluralizedTypeName.js +0 -6
- package/utils/pluralizedTypeName.js.map +1 -1
- package/utils/renderFields.js +2 -9
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +6 -14
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.js +2 -9
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +4 -10
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +7 -4
- package/utils/renderSortEnum.js +21 -11
- package/utils/renderSortEnum.js.map +1 -1
- package/utils/toSlug.js +0 -4
- package/utils/toSlug.js.map +1 -1
- package/validators/dateGte.js +0 -7
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.js +0 -7
- package/validators/dateLte.js.map +1 -1
- package/validators/dynamicZone.d.ts +2 -0
- package/validators/dynamicZone.js +20 -0
- package/validators/dynamicZone.js.map +1 -0
- package/validators/gte.js +0 -8
- package/validators/gte.js.map +1 -1
- package/validators/in.js +0 -8
- package/validators/in.js.map +1 -1
- package/validators/index.js +2 -16
- package/validators/index.js.map +1 -1
- package/validators/lte.js +0 -8
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.js +0 -8
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.js +0 -8
- package/validators/minLength.js.map +1 -1
- package/validators/pattern.js +0 -9
- package/validators/pattern.js.map +1 -1
- package/validators/patternPlugins/email.js +0 -2
- package/validators/patternPlugins/email.js.map +1 -1
- package/validators/patternPlugins/index.js +0 -8
- package/validators/patternPlugins/index.js.map +1 -1
- package/validators/patternPlugins/lowerCase.js +0 -2
- package/validators/patternPlugins/lowerCase.js.map +1 -1
- package/validators/patternPlugins/lowerCaseSpace.js +0 -2
- package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
- package/validators/patternPlugins/upperCase.js +0 -2
- package/validators/patternPlugins/upperCase.js.map +1 -1
- package/validators/patternPlugins/upperCaseSpace.js +0 -2
- package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
- package/validators/patternPlugins/url.js +0 -2
- package/validators/patternPlugins/url.js.map +1 -1
- package/validators/required.js +0 -5
- package/validators/required.js.map +1 -1
- package/validators/timeGte.js +0 -8
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.js +0 -8
- package/validators/timeLte.js.map +1 -1
- package/validators/unique.js +0 -7
- package/validators/unique.js.map +1 -1
- package/crud/index.d.ts +0 -6
- package/crud/index.js +0 -85
- package/crud/index.js.map +0 -1
- package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
- package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
- package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
- package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
- package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
- package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
- package/utils/filterModelFields.d.ts +0 -16
- package/utils/filterModelFields.js +0 -77
- package/utils/filterModelFields.js.map +0 -1
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.graphQLHandlerFactory = void 0;
|
|
9
|
-
|
|
10
|
-
var _schema = require("@graphql-tools/schema");
|
|
11
|
-
|
|
8
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
12
9
|
var _apiSecurity = require("@webiny/api-security");
|
|
13
|
-
|
|
14
10
|
var _debugPlugins = _interopRequireDefault(require("@webiny/handler-graphql/debugPlugins"));
|
|
15
|
-
|
|
16
11
|
var _processRequestBody = _interopRequireDefault(require("@webiny/handler-graphql/processRequestBody"));
|
|
17
|
-
|
|
18
|
-
var _buildSchemaPlugins = require("./buildSchemaPlugins");
|
|
19
|
-
|
|
20
|
-
var _plugins = require("@webiny/handler-graphql/plugins");
|
|
21
|
-
|
|
22
12
|
var _handler = require("@webiny/handler");
|
|
13
|
+
var _error = _interopRequireDefault(require("@webiny/error"));
|
|
14
|
+
var _codeFrame = _interopRequireDefault(require("code-frame"));
|
|
15
|
+
var _generateSchema = require("./generateSchema");
|
|
16
|
+
// @ts-ignore `code-frame` has no types
|
|
23
17
|
|
|
18
|
+
const createRequestBody = body => {
|
|
19
|
+
/**
|
|
20
|
+
* We are trusting that the body payload is correct.
|
|
21
|
+
* The `processRequestBody` will fail if it is not.
|
|
22
|
+
*/
|
|
23
|
+
return typeof body === "string" ? JSON.parse(body) : body;
|
|
24
|
+
};
|
|
24
25
|
const schemaList = new Map();
|
|
25
|
-
|
|
26
26
|
const generateCacheKey = async args => {
|
|
27
27
|
const {
|
|
28
28
|
context,
|
|
@@ -33,37 +33,10 @@ const generateCacheKey = async args => {
|
|
|
33
33
|
return [locale.code, type, lastModelChange.toISOString()].join("#");
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
const generateSchema = async args => {
|
|
37
|
-
const {
|
|
38
|
-
context
|
|
39
|
-
} = args;
|
|
40
|
-
context.plugins.register(await (0, _buildSchemaPlugins.buildSchemaPlugins)(context));
|
|
41
|
-
/**
|
|
42
|
-
* Really hard to type this to satisfy the makeExecutableSchema
|
|
43
|
-
*/
|
|
44
|
-
// TODO @ts-refactor
|
|
45
|
-
|
|
46
|
-
const typeDefs = [];
|
|
47
|
-
const resolvers = []; // Get schema definitions from plugins
|
|
48
|
-
|
|
49
|
-
const schemaPlugins = context.plugins.byType(_plugins.GraphQLSchemaPlugin.type);
|
|
50
|
-
|
|
51
|
-
for (const pl of schemaPlugins) {
|
|
52
|
-
typeDefs.push(pl.schema.typeDefs);
|
|
53
|
-
resolvers.push(pl.schema.resolvers);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return (0, _schema.makeExecutableSchema)({
|
|
57
|
-
typeDefs,
|
|
58
|
-
resolvers
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
36
|
/**
|
|
62
37
|
* Gets an existing schema or rewrites existing one or creates a completely new one
|
|
63
38
|
* depending on the schemaId created from type and locale parameters
|
|
64
39
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
67
40
|
const getSchema = async params => {
|
|
68
41
|
const {
|
|
69
42
|
context,
|
|
@@ -73,37 +46,47 @@ const getSchema = async params => {
|
|
|
73
46
|
const tenantId = context.tenancy.getCurrentTenant().id;
|
|
74
47
|
const id = `${tenantId}#${type}#${locale.code}`;
|
|
75
48
|
const cacheKey = await generateCacheKey(params);
|
|
76
|
-
|
|
77
|
-
if (
|
|
78
|
-
|
|
49
|
+
const cachedSchema = schemaList.get(id);
|
|
50
|
+
if ((cachedSchema === null || cachedSchema === void 0 ? void 0 : cachedSchema.key) === cacheKey) {
|
|
51
|
+
return cachedSchema.schema;
|
|
52
|
+
}
|
|
53
|
+
// Load model data
|
|
54
|
+
context.security.disableAuthorization();
|
|
55
|
+
const models = (await context.cms.listModels()).filter(model => model.isPrivate !== true);
|
|
56
|
+
context.security.enableAuthorization();
|
|
57
|
+
try {
|
|
58
|
+
const schema = await (0, _generateSchema.generateSchema)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
|
|
59
|
+
models
|
|
60
|
+
}));
|
|
79
61
|
schemaList.set(id, {
|
|
80
62
|
key: cacheKey,
|
|
81
63
|
schema
|
|
82
64
|
});
|
|
83
65
|
return schema;
|
|
66
|
+
} catch (err) {
|
|
67
|
+
if (!Array.isArray(err.locations)) {
|
|
68
|
+
throw new _error.default({
|
|
69
|
+
message: err.message,
|
|
70
|
+
code: err.code || "INVALID_GRAPHQL_SCHEMA_LOCATIONS",
|
|
71
|
+
data: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, err.data || {}), {}, {
|
|
72
|
+
locations: err.locations
|
|
73
|
+
})
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const [location] = err.locations;
|
|
77
|
+
throw new _error.default({
|
|
78
|
+
code: "INVALID_GRAPHQL_SCHEMA",
|
|
79
|
+
message: err.message,
|
|
80
|
+
data: {
|
|
81
|
+
invalidSegment: (0, _codeFrame.default)(err.source.body, location.line, location.column, {
|
|
82
|
+
frameSize: 15
|
|
83
|
+
})
|
|
84
|
+
}
|
|
85
|
+
});
|
|
84
86
|
}
|
|
85
|
-
/**
|
|
86
|
-
* Safe to cast because check was done few lines up.
|
|
87
|
-
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
const cache = schemaList.get(id);
|
|
91
|
-
|
|
92
|
-
if (cache.key === cacheKey) {
|
|
93
|
-
return cache.schema;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const schema = await generateSchema(params);
|
|
97
|
-
schemaList.set(id, {
|
|
98
|
-
key: cacheKey,
|
|
99
|
-
schema
|
|
100
|
-
});
|
|
101
|
-
return schema;
|
|
102
87
|
};
|
|
103
|
-
|
|
104
88
|
const checkEndpointAccess = async context => {
|
|
105
89
|
const permission = await context.security.getPermission(`cms.endpoint.${context.cms.type}`);
|
|
106
|
-
|
|
107
90
|
if (!permission) {
|
|
108
91
|
throw new _apiSecurity.NotAuthorizedError({
|
|
109
92
|
data: {
|
|
@@ -112,7 +95,22 @@ const checkEndpointAccess = async context => {
|
|
|
112
95
|
});
|
|
113
96
|
}
|
|
114
97
|
};
|
|
115
|
-
|
|
98
|
+
const formatErrorPayload = error => {
|
|
99
|
+
if (error instanceof _error.default) {
|
|
100
|
+
return JSON.stringify({
|
|
101
|
+
type: "CmsGraphQLWebinyError",
|
|
102
|
+
message: error.message,
|
|
103
|
+
code: error.code,
|
|
104
|
+
data: error.data
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return JSON.stringify({
|
|
108
|
+
type: "Error",
|
|
109
|
+
name: error.name,
|
|
110
|
+
message: error.message,
|
|
111
|
+
stack: error.stack
|
|
112
|
+
});
|
|
113
|
+
};
|
|
116
114
|
const cmsRoutes = new _handler.RoutePlugin(({
|
|
117
115
|
onPost,
|
|
118
116
|
onOptions,
|
|
@@ -132,21 +130,40 @@ const cmsRoutes = new _handler.RoutePlugin(({
|
|
|
132
130
|
}
|
|
133
131
|
});
|
|
134
132
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
133
|
+
let schema;
|
|
134
|
+
try {
|
|
135
|
+
schema = await getSchema({
|
|
136
|
+
context,
|
|
137
|
+
locale: context.cms.getLocale(),
|
|
138
|
+
type: context.cms.type
|
|
139
|
+
});
|
|
140
|
+
} catch (ex) {
|
|
141
|
+
console.log(`Error while generating the schema.`);
|
|
142
|
+
console.log(formatErrorPayload(ex));
|
|
143
|
+
throw ex;
|
|
144
|
+
}
|
|
145
|
+
let body = [];
|
|
146
|
+
try {
|
|
147
|
+
body = createRequestBody(request.body);
|
|
148
|
+
} catch (ex) {
|
|
149
|
+
console.log(`Error while creating the body request.`);
|
|
150
|
+
console.log(formatErrorPayload(ex));
|
|
151
|
+
throw ex;
|
|
152
|
+
}
|
|
153
|
+
try {
|
|
154
|
+
const result = await (0, _processRequestBody.default)(body, schema, context);
|
|
155
|
+
return reply.code(200).send(result);
|
|
156
|
+
} catch (ex) {
|
|
157
|
+
console.log(`Error while processing the body request.`);
|
|
158
|
+
console.log(formatErrorPayload(ex));
|
|
159
|
+
throw ex;
|
|
160
|
+
}
|
|
144
161
|
});
|
|
145
162
|
onOptions("/cms/:type(^manage|preview|read$)/:locale", async (_, reply) => {
|
|
146
|
-
return reply.
|
|
163
|
+
return reply.status(204).send({}).hijack();
|
|
147
164
|
});
|
|
148
165
|
});
|
|
149
|
-
|
|
166
|
+
cmsRoutes.name = "headless-cms.graphql.route.default";
|
|
150
167
|
const graphQLHandlerFactory = ({
|
|
151
168
|
debug
|
|
152
169
|
}) => {
|
|
@@ -154,5 +171,4 @@ const graphQLHandlerFactory = ({
|
|
|
154
171
|
type: "wcp-telemetry-tracker"
|
|
155
172
|
}];
|
|
156
173
|
};
|
|
157
|
-
|
|
158
174
|
exports.graphQLHandlerFactory = graphQLHandlerFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["schemaList","Map","generateCacheKey","args","context","locale","type","lastModelChange","cms","getModelLastChange","code","toISOString","join","generateSchema","plugins","register","buildSchemaPlugins","typeDefs","resolvers","schemaPlugins","byType","GraphQLSchemaPlugin","pl","push","schema","makeExecutableSchema","getSchema","params","tenantId","tenancy","getCurrentTenant","id","cacheKey","has","set","key","cache","get","checkEndpointAccess","permission","security","getPermission","NotAuthorizedError","data","reason","cmsRoutes","RoutePlugin","onPost","onOptions","request","reply","ex","send","error","message","stack","getLocale","body","result","processRequestBody","_","hijack","graphQLHandlerFactory","debug","debugPlugins"],"sources":["graphQLHandlerFactory.ts"],"sourcesContent":["import { GraphQLSchema } from \"graphql\";\nimport { makeExecutableSchema } from \"@graphql-tools/schema\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { PluginCollection } from \"@webiny/plugins/types\";\nimport debugPlugins from \"@webiny/handler-graphql/debugPlugins\";\nimport processRequestBody from \"@webiny/handler-graphql/processRequestBody\";\nimport { buildSchemaPlugins } from \"./buildSchemaPlugins\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/plugins\";\nimport { GraphQLRequestBody } from \"@webiny/handler-graphql/types\";\nimport { RoutePlugin } from \"@webiny/handler\";\n\ninterface SchemaCache {\n key: string;\n schema: GraphQLSchema;\n}\ninterface GetSchemaParams {\n context: CmsContext;\n type: ApiEndpoint;\n locale: I18NLocale;\n}\n\nconst schemaList = new Map<string, SchemaCache>();\n\nconst generateCacheKey = async (args: GetSchemaParams): Promise<string> => {\n const { context, locale, type } = args;\n const lastModelChange = await context.cms.getModelLastChange();\n return [locale.code, type, lastModelChange.toISOString()].join(\"#\");\n};\n\nconst generateSchema = async (args: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context } = args;\n\n context.plugins.register(await buildSchemaPlugins(context));\n /**\n * Really hard to type this to satisfy the makeExecutableSchema\n */\n // TODO @ts-refactor\n const typeDefs: any = [];\n const resolvers: any = [];\n\n // Get schema definitions from plugins\n const schemaPlugins = context.plugins.byType<GraphQLSchemaPlugin>(GraphQLSchemaPlugin.type);\n for (const pl of schemaPlugins) {\n typeDefs.push(pl.schema.typeDefs);\n resolvers.push(pl.schema.resolvers);\n }\n\n return makeExecutableSchema({\n typeDefs,\n resolvers\n });\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 */\nconst getSchema = async (params: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context, type, locale } = params;\n const tenantId = context.tenancy.getCurrentTenant().id;\n const id = `${tenantId}#${type}#${locale.code}`;\n\n const cacheKey = await generateCacheKey(params);\n if (!schemaList.has(id)) {\n const schema = await generateSchema(params);\n\n schemaList.set(id, {\n key: cacheKey,\n schema\n });\n return schema;\n }\n /**\n * Safe to cast because check was done few lines up.\n */\n const cache = schemaList.get(id) as SchemaCache;\n if (cache.key === cacheKey) {\n return cache.schema;\n }\n const schema = await generateSchema(params);\n schemaList.set(id, {\n key: cacheKey,\n schema\n });\n return schema;\n};\n\nconst checkEndpointAccess = async (context: CmsContext): Promise<void> => {\n const permission = await context.security.getPermission(`cms.endpoint.${context.cms.type}`);\n if (!permission) {\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access \"${context.cms.type}\" endpoint.`\n }\n });\n }\n};\n\nexport interface GraphQLHandlerFactoryParams {\n debug?: boolean;\n}\n\nconst cmsRoutes = new RoutePlugin<CmsContext>(({ onPost, onOptions, context }) => {\n onPost(\"/cms/:type(^manage|preview|read$)/:locale\", async (request, reply) => {\n try {\n await checkEndpointAccess(context);\n } catch (ex) {\n return reply.code(401).send({\n data: null,\n error: {\n message: ex.message || \"Not authorized!\",\n code: ex.code || \"SECURITY_NOT_AUTHORIZED\",\n data: ex.data || null,\n stack: null\n }\n });\n }\n\n const schema = await getSchema({\n context,\n locale: context.cms.getLocale(),\n type: context.cms.type as ApiEndpoint\n });\n const body: GraphQLRequestBody | GraphQLRequestBody[] = request.body as any;\n const result = await processRequestBody(body, schema, context);\n return reply.code(200).send(result);\n });\n\n onOptions(\"/cms/:type(^manage|preview|read$)/:locale\", async (_, reply) => {\n return reply.hijack().send({});\n });\n});\n\nexport const graphQLHandlerFactory = ({ debug }: GraphQLHandlerFactoryParams): PluginCollection => {\n return [\n ...(debug ? debugPlugins() : []),\n cmsRoutes,\n {\n type: \"wcp-telemetry-tracker\"\n }\n ];\n};\n"],"mappings":";;;;;;;;;AACA;;AAGA;;AAEA;;AACA;;AACA;;AACA;;AAEA;;AAYA,MAAMA,UAAU,GAAG,IAAIC,GAAJ,EAAnB;;AAEA,MAAMC,gBAAgB,GAAG,MAAOC,IAAP,IAAkD;EACvE,MAAM;IAAEC,OAAF;IAAWC,MAAX;IAAmBC;EAAnB,IAA4BH,IAAlC;EACA,MAAMI,eAAe,GAAG,MAAMH,OAAO,CAACI,GAAR,CAAYC,kBAAZ,EAA9B;EACA,OAAO,CAACJ,MAAM,CAACK,IAAR,EAAcJ,IAAd,EAAoBC,eAAe,CAACI,WAAhB,EAApB,EAAmDC,IAAnD,CAAwD,GAAxD,CAAP;AACH,CAJD;;AAMA,MAAMC,cAAc,GAAG,MAAOV,IAAP,IAAyD;EAC5E,MAAM;IAAEC;EAAF,IAAcD,IAApB;EAEAC,OAAO,CAACU,OAAR,CAAgBC,QAAhB,CAAyB,MAAM,IAAAC,sCAAA,EAAmBZ,OAAnB,CAA/B;EACA;AACJ;AACA;EACI;;EACA,MAAMa,QAAa,GAAG,EAAtB;EACA,MAAMC,SAAc,GAAG,EAAvB,CAT4E,CAW5E;;EACA,MAAMC,aAAa,GAAGf,OAAO,CAACU,OAAR,CAAgBM,MAAhB,CAA4CC,4BAAA,CAAoBf,IAAhE,CAAtB;;EACA,KAAK,MAAMgB,EAAX,IAAiBH,aAAjB,EAAgC;IAC5BF,QAAQ,CAACM,IAAT,CAAcD,EAAE,CAACE,MAAH,CAAUP,QAAxB;IACAC,SAAS,CAACK,IAAV,CAAeD,EAAE,CAACE,MAAH,CAAUN,SAAzB;EACH;;EAED,OAAO,IAAAO,4BAAA,EAAqB;IACxBR,QADwB;IAExBC;EAFwB,CAArB,CAAP;AAIH,CAtBD;AAwBA;AACA;AACA;AACA;;;AACA,MAAMQ,SAAS,GAAG,MAAOC,MAAP,IAA2D;EACzE,MAAM;IAAEvB,OAAF;IAAWE,IAAX;IAAiBD;EAAjB,IAA4BsB,MAAlC;EACA,MAAMC,QAAQ,GAAGxB,OAAO,CAACyB,OAAR,CAAgBC,gBAAhB,GAAmCC,EAApD;EACA,MAAMA,EAAE,GAAI,GAAEH,QAAS,IAAGtB,IAAK,IAAGD,MAAM,CAACK,IAAK,EAA9C;EAEA,MAAMsB,QAAQ,GAAG,MAAM9B,gBAAgB,CAACyB,MAAD,CAAvC;;EACA,IAAI,CAAC3B,UAAU,CAACiC,GAAX,CAAeF,EAAf,CAAL,EAAyB;IACrB,MAAMP,MAAM,GAAG,MAAMX,cAAc,CAACc,MAAD,CAAnC;IAEA3B,UAAU,CAACkC,GAAX,CAAeH,EAAf,EAAmB;MACfI,GAAG,EAAEH,QADU;MAEfR;IAFe,CAAnB;IAIA,OAAOA,MAAP;EACH;EACD;AACJ;AACA;;;EACI,MAAMY,KAAK,GAAGpC,UAAU,CAACqC,GAAX,CAAeN,EAAf,CAAd;;EACA,IAAIK,KAAK,CAACD,GAAN,KAAcH,QAAlB,EAA4B;IACxB,OAAOI,KAAK,CAACZ,MAAb;EACH;;EACD,MAAMA,MAAM,GAAG,MAAMX,cAAc,CAACc,MAAD,CAAnC;EACA3B,UAAU,CAACkC,GAAX,CAAeH,EAAf,EAAmB;IACfI,GAAG,EAAEH,QADU;IAEfR;EAFe,CAAnB;EAIA,OAAOA,MAAP;AACH,CA5BD;;AA8BA,MAAMc,mBAAmB,GAAG,MAAOlC,OAAP,IAA8C;EACtE,MAAMmC,UAAU,GAAG,MAAMnC,OAAO,CAACoC,QAAR,CAAiBC,aAAjB,CAAgC,gBAAerC,OAAO,CAACI,GAAR,CAAYF,IAAK,EAAhE,CAAzB;;EACA,IAAI,CAACiC,UAAL,EAAiB;IACb,MAAM,IAAIG,+BAAJ,CAAuB;MACzBC,IAAI,EAAE;QACFC,MAAM,EAAG,0BAAyBxC,OAAO,CAACI,GAAR,CAAYF,IAAK;MADjD;IADmB,CAAvB,CAAN;EAKH;AACJ,CATD;;AAeA,MAAMuC,SAAS,GAAG,IAAIC,oBAAJ,CAA4B,CAAC;EAAEC,MAAF;EAAUC,SAAV;EAAqB5C;AAArB,CAAD,KAAoC;EAC9E2C,MAAM,CAAC,2CAAD,EAA8C,OAAOE,OAAP,EAAgBC,KAAhB,KAA0B;IAC1E,IAAI;MACA,MAAMZ,mBAAmB,CAAClC,OAAD,CAAzB;IACH,CAFD,CAEE,OAAO+C,EAAP,EAAW;MACT,OAAOD,KAAK,CAACxC,IAAN,CAAW,GAAX,EAAgB0C,IAAhB,CAAqB;QACxBT,IAAI,EAAE,IADkB;QAExBU,KAAK,EAAE;UACHC,OAAO,EAAEH,EAAE,CAACG,OAAH,IAAc,iBADpB;UAEH5C,IAAI,EAAEyC,EAAE,CAACzC,IAAH,IAAW,yBAFd;UAGHiC,IAAI,EAAEQ,EAAE,CAACR,IAAH,IAAW,IAHd;UAIHY,KAAK,EAAE;QAJJ;MAFiB,CAArB,CAAP;IASH;;IAED,MAAM/B,MAAM,GAAG,MAAME,SAAS,CAAC;MAC3BtB,OAD2B;MAE3BC,MAAM,EAAED,OAAO,CAACI,GAAR,CAAYgD,SAAZ,EAFmB;MAG3BlD,IAAI,EAAEF,OAAO,CAACI,GAAR,CAAYF;IAHS,CAAD,CAA9B;IAKA,MAAMmD,IAA+C,GAAGR,OAAO,CAACQ,IAAhE;IACA,MAAMC,MAAM,GAAG,MAAM,IAAAC,2BAAA,EAAmBF,IAAnB,EAAyBjC,MAAzB,EAAiCpB,OAAjC,CAArB;IACA,OAAO8C,KAAK,CAACxC,IAAN,CAAW,GAAX,EAAgB0C,IAAhB,CAAqBM,MAArB,CAAP;EACH,CAvBK,CAAN;EAyBAV,SAAS,CAAC,2CAAD,EAA8C,OAAOY,CAAP,EAAUV,KAAV,KAAoB;IACvE,OAAOA,KAAK,CAACW,MAAN,GAAeT,IAAf,CAAoB,EAApB,CAAP;EACH,CAFQ,CAAT;AAGH,CA7BiB,CAAlB;;AA+BO,MAAMU,qBAAqB,GAAG,CAAC;EAAEC;AAAF,CAAD,KAA8D;EAC/F,OAAO,CACH,IAAIA,KAAK,GAAG,IAAAC,qBAAA,GAAH,GAAoB,EAA7B,CADG,EAEHnB,SAFG,EAGH;IACIvC,IAAI,EAAE;EADV,CAHG,CAAP;AAOH,CARM"}
|
|
1
|
+
{"version":3,"names":["createRequestBody","body","JSON","parse","schemaList","Map","generateCacheKey","args","context","locale","type","lastModelChange","cms","getModelLastChange","code","toISOString","join","getSchema","params","tenantId","tenancy","getCurrentTenant","id","cacheKey","cachedSchema","get","key","schema","security","disableAuthorization","models","listModels","filter","model","isPrivate","enableAuthorization","generateSchema","set","err","Array","isArray","locations","WebinyError","message","data","location","invalidSegment","codeFrame","source","line","column","frameSize","checkEndpointAccess","permission","getPermission","NotAuthorizedError","reason","formatErrorPayload","error","stringify","name","stack","cmsRoutes","RoutePlugin","onPost","onOptions","request","reply","ex","send","getLocale","console","log","result","processRequestBody","_","status","hijack","graphQLHandlerFactory","debug","debugPlugins"],"sources":["graphQLHandlerFactory.ts"],"sourcesContent":["import { GraphQLSchema } from \"graphql\";\nimport { ApiEndpoint, CmsContext } from \"~/types\";\nimport { I18NLocale } from \"@webiny/api-i18n/types\";\nimport { NotAuthorizedError } from \"@webiny/api-security\";\nimport { PluginCollection } from \"@webiny/plugins/types\";\nimport debugPlugins from \"@webiny/handler-graphql/debugPlugins\";\nimport processRequestBody from \"@webiny/handler-graphql/processRequestBody\";\nimport { GraphQLRequestBody } from \"@webiny/handler-graphql/types\";\nimport { RoutePlugin } from \"@webiny/handler\";\nimport WebinyError from \"@webiny/error\";\n// @ts-ignore `code-frame` has no types\nimport codeFrame from \"code-frame\";\nimport { generateSchema } from \"~/graphql/generateSchema\";\n\ninterface SchemaCache {\n key: string;\n schema: GraphQLSchema;\n}\ninterface GetSchemaParams {\n context: CmsContext;\n type: ApiEndpoint;\n locale: I18NLocale;\n}\n\nconst createRequestBody = (body: unknown): GraphQLRequestBody | GraphQLRequestBody[] => {\n /**\n * We are trusting that the body payload is correct.\n * The `processRequestBody` will fail if it is not.\n */\n return typeof body === \"string\" ? JSON.parse(body) : body;\n};\n\nconst schemaList = new Map<string, SchemaCache>();\n\nconst generateCacheKey = async (args: GetSchemaParams): Promise<string> => {\n const { context, locale, type } = args;\n const lastModelChange = await context.cms.getModelLastChange();\n return [locale.code, type, lastModelChange.toISOString()].join(\"#\");\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 */\nconst getSchema = async (params: GetSchemaParams): Promise<GraphQLSchema> => {\n const { context, type, locale } = params;\n const tenantId = context.tenancy.getCurrentTenant().id;\n const id = `${tenantId}#${type}#${locale.code}`;\n\n const cacheKey = await generateCacheKey(params);\n const cachedSchema = schemaList.get(id);\n if (cachedSchema?.key === cacheKey) {\n return cachedSchema.schema;\n }\n // Load model data\n context.security.disableAuthorization();\n const models = (await context.cms.listModels()).filter(model => model.isPrivate !== true);\n context.security.enableAuthorization();\n try {\n const schema = await generateSchema({\n ...params,\n models\n });\n schemaList.set(id, {\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 locations: err.locations\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\nconst checkEndpointAccess = async (context: CmsContext): Promise<void> => {\n const permission = await context.security.getPermission(`cms.endpoint.${context.cms.type}`);\n if (!permission) {\n throw new NotAuthorizedError({\n data: {\n reason: `Not allowed to access \"${context.cms.type}\" endpoint.`\n }\n });\n }\n};\n\nconst formatErrorPayload = (error: Error): string => {\n if (error instanceof WebinyError) {\n return JSON.stringify({\n type: \"CmsGraphQLWebinyError\",\n message: error.message,\n code: error.code,\n data: error.data\n });\n }\n\n return JSON.stringify({\n type: \"Error\",\n name: error.name,\n message: error.message,\n stack: error.stack\n });\n};\n\nexport interface GraphQLHandlerFactoryParams {\n debug?: boolean;\n}\n\nconst cmsRoutes = new RoutePlugin<CmsContext>(({ onPost, onOptions, context }) => {\n onPost(\"/cms/:type(^manage|preview|read$)/:locale\", async (request, reply) => {\n try {\n await checkEndpointAccess(context);\n } catch (ex) {\n return reply.code(401).send({\n data: null,\n error: {\n message: ex.message || \"Not authorized!\",\n code: ex.code || \"SECURITY_NOT_AUTHORIZED\",\n data: ex.data || null,\n stack: null\n }\n });\n }\n\n let schema: GraphQLSchema;\n try {\n schema = await getSchema({\n context,\n locale: context.cms.getLocale(),\n type: context.cms.type as ApiEndpoint\n });\n } catch (ex) {\n console.log(`Error while generating the schema.`);\n console.log(formatErrorPayload(ex));\n throw ex;\n }\n\n let body: GraphQLRequestBody | GraphQLRequestBody[] = [];\n try {\n body = createRequestBody(request.body);\n } catch (ex) {\n console.log(`Error while creating the body request.`);\n console.log(formatErrorPayload(ex));\n throw ex;\n }\n\n try {\n const result = await processRequestBody(body, schema, context);\n return reply.code(200).send(result);\n } catch (ex) {\n console.log(`Error while processing the body request.`);\n console.log(formatErrorPayload(ex));\n throw ex;\n }\n });\n\n onOptions(\"/cms/:type(^manage|preview|read$)/:locale\", async (_, reply) => {\n return reply.status(204).send({}).hijack();\n });\n});\n\ncmsRoutes.name = \"headless-cms.graphql.route.default\";\n\nexport const graphQLHandlerFactory = ({ debug }: GraphQLHandlerFactoryParams): PluginCollection => {\n return [\n ...(debug ? debugPlugins() : []),\n cmsRoutes,\n {\n type: \"wcp-telemetry-tracker\"\n }\n ];\n};\n"],"mappings":"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"}
|
package/graphql/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/types";
|
|
2
1
|
import { GraphQLHandlerFactoryParams } from "./graphQLHandlerFactory";
|
|
3
|
-
import { CmsContext } from "../types";
|
|
4
2
|
export declare type CreateGraphQLParams = GraphQLHandlerFactoryParams;
|
|
5
|
-
export declare const createGraphQL: (params: CreateGraphQLParams) => (import("@webiny/
|
|
3
|
+
export declare const createGraphQL: (params: CreateGraphQLParams) => (import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("../types").CmsContext> | import("@webiny/api").ContextPlugin<import("../types").CmsContext> | import("@webiny/plugins/types").PluginCollection)[];
|
package/graphql/index.js
CHANGED
|
@@ -4,54 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createGraphQL = void 0;
|
|
7
|
-
|
|
8
7
|
var _system = require("./system");
|
|
9
|
-
|
|
10
8
|
var _graphQLHandlerFactory = require("./graphQLHandlerFactory");
|
|
11
|
-
|
|
12
|
-
const createBaseSchema = () => {
|
|
13
|
-
return {
|
|
14
|
-
name: "cms.graphql.schema.base",
|
|
15
|
-
type: "graphql-schema",
|
|
16
|
-
schema: {
|
|
17
|
-
typeDefs:
|
|
18
|
-
/* GraphQL */
|
|
19
|
-
`
|
|
20
|
-
type CmsError {
|
|
21
|
-
code: String
|
|
22
|
-
message: String
|
|
23
|
-
data: JSON
|
|
24
|
-
stack: String
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
type CmsCursors {
|
|
28
|
-
next: String
|
|
29
|
-
previous: String
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
type CmsListMeta {
|
|
33
|
-
cursor: String
|
|
34
|
-
hasMoreItems: Boolean
|
|
35
|
-
totalCount: Int
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
type CmsDeleteResponse {
|
|
39
|
-
data: Boolean
|
|
40
|
-
error: CmsError
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
type CmsBooleanResponse {
|
|
44
|
-
data: Boolean
|
|
45
|
-
error: CmsError
|
|
46
|
-
}
|
|
47
|
-
`,
|
|
48
|
-
resolvers: {}
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
};
|
|
52
|
-
|
|
9
|
+
var _baseSchema = require("./schema/baseSchema");
|
|
53
10
|
const createGraphQL = params => {
|
|
54
|
-
return [createBaseSchema(), (0, _system.createSystemSchemaPlugin)(), (0, _graphQLHandlerFactory.graphQLHandlerFactory)(params)];
|
|
11
|
+
return [...(0, _baseSchema.createBaseSchema)(), (0, _system.createSystemSchemaPlugin)(), (0, _graphQLHandlerFactory.graphQLHandlerFactory)(params)];
|
|
55
12
|
};
|
|
56
|
-
|
|
57
13
|
exports.createGraphQL = createGraphQL;
|
package/graphql/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createGraphQL","params","createBaseSchema","createSystemSchemaPlugin","graphQLHandlerFactory"],"sources":["index.ts"],"sourcesContent":["import { createSystemSchemaPlugin } from \"./system\";\nimport { graphQLHandlerFactory, GraphQLHandlerFactoryParams } from \"./graphQLHandlerFactory\";\nimport { createBaseSchema } from \"~/graphql/schema/baseSchema\";\n\nexport type CreateGraphQLParams = GraphQLHandlerFactoryParams;\nexport const createGraphQL = (params: CreateGraphQLParams) => {\n return [...createBaseSchema(), createSystemSchemaPlugin(), graphQLHandlerFactory(params)];\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AAGO,MAAMA,aAAa,GAAIC,MAA2B,IAAK;EAC1D,OAAO,CAAC,GAAG,IAAAC,4BAAgB,GAAE,EAAE,IAAAC,gCAAwB,GAAE,EAAE,IAAAC,4CAAqB,EAACH,MAAM,CAAC,CAAC;AAC7F,CAAC;AAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { CmsContext } from "../../types";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { CmsGraphQLSchemaPlugin } from "../../plugins";
|
|
3
|
+
interface Params {
|
|
4
|
+
context: CmsContext;
|
|
5
|
+
}
|
|
6
|
+
export declare const createBaseContentSchema: ({ context }: Params) => CmsGraphQLSchemaPlugin;
|
|
7
|
+
export {};
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.createBaseContentSchema = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
9
|
var _builtInTypes = require("@webiny/handler-graphql/builtInTypes");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
var _plugins = require("../../plugins");
|
|
11
|
+
const createBaseContentSchema = ({
|
|
12
|
+
context
|
|
13
|
+
}) => {
|
|
17
14
|
const scalars = context.plugins.byType("graphql-scalar").map(item => item.scalar);
|
|
18
|
-
|
|
19
|
-
typeDefs:
|
|
20
|
-
/* GraphQL */
|
|
21
|
-
`
|
|
15
|
+
const plugin = new _plugins.CmsGraphQLSchemaPlugin({
|
|
16
|
+
typeDefs: /* GraphQL */`
|
|
22
17
|
${scalars.map(scalar => `scalar ${scalar.name}`).join(" ")}
|
|
23
18
|
scalar JSON
|
|
24
19
|
scalar Long
|
|
@@ -59,7 +54,7 @@ const createBaseContentSchema = context => {
|
|
|
59
54
|
}, {})), {}, {
|
|
60
55
|
JSON: _builtInTypes.JsonScalar,
|
|
61
56
|
Long: _builtInTypes.LongScalar,
|
|
62
|
-
RefInput: _builtInTypes.
|
|
57
|
+
RefInput: _builtInTypes.RefInputScalar,
|
|
63
58
|
Number: _builtInTypes.NumberScalar,
|
|
64
59
|
Any: _builtInTypes.AnyScalar,
|
|
65
60
|
DateTime: _builtInTypes.DateTimeScalar,
|
|
@@ -71,6 +66,7 @@ const createBaseContentSchema = context => {
|
|
|
71
66
|
}
|
|
72
67
|
})
|
|
73
68
|
});
|
|
69
|
+
plugin.name = `headless-cms.graphql.schema.baseContentSchema`;
|
|
70
|
+
return plugin;
|
|
74
71
|
};
|
|
75
|
-
|
|
76
72
|
exports.createBaseContentSchema = createBaseContentSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createBaseContentSchema","context","scalars","plugins","byType","map","item","scalar","
|
|
1
|
+
{"version":3,"names":["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"],"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 CmsCreatedBy {\n id: String\n displayName: String\n type: String\n }\n\n type CmsOwnedBy {\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;AAYA;AAKO,MAAMA,uBAAuB,GAAG,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;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;IACDC,SAAS,8DACFX,OAAO,CAACY,MAAM,CAAoC,CAACC,GAAG,EAAEC,CAAC,KAAK;MAC7DD,GAAG,CAACC,CAAC,CAACL,IAAI,CAAC,GAAGK,CAAC;MACf,OAAOD,GAAG;IACd,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,EAAE,MAAM;MAClB;IAAC;EAET,CAAC,CAAC;EACF5B,MAAM,CAACG,IAAI,GAAI,+CAA8C;EAE7D,OAAOH,MAAM;AACjB,CAAC;AAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createBaseSchema = void 0;
|
|
7
|
+
var _plugins = require("../../plugins");
|
|
8
|
+
var _handlerGraphql = require("@webiny/handler-graphql");
|
|
9
|
+
const createBaseSchema = () => {
|
|
10
|
+
const cmsPlugin = new _plugins.CmsGraphQLSchemaPlugin({
|
|
11
|
+
typeDefs: /* GraphQL */`
|
|
12
|
+
type CmsError {
|
|
13
|
+
code: String
|
|
14
|
+
message: String
|
|
15
|
+
data: JSON
|
|
16
|
+
stack: String
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
type CmsCursors {
|
|
20
|
+
next: String
|
|
21
|
+
previous: String
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type CmsListMeta {
|
|
25
|
+
cursor: String
|
|
26
|
+
hasMoreItems: Boolean
|
|
27
|
+
totalCount: Int
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
type CmsDeleteResponse {
|
|
31
|
+
data: Boolean
|
|
32
|
+
error: CmsError
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type CmsBooleanResponse {
|
|
36
|
+
data: Boolean
|
|
37
|
+
error: CmsError
|
|
38
|
+
}
|
|
39
|
+
`,
|
|
40
|
+
resolvers: {}
|
|
41
|
+
});
|
|
42
|
+
cmsPlugin.name = "headless-cms.graphql.schema.base";
|
|
43
|
+
const corePlugin = new _handlerGraphql.GraphQLSchemaPlugin({
|
|
44
|
+
typeDefs: cmsPlugin.schema.typeDefs,
|
|
45
|
+
resolvers: cmsPlugin.schema.resolvers
|
|
46
|
+
});
|
|
47
|
+
corePlugin.name = "headless-cms.graphql.core.schema.base";
|
|
48
|
+
/**
|
|
49
|
+
* Due to splitting of CMS and Core schema plugins, we must have both defined for CMS to work.
|
|
50
|
+
*/
|
|
51
|
+
return [cmsPlugin, corePlugin];
|
|
52
|
+
};
|
|
53
|
+
exports.createBaseSchema = createBaseSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createBaseSchema","cmsPlugin","CmsGraphQLSchemaPlugin","typeDefs","resolvers","name","corePlugin","GraphQLSchemaPlugin","schema"],"sources":["baseSchema.ts"],"sourcesContent":["import { CmsContext } from \"~/types\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql\";\n\nexport const createBaseSchema = (): GraphQLSchemaPlugin<CmsContext>[] => {\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 type CmsDeleteResponse {\n data: Boolean\n error: CmsError\n }\n\n type CmsBooleanResponse {\n data: Boolean\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"],"mappings":";;;;;;AACA;AACA;AAEO,MAAMA,gBAAgB,GAAG,MAAyC;EACrE,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,SAAS;IACDC,SAAS,EAAE,CAAC;EAChB,CAAC,CAAC;EACFH,SAAS,CAACI,IAAI,GAAG,kCAAkC;EACnD,MAAMC,UAAU,GAAG,IAAIC,mCAAmB,CAAa;IACnDJ,QAAQ,EAAEF,SAAS,CAACO,MAAM,CAACL,QAAQ;IACnCC,SAAS,EAAEH,SAAS,CAACO,MAAM,CAACJ;EAChC,CAAC,CAAC;EACFE,UAAU,CAACD,IAAI,GAAG,uCAAuC;EACzD;AACJ;AACA;EACI,OAAO,CAACJ,SAAS,EAAEK,UAAU,CAAC;AAClC,CAAC;AAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { CmsContext } from "../../types";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { CmsGraphQLSchemaPlugin } from "../../plugins";
|
|
3
|
+
interface Params {
|
|
4
|
+
context: CmsContext;
|
|
5
|
+
}
|
|
6
|
+
export declare const createContentEntriesSchema: ({ context }: Params) => CmsGraphQLSchemaPlugin<CmsContext>;
|
|
7
|
+
export {};
|