@webiny/api-headless-cms 5.39.0-beta.0 → 5.39.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/constants.d.ts +31 -0
  2. package/constants.js +48 -1
  3. package/constants.js.map +1 -1
  4. package/context.js +40 -34
  5. package/context.js.map +1 -1
  6. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
  7. package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
  8. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
  9. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
  10. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
  11. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
  12. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
  13. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
  14. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
  15. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
  16. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
  17. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
  18. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
  19. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
  20. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
  21. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
  22. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
  23. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
  24. package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
  25. package/crud/contentEntry/entryDataFactories/index.js +95 -0
  26. package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
  27. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
  28. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
  29. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
  30. package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
  31. package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
  32. package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
  33. package/crud/contentEntry/entryDataValidation.js +29 -24
  34. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  35. package/crud/contentEntry/markLockedFields.js +14 -9
  36. package/crud/contentEntry/markLockedFields.js.map +1 -1
  37. package/crud/contentEntry/referenceFieldsMapping.js +10 -12
  38. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  39. package/crud/contentEntry/searchableFields.js +2 -3
  40. package/crud/contentEntry/searchableFields.js.map +1 -1
  41. package/crud/contentEntry.crud.d.ts +1 -4
  42. package/crud/contentEntry.crud.js +140 -383
  43. package/crud/contentEntry.crud.js.map +1 -1
  44. package/crud/contentModel/fields/descriptionField.js +1 -1
  45. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  46. package/crud/contentModel/fields/imageField.js +3 -7
  47. package/crud/contentModel/fields/imageField.js.map +1 -1
  48. package/crud/contentModel/fields/titleField.js +1 -1
  49. package/crud/contentModel/fields/titleField.js.map +1 -1
  50. package/crud/contentModel/listModelsFromDatabase.js +3 -4
  51. package/crud/contentModel/listModelsFromDatabase.js.map +1 -1
  52. package/crud/contentModel/validateModelFields.js +4 -5
  53. package/crud/contentModel/validateModelFields.js.map +1 -1
  54. package/crud/contentModel/validation.d.ts +96 -96
  55. package/crud/contentModel.crud.js +28 -26
  56. package/crud/contentModel.crud.js.map +1 -1
  57. package/crud/contentModelGroup/validation.d.ts +1 -1
  58. package/crud/contentModelGroup.crud.js +18 -15
  59. package/crud/contentModelGroup.crud.js.map +1 -1
  60. package/crud/system.crud.js +4 -4
  61. package/crud/system.crud.js.map +1 -1
  62. package/export/crud/exporting.js +2 -3
  63. package/export/crud/exporting.js.map +1 -1
  64. package/export/crud/importing.js +3 -3
  65. package/export/crud/importing.js.map +1 -1
  66. package/export/crud/imports/importData.js +30 -3
  67. package/export/crud/imports/importData.js.map +1 -1
  68. package/export/crud/imports/importGroups.js +15 -10
  69. package/export/crud/imports/importGroups.js.map +1 -1
  70. package/export/crud/imports/importModels.js +14 -12
  71. package/export/crud/imports/importModels.js.map +1 -1
  72. package/export/crud/imports/validateGroups.js +13 -7
  73. package/export/crud/imports/validateGroups.js.map +1 -1
  74. package/export/crud/imports/validateInput.js +15 -9
  75. package/export/crud/imports/validateInput.js.map +1 -1
  76. package/export/crud/imports/validateModels.d.ts +4 -1
  77. package/export/crud/imports/validateModels.js +24 -25
  78. package/export/crud/imports/validateModels.js.map +1 -1
  79. package/export/types.d.ts +2 -0
  80. package/export/types.js.map +1 -1
  81. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +1 -6
  82. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  83. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +2 -7
  84. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  85. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +44 -37
  86. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  87. package/graphql/getSchema.js +15 -9
  88. package/graphql/getSchema.js.map +1 -1
  89. package/graphql/index.d.ts +1 -1
  90. package/graphql/schema/baseContentSchema.js +6 -7
  91. package/graphql/schema/baseContentSchema.js.map +1 -1
  92. package/graphql/schema/baseSchema.js +1 -8
  93. package/graphql/schema/baseSchema.js.map +1 -1
  94. package/graphql/schema/contentEntries.js +44 -13
  95. package/graphql/schema/contentEntries.js.map +1 -1
  96. package/graphql/schema/contentModelGroups.js +1 -1
  97. package/graphql/schema/contentModelGroups.js.map +1 -1
  98. package/graphql/schema/contentModels.js +5 -5
  99. package/graphql/schema/contentModels.js.map +1 -1
  100. package/graphql/schema/createFieldResolvers.js +11 -11
  101. package/graphql/schema/createFieldResolvers.js.map +1 -1
  102. package/graphql/schema/createManageResolvers.js +6 -9
  103. package/graphql/schema/createManageResolvers.js.map +1 -1
  104. package/graphql/schema/createManageSDL.js +30 -24
  105. package/graphql/schema/createManageSDL.js.map +1 -1
  106. package/graphql/schema/createPreviewResolvers.js +4 -5
  107. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  108. package/graphql/schema/createReadResolvers.js +4 -5
  109. package/graphql/schema/createReadResolvers.js.map +1 -1
  110. package/graphql/schema/createReadSDL.js +9 -4
  111. package/graphql/schema/createReadSDL.js.map +1 -1
  112. package/graphql/schema/resolvers/manage/resolveDelete.js +1 -1
  113. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  114. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +1 -1
  115. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  116. package/graphql/schema/resolvers/manage/resolveGet.js +9 -4
  117. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  118. package/graphql/schema/resolvers/manage/resolvePublish.d.ts +1 -2
  119. package/graphql/schema/resolvers/manage/resolvePublish.js +1 -1
  120. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  121. package/graphql/schema/resolvers/preview/resolveGet.js +3 -4
  122. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  123. package/graphql/schema/resolvers/read/resolveGet.js +3 -4
  124. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  125. package/graphqlFields/datetime.js +1 -2
  126. package/graphqlFields/datetime.js.map +1 -1
  127. package/graphqlFields/dynamicZone/dynamicZoneField.js +13 -13
  128. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  129. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +6 -6
  130. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  131. package/graphqlFields/index.js +2 -1
  132. package/graphqlFields/index.js.map +1 -1
  133. package/graphqlFields/json.d.ts +2 -0
  134. package/graphqlFields/json.js +49 -0
  135. package/graphqlFields/json.js.map +1 -0
  136. package/graphqlFields/object.js +20 -28
  137. package/graphqlFields/object.js.map +1 -1
  138. package/graphqlFields/ref.js +24 -14
  139. package/graphqlFields/ref.js.map +1 -1
  140. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  141. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  142. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  143. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  144. package/graphqlFields/richText/richTextResolver.js +39 -0
  145. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  146. package/graphqlFields/richText.js +8 -2
  147. package/graphqlFields/richText.js.map +1 -1
  148. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  149. package/htmlRenderer/LexicalRenderer.js +28 -0
  150. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  151. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  152. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  153. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  154. package/index.d.ts +1 -1
  155. package/index.js +4 -4
  156. package/index.js.map +1 -1
  157. package/modelManager/DefaultCmsModelManager.js +0 -4
  158. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  159. package/package.json +21 -19
  160. package/parameters/context.js +1 -1
  161. package/parameters/context.js.map +1 -1
  162. package/parameters/header.js +1 -2
  163. package/parameters/header.js.map +1 -1
  164. package/parameters/manual.js +6 -3
  165. package/parameters/manual.js.map +1 -1
  166. package/parameters/path.js +1 -2
  167. package/parameters/path.js.map +1 -1
  168. package/plugins/CmsGraphQLSchemaPlugin.js +3 -4
  169. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  170. package/plugins/CmsGraphQLSchemaSorterPlugin.js +1 -4
  171. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  172. package/plugins/CmsGroupPlugin.js +4 -7
  173. package/plugins/CmsGroupPlugin.js.map +1 -1
  174. package/plugins/CmsModelFieldConverterPlugin.js +3 -4
  175. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  176. package/plugins/CmsModelPlugin.d.ts +6 -4
  177. package/plugins/CmsModelPlugin.js +52 -27
  178. package/plugins/CmsModelPlugin.js.map +1 -1
  179. package/plugins/CmsParametersPlugin.js +1 -4
  180. package/plugins/CmsParametersPlugin.js.map +1 -1
  181. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  182. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  183. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  184. package/plugins/StorageOperationsCmsModelPlugin.js +3 -6
  185. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  186. package/plugins/StorageTransformPlugin.d.ts +2 -2
  187. package/plugins/StorageTransformPlugin.js +1 -4
  188. package/plugins/StorageTransformPlugin.js.map +1 -1
  189. package/plugins/index.d.ts +1 -0
  190. package/plugins/index.js +11 -0
  191. package/plugins/index.js.map +1 -1
  192. package/storage/index.d.ts +1 -0
  193. package/storage/index.js +15 -0
  194. package/storage/index.js.map +1 -0
  195. package/storage/json.d.ts +2 -0
  196. package/storage/json.js +27 -0
  197. package/storage/json.js.map +1 -0
  198. package/storage/object.js +5 -7
  199. package/storage/object.js.map +1 -1
  200. package/types.d.ts +182 -53
  201. package/types.js +0 -3
  202. package/types.js.map +1 -1
  203. package/utils/access.d.ts +0 -1
  204. package/utils/access.js +1 -10
  205. package/utils/access.js.map +1 -1
  206. package/utils/caching/Cache.js +3 -5
  207. package/utils/caching/Cache.js.map +1 -1
  208. package/utils/caching/CacheKey.js +0 -3
  209. package/utils/caching/CacheKey.js.map +1 -1
  210. package/utils/converters/Converter.js +1 -4
  211. package/utils/converters/Converter.js.map +1 -1
  212. package/utils/converters/ConverterCollection.js +10 -6
  213. package/utils/converters/ConverterCollection.js.map +1 -1
  214. package/utils/converters/valueKeyStorageConverter.js +3 -3
  215. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  216. package/utils/date.d.ts +2 -2
  217. package/utils/date.js +1 -1
  218. package/utils/date.js.map +1 -1
  219. package/utils/entryStorage.js +3 -3
  220. package/utils/entryStorage.js.map +1 -1
  221. package/utils/identity.d.ts +2 -0
  222. package/utils/identity.js +20 -0
  223. package/utils/identity.js.map +1 -0
  224. package/utils/permissions/ModelsPermissions.js +0 -3
  225. package/utils/permissions/ModelsPermissions.js.map +1 -1
  226. package/utils/renderGetFilterFields.js +2 -3
  227. package/utils/renderGetFilterFields.js.map +1 -1
  228. package/utils/renderListFilterFields.js +9 -3
  229. package/utils/renderListFilterFields.js.map +1 -1
  230. package/utils/renderSortEnum.js +2 -1
  231. package/utils/renderSortEnum.js.map +1 -1
  232. package/validators/gte.js +1 -2
  233. package/validators/gte.js.map +1 -1
  234. package/validators/in.js +1 -2
  235. package/validators/in.js.map +1 -1
  236. package/validators/lte.js +1 -2
  237. package/validators/lte.js.map +1 -1
  238. package/validators/maxLength.js +1 -2
  239. package/validators/maxLength.js.map +1 -1
  240. package/validators/minLength.js +1 -2
  241. package/validators/minLength.js.map +1 -1
  242. package/validators/pattern.js +2 -2
  243. package/validators/pattern.js.map +1 -1
  244. package/validators/timeGte.js +1 -2
  245. package/validators/timeGte.js.map +1 -1
  246. package/validators/timeLte.js +1 -2
  247. package/validators/timeLte.js.map +1 -1
  248. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
  249. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -15
  250. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.createDynamicZoneField = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
7
  var _createTypeName = require("../../utils/createTypeName");
10
8
  var _createTypeFromFields = require("../../utils/createTypeFromFields");
11
9
  var _helpers = require("../helpers");
@@ -13,8 +11,7 @@ const createUnionTypeName = (model, field) => {
13
11
  return `${model.singularApiName}_${(0, _createTypeName.createTypeName)(field.fieldId)}`;
14
12
  };
15
13
  const getFieldTemplates = field => {
16
- var _field$settings;
17
- if (!Array.isArray((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.templates)) {
14
+ if (!Array.isArray(field.settings?.templates)) {
18
15
  return [];
19
16
  }
20
17
  return field.settings.templates;
@@ -54,9 +51,10 @@ const createTypeDefsForTemplates = ({
54
51
  };
55
52
  const remapTemplateValue = (value, typeName) => {
56
53
  const templateType = Object.keys(value)[0];
57
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, value[templateType]), {}, {
54
+ return {
55
+ ...value[templateType],
58
56
  __typename: `${typeName}_${templateType}`
59
- });
57
+ };
60
58
  };
61
59
  const createResolver = endpointType => {
62
60
  return ({
@@ -102,10 +100,13 @@ const createResolver = endpointType => {
102
100
  const typeResolvers = templateTypes.map(templateType => {
103
101
  return templateType.replace(replace, `${graphQLType}_`);
104
102
  }).reduce((typeResolvers, templateType, index) => {
105
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, typeResolvers), createFieldResolvers({
106
- graphQLType: templateType,
107
- fields: field.settings.templates[index].fields
108
- }));
103
+ return {
104
+ ...typeResolvers,
105
+ ...createFieldResolvers({
106
+ graphQLType: templateType,
107
+ fields: field.settings.templates[index].fields
108
+ })
109
+ };
109
110
  }, {});
110
111
  return {
111
112
  resolver,
@@ -127,12 +128,11 @@ const createDynamicZoneField = () => {
127
128
  field
128
129
  } = params;
129
130
  const getOriginalTemplateFields = templateId => {
130
- var _originalField$settin;
131
- if (!(originalField !== null && originalField !== void 0 && (_originalField$settin = originalField.settings) !== null && _originalField$settin !== void 0 && _originalField$settin.templates)) {
131
+ if (!originalField?.settings?.templates) {
132
132
  return [];
133
133
  }
134
134
  const template = originalField.settings.templates.find(t => t.id === templateId);
135
- return (template === null || template === void 0 ? void 0 : template.fields) || [];
135
+ return template?.fields || [];
136
136
  };
137
137
  for (const template of field.settings.templates) {
138
138
  validate({
@@ -1 +1 @@
1
- {"version":3,"names":["_createTypeName","require","_createTypeFromFields","_helpers","createUnionTypeName","model","field","singularApiName","createTypeName","fieldId","getFieldTemplates","_field$settings","Array","isArray","settings","templates","createTypeDefsForTemplates","models","type","typeOfType","fieldTypePlugins","typeDefs","templateTypes","forEach","template","typeName","gqlTypeName","join","result","createTypeFromFields","typeNamePrefix","fields","push","fieldType","remapTemplateValue","value","templateType","Object","keys","_objectSpread2","default","__typename","createResolver","endpointType","createFieldResolvers","graphQLType","length","resolver","parent","multipleValues","remappedValues","map","v","replace","RegExp","typeResolvers","reduce","index","createDynamicZoneField","name","isSortable","isSearchable","validateChildFields","params","validate","originalField","getOriginalTemplateFields","templateId","_originalField$settin","find","t","id","originalFields","read","createTypeField","unionTypeName","unshift","manage","templateIds","concat","createInputField","inputProperties","inputTypeName","key","createGraphQLInputField","exports"],"sources":["dynamicZoneField.ts"],"sourcesContent":["import {\n ApiEndpoint,\n CmsDynamicZoneTemplate,\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelDynamicZoneField,\n CmsModelField,\n CmsModelFieldToGraphQLCreateResolver,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { createTypeName } from \"~/utils/createTypeName\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\nimport { createGraphQLInputField } from \"../helpers\";\nimport { GraphQLFieldResolver } from \"@webiny/handler-graphql/types\";\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n};\n\nconst getFieldTemplates = (field: CmsModelDynamicZoneField): CmsDynamicZoneTemplate[] => {\n if (!Array.isArray(field.settings?.templates)) {\n return [];\n }\n return field.settings.templates;\n};\n\ninterface CreateTypeDefsForTemplatesParams {\n models: CmsModel[];\n model: CmsModel;\n field: CmsModelField;\n type: ApiEndpoint;\n typeOfType: \"type\" | \"input\";\n templates: CmsDynamicZoneTemplate[];\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nconst createTypeDefsForTemplates = ({\n models,\n model,\n field,\n type,\n templates,\n typeOfType,\n fieldTypePlugins\n}: CreateTypeDefsForTemplatesParams) => {\n const typeDefs: string[] = [];\n const templateTypes: string[] = [];\n\n templates.forEach(template => {\n const typeName = [\n model.singularApiName,\n createTypeName(field.fieldId),\n template.gqlTypeName\n ].join(\"_\");\n\n const result = createTypeFromFields({\n models,\n typeOfType,\n model,\n type,\n typeNamePrefix: typeName,\n fields: template.fields,\n fieldTypePlugins\n });\n\n if (!result) {\n return;\n }\n\n typeDefs.push(result.typeDefs);\n templateTypes.push(result.fieldType);\n });\n\n return { typeDefs, templateTypes };\n};\n\nconst remapTemplateValue = (value: any, typeName: string) => {\n const templateType = Object.keys(value)[0];\n\n return { ...value[templateType], __typename: `${typeName}_${templateType}` };\n};\n\nconst createResolver = (\n endpointType: ApiEndpoint\n): CmsModelFieldToGraphQLCreateResolver<CmsModelDynamicZoneField> => {\n return ({ model, models, field, fieldTypePlugins, createFieldResolvers, graphQLType }) => {\n const templates = getFieldTemplates(field);\n\n if (!templates.length) {\n return false;\n }\n\n const resolver = (parent: any) => {\n const value = parent[field.fieldId];\n if (!value) {\n return value;\n }\n\n const typeName = `${graphQLType}_${createTypeName(field.fieldId)}`;\n // const typeName = `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n\n if (field.multipleValues && Array.isArray(value)) {\n const remappedValues = value.map(v => {\n return remapTemplateValue(v, typeName);\n });\n\n return remappedValues;\n }\n\n return remapTemplateValue(value, typeName);\n };\n\n const { templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: endpointType,\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n const replace = new RegExp(`${model.singularApiName}_`, \"g\");\n\n const typeResolvers = templateTypes\n .map(templateType => {\n return templateType.replace(replace, `${graphQLType}_`);\n })\n .reduce<Record<string, Record<string, GraphQLFieldResolver>>>(\n (typeResolvers, templateType, index) => {\n return {\n ...typeResolvers,\n ...createFieldResolvers({\n graphQLType: templateType,\n fields: field.settings.templates[index].fields\n })\n };\n },\n {}\n );\n\n return {\n resolver,\n typeResolvers\n };\n };\n};\n\nexport const createDynamicZoneField =\n (): CmsModelFieldToGraphQLPlugin<CmsModelDynamicZoneField> => {\n return {\n name: \"cms-model-field-to-graphql-dynamic-zone\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"dynamicZone\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { validate, originalField, field } = params;\n\n const getOriginalTemplateFields = (templateId: string) => {\n if (!originalField?.settings?.templates) {\n return [];\n }\n const template = originalField.settings.templates.find(\n t => t.id === templateId\n );\n return template?.fields || [];\n };\n\n for (const template of field.settings.templates) {\n validate({\n fields: template.fields,\n originalFields: getOriginalTemplateFields(template.id)\n });\n }\n },\n read: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n if (!templates.length) {\n return null;\n }\n\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"read\",\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${unionTypeName}!]` : unionTypeName\n }`,\n typeDefs: typeDefs.join(\"\\n\")\n };\n },\n createResolver: createResolver(\"read\")\n },\n manage: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n\n if (!templates.length) {\n return null;\n }\n\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"manage\",\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n // Add _templateId\n const templateIds = templateTypes.map(type => {\n return `extend type ${type} {\n _templateId: ID!\n }\n `;\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${unionTypeName}!]` : unionTypeName\n }`,\n typeDefs: typeDefs.concat(templateIds).join(\"\\n\")\n };\n },\n createInputField({ models, model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n\n if (!templates.length) {\n return null;\n }\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"manage\",\n typeOfType: \"input\",\n model,\n fieldTypePlugins,\n templates\n });\n\n const typeName = `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n\n const inputProperties = templateTypes.map(inputTypeName => {\n const key = inputTypeName.replace(`${typeName}_`, \"\").replace(\"Input\", \"\");\n return [key, inputTypeName];\n });\n\n /**\n * Generate a field input type, similar to this example:\n *\n * input Article_ContentInput {\n * Hero: Article_Content_HeroInput\n * SimpleText: Article_Content_SimpleTextInput\n * }\n */\n typeDefs.push(`input ${typeName}Input {\n ${inputProperties.map(\n ([key, value]) => `\n ${key}: ${value}\n `\n )}\n }`);\n\n return {\n fields: createGraphQLInputField(field, `${typeName}Input`),\n typeDefs: typeDefs.join(\"\\n\")\n };\n },\n createResolver: createResolver(\"manage\")\n }\n };\n };\n"],"mappings":"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"}
1
+ {"version":3,"names":["_createTypeName","require","_createTypeFromFields","_helpers","createUnionTypeName","model","field","singularApiName","createTypeName","fieldId","getFieldTemplates","Array","isArray","settings","templates","createTypeDefsForTemplates","models","type","typeOfType","fieldTypePlugins","typeDefs","templateTypes","forEach","template","typeName","gqlTypeName","join","result","createTypeFromFields","typeNamePrefix","fields","push","fieldType","remapTemplateValue","value","templateType","Object","keys","__typename","createResolver","endpointType","createFieldResolvers","graphQLType","length","resolver","parent","multipleValues","remappedValues","map","v","replace","RegExp","typeResolvers","reduce","index","createDynamicZoneField","name","isSortable","isSearchable","validateChildFields","params","validate","originalField","getOriginalTemplateFields","templateId","find","t","id","originalFields","read","createTypeField","unionTypeName","unshift","manage","templateIds","concat","createInputField","inputProperties","inputTypeName","key","createGraphQLInputField","exports"],"sources":["dynamicZoneField.ts"],"sourcesContent":["import {\n ApiEndpoint,\n CmsDynamicZoneTemplate,\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelDynamicZoneField,\n CmsModelField,\n CmsModelFieldToGraphQLCreateResolver,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { createTypeName } from \"~/utils/createTypeName\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\nimport { createGraphQLInputField } from \"../helpers\";\nimport { GraphQLFieldResolver } from \"@webiny/handler-graphql/types\";\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n};\n\nconst getFieldTemplates = (field: CmsModelDynamicZoneField): CmsDynamicZoneTemplate[] => {\n if (!Array.isArray(field.settings?.templates)) {\n return [];\n }\n return field.settings.templates;\n};\n\ninterface CreateTypeDefsForTemplatesParams {\n models: CmsModel[];\n model: CmsModel;\n field: CmsModelField;\n type: ApiEndpoint;\n typeOfType: \"type\" | \"input\";\n templates: CmsDynamicZoneTemplate[];\n fieldTypePlugins: CmsFieldTypePlugins;\n}\n\nconst createTypeDefsForTemplates = ({\n models,\n model,\n field,\n type,\n templates,\n typeOfType,\n fieldTypePlugins\n}: CreateTypeDefsForTemplatesParams) => {\n const typeDefs: string[] = [];\n const templateTypes: string[] = [];\n\n templates.forEach(template => {\n const typeName = [\n model.singularApiName,\n createTypeName(field.fieldId),\n template.gqlTypeName\n ].join(\"_\");\n\n const result = createTypeFromFields({\n models,\n typeOfType,\n model,\n type,\n typeNamePrefix: typeName,\n fields: template.fields,\n fieldTypePlugins\n });\n\n if (!result) {\n return;\n }\n\n typeDefs.push(result.typeDefs);\n templateTypes.push(result.fieldType);\n });\n\n return { typeDefs, templateTypes };\n};\n\nconst remapTemplateValue = (value: any, typeName: string) => {\n const templateType = Object.keys(value)[0];\n\n return { ...value[templateType], __typename: `${typeName}_${templateType}` };\n};\n\nconst createResolver = (\n endpointType: ApiEndpoint\n): CmsModelFieldToGraphQLCreateResolver<CmsModelDynamicZoneField> => {\n return ({ model, models, field, fieldTypePlugins, createFieldResolvers, graphQLType }) => {\n const templates = getFieldTemplates(field);\n\n if (!templates.length) {\n return false;\n }\n\n const resolver = (parent: any) => {\n const value = parent[field.fieldId];\n if (!value) {\n return value;\n }\n\n const typeName = `${graphQLType}_${createTypeName(field.fieldId)}`;\n // const typeName = `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n\n if (field.multipleValues && Array.isArray(value)) {\n const remappedValues = value.map(v => {\n return remapTemplateValue(v, typeName);\n });\n\n return remappedValues;\n }\n\n return remapTemplateValue(value, typeName);\n };\n\n const { templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: endpointType,\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n const replace = new RegExp(`${model.singularApiName}_`, \"g\");\n\n const typeResolvers = templateTypes\n .map(templateType => {\n return templateType.replace(replace, `${graphQLType}_`);\n })\n .reduce<Record<string, Record<string, GraphQLFieldResolver>>>(\n (typeResolvers, templateType, index) => {\n return {\n ...typeResolvers,\n ...createFieldResolvers({\n graphQLType: templateType,\n fields: field.settings.templates[index].fields\n })\n };\n },\n {}\n );\n\n return {\n resolver,\n typeResolvers\n };\n };\n};\n\nexport const createDynamicZoneField =\n (): CmsModelFieldToGraphQLPlugin<CmsModelDynamicZoneField> => {\n return {\n name: \"cms-model-field-to-graphql-dynamic-zone\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"dynamicZone\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { validate, originalField, field } = params;\n\n const getOriginalTemplateFields = (templateId: string) => {\n if (!originalField?.settings?.templates) {\n return [];\n }\n const template = originalField.settings.templates.find(\n t => t.id === templateId\n );\n return template?.fields || [];\n };\n\n for (const template of field.settings.templates) {\n validate({\n fields: template.fields,\n originalFields: getOriginalTemplateFields(template.id)\n });\n }\n },\n read: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n if (!templates.length) {\n return null;\n }\n\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"read\",\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${unionTypeName}!]` : unionTypeName\n }`,\n typeDefs: typeDefs.join(\"\\n\")\n };\n },\n createResolver: createResolver(\"read\")\n },\n manage: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n\n if (!templates.length) {\n return null;\n }\n\n const unionTypeName = createUnionTypeName(model, field);\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"manage\",\n typeOfType: \"type\",\n model,\n fieldTypePlugins,\n templates\n });\n\n // Add _templateId\n const templateIds = templateTypes.map(type => {\n return `extend type ${type} {\n _templateId: ID!\n }\n `;\n });\n\n typeDefs.unshift(`union ${unionTypeName} = ${templateTypes.join(\" | \")}`);\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${unionTypeName}!]` : unionTypeName\n }`,\n typeDefs: typeDefs.concat(templateIds).join(\"\\n\")\n };\n },\n createInputField({ models, model, field, fieldTypePlugins }) {\n const templates = getFieldTemplates(field);\n\n if (!templates.length) {\n return null;\n }\n\n const { typeDefs, templateTypes } = createTypeDefsForTemplates({\n models,\n field,\n type: \"manage\",\n typeOfType: \"input\",\n model,\n fieldTypePlugins,\n templates\n });\n\n const typeName = `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n\n const inputProperties = templateTypes.map(inputTypeName => {\n const key = inputTypeName.replace(`${typeName}_`, \"\").replace(\"Input\", \"\");\n return [key, inputTypeName];\n });\n\n /**\n * Generate a field input type, similar to this example:\n *\n * input Article_ContentInput {\n * Hero: Article_Content_HeroInput\n * SimpleText: Article_Content_SimpleTextInput\n * }\n */\n typeDefs.push(`input ${typeName}Input {\n ${inputProperties.map(\n ([key, value]) => `\n ${key}: ${value}\n `\n )}\n }`);\n\n return {\n fields: createGraphQLInputField(field, `${typeName}Input`),\n typeDefs: typeDefs.join(\"\\n\")\n };\n },\n createResolver: createResolver(\"manage\")\n }\n };\n };\n"],"mappings":"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"}
@@ -1,20 +1,19 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.createDynamicZoneStorageTransform = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
7
  var _plugins = require("../../plugins");
10
8
  function valueWithTemplateId(value, {
11
9
  id,
12
10
  gqlTypeName
13
11
  }) {
14
12
  return {
15
- [gqlTypeName]: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, value[gqlTypeName]), {}, {
13
+ [gqlTypeName]: {
14
+ ...value[gqlTypeName],
16
15
  _templateId: id
17
- })
16
+ }
18
17
  };
19
18
  }
20
19
  const convertToStorage = (value, templates) => {
@@ -22,9 +21,10 @@ const convertToStorage = (value, templates) => {
22
21
  const inputType = Object.keys(value)[0];
23
22
  const template = templates.find(tpl => tpl.gqlTypeName === inputType);
24
23
  if (template) {
25
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, value[inputType]), {}, {
24
+ return {
25
+ ...value[inputType],
26
26
  _templateId: template.id
27
- });
27
+ };
28
28
  }
29
29
  /**
30
30
  * There is a possibility that the value is already in the storage format, so there is no need to transform it again.
@@ -1 +1 @@
1
- {"version":3,"names":["_plugins","require","valueWithTemplateId","value","id","gqlTypeName","_objectSpread2","default","_templateId","convertToStorage","templates","inputType","Object","keys","template","find","tpl","undefined","convertFromStorage","length","createDynamicZoneStorageTransform","StorageTransformPlugin","fieldType","fromStorage","field","settings","Array","isArray","multipleValues","map","filter","Boolean","toStorage","exports"],"sources":["dynamicZoneStorage.ts"],"sourcesContent":["import { CmsDynamicZoneTemplate, CmsModelDynamicZoneField } from \"~/types\";\nimport { StorageTransformPlugin } from \"~/plugins\";\n\nfunction valueWithTemplateId(\n value: Record<string, any>,\n { id, gqlTypeName }: CmsDynamicZoneTemplate\n) {\n return { [gqlTypeName]: { ...value[gqlTypeName], _templateId: id } };\n}\n\nconst convertToStorage = (value: Record<string, any>, templates: CmsDynamicZoneTemplate[]) => {\n // Only one key is allowed in the input object.\n const inputType = Object.keys(value)[0];\n const template = templates.find(tpl => tpl.gqlTypeName === inputType);\n if (template) {\n return { ...value[inputType], _templateId: template.id };\n }\n /**\n * There is a possibility that the value is already in the storage format, so there is no need to transform it again.\n * We are going to check:\n * 1. value is an object\n * 2. it contains a _templateId key\n * 3. the key is a valid template id - at this point we know it is already converted\n */\n if (!value || typeof value !== \"object\") {\n return undefined;\n } else if (!value._templateId) {\n return undefined;\n }\n const tpl = templates.find(tpl => tpl.id === value._templateId);\n return tpl ? value : undefined;\n};\n\ninterface TemplateValueFromStorage {\n _templateId: string;\n [key: string]: any;\n}\n\nconst convertFromStorage = (\n value: TemplateValueFromStorage,\n templates: CmsDynamicZoneTemplate[]\n) => {\n const template = templates.find(tpl => value._templateId === tpl.id);\n\n if (template) {\n // We keep the `_templateId` property, to simplify further processing.\n return { [template.gqlTypeName]: value };\n }\n\n /**\n * When the `value` is in the original input format (during GraphQL mutations), `_templateId` will not be present\n * in the `value` object (because this internal property is added by `toStorage` storage transform method, and since\n * we simply return the input from the CRUD methods, this property will be missing).\n * For that reason, we need to run some extra logic, to acquire the `_templateId`.\n */\n\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n\n /**\n * `value` object must have exactly one none-empty key.\n */\n const keys = Object.keys(value);\n if (keys.length !== 1 || !keys[0]) {\n return undefined;\n }\n\n /**\n * Find a template that matches the first (and only) key of the `value` object by template's `gqlTypeName`.\n */\n const tpl = templates.find(tpl => tpl.gqlTypeName === keys[0]);\n return tpl ? valueWithTemplateId(value, tpl) : undefined;\n};\n\nexport const createDynamicZoneStorageTransform = () => {\n return new StorageTransformPlugin<any, any, CmsModelDynamicZoneField>({\n fieldType: \"dynamicZone\",\n fromStorage: async ({ value, field }) => {\n if (!value) {\n return null;\n }\n\n const templates = field.settings.templates;\n\n if (Array.isArray(value) && field.multipleValues) {\n return value.map(value => convertFromStorage(value, templates)).filter(Boolean);\n }\n\n return convertFromStorage(value, templates);\n },\n toStorage: async ({ value, field }) => {\n if (!value) {\n return value;\n }\n\n const templates = field.settings.templates;\n\n if (Array.isArray(value) && field.multipleValues) {\n return value.map(value => convertToStorage(value, templates)).filter(Boolean);\n }\n\n return convertToStorage(value, templates);\n }\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_plugins","require","valueWithTemplateId","value","id","gqlTypeName","_templateId","convertToStorage","templates","inputType","Object","keys","template","find","tpl","undefined","convertFromStorage","length","createDynamicZoneStorageTransform","StorageTransformPlugin","fieldType","fromStorage","field","settings","Array","isArray","multipleValues","map","filter","Boolean","toStorage","exports"],"sources":["dynamicZoneStorage.ts"],"sourcesContent":["import { CmsDynamicZoneTemplate, CmsModelDynamicZoneField } from \"~/types\";\nimport { StorageTransformPlugin } from \"~/plugins\";\n\nfunction valueWithTemplateId(\n value: Record<string, any>,\n { id, gqlTypeName }: CmsDynamicZoneTemplate\n) {\n return { [gqlTypeName]: { ...value[gqlTypeName], _templateId: id } };\n}\n\nconst convertToStorage = (value: Record<string, any>, templates: CmsDynamicZoneTemplate[]) => {\n // Only one key is allowed in the input object.\n const inputType = Object.keys(value)[0];\n const template = templates.find(tpl => tpl.gqlTypeName === inputType);\n if (template) {\n return { ...value[inputType], _templateId: template.id };\n }\n /**\n * There is a possibility that the value is already in the storage format, so there is no need to transform it again.\n * We are going to check:\n * 1. value is an object\n * 2. it contains a _templateId key\n * 3. the key is a valid template id - at this point we know it is already converted\n */\n if (!value || typeof value !== \"object\") {\n return undefined;\n } else if (!value._templateId) {\n return undefined;\n }\n const tpl = templates.find(tpl => tpl.id === value._templateId);\n return tpl ? value : undefined;\n};\n\ninterface TemplateValueFromStorage {\n _templateId: string;\n [key: string]: any;\n}\n\nconst convertFromStorage = (\n value: TemplateValueFromStorage,\n templates: CmsDynamicZoneTemplate[]\n) => {\n const template = templates.find(tpl => value._templateId === tpl.id);\n\n if (template) {\n // We keep the `_templateId` property, to simplify further processing.\n return { [template.gqlTypeName]: value };\n }\n\n /**\n * When the `value` is in the original input format (during GraphQL mutations), `_templateId` will not be present\n * in the `value` object (because this internal property is added by `toStorage` storage transform method, and since\n * we simply return the input from the CRUD methods, this property will be missing).\n * For that reason, we need to run some extra logic, to acquire the `_templateId`.\n */\n\n if (!value || typeof value !== \"object\") {\n return undefined;\n }\n\n /**\n * `value` object must have exactly one none-empty key.\n */\n const keys = Object.keys(value);\n if (keys.length !== 1 || !keys[0]) {\n return undefined;\n }\n\n /**\n * Find a template that matches the first (and only) key of the `value` object by template's `gqlTypeName`.\n */\n const tpl = templates.find(tpl => tpl.gqlTypeName === keys[0]);\n return tpl ? valueWithTemplateId(value, tpl) : undefined;\n};\n\nexport const createDynamicZoneStorageTransform = () => {\n return new StorageTransformPlugin<any, any, CmsModelDynamicZoneField>({\n fieldType: \"dynamicZone\",\n fromStorage: async ({ value, field }) => {\n if (!value) {\n return null;\n }\n\n const templates = field.settings.templates;\n\n if (Array.isArray(value) && field.multipleValues) {\n return value.map(value => convertFromStorage(value, templates)).filter(Boolean);\n }\n\n return convertFromStorage(value, templates);\n },\n toStorage: async ({ value, field }) => {\n if (!value) {\n return value;\n }\n\n const templates = field.settings.templates;\n\n if (Array.isArray(value) && field.multipleValues) {\n return value.map(value => convertToStorage(value, templates)).filter(Boolean);\n }\n\n return convertToStorage(value, templates);\n }\n });\n};\n"],"mappings":"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"}
@@ -14,7 +14,8 @@ var _richText = require("./richText");
14
14
  var _file = require("./file");
15
15
  var _object = require("./object");
16
16
  var _dynamicZone = require("./dynamicZone");
17
- const createGraphQLFields = () => [(0, _text.createTextField)(), (0, _ref.createRefField)(), (0, _number.createNumberField)(), (0, _datetime.createDateTimeField)(), (0, _boolean.createBooleanField)(), (0, _longText.createLongTextField)(), (0, _richText.createRichTextField)(), (0, _file.createFileField)(), (0, _object.createObjectField)(), (0, _dynamicZone.createDynamicZoneField)()];
17
+ var _json = require("./json");
18
+ const createGraphQLFields = () => [(0, _text.createTextField)(), (0, _ref.createRefField)(), (0, _number.createNumberField)(), (0, _datetime.createDateTimeField)(), (0, _boolean.createBooleanField)(), (0, _longText.createLongTextField)(), (0, _richText.createRichTextField)(), (0, _json.createJsonField)(), (0, _file.createFileField)(), (0, _object.createObjectField)(), (0, _dynamicZone.createDynamicZoneField)()];
18
19
  exports.createGraphQLFields = createGraphQLFields;
19
20
 
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_text","require","_longText","_ref","_number","_boolean","_datetime","_richText","_file","_object","_dynamicZone","createGraphQLFields","createTextField","createRefField","createNumberField","createDateTimeField","createBooleanField","createLongTextField","createRichTextField","createFileField","createObjectField","createDynamicZoneField","exports"],"sources":["index.ts"],"sourcesContent":["import { createTextField } from \"./text\";\nimport { createLongTextField } from \"./longText\";\nimport { createRefField } from \"./ref\";\nimport { createNumberField } from \"./number\";\nimport { createBooleanField } from \"./boolean\";\nimport { createDateTimeField } from \"./datetime\";\nimport { createRichTextField } from \"./richText\";\nimport { createFileField } from \"./file\";\nimport { createObjectField } from \"./object\";\nimport { createDynamicZoneField } from \"~/graphqlFields/dynamicZone\";\nimport { CmsModelFieldToGraphQLPlugin } from \"~/types\";\n\nexport const createGraphQLFields = (): CmsModelFieldToGraphQLPlugin<any>[] => [\n createTextField(),\n createRefField(),\n createNumberField(),\n createDateTimeField(),\n createBooleanField(),\n createLongTextField(),\n createRichTextField(),\n createFileField(),\n createObjectField(),\n createDynamicZoneField()\n];\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AAGO,MAAMU,mBAAmB,GAAGA,CAAA,KAA2C,CAC1E,IAAAC,qBAAe,EAAC,CAAC,EACjB,IAAAC,mBAAc,EAAC,CAAC,EAChB,IAAAC,yBAAiB,EAAC,CAAC,EACnB,IAAAC,6BAAmB,EAAC,CAAC,EACrB,IAAAC,2BAAkB,EAAC,CAAC,EACpB,IAAAC,6BAAmB,EAAC,CAAC,EACrB,IAAAC,6BAAmB,EAAC,CAAC,EACrB,IAAAC,qBAAe,EAAC,CAAC,EACjB,IAAAC,yBAAiB,EAAC,CAAC,EACnB,IAAAC,mCAAsB,EAAC,CAAC,CAC3B;AAACC,OAAA,CAAAX,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"names":["_text","require","_longText","_ref","_number","_boolean","_datetime","_richText","_file","_object","_dynamicZone","_json","createGraphQLFields","createTextField","createRefField","createNumberField","createDateTimeField","createBooleanField","createLongTextField","createRichTextField","createJsonField","createFileField","createObjectField","createDynamicZoneField","exports"],"sources":["index.ts"],"sourcesContent":["import { createTextField } from \"./text\";\nimport { createLongTextField } from \"./longText\";\nimport { createRefField } from \"./ref\";\nimport { createNumberField } from \"./number\";\nimport { createBooleanField } from \"./boolean\";\nimport { createDateTimeField } from \"./datetime\";\nimport { createRichTextField } from \"./richText\";\nimport { createFileField } from \"./file\";\nimport { createObjectField } from \"./object\";\nimport { createDynamicZoneField } from \"~/graphqlFields/dynamicZone\";\nimport { CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createJsonField } from \"~/graphqlFields/json\";\n\nexport const createGraphQLFields = (): CmsModelFieldToGraphQLPlugin<any>[] => [\n createTextField(),\n createRefField(),\n createNumberField(),\n createDateTimeField(),\n createBooleanField(),\n createLongTextField(),\n createRichTextField(),\n createJsonField(),\n createFileField(),\n createObjectField(),\n createDynamicZoneField()\n];\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AAEA,IAAAU,KAAA,GAAAV,OAAA;AAEO,MAAMW,mBAAmB,GAAGA,CAAA,KAA2C,CAC1E,IAAAC,qBAAe,EAAC,CAAC,EACjB,IAAAC,mBAAc,EAAC,CAAC,EAChB,IAAAC,yBAAiB,EAAC,CAAC,EACnB,IAAAC,6BAAmB,EAAC,CAAC,EACrB,IAAAC,2BAAkB,EAAC,CAAC,EACpB,IAAAC,6BAAmB,EAAC,CAAC,EACrB,IAAAC,6BAAmB,EAAC,CAAC,EACrB,IAAAC,qBAAe,EAAC,CAAC,EACjB,IAAAC,qBAAe,EAAC,CAAC,EACjB,IAAAC,yBAAiB,EAAC,CAAC,EACnB,IAAAC,mCAAsB,EAAC,CAAC,CAC3B;AAACC,OAAA,CAAAZ,mBAAA,GAAAA,mBAAA"}
@@ -0,0 +1,2 @@
1
+ import { CmsModelFieldToGraphQLPlugin } from "../types";
2
+ export declare const createJsonField: () => CmsModelFieldToGraphQLPlugin;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createJsonField = void 0;
7
+ var _helpers = require("./helpers");
8
+ const createJsonField = () => {
9
+ return {
10
+ name: "cms-model-field-to-graphql-json",
11
+ type: "cms-model-field-to-graphql",
12
+ fieldType: "json",
13
+ isSortable: false,
14
+ isSearchable: false,
15
+ read: {
16
+ createTypeField({
17
+ field
18
+ }) {
19
+ if (field.multipleValues) {
20
+ return `${field.fieldId}: [JSON]`;
21
+ }
22
+ return `${field.fieldId}: JSON`;
23
+ },
24
+ createGetFilters({
25
+ field
26
+ }) {
27
+ return `${field.fieldId}: JSON`;
28
+ }
29
+ },
30
+ manage: {
31
+ createTypeField({
32
+ field
33
+ }) {
34
+ if (field.multipleValues) {
35
+ return `${field.fieldId}: [JSON]`;
36
+ }
37
+ return `${field.fieldId}: JSON`;
38
+ },
39
+ createInputField({
40
+ field
41
+ }) {
42
+ return (0, _helpers.createGraphQLInputField)(field, "JSON");
43
+ }
44
+ }
45
+ };
46
+ };
47
+ exports.createJsonField = createJsonField;
48
+
49
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_helpers","require","createJsonField","name","type","fieldType","isSortable","isSearchable","read","createTypeField","field","multipleValues","fieldId","createGetFilters","manage","createInputField","createGraphQLInputField","exports"],"sources":["json.ts"],"sourcesContent":["import { CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\nexport const createJsonField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-json\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"json\",\n isSortable: false,\n isSearchable: false,\n read: {\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [JSON]`;\n }\n\n return `${field.fieldId}: JSON`;\n },\n createGetFilters({ field }) {\n return `${field.fieldId}: JSON`;\n }\n },\n manage: {\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [JSON]`;\n }\n return `${field.fieldId}: JSON`;\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"JSON\");\n }\n }\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,GAAGA,CAAA,KAAoC;EAC/D,OAAO;IACHC,IAAI,EAAE,iCAAiC;IACvCC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,MAAM;IACjBC,UAAU,EAAE,KAAK;IACjBC,YAAY,EAAE,KAAK;IACnBC,IAAI,EAAE;MACFC,eAAeA,CAAC;QAAEC;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACC,cAAc,EAAE;UACtB,OAAQ,GAAED,KAAK,CAACE,OAAQ,UAAS;QACrC;QAEA,OAAQ,GAAEF,KAAK,CAACE,OAAQ,QAAO;MACnC,CAAC;MACDC,gBAAgBA,CAAC;QAAEH;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACE,OAAQ,QAAO;MACnC;IACJ,CAAC;IACDE,MAAM,EAAE;MACJL,eAAeA,CAAC;QAAEC;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACC,cAAc,EAAE;UACtB,OAAQ,GAAED,KAAK,CAACE,OAAQ,UAAS;QACrC;QACA,OAAQ,GAAEF,KAAK,CAACE,OAAQ,QAAO;MACnC,CAAC;MACDG,gBAAgBA,CAAC;QAAEL;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAM,gCAAuB,EAACN,KAAK,EAAE,MAAM,CAAC;MACjD;IACJ;EACJ,CAAC;AACL,CAAC;AAACO,OAAA,CAAAf,eAAA,GAAAA,eAAA"}
@@ -5,36 +5,35 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createObjectField = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
8
  var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
10
9
  var _createTypeFromFields = require("../utils/createTypeFromFields");
11
10
  const createChildTypeDefs = params => {
12
- var _field$settings, _field$settings2;
13
11
  const {
14
12
  field,
15
13
  plugins,
16
14
  model,
17
15
  endpointType
18
16
  } = params;
19
- const fields = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.fields) || [];
17
+ const fields = field.settings?.fields || [];
20
18
  const typeName = createTypeName({
21
19
  model,
22
20
  field,
23
- parents: (_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.parents
21
+ parents: field.settings?.parents
24
22
  });
25
23
  const filters = fields.map(child => {
26
- var _child$settings;
27
24
  const createListFilters = plugins[child.type][endpointType].createListFilters;
28
25
  if (!createListFilters) {
29
26
  return null;
30
27
  }
31
28
  const filters = createListFilters({
32
29
  model,
33
- field: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
34
- settings: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child.settings), {}, {
35
- parents: (((_child$settings = child.settings) === null || _child$settings === void 0 ? void 0 : _child$settings.parents) || []).concat([field.fieldId])
36
- })
37
- }),
30
+ field: {
31
+ ...child,
32
+ settings: {
33
+ ...child.settings,
34
+ parents: (child.settings?.parents || []).concat([field.fieldId])
35
+ }
36
+ },
38
37
  plugins
39
38
  });
40
39
  if (!filters) {
@@ -60,11 +59,10 @@ const createListFilters = ({
60
59
  field,
61
60
  model
62
61
  }) => {
63
- var _field$settings3;
64
62
  const typeName = createTypeName({
65
63
  model,
66
64
  field,
67
- parents: (_field$settings3 = field.settings) === null || _field$settings3 === void 0 ? void 0 : _field$settings3.parents
65
+ parents: field.settings?.parents
68
66
  });
69
67
  return `${field.fieldId}: ${typeName}WhereInput`;
70
68
  };
@@ -76,15 +74,14 @@ const createObjectField = () => {
76
74
  isSortable: false,
77
75
  isSearchable: false,
78
76
  validateChildFields: params => {
79
- var _field$settings4, _originalField$settin;
80
77
  const {
81
78
  field,
82
79
  originalField,
83
80
  validate
84
81
  } = params;
85
82
  validate({
86
- fields: ((_field$settings4 = field.settings) === null || _field$settings4 === void 0 ? void 0 : _field$settings4.fields) ?? [],
87
- originalFields: (originalField === null || originalField === void 0 || (_originalField$settin = originalField.settings) === null || _originalField$settin === void 0 ? void 0 : _originalField$settin.fields) || []
83
+ fields: field.settings?.fields ?? [],
84
+ originalFields: originalField?.settings?.fields || []
88
85
  });
89
86
  },
90
87
  read: {
@@ -94,7 +91,6 @@ const createObjectField = () => {
94
91
  model,
95
92
  fieldTypePlugins
96
93
  }) {
97
- var _field$settings5, _field$settings6;
98
94
  const result = (0, _createTypeFromFields.createTypeFromFields)({
99
95
  models,
100
96
  typeOfType: "type",
@@ -103,9 +99,9 @@ const createObjectField = () => {
103
99
  typeNamePrefix: createTypeName({
104
100
  model,
105
101
  field,
106
- parents: (_field$settings5 = field.settings) === null || _field$settings5 === void 0 ? void 0 : _field$settings5.parents
102
+ parents: field.settings?.parents
107
103
  }),
108
- fields: ((_field$settings6 = field.settings) === null || _field$settings6 === void 0 ? void 0 : _field$settings6.fields) || [],
104
+ fields: field.settings?.fields || [],
109
105
  fieldTypePlugins
110
106
  });
111
107
  if (!result) {
@@ -131,8 +127,7 @@ const createObjectField = () => {
131
127
  createFieldResolvers,
132
128
  graphQLType
133
129
  }) {
134
- var _field$settings7;
135
- if (!((_field$settings7 = field.settings) !== null && _field$settings7 !== void 0 && _field$settings7.fields) || field.settings.fields.length === 0) {
130
+ if (!field.settings?.fields || field.settings.fields.length === 0) {
136
131
  return false;
137
132
  }
138
133
  const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
@@ -154,7 +149,6 @@ const createObjectField = () => {
154
149
  field,
155
150
  fieldTypePlugins
156
151
  }) {
157
- var _field$settings8, _field$settings9;
158
152
  const result = (0, _createTypeFromFields.createTypeFromFields)({
159
153
  typeOfType: "type",
160
154
  models,
@@ -163,9 +157,9 @@ const createObjectField = () => {
163
157
  typeNamePrefix: createTypeName({
164
158
  model,
165
159
  field,
166
- parents: (_field$settings8 = field.settings) === null || _field$settings8 === void 0 ? void 0 : _field$settings8.parents
160
+ parents: field.settings?.parents
167
161
  }),
168
- fields: ((_field$settings9 = field.settings) === null || _field$settings9 === void 0 ? void 0 : _field$settings9.fields) || [],
162
+ fields: field.settings?.fields || [],
169
163
  fieldTypePlugins
170
164
  });
171
165
  if (!result) {
@@ -192,7 +186,6 @@ const createObjectField = () => {
192
186
  field,
193
187
  fieldTypePlugins
194
188
  }) {
195
- var _field$settings10, _field$settings11;
196
189
  const result = (0, _createTypeFromFields.createTypeFromFields)({
197
190
  typeOfType: "input",
198
191
  models,
@@ -201,9 +194,9 @@ const createObjectField = () => {
201
194
  typeNamePrefix: createTypeName({
202
195
  model,
203
196
  field,
204
- parents: (_field$settings10 = field.settings) === null || _field$settings10 === void 0 ? void 0 : _field$settings10.parents
197
+ parents: field.settings?.parents
205
198
  }),
206
- fields: ((_field$settings11 = field.settings) === null || _field$settings11 === void 0 ? void 0 : _field$settings11.fields) || [],
199
+ fields: field.settings?.fields || [],
207
200
  fieldTypePlugins
208
201
  });
209
202
  if (!result) {
@@ -223,8 +216,7 @@ const createObjectField = () => {
223
216
  field,
224
217
  createFieldResolvers
225
218
  }) {
226
- var _field$settings12;
227
- if (!((_field$settings12 = field.settings) !== null && _field$settings12 !== void 0 && _field$settings12.fields) || field.settings.fields.length === 0) {
219
+ if (!field.settings?.fields || field.settings.fields.length === 0) {
228
220
  return false;
229
221
  }
230
222
  const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
@@ -1 +1 @@
1
- {"version":3,"names":["_upperFirst","_interopRequireDefault","require","_createTypeFromFields","createChildTypeDefs","params","_field$settings","_field$settings2","field","plugins","model","endpointType","fields","settings","typeName","createTypeName","parents","filters","map","child","_child$settings","createListFilters","type","_objectSpread2","default","concat","fieldId","filter","Boolean","join","singularApiName","id","lodashUpperFirst","_field$settings3","createObjectField","name","fieldType","isSortable","isSearchable","validateChildFields","_field$settings4","_originalField$settin","originalField","validate","originalFields","read","createTypeField","models","fieldTypePlugins","_field$settings5","_field$settings6","result","createTypeFromFields","typeOfType","typeNamePrefix","typeDefs","childTypeDefs","multipleValues","createResolver","createFieldResolvers","graphQLType","_field$settings7","length","upperFirst","typeResolvers","resolver","manage","_field$settings8","_field$settings9","createInputField","_field$settings10","_field$settings11","_field$settings12","exports"],"sources":["object.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\n\ninterface AttachTypeDefinitionsParams {\n model: Pick<CmsModel, \"singularApiName\">;\n field: CmsModelField;\n plugins: CmsFieldTypePlugins;\n endpointType: \"manage\" | \"read\";\n}\nconst createChildTypeDefs = (params: AttachTypeDefinitionsParams): string => {\n const { field, plugins, model, endpointType } = params;\n const fields = field.settings?.fields || [];\n\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n const filters = fields\n .map(child => {\n const createListFilters = plugins[child.type][endpointType].createListFilters;\n if (!createListFilters) {\n return null;\n }\n\n const filters = createListFilters({\n model,\n field: {\n ...child,\n settings: {\n ...child.settings,\n parents: (child.settings?.parents || []).concat([field.fieldId])\n }\n },\n plugins\n });\n if (!filters) {\n return null;\n }\n return filters;\n })\n .filter(Boolean)\n .join(\"\\n\");\n return `input ${typeName}WhereInput {\n ${filters || \"_empty: String\"}\n }\\n`;\n};\n\ninterface CreateTypeNameParams {\n model: Pick<CmsModel, \"singularApiName\">;\n parents?: string[];\n field: CmsModelField;\n}\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.singularApiName]\n .concat(parents)\n .concat([field.fieldId])\n .filter(Boolean)\n .map(id => {\n return lodashUpperFirst(id);\n })\n .join(\"_\");\n};\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n model: Pick<CmsModel, \"singularApiName\">;\n}\nconst createListFilters = ({ field, model }: CreateListFiltersParams) => {\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n return `${field.fieldId}: ${typeName}WhereInput`;\n};\n\nexport const createObjectField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-object\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"object\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { field, originalField, validate } = params;\n\n validate({\n fields: field.settings?.fields ?? [],\n originalFields: originalField?.settings?.fields || []\n });\n },\n read: {\n createTypeField({ field, models, model, fieldTypePlugins }) {\n const result = createTypeFromFields({\n models,\n typeOfType: \"type\",\n model,\n type: \"read\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"read\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createResolver({ field, createFieldResolvers, graphQLType }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n },\n manage: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"manage\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}\\n${childTypeDefs}`\n };\n },\n createInputField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"input\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs\n };\n },\n createResolver({ graphQLType, field, createFieldResolvers }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_upperFirst","_interopRequireDefault","require","_createTypeFromFields","createChildTypeDefs","params","field","plugins","model","endpointType","fields","settings","typeName","createTypeName","parents","filters","map","child","createListFilters","type","concat","fieldId","filter","Boolean","join","singularApiName","id","lodashUpperFirst","createObjectField","name","fieldType","isSortable","isSearchable","validateChildFields","originalField","validate","originalFields","read","createTypeField","models","fieldTypePlugins","result","createTypeFromFields","typeOfType","typeNamePrefix","typeDefs","childTypeDefs","multipleValues","createResolver","createFieldResolvers","graphQLType","length","upperFirst","typeResolvers","resolver","manage","createInputField","exports"],"sources":["object.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\n\ninterface AttachTypeDefinitionsParams {\n model: Pick<CmsModel, \"singularApiName\">;\n field: CmsModelField;\n plugins: CmsFieldTypePlugins;\n endpointType: \"manage\" | \"read\";\n}\nconst createChildTypeDefs = (params: AttachTypeDefinitionsParams): string => {\n const { field, plugins, model, endpointType } = params;\n const fields = field.settings?.fields || [];\n\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n const filters = fields\n .map(child => {\n const createListFilters = plugins[child.type][endpointType].createListFilters;\n if (!createListFilters) {\n return null;\n }\n\n const filters = createListFilters({\n model,\n field: {\n ...child,\n settings: {\n ...child.settings,\n parents: (child.settings?.parents || []).concat([field.fieldId])\n }\n },\n plugins\n });\n if (!filters) {\n return null;\n }\n return filters;\n })\n .filter(Boolean)\n .join(\"\\n\");\n return `input ${typeName}WhereInput {\n ${filters || \"_empty: String\"}\n }\\n`;\n};\n\ninterface CreateTypeNameParams {\n model: Pick<CmsModel, \"singularApiName\">;\n parents?: string[];\n field: CmsModelField;\n}\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.singularApiName]\n .concat(parents)\n .concat([field.fieldId])\n .filter(Boolean)\n .map(id => {\n return lodashUpperFirst(id);\n })\n .join(\"_\");\n};\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n model: Pick<CmsModel, \"singularApiName\">;\n}\nconst createListFilters = ({ field, model }: CreateListFiltersParams) => {\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n return `${field.fieldId}: ${typeName}WhereInput`;\n};\n\nexport const createObjectField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-object\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"object\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { field, originalField, validate } = params;\n\n validate({\n fields: field.settings?.fields ?? [],\n originalFields: originalField?.settings?.fields || []\n });\n },\n read: {\n createTypeField({ field, models, model, fieldTypePlugins }) {\n const result = createTypeFromFields({\n models,\n typeOfType: \"type\",\n model,\n type: \"read\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"read\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createResolver({ field, createFieldResolvers, graphQLType }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n },\n manage: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"manage\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}\\n${childTypeDefs}`\n };\n },\n createInputField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"input\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs\n };\n },\n createResolver({ graphQLType, field, createFieldResolvers }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n }\n };\n};\n"],"mappings":"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"}