@webiny/api-headless-cms 0.0.0-unstable.97a151f74d → 0.0.0-unstable.99666aeb00

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 (457) hide show
  1. package/constants.d.ts +1 -0
  2. package/constants.js +8 -0
  3. package/constants.js.map +1 -0
  4. package/context.d.ts +5 -2
  5. package/context.js +94 -24
  6. package/context.js.map +1 -1
  7. package/crud/contentEntry/afterDelete.js +0 -5
  8. package/crud/contentEntry/afterDelete.js.map +1 -1
  9. package/crud/contentEntry/beforeCreate.js +0 -3
  10. package/crud/contentEntry/beforeCreate.js.map +1 -1
  11. package/crud/contentEntry/beforeUpdate.js +0 -3
  12. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  13. package/crud/contentEntry/entryDataValidation.js +1 -40
  14. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  15. package/crud/contentEntry/markLockedFields.d.ts +1 -1
  16. package/crud/contentEntry/markLockedFields.js +15 -28
  17. package/crud/contentEntry/markLockedFields.js.map +1 -1
  18. package/crud/contentEntry/referenceFieldsMapping.js +39 -66
  19. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  20. package/crud/contentEntry/searchableFields.js +1 -12
  21. package/crud/contentEntry/searchableFields.js.map +1 -1
  22. package/crud/contentEntry.crud.d.ts +12 -5
  23. package/crud/contentEntry.crud.js +1166 -917
  24. package/crud/contentEntry.crud.js.map +1 -1
  25. package/crud/contentModel/afterCreate.js +0 -2
  26. package/crud/contentModel/afterCreate.js.map +1 -1
  27. package/crud/contentModel/afterCreateFrom.js +0 -2
  28. package/crud/contentModel/afterCreateFrom.js.map +1 -1
  29. package/crud/contentModel/afterDelete.js +0 -2
  30. package/crud/contentModel/afterDelete.js.map +1 -1
  31. package/crud/contentModel/afterUpdate.js +0 -2
  32. package/crud/contentModel/afterUpdate.js.map +1 -1
  33. package/crud/contentModel/beforeCreate.d.ts +2 -3
  34. package/crud/contentModel/beforeCreate.js +43 -109
  35. package/crud/contentModel/beforeCreate.js.map +1 -1
  36. package/crud/contentModel/beforeDelete.d.ts +1 -1
  37. package/crud/contentModel/beforeDelete.js +1 -15
  38. package/crud/contentModel/beforeDelete.js.map +1 -1
  39. package/crud/contentModel/beforeUpdate.d.ts +2 -4
  40. package/crud/contentModel/beforeUpdate.js +33 -10
  41. package/crud/contentModel/beforeUpdate.js.map +1 -1
  42. package/crud/contentModel/compatibility/modelApiName.d.ts +3 -0
  43. package/crud/contentModel/compatibility/modelApiName.js +24 -0
  44. package/crud/contentModel/compatibility/modelApiName.js.map +1 -0
  45. package/crud/contentModel/contentModelManagerFactory.js +0 -7
  46. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  47. package/crud/contentModel/createFieldStorageId.js +0 -3
  48. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  49. package/crud/contentModel/defaultFields.d.ts +5 -0
  50. package/crud/contentModel/defaultFields.js +58 -0
  51. package/crud/contentModel/defaultFields.js.map +1 -0
  52. package/crud/contentModel/fields/descriptionField.d.ts +2 -0
  53. package/crud/contentModel/fields/descriptionField.js +42 -0
  54. package/crud/contentModel/fields/descriptionField.js.map +1 -0
  55. package/crud/contentModel/fields/imageField.d.ts +2 -0
  56. package/crud/contentModel/fields/imageField.js +46 -0
  57. package/crud/contentModel/fields/imageField.js.map +1 -0
  58. package/crud/contentModel/fields/titleField.d.ts +2 -0
  59. package/crud/contentModel/fields/titleField.js +58 -0
  60. package/crud/contentModel/fields/titleField.js.map +1 -0
  61. package/crud/contentModel/validate/endingAllowed.d.ts +6 -0
  62. package/crud/contentModel/validate/endingAllowed.js +26 -0
  63. package/crud/contentModel/validate/endingAllowed.js.map +1 -0
  64. package/crud/contentModel/validate/isModelEndingAllowed.d.ts +6 -0
  65. package/crud/contentModel/validate/isModelEndingAllowed.js +24 -0
  66. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -0
  67. package/crud/contentModel/validate/modelId.d.ts +11 -0
  68. package/crud/contentModel/validate/modelId.js +36 -0
  69. package/crud/contentModel/validate/modelId.js.map +1 -0
  70. package/crud/contentModel/validate/pluralApiName.d.ts +7 -0
  71. package/crud/contentModel/validate/pluralApiName.js +24 -0
  72. package/crud/contentModel/validate/pluralApiName.js.map +1 -0
  73. package/crud/contentModel/validate/singularApiName.d.ts +7 -0
  74. package/crud/contentModel/validate/singularApiName.js +24 -0
  75. package/crud/contentModel/validate/singularApiName.js.map +1 -0
  76. package/crud/contentModel/validateLayout.js +0 -8
  77. package/crud/contentModel/validateLayout.js.map +1 -1
  78. package/crud/contentModel/validateModel.d.ts +4 -4
  79. package/crud/contentModel/validateModel.js +6 -11
  80. package/crud/contentModel/validateModel.js.map +1 -1
  81. package/crud/contentModel/validateModelFields.d.ts +4 -4
  82. package/crud/contentModel/validateModelFields.js +120 -145
  83. package/crud/contentModel/validateModelFields.js.map +1 -1
  84. package/crud/contentModel/validation.d.ts +551 -0
  85. package/crud/contentModel/validation.js +145 -0
  86. package/crud/contentModel/validation.js.map +1 -0
  87. package/crud/contentModel.crud.d.ts +2 -0
  88. package/crud/contentModel.crud.js +380 -381
  89. package/crud/contentModel.crud.js.map +1 -1
  90. package/crud/contentModelGroup/beforeCreate.js +0 -12
  91. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  92. package/crud/contentModelGroup/beforeDelete.js +0 -8
  93. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  94. package/crud/contentModelGroup/beforeUpdate.js +0 -5
  95. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  96. package/crud/contentModelGroup/validation.d.ts +30 -0
  97. package/crud/contentModelGroup/validation.js +34 -0
  98. package/crud/contentModelGroup/validation.js.map +1 -0
  99. package/crud/contentModelGroup.crud.d.ts +2 -0
  100. package/crud/contentModelGroup.crud.js +223 -222
  101. package/crud/contentModelGroup.crud.js.map +1 -1
  102. package/crud/settings.crud.d.ts +3 -1
  103. package/crud/settings.crud.js +7 -28
  104. package/crud/settings.crud.js.map +1 -1
  105. package/crud/system.crud.js +1 -96
  106. package/crud/system.crud.js.map +1 -1
  107. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +0 -13
  108. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  109. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.d.ts +11 -0
  110. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +203 -0
  111. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -0
  112. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +0 -53
  113. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  114. package/fieldConverters/index.d.ts +2 -1
  115. package/fieldConverters/index.js +2 -5
  116. package/fieldConverters/index.js.map +1 -1
  117. package/graphql/buildSchemaPlugins.d.ts +8 -3
  118. package/graphql/buildSchemaPlugins.js +6 -14
  119. package/graphql/buildSchemaPlugins.js.map +1 -1
  120. package/graphql/checkEndpointAccess.d.ts +2 -0
  121. package/graphql/checkEndpointAccess.js +18 -0
  122. package/graphql/checkEndpointAccess.js.map +1 -0
  123. package/graphql/createExecutableSchema.d.ts +6 -0
  124. package/graphql/createExecutableSchema.js +29 -0
  125. package/graphql/createExecutableSchema.js.map +1 -0
  126. package/graphql/createRequestBody.d.ts +2 -0
  127. package/graphql/createRequestBody.js +14 -0
  128. package/graphql/createRequestBody.js.map +1 -0
  129. package/graphql/formatErrorPayload.d.ts +1 -0
  130. package/graphql/formatErrorPayload.js +25 -0
  131. package/graphql/formatErrorPayload.js.map +1 -0
  132. package/graphql/generateSchema.d.ts +8 -0
  133. package/graphql/generateSchema.js +31 -0
  134. package/graphql/generateSchema.js.map +1 -0
  135. package/graphql/getSchema.d.ts +17 -0
  136. package/graphql/getSchema.js +102 -0
  137. package/graphql/getSchema.js.map +1 -0
  138. package/graphql/graphQLHandlerFactory.js +8 -169
  139. package/graphql/graphQLHandlerFactory.js.map +1 -1
  140. package/graphql/handleRequest.d.ts +11 -0
  141. package/graphql/handleRequest.js +81 -0
  142. package/graphql/handleRequest.js.map +1 -0
  143. package/graphql/index.d.ts +1 -3
  144. package/graphql/index.js +2 -46
  145. package/graphql/index.js.map +1 -1
  146. package/graphql/schema/baseContentSchema.d.ts +6 -2
  147. package/graphql/schema/baseContentSchema.js +10 -20
  148. package/graphql/schema/baseContentSchema.js.map +1 -1
  149. package/graphql/schema/baseSchema.d.ts +3 -0
  150. package/graphql/schema/baseSchema.js +84 -0
  151. package/graphql/schema/baseSchema.js.map +1 -0
  152. package/graphql/schema/contentEntries.d.ts +6 -2
  153. package/graphql/schema/contentEntries.js +123 -107
  154. package/graphql/schema/contentEntries.js.map +1 -1
  155. package/graphql/schema/contentModelGroups.d.ts +6 -2
  156. package/graphql/schema/contentModelGroups.js +16 -29
  157. package/graphql/schema/contentModelGroups.js.map +1 -1
  158. package/graphql/schema/contentModels.d.ts +6 -2
  159. package/graphql/schema/contentModels.js +46 -27
  160. package/graphql/schema/contentModels.js.map +1 -1
  161. package/graphql/schema/createFieldResolvers.d.ts +1 -1
  162. package/graphql/schema/createFieldResolvers.js +19 -36
  163. package/graphql/schema/createFieldResolvers.js.map +1 -1
  164. package/graphql/schema/createFieldTypePluginRecords.d.ts +3 -0
  165. package/graphql/schema/createFieldTypePluginRecords.js +13 -0
  166. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -0
  167. package/graphql/schema/createManageResolvers.d.ts +1 -1
  168. package/graphql/schema/createManageResolvers.js +47 -43
  169. package/graphql/schema/createManageResolvers.js.map +1 -1
  170. package/graphql/schema/createManageSDL.d.ts +3 -0
  171. package/graphql/schema/createManageSDL.js +96 -77
  172. package/graphql/schema/createManageSDL.js.map +1 -1
  173. package/graphql/schema/createPreviewResolvers.js +3 -17
  174. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  175. package/graphql/schema/createReadResolvers.js +8 -17
  176. package/graphql/schema/createReadResolvers.js.map +1 -1
  177. package/graphql/schema/createReadSDL.d.ts +3 -0
  178. package/graphql/schema/createReadSDL.js +47 -47
  179. package/graphql/schema/createReadSDL.js.map +1 -1
  180. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +3 -2
  181. package/graphql/schema/resolvers/commonFieldResolvers.js +2 -3
  182. package/graphql/schema/resolvers/commonFieldResolvers.js.map +1 -1
  183. package/graphql/schema/resolvers/manage/resolveCreate.js +0 -3
  184. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  185. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +0 -3
  186. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  187. package/graphql/schema/resolvers/manage/resolveDelete.d.ts +2 -1
  188. package/graphql/schema/resolvers/manage/resolveDelete.js +13 -9
  189. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  190. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.d.ts +7 -0
  191. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +20 -0
  192. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -0
  193. package/graphql/schema/resolvers/manage/resolveGet.js +0 -16
  194. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  195. package/graphql/schema/resolvers/manage/resolveGetByIds.js +0 -3
  196. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  197. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +0 -3
  198. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  199. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.d.ts +4 -0
  200. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +18 -0
  201. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -0
  202. package/graphql/schema/resolvers/manage/resolveList.js +0 -3
  203. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  204. package/graphql/schema/resolvers/manage/resolveMove.d.ts +8 -0
  205. package/graphql/schema/resolvers/manage/resolveMove.js +30 -0
  206. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -0
  207. package/graphql/schema/resolvers/manage/resolvePublish.js +0 -3
  208. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  209. package/graphql/schema/resolvers/manage/resolveRepublish.js +0 -3
  210. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  211. package/graphql/schema/resolvers/manage/resolveUnpublish.js +0 -3
  212. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  213. package/graphql/schema/resolvers/manage/resolveUpdate.js +0 -3
  214. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  215. package/graphql/schema/resolvers/preview/resolveGet.js +0 -8
  216. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  217. package/graphql/schema/resolvers/preview/resolveList.js +0 -3
  218. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  219. package/graphql/schema/resolvers/read/resolveGet.js +0 -8
  220. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  221. package/graphql/schema/resolvers/read/resolveList.js +0 -3
  222. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  223. package/graphql/schema/schemaPlugins.d.ts +8 -3
  224. package/graphql/schema/schemaPlugins.js +58 -69
  225. package/graphql/schema/schemaPlugins.js.map +1 -1
  226. package/graphql/system.d.ts +2 -5
  227. package/graphql/system.js +56 -98
  228. package/graphql/system.js.map +1 -1
  229. package/graphqlFields/boolean.js +0 -12
  230. package/graphqlFields/boolean.js.map +1 -1
  231. package/graphqlFields/datetime.js +0 -17
  232. package/graphqlFields/datetime.js.map +1 -1
  233. package/graphqlFields/dynamicZone/dynamicZoneField.d.ts +1 -1
  234. package/graphqlFields/dynamicZone/dynamicZoneField.js +79 -45
  235. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  236. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +2 -18
  237. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  238. package/graphqlFields/dynamicZone/index.js +0 -2
  239. package/graphqlFields/dynamicZone/index.js.map +1 -1
  240. package/graphqlFields/file.js +0 -8
  241. package/graphqlFields/file.js.map +1 -1
  242. package/graphqlFields/helpers.js +0 -10
  243. package/graphqlFields/helpers.js.map +1 -1
  244. package/graphqlFields/index.js +0 -12
  245. package/graphqlFields/index.js.map +1 -1
  246. package/graphqlFields/longText.js +0 -10
  247. package/graphqlFields/longText.js.map +1 -1
  248. package/graphqlFields/number.js +1 -12
  249. package/graphqlFields/number.js.map +1 -1
  250. package/graphqlFields/object.js +48 -52
  251. package/graphqlFields/object.js.map +1 -1
  252. package/graphqlFields/ref.js +64 -66
  253. package/graphqlFields/ref.js.map +1 -1
  254. package/graphqlFields/richText.js +0 -9
  255. package/graphqlFields/richText.js.map +1 -1
  256. package/graphqlFields/text.js +2 -11
  257. package/graphqlFields/text.js.map +1 -1
  258. package/index.d.ts +5 -3
  259. package/index.js +26 -28
  260. package/index.js.map +1 -1
  261. package/modelManager/DefaultCmsModelManager.js +0 -16
  262. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  263. package/modelManager/index.js +0 -4
  264. package/modelManager/index.js.map +1 -1
  265. package/package.json +35 -41
  266. package/parameters/context.js +0 -4
  267. package/parameters/context.js.map +1 -1
  268. package/parameters/header.js +0 -11
  269. package/parameters/header.js.map +1 -1
  270. package/parameters/index.js +0 -8
  271. package/parameters/index.js.map +1 -1
  272. package/parameters/manual.js +1 -8
  273. package/parameters/manual.js.map +1 -1
  274. package/parameters/path.js +0 -11
  275. package/parameters/path.js.map +1 -1
  276. package/plugins/CmsGraphQLSchemaPlugin.d.ts +5 -0
  277. package/plugins/CmsGraphQLSchemaPlugin.js +12 -0
  278. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -0
  279. package/plugins/CmsGraphQLSchemaSorterPlugin.d.ts +20 -0
  280. package/plugins/CmsGraphQLSchemaSorterPlugin.js +28 -0
  281. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -0
  282. package/plugins/CmsGroupPlugin.js +0 -8
  283. package/plugins/CmsGroupPlugin.js.map +1 -1
  284. package/plugins/CmsModelFieldConverterPlugin.d.ts +2 -2
  285. package/plugins/CmsModelFieldConverterPlugin.js +0 -5
  286. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  287. package/plugins/CmsModelPlugin.d.ts +21 -3
  288. package/plugins/CmsModelPlugin.js +30 -40
  289. package/plugins/CmsModelPlugin.js.map +1 -1
  290. package/plugins/CmsParametersPlugin.js +0 -7
  291. package/plugins/CmsParametersPlugin.js.map +1 -1
  292. package/plugins/StorageOperationsCmsModelPlugin.d.ts +23 -0
  293. package/plugins/StorageOperationsCmsModelPlugin.js +42 -0
  294. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -0
  295. package/plugins/StorageTransformPlugin.js +0 -9
  296. package/plugins/StorageTransformPlugin.js.map +1 -1
  297. package/plugins/index.d.ts +3 -0
  298. package/plugins/index.js +33 -10
  299. package/plugins/index.js.map +1 -1
  300. package/storage/default.js +0 -3
  301. package/storage/default.js.map +1 -1
  302. package/storage/object.js +0 -19
  303. package/storage/object.js.map +1 -1
  304. package/types.d.ts +371 -96
  305. package/types.js +64 -64
  306. package/types.js.map +1 -1
  307. package/utils/converters/Converter.js +0 -13
  308. package/utils/converters/Converter.js.map +1 -1
  309. package/utils/converters/ConverterCollection.js +9 -33
  310. package/utils/converters/ConverterCollection.js.map +1 -1
  311. package/utils/converters/valueKeyStorageConverter.d.ts +1 -5
  312. package/utils/converters/valueKeyStorageConverter.js +26 -46
  313. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  314. package/utils/createTypeFromFields.d.ts +1 -0
  315. package/utils/createTypeFromFields.js +12 -21
  316. package/utils/createTypeFromFields.js.map +1 -1
  317. package/utils/createTypeName.d.ts +0 -2
  318. package/utils/createTypeName.js +2 -19
  319. package/utils/createTypeName.js.map +1 -1
  320. package/utils/entryStorage.js +17 -34
  321. package/utils/entryStorage.js.map +1 -1
  322. package/utils/filterAsync.js +0 -5
  323. package/utils/filterAsync.js.map +1 -1
  324. package/utils/getBaseFieldType.d.ts +1 -3
  325. package/utils/getBaseFieldType.js +0 -2
  326. package/utils/getBaseFieldType.js.map +1 -1
  327. package/utils/getEntryDescription.d.ts +2 -0
  328. package/utils/getEntryDescription.js +17 -0
  329. package/utils/getEntryDescription.js.map +1 -0
  330. package/utils/getEntryImage.d.ts +2 -0
  331. package/utils/getEntryImage.js +17 -0
  332. package/utils/getEntryImage.js.map +1 -0
  333. package/utils/getEntryTitle.d.ts +1 -1
  334. package/utils/getEntryTitle.js +0 -9
  335. package/utils/getEntryTitle.js.map +1 -1
  336. package/utils/getSchemaFromFieldPlugins.d.ts +4 -7
  337. package/utils/getSchemaFromFieldPlugins.js +23 -19
  338. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  339. package/utils/incrementEntryIdVersion.d.ts +5 -0
  340. package/utils/incrementEntryIdVersion.js +29 -0
  341. package/utils/incrementEntryIdVersion.js.map +1 -0
  342. package/utils/permissions/EntriesPermissions.d.ts +4 -0
  343. package/utils/permissions/EntriesPermissions.js +9 -0
  344. package/utils/permissions/EntriesPermissions.js.map +1 -0
  345. package/utils/permissions/ModelGroupsPermissions.d.ts +11 -0
  346. package/utils/permissions/ModelGroupsPermissions.js +48 -0
  347. package/utils/permissions/ModelGroupsPermissions.js.map +1 -0
  348. package/utils/permissions/ModelsPermissions.d.ts +20 -0
  349. package/utils/permissions/ModelsPermissions.js +91 -0
  350. package/utils/permissions/ModelsPermissions.js.map +1 -0
  351. package/utils/permissions/SettingsPermissions.d.ts +4 -0
  352. package/utils/permissions/SettingsPermissions.js +9 -0
  353. package/utils/permissions/SettingsPermissions.js.map +1 -0
  354. package/utils/renderFields.d.ts +4 -2
  355. package/utils/renderFields.js +10 -11
  356. package/utils/renderFields.js.map +1 -1
  357. package/utils/renderGetFilterFields.d.ts +2 -2
  358. package/utils/renderGetFilterFields.js +7 -33
  359. package/utils/renderGetFilterFields.js.map +1 -1
  360. package/utils/renderInputFields.d.ts +4 -2
  361. package/utils/renderInputFields.js +17 -14
  362. package/utils/renderInputFields.js.map +1 -1
  363. package/utils/renderListFilterFields.d.ts +3 -1
  364. package/utils/renderListFilterFields.js +16 -30
  365. package/utils/renderListFilterFields.js.map +1 -1
  366. package/utils/renderSortEnum.d.ts +9 -5
  367. package/utils/renderSortEnum.js +24 -12
  368. package/utils/renderSortEnum.js.map +1 -1
  369. package/utils/toSlug.js +0 -4
  370. package/utils/toSlug.js.map +1 -1
  371. package/validators/dateGte.js +0 -7
  372. package/validators/dateGte.js.map +1 -1
  373. package/validators/dateLte.js +0 -7
  374. package/validators/dateLte.js.map +1 -1
  375. package/validators/dynamicZone.js +0 -4
  376. package/validators/dynamicZone.js.map +1 -1
  377. package/validators/gte.js +0 -8
  378. package/validators/gte.js.map +1 -1
  379. package/validators/in.js +0 -8
  380. package/validators/in.js.map +1 -1
  381. package/validators/index.js +0 -16
  382. package/validators/index.js.map +1 -1
  383. package/validators/lte.js +0 -8
  384. package/validators/lte.js.map +1 -1
  385. package/validators/maxLength.js +0 -8
  386. package/validators/maxLength.js.map +1 -1
  387. package/validators/minLength.js +0 -8
  388. package/validators/minLength.js.map +1 -1
  389. package/validators/pattern.js +0 -9
  390. package/validators/pattern.js.map +1 -1
  391. package/validators/patternPlugins/email.js +0 -2
  392. package/validators/patternPlugins/email.js.map +1 -1
  393. package/validators/patternPlugins/index.js +0 -8
  394. package/validators/patternPlugins/index.js.map +1 -1
  395. package/validators/patternPlugins/lowerCase.js +0 -2
  396. package/validators/patternPlugins/lowerCase.js.map +1 -1
  397. package/validators/patternPlugins/lowerCaseSpace.js +0 -2
  398. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  399. package/validators/patternPlugins/upperCase.js +0 -2
  400. package/validators/patternPlugins/upperCase.js.map +1 -1
  401. package/validators/patternPlugins/upperCaseSpace.js +0 -2
  402. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  403. package/validators/patternPlugins/url.js +0 -2
  404. package/validators/patternPlugins/url.js.map +1 -1
  405. package/validators/required.js +0 -5
  406. package/validators/required.js.map +1 -1
  407. package/validators/timeGte.js +0 -8
  408. package/validators/timeGte.js.map +1 -1
  409. package/validators/timeLte.js +0 -8
  410. package/validators/timeLte.js.map +1 -1
  411. package/validators/unique.js +0 -7
  412. package/validators/unique.js.map +1 -1
  413. package/crud/contentModel/createFieldModels.d.ts +0 -2
  414. package/crud/contentModel/createFieldModels.js +0 -26
  415. package/crud/contentModel/createFieldModels.js.map +0 -1
  416. package/crud/contentModel/fieldIdValidation.d.ts +0 -1
  417. package/crud/contentModel/fieldIdValidation.js +0 -25
  418. package/crud/contentModel/fieldIdValidation.js.map +0 -1
  419. package/crud/contentModel/idValidation.d.ts +0 -1
  420. package/crud/contentModel/idValidation.js +0 -22
  421. package/crud/contentModel/idValidation.js.map +0 -1
  422. package/crud/contentModel/models.d.ts +0 -4
  423. package/crud/contentModel/models.js +0 -192
  424. package/crud/contentModel/models.js.map +0 -1
  425. package/crud/contentModel/systemFields.d.ts +0 -1
  426. package/crud/contentModel/systemFields.js +0 -8
  427. package/crud/contentModel/systemFields.js.map +0 -1
  428. package/crud/index.d.ts +0 -6
  429. package/crud/index.js +0 -85
  430. package/crud/index.js.map +0 -1
  431. package/graphql/schema/resolvers/manage/resolveRequestChanges.d.ts +0 -7
  432. package/graphql/schema/resolvers/manage/resolveRequestChanges.js +0 -21
  433. package/graphql/schema/resolvers/manage/resolveRequestChanges.js.map +0 -1
  434. package/graphql/schema/resolvers/manage/resolveRequestReview.d.ts +0 -7
  435. package/graphql/schema/resolvers/manage/resolveRequestReview.js +0 -21
  436. package/graphql/schema/resolvers/manage/resolveRequestReview.js.map +0 -1
  437. package/upgrades/5.33.0/index.d.ts +0 -3
  438. package/upgrades/5.33.0/index.js +0 -182
  439. package/upgrades/5.33.0/index.js.map +0 -1
  440. package/upgrades/index.d.ts +0 -1
  441. package/upgrades/index.js +0 -12
  442. package/upgrades/index.js.map +0 -1
  443. package/utils/access.d.ts +0 -8
  444. package/utils/access.js +0 -90
  445. package/utils/access.js.map +0 -1
  446. package/utils/filterModelFields.d.ts +0 -16
  447. package/utils/filterModelFields.js +0 -77
  448. package/utils/filterModelFields.js.map +0 -1
  449. package/utils/ownership.d.ts +0 -8
  450. package/utils/ownership.js +0 -41
  451. package/utils/ownership.js.map +0 -1
  452. package/utils/permissions.d.ts +0 -7
  453. package/utils/permissions.js +0 -106
  454. package/utils/permissions.js.map +0 -1
  455. package/utils/pluralizedTypeName.d.ts +0 -1
  456. package/utils/pluralizedTypeName.js +0 -26
  457. package/utils/pluralizedTypeName.js.map +0 -1
@@ -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","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 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: 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 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}\\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: 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;
@@ -1 +1 @@
1
- {"version":3,"names":["createUnionTypeName","model","field","createReadTypeName","modelId","fieldId","createListFilters","createFilteringTypeDef","appendTypename","entries","typename","map","item","__typename","getFieldModels","settings","Array","isArray","models","modelIdToTypeName","Map","createRefField","name","type","fieldType","isSortable","isSearchable","read","createTypeField","gqlType","length","typeDefs","join","fields","multipleValues","createResolver","params","set","parent","_","context","cms","initialValue","value","entriesByModel","reduce","collection","ref","includes","entryId","push","getters","Object","keys","idList","getModelManager","READ","getPublishedByIds","getLatestByIds","get","Promise","all","then","results","result","concat","revisions","createSchema","resolvers","manage","RefField","id","parseIdentifier","createInputField","createGraphQLInputField"],"sources":["ref.ts"],"sourcesContent":["import {\n CmsEntry,\n CmsContext,\n CmsModelFieldToGraphQLPlugin,\n CmsModel,\n CmsModelField\n} from \"~/types\";\nimport { createReadTypeName } from \"~/utils/createTypeName\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface RefFieldValue {\n /**\n * `id` is optional for backwards compatibility with records created before this property was introduced.\n */\n id?: string;\n entryId: string;\n modelId: string;\n}\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${createReadTypeName(model.modelId)}_${createReadTypeName(field.fieldId)}`;\n};\n\ninterface CreateListFilterParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFilterParams) => {\n return `\n ${field.fieldId}: RefFieldWhereInput\n `;\n};\n\nconst createFilteringTypeDef = () => {\n return `\n input RefFieldWhereInput {\n id: String\n id_not: String\n id_in: [String!]\n id_not_in: [String]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n }\n `;\n};\n\nconst appendTypename = (entries: CmsEntry[], typename: string): CmsEntry[] => {\n return entries.map(item => {\n return {\n ...item,\n __typename: typename\n };\n });\n};\n/**\n * We cast settings.models as object to have modelId because internally we know that it is so.\n * Internal stuff so we are sure that settings.models contains what we require.\n */\nconst getFieldModels = (field: CmsModelField): Pick<CmsModel, \"modelId\">[] => {\n if (!field.settings || Array.isArray(field.settings.models) === false) {\n return [];\n }\n return field.settings.models as Pick<CmsModel, \"modelId\">[];\n};\n\nconst modelIdToTypeName = new Map();\n\nexport const createRefField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-ref\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"ref\",\n isSortable: false,\n isSearchable: true,\n read: {\n createTypeField({ model, field }) {\n const models = field.settings?.models || [];\n const gqlType =\n models.length > 1\n ? createUnionTypeName(model, field)\n : createReadTypeName(models[0].modelId);\n\n const typeDefs =\n models.length > 1\n ? `union ${gqlType} = ${getFieldModels(field)\n .map(({ modelId }) => createReadTypeName(modelId))\n .join(\" | \")}`\n : \"\";\n\n return {\n fields: field.fieldId + `: ${field.multipleValues ? `[${gqlType}]` : gqlType}`,\n typeDefs\n };\n },\n /**\n * TS is complaining about mixed types for createResolver.\n * TODO @ts-refactor @pavel Maybe we should have a single createResolver method?\n */\n // @ts-ignore\n createResolver(params) {\n const { field } = params;\n // Create a map of model types and corresponding modelIds so resolvers don't need to perform the lookup.\n const models = field.settings?.models || [];\n for (const item of models) {\n modelIdToTypeName.set(item.modelId, createReadTypeName(item.modelId));\n }\n\n return async (parent, _, context: CmsContext) => {\n const { cms } = context;\n\n // Get field value for this entry\n const initialValue = parent[field.fieldId] as RefFieldValue | RefFieldValue[];\n\n if (!initialValue) {\n return null;\n }\n\n if (field.multipleValues) {\n /**\n * We cast because value really can be array and single value.\n * At this point, we are 99% sure that it is an array (+ we check for it)\n */\n const value = initialValue as RefFieldValue[];\n if (Array.isArray(value) === false || value.length === 0) {\n return [];\n }\n\n const entriesByModel = value.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.entryId) === true) {\n return collection;\n }\n\n collection[ref.modelId].push(ref.entryId);\n\n return collection;\n }, {} as Record<string, string[]>);\n\n const getters = Object.keys(entriesByModel).map(async modelId => {\n const idList = entriesByModel[modelId];\n // Get model manager, to get access to CRUD methods\n const model = await cms.getModelManager(modelId);\n\n let entries: CmsEntry[];\n // `read` API works with `published` data\n if (cms.READ) {\n entries = await model.getPublishedByIds(idList);\n }\n // `preview` and `manage` with `latest` data\n else {\n entries = await model.getLatestByIds(idList);\n }\n\n return appendTypename(entries, modelIdToTypeName.get(modelId));\n });\n\n return await Promise.all(getters).then((results: any[]) =>\n results.reduce((result, item) => result.concat(item), [])\n );\n }\n\n const value = initialValue as RefFieldValue;\n\n // Get model manager, to get access to CRUD methods\n const model = await cms.getModelManager(value.modelId);\n\n let revisions: CmsEntry[];\n // `read` API works with `published` data\n if (cms.READ) {\n revisions = await model.getPublishedByIds([value.entryId]);\n }\n // `preview` API works with `latest` data\n else {\n revisions = await model.getLatestByIds([value.entryId]);\n }\n\n /**\n * If there are no revisions we must return null.\n */\n if (!revisions || revisions.length === 0) {\n return null;\n }\n return {\n ...revisions[0],\n __typename: modelIdToTypeName.get(value.modelId)\n };\n };\n },\n createSchema() {\n return {\n typeDefs: createFilteringTypeDef(),\n resolvers: {}\n };\n },\n createListFilters\n },\n manage: {\n createSchema() {\n /**\n * `entryId` in `RefFieldInput` is deprecated, but we cannot mark it as such in GraphQL.\n * `entryId` is extracted at runtime from the `id` which contains both the `entryId` and revision number.\n * See: `packages/api-headless-cms/src/crud/contentEntry/referenceFieldsMapping.ts`\n */\n return {\n typeDefs: /* GraphQL */ `\n type RefField {\n modelId: String!\n entryId: ID!\n id: ID!\n }\n\n input RefFieldInput {\n modelId: String!\n id: ID!\n }\n\n ${createFilteringTypeDef()}\n `,\n resolvers: {\n RefField: {\n entryId: (parent: RefFieldValue) => {\n const { id } = parseIdentifier(parent.entryId || parent.id);\n return id;\n },\n id: (parent: RefFieldValue) => {\n return parent.id || parent.entryId;\n }\n }\n }\n };\n },\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [RefField!]`;\n }\n return `${field.fieldId}: RefField`;\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"RefFieldInput\");\n },\n createListFilters\n }\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["createUnionTypeName","model","field","singularApiName","createTypeName","fieldId","createListFilters","createFilteringTypeDef","appendTypename","entries","typename","map","item","__typename","getFieldModels","settings","Array","isArray","models","modelIdToTypeName","Map","getModel","params","modelId","find","WebinyError","getModelSingularApiName","createRefField","name","type","fieldType","isSortable","isSearchable","read","createTypeField","fieldModels","gqlType","length","typeDefs","join","fields","multipleValues","createResolver","set","parent","args","context","cms","initialValue","populate","value","entriesByModel","reduce","collection","ref","includes","entryId","push","getters","Object","keys","idList","getModelManager","READ","getPublishedByIds","getLatestByIds","get","Promise","all","then","results","result","concat","getEntryManager","revisions","createSchema","resolvers","manage","RefField","id","parseIdentifier","createInputField","createGraphQLInputField"],"sources":["ref.ts"],"sourcesContent":["import WebinyError from \"@webiny/error\";\nimport {\n CmsContext,\n CmsEntry,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { createTypeName } from \"~/utils/createTypeName\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface RefFieldValue {\n /**\n * `id` is optional for backwards compatibility with records created before this property was introduced.\n */\n id?: string;\n entryId: string;\n modelId: string;\n}\n\nconst createUnionTypeName = (model: CmsModel, field: CmsModelField) => {\n return `${model.singularApiName}_${createTypeName(field.fieldId)}`;\n};\n\ninterface CreateListFilterParams {\n field: CmsModelField;\n}\n\nconst createListFilters = ({ field }: CreateListFilterParams) => {\n return `\n ${field.fieldId}: RefFieldWhereInput\n `;\n};\n\nconst createFilteringTypeDef = () => {\n return `\n input RefFieldWhereInput {\n id: String\n id_not: String\n id_in: [String!]\n id_not_in: [String]\n entryId: String\n entryId_not: String\n entryId_in: [String!]\n entryId_not_in: [String!]\n }\n `;\n};\n\nconst appendTypename = (entries: CmsEntry[], typename: string): CmsEntry[] => {\n return entries.map(item => {\n return {\n ...item,\n __typename: typename\n };\n });\n};\n/**\n * We cast settings.models as object to have modelId because internally we know that it is so.\n * Internal stuff so we are sure that settings.models contains what we require.\n */\nconst getFieldModels = (field: CmsModelField): Pick<CmsModel, \"modelId\">[] => {\n if (!field.settings || Array.isArray(field.settings.models) === false) {\n return [];\n }\n return field.settings.models as Pick<CmsModel, \"modelId\">[];\n};\n\nconst modelIdToTypeName = new Map();\n\ninterface GetModelParams {\n models: CmsModel[];\n modelId: string;\n}\n\nconst getModel = (params: GetModelParams): CmsModel => {\n const { models, modelId } = params;\n\n const model = models.find(item => item.modelId === modelId);\n if (model) {\n return model;\n }\n throw new WebinyError(\n `Could not find model with ID \"${modelId}\" in the list of models.`,\n \"MODEL_NOT_FOUND\",\n {\n modelId\n }\n );\n};\n\nconst getModelSingularApiName = (params: GetModelParams): string => {\n const model = getModel(params);\n\n return model.singularApiName;\n};\n\nexport const createRefField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-ref\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"ref\",\n isSortable: false,\n isSearchable: true,\n read: {\n createTypeField({ model, field, models }) {\n const fieldModels = field.settings?.models || [];\n const gqlType =\n fieldModels.length > 1\n ? createUnionTypeName(model, field)\n : getModelSingularApiName({ models, modelId: fieldModels[0].modelId });\n const typeDefs =\n fieldModels.length > 1\n ? `union ${gqlType} = ${getFieldModels(field)\n .map(({ modelId }) =>\n getModelSingularApiName({\n models,\n modelId\n })\n )\n .join(\" | \")}`\n : \"\";\n\n return {\n fields:\n field.fieldId +\n `(populate: Boolean = true): ${\n field.multipleValues ? `[${gqlType}!]` : gqlType\n }`,\n typeDefs\n };\n },\n /**\n * TS is complaining about mixed types for createResolver.\n * TODO @ts-refactor @pavel Maybe we should have a single createResolver method?\n */\n // @ts-ignore\n createResolver({ field, models }) {\n // Create a map of model types and corresponding modelIds so resolvers don't need to perform the lookup.\n const fieldModels = field.settings?.models || [];\n for (const item of fieldModels) {\n modelIdToTypeName.set(\n item.modelId,\n getModelSingularApiName({\n models,\n modelId: item.modelId\n })\n );\n }\n\n return async (parent, args, context: CmsContext) => {\n const { cms } = context;\n\n // Get field value for this entry\n const initialValue = parent[field.fieldId] as RefFieldValue | RefFieldValue[];\n\n if (!initialValue) {\n return null;\n }\n if (args.populate === false) {\n return initialValue;\n }\n\n if (field.multipleValues) {\n /**\n * We cast because value really can be array and single value.\n * At this point, we are 99% sure that it is an array (+ we check for it)\n */\n const value = initialValue as RefFieldValue[];\n if (Array.isArray(value) === false || value.length === 0) {\n return [];\n }\n\n const entriesByModel = value.reduce((collection, ref) => {\n if (!collection[ref.modelId]) {\n collection[ref.modelId] = [];\n } else if (collection[ref.modelId].includes(ref.entryId) === true) {\n return collection;\n }\n\n collection[ref.modelId].push(ref.entryId);\n\n return collection;\n }, {} as Record<string, string[]>);\n\n const getters = Object.keys(entriesByModel).map(async modelId => {\n const idList = entriesByModel[modelId];\n // Get model manager, to get access to CRUD methods\n const model = await cms.getModelManager(modelId);\n\n let entries: CmsEntry[];\n // `read` API works with `published` data\n if (cms.READ) {\n entries = await model.getPublishedByIds(idList);\n }\n // `preview` and `manage` with `latest` data\n else {\n entries = await model.getLatestByIds(idList);\n }\n\n return appendTypename(entries, modelIdToTypeName.get(modelId));\n });\n\n return await Promise.all(getters).then((results: any[]) =>\n results.reduce((result, item) => result.concat(item), [])\n );\n }\n\n const value = initialValue as RefFieldValue;\n\n // Get model manager, to get access to CRUD methods\n const model = await cms.getEntryManager(value.modelId);\n\n let revisions: CmsEntry[];\n // `read` API works with `published` data\n if (cms.READ) {\n revisions = await model.getPublishedByIds([value.entryId]);\n }\n // `preview` API works with `latest` data\n else {\n revisions = await model.getLatestByIds([value.entryId]);\n }\n\n /**\n * If there are no revisions we must return null.\n */\n if (!revisions || revisions.length === 0) {\n return null;\n }\n return {\n ...revisions[0],\n __typename: modelIdToTypeName.get(value.modelId)\n };\n };\n },\n createSchema() {\n return {\n typeDefs: createFilteringTypeDef(),\n resolvers: {}\n };\n },\n createListFilters\n },\n manage: {\n createSchema() {\n /**\n * `entryId` in `RefFieldInput` is deprecated, but we cannot mark it as such in GraphQL.\n * `entryId` is extracted at runtime from the `id` which contains both the `entryId` and revision number.\n * See: `packages/api-headless-cms/src/crud/contentEntry/referenceFieldsMapping.ts`\n */\n return {\n typeDefs: /* GraphQL */ `\n type RefField {\n modelId: String!\n entryId: ID!\n id: ID!\n }\n\n input RefFieldInput {\n modelId: String!\n id: ID!\n }\n\n ${createFilteringTypeDef()}\n `,\n resolvers: {\n RefField: {\n entryId: (parent: RefFieldValue) => {\n const { id } = parseIdentifier(parent.entryId || parent.id);\n return id;\n },\n id: (parent: RefFieldValue) => {\n return parent.id || parent.entryId;\n }\n }\n }\n };\n },\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [RefField!]`;\n }\n return `${field.fieldId}: RefField`;\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"RefFieldInput\");\n },\n createListFilters\n }\n };\n};\n"],"mappings":"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"}
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createRichTextField = void 0;
7
-
8
7
  var _helpers = require("./helpers");
9
-
10
8
  const createRichTextField = () => {
11
9
  return {
12
10
  name: "cms-model-field-to-graphql-rich-text",
@@ -21,16 +19,13 @@ const createRichTextField = () => {
21
19
  if (field.multipleValues) {
22
20
  return `${field.fieldId}: [JSON]`;
23
21
  }
24
-
25
22
  return `${field.fieldId}: JSON`;
26
23
  },
27
-
28
24
  createGetFilters({
29
25
  field
30
26
  }) {
31
27
  return `${field.fieldId}: JSON`;
32
28
  }
33
-
34
29
  },
35
30
  manage: {
36
31
  createTypeField({
@@ -39,18 +34,14 @@ const createRichTextField = () => {
39
34
  if (field.multipleValues) {
40
35
  return `${field.fieldId}: [JSON]`;
41
36
  }
42
-
43
37
  return `${field.fieldId}: JSON`;
44
38
  },
45
-
46
39
  createInputField({
47
40
  field
48
41
  }) {
49
42
  return (0, _helpers.createGraphQLInputField)(field, "JSON");
50
43
  }
51
-
52
44
  }
53
45
  };
54
46
  };
55
-
56
47
  exports.createRichTextField = createRichTextField;
@@ -1 +1 @@
1
- {"version":3,"names":["createRichTextField","name","type","fieldType","isSortable","isSearchable","read","createTypeField","field","multipleValues","fieldId","createGetFilters","manage","createInputField","createGraphQLInputField"],"sources":["richText.ts"],"sourcesContent":["import { CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\nexport const createRichTextField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-rich-text\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"rich-text\",\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;;AAEO,MAAMA,mBAAmB,GAAG,MAAoC;EACnE,OAAO;IACHC,IAAI,EAAE,sCADH;IAEHC,IAAI,EAAE,4BAFH;IAGHC,SAAS,EAAE,WAHR;IAIHC,UAAU,EAAE,KAJT;IAKHC,YAAY,EAAE,KALX;IAMHC,IAAI,EAAE;MACFC,eAAe,CAAC;QAAEC;MAAF,CAAD,EAAY;QACvB,IAAIA,KAAK,CAACC,cAAV,EAA0B;UACtB,OAAQ,GAAED,KAAK,CAACE,OAAQ,UAAxB;QACH;;QAED,OAAQ,GAAEF,KAAK,CAACE,OAAQ,QAAxB;MACH,CAPC;;MAQFC,gBAAgB,CAAC;QAAEH;MAAF,CAAD,EAAY;QACxB,OAAQ,GAAEA,KAAK,CAACE,OAAQ,QAAxB;MACH;;IAVC,CANH;IAkBHE,MAAM,EAAE;MACJL,eAAe,CAAC;QAAEC;MAAF,CAAD,EAAY;QACvB,IAAIA,KAAK,CAACC,cAAV,EAA0B;UACtB,OAAQ,GAAED,KAAK,CAACE,OAAQ,UAAxB;QACH;;QACD,OAAQ,GAAEF,KAAK,CAACE,OAAQ,QAAxB;MACH,CANG;;MAOJG,gBAAgB,CAAC;QAAEL;MAAF,CAAD,EAAY;QACxB,OAAO,IAAAM,gCAAA,EAAwBN,KAAxB,EAA+B,MAA/B,CAAP;MACH;;IATG;EAlBL,CAAP;AA8BH,CA/BM"}
1
+ {"version":3,"names":["createRichTextField","name","type","fieldType","isSortable","isSearchable","read","createTypeField","field","multipleValues","fieldId","createGetFilters","manage","createInputField","createGraphQLInputField"],"sources":["richText.ts"],"sourcesContent":["import { CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\nexport const createRichTextField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-rich-text\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"rich-text\",\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;AAEO,MAAMA,mBAAmB,GAAG,MAAoC;EACnE,OAAO;IACHC,IAAI,EAAE,sCAAsC;IAC5CC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,WAAW;IACtBC,UAAU,EAAE,KAAK;IACjBC,YAAY,EAAE,KAAK;IACnBC,IAAI,EAAE;MACFC,eAAe,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,gBAAgB,CAAC;QAAEH;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACE,OAAQ,QAAO;MACnC;IACJ,CAAC;IACDE,MAAM,EAAE;MACJL,eAAe,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,gBAAgB,CAAC;QAAEL;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAM,gCAAuB,EAACN,KAAK,EAAE,MAAM,CAAC;MACjD;IACJ;EACJ,CAAC;AACL,CAAC;AAAC"}
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createTextField = void 0;
7
-
8
7
  var _helpers = require("./helpers");
9
-
10
8
  const createListFilters = ({
11
9
  field
12
10
  }) => {
@@ -17,9 +15,10 @@ const createListFilters = ({
17
15
  ${field.fieldId}_not_in: [String]
18
16
  ${field.fieldId}_contains: String
19
17
  ${field.fieldId}_not_contains: String
18
+ ${field.fieldId}_startsWith: String
19
+ ${field.fieldId}_not_startsWith: String
20
20
  `;
21
21
  };
22
-
23
22
  const createTextField = () => {
24
23
  return {
25
24
  name: "cms-model-field-to-graphql-text",
@@ -35,39 +34,31 @@ const createTextField = () => {
35
34
  if (field.multipleValues) {
36
35
  return `${field.fieldId}: [String]`;
37
36
  }
38
-
39
37
  return `${field.fieldId}: String`;
40
38
  },
41
-
42
39
  createGetFilters({
43
40
  field
44
41
  }) {
45
42
  return `${field.fieldId}: String`;
46
43
  },
47
-
48
44
  createListFilters
49
45
  },
50
46
  manage: {
51
47
  createListFilters,
52
-
53
48
  createTypeField({
54
49
  field
55
50
  }) {
56
51
  if (field.multipleValues) {
57
52
  return `${field.fieldId}: [String]`;
58
53
  }
59
-
60
54
  return `${field.fieldId}: String`;
61
55
  },
62
-
63
56
  createInputField({
64
57
  field
65
58
  }) {
66
59
  return (0, _helpers.createGraphQLInputField)(field, "String");
67
60
  }
68
-
69
61
  }
70
62
  };
71
63
  };
72
-
73
64
  exports.createTextField = createTextField;
@@ -1 +1 @@
1
- {"version":3,"names":["createListFilters","field","fieldId","createTextField","name","type","fieldType","isSortable","isSearchable","fullTextSearch","read","createTypeField","multipleValues","createGetFilters","manage","createInputField","createGraphQLInputField"],"sources":["text.ts"],"sourcesContent":["import { CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFiltersParams) => {\n return `\n ${field.fieldId}: String\n ${field.fieldId}_not: String\n ${field.fieldId}_in: [String]\n ${field.fieldId}_not_in: [String]\n ${field.fieldId}_contains: String\n ${field.fieldId}_not_contains: String\n `;\n};\n\nexport const createTextField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-text\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"text\",\n isSortable: true,\n isSearchable: true,\n fullTextSearch: true,\n read: {\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n return `${field.fieldId}: String`;\n },\n createGetFilters({ field }) {\n return `${field.fieldId}: String`;\n },\n createListFilters\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n return `${field.fieldId}: String`;\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"String\");\n }\n }\n };\n};\n"],"mappings":";;;;;;;AACA;;AAKA,MAAMA,iBAAiB,GAAG,CAAC;EAAEC;AAAF,CAAD,KAAwC;EAC9D,OAAQ;AACZ,UAAUA,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAPI;AAQH,CATD;;AAWO,MAAMC,eAAe,GAAG,MAAoC;EAC/D,OAAO;IACHC,IAAI,EAAE,iCADH;IAEHC,IAAI,EAAE,4BAFH;IAGHC,SAAS,EAAE,MAHR;IAIHC,UAAU,EAAE,IAJT;IAKHC,YAAY,EAAE,IALX;IAMHC,cAAc,EAAE,IANb;IAOHC,IAAI,EAAE;MACFC,eAAe,CAAC;QAAEV;MAAF,CAAD,EAAY;QACvB,IAAIA,KAAK,CAACW,cAAV,EAA0B;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAxB;QACH;;QACD,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAxB;MACH,CANC;;MAOFW,gBAAgB,CAAC;QAAEZ;MAAF,CAAD,EAAY;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAxB;MACH,CATC;;MAUFF;IAVE,CAPH;IAmBHc,MAAM,EAAE;MACJd,iBADI;;MAEJW,eAAe,CAAC;QAAEV;MAAF,CAAD,EAAY;QACvB,IAAIA,KAAK,CAACW,cAAV,EAA0B;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAxB;QACH;;QACD,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAxB;MACH,CAPG;;MAQJa,gBAAgB,CAAC;QAAEd;MAAF,CAAD,EAAY;QACxB,OAAO,IAAAe,gCAAA,EAAwBf,KAAxB,EAA+B,QAA/B,CAAP;MACH;;IAVG;EAnBL,CAAP;AAgCH,CAjCM"}
1
+ {"version":3,"names":["createListFilters","field","fieldId","createTextField","name","type","fieldType","isSortable","isSearchable","fullTextSearch","read","createTypeField","multipleValues","createGetFilters","manage","createInputField","createGraphQLInputField"],"sources":["text.ts"],"sourcesContent":["import { CmsModelField, CmsModelFieldToGraphQLPlugin } from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFiltersParams) => {\n return `\n ${field.fieldId}: String\n ${field.fieldId}_not: String\n ${field.fieldId}_in: [String]\n ${field.fieldId}_not_in: [String]\n ${field.fieldId}_contains: String\n ${field.fieldId}_not_contains: String\n ${field.fieldId}_startsWith: String\n ${field.fieldId}_not_startsWith: String\n `;\n};\n\nexport const createTextField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-text\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"text\",\n isSortable: true,\n isSearchable: true,\n fullTextSearch: true,\n read: {\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n return `${field.fieldId}: String`;\n },\n createGetFilters({ field }) {\n return `${field.fieldId}: String`;\n },\n createListFilters\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n return `${field.fieldId}: String`;\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"String\");\n }\n }\n };\n};\n"],"mappings":";;;;;;AACA;AAKA,MAAMA,iBAAiB,GAAG,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAC9D,OAAQ;AACZ,UAAUA,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAAK;AACL,CAAC;AAEM,MAAMC,eAAe,GAAG,MAAoC;EAC/D,OAAO;IACHC,IAAI,EAAE,iCAAiC;IACvCC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,MAAM;IACjBC,UAAU,EAAE,IAAI;IAChBC,YAAY,EAAE,IAAI;IAClBC,cAAc,EAAE,IAAI;IACpBC,IAAI,EAAE;MACFC,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAW;QACvC;QACA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDW,gBAAgB,CAAC;QAAEZ;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF;IACJ,CAAC;IACDc,MAAM,EAAE;MACJd,iBAAiB;MACjBW,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAQ,GAAEX,KAAK,CAACC,OAAQ,YAAW;QACvC;QACA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDa,gBAAgB,CAAC;QAAEd;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAe,gCAAuB,EAACf,KAAK,EAAE,QAAQ,CAAC;MACnD;IACJ;EACJ,CAAC;AACL,CAAC;AAAC"}
package/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import { CreateGraphQLParams } from "./graphql";
2
- import { CrudParams } from "./crud";
2
+ import { CrudParams } from "./context";
3
3
  import { entryFieldFromStorageTransform, entryFromStorageTransform, entryToStorageTransform } from "./utils/entryStorage";
4
4
  export declare type CreateHeadlessCmsGraphQLParams = CreateGraphQLParams;
5
- export declare const createHeadlessCmsGraphQL: (params?: CreateHeadlessCmsGraphQLParams) => (import("./plugins").CmsParametersPlugin | (import("@webiny/api").ContextPlugin<import("./types").CmsContext> | import("@webiny/handler-graphql/types").GraphQLSchemaPlugin<import("./types").CmsContext> | import("@webiny/plugins/types").PluginCollection)[])[];
5
+ export declare const createHeadlessCmsGraphQL: (params?: CreateHeadlessCmsGraphQLParams) => (import("@webiny/plugins/types").PluginCollection | import("./plugins").CmsParametersPlugin | import("@webiny/handler-graphql").GraphQLSchemaPlugin<import("./types").CmsContext>)[];
6
6
  export declare type ContentContextParams = CrudParams;
7
- export declare const createHeadlessCmsContext: (params: ContentContextParams) => (import("./types").ModelManagerPlugin | import("@webiny/api").ContextPlugin<import("./types").CmsContext> | import("./plugins").StorageTransformPlugin<any, any, import("./types").CmsModelField> | import("@webiny/api-upgrade").UpgradePlugin<import("./types").CmsContext>[] | import("./plugins").StorageTransformPlugin<any, any, import("./types").CmsModelDynamicZoneField> | import("./types").CmsModelFieldToGraphQLPlugin<any>[] | (import("./types").CmsModelFieldValidatorPlugin | import("./types").CmsModelFieldPatternValidatorPlugin[])[] | (import("./fieldConverters/CmsModelObjectFieldConverterPlugin").CmsModelObjectFieldConverterPlugin | import("./fieldConverters/CmsModelDefaultFieldConverterPlugin").CmsModelDefaultFieldConverterPlugin)[])[];
7
+ export declare const createHeadlessCmsContext: (params: ContentContextParams) => (import("./types").ModelManagerPlugin | import("./plugins").StorageTransformPlugin<any, any, import("./types").CmsModelField> | import("@webiny/api").ContextPlugin<import("./types").CmsContext> | import("./plugins").StorageTransformPlugin<any, any, import("./types").CmsModelDynamicZoneField> | import("./types").CmsModelFieldToGraphQLPlugin<any>[] | (import("./types").CmsModelFieldValidatorPlugin | import("./types").CmsModelFieldPatternValidatorPlugin[])[] | (import("./fieldConverters/CmsModelObjectFieldConverterPlugin").CmsModelObjectFieldConverterPlugin | import("./fieldConverters/CmsModelDefaultFieldConverterPlugin").CmsModelDefaultFieldConverterPlugin | import("./fieldConverters/CmsModelDynamicZoneFieldConverterPlugin").CmsModelDynamicZoneFieldConverterPlugin)[])[];
8
8
  export * from "./graphqlFields";
9
9
  export * from "./plugins";
10
+ export * from "./utils/incrementEntryIdVersion";
11
+ export * from "./graphql/handleRequest";
10
12
  export { entryToStorageTransform, entryFieldFromStorageTransform, entryFromStorageTransform };