@webiny/api-headless-cms 0.0.0-unstable.aad28a72ae → 0.0.0-unstable.b14eaecf38

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 (386) hide show
  1. package/context.d.ts +5 -2
  2. package/context.js +61 -23
  3. package/context.js.map +1 -1
  4. package/crud/contentEntry/afterDelete.js +0 -5
  5. package/crud/contentEntry/afterDelete.js.map +1 -1
  6. package/crud/contentEntry/beforeCreate.js +0 -3
  7. package/crud/contentEntry/beforeCreate.js.map +1 -1
  8. package/crud/contentEntry/beforeUpdate.js +0 -3
  9. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  10. package/crud/contentEntry/entryDataValidation.js +1 -40
  11. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  12. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  13. package/crud/contentEntry/markLockedFields.js +15 -28
  14. package/crud/contentEntry/markLockedFields.js.map +1 -1
  15. package/crud/contentEntry/referenceFieldsMapping.js +5 -61
  16. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  17. package/crud/contentEntry/searchableFields.js +1 -12
  18. package/crud/contentEntry/searchableFields.js.map +1 -1
  19. package/crud/contentEntry.crud.d.ts +5 -2
  20. package/crud/contentEntry.crud.js +871 -936
  21. package/crud/contentEntry.crud.js.map +1 -1
  22. package/crud/contentModel/afterCreate.js +0 -2
  23. package/crud/contentModel/afterCreate.js.map +1 -1
  24. package/crud/contentModel/afterCreateFrom.js +0 -2
  25. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  26. package/crud/contentModel/afterDelete.js +0 -2
  27. package/crud/contentModel/afterDelete.js.map +1 -1
  28. package/crud/contentModel/afterUpdate.js +0 -2
  29. package/crud/contentModel/afterUpdate.js.map +1 -1
  30. package/crud/contentModel/beforeCreate.d.ts +2 -3
  31. package/crud/contentModel/beforeCreate.js +43 -109
  32. package/crud/contentModel/beforeCreate.js.map +1 -1
  33. package/crud/contentModel/beforeDelete.d.ts +1 -1
  34. package/crud/contentModel/beforeDelete.js +1 -15
  35. package/crud/contentModel/beforeDelete.js.map +1 -1
  36. package/crud/contentModel/beforeUpdate.d.ts +2 -4
  37. package/crud/contentModel/beforeUpdate.js +33 -10
  38. package/crud/contentModel/beforeUpdate.js.map +1 -1
  39. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  40. package/crud/contentModel/compatibility/modelApiName.js +24 -0
  41. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  42. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  43. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  44. package/crud/contentModel/createFieldStorageId.js +0 -3
  45. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  46. package/crud/contentModel/defaultFields.d.ts +5 -0
  47. package/crud/contentModel/defaultFields.js +58 -0
  48. package/crud/contentModel/defaultFields.js.map +1 -0
  49. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  50. package/crud/contentModel/fields/descriptionField.js +42 -0
  51. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  52. package/crud/contentModel/fields/imageField.d.ts +2 -0
  53. package/crud/contentModel/fields/imageField.js +46 -0
  54. package/crud/contentModel/fields/imageField.js.map +1 -0
  55. package/crud/contentModel/fields/titleField.d.ts +2 -0
  56. package/crud/contentModel/fields/titleField.js +58 -0
  57. package/crud/contentModel/fields/titleField.js.map +1 -0
  58. package/crud/contentModel/validate/endingAllowed.d.ts +6 -0
  59. package/crud/contentModel/validate/endingAllowed.js +26 -0
  60. package/crud/contentModel/validate/endingAllowed.js.map +1 -0
  61. package/crud/contentModel/validate/isModelEndingAllowed.d.ts +6 -0
  62. package/crud/contentModel/validate/isModelEndingAllowed.js +24 -0
  63. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -0
  64. package/crud/contentModel/validate/modelId.d.ts +11 -0
  65. package/crud/contentModel/validate/modelId.js +36 -0
  66. package/crud/contentModel/validate/modelId.js.map +1 -0
  67. package/crud/contentModel/validate/pluralApiName.d.ts +7 -0
  68. package/crud/contentModel/validate/pluralApiName.js +24 -0
  69. package/crud/contentModel/validate/pluralApiName.js.map +1 -0
  70. package/crud/contentModel/validate/singularApiName.d.ts +7 -0
  71. package/crud/contentModel/validate/singularApiName.js +24 -0
  72. package/crud/contentModel/validate/singularApiName.js.map +1 -0
  73. package/crud/contentModel/validateLayout.js +0 -8
  74. package/crud/contentModel/validateLayout.js.map +1 -1
  75. package/crud/contentModel/validateModel.d.ts +4 -4
  76. package/crud/contentModel/validateModel.js +6 -11
  77. package/crud/contentModel/validateModel.js.map +1 -1
  78. package/crud/contentModel/validateModelFields.d.ts +4 -4
  79. package/crud/contentModel/validateModelFields.js +97 -126
  80. package/crud/contentModel/validateModelFields.js.map +1 -1
  81. package/crud/contentModel/validation.d.ts +551 -0
  82. package/crud/contentModel/validation.js +145 -0
  83. package/crud/contentModel/validation.js.map +1 -0
  84. package/crud/contentModel.crud.js +357 -391
  85. package/crud/contentModel.crud.js.map +1 -1
  86. package/crud/contentModelGroup/beforeCreate.js +0 -12
  87. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  88. package/crud/contentModelGroup/beforeDelete.js +0 -8
  89. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  90. package/crud/contentModelGroup/beforeUpdate.js +0 -5
  91. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  92. package/crud/contentModelGroup/validation.d.ts +30 -0
  93. package/crud/contentModelGroup/validation.js +34 -0
  94. package/crud/contentModelGroup/validation.js.map +1 -0
  95. package/crud/contentModelGroup.crud.js +177 -221
  96. package/crud/contentModelGroup.crud.js.map +1 -1
  97. package/crud/settings.crud.d.ts +1 -1
  98. package/crud/settings.crud.js +5 -22
  99. package/crud/settings.crud.js.map +1 -1
  100. package/crud/system.crud.js +1 -96
  101. package/crud/system.crud.js.map +1 -1
  102. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
  103. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  104. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +0 -36
  105. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  106. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
  107. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  108. package/fieldConverters/index.js +0 -5
  109. package/fieldConverters/index.js.map +1 -1
  110. package/graphql/buildSchemaPlugins.d.ts +8 -3
  111. package/graphql/buildSchemaPlugins.js +6 -14
  112. package/graphql/buildSchemaPlugins.js.map +1 -1
  113. package/graphql/checkEndpointAccess.d.ts +2 -0
  114. package/graphql/checkEndpointAccess.js +18 -0
  115. package/graphql/checkEndpointAccess.js.map +1 -0
  116. package/graphql/createExecutableSchema.d.ts +6 -0
  117. package/graphql/createExecutableSchema.js +29 -0
  118. package/graphql/createExecutableSchema.js.map +1 -0
  119. package/graphql/createRequestBody.d.ts +2 -0
  120. package/graphql/createRequestBody.js +14 -0
  121. package/graphql/createRequestBody.js.map +1 -0
  122. package/graphql/formatErrorPayload.d.ts +1 -0
  123. package/graphql/formatErrorPayload.js +25 -0
  124. package/graphql/formatErrorPayload.js.map +1 -0
  125. package/graphql/generateSchema.d.ts +8 -0
  126. package/graphql/generateSchema.js +31 -0
  127. package/graphql/generateSchema.js.map +1 -0
  128. package/graphql/getSchema.d.ts +17 -0
  129. package/graphql/getSchema.js +102 -0
  130. package/graphql/getSchema.js.map +1 -0
  131. package/graphql/graphQLHandlerFactory.js +8 -169
  132. package/graphql/graphQLHandlerFactory.js.map +1 -1
  133. package/graphql/handleRequest.d.ts +11 -0
  134. package/graphql/handleRequest.js +81 -0
  135. package/graphql/handleRequest.js.map +1 -0
  136. package/graphql/index.d.ts +1 -3
  137. package/graphql/index.js +2 -46
  138. package/graphql/index.js.map +1 -1
  139. package/graphql/schema/baseContentSchema.d.ts +6 -2
  140. package/graphql/schema/baseContentSchema.js +10 -20
  141. package/graphql/schema/baseContentSchema.js.map +1 -1
  142. package/graphql/schema/baseSchema.d.ts +3 -0
  143. package/graphql/schema/baseSchema.js +53 -0
  144. package/graphql/schema/baseSchema.js.map +1 -0
  145. package/graphql/schema/contentEntries.d.ts +6 -2
  146. package/graphql/schema/contentEntries.js +118 -107
  147. package/graphql/schema/contentEntries.js.map +1 -1
  148. package/graphql/schema/contentModelGroups.d.ts +6 -2
  149. package/graphql/schema/contentModelGroups.js +16 -29
  150. package/graphql/schema/contentModelGroups.js.map +1 -1
  151. package/graphql/schema/contentModels.d.ts +6 -2
  152. package/graphql/schema/contentModels.js +41 -24
  153. package/graphql/schema/contentModels.js.map +1 -1
  154. package/graphql/schema/createFieldResolvers.js +13 -24
  155. package/graphql/schema/createFieldResolvers.js.map +1 -1
  156. package/graphql/schema/createManageResolvers.d.ts +1 -1
  157. package/graphql/schema/createManageResolvers.js +33 -43
  158. package/graphql/schema/createManageResolvers.js.map +1 -1
  159. package/graphql/schema/createManageSDL.d.ts +3 -0
  160. package/graphql/schema/createManageSDL.js +61 -65
  161. package/graphql/schema/createManageSDL.js.map +1 -1
  162. package/graphql/schema/createPreviewResolvers.js +3 -17
  163. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  164. package/graphql/schema/createReadResolvers.js +8 -17
  165. package/graphql/schema/createReadResolvers.js.map +1 -1
  166. package/graphql/schema/createReadSDL.d.ts +3 -0
  167. package/graphql/schema/createReadSDL.js +30 -34
  168. package/graphql/schema/createReadSDL.js.map +1 -1
  169. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
  170. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
  171. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  172. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  173. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  174. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  175. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  176. package/graphql/schema/resolvers/manage/resolveDelete.js +0 -6
  177. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  178. package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
  179. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  180. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  181. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  182. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  183. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  184. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  185. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  186. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  187. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  188. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  189. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  190. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  191. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  192. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  193. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  194. package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
  195. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  196. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  197. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  198. package/graphql/schema/resolvers/read/resolveGet.js +0 -8
  199. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  200. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  201. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  202. package/graphql/schema/schemaPlugins.d.ts +8 -3
  203. package/graphql/schema/schemaPlugins.js +64 -66
  204. package/graphql/schema/schemaPlugins.js.map +1 -1
  205. package/graphql/system.js +55 -87
  206. package/graphql/system.js.map +1 -1
  207. package/graphqlFields/boolean.js +0 -12
  208. package/graphqlFields/boolean.js.map +1 -1
  209. package/graphqlFields/datetime.js +0 -17
  210. package/graphqlFields/datetime.js.map +1 -1
  211. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
  212. package/graphqlFields/dynamicZone/dynamicZoneField.js +27 -33
  213. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  214. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
  215. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  216. package/graphqlFields/dynamicZone/index.js +0 -2
  217. package/graphqlFields/dynamicZone/index.js.map +1 -1
  218. package/graphqlFields/file.js +0 -8
  219. package/graphqlFields/file.js.map +1 -1
  220. package/graphqlFields/helpers.js +0 -10
  221. package/graphqlFields/helpers.js.map +1 -1
  222. package/graphqlFields/index.js +0 -12
  223. package/graphqlFields/index.js.map +1 -1
  224. package/graphqlFields/longText.js +0 -10
  225. package/graphqlFields/longText.js.map +1 -1
  226. package/graphqlFields/number.js +0 -12
  227. package/graphqlFields/number.js.map +1 -1
  228. package/graphqlFields/object.js +22 -39
  229. package/graphqlFields/object.js.map +1 -1
  230. package/graphqlFields/ref.js +64 -66
  231. package/graphqlFields/ref.js.map +1 -1
  232. package/graphqlFields/richText.js +0 -9
  233. package/graphqlFields/richText.js.map +1 -1
  234. package/graphqlFields/text.js +0 -11
  235. package/graphqlFields/text.js.map +1 -1
  236. package/index.d.ts +5 -3
  237. package/index.js +26 -28
  238. package/index.js.map +1 -1
  239. package/modelManager/DefaultCmsModelManager.js +0 -16
  240. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  241. package/modelManager/index.js +0 -4
  242. package/modelManager/index.js.map +1 -1
  243. package/package.json +26 -28
  244. package/parameters/context.js +0 -4
  245. package/parameters/context.js.map +1 -1
  246. package/parameters/header.js +0 -11
  247. package/parameters/header.js.map +1 -1
  248. package/parameters/index.js +0 -8
  249. package/parameters/index.js.map +1 -1
  250. package/parameters/manual.js +1 -8
  251. package/parameters/manual.js.map +1 -1
  252. package/parameters/path.js +0 -11
  253. package/parameters/path.js.map +1 -1
  254. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  255. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  256. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  257. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  258. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  259. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  260. package/plugins/CmsGroupPlugin.js +0 -8
  261. package/plugins/CmsGroupPlugin.js.map +1 -1
  262. package/plugins/CmsModelFieldConverterPlugin.js +0 -5
  263. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  264. package/plugins/CmsModelPlugin.d.ts +19 -3
  265. package/plugins/CmsModelPlugin.js +30 -40
  266. package/plugins/CmsModelPlugin.js.map +1 -1
  267. package/plugins/CmsParametersPlugin.js +0 -7
  268. package/plugins/CmsParametersPlugin.js.map +1 -1
  269. package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
  270. package/plugins/StorageOperationsCmsModelPlugin.js +42 -0
  271. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
  272. package/plugins/StorageTransformPlugin.js +0 -9
  273. package/plugins/StorageTransformPlugin.js.map +1 -1
  274. package/plugins/index.d.ts +3 -0
  275. package/plugins/index.js +33 -10
  276. package/plugins/index.js.map +1 -1
  277. package/storage/default.js +0 -3
  278. package/storage/default.js.map +1 -1
  279. package/storage/object.js +0 -19
  280. package/storage/object.js.map +1 -1
  281. package/types.d.ts +173 -79
  282. package/types.js +23 -73
  283. package/types.js.map +1 -1
  284. package/utils/access.js +11 -25
  285. package/utils/access.js.map +1 -1
  286. package/utils/converters/Converter.js +0 -13
  287. package/utils/converters/Converter.js.map +1 -1
  288. package/utils/converters/ConverterCollection.js +9 -33
  289. package/utils/converters/ConverterCollection.js.map +1 -1
  290. package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
  291. package/utils/converters/valueKeyStorageConverter.js +21 -44
  292. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  293. package/utils/createTypeFromFields.d.ts +1 -0
  294. package/utils/createTypeFromFields.js +11 -20
  295. package/utils/createTypeFromFields.js.map +1 -1
  296. package/utils/createTypeName.d.ts +0 -2
  297. package/utils/createTypeName.js +2 -19
  298. package/utils/createTypeName.js.map +1 -1
  299. package/utils/entryStorage.js +10 -26
  300. package/utils/entryStorage.js.map +1 -1
  301. package/utils/filterAsync.js +0 -5
  302. package/utils/filterAsync.js.map +1 -1
  303. package/utils/getBaseFieldType.js +0 -2
  304. package/utils/getBaseFieldType.js.map +1 -1
  305. package/utils/getEntryDescription.d.ts +2 -0
  306. package/utils/getEntryDescription.js +17 -0
  307. package/utils/getEntryDescription.js.map +1 -0
  308. package/utils/getEntryImage.d.ts +2 -0
  309. package/utils/getEntryImage.js +17 -0
  310. package/utils/getEntryImage.js.map +1 -0
  311. package/utils/getEntryTitle.js +0 -9
  312. package/utils/getEntryTitle.js.map +1 -1
  313. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  314. package/utils/getSchemaFromFieldPlugins.js +23 -19
  315. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  316. package/utils/incrementEntryIdVersion.d.ts +5 -0
  317. package/utils/incrementEntryIdVersion.js +29 -0
  318. package/utils/incrementEntryIdVersion.js.map +1 -0
  319. package/utils/ownership.d.ts +3 -3
  320. package/utils/ownership.js +0 -8
  321. package/utils/ownership.js.map +1 -1
  322. package/utils/permissions.js +8 -23
  323. package/utils/permissions.js.map +1 -1
  324. package/utils/renderFields.d.ts +2 -1
  325. package/utils/renderFields.js +8 -10
  326. package/utils/renderFields.js.map +1 -1
  327. package/utils/renderGetFilterFields.js +0 -13
  328. package/utils/renderGetFilterFields.js.map +1 -1
  329. package/utils/renderInputFields.d.ts +2 -1
  330. package/utils/renderInputFields.js +4 -9
  331. package/utils/renderInputFields.js.map +1 -1
  332. package/utils/renderListFilterFields.js +1 -10
  333. package/utils/renderListFilterFields.js.map +1 -1
  334. package/utils/renderSortEnum.d.ts +7 -4
  335. package/utils/renderSortEnum.js +19 -11
  336. package/utils/renderSortEnum.js.map +1 -1
  337. package/utils/toSlug.js +0 -4
  338. package/utils/toSlug.js.map +1 -1
  339. package/validators/dateGte.js +0 -7
  340. package/validators/dateGte.js.map +1 -1
  341. package/validators/dateLte.js +0 -7
  342. package/validators/dateLte.js.map +1 -1
  343. package/validators/dynamicZone.js +0 -4
  344. package/validators/dynamicZone.js.map +1 -1
  345. package/validators/gte.js +0 -8
  346. package/validators/gte.js.map +1 -1
  347. package/validators/in.js +0 -8
  348. package/validators/in.js.map +1 -1
  349. package/validators/index.js +0 -16
  350. package/validators/index.js.map +1 -1
  351. package/validators/lte.js +0 -8
  352. package/validators/lte.js.map +1 -1
  353. package/validators/maxLength.js +0 -8
  354. package/validators/maxLength.js.map +1 -1
  355. package/validators/minLength.js +0 -8
  356. package/validators/minLength.js.map +1 -1
  357. package/validators/pattern.js +0 -9
  358. package/validators/pattern.js.map +1 -1
  359. package/validators/patternPlugins/email.js +0 -2
  360. package/validators/patternPlugins/email.js.map +1 -1
  361. package/validators/patternPlugins/index.js +0 -8
  362. package/validators/patternPlugins/index.js.map +1 -1
  363. package/validators/patternPlugins/lowerCase.js +0 -2
  364. package/validators/patternPlugins/lowerCase.js.map +1 -1
  365. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  366. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  367. package/validators/patternPlugins/upperCase.js +0 -2
  368. package/validators/patternPlugins/upperCase.js.map +1 -1
  369. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  370. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  371. package/validators/patternPlugins/url.js +0 -2
  372. package/validators/patternPlugins/url.js.map +1 -1
  373. package/validators/required.js +0 -5
  374. package/validators/required.js.map +1 -1
  375. package/validators/timeGte.js +0 -8
  376. package/validators/timeGte.js.map +1 -1
  377. package/validators/timeLte.js +0 -8
  378. package/validators/timeLte.js.map +1 -1
  379. package/validators/unique.js +0 -7
  380. package/validators/unique.js.map +1 -1
  381. package/crud/index.d.ts +0 -6
  382. package/crud/index.js +0 -85
  383. package/crud/index.js.map +0 -1
  384. package/utils/filterModelFields.d.ts +0 -16
  385. package/utils/filterModelFields.js +0 -77
  386. package/utils/filterModelFields.js.map +0 -1
@@ -1,23 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createObjectField = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
9
+ var _error = _interopRequireDefault(require("@webiny/error"));
12
10
  var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
13
-
14
11
  var _helpers = require("./helpers");
15
-
16
12
  var _createTypeFromFields = require("../utils/createTypeFromFields");
17
-
18
13
  const createChildTypeDefs = params => {
19
14
  var _field$settings, _field$settings2;
20
-
21
15
  const {
22
16
  field,
23
17
  plugins,
@@ -32,13 +26,10 @@ const createChildTypeDefs = params => {
32
26
  });
33
27
  const filters = fields.map(child => {
34
28
  var _child$settings;
35
-
36
29
  const createListFilters = plugins[child.type][endpointType].createListFilters;
37
-
38
30
  if (!createListFilters) {
39
31
  return null;
40
32
  }
41
-
42
33
  const filters = createListFilters({
43
34
  model,
44
35
  field: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
@@ -48,35 +39,30 @@ const createChildTypeDefs = params => {
48
39
  }),
49
40
  plugins
50
41
  });
51
-
52
42
  if (!filters) {
53
43
  return null;
54
44
  }
55
-
56
45
  return filters;
57
46
  }).filter(Boolean).join("\n");
58
47
  return `input ${typeName}WhereInput {
59
- ${filters}
48
+ ${filters || "_empty: String"}
60
49
  }`;
61
50
  };
62
-
63
51
  const createTypeName = params => {
64
52
  const {
65
53
  model,
66
54
  parents = [],
67
55
  field
68
56
  } = params;
69
- return [model.modelId].concat(parents).concat([field.fieldId]).filter(Boolean).map(id => {
57
+ return [model.singularApiName].concat(parents).concat([field.fieldId]).filter(Boolean).map(id => {
70
58
  return (0, _upperFirst.default)(id);
71
59
  }).join("_");
72
60
  };
73
-
74
61
  const createListFilters = ({
75
62
  field,
76
63
  model
77
64
  }) => {
78
65
  var _field$settings3;
79
-
80
66
  const typeName = createTypeName({
81
67
  model,
82
68
  field,
@@ -84,7 +70,6 @@ const createListFilters = ({
84
70
  });
85
71
  return `${field.fieldId}: ${typeName}WhereInput`;
86
72
  };
87
-
88
73
  const createObjectField = () => {
89
74
  return {
90
75
  name: "cms-model-field-to-graphql-object",
@@ -94,26 +79,38 @@ const createObjectField = () => {
94
79
  isSearchable: false,
95
80
  validateChildFields: params => {
96
81
  var _field$settings4, _originalField$settin;
97
-
98
82
  const {
99
83
  field,
100
84
  originalField,
101
85
  validate
102
86
  } = params;
87
+ const fields = ((_field$settings4 = field.settings) === null || _field$settings4 === void 0 ? void 0 : _field$settings4.fields) || [];
88
+ /**
89
+ * At the moment we do not allow dynamic zone fields inside the object field.
90
+ */
91
+ const hasDynamicZone = fields.some(f => f.type === "dynamicZone");
92
+ if (hasDynamicZone) {
93
+ throw new _error.default("Dynamic zones cannot be used inside of an object field.", "DYNAMIC_ZONE_INSIDE_OBJECT", {
94
+ id: field.id,
95
+ fieldId: field.fieldId,
96
+ fieldLabel: field.label
97
+ });
98
+ }
103
99
  validate({
104
- fields: ((_field$settings4 = field.settings) === null || _field$settings4 === void 0 ? void 0 : _field$settings4.fields) || [],
100
+ fields,
105
101
  originalFields: (originalField === null || originalField === void 0 ? void 0 : (_originalField$settin = originalField.settings) === null || _originalField$settin === void 0 ? void 0 : _originalField$settin.fields) || []
106
102
  });
107
103
  },
108
104
  read: {
109
105
  createTypeField({
110
106
  field,
107
+ models,
111
108
  model,
112
109
  fieldTypePlugins
113
110
  }) {
114
111
  var _field$settings5, _field$settings6;
115
-
116
112
  const result = (0, _createTypeFromFields.createTypeFromFields)({
113
+ models,
117
114
  typeOfType: "type",
118
115
  model,
119
116
  type: "read",
@@ -125,11 +122,9 @@ const createObjectField = () => {
125
122
  fields: ((_field$settings6 = field.settings) === null || _field$settings6 === void 0 ? void 0 : _field$settings6.fields) || [],
126
123
  fieldTypePlugins
127
124
  });
128
-
129
125
  if (!result) {
130
126
  return null;
131
127
  }
132
-
133
128
  const {
134
129
  fieldType,
135
130
  typeDefs
@@ -145,18 +140,15 @@ const createObjectField = () => {
145
140
  typeDefs: `${typeDefs}${childTypeDefs}`
146
141
  };
147
142
  },
148
-
149
143
  createResolver({
150
144
  field,
151
145
  createFieldResolvers,
152
146
  graphQLType
153
147
  }) {
154
148
  var _field$settings7;
155
-
156
149
  if (!((_field$settings7 = field.settings) !== null && _field$settings7 !== void 0 && _field$settings7.fields) || field.settings.fields.length === 0) {
157
150
  return false;
158
151
  }
159
-
160
152
  const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
161
153
  const typeResolvers = createFieldResolvers({
162
154
  graphQLType: fieldType,
@@ -167,19 +159,19 @@ const createObjectField = () => {
167
159
  typeResolvers: typeResolvers || {}
168
160
  };
169
161
  },
170
-
171
162
  createListFilters
172
163
  },
173
164
  manage: {
174
165
  createTypeField({
166
+ models,
175
167
  model,
176
168
  field,
177
169
  fieldTypePlugins
178
170
  }) {
179
171
  var _field$settings8, _field$settings9;
180
-
181
172
  const result = (0, _createTypeFromFields.createTypeFromFields)({
182
173
  typeOfType: "type",
174
+ models,
183
175
  model,
184
176
  type: "manage",
185
177
  typeNamePrefix: createTypeName({
@@ -190,11 +182,9 @@ const createObjectField = () => {
190
182
  fields: ((_field$settings9 = field.settings) === null || _field$settings9 === void 0 ? void 0 : _field$settings9.fields) || [],
191
183
  fieldTypePlugins
192
184
  });
193
-
194
185
  if (!result) {
195
186
  return null;
196
187
  }
197
-
198
188
  const {
199
189
  fieldType,
200
190
  typeDefs
@@ -210,16 +200,16 @@ const createObjectField = () => {
210
200
  typeDefs: `${typeDefs}${childTypeDefs}`
211
201
  };
212
202
  },
213
-
214
203
  createInputField({
204
+ models,
215
205
  model,
216
206
  field,
217
207
  fieldTypePlugins
218
208
  }) {
219
209
  var _field$settings10, _field$settings11;
220
-
221
210
  const result = (0, _createTypeFromFields.createTypeFromFields)({
222
211
  typeOfType: "input",
212
+ models,
223
213
  model,
224
214
  type: "manage",
225
215
  typeNamePrefix: createTypeName({
@@ -230,11 +220,9 @@ const createObjectField = () => {
230
220
  fields: ((_field$settings11 = field.settings) === null || _field$settings11 === void 0 ? void 0 : _field$settings11.fields) || [],
231
221
  fieldTypePlugins
232
222
  });
233
-
234
223
  if (!result) {
235
224
  return null;
236
225
  }
237
-
238
226
  const {
239
227
  fieldType,
240
228
  typeDefs
@@ -244,18 +232,15 @@ const createObjectField = () => {
244
232
  typeDefs
245
233
  };
246
234
  },
247
-
248
235
  createResolver({
249
236
  graphQLType,
250
237
  field,
251
238
  createFieldResolvers
252
239
  }) {
253
240
  var _field$settings12;
254
-
255
241
  if (!((_field$settings12 = field.settings) !== null && _field$settings12 !== void 0 && _field$settings12.fields) || field.settings.fields.length === 0) {
256
242
  return false;
257
243
  }
258
-
259
244
  const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
260
245
  const typeResolvers = createFieldResolvers({
261
246
  graphQLType: fieldType,
@@ -266,10 +251,8 @@ const createObjectField = () => {
266
251
  typeResolvers: typeResolvers || {}
267
252
  };
268
253
  },
269
-
270
254
  createListFilters
271
255
  }
272
256
  };
273
257
  };
274
-
275
258
  exports.createObjectField = createObjectField;
@@ -1 +1 @@
1
- {"version":3,"names":["createChildTypeDefs","params","field","plugins","model","endpointType","fields","settings","typeName","createTypeName","parents","filters","map","child","createListFilters","type","concat","fieldId","filter","Boolean","join","modelId","id","lodashUpperFirst","createObjectField","name","fieldType","isSortable","isSearchable","validateChildFields","originalField","validate","originalFields","read","createTypeField","fieldTypePlugins","result","createTypeFromFields","typeOfType","typeNamePrefix","typeDefs","childTypeDefs","multipleValues","createResolver","createFieldResolvers","graphQLType","length","upperFirst","typeResolvers","resolver","manage","createInputField","attachRequiredFieldValue"],"sources":["object.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst\";\nimport {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { attachRequiredFieldValue } from \"./helpers\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\n\ninterface AttachTypeDefinitionsParams {\n model: CmsModel;\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}\n }`;\n};\n\ninterface CreateTypeNameParams {\n model: CmsModel;\n parents?: string[];\n field: CmsModelField;\n}\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.modelId]\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: CmsModel;\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, model, fieldTypePlugins }) {\n const result = createTypeFromFields({\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({ model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"type\",\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}${childTypeDefs}`\n };\n },\n createInputField({ model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"input\",\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: attachRequiredFieldValue(\n `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,\n field\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":["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","hasDynamicZone","some","f","WebinyError","fieldLabel","label","originalFields","read","createTypeField","models","fieldTypePlugins","result","createTypeFromFields","typeOfType","typeNamePrefix","typeDefs","childTypeDefs","multipleValues","createResolver","createFieldResolvers","graphQLType","length","upperFirst","typeResolvers","resolver","manage","createInputField","attachRequiredFieldValue"],"sources":["object.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport upperFirst from \"lodash/upperFirst\";\nimport {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { attachRequiredFieldValue } from \"./helpers\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\n\ninterface AttachTypeDefinitionsParams {\n model: CmsModel;\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\ninterface CreateTypeNameParams {\n model: CmsModel;\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: CmsModel;\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 const fields = field.settings?.fields || [];\n /**\n * At the moment we do not allow dynamic zone fields inside the object field.\n */\n const hasDynamicZone = fields.some(f => f.type === \"dynamicZone\");\n if (hasDynamicZone) {\n throw new WebinyError(\n \"Dynamic zones cannot be used inside of an object field.\",\n \"DYNAMIC_ZONE_INSIDE_OBJECT\",\n {\n id: field.id,\n fieldId: field.fieldId,\n fieldLabel: field.label\n }\n );\n }\n\n validate({\n 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}${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: attachRequiredFieldValue(\n `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,\n field\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,24 +1,18 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.createRefField = void 0;
9
-
10
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
9
+ var _error = _interopRequireDefault(require("@webiny/error"));
12
10
  var _createTypeName = require("../utils/createTypeName");
13
-
14
11
  var _utils = require("@webiny/utils");
15
-
16
12
  var _helpers = require("./helpers");
17
-
18
13
  const createUnionTypeName = (model, field) => {
19
- return `${(0, _createTypeName.createReadTypeName)(model.modelId)}_${(0, _createTypeName.createReadTypeName)(field.fieldId)}`;
14
+ return `${model.singularApiName}_${(0, _createTypeName.createTypeName)(field.fieldId)}`;
20
15
  };
21
-
22
16
  const createListFilters = ({
23
17
  field
24
18
  }) => {
@@ -26,7 +20,6 @@ const createListFilters = ({
26
20
  ${field.fieldId}: RefFieldWhereInput
27
21
  `;
28
22
  };
29
-
30
23
  const createFilteringTypeDef = () => {
31
24
  return `
32
25
  input RefFieldWhereInput {
@@ -41,7 +34,6 @@ const createFilteringTypeDef = () => {
41
34
  }
42
35
  `;
43
36
  };
44
-
45
37
  const appendTypename = (entries, typename) => {
46
38
  return entries.map(item => {
47
39
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
@@ -53,18 +45,30 @@ const appendTypename = (entries, typename) => {
53
45
  * We cast settings.models as object to have modelId because internally we know that it is so.
54
46
  * Internal stuff so we are sure that settings.models contains what we require.
55
47
  */
56
-
57
-
58
48
  const getFieldModels = field => {
59
49
  if (!field.settings || Array.isArray(field.settings.models) === false) {
60
50
  return [];
61
51
  }
62
-
63
52
  return field.settings.models;
64
53
  };
65
-
66
54
  const modelIdToTypeName = new Map();
67
-
55
+ const getModel = params => {
56
+ const {
57
+ models,
58
+ modelId
59
+ } = params;
60
+ const model = models.find(item => item.modelId === modelId);
61
+ if (model) {
62
+ return model;
63
+ }
64
+ throw new _error.default(`Could not find model with ID "${modelId}" in the list of models.`, "MODEL_NOT_FOUND", {
65
+ modelId
66
+ });
67
+ };
68
+ const getModelSingularApiName = params => {
69
+ const model = getModel(params);
70
+ return model.singularApiName;
71
+ };
68
72
  const createRefField = () => {
69
73
  return {
70
74
  name: "cms-model-field-to-graphql-ref",
@@ -75,122 +79,123 @@ const createRefField = () => {
75
79
  read: {
76
80
  createTypeField({
77
81
  model,
78
- field
82
+ field,
83
+ models
79
84
  }) {
80
85
  var _field$settings;
81
-
82
- const models = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.models) || [];
83
- const gqlType = models.length > 1 ? createUnionTypeName(model, field) : (0, _createTypeName.createReadTypeName)(models[0].modelId);
84
- const typeDefs = models.length > 1 ? `union ${gqlType} = ${getFieldModels(field).map(({
86
+ const fieldModels = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.models) || [];
87
+ const gqlType = fieldModels.length > 1 ? createUnionTypeName(model, field) : getModelSingularApiName({
88
+ models,
89
+ modelId: fieldModels[0].modelId
90
+ });
91
+ const typeDefs = fieldModels.length > 1 ? `union ${gqlType} = ${getFieldModels(field).map(({
85
92
  modelId
86
- }) => (0, _createTypeName.createReadTypeName)(modelId)).join(" | ")}` : "";
93
+ }) => getModelSingularApiName({
94
+ models,
95
+ modelId
96
+ })).join(" | ")}` : "";
87
97
  return {
88
- fields: field.fieldId + `: ${field.multipleValues ? `[${gqlType}]` : gqlType}`,
98
+ fields: field.fieldId + `(populate: Boolean = true): ${field.multipleValues ? `[${gqlType}!]` : gqlType}`,
89
99
  typeDefs
90
100
  };
91
101
  },
92
-
93
102
  /**
94
103
  * TS is complaining about mixed types for createResolver.
95
104
  * TODO @ts-refactor @pavel Maybe we should have a single createResolver method?
96
105
  */
97
106
  // @ts-ignore
98
- createResolver(params) {
107
+ createResolver({
108
+ field,
109
+ models
110
+ }) {
99
111
  var _field$settings2;
100
-
101
- const {
102
- field
103
- } = params; // Create a map of model types and corresponding modelIds so resolvers don't need to perform the lookup.
104
-
105
- const models = ((_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.models) || [];
106
-
107
- for (const item of models) {
108
- modelIdToTypeName.set(item.modelId, (0, _createTypeName.createReadTypeName)(item.modelId));
112
+ // Create a map of model types and corresponding modelIds so resolvers don't need to perform the lookup.
113
+ const fieldModels = ((_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.models) || [];
114
+ for (const item of fieldModels) {
115
+ modelIdToTypeName.set(item.modelId, getModelSingularApiName({
116
+ models,
117
+ modelId: item.modelId
118
+ }));
109
119
  }
110
-
111
- return async (parent, _, context) => {
120
+ return async (parent, args, context) => {
112
121
  const {
113
122
  cms
114
- } = context; // Get field value for this entry
123
+ } = context;
115
124
 
125
+ // Get field value for this entry
116
126
  const initialValue = parent[field.fieldId];
117
-
118
127
  if (!initialValue) {
119
128
  return null;
120
129
  }
121
-
130
+ if (args.populate === false) {
131
+ return initialValue;
132
+ }
122
133
  if (field.multipleValues) {
123
134
  /**
124
135
  * We cast because value really can be array and single value.
125
136
  * At this point, we are 99% sure that it is an array (+ we check for it)
126
137
  */
127
138
  const value = initialValue;
128
-
129
139
  if (Array.isArray(value) === false || value.length === 0) {
130
140
  return [];
131
141
  }
132
-
133
142
  const entriesByModel = value.reduce((collection, ref) => {
134
143
  if (!collection[ref.modelId]) {
135
144
  collection[ref.modelId] = [];
136
145
  } else if (collection[ref.modelId].includes(ref.entryId) === true) {
137
146
  return collection;
138
147
  }
139
-
140
148
  collection[ref.modelId].push(ref.entryId);
141
149
  return collection;
142
150
  }, {});
143
151
  const getters = Object.keys(entriesByModel).map(async modelId => {
144
- const idList = entriesByModel[modelId]; // Get model manager, to get access to CRUD methods
145
-
152
+ const idList = entriesByModel[modelId];
153
+ // Get model manager, to get access to CRUD methods
146
154
  const model = await cms.getModelManager(modelId);
147
- let entries; // `read` API works with `published` data
148
-
155
+ let entries;
156
+ // `read` API works with `published` data
149
157
  if (cms.READ) {
150
158
  entries = await model.getPublishedByIds(idList);
151
- } // `preview` and `manage` with `latest` data
159
+ }
160
+ // `preview` and `manage` with `latest` data
152
161
  else {
153
162
  entries = await model.getLatestByIds(idList);
154
163
  }
155
-
156
164
  return appendTypename(entries, modelIdToTypeName.get(modelId));
157
165
  });
158
166
  return await Promise.all(getters).then(results => results.reduce((result, item) => result.concat(item), []));
159
167
  }
168
+ const value = initialValue;
160
169
 
161
- const value = initialValue; // Get model manager, to get access to CRUD methods
162
-
163
- const model = await cms.getModelManager(value.modelId);
164
- let revisions; // `read` API works with `published` data
165
-
170
+ // Get model manager, to get access to CRUD methods
171
+ const model = await cms.getEntryManager(value.modelId);
172
+ let revisions;
173
+ // `read` API works with `published` data
166
174
  if (cms.READ) {
167
175
  revisions = await model.getPublishedByIds([value.entryId]);
168
- } // `preview` API works with `latest` data
176
+ }
177
+ // `preview` API works with `latest` data
169
178
  else {
170
179
  revisions = await model.getLatestByIds([value.entryId]);
171
180
  }
181
+
172
182
  /**
173
183
  * If there are no revisions we must return null.
174
184
  */
175
-
176
-
177
185
  if (!revisions || revisions.length === 0) {
178
186
  return null;
179
187
  }
180
-
181
188
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, revisions[0]), {}, {
182
189
  __typename: modelIdToTypeName.get(value.modelId)
183
190
  });
184
191
  };
185
192
  },
186
-
187
193
  createSchema() {
188
194
  return {
189
195
  typeDefs: createFilteringTypeDef(),
190
196
  resolvers: {}
191
197
  };
192
198
  },
193
-
194
199
  createListFilters
195
200
  },
196
201
  manage: {
@@ -201,9 +206,7 @@ const createRefField = () => {
201
206
  * See: `packages/api-headless-cms/src/crud/contentEntry/referenceFieldsMapping.ts`
202
207
  */
203
208
  return {
204
- typeDefs:
205
- /* GraphQL */
206
- `
209
+ typeDefs: /* GraphQL */`
207
210
  type RefField {
208
211
  modelId: String!
209
212
  entryId: ID!
@@ -232,26 +235,21 @@ const createRefField = () => {
232
235
  }
233
236
  };
234
237
  },
235
-
236
238
  createTypeField({
237
239
  field
238
240
  }) {
239
241
  if (field.multipleValues) {
240
242
  return `${field.fieldId}: [RefField!]`;
241
243
  }
242
-
243
244
  return `${field.fieldId}: RefField`;
244
245
  },
245
-
246
246
  createInputField({
247
247
  field
248
248
  }) {
249
249
  return (0, _helpers.createGraphQLInputField)(field, "RefFieldInput");
250
250
  },
251
-
252
251
  createListFilters
253
252
  }
254
253
  };
255
254
  };
256
-
257
255
  exports.createRefField = createRefField;