@webiny/api-headless-cms 0.0.0-unstable.40876133bb → 0.0.0-unstable.60e968001a
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 +63 -4
- package/context.js.map +1 -1
- package/crud/contentEntry/markLockedFields.js +5 -2
- package/crud/contentEntry/markLockedFields.js.map +1 -1
- package/crud/contentEntry/referenceFieldsMapping.js +9 -5
- package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
- package/crud/contentEntry/searchableFields.d.ts +9 -0
- package/crud/contentEntry/searchableFields.js +83 -0
- package/crud/contentEntry/searchableFields.js.map +1 -0
- package/crud/contentEntry.crud.js +65 -40
- package/crud/contentEntry.crud.js.map +1 -1
- package/crud/contentModel/createFieldStorageId.js +5 -1
- 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/validateModelFields.js +46 -37
- package/crud/contentModel/validateModelFields.js.map +1 -1
- package/crud/contentModel/validation.d.ts +477 -0
- package/crud/contentModel/validation.js +109 -0
- package/crud/contentModel/validation.js.map +1 -0
- package/crud/contentModel.crud.js +227 -175
- package/crud/contentModel.crud.js.map +1 -1
- package/crud/contentModelGroup/validation.d.ts +30 -0
- package/crud/contentModelGroup/validation.js +43 -0
- package/crud/contentModelGroup/validation.js.map +1 -0
- package/crud/contentModelGroup.crud.js +54 -54
- package/crud/contentModelGroup.crud.js.map +1 -1
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +239 -0
- package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
- package/fieldConverters/index.d.ts +2 -1
- package/fieldConverters/index.js +3 -1
- package/fieldConverters/index.js.map +1 -1
- package/graphql/buildSchemaPlugins.d.ts +2 -2
- package/graphql/buildSchemaPlugins.js.map +1 -1
- package/graphql/graphQLHandlerFactory.js +58 -28
- package/graphql/graphQLHandlerFactory.js.map +1 -1
- package/graphql/index.d.ts +2 -2
- package/graphql/index.js +49 -38
- package/graphql/index.js.map +1 -1
- package/graphql/schema/baseContentSchema.d.ts +2 -2
- package/graphql/schema/baseContentSchema.js +3 -3
- package/graphql/schema/baseContentSchema.js.map +1 -1
- package/graphql/schema/contentEntries.d.ts +2 -2
- package/graphql/schema/contentEntries.js +5 -5
- package/graphql/schema/contentEntries.js.map +1 -1
- package/graphql/schema/contentModelGroups.d.ts +2 -2
- package/graphql/schema/contentModelGroups.js +3 -3
- package/graphql/schema/contentModelGroups.js.map +1 -1
- package/graphql/schema/contentModels.d.ts +2 -2
- package/graphql/schema/contentModels.js +26 -7
- package/graphql/schema/contentModels.js.map +1 -1
- package/graphql/schema/createFieldResolvers.d.ts +1 -1
- package/graphql/schema/createFieldResolvers.js +23 -7
- package/graphql/schema/createFieldResolvers.js.map +1 -1
- package/graphql/schema/createManageSDL.d.ts +2 -0
- package/graphql/schema/createManageSDL.js +9 -6
- package/graphql/schema/createManageSDL.js.map +1 -1
- package/graphql/schema/createReadResolvers.js +5 -0
- package/graphql/schema/createReadResolvers.js.map +1 -1
- package/graphql/schema/createReadSDL.d.ts +2 -0
- package/graphql/schema/createReadSDL.js +11 -5
- package/graphql/schema/createReadSDL.js.map +1 -1
- package/graphql/schema/schemaPlugins.d.ts +2 -2
- package/graphql/schema/schemaPlugins.js +11 -8
- package/graphql/schema/schemaPlugins.js.map +1 -1
- package/graphql/system.js +79 -82
- package/graphql/system.js.map +1 -1
- package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +2 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js +234 -0
- package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.d.ts +3 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js +79 -0
- package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -0
- package/graphqlFields/dynamicZone/index.d.ts +2 -0
- package/graphqlFields/dynamicZone/index.js +21 -0
- package/graphqlFields/dynamicZone/index.js.map +1 -0
- package/graphqlFields/index.d.ts +1 -1
- package/graphqlFields/index.js +3 -1
- package/graphqlFields/index.js.map +1 -1
- package/graphqlFields/number.js +4 -0
- package/graphqlFields/number.js.map +1 -1
- package/graphqlFields/object.js +122 -72
- package/graphqlFields/object.js.map +1 -1
- package/graphqlFields/ref.js +34 -48
- package/graphqlFields/ref.js.map +1 -1
- package/index.d.ts +3 -3
- package/index.js +4 -8
- package/index.js.map +1 -1
- package/package.json +26 -26
- package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
- package/plugins/CmsGraphQLSchemaPlugin.js +17 -0
- package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.js +38 -0
- package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
- package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
- package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
- package/plugins/StorageTransformPlugin.d.ts +11 -11
- package/plugins/StorageTransformPlugin.js.map +1 -1
- package/plugins/index.d.ts +2 -0
- package/plugins/index.js +26 -0
- package/plugins/index.js.map +1 -1
- package/storage/object.js +5 -2
- package/storage/object.js.map +1 -1
- package/types.d.ts +203 -55
- package/types.js +55 -7
- package/types.js.map +1 -1
- package/utils/converters/ConverterCollection.js +6 -2
- package/utils/converters/ConverterCollection.js.map +1 -1
- package/utils/createTypeFromFields.d.ts +15 -0
- package/utils/createTypeFromFields.js +75 -0
- package/utils/createTypeFromFields.js.map +1 -0
- package/utils/createTypeName.js +3 -1
- package/utils/createTypeName.js.map +1 -1
- package/utils/entryStorage.js +15 -12
- package/utils/entryStorage.js.map +1 -1
- package/utils/getBaseFieldType.d.ts +4 -0
- package/utils/getBaseFieldType.js +12 -0
- package/utils/getBaseFieldType.js.map +1 -0
- package/utils/renderFields.js +3 -1
- package/utils/renderFields.js.map +1 -1
- package/utils/renderGetFilterFields.js +8 -3
- package/utils/renderGetFilterFields.js.map +1 -1
- package/utils/renderInputFields.js +3 -1
- package/utils/renderInputFields.js.map +1 -1
- package/utils/renderListFilterFields.js +5 -2
- package/utils/renderListFilterFields.js.map +1 -1
- package/utils/renderSortEnum.d.ts +7 -4
- package/utils/renderSortEnum.js +23 -4
- package/utils/renderSortEnum.js.map +1 -1
- package/validators/dynamicZone.d.ts +2 -0
- package/validators/dynamicZone.js +24 -0
- package/validators/dynamicZone.js.map +1 -0
- package/validators/index.js +3 -1
- package/validators/index.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
|
@@ -21,7 +21,8 @@ var _pluralizedTypeName = require("../../utils/pluralizedTypeName");
|
|
|
21
21
|
|
|
22
22
|
const createManageSDL = ({
|
|
23
23
|
model,
|
|
24
|
-
fieldTypePlugins
|
|
24
|
+
fieldTypePlugins,
|
|
25
|
+
sorterPlugins
|
|
25
26
|
}) => {
|
|
26
27
|
const typeName = (0, _createTypeName.createTypeName)(model.modelId);
|
|
27
28
|
const mTypeName = (0, _createTypeName.createManageTypeName)(typeName);
|
|
@@ -32,7 +33,8 @@ const createManageSDL = ({
|
|
|
32
33
|
});
|
|
33
34
|
const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
|
|
34
35
|
model,
|
|
35
|
-
fieldTypePlugins
|
|
36
|
+
fieldTypePlugins,
|
|
37
|
+
sorterPlugins
|
|
36
38
|
});
|
|
37
39
|
const getFilterFieldsRender = (0, _renderGetFilterFields.renderGetFilterFields)({
|
|
38
40
|
model,
|
|
@@ -56,8 +58,6 @@ const createManageSDL = ({
|
|
|
56
58
|
/* GraphQL */
|
|
57
59
|
`
|
|
58
60
|
"""${model.description || model.modelId}"""
|
|
59
|
-
${fields.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
60
|
-
|
|
61
61
|
type ${mTypeName} {
|
|
62
62
|
id: ID!
|
|
63
63
|
entryId: String!
|
|
@@ -86,7 +86,8 @@ const createManageSDL = ({
|
|
|
86
86
|
"""
|
|
87
87
|
data: JSON
|
|
88
88
|
}
|
|
89
|
-
|
|
89
|
+
|
|
90
|
+
${fields.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
90
91
|
|
|
91
92
|
${inputFields.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
92
93
|
|
|
@@ -100,7 +101,9 @@ const createManageSDL = ({
|
|
|
100
101
|
|
|
101
102
|
|
|
102
103
|
${listFilterFieldsRender && `input ${mTypeName}ListWhereInput {
|
|
103
|
-
|
|
104
|
+
${listFilterFieldsRender}
|
|
105
|
+
AND: [${mTypeName}ListWhereInput!]
|
|
106
|
+
OR: [${mTypeName}ListWhereInput!]
|
|
104
107
|
}`}
|
|
105
108
|
|
|
106
109
|
type ${mTypeName}Response {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createManageSDL","model","fieldTypePlugins","typeName","createTypeName","modelId","mTypeName","createManageTypeName","listFilterFieldsRender","renderListFilterFields","type","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","inputFields","renderInputFields","fields","renderFields","length","description","map","f","typeDefs","filter","Boolean","
|
|
1
|
+
{"version":3,"names":["createManageSDL","model","fieldTypePlugins","sorterPlugins","typeName","createTypeName","modelId","mTypeName","createManageTypeName","listFilterFieldsRender","renderListFilterFields","type","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","inputFields","renderInputFields","fields","renderFields","length","description","map","f","join","typeDefs","filter","Boolean","pluralizedTypeName"],"sources":["createManageSDL.ts"],"sourcesContent":["import { CmsFieldTypePlugins, CmsModel } from \"~/types\";\nimport { createManageTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { renderInputFields } from \"~/utils/renderInputFields\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\n\ninterface CreateManageSDLParams {\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\ninterface CreateManageSDL {\n (params: CreateManageSDLParams): string;\n}\n\nexport const createManageSDL: CreateManageSDL = ({\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const typeName = createTypeName(model.modelId);\n const mTypeName = createManageTypeName(typeName);\n\n const listFilterFieldsRender = renderListFilterFields({\n model,\n type: \"manage\",\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({ model, fieldTypePlugins, sorterPlugins });\n const getFilterFieldsRender = renderGetFilterFields({ model, fieldTypePlugins });\n const inputFields = renderInputFields({ model, fieldTypePlugins });\n const fields = renderFields({ model, type: \"manage\", fieldTypePlugins });\n\n if (inputFields.length === 0) {\n return \"\";\n }\n\n return /* GraphQL */ `\n \"\"\"${model.description || model.modelId}\"\"\"\n type ${mTypeName} {\n id: ID!\n entryId: String!\n createdOn: DateTime!\n savedOn: DateTime!\n createdBy: CmsCreatedBy!\n ownedBy: CmsOwnedBy!\n meta: ${mTypeName}Meta\n ${fields.map(f => f.fields).join(\"\\n\")}\n }\n\n type ${mTypeName}Meta {\n modelId: String\n version: Int\n locked: Boolean\n publishedOn: DateTime\n status: String\n \"\"\"\n CAUTION: this field is resolved by making an extra query to DB.\n RECOMMENDATION: Use it only with \"get\" queries (avoid in \"list\")\n \"\"\"\n revisions: [${mTypeName}]\n title: String\n \"\"\"\n Custom meta data stored in the root of the entry object.\n \"\"\"\n data: JSON\n }\n\n ${fields\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n \n ${inputFields\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n\n ${\n inputFields &&\n `input ${mTypeName}Input {\n ${inputFields.map(f => f.fields).join(\"\\n\")}\n }`\n }\n\n ${\n getFilterFieldsRender &&\n `input ${mTypeName}GetWhereInput {\n ${getFilterFieldsRender}\n }`\n }\n\n\n ${\n listFilterFieldsRender &&\n `input ${mTypeName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${mTypeName}ListWhereInput!]\n OR: [${mTypeName}ListWhereInput!]\n }`\n }\n\n type ${mTypeName}Response {\n data: ${mTypeName}\n error: CmsError\n }\n \n type ${mTypeName}ArrayResponse {\n data: [${mTypeName}]\n error: CmsError\n }\n\n type ${mTypeName}ListResponse {\n data: [${mTypeName}]\n meta: CmsListMeta\n error: CmsError\n }\n\n ${\n sortEnumRender &&\n `enum ${mTypeName}ListSorter {\n ${sortEnumRender}\n }`\n }\n\n extend type Query {\n get${typeName}(revision: ID, entryId: ID, status: CmsEntryStatusType): ${mTypeName}Response\n \n get${typeName}Revisions(id: ID!): ${mTypeName}ArrayResponse\n \n get${pluralizedTypeName(typeName)}ByIds(revisions: [ID!]!): ${mTypeName}ArrayResponse\n\n list${pluralizedTypeName(typeName)}(\n where: ${mTypeName}ListWhereInput\n sort: [${mTypeName}ListSorter]\n limit: Int\n after: String\n ): ${mTypeName}ListResponse\n }\n\n extend type Mutation{\n create${typeName}(data: ${mTypeName}Input!): ${mTypeName}Response\n\n create${typeName}From(revision: ID!, data: ${mTypeName}Input): ${mTypeName}Response\n\n update${typeName}(revision: ID!, data: ${mTypeName}Input!): ${mTypeName}Response\n\n delete${typeName}(revision: ID!): CmsDeleteResponse\n\n publish${typeName}(revision: ID!): ${mTypeName}Response\n \n republish${typeName}(revision: ID!): ${mTypeName}Response\n\n unpublish${typeName}(revision: ID!): ${mTypeName}Response\n }\n `;\n};\n"],"mappings":"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"}
|
|
@@ -51,6 +51,11 @@ const createReadResolvers = ({
|
|
|
51
51
|
[`list${(0, _pluralizedTypeName.pluralizedTypeName)(typeName)}`]: (0, _resolveList.resolveList)({
|
|
52
52
|
model
|
|
53
53
|
})
|
|
54
|
+
},
|
|
55
|
+
[rTypeName]: {
|
|
56
|
+
modelId: () => {
|
|
57
|
+
return model.modelId;
|
|
58
|
+
}
|
|
54
59
|
}
|
|
55
60
|
}, fieldResolvers);
|
|
56
61
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createReadResolvers","models","model","fieldTypePlugins","fields","length","Query","typeName","createTypeName","modelId","rTypeName","createReadTypeName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","isRoot","resolveGet","pluralizedTypeName","resolveList"],"sources":["createReadResolvers.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, CmsContext } from \"~/types\";\nimport { resolveGet } from \"./resolvers/read/resolveGet\";\nimport { resolveList } from \"./resolvers/read/resolveList\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\nimport { createReadTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\n\ninterface CreateReadResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\nexport interface CreateReadResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateReadResolversParams): any;\n}\n\nexport const createReadResolvers: CreateReadResolvers = ({ models, model, fieldTypePlugins }) => {\n if (model.fields.length === 0) {\n return {\n Query: {}\n };\n }\n const typeName = createTypeName(model.modelId);\n const rTypeName = createReadTypeName(typeName);\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"read\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: rTypeName,\n fields: model.fields,\n isRoot: true\n });\n\n return {\n Query: {\n [`get${typeName}`]: resolveGet({ model }),\n [`list${pluralizedTypeName(typeName)}`]: resolveList({ model })\n },\n ...fieldResolvers\n };\n};\n"],"mappings":";;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAaO,MAAMA,mBAAwC,GAAG,CAAC;EAAEC,MAAF;EAAUC,KAAV;EAAiBC;AAAjB,CAAD,KAAyC;EAC7F,IAAID,KAAK,CAACE,MAAN,CAAaC,MAAb,KAAwB,CAA5B,EAA+B;IAC3B,OAAO;MACHC,KAAK,EAAE;IADJ,CAAP;EAGH;;EACD,MAAMC,QAAQ,GAAG,IAAAC,8BAAA,EAAeN,KAAK,CAACO,OAArB,CAAjB;EACA,MAAMC,SAAS,GAAG,IAAAC,kCAAA,EAAmBJ,QAAnB,CAAlB;EAEA,MAAMK,oBAAoB,GAAG,IAAAC,iDAAA,EAA4B;IACrDC,YAAY,EAAE,MADuC;IAErDb,MAFqD;IAGrDC,KAHqD;IAIrDC;EAJqD,CAA5B,CAA7B;EAOA,MAAMY,cAAc,GAAGH,oBAAoB,CAAC;IACxCI,WAAW,EAAEN,SAD2B;IAExCN,MAAM,EAAEF,KAAK,CAACE,MAF0B;IAGxCa,MAAM,EAAE;EAHgC,CAAD,CAA3C;EAMA;IACIX,KAAK,EAAE;MACH,CAAE,MAAKC,QAAS,EAAhB,GAAoB,IAAAW,sBAAA,EAAW;QAAEhB;MAAF,CAAX,CADjB;MAEH,CAAE,OAAM,IAAAiB,sCAAA,EAAmBZ,QAAnB,CAA6B,EAArC,GAAyC,IAAAa,wBAAA,EAAY;QAAElB;MAAF,CAAZ;IAFtC;
|
|
1
|
+
{"version":3,"names":["createReadResolvers","models","model","fieldTypePlugins","fields","length","Query","typeName","createTypeName","modelId","rTypeName","createReadTypeName","createFieldResolvers","createFieldResolversFactory","endpointType","fieldResolvers","graphQLType","isRoot","resolveGet","pluralizedTypeName","resolveList"],"sources":["createReadResolvers.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, CmsContext } from \"~/types\";\nimport { resolveGet } from \"./resolvers/read/resolveGet\";\nimport { resolveList } from \"./resolvers/read/resolveList\";\nimport { createFieldResolversFactory } from \"./createFieldResolvers\";\nimport { createReadTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\n\ninterface CreateReadResolversParams {\n models: CmsModel[];\n model: CmsModel;\n context: CmsContext;\n fieldTypePlugins: CmsFieldTypePlugins;\n}\nexport interface CreateReadResolvers {\n // TODO @ts-refactor determine correct type.\n (params: CreateReadResolversParams): any;\n}\n\nexport const createReadResolvers: CreateReadResolvers = ({ models, model, fieldTypePlugins }) => {\n if (model.fields.length === 0) {\n return {\n Query: {}\n };\n }\n const typeName = createTypeName(model.modelId);\n const rTypeName = createReadTypeName(typeName);\n\n const createFieldResolvers = createFieldResolversFactory({\n endpointType: \"read\",\n models,\n model,\n fieldTypePlugins\n });\n\n const fieldResolvers = createFieldResolvers({\n graphQLType: rTypeName,\n fields: model.fields,\n isRoot: true\n });\n\n return {\n Query: {\n [`get${typeName}`]: resolveGet({ model }),\n [`list${pluralizedTypeName(typeName)}`]: resolveList({ model })\n },\n [rTypeName]: {\n modelId: () => {\n return model.modelId;\n }\n },\n ...fieldResolvers\n };\n};\n"],"mappings":";;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AAaO,MAAMA,mBAAwC,GAAG,CAAC;EAAEC,MAAF;EAAUC,KAAV;EAAiBC;AAAjB,CAAD,KAAyC;EAC7F,IAAID,KAAK,CAACE,MAAN,CAAaC,MAAb,KAAwB,CAA5B,EAA+B;IAC3B,OAAO;MACHC,KAAK,EAAE;IADJ,CAAP;EAGH;;EACD,MAAMC,QAAQ,GAAG,IAAAC,8BAAA,EAAeN,KAAK,CAACO,OAArB,CAAjB;EACA,MAAMC,SAAS,GAAG,IAAAC,kCAAA,EAAmBJ,QAAnB,CAAlB;EAEA,MAAMK,oBAAoB,GAAG,IAAAC,iDAAA,EAA4B;IACrDC,YAAY,EAAE,MADuC;IAErDb,MAFqD;IAGrDC,KAHqD;IAIrDC;EAJqD,CAA5B,CAA7B;EAOA,MAAMY,cAAc,GAAGH,oBAAoB,CAAC;IACxCI,WAAW,EAAEN,SAD2B;IAExCN,MAAM,EAAEF,KAAK,CAACE,MAF0B;IAGxCa,MAAM,EAAE;EAHgC,CAAD,CAA3C;EAMA;IACIX,KAAK,EAAE;MACH,CAAE,MAAKC,QAAS,EAAhB,GAAoB,IAAAW,sBAAA,EAAW;QAAEhB;MAAF,CAAX,CADjB;MAEH,CAAE,OAAM,IAAAiB,sCAAA,EAAmBZ,QAAnB,CAA6B,EAArC,GAAyC,IAAAa,wBAAA,EAAY;QAAElB;MAAF,CAAZ;IAFtC,CADX;IAKI,CAACQ,SAAD,GAAa;MACTD,OAAO,EAAE,MAAM;QACX,OAAOP,KAAK,CAACO,OAAb;MACH;IAHQ;EALjB,GAUOM,cAVP;AAYH,CAlCM"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { CmsModel, CmsFieldTypePlugins } from "../../types";
|
|
2
|
+
import { CmsGraphQLSchemaSorterPlugin } from "../../plugins";
|
|
2
3
|
interface CreateReadSDLParams {
|
|
3
4
|
model: CmsModel;
|
|
4
5
|
fieldTypePlugins: CmsFieldTypePlugins;
|
|
6
|
+
sorterPlugins: CmsGraphQLSchemaSorterPlugin[];
|
|
5
7
|
}
|
|
6
8
|
interface CreateReadSDL {
|
|
7
9
|
(params: CreateReadSDLParams): string;
|
|
@@ -19,7 +19,8 @@ var _pluralizedTypeName = require("../../utils/pluralizedTypeName");
|
|
|
19
19
|
|
|
20
20
|
const createReadSDL = ({
|
|
21
21
|
model,
|
|
22
|
-
fieldTypePlugins
|
|
22
|
+
fieldTypePlugins,
|
|
23
|
+
sorterPlugins
|
|
23
24
|
}) => {
|
|
24
25
|
const typeName = (0, _createTypeName.createTypeName)(model.modelId);
|
|
25
26
|
const rTypeName = (0, _createTypeName.createReadTypeName)(typeName);
|
|
@@ -31,7 +32,8 @@ const createReadSDL = ({
|
|
|
31
32
|
});
|
|
32
33
|
const sortEnumRender = (0, _renderSortEnum.renderSortEnum)({
|
|
33
34
|
model,
|
|
34
|
-
fieldTypePlugins
|
|
35
|
+
fieldTypePlugins,
|
|
36
|
+
sorterPlugins
|
|
35
37
|
});
|
|
36
38
|
const getFilterFieldsRender = (0, _renderGetFilterFields.renderGetFilterFields)({
|
|
37
39
|
model,
|
|
@@ -47,13 +49,13 @@ const createReadSDL = ({
|
|
|
47
49
|
return "";
|
|
48
50
|
}
|
|
49
51
|
|
|
52
|
+
const hasModelIdField = model.fields.some(f => f.fieldId === "modelId");
|
|
50
53
|
return `
|
|
51
54
|
"""${model.description || ""}"""
|
|
52
|
-
${fieldsRender.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
53
|
-
|
|
54
55
|
type ${rTypeName} {
|
|
55
56
|
id: ID!
|
|
56
57
|
entryId: String!
|
|
58
|
+
${hasModelIdField ? "" : "modelId: String!"}
|
|
57
59
|
createdOn: DateTime!
|
|
58
60
|
savedOn: DateTime!
|
|
59
61
|
createdBy: CmsCreatedBy!
|
|
@@ -61,13 +63,17 @@ const createReadSDL = ({
|
|
|
61
63
|
${fieldsRender.map(f => f.fields).join("\n")}
|
|
62
64
|
}
|
|
63
65
|
|
|
66
|
+
${fieldsRender.map(f => f.typeDefs).filter(Boolean).join("\n")}
|
|
67
|
+
|
|
64
68
|
${getFilterFieldsRender && `input ${rTypeName}GetWhereInput {
|
|
65
69
|
${getFilterFieldsRender}
|
|
66
70
|
}`}
|
|
67
71
|
|
|
68
72
|
|
|
69
73
|
${listFilterFieldsRender && `input ${rTypeName}ListWhereInput {
|
|
70
|
-
|
|
74
|
+
${listFilterFieldsRender}
|
|
75
|
+
AND: [${rTypeName}ListWhereInput!]
|
|
76
|
+
OR: [${rTypeName}ListWhereInput!]
|
|
71
77
|
}`}
|
|
72
78
|
|
|
73
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createReadSDL","model","fieldTypePlugins","typeName","createTypeName","modelId","rTypeName","createReadTypeName","type","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","fieldsRender","renderFields","length","
|
|
1
|
+
{"version":3,"names":["createReadSDL","model","fieldTypePlugins","sorterPlugins","typeName","createTypeName","modelId","rTypeName","createReadTypeName","type","listFilterFieldsRender","renderListFilterFields","sortEnumRender","renderSortEnum","getFilterFieldsRender","renderGetFilterFields","fieldsRender","renderFields","length","hasModelIdField","fields","some","f","fieldId","description","map","join","typeDefs","filter","Boolean","pluralizedTypeName"],"sources":["createReadSDL.ts"],"sourcesContent":["import { CmsModel, CmsFieldTypePlugins, ApiEndpoint } from \"~/types\";\nimport { createReadTypeName, createTypeName } from \"~/utils/createTypeName\";\nimport { renderListFilterFields } from \"~/utils/renderListFilterFields\";\nimport { renderSortEnum } from \"~/utils/renderSortEnum\";\nimport { renderFields } from \"~/utils/renderFields\";\nimport { renderGetFilterFields } from \"~/utils/renderGetFilterFields\";\nimport { pluralizedTypeName } from \"~/utils/pluralizedTypeName\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\n\ninterface CreateReadSDLParams {\n model: CmsModel;\n fieldTypePlugins: CmsFieldTypePlugins;\n sorterPlugins: CmsGraphQLSchemaSorterPlugin[];\n}\ninterface CreateReadSDL {\n (params: CreateReadSDLParams): string;\n}\n\nexport const createReadSDL: CreateReadSDL = ({\n model,\n fieldTypePlugins,\n sorterPlugins\n}): string => {\n const typeName = createTypeName(model.modelId);\n const rTypeName = createReadTypeName(typeName);\n\n const type: ApiEndpoint = \"read\";\n\n const listFilterFieldsRender = renderListFilterFields({\n model,\n type,\n fieldTypePlugins\n });\n\n const sortEnumRender = renderSortEnum({\n model,\n fieldTypePlugins,\n sorterPlugins\n });\n const getFilterFieldsRender = renderGetFilterFields({\n model,\n fieldTypePlugins\n });\n const fieldsRender = renderFields({\n model,\n type,\n fieldTypePlugins\n });\n\n if (fieldsRender.length === 0) {\n return \"\";\n }\n\n const hasModelIdField = model.fields.some(f => f.fieldId === \"modelId\");\n\n return `\n \"\"\"${model.description || \"\"}\"\"\"\n type ${rTypeName} {\n id: ID!\n entryId: String!\n ${hasModelIdField ? \"\" : \"modelId: String!\"}\n createdOn: DateTime!\n savedOn: DateTime!\n createdBy: CmsCreatedBy!\n ownedBy: CmsOwnedBy!\n ${fieldsRender.map(f => f.fields).join(\"\\n\")}\n }\n \n ${fieldsRender\n .map(f => f.typeDefs)\n .filter(Boolean)\n .join(\"\\n\")}\n \n ${\n getFilterFieldsRender &&\n `input ${rTypeName}GetWhereInput {\n ${getFilterFieldsRender}\n }`\n }\n \n \n ${\n listFilterFieldsRender &&\n `input ${rTypeName}ListWhereInput {\n ${listFilterFieldsRender}\n AND: [${rTypeName}ListWhereInput!]\n OR: [${rTypeName}ListWhereInput!]\n }`\n }\n \n \n ${\n sortEnumRender &&\n `enum ${rTypeName}ListSorter {\n ${sortEnumRender}\n }`\n }\n \n type ${rTypeName}Response {\n data: ${rTypeName}\n error: CmsError\n }\n \n type ${rTypeName}ListResponse {\n data: [${rTypeName}]\n meta: CmsListMeta\n error: CmsError\n }\n \n extend type Query {\n get${typeName}(where: ${rTypeName}GetWhereInput!): ${rTypeName}Response\n\n list${pluralizedTypeName(typeName)}(\n where: ${rTypeName}ListWhereInput\n sort: [${rTypeName}ListSorter]\n limit: Int\n after: String\n ): ${rTypeName}ListResponse\n }\n `;\n};\n"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAYO,MAAMA,aAA4B,GAAG,CAAC;EACzCC,KADyC;EAEzCC,gBAFyC;EAGzCC;AAHyC,CAAD,KAI9B;EACV,MAAMC,QAAQ,GAAG,IAAAC,8BAAA,EAAeJ,KAAK,CAACK,OAArB,CAAjB;EACA,MAAMC,SAAS,GAAG,IAAAC,kCAAA,EAAmBJ,QAAnB,CAAlB;EAEA,MAAMK,IAAiB,GAAG,MAA1B;EAEA,MAAMC,sBAAsB,GAAG,IAAAC,8CAAA,EAAuB;IAClDV,KADkD;IAElDQ,IAFkD;IAGlDP;EAHkD,CAAvB,CAA/B;EAMA,MAAMU,cAAc,GAAG,IAAAC,8BAAA,EAAe;IAClCZ,KADkC;IAElCC,gBAFkC;IAGlCC;EAHkC,CAAf,CAAvB;EAKA,MAAMW,qBAAqB,GAAG,IAAAC,4CAAA,EAAsB;IAChDd,KADgD;IAEhDC;EAFgD,CAAtB,CAA9B;EAIA,MAAMc,YAAY,GAAG,IAAAC,0BAAA,EAAa;IAC9BhB,KAD8B;IAE9BQ,IAF8B;IAG9BP;EAH8B,CAAb,CAArB;;EAMA,IAAIc,YAAY,CAACE,MAAb,KAAwB,CAA5B,EAA+B;IAC3B,OAAO,EAAP;EACH;;EAED,MAAMC,eAAe,GAAGlB,KAAK,CAACmB,MAAN,CAAaC,IAAb,CAAkBC,CAAC,IAAIA,CAAC,CAACC,OAAF,KAAc,SAArC,CAAxB;EAEA,OAAQ;AACZ,aAAatB,KAAK,CAACuB,WAAN,IAAqB,EAAG;AACrC,eAAejB,SAAU;AACzB;AACA;AACA,cAAcY,eAAe,GAAG,EAAH,GAAQ,kBAAmB;AACxD;AACA;AACA;AACA;AACA,cAAcH,YAAY,CAACS,GAAb,CAAiBH,CAAC,IAAIA,CAAC,CAACF,MAAxB,EAAgCM,IAAhC,CAAqC,IAArC,CAA2C;AACzD;AACA;AACA,UAAUV,YAAY,CACTS,GADH,CACOH,CAAC,IAAIA,CAAC,CAACK,QADd,EAEGC,MAFH,CAEUC,OAFV,EAGGH,IAHH,CAGQ,IAHR,CAGc;AACxB;AACA,UACYZ,qBAAqB,IACpB,SAAQP,SAAU;AAC/B,cAAcO,qBAAsB;AACpC,UACS;AACT;AACA;AACA,UACYJ,sBAAsB,IACrB,SAAQH,SAAU;AAC/B,kBAAkBG,sBAAuB;AACzC,wBAAwBH,SAAU;AAClC,uBAAuBA,SAAU;AACjC,UACS;AACT;AACA;AACA,UACYK,cAAc,IACb,QAAOL,SAAU;AAC9B,cAAcK,cAAe;AAC7B,UACS;AACT;AACA,eAAeL,SAAU;AACzB,oBAAoBA,SAAU;AAC9B;AACA;AACA;AACA,eAAeA,SAAU;AACzB,qBAAqBA,SAAU;AAC/B;AACA;AACA;AACA;AACA;AACA,iBAAiBH,QAAS,WAAUG,SAAU,oBAAmBA,SAAU;AAC3E;AACA,kBAAkB,IAAAuB,sCAAA,EAAmB1B,QAAnB,CAA6B;AAC/C,yBAAyBG,SAAU;AACnC,yBAAyBA,SAAU;AACnC;AACA;AACA,iBAAiBA,SAAU;AAC3B;AACA,KAhEI;AAiEH,CAtGM"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { GraphQLSchemaPlugin } from "@webiny/handler-graphql/plugins/GraphQLSchemaPlugin";
|
|
2
1
|
import { CmsContext } from "../../types";
|
|
3
|
-
|
|
2
|
+
import { CmsGraphQLSchemaPlugin } from "../../plugins";
|
|
3
|
+
export declare const generateSchemaPlugins: (context: CmsContext) => Promise<CmsGraphQLSchemaPlugin[]>;
|
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.generateSchemaPlugins = void 0;
|
|
7
7
|
|
|
8
|
-
var _GraphQLSchemaPlugin = require("@webiny/handler-graphql/plugins/GraphQLSchemaPlugin");
|
|
9
|
-
|
|
10
8
|
var _createManageSDL = require("./createManageSDL");
|
|
11
9
|
|
|
12
10
|
var _createReadSDL = require("./createReadSDL");
|
|
@@ -21,6 +19,8 @@ var _getSchemaFromFieldPlugins = require("../../utils/getSchemaFromFieldPlugins"
|
|
|
21
19
|
|
|
22
20
|
var _filterModelFields = require("../../utils/filterModelFields");
|
|
23
21
|
|
|
22
|
+
var _plugins = require("../../plugins");
|
|
23
|
+
|
|
24
24
|
const generateSchemaPlugins = async context => {
|
|
25
25
|
const {
|
|
26
26
|
plugins,
|
|
@@ -43,7 +43,8 @@ const generateSchemaPlugins = async context => {
|
|
|
43
43
|
const fieldTypePlugins = plugins.byType("cms-model-field-to-graphql").reduce((acc, pl) => {
|
|
44
44
|
acc[pl.fieldType] = pl;
|
|
45
45
|
return acc;
|
|
46
|
-
}, {});
|
|
46
|
+
}, {});
|
|
47
|
+
const sorterPlugins = plugins.byType(_plugins.CmsGraphQLSchemaSorterPlugin.type); // Load model data
|
|
47
48
|
|
|
48
49
|
context.security.disableAuthorization();
|
|
49
50
|
const initialModels = (await cms.listModels()).filter(model => model.isPrivate !== true);
|
|
@@ -60,16 +61,17 @@ const generateSchemaPlugins = async context => {
|
|
|
60
61
|
const newPlugins = [];
|
|
61
62
|
|
|
62
63
|
for (const schema of schemas) {
|
|
63
|
-
newPlugins.push(new
|
|
64
|
+
newPlugins.push(new _plugins.CmsGraphQLSchemaPlugin(schema));
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
models.filter(model => model.fields.length > 0).forEach(model => {
|
|
67
68
|
switch (type) {
|
|
68
69
|
case "manage":
|
|
69
|
-
newPlugins.push(new
|
|
70
|
+
newPlugins.push(new _plugins.CmsGraphQLSchemaPlugin({
|
|
70
71
|
typeDefs: (0, _createManageSDL.createManageSDL)({
|
|
71
72
|
model,
|
|
72
|
-
fieldTypePlugins
|
|
73
|
+
fieldTypePlugins,
|
|
74
|
+
sorterPlugins
|
|
73
75
|
}),
|
|
74
76
|
resolvers: (0, _createManageResolvers.createManageResolvers)({
|
|
75
77
|
models,
|
|
@@ -82,10 +84,11 @@ const generateSchemaPlugins = async context => {
|
|
|
82
84
|
|
|
83
85
|
case "preview":
|
|
84
86
|
case "read":
|
|
85
|
-
newPlugins.push(new
|
|
87
|
+
newPlugins.push(new _plugins.CmsGraphQLSchemaPlugin({
|
|
86
88
|
typeDefs: (0, _createReadSDL.createReadSDL)({
|
|
87
89
|
model,
|
|
88
|
-
fieldTypePlugins
|
|
90
|
+
fieldTypePlugins,
|
|
91
|
+
sorterPlugins
|
|
89
92
|
}),
|
|
90
93
|
resolvers: cms.READ ? (0, _createReadResolvers.createReadResolvers)({
|
|
91
94
|
models,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["generateSchemaPlugins","context","plugins","cms","type","fieldTypePlugins","byType","reduce","acc","pl","fieldType","security","disableAuthorization","initialModels","listModels","filter","model","isPrivate","enableAuthorization","models","filterModelsDeletedFields","schemas","getSchemaFromFieldPlugins","newPlugins","schema","push","
|
|
1
|
+
{"version":3,"names":["generateSchemaPlugins","context","plugins","cms","type","fieldTypePlugins","byType","reduce","acc","pl","fieldType","sorterPlugins","CmsGraphQLSchemaSorterPlugin","security","disableAuthorization","initialModels","listModels","filter","model","isPrivate","enableAuthorization","models","filterModelsDeletedFields","schemas","getSchemaFromFieldPlugins","newPlugins","schema","push","CmsGraphQLSchemaPlugin","fields","length","forEach","typeDefs","createManageSDL","resolvers","createManageResolvers","createReadSDL","READ","createReadResolvers","createPreviewResolvers"],"sources":["schemaPlugins.ts"],"sourcesContent":["import { CmsModelFieldToGraphQLPlugin, CmsFieldTypePlugins, CmsContext } from \"~/types\";\nimport { createManageSDL } from \"./createManageSDL\";\nimport { createReadSDL } from \"./createReadSDL\";\nimport { createManageResolvers } from \"./createManageResolvers\";\nimport { createReadResolvers } from \"./createReadResolvers\";\nimport { createPreviewResolvers } from \"./createPreviewResolvers\";\nimport { getSchemaFromFieldPlugins } from \"~/utils/getSchemaFromFieldPlugins\";\nimport { filterModelsDeletedFields } from \"~/utils/filterModelFields\";\nimport { CmsGraphQLSchemaSorterPlugin } from \"~/plugins\";\nimport { CmsGraphQLSchemaPlugin } from \"~/plugins\";\n\nexport const generateSchemaPlugins = async (\n context: CmsContext\n): Promise<CmsGraphQLSchemaPlugin[]> => {\n const { plugins, cms } = context;\n\n /**\n * If type does not exist, we are not generating schema plugins for models.\n * It should not come to this point, but we check it anyways.\n */\n const { type } = cms;\n if (!type) {\n return [];\n }\n\n // Structure plugins for faster access\n const fieldTypePlugins = plugins\n .byType<CmsModelFieldToGraphQLPlugin>(\"cms-model-field-to-graphql\")\n .reduce<CmsFieldTypePlugins>((acc, pl) => {\n acc[pl.fieldType] = pl;\n return acc;\n }, {});\n\n const sorterPlugins = plugins.byType<CmsGraphQLSchemaSorterPlugin>(\n CmsGraphQLSchemaSorterPlugin.type\n );\n\n // Load model data\n context.security.disableAuthorization();\n const initialModels = (await cms.listModels()).filter(model => model.isPrivate !== true);\n context.security.enableAuthorization();\n\n const models = filterModelsDeletedFields({\n models: initialModels,\n type\n });\n\n const schemas = getSchemaFromFieldPlugins({\n models,\n fieldTypePlugins,\n type\n });\n\n const newPlugins: CmsGraphQLSchemaPlugin[] = [];\n for (const schema of schemas) {\n newPlugins.push(new CmsGraphQLSchemaPlugin(schema));\n }\n\n models\n .filter(model => model.fields.length > 0)\n .forEach(model => {\n switch (type) {\n case \"manage\":\n newPlugins.push(\n new CmsGraphQLSchemaPlugin({\n typeDefs: createManageSDL({ model, fieldTypePlugins, sorterPlugins }),\n resolvers: createManageResolvers({\n models,\n model,\n fieldTypePlugins,\n context\n })\n })\n );\n\n break;\n case \"preview\":\n case \"read\":\n newPlugins.push(\n new CmsGraphQLSchemaPlugin({\n typeDefs: createReadSDL({ model, fieldTypePlugins, sorterPlugins }),\n resolvers: cms.READ\n ? createReadResolvers({\n models,\n model,\n fieldTypePlugins,\n context\n })\n : createPreviewResolvers({\n models,\n model,\n fieldTypePlugins,\n context\n })\n })\n );\n break;\n default:\n return;\n }\n });\n\n return newPlugins.filter(pl => !!pl.schema.typeDefs);\n};\n"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGO,MAAMA,qBAAqB,GAAG,MACjCC,OADiC,IAEG;EACpC,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAmBF,OAAzB;EAEA;AACJ;AACA;AACA;;EACI,MAAM;IAAEG;EAAF,IAAWD,GAAjB;;EACA,IAAI,CAACC,IAAL,EAAW;IACP,OAAO,EAAP;EACH,CAVmC,CAYpC;;;EACA,MAAMC,gBAAgB,GAAGH,OAAO,CAC3BI,MADoB,CACiB,4BADjB,EAEpBC,MAFoB,CAEQ,CAACC,GAAD,EAAMC,EAAN,KAAa;IACtCD,GAAG,CAACC,EAAE,CAACC,SAAJ,CAAH,GAAoBD,EAApB;IACA,OAAOD,GAAP;EACH,CALoB,EAKlB,EALkB,CAAzB;EAOA,MAAMG,aAAa,GAAGT,OAAO,CAACI,MAAR,CAClBM,qCAAA,CAA6BR,IADX,CAAtB,CApBoC,CAwBpC;;EACAH,OAAO,CAACY,QAAR,CAAiBC,oBAAjB;EACA,MAAMC,aAAa,GAAG,CAAC,MAAMZ,GAAG,CAACa,UAAJ,EAAP,EAAyBC,MAAzB,CAAgCC,KAAK,IAAIA,KAAK,CAACC,SAAN,KAAoB,IAA7D,CAAtB;EACAlB,OAAO,CAACY,QAAR,CAAiBO,mBAAjB;EAEA,MAAMC,MAAM,GAAG,IAAAC,4CAAA,EAA0B;IACrCD,MAAM,EAAEN,aAD6B;IAErCX;EAFqC,CAA1B,CAAf;EAKA,MAAMmB,OAAO,GAAG,IAAAC,oDAAA,EAA0B;IACtCH,MADsC;IAEtChB,gBAFsC;IAGtCD;EAHsC,CAA1B,CAAhB;EAMA,MAAMqB,UAAoC,GAAG,EAA7C;;EACA,KAAK,MAAMC,MAAX,IAAqBH,OAArB,EAA8B;IAC1BE,UAAU,CAACE,IAAX,CAAgB,IAAIC,+BAAJ,CAA2BF,MAA3B,CAAhB;EACH;;EAEDL,MAAM,CACDJ,MADL,CACYC,KAAK,IAAIA,KAAK,CAACW,MAAN,CAAaC,MAAb,GAAsB,CAD3C,EAEKC,OAFL,CAEab,KAAK,IAAI;IACd,QAAQd,IAAR;MACI,KAAK,QAAL;QACIqB,UAAU,CAACE,IAAX,CACI,IAAIC,+BAAJ,CAA2B;UACvBI,QAAQ,EAAE,IAAAC,gCAAA,EAAgB;YAAEf,KAAF;YAASb,gBAAT;YAA2BM;UAA3B,CAAhB,CADa;UAEvBuB,SAAS,EAAE,IAAAC,4CAAA,EAAsB;YAC7Bd,MAD6B;YAE7BH,KAF6B;YAG7Bb,gBAH6B;YAI7BJ;UAJ6B,CAAtB;QAFY,CAA3B,CADJ;QAYA;;MACJ,KAAK,SAAL;MACA,KAAK,MAAL;QACIwB,UAAU,CAACE,IAAX,CACI,IAAIC,+BAAJ,CAA2B;UACvBI,QAAQ,EAAE,IAAAI,4BAAA,EAAc;YAAElB,KAAF;YAASb,gBAAT;YAA2BM;UAA3B,CAAd,CADa;UAEvBuB,SAAS,EAAE/B,GAAG,CAACkC,IAAJ,GACL,IAAAC,wCAAA,EAAoB;YAChBjB,MADgB;YAEhBH,KAFgB;YAGhBb,gBAHgB;YAIhBJ;UAJgB,CAApB,CADK,GAOL,IAAAsC,8CAAA,EAAuB;YACnBlB,MADmB;YAEnBH,KAFmB;YAGnBb,gBAHmB;YAInBJ;UAJmB,CAAvB;QATiB,CAA3B,CADJ;QAkBA;;MACJ;QACI;IArCR;EAuCH,CA1CL;EA4CA,OAAOwB,UAAU,CAACR,MAAX,CAAkBR,EAAE,IAAI,CAAC,CAACA,EAAE,CAACiB,MAAH,CAAUM,QAApC,CAAP;AACH,CA5FM"}
|
package/graphql/system.js
CHANGED
|
@@ -11,95 +11,92 @@ var _api = require("@webiny/api");
|
|
|
11
11
|
|
|
12
12
|
const emptyResolver = () => ({});
|
|
13
13
|
|
|
14
|
-
const plugin = {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
14
|
+
const plugin = new _handlerGraphql.GraphQLSchemaPlugin({
|
|
15
|
+
typeDefs:
|
|
16
|
+
/* GraphQL */
|
|
17
|
+
`
|
|
18
|
+
extend type Query {
|
|
19
|
+
cms: CmsQuery
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
extend type Mutation {
|
|
23
|
+
cms: CmsMutation
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
type CmsQuery {
|
|
27
|
+
_empty: String
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
type CmsMutation {
|
|
31
|
+
_empty: String
|
|
32
|
+
}
|
|
33
|
+
extend type CmsQuery {
|
|
34
|
+
# Get installed version
|
|
35
|
+
version: String
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
extend type CmsMutation {
|
|
39
|
+
# Install CMS
|
|
40
|
+
install: CmsBooleanResponse
|
|
41
|
+
|
|
42
|
+
# Upgrade CMS
|
|
43
|
+
upgrade(version: String!): CmsBooleanResponse
|
|
44
|
+
}
|
|
45
|
+
`,
|
|
46
|
+
resolvers: {
|
|
47
|
+
Query: {
|
|
48
|
+
cms: emptyResolver
|
|
49
|
+
},
|
|
50
|
+
Mutation: {
|
|
51
|
+
cms: emptyResolver
|
|
52
|
+
},
|
|
53
|
+
CmsQuery: {
|
|
54
|
+
version: async (_, __, context) => {
|
|
55
|
+
try {
|
|
56
|
+
return context.cms.getSystemVersion();
|
|
57
|
+
} catch (e) {
|
|
58
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
CmsMutation: {
|
|
63
|
+
install: async (_, __, {
|
|
64
|
+
cms
|
|
65
|
+
}) => {
|
|
66
|
+
try {
|
|
67
|
+
const version = await cms.getSystemVersion();
|
|
68
|
+
|
|
69
|
+
if (version) {
|
|
70
|
+
return new _handlerGraphql.ErrorResponse({
|
|
71
|
+
code: "CMS_INSTALLATION_ERROR",
|
|
72
|
+
message: "CMS is already installed."
|
|
73
|
+
});
|
|
62
74
|
}
|
|
75
|
+
|
|
76
|
+
await cms.installSystem();
|
|
77
|
+
return new _handlerGraphql.Response(true);
|
|
78
|
+
} catch (e) {
|
|
79
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
63
80
|
}
|
|
64
81
|
},
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
await cms.installSystem();
|
|
80
|
-
return new _handlerGraphql.Response(true);
|
|
81
|
-
} catch (e) {
|
|
82
|
-
return new _handlerGraphql.ErrorResponse(e);
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
upgrade: async (_, args, {
|
|
86
|
-
cms
|
|
87
|
-
}) => {
|
|
88
|
-
const {
|
|
89
|
-
version
|
|
90
|
-
} = args;
|
|
91
|
-
|
|
92
|
-
try {
|
|
93
|
-
await cms.upgradeSystem(version);
|
|
94
|
-
return new _handlerGraphql.Response(true);
|
|
95
|
-
} catch (e) {
|
|
96
|
-
return new _handlerGraphql.ErrorResponse(e);
|
|
97
|
-
}
|
|
82
|
+
upgrade: async (_, args, {
|
|
83
|
+
cms
|
|
84
|
+
}) => {
|
|
85
|
+
const {
|
|
86
|
+
version
|
|
87
|
+
} = args;
|
|
88
|
+
|
|
89
|
+
try {
|
|
90
|
+
await cms.upgradeSystem(version);
|
|
91
|
+
return new _handlerGraphql.Response(true);
|
|
92
|
+
} catch (e) {
|
|
93
|
+
return new _handlerGraphql.ErrorResponse(e);
|
|
98
94
|
}
|
|
99
95
|
}
|
|
100
96
|
}
|
|
101
97
|
}
|
|
102
|
-
};
|
|
98
|
+
});
|
|
99
|
+
plugin.name = "cms.graphql.schema.system";
|
|
103
100
|
/**
|
|
104
101
|
* We only register system schema plugin if the endpoint is not manage/preview/read.
|
|
105
102
|
*/
|
package/graphql/system.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["emptyResolver","plugin","
|
|
1
|
+
{"version":3,"names":["emptyResolver","plugin","GraphQLSchemaPlugin","typeDefs","resolvers","Query","cms","Mutation","CmsQuery","version","_","__","context","getSystemVersion","e","ErrorResponse","CmsMutation","install","code","message","installSystem","Response","upgrade","args","upgradeSystem","name","createSystemSchemaPlugin","ContextPlugin","type","plugins","register"],"sources":["system.ts"],"sourcesContent":["import { ErrorResponse, GraphQLSchemaPlugin, Response } from \"@webiny/handler-graphql\";\nimport { CmsContext } from \"~/types\";\nimport { ContextPlugin } from \"@webiny/api\";\n\nconst emptyResolver = () => ({});\n\nconst plugin = new GraphQLSchemaPlugin({\n typeDefs: /* GraphQL */ `\n extend type Query {\n cms: CmsQuery\n }\n\n extend type Mutation {\n cms: CmsMutation\n }\n\n type CmsQuery {\n _empty: String\n }\n\n type CmsMutation {\n _empty: String\n }\n extend type CmsQuery {\n # Get installed version\n version: String\n }\n\n extend type CmsMutation {\n # Install CMS\n install: CmsBooleanResponse\n\n # Upgrade CMS\n upgrade(version: String!): CmsBooleanResponse\n }\n `,\n resolvers: {\n Query: {\n cms: emptyResolver\n },\n Mutation: {\n cms: emptyResolver\n },\n CmsQuery: {\n version: async (_: any, __: any, context: CmsContext) => {\n try {\n return context.cms.getSystemVersion();\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n },\n CmsMutation: {\n install: async (_: any, __: any, { cms }: CmsContext) => {\n try {\n const version = await cms.getSystemVersion();\n if (version) {\n return new ErrorResponse({\n code: \"CMS_INSTALLATION_ERROR\",\n message: \"CMS is already installed.\"\n });\n }\n\n await cms.installSystem();\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n upgrade: async (_: any, args: any, { cms }: CmsContext) => {\n const { version } = args;\n try {\n await cms.upgradeSystem(version);\n return new Response(true);\n } catch (e) {\n return new ErrorResponse(e);\n }\n }\n }\n }\n});\nplugin.name = \"cms.graphql.schema.system\";\n/**\n * We only register system schema plugin if the endpoint is not manage/preview/read.\n */\nexport const createSystemSchemaPlugin = (): ContextPlugin<CmsContext> => {\n return new ContextPlugin<CmsContext>(async context => {\n if (context.cms?.type) {\n return;\n }\n context.plugins.register(plugin);\n });\n};\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA,MAAMA,aAAa,GAAG,OAAO,EAAP,CAAtB;;AAEA,MAAMC,MAAM,GAAG,IAAIC,mCAAJ,CAAwB;EACnCC,QAAQ;EAAE;EAAe;AAC7B;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,KA7BuC;EA8BnCC,SAAS,EAAE;IACPC,KAAK,EAAE;MACHC,GAAG,EAAEN;IADF,CADA;IAIPO,QAAQ,EAAE;MACND,GAAG,EAAEN;IADC,CAJH;IAOPQ,QAAQ,EAAE;MACNC,OAAO,EAAE,OAAOC,CAAP,EAAeC,EAAf,EAAwBC,OAAxB,KAAgD;QACrD,IAAI;UACA,OAAOA,OAAO,CAACN,GAAR,CAAYO,gBAAZ,EAAP;QACH,CAFD,CAEE,OAAOC,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ;IAPK,CAPH;IAgBPE,WAAW,EAAE;MACTC,OAAO,EAAE,OAAOP,CAAP,EAAeC,EAAf,EAAwB;QAAEL;MAAF,CAAxB,KAAgD;QACrD,IAAI;UACA,MAAMG,OAAO,GAAG,MAAMH,GAAG,CAACO,gBAAJ,EAAtB;;UACA,IAAIJ,OAAJ,EAAa;YACT,OAAO,IAAIM,6BAAJ,CAAkB;cACrBG,IAAI,EAAE,wBADe;cAErBC,OAAO,EAAE;YAFY,CAAlB,CAAP;UAIH;;UAED,MAAMb,GAAG,CAACc,aAAJ,EAAN;UACA,OAAO,IAAIC,wBAAJ,CAAa,IAAb,CAAP;QACH,CAXD,CAWE,OAAOP,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ,CAhBQ;MAiBTQ,OAAO,EAAE,OAAOZ,CAAP,EAAea,IAAf,EAA0B;QAAEjB;MAAF,CAA1B,KAAkD;QACvD,MAAM;UAAEG;QAAF,IAAcc,IAApB;;QACA,IAAI;UACA,MAAMjB,GAAG,CAACkB,aAAJ,CAAkBf,OAAlB,CAAN;UACA,OAAO,IAAIY,wBAAJ,CAAa,IAAb,CAAP;QACH,CAHD,CAGE,OAAOP,CAAP,EAAU;UACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;QACH;MACJ;IAzBQ;EAhBN;AA9BwB,CAAxB,CAAf;AA2EAb,MAAM,CAACwB,IAAP,GAAc,2BAAd;AACA;AACA;AACA;;AACO,MAAMC,wBAAwB,GAAG,MAAiC;EACrE,OAAO,IAAIC,kBAAJ,CAA8B,MAAMf,OAAN,IAAiB;IAAA;;IAClD,oBAAIA,OAAO,CAACN,GAAZ,yCAAI,aAAasB,IAAjB,EAAuB;MACnB;IACH;;IACDhB,OAAO,CAACiB,OAAR,CAAgBC,QAAhB,CAAyB7B,MAAzB;EACH,CALM,CAAP;AAMH,CAPM"}
|