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

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 (495) hide show
  1. package/constants.d.ts +31 -0
  2. package/constants.js +51 -2
  3. package/constants.js.map +1 -1
  4. package/context.js +50 -45
  5. package/context.js.map +1 -1
  6. package/crud/contentEntry/afterDelete.js +3 -1
  7. package/crud/contentEntry/afterDelete.js.map +1 -1
  8. package/crud/contentEntry/beforeCreate.js +3 -1
  9. package/crud/contentEntry/beforeCreate.js.map +1 -1
  10. package/crud/contentEntry/beforeUpdate.js +3 -1
  11. package/crud/contentEntry/beforeUpdate.js.map +1 -1
  12. package/crud/contentEntry/entryDataFactories/createEntryData.d.ts +20 -0
  13. package/crud/contentEntry/entryDataFactories/createEntryData.js +228 -0
  14. package/crud/contentEntry/entryDataFactories/createEntryData.js.map +1 -0
  15. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.d.ts +21 -0
  16. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js +114 -0
  17. package/crud/contentEntry/entryDataFactories/createEntryRevisionFromData.js.map +1 -0
  18. package/crud/contentEntry/entryDataFactories/createPublishEntryData.d.ts +13 -0
  19. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js +61 -0
  20. package/crud/contentEntry/entryDataFactories/createPublishEntryData.js.map +1 -0
  21. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.d.ts +12 -0
  22. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js +57 -0
  23. package/crud/contentEntry/entryDataFactories/createRepublishEntryData.js.map +1 -0
  24. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.d.ts +12 -0
  25. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js +38 -0
  26. package/crud/contentEntry/entryDataFactories/createUnpublishEntryData.js.map +1 -0
  27. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.d.ts +20 -0
  28. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js +122 -0
  29. package/crud/contentEntry/entryDataFactories/createUpdateEntryData.js.map +1 -0
  30. package/crud/contentEntry/entryDataFactories/index.d.ts +8 -0
  31. package/crud/contentEntry/entryDataFactories/index.js +95 -0
  32. package/crud/contentEntry/entryDataFactories/index.js.map +1 -0
  33. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.d.ts +5 -0
  34. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js +36 -0
  35. package/crud/contentEntry/entryDataFactories/mapAndCleanUpdatedInputData.js.map +1 -0
  36. package/crud/contentEntry/entryDataFactories/statuses.d.ts +4 -0
  37. package/crud/contentEntry/entryDataFactories/statuses.js +15 -0
  38. package/crud/contentEntry/entryDataFactories/statuses.js.map +1 -0
  39. package/crud/contentEntry/entryDataValidation.d.ts +4 -2
  40. package/crud/contentEntry/entryDataValidation.js +223 -45
  41. package/crud/contentEntry/entryDataValidation.js.map +1 -1
  42. package/crud/contentEntry/markLockedFields.js +17 -10
  43. package/crud/contentEntry/markLockedFields.js.map +1 -1
  44. package/crud/contentEntry/referenceFieldsMapping.d.ts +6 -0
  45. package/crud/contentEntry/referenceFieldsMapping.js +134 -111
  46. package/crud/contentEntry/referenceFieldsMapping.js.map +1 -1
  47. package/crud/contentEntry/searchableFields.js +5 -4
  48. package/crud/contentEntry/searchableFields.js.map +1 -1
  49. package/crud/contentEntry.crud.d.ts +1 -4
  50. package/crud/contentEntry.crud.js +295 -466
  51. package/crud/contentEntry.crud.js.map +1 -1
  52. package/crud/contentModel/beforeCreate.d.ts +1 -1
  53. package/crud/contentModel/beforeCreate.js +11 -9
  54. package/crud/contentModel/beforeCreate.js.map +1 -1
  55. package/crud/contentModel/beforeDelete.js +3 -1
  56. package/crud/contentModel/beforeDelete.js.map +1 -1
  57. package/crud/contentModel/beforeUpdate.d.ts +1 -1
  58. package/crud/contentModel/beforeUpdate.js +3 -6
  59. package/crud/contentModel/beforeUpdate.js.map +1 -1
  60. package/crud/contentModel/compatibility/modelApiName.js +3 -1
  61. package/crud/contentModel/compatibility/modelApiName.js.map +1 -1
  62. package/crud/contentModel/contentModelManagerFactory.js +3 -1
  63. package/crud/contentModel/contentModelManagerFactory.js.map +1 -1
  64. package/crud/contentModel/createFieldStorageId.js +3 -1
  65. package/crud/contentModel/createFieldStorageId.js.map +1 -1
  66. package/crud/contentModel/defaultFields.js +3 -1
  67. package/crud/contentModel/defaultFields.js.map +1 -1
  68. package/crud/contentModel/ensureTypeTag.d.ts +5 -0
  69. package/crud/contentModel/ensureTypeTag.js +21 -0
  70. package/crud/contentModel/ensureTypeTag.js.map +1 -0
  71. package/crud/contentModel/fields/descriptionField.js +4 -2
  72. package/crud/contentModel/fields/descriptionField.js.map +1 -1
  73. package/crud/contentModel/fields/imageField.js +6 -8
  74. package/crud/contentModel/fields/imageField.js.map +1 -1
  75. package/crud/contentModel/fields/titleField.js +4 -2
  76. package/crud/contentModel/fields/titleField.js.map +1 -1
  77. package/crud/contentModel/listModelsFromDatabase.d.ts +10 -0
  78. package/crud/contentModel/listModelsFromDatabase.js +38 -0
  79. package/crud/contentModel/listModelsFromDatabase.js.map +1 -0
  80. package/crud/contentModel/validate/endingAllowed.js +3 -1
  81. package/crud/contentModel/validate/endingAllowed.js.map +1 -1
  82. package/crud/contentModel/validate/isModelEndingAllowed.js +4 -2
  83. package/crud/contentModel/validate/isModelEndingAllowed.js.map +1 -1
  84. package/crud/contentModel/validate/modelId.js +3 -1
  85. package/crud/contentModel/validate/modelId.js.map +1 -1
  86. package/crud/contentModel/validate/pluralApiName.js +3 -1
  87. package/crud/contentModel/validate/pluralApiName.js.map +1 -1
  88. package/crud/contentModel/validate/singularApiName.js +3 -1
  89. package/crud/contentModel/validate/singularApiName.js.map +1 -1
  90. package/crud/contentModel/validateModel.js +3 -1
  91. package/crud/contentModel/validateModel.js.map +1 -1
  92. package/crud/contentModel/validateModelFields.js +7 -6
  93. package/crud/contentModel/validateModelFields.js.map +1 -1
  94. package/crud/contentModel/validation.d.ts +531 -210
  95. package/crud/contentModel/validation.js +71 -11
  96. package/crud/contentModel/validation.js.map +1 -1
  97. package/crud/contentModel.crud.js +137 -182
  98. package/crud/contentModel.crud.js.map +1 -1
  99. package/crud/contentModelGroup/beforeCreate.d.ts +1 -1
  100. package/crud/contentModelGroup/beforeCreate.js +15 -1
  101. package/crud/contentModelGroup/beforeCreate.js.map +1 -1
  102. package/crud/contentModelGroup/beforeDelete.js +3 -1
  103. package/crud/contentModelGroup/beforeDelete.js.map +1 -1
  104. package/crud/contentModelGroup/beforeUpdate.js +3 -1
  105. package/crud/contentModelGroup/beforeUpdate.js.map +1 -1
  106. package/crud/contentModelGroup/listGroupsFromDatabase.d.ts +8 -0
  107. package/crud/contentModelGroup/listGroupsFromDatabase.js +22 -0
  108. package/crud/contentModelGroup/listGroupsFromDatabase.js.map +1 -0
  109. package/crud/contentModelGroup/validation.d.ts +9 -6
  110. package/crud/contentModelGroup/validation.js +5 -2
  111. package/crud/contentModelGroup/validation.js.map +1 -1
  112. package/crud/contentModelGroup.crud.d.ts +1 -1
  113. package/crud/contentModelGroup.crud.js +113 -112
  114. package/crud/contentModelGroup.crud.js.map +1 -1
  115. package/crud/system.crud.js +8 -11
  116. package/crud/system.crud.js.map +1 -1
  117. package/export/crud/exporting.d.ts +3 -0
  118. package/export/crud/exporting.js +49 -0
  119. package/export/crud/exporting.js.map +1 -0
  120. package/export/crud/importing.d.ts +3 -0
  121. package/export/crud/importing.js +79 -0
  122. package/export/crud/importing.js.map +1 -0
  123. package/export/crud/imports/importData.d.ts +14 -0
  124. package/export/crud/imports/importData.js +52 -0
  125. package/export/crud/imports/importData.js.map +1 -0
  126. package/export/crud/imports/importGroups.d.ts +8 -0
  127. package/export/crud/imports/importGroups.js +104 -0
  128. package/export/crud/imports/importGroups.js.map +1 -0
  129. package/export/crud/imports/importModels.d.ts +8 -0
  130. package/export/crud/imports/importModels.js +136 -0
  131. package/export/crud/imports/importModels.js.map +1 -0
  132. package/export/crud/imports/validateGroups.d.ts +8 -0
  133. package/export/crud/imports/validateGroups.js +112 -0
  134. package/export/crud/imports/validateGroups.js.map +1 -0
  135. package/export/crud/imports/validateInput.d.ts +19 -0
  136. package/export/crud/imports/validateInput.js +55 -0
  137. package/export/crud/imports/validateInput.js.map +1 -0
  138. package/export/crud/imports/validateModels.d.ts +12 -0
  139. package/export/crud/imports/validateModels.js +203 -0
  140. package/export/crud/imports/validateModels.js.map +1 -0
  141. package/export/crud/index.d.ts +4 -0
  142. package/export/crud/index.js +15 -0
  143. package/export/crud/index.js.map +1 -0
  144. package/export/crud/sanitize.d.ts +4 -0
  145. package/export/crud/sanitize.js +35 -0
  146. package/export/crud/sanitize.js.map +1 -0
  147. package/export/graphql/index.d.ts +3 -0
  148. package/export/graphql/index.js +188 -0
  149. package/export/graphql/index.js.map +1 -0
  150. package/export/index.d.ts +2 -0
  151. package/export/index.js +29 -0
  152. package/export/index.js.map +1 -0
  153. package/export/types.d.ts +113 -0
  154. package/export/types.js +22 -0
  155. package/export/types.js.map +1 -0
  156. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js +4 -7
  157. package/fieldConverters/CmsModelDefaultFieldConverterPlugin.js.map +1 -1
  158. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js +5 -8
  159. package/fieldConverters/CmsModelDynamicZoneFieldConverterPlugin.js.map +1 -1
  160. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js +47 -38
  161. package/fieldConverters/CmsModelObjectFieldConverterPlugin.js.map +1 -1
  162. package/fieldConverters/index.js +3 -1
  163. package/fieldConverters/index.js.map +1 -1
  164. package/graphql/buildSchemaPlugins.js +7 -1
  165. package/graphql/buildSchemaPlugins.js.map +1 -1
  166. package/graphql/checkEndpointAccess.js +3 -1
  167. package/graphql/checkEndpointAccess.js.map +1 -1
  168. package/graphql/createExecutableSchema.js +3 -1
  169. package/graphql/createExecutableSchema.js.map +1 -1
  170. package/graphql/createRequestBody.js +3 -1
  171. package/graphql/createRequestBody.js.map +1 -1
  172. package/graphql/formatErrorPayload.js +3 -1
  173. package/graphql/formatErrorPayload.js.map +1 -1
  174. package/graphql/generateSchema.js +3 -1
  175. package/graphql/generateSchema.js.map +1 -1
  176. package/graphql/getSchema.d.ts +0 -1
  177. package/graphql/getSchema.js +34 -18
  178. package/graphql/getSchema.js.map +1 -1
  179. package/graphql/graphQLHandlerFactory.js +3 -1
  180. package/graphql/graphQLHandlerFactory.js.map +1 -1
  181. package/graphql/handleRequest.js +3 -5
  182. package/graphql/handleRequest.js.map +1 -1
  183. package/graphql/index.d.ts +1 -1
  184. package/graphql/index.js +4 -2
  185. package/graphql/index.js.map +1 -1
  186. package/graphql/schema/baseContentSchema.js +9 -8
  187. package/graphql/schema/baseContentSchema.js.map +1 -1
  188. package/graphql/schema/baseSchema.d.ts +2 -3
  189. package/graphql/schema/baseSchema.js +64 -2
  190. package/graphql/schema/baseSchema.js.map +1 -1
  191. package/graphql/schema/contentEntries.js +51 -18
  192. package/graphql/schema/contentEntries.js.map +1 -1
  193. package/graphql/schema/contentModelGroups.js +5 -2
  194. package/graphql/schema/contentModelGroups.js.map +1 -1
  195. package/graphql/schema/contentModels.js +10 -10
  196. package/graphql/schema/contentModels.js.map +1 -1
  197. package/graphql/schema/createFieldResolvers.js +14 -12
  198. package/graphql/schema/createFieldResolvers.js.map +1 -1
  199. package/graphql/schema/createFieldTypePluginRecords.js +3 -1
  200. package/graphql/schema/createFieldTypePluginRecords.js.map +1 -1
  201. package/graphql/schema/createManageResolvers.js +13 -10
  202. package/graphql/schema/createManageResolvers.js.map +1 -1
  203. package/graphql/schema/createManageSDL.js +37 -19
  204. package/graphql/schema/createManageSDL.js.map +1 -1
  205. package/graphql/schema/createPreviewResolvers.js +7 -6
  206. package/graphql/schema/createPreviewResolvers.js.map +1 -1
  207. package/graphql/schema/createReadResolvers.js +7 -6
  208. package/graphql/schema/createReadResolvers.js.map +1 -1
  209. package/graphql/schema/createReadSDL.js +12 -5
  210. package/graphql/schema/createReadSDL.js.map +1 -1
  211. package/graphql/schema/resolvers/manage/resolveCreate.d.ts +2 -1
  212. package/graphql/schema/resolvers/manage/resolveCreate.js +4 -2
  213. package/graphql/schema/resolvers/manage/resolveCreate.js.map +1 -1
  214. package/graphql/schema/resolvers/manage/resolveCreateFrom.d.ts +2 -1
  215. package/graphql/schema/resolvers/manage/resolveCreateFrom.js +4 -2
  216. package/graphql/schema/resolvers/manage/resolveCreateFrom.js.map +1 -1
  217. package/graphql/schema/resolvers/manage/resolveDelete.js +4 -2
  218. package/graphql/schema/resolvers/manage/resolveDelete.js.map +1 -1
  219. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js +4 -2
  220. package/graphql/schema/resolvers/manage/resolveDeleteMultiple.js.map +1 -1
  221. package/graphql/schema/resolvers/manage/resolveGet.js +12 -5
  222. package/graphql/schema/resolvers/manage/resolveGet.js.map +1 -1
  223. package/graphql/schema/resolvers/manage/resolveGetByIds.js +3 -1
  224. package/graphql/schema/resolvers/manage/resolveGetByIds.js.map +1 -1
  225. package/graphql/schema/resolvers/manage/resolveGetRevisions.js +3 -1
  226. package/graphql/schema/resolvers/manage/resolveGetRevisions.js.map +1 -1
  227. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js +3 -1
  228. package/graphql/schema/resolvers/manage/resolveGetUniqueFieldValues.js.map +1 -1
  229. package/graphql/schema/resolvers/manage/resolveList.js +3 -1
  230. package/graphql/schema/resolvers/manage/resolveList.js.map +1 -1
  231. package/graphql/schema/resolvers/manage/resolveMove.js +7 -10
  232. package/graphql/schema/resolvers/manage/resolveMove.js.map +1 -1
  233. package/graphql/schema/resolvers/manage/resolvePublish.js +3 -1
  234. package/graphql/schema/resolvers/manage/resolvePublish.js.map +1 -1
  235. package/graphql/schema/resolvers/manage/resolveRepublish.js +3 -1
  236. package/graphql/schema/resolvers/manage/resolveRepublish.js.map +1 -1
  237. package/graphql/schema/resolvers/manage/resolveUnpublish.js +3 -1
  238. package/graphql/schema/resolvers/manage/resolveUnpublish.js.map +1 -1
  239. package/graphql/schema/resolvers/manage/resolveUpdate.d.ts +2 -1
  240. package/graphql/schema/resolvers/manage/resolveUpdate.js +4 -2
  241. package/graphql/schema/resolvers/manage/resolveUpdate.js.map +1 -1
  242. package/graphql/schema/resolvers/manage/resolveValidate.d.ts +8 -0
  243. package/graphql/schema/resolvers/manage/resolveValidate.js +20 -0
  244. package/graphql/schema/resolvers/manage/resolveValidate.js.map +1 -0
  245. package/graphql/schema/resolvers/preview/resolveGet.js +6 -5
  246. package/graphql/schema/resolvers/preview/resolveGet.js.map +1 -1
  247. package/graphql/schema/resolvers/preview/resolveList.js +3 -1
  248. package/graphql/schema/resolvers/preview/resolveList.js.map +1 -1
  249. package/graphql/schema/resolvers/read/resolveGet.js +6 -5
  250. package/graphql/schema/resolvers/read/resolveGet.js.map +1 -1
  251. package/graphql/schema/resolvers/read/resolveList.js +3 -1
  252. package/graphql/schema/resolvers/read/resolveList.js.map +1 -1
  253. package/graphql/schema/schemaPlugins.js +3 -1
  254. package/graphql/schema/schemaPlugins.js.map +1 -1
  255. package/graphql/system.js +3 -1
  256. package/graphql/system.js.map +1 -1
  257. package/graphqlFields/boolean.js +3 -1
  258. package/graphqlFields/boolean.js.map +1 -1
  259. package/graphqlFields/datetime.js +5 -5
  260. package/graphqlFields/datetime.js.map +1 -1
  261. package/graphqlFields/dynamicZone/dynamicZoneField.js +42 -19
  262. package/graphqlFields/dynamicZone/dynamicZoneField.js.map +1 -1
  263. package/graphqlFields/dynamicZone/dynamicZoneStorage.js +60 -12
  264. package/graphqlFields/dynamicZone/dynamicZoneStorage.js.map +1 -1
  265. package/graphqlFields/dynamicZone/index.js +3 -1
  266. package/graphqlFields/dynamicZone/index.js.map +1 -1
  267. package/graphqlFields/file.js +3 -1
  268. package/graphqlFields/file.js.map +1 -1
  269. package/graphqlFields/helpers.d.ts +0 -1
  270. package/graphqlFields/helpers.js +6 -18
  271. package/graphqlFields/helpers.js.map +1 -1
  272. package/graphqlFields/index.js +5 -2
  273. package/graphqlFields/index.js.map +1 -1
  274. package/graphqlFields/json.d.ts +2 -0
  275. package/graphqlFields/json.js +49 -0
  276. package/graphqlFields/json.js.map +1 -0
  277. package/graphqlFields/longText.js +14 -3
  278. package/graphqlFields/longText.js.map +1 -1
  279. package/graphqlFields/number.js +3 -1
  280. package/graphqlFields/number.js.map +1 -1
  281. package/graphqlFields/object.js +24 -44
  282. package/graphqlFields/object.js.map +1 -1
  283. package/graphqlFields/ref.js +28 -16
  284. package/graphqlFields/ref.js.map +1 -1
  285. package/graphqlFields/richText/RichTextPluginsProcessor.d.ts +6 -0
  286. package/graphqlFields/richText/RichTextPluginsProcessor.js +34 -0
  287. package/graphqlFields/richText/RichTextPluginsProcessor.js.map +1 -0
  288. package/graphqlFields/richText/richTextResolver.d.ts +7 -0
  289. package/graphqlFields/richText/richTextResolver.js +39 -0
  290. package/graphqlFields/richText/richTextResolver.js.map +1 -0
  291. package/graphqlFields/richText.js +11 -3
  292. package/graphqlFields/richText.js.map +1 -1
  293. package/graphqlFields/text.js +3 -1
  294. package/graphqlFields/text.js.map +1 -1
  295. package/htmlRenderer/LexicalRenderer.d.ts +5 -0
  296. package/htmlRenderer/LexicalRenderer.js +28 -0
  297. package/htmlRenderer/LexicalRenderer.js.map +1 -0
  298. package/htmlRenderer/createLexicalHTMLRenderer.d.ts +2 -0
  299. package/htmlRenderer/createLexicalHTMLRenderer.js +31 -0
  300. package/htmlRenderer/createLexicalHTMLRenderer.js.map +1 -0
  301. package/index.d.ts +2 -1
  302. package/index.js +20 -5
  303. package/index.js.map +1 -1
  304. package/modelManager/DefaultCmsModelManager.js +3 -5
  305. package/modelManager/DefaultCmsModelManager.js.map +1 -1
  306. package/modelManager/index.js +3 -1
  307. package/modelManager/index.js.map +1 -1
  308. package/package.json +27 -26
  309. package/parameters/context.js +4 -2
  310. package/parameters/context.js.map +1 -1
  311. package/parameters/header.js +7 -6
  312. package/parameters/header.js.map +1 -1
  313. package/parameters/index.js +3 -1
  314. package/parameters/index.js.map +1 -1
  315. package/parameters/manual.js +9 -4
  316. package/parameters/manual.js.map +1 -1
  317. package/parameters/path.js +4 -3
  318. package/parameters/path.js.map +1 -1
  319. package/plugins/CmsGraphQLSchemaPlugin.js +5 -4
  320. package/plugins/CmsGraphQLSchemaPlugin.js.map +1 -1
  321. package/plugins/CmsGraphQLSchemaSorterPlugin.js +4 -5
  322. package/plugins/CmsGraphQLSchemaSorterPlugin.js.map +1 -1
  323. package/plugins/CmsGroupPlugin.d.ts +6 -3
  324. package/plugins/CmsGroupPlugin.js +8 -6
  325. package/plugins/CmsGroupPlugin.js.map +1 -1
  326. package/plugins/CmsModelFieldConverterPlugin.js +5 -4
  327. package/plugins/CmsModelFieldConverterPlugin.js.map +1 -1
  328. package/plugins/CmsModelPlugin.d.ts +6 -4
  329. package/plugins/CmsModelPlugin.js +56 -27
  330. package/plugins/CmsModelPlugin.js.map +1 -1
  331. package/plugins/CmsParametersPlugin.js +7 -4
  332. package/plugins/CmsParametersPlugin.js.map +1 -1
  333. package/plugins/CmsRichTextRendererPlugin.d.ts +24 -0
  334. package/plugins/CmsRichTextRendererPlugin.js +28 -0
  335. package/plugins/CmsRichTextRendererPlugin.js.map +1 -0
  336. package/plugins/StorageOperationsCmsModelPlugin.js +5 -6
  337. package/plugins/StorageOperationsCmsModelPlugin.js.map +1 -1
  338. package/plugins/StorageTransformPlugin.d.ts +2 -2
  339. package/plugins/StorageTransformPlugin.js +3 -4
  340. package/plugins/StorageTransformPlugin.js.map +1 -1
  341. package/plugins/index.d.ts +1 -0
  342. package/plugins/index.js +14 -1
  343. package/plugins/index.js.map +1 -1
  344. package/storage/default.js +3 -1
  345. package/storage/default.js.map +1 -1
  346. package/storage/index.d.ts +1 -0
  347. package/storage/index.js +15 -0
  348. package/storage/index.js.map +1 -0
  349. package/storage/json.d.ts +2 -0
  350. package/storage/json.js +27 -0
  351. package/storage/json.js.map +1 -0
  352. package/storage/object.js +8 -8
  353. package/storage/object.js.map +1 -1
  354. package/types.d.ts +300 -260
  355. package/types.js +9 -20
  356. package/types.js.map +1 -1
  357. package/utils/access.d.ts +9 -0
  358. package/utils/access.js +26 -0
  359. package/utils/access.js.map +1 -0
  360. package/utils/caching/Cache.d.ts +2 -0
  361. package/utils/caching/Cache.js +51 -0
  362. package/utils/caching/Cache.js.map +1 -0
  363. package/utils/caching/CacheKey.d.ts +2 -0
  364. package/utils/caching/CacheKey.js +40 -0
  365. package/utils/caching/CacheKey.js.map +1 -0
  366. package/utils/caching/index.d.ts +2 -0
  367. package/utils/caching/index.js +29 -0
  368. package/utils/caching/index.js.map +1 -0
  369. package/utils/caching/types.d.ts +11 -0
  370. package/utils/caching/types.js +7 -0
  371. package/utils/caching/types.js.map +1 -0
  372. package/utils/converters/Converter.js +4 -5
  373. package/utils/converters/Converter.js.map +1 -1
  374. package/utils/converters/ConverterCollection.js +13 -7
  375. package/utils/converters/ConverterCollection.js.map +1 -1
  376. package/utils/converters/valueKeyStorageConverter.js +11 -4
  377. package/utils/converters/valueKeyStorageConverter.js.map +1 -1
  378. package/utils/createTypeFromFields.js +6 -1
  379. package/utils/createTypeFromFields.js.map +1 -1
  380. package/utils/createTypeName.js +3 -1
  381. package/utils/createTypeName.js.map +1 -1
  382. package/utils/date.d.ts +10 -0
  383. package/utils/date.js +36 -0
  384. package/utils/date.js.map +1 -0
  385. package/utils/entryStorage.d.ts +4 -4
  386. package/utils/entryStorage.js +6 -4
  387. package/utils/entryStorage.js.map +1 -1
  388. package/utils/filterAsync.js +9 -8
  389. package/utils/filterAsync.js.map +1 -1
  390. package/utils/getBaseFieldType.js +3 -1
  391. package/utils/getBaseFieldType.js.map +1 -1
  392. package/utils/getEntryDescription.js +3 -1
  393. package/utils/getEntryDescription.js.map +1 -1
  394. package/utils/getEntryImage.js +3 -1
  395. package/utils/getEntryImage.js.map +1 -1
  396. package/utils/getEntryTitle.js +3 -1
  397. package/utils/getEntryTitle.js.map +1 -1
  398. package/utils/getSchemaFromFieldPlugins.d.ts +13 -2
  399. package/utils/getSchemaFromFieldPlugins.js +22 -4
  400. package/utils/getSchemaFromFieldPlugins.js.map +1 -1
  401. package/utils/identity.d.ts +2 -0
  402. package/utils/identity.js +20 -0
  403. package/utils/identity.js.map +1 -0
  404. package/utils/incrementEntryIdVersion.js +3 -1
  405. package/utils/incrementEntryIdVersion.js.map +1 -1
  406. package/utils/index.d.ts +1 -0
  407. package/utils/index.js +18 -0
  408. package/utils/index.js.map +1 -0
  409. package/utils/permissions/EntriesPermissions.js +3 -1
  410. package/utils/permissions/EntriesPermissions.js.map +1 -1
  411. package/utils/permissions/ModelGroupsPermissions.d.ts +3 -5
  412. package/utils/permissions/ModelGroupsPermissions.js +8 -6
  413. package/utils/permissions/ModelGroupsPermissions.js.map +1 -1
  414. package/utils/permissions/ModelsPermissions.d.ts +9 -7
  415. package/utils/permissions/ModelsPermissions.js +5 -6
  416. package/utils/permissions/ModelsPermissions.js.map +1 -1
  417. package/utils/renderFields.js +3 -1
  418. package/utils/renderFields.js.map +1 -1
  419. package/utils/renderGetFilterFields.js +5 -4
  420. package/utils/renderGetFilterFields.js.map +1 -1
  421. package/utils/renderInputFields.js +3 -1
  422. package/utils/renderInputFields.js.map +1 -1
  423. package/utils/renderListFilterFields.js +12 -4
  424. package/utils/renderListFilterFields.js.map +1 -1
  425. package/utils/renderSortEnum.js +5 -2
  426. package/utils/renderSortEnum.js.map +1 -1
  427. package/utils/toSlug.js +3 -1
  428. package/utils/toSlug.js.map +1 -1
  429. package/validators/dateGte.js +3 -1
  430. package/validators/dateGte.js.map +1 -1
  431. package/validators/dateLte.js +3 -1
  432. package/validators/dateLte.js.map +1 -1
  433. package/validators/gte.js +4 -3
  434. package/validators/gte.js.map +1 -1
  435. package/validators/in.js +4 -3
  436. package/validators/in.js.map +1 -1
  437. package/validators/index.js +4 -3
  438. package/validators/index.js.map +1 -1
  439. package/validators/lte.js +4 -3
  440. package/validators/lte.js.map +1 -1
  441. package/validators/maxLength.js +4 -3
  442. package/validators/maxLength.js.map +1 -1
  443. package/validators/minLength.js +4 -3
  444. package/validators/minLength.js.map +1 -1
  445. package/validators/pattern.js +5 -3
  446. package/validators/pattern.js.map +1 -1
  447. package/validators/patternPlugins/email.js +3 -1
  448. package/validators/patternPlugins/email.js.map +1 -1
  449. package/validators/patternPlugins/index.js +3 -1
  450. package/validators/patternPlugins/index.js.map +1 -1
  451. package/validators/patternPlugins/lowerCase.js +3 -1
  452. package/validators/patternPlugins/lowerCase.js.map +1 -1
  453. package/validators/patternPlugins/lowerCaseSpace.js +3 -1
  454. package/validators/patternPlugins/lowerCaseSpace.js.map +1 -1
  455. package/validators/patternPlugins/upperCase.js +3 -1
  456. package/validators/patternPlugins/upperCase.js.map +1 -1
  457. package/validators/patternPlugins/upperCaseSpace.js +3 -1
  458. package/validators/patternPlugins/upperCaseSpace.js.map +1 -1
  459. package/validators/patternPlugins/url.js +3 -1
  460. package/validators/patternPlugins/url.js.map +1 -1
  461. package/validators/required.js +3 -1
  462. package/validators/required.js.map +1 -1
  463. package/validators/timeGte.js +4 -3
  464. package/validators/timeGte.js.map +1 -1
  465. package/validators/timeLte.js +4 -3
  466. package/validators/timeLte.js.map +1 -1
  467. package/validators/unique.js +4 -2
  468. package/validators/unique.js.map +1 -1
  469. package/crud/contentModel/afterCreate.d.ts +0 -8
  470. package/crud/contentModel/afterCreate.js +0 -16
  471. package/crud/contentModel/afterCreate.js.map +0 -1
  472. package/crud/contentModel/afterCreateFrom.d.ts +0 -8
  473. package/crud/contentModel/afterCreateFrom.js +0 -16
  474. package/crud/contentModel/afterCreateFrom.js.map +0 -1
  475. package/crud/contentModel/afterDelete.d.ts +0 -8
  476. package/crud/contentModel/afterDelete.js +0 -16
  477. package/crud/contentModel/afterDelete.js.map +0 -1
  478. package/crud/contentModel/afterUpdate.d.ts +0 -8
  479. package/crud/contentModel/afterUpdate.js +0 -16
  480. package/crud/contentModel/afterUpdate.js.map +0 -1
  481. package/crud/contentModel/validateLayout.d.ts +0 -2
  482. package/crud/contentModel/validateLayout.js +0 -28
  483. package/crud/contentModel/validateLayout.js.map +0 -1
  484. package/crud/settings.crud.d.ts +0 -12
  485. package/crud/settings.crud.js +0 -62
  486. package/crud/settings.crud.js.map +0 -1
  487. package/graphql/schema/resolvers/commonFieldResolvers.d.ts +0 -7
  488. package/graphql/schema/resolvers/commonFieldResolvers.js +0 -13
  489. package/graphql/schema/resolvers/commonFieldResolvers.js.map +0 -1
  490. package/utils/permissions/SettingsPermissions.d.ts +0 -4
  491. package/utils/permissions/SettingsPermissions.js +0 -9
  492. package/utils/permissions/SettingsPermissions.js.map +0 -1
  493. package/validators/dynamicZone.d.ts +0 -2
  494. package/validators/dynamicZone.js +0 -20
  495. package/validators/dynamicZone.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createListFilters","field","fieldId","createLongTextField","name","type","fieldType","isSortable","isSearchable","fullTextSearch","read","createTypeField","multipleValues","manage","createInputField","createGraphQLInputField"],"sources":["longText.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}_contains: String\n ${field.fieldId}_not_contains: String\n `;\n};\n\nexport const createLongTextField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-long-text\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"long-text\",\n isSortable: false,\n isSearchable: true,\n fullTextSearch: true,\n read: {\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n\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\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,KAAK;AACL,CAAC;AAEM,MAAMC,mBAAmB,GAAG,MAAoC;EACnE,OAAO;IACHC,IAAI,EAAE,sCAAsC;IAC5CC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,WAAW;IACtBC,UAAU,EAAE,KAAK;IACjBC,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;QAEA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF;IACJ,CAAC;IACDa,MAAM,EAAE;MACJb,iBAAiB;MACjBW,eAAe,CAAC;QAAEV;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACW,cAAc,EAAE;UACtB,OAAOX,KAAK,CAACC,OAAO,GAAG,YAAY;QACvC;QAEA,OAAOD,KAAK,CAACC,OAAO,GAAG,UAAU;MACrC,CAAC;MACDY,gBAAgB,CAAC;QAAEb;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAc,gCAAuB,EAACd,KAAK,EAAE,QAAQ,CAAC;MACnD;IACJ;EACJ,CAAC;AACL,CAAC;AAAC"}
1
+ {"version":3,"names":["_helpers","require","createListFilters","field","fieldId","createResolver","parent","createLongTextField","name","type","fieldType","isSortable","isSearchable","fullTextSearch","read","createTypeField","multipleValues","manage","createInputField","createGraphQLInputField","exports"],"sources":["longText.ts"],"sourcesContent":["import {\n CmsModelField,\n CmsModelFieldToGraphQLCreateResolver,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { createGraphQLInputField } from \"./helpers\";\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n}\nconst createListFilters = ({ field }: CreateListFiltersParams) => {\n return `\n ${field.fieldId}_contains: String\n ${field.fieldId}_not_contains: String\n `;\n};\nconst createResolver: CmsModelFieldToGraphQLCreateResolver = ({ field }) => {\n return async parent => {\n return parent[field.fieldId] || null;\n };\n};\n\nexport const createLongTextField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-long-text\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"long-text\",\n isSortable: false,\n isSearchable: true,\n fullTextSearch: true,\n read: {\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [String]`;\n }\n\n return `${field.fieldId}: String`;\n },\n createListFilters,\n createResolver\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return field.fieldId + \": [String]\";\n }\n\n return field.fieldId + \": String\";\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"String\");\n },\n createResolver\n }\n };\n};\n"],"mappings":";;;;;;AAKA,IAAAA,QAAA,GAAAC,OAAA;AAKA,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAC9D,OAAQ;AACZ,UAAUA,KAAK,CAACC,OAAQ;AACxB,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAAK;AACL,CAAC;AACD,MAAMC,cAAoD,GAAGA,CAAC;EAAEF;AAAM,CAAC,KAAK;EACxE,OAAO,MAAMG,MAAM,IAAI;IACnB,OAAOA,MAAM,CAACH,KAAK,CAACC,OAAO,CAAC,IAAI,IAAI;EACxC,CAAC;AACL,CAAC;AAEM,MAAMG,mBAAmB,GAAGA,CAAA,KAAoC;EACnE,OAAO;IACHC,IAAI,EAAE,sCAAsC;IAC5CC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,WAAW;IACtBC,UAAU,EAAE,KAAK;IACjBC,YAAY,EAAE,IAAI;IAClBC,cAAc,EAAE,IAAI;IACpBC,IAAI,EAAE;MACFC,eAAeA,CAAC;QAAEZ;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACa,cAAc,EAAE;UACtB,OAAQ,GAAEb,KAAK,CAACC,OAAQ,YAAW;QACvC;QAEA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF,iBAAiB;MACjBG;IACJ,CAAC;IACDY,MAAM,EAAE;MACJf,iBAAiB;MACjBa,eAAeA,CAAC;QAAEZ;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACa,cAAc,EAAE;UACtB,OAAOb,KAAK,CAACC,OAAO,GAAG,YAAY;QACvC;QAEA,OAAOD,KAAK,CAACC,OAAO,GAAG,UAAU;MACrC,CAAC;MACDc,gBAAgBA,CAAC;QAAEf;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAgB,gCAAuB,EAAChB,KAAK,EAAE,QAAQ,CAAC;MACnD,CAAC;MACDE;IACJ;EACJ,CAAC;AACL,CAAC;AAACe,OAAA,CAAAb,mBAAA,GAAAA,mBAAA"}
@@ -65,4 +65,6 @@ const createNumberField = () => {
65
65
  }
66
66
  };
67
67
  };
68
- exports.createNumberField = createNumberField;
68
+ exports.createNumberField = createNumberField;
69
+
70
+ //# sourceMappingURL=number.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createListFilters","field","fieldId","createNumberField","name","type","fieldType","isSortable","isSearchable","fullTextSearch","read","createGetFilters","createTypeField","multipleValues","manage","createInputField","createGraphQLInputField"],"sources":["number.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}: Number\n ${field.fieldId}_not: Number\n ${field.fieldId}_in: [Number]\n ${field.fieldId}_not_in: [Number]\n ${field.fieldId}_lt: Number\n ${field.fieldId}_lte: Number\n ${field.fieldId}_gt: Number\n ${field.fieldId}_gte: Number\n # there must be two numbers sent in the array\n ${field.fieldId}_between: [Number!]\n # there must be two numbers sent in the array\n ${field.fieldId}_not_between: [Number!]\n `;\n};\n\nexport const createNumberField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-number\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"number\",\n isSortable: true,\n isSearchable: true,\n fullTextSearch: false,\n read: {\n createGetFilters({ field }) {\n return `${field.fieldId}: Number`;\n },\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [Number]`;\n }\n\n return `${field.fieldId}: Number`;\n }\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return field.fieldId + \": [Number]\";\n }\n\n return field.fieldId + \": Number\";\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"Number\");\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;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAAK;AACL,CAAC;AAEM,MAAMC,iBAAiB,GAAG,MAAoC;EACjE,OAAO;IACHC,IAAI,EAAE,mCAAmC;IACzCC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,IAAI;IAChBC,YAAY,EAAE,IAAI;IAClBC,cAAc,EAAE,KAAK;IACrBC,IAAI,EAAE;MACFC,gBAAgB,CAAC;QAAEV;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF,iBAAiB;MACjBY,eAAe,CAAC;QAAEX;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACY,cAAc,EAAE;UACtB,OAAQ,GAAEZ,KAAK,CAACC,OAAQ,YAAW;QACvC;QAEA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC;IACJ,CAAC;IACDY,MAAM,EAAE;MACJd,iBAAiB;MACjBY,eAAe,CAAC;QAAEX;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACY,cAAc,EAAE;UACtB,OAAOZ,KAAK,CAACC,OAAO,GAAG,YAAY;QACvC;QAEA,OAAOD,KAAK,CAACC,OAAO,GAAG,UAAU;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"}
1
+ {"version":3,"names":["_helpers","require","createListFilters","field","fieldId","createNumberField","name","type","fieldType","isSortable","isSearchable","fullTextSearch","read","createGetFilters","createTypeField","multipleValues","manage","createInputField","createGraphQLInputField","exports"],"sources":["number.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}: Number\n ${field.fieldId}_not: Number\n ${field.fieldId}_in: [Number]\n ${field.fieldId}_not_in: [Number]\n ${field.fieldId}_lt: Number\n ${field.fieldId}_lte: Number\n ${field.fieldId}_gt: Number\n ${field.fieldId}_gte: Number\n # there must be two numbers sent in the array\n ${field.fieldId}_between: [Number!]\n # there must be two numbers sent in the array\n ${field.fieldId}_not_between: [Number!]\n `;\n};\n\nexport const createNumberField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-number\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"number\",\n isSortable: true,\n isSearchable: true,\n fullTextSearch: false,\n read: {\n createGetFilters({ field }) {\n return `${field.fieldId}: Number`;\n },\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return `${field.fieldId}: [Number]`;\n }\n\n return `${field.fieldId}: Number`;\n }\n },\n manage: {\n createListFilters,\n createTypeField({ field }) {\n if (field.multipleValues) {\n return field.fieldId + \": [Number]\";\n }\n\n return field.fieldId + \": Number\";\n },\n createInputField({ field }) {\n return createGraphQLInputField(field, \"Number\");\n }\n }\n };\n};\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,OAAA;AAKA,MAAMC,iBAAiB,GAAGA,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;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB;AACA,UAAUD,KAAK,CAACC,OAAQ;AACxB,KAAK;AACL,CAAC;AAEM,MAAMC,iBAAiB,GAAGA,CAAA,KAAoC;EACjE,OAAO;IACHC,IAAI,EAAE,mCAAmC;IACzCC,IAAI,EAAE,4BAA4B;IAClCC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,IAAI;IAChBC,YAAY,EAAE,IAAI;IAClBC,cAAc,EAAE,KAAK;IACrBC,IAAI,EAAE;MACFC,gBAAgBA,CAAC;QAAEV;MAAM,CAAC,EAAE;QACxB,OAAQ,GAAEA,KAAK,CAACC,OAAQ,UAAS;MACrC,CAAC;MACDF,iBAAiB;MACjBY,eAAeA,CAAC;QAAEX;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACY,cAAc,EAAE;UACtB,OAAQ,GAAEZ,KAAK,CAACC,OAAQ,YAAW;QACvC;QAEA,OAAQ,GAAED,KAAK,CAACC,OAAQ,UAAS;MACrC;IACJ,CAAC;IACDY,MAAM,EAAE;MACJd,iBAAiB;MACjBY,eAAeA,CAAC;QAAEX;MAAM,CAAC,EAAE;QACvB,IAAIA,KAAK,CAACY,cAAc,EAAE;UACtB,OAAOZ,KAAK,CAACC,OAAO,GAAG,YAAY;QACvC;QAEA,OAAOD,KAAK,CAACC,OAAO,GAAG,UAAU;MACrC,CAAC;MACDa,gBAAgBA,CAAC;QAAEd;MAAM,CAAC,EAAE;QACxB,OAAO,IAAAe,gCAAuB,EAACf,KAAK,EAAE,QAAQ,CAAC;MACnD;IACJ;EACJ,CAAC;AACL,CAAC;AAACgB,OAAA,CAAAd,iBAAA,GAAAA,iBAAA"}
@@ -5,38 +5,35 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createObjectField = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
- var _error = _interopRequireDefault(require("@webiny/error"));
10
8
  var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
11
- var _helpers = require("./helpers");
12
9
  var _createTypeFromFields = require("../utils/createTypeFromFields");
13
10
  const createChildTypeDefs = params => {
14
- var _field$settings, _field$settings2;
15
11
  const {
16
12
  field,
17
13
  plugins,
18
14
  model,
19
15
  endpointType
20
16
  } = params;
21
- const fields = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.fields) || [];
17
+ const fields = field.settings?.fields || [];
22
18
  const typeName = createTypeName({
23
19
  model,
24
20
  field,
25
- parents: (_field$settings2 = field.settings) === null || _field$settings2 === void 0 ? void 0 : _field$settings2.parents
21
+ parents: field.settings?.parents
26
22
  });
27
23
  const filters = fields.map(child => {
28
- var _child$settings;
29
24
  const createListFilters = plugins[child.type][endpointType].createListFilters;
30
25
  if (!createListFilters) {
31
26
  return null;
32
27
  }
33
28
  const filters = createListFilters({
34
29
  model,
35
- field: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child), {}, {
36
- settings: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, child.settings), {}, {
37
- parents: (((_child$settings = child.settings) === null || _child$settings === void 0 ? void 0 : _child$settings.parents) || []).concat([field.fieldId])
38
- })
39
- }),
30
+ field: {
31
+ ...child,
32
+ settings: {
33
+ ...child.settings,
34
+ parents: (child.settings?.parents || []).concat([field.fieldId])
35
+ }
36
+ },
40
37
  plugins
41
38
  });
42
39
  if (!filters) {
@@ -62,11 +59,10 @@ const createListFilters = ({
62
59
  field,
63
60
  model
64
61
  }) => {
65
- var _field$settings3;
66
62
  const typeName = createTypeName({
67
63
  model,
68
64
  field,
69
- parents: (_field$settings3 = field.settings) === null || _field$settings3 === void 0 ? void 0 : _field$settings3.parents
65
+ parents: field.settings?.parents
70
66
  });
71
67
  return `${field.fieldId}: ${typeName}WhereInput`;
72
68
  };
@@ -78,27 +74,14 @@ const createObjectField = () => {
78
74
  isSortable: false,
79
75
  isSearchable: false,
80
76
  validateChildFields: params => {
81
- var _field$settings4, _originalField$settin;
82
77
  const {
83
78
  field,
84
79
  originalField,
85
80
  validate
86
81
  } = 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
- }
99
82
  validate({
100
- fields,
101
- originalFields: (originalField === null || originalField === void 0 ? void 0 : (_originalField$settin = originalField.settings) === null || _originalField$settin === void 0 ? void 0 : _originalField$settin.fields) || []
83
+ fields: field.settings?.fields ?? [],
84
+ originalFields: originalField?.settings?.fields || []
102
85
  });
103
86
  },
104
87
  read: {
@@ -108,7 +91,6 @@ const createObjectField = () => {
108
91
  model,
109
92
  fieldTypePlugins
110
93
  }) {
111
- var _field$settings5, _field$settings6;
112
94
  const result = (0, _createTypeFromFields.createTypeFromFields)({
113
95
  models,
114
96
  typeOfType: "type",
@@ -117,9 +99,9 @@ const createObjectField = () => {
117
99
  typeNamePrefix: createTypeName({
118
100
  model,
119
101
  field,
120
- parents: (_field$settings5 = field.settings) === null || _field$settings5 === void 0 ? void 0 : _field$settings5.parents
102
+ parents: field.settings?.parents
121
103
  }),
122
- fields: ((_field$settings6 = field.settings) === null || _field$settings6 === void 0 ? void 0 : _field$settings6.fields) || [],
104
+ fields: field.settings?.fields || [],
123
105
  fieldTypePlugins
124
106
  });
125
107
  if (!result) {
@@ -145,8 +127,7 @@ const createObjectField = () => {
145
127
  createFieldResolvers,
146
128
  graphQLType
147
129
  }) {
148
- var _field$settings7;
149
- if (!((_field$settings7 = field.settings) !== null && _field$settings7 !== void 0 && _field$settings7.fields) || field.settings.fields.length === 0) {
130
+ if (!field.settings?.fields || field.settings.fields.length === 0) {
150
131
  return false;
151
132
  }
152
133
  const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
@@ -168,7 +149,6 @@ const createObjectField = () => {
168
149
  field,
169
150
  fieldTypePlugins
170
151
  }) {
171
- var _field$settings8, _field$settings9;
172
152
  const result = (0, _createTypeFromFields.createTypeFromFields)({
173
153
  typeOfType: "type",
174
154
  models,
@@ -177,9 +157,9 @@ const createObjectField = () => {
177
157
  typeNamePrefix: createTypeName({
178
158
  model,
179
159
  field,
180
- parents: (_field$settings8 = field.settings) === null || _field$settings8 === void 0 ? void 0 : _field$settings8.parents
160
+ parents: field.settings?.parents
181
161
  }),
182
- fields: ((_field$settings9 = field.settings) === null || _field$settings9 === void 0 ? void 0 : _field$settings9.fields) || [],
162
+ fields: field.settings?.fields || [],
183
163
  fieldTypePlugins
184
164
  });
185
165
  if (!result) {
@@ -206,7 +186,6 @@ const createObjectField = () => {
206
186
  field,
207
187
  fieldTypePlugins
208
188
  }) {
209
- var _field$settings10, _field$settings11;
210
189
  const result = (0, _createTypeFromFields.createTypeFromFields)({
211
190
  typeOfType: "input",
212
191
  models,
@@ -215,9 +194,9 @@ const createObjectField = () => {
215
194
  typeNamePrefix: createTypeName({
216
195
  model,
217
196
  field,
218
- parents: (_field$settings10 = field.settings) === null || _field$settings10 === void 0 ? void 0 : _field$settings10.parents
197
+ parents: field.settings?.parents
219
198
  }),
220
- fields: ((_field$settings11 = field.settings) === null || _field$settings11 === void 0 ? void 0 : _field$settings11.fields) || [],
199
+ fields: field.settings?.fields || [],
221
200
  fieldTypePlugins
222
201
  });
223
202
  if (!result) {
@@ -228,7 +207,7 @@ const createObjectField = () => {
228
207
  typeDefs
229
208
  } = result;
230
209
  return {
231
- fields: (0, _helpers.attachRequiredFieldValue)(`${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`, field),
210
+ fields: `${field.fieldId}: ${field.multipleValues ? `[${fieldType}!]` : fieldType}`,
232
211
  typeDefs
233
212
  };
234
213
  },
@@ -237,8 +216,7 @@ const createObjectField = () => {
237
216
  field,
238
217
  createFieldResolvers
239
218
  }) {
240
- var _field$settings12;
241
- if (!((_field$settings12 = field.settings) !== null && _field$settings12 !== void 0 && _field$settings12.fields) || field.settings.fields.length === 0) {
219
+ if (!field.settings?.fields || field.settings.fields.length === 0) {
242
220
  return false;
243
221
  }
244
222
  const fieldType = `${graphQLType}_${(0, _upperFirst.default)(field.fieldId)}`;
@@ -255,4 +233,6 @@ const createObjectField = () => {
255
233
  }
256
234
  };
257
235
  };
258
- exports.createObjectField = createObjectField;
236
+ exports.createObjectField = createObjectField;
237
+
238
+ //# sourceMappingURL=object.js.map
@@ -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","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
+ {"version":3,"names":["_upperFirst","_interopRequireDefault","require","_createTypeFromFields","createChildTypeDefs","params","field","plugins","model","endpointType","fields","settings","typeName","createTypeName","parents","filters","map","child","createListFilters","type","concat","fieldId","filter","Boolean","join","singularApiName","id","lodashUpperFirst","createObjectField","name","fieldType","isSortable","isSearchable","validateChildFields","originalField","validate","originalFields","read","createTypeField","models","fieldTypePlugins","result","createTypeFromFields","typeOfType","typeNamePrefix","typeDefs","childTypeDefs","multipleValues","createResolver","createFieldResolvers","graphQLType","length","upperFirst","typeResolvers","resolver","manage","createInputField","exports"],"sources":["object.ts"],"sourcesContent":["import upperFirst from \"lodash/upperFirst\";\nimport lodashUpperFirst from \"lodash/upperFirst\";\nimport {\n CmsFieldTypePlugins,\n CmsModel,\n CmsModelField,\n CmsModelFieldToGraphQLPlugin\n} from \"~/types\";\nimport { createTypeFromFields } from \"~/utils/createTypeFromFields\";\n\ninterface AttachTypeDefinitionsParams {\n model: Pick<CmsModel, \"singularApiName\">;\n field: CmsModelField;\n plugins: CmsFieldTypePlugins;\n endpointType: \"manage\" | \"read\";\n}\nconst createChildTypeDefs = (params: AttachTypeDefinitionsParams): string => {\n const { field, plugins, model, endpointType } = params;\n const fields = field.settings?.fields || [];\n\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n const filters = fields\n .map(child => {\n const createListFilters = plugins[child.type][endpointType].createListFilters;\n if (!createListFilters) {\n return null;\n }\n\n const filters = createListFilters({\n model,\n field: {\n ...child,\n settings: {\n ...child.settings,\n parents: (child.settings?.parents || []).concat([field.fieldId])\n }\n },\n plugins\n });\n if (!filters) {\n return null;\n }\n return filters;\n })\n .filter(Boolean)\n .join(\"\\n\");\n return `input ${typeName}WhereInput {\n ${filters || \"_empty: String\"}\n }\\n`;\n};\n\ninterface CreateTypeNameParams {\n model: Pick<CmsModel, \"singularApiName\">;\n parents?: string[];\n field: CmsModelField;\n}\nconst createTypeName = (params: CreateTypeNameParams): string => {\n const { model, parents = [], field } = params;\n return [model.singularApiName]\n .concat(parents)\n .concat([field.fieldId])\n .filter(Boolean)\n .map(id => {\n return lodashUpperFirst(id);\n })\n .join(\"_\");\n};\n\ninterface CreateListFiltersParams {\n field: CmsModelField;\n model: Pick<CmsModel, \"singularApiName\">;\n}\nconst createListFilters = ({ field, model }: CreateListFiltersParams) => {\n const typeName = createTypeName({\n model,\n field,\n parents: field.settings?.parents\n });\n\n return `${field.fieldId}: ${typeName}WhereInput`;\n};\n\nexport const createObjectField = (): CmsModelFieldToGraphQLPlugin => {\n return {\n name: \"cms-model-field-to-graphql-object\",\n type: \"cms-model-field-to-graphql\",\n fieldType: \"object\",\n isSortable: false,\n isSearchable: false,\n validateChildFields: params => {\n const { field, originalField, validate } = params;\n\n validate({\n fields: field.settings?.fields ?? [],\n originalFields: originalField?.settings?.fields || []\n });\n },\n read: {\n createTypeField({ field, models, model, fieldTypePlugins }) {\n const result = createTypeFromFields({\n models,\n typeOfType: \"type\",\n model,\n type: \"read\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"read\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}${childTypeDefs}`\n };\n },\n createResolver({ field, createFieldResolvers, graphQLType }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n },\n manage: {\n createTypeField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"type\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n const childTypeDefs = createChildTypeDefs({\n model,\n field,\n plugins: fieldTypePlugins,\n endpointType: \"manage\"\n });\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs: `${typeDefs}\\n${childTypeDefs}`\n };\n },\n createInputField({ models, model, field, fieldTypePlugins }) {\n const result = createTypeFromFields({\n typeOfType: \"input\",\n models,\n model,\n type: \"manage\",\n typeNamePrefix: createTypeName({\n model,\n field,\n parents: field.settings?.parents\n }),\n fields: field.settings?.fields || [],\n fieldTypePlugins\n });\n if (!result) {\n return null;\n }\n const { fieldType, typeDefs } = result;\n\n return {\n fields: `${field.fieldId}: ${\n field.multipleValues ? `[${fieldType}!]` : fieldType\n }`,\n typeDefs\n };\n },\n createResolver({ graphQLType, field, createFieldResolvers }) {\n if (!field.settings?.fields || field.settings.fields.length === 0) {\n return false;\n }\n const fieldType = `${graphQLType}_${upperFirst(field.fieldId)}`;\n const typeResolvers = createFieldResolvers({\n graphQLType: fieldType,\n fields: field.settings.fields\n });\n return {\n resolver: null,\n typeResolvers: typeResolvers || {}\n };\n },\n createListFilters\n }\n };\n};\n"],"mappings":"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"}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.createRefField = void 0;
8
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
8
  var _error = _interopRequireDefault(require("@webiny/error"));
10
9
  var _createTypeName = require("../utils/createTypeName");
11
10
  var _utils = require("@webiny/utils");
@@ -36,9 +35,10 @@ const createFilteringTypeDef = () => {
36
35
  };
37
36
  const appendTypename = (entries, typename) => {
38
37
  return entries.map(item => {
39
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
38
+ return {
39
+ ...item,
40
40
  __typename: typename
41
- });
41
+ };
42
42
  });
43
43
  };
44
44
  /**
@@ -82,8 +82,7 @@ const createRefField = () => {
82
82
  field,
83
83
  models
84
84
  }) {
85
- var _field$settings;
86
- const fieldModels = ((_field$settings = field.settings) === null || _field$settings === void 0 ? void 0 : _field$settings.models) || [];
85
+ const fieldModels = field.settings?.models || [];
87
86
  const gqlType = fieldModels.length > 1 ? createUnionTypeName(model, field) : getModelSingularApiName({
88
87
  models,
89
88
  modelId: fieldModels[0].modelId
@@ -103,14 +102,13 @@ const createRefField = () => {
103
102
  * TS is complaining about mixed types for createResolver.
104
103
  * TODO @ts-refactor @pavel Maybe we should have a single createResolver method?
105
104
  */
106
- // @ts-ignore
105
+ // @ts-expect-error
107
106
  createResolver({
108
107
  field,
109
108
  models
110
109
  }) {
111
- var _field$settings2;
112
110
  // 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) || [];
111
+ const fieldModels = field.settings?.models || [];
114
112
  for (const item of fieldModels) {
115
113
  modelIdToTypeName.set(item.modelId, getModelSingularApiName({
116
114
  models,
@@ -135,11 +133,11 @@ const createRefField = () => {
135
133
  * We cast because value really can be array and single value.
136
134
  * At this point, we are 99% sure that it is an array (+ we check for it)
137
135
  */
138
- const value = initialValue;
139
- if (Array.isArray(value) === false || value.length === 0) {
136
+ const referenceFieldValues = initialValue;
137
+ if (Array.isArray(referenceFieldValues) === false || referenceFieldValues.length === 0) {
140
138
  return [];
141
139
  }
142
- const entriesByModel = value.reduce((collection, ref) => {
140
+ const entriesByModel = referenceFieldValues.reduce((collection, ref) => {
143
141
  if (!collection[ref.modelId]) {
144
142
  collection[ref.modelId] = [];
145
143
  } else if (collection[ref.modelId].includes(ref.entryId) === true) {
@@ -151,7 +149,7 @@ const createRefField = () => {
151
149
  const getters = Object.keys(entriesByModel).map(async modelId => {
152
150
  const idList = entriesByModel[modelId];
153
151
  // Get model manager, to get access to CRUD methods
154
- const model = await cms.getModelManager(modelId);
152
+ const model = await cms.getEntryManager(modelId);
155
153
  let entries;
156
154
  // `read` API works with `published` data
157
155
  if (cms.READ) {
@@ -163,7 +161,18 @@ const createRefField = () => {
163
161
  }
164
162
  return appendTypename(entries, modelIdToTypeName.get(modelId));
165
163
  });
166
- return await Promise.all(getters).then(results => results.reduce((result, item) => result.concat(item), []));
164
+ const references = await Promise.all(getters).then(results => {
165
+ return results.reduce((result, item) => {
166
+ return result.concat(item);
167
+ }, []);
168
+ });
169
+ /**
170
+ * We need to return the referenced entries in the same order they are in the ref field.
171
+ * Maybe implement user defined sorting in the future?
172
+ */
173
+ return referenceFieldValues.map(v => {
174
+ return references.find(ref => ref.entryId === v.entryId);
175
+ }).filter(Boolean);
167
176
  }
168
177
  const value = initialValue;
169
178
 
@@ -185,9 +194,10 @@ const createRefField = () => {
185
194
  if (!revisions || revisions.length === 0) {
186
195
  return null;
187
196
  }
188
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, revisions[0]), {}, {
197
+ return {
198
+ ...revisions[0],
189
199
  __typename: modelIdToTypeName.get(value.modelId)
190
- });
200
+ };
191
201
  };
192
202
  },
193
203
  createSchema() {
@@ -252,4 +262,6 @@ const createRefField = () => {
252
262
  }
253
263
  };
254
264
  };
255
- exports.createRefField = createRefField;
265
+ exports.createRefField = createRefField;
266
+
267
+ //# sourceMappingURL=ref.js.map
@@ -1 +1 @@
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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"}
1
+ {"version":3,"names":["_error","_interopRequireDefault","require","_createTypeName","_utils","_helpers","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","referenceFieldValues","entriesByModel","reduce","collection","ref","includes","entryId","push","getters","Object","keys","idList","getEntryManager","READ","getPublishedByIds","getLatestByIds","get","references","Promise","all","then","results","result","concat","v","filter","Boolean","value","revisions","createSchema","resolvers","manage","RefField","id","parseIdentifier","createInputField","createGraphQLInputField","exports"],"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-expect-error\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 referenceFieldValues = initialValue as RefFieldValue[];\n if (\n Array.isArray(referenceFieldValues) === false ||\n referenceFieldValues.length === 0\n ) {\n return [];\n }\n\n const entriesByModel = referenceFieldValues.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.getEntryManager(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 return appendTypename(entries, modelIdToTypeName.get(modelId));\n });\n\n const references = await Promise.all(getters).then(\n (results: CmsEntry[][]) => {\n return results.reduce((result, item) => {\n return result.concat(item);\n }, []);\n }\n );\n /**\n * We need to return the referenced entries in the same order they are in the ref field.\n * Maybe implement user defined sorting in the future?\n */\n return referenceFieldValues\n .map(v => {\n return references.find(ref => ref.entryId === v.entryId);\n })\n .filter(Boolean);\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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"}
@@ -0,0 +1,6 @@
1
+ import { CmsRichTextRendererPlugin, RTEContents } from "../../plugins";
2
+ export declare class RichTextPluginsProcessor {
3
+ private renderer;
4
+ constructor(plugins: CmsRichTextRendererPlugin<unknown>[]);
5
+ render(contents: RTEContents): Promise<unknown>;
6
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RichTextPluginsProcessor = void 0;
7
+ class NullRenderer {
8
+ render() {
9
+ return Promise.resolve(null);
10
+ }
11
+ }
12
+ class RichTextPluginsProcessor {
13
+ constructor(plugins) {
14
+ this.renderer = plugins.reduce((renderer, plugin) => new RichTextRendererDecorator(plugin, renderer), new NullRenderer());
15
+ }
16
+ async render(contents) {
17
+ return this.renderer.render(contents);
18
+ }
19
+ }
20
+ exports.RichTextPluginsProcessor = RichTextPluginsProcessor;
21
+ class RichTextRendererDecorator {
22
+ constructor(plugin, renderer) {
23
+ this.renderer = renderer;
24
+ this.plugin = plugin;
25
+ }
26
+ render(contents) {
27
+ return this.plugin.render(contents, this.next);
28
+ }
29
+ next = contents => {
30
+ return this.renderer.render(contents);
31
+ };
32
+ }
33
+
34
+ //# sourceMappingURL=RichTextPluginsProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NullRenderer","render","Promise","resolve","RichTextPluginsProcessor","constructor","plugins","renderer","reduce","plugin","RichTextRendererDecorator","contents","exports","next"],"sources":["RichTextPluginsProcessor.ts"],"sourcesContent":["import { CmsRichTextRendererPlugin, RTEContents } from \"~/plugins\";\n\ninterface RichTextRenderer {\n render(contents: RTEContents): Promise<unknown>;\n}\n\nclass NullRenderer implements RichTextRenderer {\n render(): Promise<unknown> {\n return Promise.resolve(null);\n }\n}\n\nexport class RichTextPluginsProcessor {\n private renderer: RichTextRenderer;\n\n constructor(plugins: CmsRichTextRendererPlugin<unknown>[]) {\n this.renderer = plugins.reduce<RichTextRenderer>(\n (renderer, plugin) => new RichTextRendererDecorator(plugin, renderer),\n new NullRenderer()\n );\n }\n\n async render(contents: RTEContents) {\n return this.renderer.render(contents);\n }\n}\n\nclass RichTextRendererDecorator implements RichTextRenderer {\n private plugin: CmsRichTextRendererPlugin<unknown>;\n private readonly renderer: RichTextRenderer;\n\n constructor(plugin: CmsRichTextRendererPlugin<unknown>, renderer: RichTextRenderer) {\n this.renderer = renderer;\n this.plugin = plugin;\n }\n\n render(contents: RTEContents) {\n return this.plugin.render(contents, this.next);\n }\n\n private next = (contents: RTEContents) => {\n return this.renderer.render(contents);\n };\n}\n"],"mappings":";;;;;;AAMA,MAAMA,YAAY,CAA6B;EAC3CC,MAAMA,CAAA,EAAqB;IACvB,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAChC;AACJ;AAEO,MAAMC,wBAAwB,CAAC;EAGlCC,WAAWA,CAACC,OAA6C,EAAE;IACvD,IAAI,CAACC,QAAQ,GAAGD,OAAO,CAACE,MAAM,CAC1B,CAACD,QAAQ,EAAEE,MAAM,KAAK,IAAIC,yBAAyB,CAACD,MAAM,EAAEF,QAAQ,CAAC,EACrE,IAAIP,YAAY,CAAC,CACrB,CAAC;EACL;EAEA,MAAMC,MAAMA,CAACU,QAAqB,EAAE;IAChC,OAAO,IAAI,CAACJ,QAAQ,CAACN,MAAM,CAACU,QAAQ,CAAC;EACzC;AACJ;AAACC,OAAA,CAAAR,wBAAA,GAAAA,wBAAA;AAED,MAAMM,yBAAyB,CAA6B;EAIxDL,WAAWA,CAACI,MAA0C,EAAEF,QAA0B,EAAE;IAChF,IAAI,CAACA,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACE,MAAM,GAAGA,MAAM;EACxB;EAEAR,MAAMA,CAACU,QAAqB,EAAE;IAC1B,OAAO,IAAI,CAACF,MAAM,CAACR,MAAM,CAACU,QAAQ,EAAE,IAAI,CAACE,IAAI,CAAC;EAClD;EAEQA,IAAI,GAAIF,QAAqB,IAAK;IACtC,OAAO,IAAI,CAACJ,QAAQ,CAACN,MAAM,CAACU,QAAQ,CAAC;EACzC,CAAC;AACL"}
@@ -0,0 +1,7 @@
1
+ import { GraphQLFieldResolver } from "@webiny/handler-graphql/types";
2
+ import { CmsModelField } from "../../types";
3
+ interface ResolverArgs {
4
+ format?: string;
5
+ }
6
+ export declare const createRichTextResolver: (field: CmsModelField) => GraphQLFieldResolver<any, ResolverArgs>;
7
+ export {};
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createRichTextResolver = void 0;
7
+ var _plugins = require("../../plugins");
8
+ var _RichTextPluginsProcessor = require("./RichTextPluginsProcessor");
9
+ const renderersMap = new Map();
10
+ const getRendererByType = async (format, context) => {
11
+ if (!renderersMap.has(format)) {
12
+ const renderersFactory = new Promise(resolve => {
13
+ const plugins = context.plugins.byType(_plugins.CmsRichTextRendererPlugin.type).filter(plugin => plugin.format === format);
14
+ const renderer = new _RichTextPluginsProcessor.RichTextPluginsProcessor(plugins);
15
+ resolve(contents => {
16
+ return renderer.render(contents);
17
+ });
18
+ });
19
+ renderersMap.set(format, renderersFactory);
20
+ }
21
+ return renderersMap.get(format);
22
+ };
23
+ const createRichTextResolver = field => {
24
+ return async (entry, args, context) => {
25
+ const rawValue = entry[field.fieldId];
26
+ const outputFormat = args.format;
27
+ if (!outputFormat) {
28
+ return rawValue;
29
+ }
30
+ const render = await getRendererByType(outputFormat, context);
31
+ if (field.multipleValues) {
32
+ return rawValue.map(render);
33
+ }
34
+ return render(rawValue);
35
+ };
36
+ };
37
+ exports.createRichTextResolver = createRichTextResolver;
38
+
39
+ //# sourceMappingURL=richTextResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_plugins","require","_RichTextPluginsProcessor","renderersMap","Map","getRendererByType","format","context","has","renderersFactory","Promise","resolve","plugins","byType","CmsRichTextRendererPlugin","type","filter","plugin","renderer","RichTextPluginsProcessor","contents","render","set","get","createRichTextResolver","field","entry","args","rawValue","fieldId","outputFormat","multipleValues","map","exports"],"sources":["richTextResolver.ts"],"sourcesContent":["import { Context } from \"@webiny/api/types\";\nimport { GraphQLFieldResolver } from \"@webiny/handler-graphql/types\";\nimport { CmsModelField } from \"~/types\";\nimport { CmsRichTextRendererPlugin, RTEContents, RichTextRenderer } from \"~/plugins\";\nimport { RichTextPluginsProcessor } from \"./RichTextPluginsProcessor\";\n\nconst renderersMap = new Map<string, Promise<RichTextRenderer<unknown>>>();\n\nconst getRendererByType = async (format: string, context: Context) => {\n if (!renderersMap.has(format)) {\n const renderersFactory = new Promise<RichTextRenderer<unknown>>(resolve => {\n const plugins = context.plugins\n .byType<CmsRichTextRendererPlugin<unknown>>(CmsRichTextRendererPlugin.type)\n .filter(plugin => plugin.format === format);\n\n const renderer = new RichTextPluginsProcessor(plugins);\n\n resolve((contents: RTEContents) => {\n return renderer.render(contents);\n });\n });\n renderersMap.set(format, renderersFactory);\n }\n\n return renderersMap.get(format) as Promise<RichTextRenderer<unknown>>;\n};\n\ninterface ResolverArgs {\n format?: string;\n}\n\nexport const createRichTextResolver = (\n field: CmsModelField\n): GraphQLFieldResolver<any, ResolverArgs> => {\n return async (entry, args, context) => {\n const rawValue = entry[field.fieldId] as RTEContents;\n const outputFormat = args.format;\n\n if (!outputFormat) {\n return rawValue;\n }\n\n const render = await getRendererByType(outputFormat, context);\n\n if (field.multipleValues) {\n return rawValue.map(render);\n }\n\n return render(rawValue);\n };\n};\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AAEA,MAAME,YAAY,GAAG,IAAIC,GAAG,CAA6C,CAAC;AAE1E,MAAMC,iBAAiB,GAAG,MAAAA,CAAOC,MAAc,EAAEC,OAAgB,KAAK;EAClE,IAAI,CAACJ,YAAY,CAACK,GAAG,CAACF,MAAM,CAAC,EAAE;IAC3B,MAAMG,gBAAgB,GAAG,IAAIC,OAAO,CAA4BC,OAAO,IAAI;MACvE,MAAMC,OAAO,GAAGL,OAAO,CAACK,OAAO,CAC1BC,MAAM,CAAqCC,kCAAyB,CAACC,IAAI,CAAC,CAC1EC,MAAM,CAACC,MAAM,IAAIA,MAAM,CAACX,MAAM,KAAKA,MAAM,CAAC;MAE/C,MAAMY,QAAQ,GAAG,IAAIC,kDAAwB,CAACP,OAAO,CAAC;MAEtDD,OAAO,CAAES,QAAqB,IAAK;QAC/B,OAAOF,QAAQ,CAACG,MAAM,CAACD,QAAQ,CAAC;MACpC,CAAC,CAAC;IACN,CAAC,CAAC;IACFjB,YAAY,CAACmB,GAAG,CAAChB,MAAM,EAAEG,gBAAgB,CAAC;EAC9C;EAEA,OAAON,YAAY,CAACoB,GAAG,CAACjB,MAAM,CAAC;AACnC,CAAC;AAMM,MAAMkB,sBAAsB,GAC/BC,KAAoB,IACsB;EAC1C,OAAO,OAAOC,KAAK,EAAEC,IAAI,EAAEpB,OAAO,KAAK;IACnC,MAAMqB,QAAQ,GAAGF,KAAK,CAACD,KAAK,CAACI,OAAO,CAAgB;IACpD,MAAMC,YAAY,GAAGH,IAAI,CAACrB,MAAM;IAEhC,IAAI,CAACwB,YAAY,EAAE;MACf,OAAOF,QAAQ;IACnB;IAEA,MAAMP,MAAM,GAAG,MAAMhB,iBAAiB,CAACyB,YAAY,EAAEvB,OAAO,CAAC;IAE7D,IAAIkB,KAAK,CAACM,cAAc,EAAE;MACtB,OAAOH,QAAQ,CAACI,GAAG,CAACX,MAAM,CAAC;IAC/B;IAEA,OAAOA,MAAM,CAACO,QAAQ,CAAC;EAC3B,CAAC;AACL,CAAC;AAACK,OAAA,CAAAT,sBAAA,GAAAA,sBAAA"}